CS404
Autonomous Mobile Robots
Southern Illinois University
Instructor: Dr. Henry Hexmoor

Spring 2008
Instructor office hours: Tu/Th 2:00-3:00PM

Class times: MW 4:00-5:15PM
Place: Faner 2127
Teaching Assistant: Mr. Joey Coonce
TA office hours: W 10:00-11:00AM (Faner 2129), Th 4:00-6:00pm (Faner 2102)

Our Robots:

Course Description:

This course is a comprehensive introduction to modern robotics with an emphasis on autonomous mobile robotics. Fundamentals of sensors and actuators as well as algorithms for top level control are discussed. Multi-robotics and human-robot interaction issues are explored. A term project is an integral part of this course. Class lectures will closely track outline of the course textbook. Lectures and exams are theoretical. Class project is pragmatic and research oriented.

Pre-requisites:

CS 330 with a grade of C or better or graduate standing. Seek permission of instructor if you need clarifications. Please Be aware that this is a programming intensive and a hands on course, requiring basic Linux as well as Java programming skills. You may need to use one or more of our P3-DX robots, pictured above.

What this course is NOT: a kit building class, a freshman-junior class.

Graduate and undergraduate students are welcome.


Objectives:

You are expected to know or learn programming language on your own.

Grading: Term project at 50%, HWs worth 30%, two exams worth 10% each, class participation and attendance is worth 5%.

HWs: HWs will be assigned in class. Each is worth 6% and requires a 1000 word report and a brief in-class presentation. Use APA style, see.Plonsky's online APA guide.

Class Project: Human-robot interaction is the theme. Teams of up to two students are allowed but not required. You have the following three options. 50 points are divided into (a) 15 points for the design merit, (b) 15 points for project implementation, (c) 10 points for class presentation/demonstration, and (d) 10 points for final report.

A- You need to learn and use the Java program Robosim. This program provides a GUI for human movement commands to a simulated robot navigating a simulated environment. The general task is to guide the robot away from the center of a maze.
You will edit and add code to Robosim for the following functionalities:
(1) record low level human input commands for their efficacy as explained in lecture.
(2) a behavior that will  autonomously drive the robot.
(3) record intermittant user input commands for their efficacy as explained in lecture

Programming Environment setup (done in Faner 2102 lab):

1. Download and install Java JDK (V. 5 or 6), Eclipse, and Aria using links below:

Eclipse:
http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.3.1.1-200710231652/eclipse-SDK-3.3.1.1-win32.zip&url=http://ftp.osuosl.org/pub/eclipse/eclipse/downloads/drops/R-3.3.1.1-200710231652/eclipse-SDK-3.3.1.1-win32.zip&mirror_id=272

Aria:
http://robots.mobilerobots.com/ARIA/download/archives/ARIA-2.5-0.exe

2. Add a new variable called JAVA_HOME with a value of the directory of installed Java JDK

3. Add Aria's bin directory to the Path

Save RoboSim.rar locally (Right click, use "save link as" to download) and unzip to a local directory called Robosim (It was zipped using WinRAR compression)

Start Eclipse and setup Robosim program:

1.     File -> New -> Project...

       1.     Choose Java Project from Existing Ant Buildfile
       2.     Click Next
       3.     In Ant Buildfile browse to the location of the RoboSim software source           

              1.     Select the file build.xml under the RoboSim root directory

       4.     Rename the project name to whatever you choose
       5.     Click Finish

2.     File -> Import

       1.     Expand the General tab if it is not and choose File System
       2.     Click Next
             
       3.     For the From Directory

              1.     Browse to the location of RoboSim software source, choose the RoboSim folder, and click ok            

       4.     Put a check mark next to the RoboSim folder to select everything
       5.     For the Into folder

              1.     Browse and choose the folder of whatever you named your project
       6.     Click Finish
       7.     Say Yes To All on the Question that pops up

3.     Window -> Open Perspective -> Java (nothing will happen if it is a default install)
      
4.     Window -> Show View -> Package Explorer (nothing will happen if it is a default install)
5.     Now, if it was not already, your project name should be on the left hand side of the screen
       1.     Expand the folder
       2.     Double click the file called build.xml to open it

6.     Window -> Show View -> Outline (nothing will happen if it is a default install)
7.     Now, if it was not already, the outline view will be open on your right hand side of the screen
       1.     Expand project
       2.     Right click on runRoboSim
       3.     Choose Run As -> Ant Build (the one without the trailing ellipses )

8.     After a little bit, depending on your machine specs. since it is recompiling, the program should open up and start running

Alternate quick way (but you have to name it what I did)
1.     File -> New -> Java Project
       1.     Under content choose Create project from existing source
       2.     Browse to the location of the RoboSim folder and select it
       3.     You must now put RoboSim in the project name or it will not let you proceed
       4.     Click Finish
2.     Now follow steps 3-8 of the previous guide

B- You will design and implement a program that demonstrates one or more HRI ideas using a physical robot.The emphasis with this option is the use of a robot. See P3DX primer and an example program.

C- You will design and implement a program that demonstrates one or more HRI ideas in a simulated environment. The emphasis with this option is novelty of human control.

 

Important Dates (To be finalized in class)
January 30, 2008 HW 1 Critique of HRI Metrics
February 20, 2008 HW 2 Mixed Inititive strategy for HRI
March 8-18, 2008   Spring break
March 24, 2008 HW 3 Trust and HRI
March 24, 2008 Test #1 (Midterm) Choset Chapters 2, 3, 4, 5, supplemental reading #1 (linked below)
April 9, 2008 HW 4 Autonomy and HRI
April 23, 2008 HW 5 Safety and HRI
May 8, 2007 Final Exam Choset Chapters 6, 7, supplemental readings #2-13 (linked below)

Required Textbook:
Howard Choset, et. al. 2005. Principles of Robot Motion: Theory, Algorithms, and Implementations, The MIT Press, ISBN-10: 0262033275.

Required, Supplemental Reading:
The following links and papers are limited to education purposes by our local students. All rights remain with original sources. This list is updated as needed.

1. Potential Fields Tutorial
2. Rodney A. Brooks' original subsumption paper
3. Principles of Robot Locomotion
4. The Subsumption Architecture
5. Henry Hexmoor's High Level Control Loop
6. A Fuzzy logic based Navigation System for a Mobile Robot
7. Bayesian Filters for Location Estimation
8. The Scalar Kalman Filter
9. Robin Murphy's Emotion-based Control
11. Andrew Moore's HMM Tutorial Slides
12. POMDP FAQ
13. The Vector Field Histogram

Reference Sources:

1. S. Thrun, W. Burgard, D. Fox, 2005. Probabilistic Robotics, MIT press

2. S. LaValle, 2006. Planning Algorithms, Cambridge University Press.

3. R. Arkin, 1998. Behavior-Based Robotics, MIT press

4. G. Bekey, 2005. Autonomous Robots, MIT press

5. G. Dudek, 2005. Computational Principles of Mobile Robotics, Cambridge university press

6. Jones, Flynn, 1998. Mobile Robots: Inspiration to Implementation, AK Peters.

Links to student class projects:

The following are works in progress and not complete. Usage is limited to students in this class. Periodic updates are expected.

Mr. Patrick Zuber
and Mr. Aaron Kocher
link
Ms. Abigail Young link
Mr. Charles Holmes link
Mr. Todd Myers and Mr. Xiaopeng "Leon" Cao link
Adam Busenbark link
Mr. Brian McLaughlan link
   
   
   

Last updated: 4-29-2008