CSE 550A: Mobile Robotics

Fall 2009

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


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)

TA:
Erik Karulf (erik@cse.wustl.edu)


When and Where

Classes:
Tuesday and Thursday, 11:30am-1:00pm, Lopata 103

Office Hours:
Smart: by appointment
Karulf: 2pm-6pm, Tuesdays, Lopata 102


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.

The textbook has a web site with some extra materials on it. We won't be using any of these materials for the class, but you might find some interesting supplementary material here.

Although they are not required for the class, there are a couple of other texts that you might find useful if you're interested in digging more deeply into some of the material that we cover.

The class has a software focus, but there are a number of good books on actually building robots. Here's a brief and incomplete sampling.


Collaboration Policy

This is a 500-level class, and you are encouraged to discuss the course material with other students. Discussing the material, and talking about 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

You are also encouraged to look things up on the web. While there's a lot of information out there, there's also a lot of nonsense. You should always exercise caution before using anything you find on the web. You should never download and use code if you do not understand how it works. For several of the assignments, you will be asked to write code that you might reasonably find on the web. If you download and use code (even if you're just "inspired" by it, and don't use it character-for-character), you must tell us. Using other's code is fine, but if you do not tell us that you did it, you will be considered to have cheated, and will be subject to the integrity policy, above.


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, unless otherwise specified.

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.


Player/Stage

We will be using the Player robot control software and the associated Stage simulator for part of the class. 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. We will support and maintain the official version on the CEC machines; if you install your own, then you're responsible for maintaining it, and tracking down any bugs that happen.

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

There is a lot of information about Player and Stage on their website, including user manuals and tutorials. You should make sure you check out these valuable resources.


ROS

After we've written some robot code in Player, we will play around with another software architecture, called ROS (Robot Operating System). More details will appear here, one we get things set up, but you can check out ROS at
ros.org.


Robots

We will be using Erratic ER1 robots for the class. More details about them, and how to use them will appear here shortly.
Page written by Bill Smart.