CSE 550A: Mobile Robotics

Fall 2008

[What] [Who] [Where] [Textbook] [Collaboration] [Grading]
[Lectures] [Labs] [Message Board]
[Player/Stage] [Robots]

What's New?

Complete class schedule up
Finally, the complete schedule for the class is up on the web site.
Some new Player links
We've added some links to useful Player and Stage documentation. See the Player section.
This is it!
Contrary to previous announcements, we will not be using the new CMS this semester. The web site that you're looking at is the one we'll be using for the rest of the semester.
Temporary web page is up
We will be using the new CSE content management system for the class but, until everything gets set up with that, we'll be using this web page.


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)


When and Where

Classes:
Tuesday and Thursday, 11:30am-1:00pm, Cupples II 217

Office Hours:
Smart: by appointment


Textbook

The textbook for the class is "Introduction to Autonomous Mobile Robots", Roland Siegwart and Illah R. Nourbakhsh. Bradford Books, 2004. ISBN 0-262-19502-X. We will also be handing out addition reading material throughout the semester, from a variety of sources.


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

Your grade for this class will be calculated based on a combination of written and lab work.
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.

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

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

Meeting Date Topics Reading Labs Assigned Links
1 August 28 Introduction Siegwart and Nourbakhsh, ch 1
"Silicon Babies", Paul Wallich
"An Imitation of Life", W. Grey Walter
  Robots
2 September 2 Hardware   Lab 1 Gastrobots
3 September 4 Locomotion systems
   Legs
Siegwart and Nourbakhsh, ch 2 & 3
  MIT Leg Lab
4 September 9 Locomotion systems
   Forward and backwards kinematics
   Legs
5 September 11 Locomotion systems
   More wheel arrangements
     
6 September 16 Sensors
Simple obstable avoidance
Siegwart and Nourbakhsh, ch 4, up to 4.1
Lab 2  
7 September 18 Simple sensor processing and control      
8 September 23 Interlude: The Great Robot Race   PBS web site
September 25 No class      
9 September 30 Control Architectures
   Sense-Think-Act
10 October 2 Control Architectures
   Subsumption
"A Robust Layered Control System for a Mobile Robot", Brooks
"Elephants Don't Play Chess", Brooks.
Lab 3  
11 October 7 Control Architectures
   Current control architectures
Siegwart and Nourbakhsh, ch 6, up to 6.2
"CLARAty: An Architecture for Reusable Robotic Software", Nesnas et al
"On Three-Layer Architectures", Gat.
 
12 October 9 Navigation and Mapping
   Topologic maps
   Metric maps
     
13 October 14 Quiz 1
   Up to, and including, lecture 8
Siegwart and Nourbakhsh, ch 6, up to 6.2
14 October 16 Navigation and Mapping
   Occupancy grids
     
15 October 21 Navigation and Mapping
   Occupancy grids
"Map Learning and High-Speed Navigation in RHINO",
Thrun, et al.
Lab 4  
16 October 22 Navigation and Mapping
   Path-planning
     
17 October 28 Localization
   Single-hypothesis techniques
Siegwart and Nourbakhsh, 5.1 to 5.5, 5.6.3
 
18 October 30 Localization
   Markov localization
Siegwart and Nourbakhsh, 5.6 up to, and including, 5.6.2
Lab 5  
19 November 4 Localization
   Monte-Carlo Localization
Dieter Fox's MCL page
20 November 6 Quiz 2
   Up to, and including, lecture 17
   
21 November 11 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 6  
22 November 13 Machine Learning on Robots
   Reinforcement Learning
     
23 November 18 Machine Learning on Robots
   Reinforcement Learning
"Policy Gradient Reinforcement Learning for Fast Quadrupedal Locomotion", Nate Kohl and Peter Stone
 
24 November 20 Human-Robot Interaction      
25 November 25 Human-Robot Interaction    
  November 27 Thanksgiving break. No class.      
26 December 2 Multiple Robots     Centibots
27 December 4 Multiple Robots
Wrap-up
  Lab 7  
28 December 9 Quiz 3
   Up to lecture 27
     

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


Labs

Lab        Out        Due        Solution
Lab 1
September 2 September 9, 23:59:59 example solution
Lab 2
September 16 September 23, 23:59:59
Lab 3
October 4 October 16, 23:59:59
Lab 4
October 20 October 28, 23:59:59
Lab 5
October 29 November 6, 23:59:59
Lab 6
November 11 November 25, 23:59:59
Lab 7
December 3 December 15, 23:59:59


Message Board

The class has a
message board, where you can post questions (and answers).


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 on the CEC machines at /usr/local/share/player/examples. The files needed for Stage can be found in /usr/local/share/stage/worlds/ on the CEC linux machines.

Some useful links:

      Player Documentation
Documentation for our real robots
Documentation for our cameras
Stage Documentation


Robots

We will be using Erratic ER1 robots for the class. Everything you need to know about the robots is on the
robot how-to.

You will need to check the robots out from the CEC help desk. You are allowed to check the robot out for two hours, and must return it after that time. You're not allowed to check the robots out overnight (sorry). The help desk staff will keep all checked-in robots for one hour after they are checked in, to make sure that they can be fully recharged.

You can reserve time on a robot here. Do not reserve a robot within an hour of it being handed back, since the help-desk staff will not give it to you. If you know that you're not going to use a reservation, then please cancel it so that someone else can use the slot. You can get a robot without a reservation, if one is free, but it will help everyone in the class if you can plan your robot time in advance, and add it to the calendar.

Don't put personal stuff on the robots, since they are shared machines, and you will be sharing an account with the rest of the class. Either store things on a USB stick, or copy them on via scp when you need them. In particular, please remember to clean up the home directory, and to remove all of your code before you turn the robot back in to the CEC help desk.

Page written by Bill Smart.