CSE 550A: Mobile Robotics

Fall 2005

[What] [Who] [Where] [Newsgroup] [Textbook] [Collaboration] [Grading]
[Lectures] [Labs]
[Player/Stage]

What's New?

Extra credit lab is out.
If you want to add some more points to your total, you can do the extra credit lab.
Lab 9 is out.
The final manditory lab of the semester is out. Get it here. [15 November, 2005]
Lab 8 is out.
Lab 8 lets you experiment with the joys of Monte-Carlo Localization. [8 November, 2005]
Lab 7 is out.
This lab gives you the chance to implement some of the more advanced algorithms we've covered in the class. [1 November, 2005]
Lab 6 is out.
Experience the joys of avoiding things by not bumping into them. Lab 6 is ready. [26 October, 2005]


What

CSE 550A is a broad introduction to the field of mobile robotics, from a software perspective. We will cover the basics of mobile robot control, software architectures, navigation and localization algorithms, and survey some common application areas.

From the course catalog:

An introduction to the design and implementation of intelligent mobile robot systems. This course will cover the fundamental elements of mobile robot systems from a computational standpoint. Issues such as software control architectures, sensor interpretation, map building and navigation will be covered, drawing from current research in the field. Students will also design and build a small mobile robot and program it to perform simple tasks in real-world environments. Class size limited to 20. Prerequisites: CSE 131/CS 101G, SSM 326A, Math 320 or permission of instructor.


Who

Instructor:
Bill Smart (wds@cse.wustl.edu)

Teaching Assistants:
Paul Spiegel (pas4@cec.wustl.edu)
Brian Heinz (bdh3@cec.wustl.edu)


When and Where

Classes:
Tuesday and Thursday, 11:30am-1:00pm, Whittaker 216

Labs:
Urbauer 115 TBA
Lopata 400 (Linux Lab) TBA

Office Hours:
Smart: TBD
Spiegel: Tuesday, 1pm to 3pm
Thursday, 1pm to 3pm
Heinz: Monday, 2:30pm to 3:30pm
Tuesday, 4pm to 5:30pm


Newsgroup All questions about the course material must be asked on the class newsgroup (wu.cse.class.550). If you see a question you know the answer to on the newsgroup, then answer it.

The grading staff will monitor the newsgroup and attempt to answer questions as quickly as possible. However, any technical questions mailed directly to the instructor or the TAs will be ignored. If you have a specific problem, then it's likely that someone else does too. Asking the question on the newsgroup archives the answer, and it means that the grading staff doesn't need to answer the same question 40 times.

Get into the habit of reading the newsgroup daily. Important messages about the class will be posted there. "But I didn't read the newsgroup" is not a valid excuse. If you have a problem reading the newsgroup, then let us know immediately.

Obviously, if you have a question or concern of a personal nature, you should mail this directly to the TAs or the instructor. Also, bear in mind the academic integrity policy when posting and answering on the newsgroup. If you have any doubts about the content of a question or answer, send email to the instructor and ask.


Textbook

There is no required textbook for the class. We will be handing out reading material throughout the semester, from a variety of sources. However, if you really want to get a book, you might want to think about one of these:
  1. "Principles of Robot Motion : Theory, Algorithms, and Implementations", Howie Choset, Kevin M. Lynch, Seth Hutchinson, George Kantor, Wolfram Burgard, Lydia E. Kavraki, and Sebastian Thrun. The MIT Press, 2005. ISBN 0-262-03327-5.
  2. "Introduction to Autonomous Mobile Robots", Roland Siegwart and Illah R. Nourbakhsh. Bradford Books, 2004. ISBN 0-262-19502-X.
  3. "Computational Principles of Mobile Robotics", Gregory Dudek and Michael Jenkin. Cambridge University Press, 2000. ISBN 0-521-56876-5.
There are some other books that cover some of the same material, often from slightly different perspectives. These books are not required for the class but, if you're interested in the material, they might be useful to browse through.
  1. "Autonomous Robots : From Biological Inspiration to Implementation and Control", George A. Bekey. The MIT Press, 2005. ISBN 0-262-02578-7. This is a new book, and I haven't read through it completely yet. However, the author is one of the leaders in the field.
  2. "Sensors for Mobile Robots", H. R. Everett. A. K. Peters, 1995. ISBN 1-56881-048-2. Excellent book if you're interested in the sensors used by mobile robots. Covers most common types of sensors from a low-level perspective.
  3. "Vehicles: Experiments in Synthetic Psychology", Valentino Braitenberg. The MIT Press, 1984. ISBN 0-262-52112-1. A great little book that presents a series of thought experiments that address more philosophical issues related to mobile robotics.
  4. "Behavior-Based Robotics", Ronald C. Arkin. The MIT Press, 1998. ISBN 0-262-01165-4. A more in-depth treatment of behavior-based robotic systems, from a software point-of-view.
  5. "Introduction to AI Robotics", Robin R. Murphy. The MIT Press, 2000. ISBN 0-262-13383-0. Covers much the same material as the class textbook. The depth of coverage tends to reflect the author's research interests.
  6. "Mobile Robots: A Practical Introduction", Ulrich Nehmzow. Springer, 2000. ISBN 1-85233-173-9. An easy-to-read introduction, heavily based on the author's research interests.
  7. "Artificial Intelligence and Mobile Robots", David Kortenkamp, R. Peter Bonasso, and Robin Murphy (editors). AAAI Press/The MIT Press, 1998. ISBN 0-262-61137-6. An excellent collection of papers describing successful robot implementations. This is not a textbook, so it assumes a level of background knowledge of the field.
  8. "Mobile Robots: Inspiration to Implementation", Joseph L. Jones and Anita M. Flynn. A. K. Peters, 1993. ISBN 1-56881-011-3. If you're going to be building your own robots from scratch, then this is an essential book. It deals mostly with hardware and low-level software issues. I understand that it's now out in a new edition - the information here is for the first edition.
  9. "Robotic Explorations: A Hands-On Introduction to Engineering", Fred G. Martin. Prentice Hall, 2001. ISBN 0-13-089568-7. An excellent introduction to hardware and low-level software issues from one of the designers of the HandyBoard.


Collaboration Policy

This is a 500-level class, and you are encouraged to discuss the course material with other students. Discussing the material, and the general form of solutions to the labs is a key part of the class. Since, for many of the assignments, there is no single "right" answer, talking to other students is a good thing. However, everything that you turn in should be your own work, unless we tell you otherwise. You should feel free to discuss the lecture material, and the general form of your solutions with other students. If you talk about assignments with another student, then you need to explicitly tell us on the hand-in. There are no penalties for talking to others, but we'd like to know the scope of the interaction. There will be more specific instructions on the assignment hand-outs. The "official" statement on collaboration is given below:
Unless explicitly instructed otherwise, everything that you turn in for this course must be your own work. If you willfully misrepresent someone else's work as your own, you are guilty of cheating. Cheating, in any form, will not be tolerated in this class.

If you are guilty of cheating on any assignment or exam, you will be penalized the number of points that the assignment is worth. For example, if you are guilty of cheating on an assignment worth 10 points, your score on that assignment will be -10. If you copy from anyone in the class both parties will be penalized, regardless of which direction the information flowed. Two or more instances of cheating in the course will result in a grade of F for the class, and will be referred to the School of Engineering Discipline Committee.

We will follow the guidelines of the University Undergradate Academic Integrity Policy, but we reserve the right to make the final determination of what constitutes cheating for this class. If you suspect that you may be entering an ambiguous situation, it is your responsibility to clarify it before the professor or TAs detect it. If in doubt, please ask


Grading

This class will use
WUgrade for grade reporting.

Quizzes: 30%
Each of the three quizzes are have equal weight (10% of your final grade).
Labs: 70%
Each of the labs have an equal weight (approx 7.78% of your final grade).

Grades in this class will be assigned as follows:

85%    A
75%B
65%C
50%D
0%F

The late policy for the class is 10% per day late, up to a maximum of three days. If you're more than three days late on an assignment, you get zero points for that assignment. If you have some valid reason for needing more time on an assignment, then you should contact me at least two days before the deadline to request an extension. Last-minute requests will only be met in exceptional circumstances.


Lectures

[September] [October] [November] [December]

Meeting Date Topics Reading Labs Assigned Links
1 September 1 Introduction "Silicon Babies", Paul Wallich
"An Imitation of Life", W. Grey Walter
  Robots
2 September 6 Hardware   Lab 1 Gastrobots
3 September 8 Locomotion systems
   Wheel arrangements
   Forward and backwards kinematics
     
4 September 13 Locomotion systems
   More wheel arrangements
Simple obstable avoidance
Excerpt from "An Introduction to Autonomous Mobile Robots",
Siegwart and Nourbakhsh.
Lab 2 Palm Pilot Holonomic Robot
5 September 15 Locomotion systems
   Legs
     
6 September 20 Sensors      
7 September 22 Simple sensor processing      
8 September 27 Programming Models
Control Architectures
   Sense-Think-Act
  Lab 3 HandyBoard web site
9 September 29 Control Architectures
   Subsumption
"A Robust Layered Control System for a Mobile Robot", Brooks
"Elephants Don't Play Chess", Brooks.
   
10 October 4 Quiz 1
   Up to lecture 7
  Lab 4  
11 October 6 Control Architectures
   Current control architectures
"CLARAty: An Architecture for Reusable Robotic Software",
Nesnas et al
   
12 October 11 Control Architectures
   Current control architectures
"On Three-Layer Architectures", Gat. Lab 5 DARPA Grand Challange
Stanford Racing Team
13 October 13 Navigation and Mapping
   Topologic maps
   Metric maps
   Path-planning
     
14 October 18 Navigation and Mapping
   Occupancy grids
"Map Learning and High-Speed Navigation in RHINO",
Thrun, et al.
   
15 October 20 Navigation and Mapping
   Occupancy grids
     
16 October 25 Localization
   Markov localization
  Lab 6  
17 October 27 Quiz 2
   Up to lecture 15
     
18 November 1 Localization
   Monte-Carlo Localization
  Lab 7  
19 November 3 Localization
   Monte-Carlo Localization
    Dieter Fox's MCL page
RoboCup
20 November 8 Machine Learning on Robots
   ALVINN
"Life in the Fast Lane: The Evolution of an Adaptive Vehicle Control System", Todd Jochem and Dean Pomerleau
"Machine Learning for Robots: A Comparison of Different Paradigms", Sridhar Mahadevan
Lab 8  
21 November 10 Machine Learning on Robots
   Reinforcement Learning
     
22 November 15 Machine Learning on Robots
   Reinforcement Learning
"Policy Gradient Reinforcement Learning for Fast Quadrupedal Locomotion", Nate Kohl and Peter Stone
Lab 9  
23 November 17 Humanoid Robots      
24 November 22 Humanoid Robots     Centibots
  November 24 Thanksgiving break. No class.      
25 November 29 Multiple Robots      
26 December 1 Multiple Robots   Extra credit lab  
27 December 6 Quiz 3
   Up to lecture 25
     
28 December 8 TBA      

[September] [October] [November] [December]


Labs

Lab 1
Lab 2
Lab 3
Lab 4
Lab 5
Lab 6
Lab 7
Lab 8
Lab 9
Extra credit lab


Player/Stage

If you want to get a copy of the Player/Stage code for your own computer, it can be found at
playerstage.sourceforge.net. If you will be using the CEC machines do not install your own copy of the Player or Stage code there.

The example code for C++ that comes with Player is also available locally. The files needed for Stage can be found in /usr/local/share/stage/worlds/ on the CEC linux machines.

Page written by Bill Smart.