CS225B Fall 2009
Welcome to the home page of the wiki for CS225B, the Robot Programming Lab at Stanford University. This year (Fall 2009/2010), the course will be using the ROS system (www.ros.org) from Willow Garage, and as usual the Erratic robots with SICK LMS200 laser rangefinders. The capabilities of ROS should help overcome some of the limitations of the Player/Stage software we have used for the past several years, e.g., viewers can easily run offboard and connect to the robot.
CS225B Handouts, Projects and References
Course Description
This course covers the basics of mobile robot control and sensing from an Artificial Intelligence perspective. Topics include behavioral control, reactive architectures, sensor interpretation, world modeling, and navigation. Various theories used in mobile robot systems will be presented, and students will apply these theories in a set of project exercises on a real mobile robot, oriented towards understanding the complexities of robot activity in real-world situations.
Prerequisites
Students are expected to have the following background:
- Knowledge of basic computer science principles and skills at the level of CS109(A). Programming will be in C, C++, Java, Python, LISP, or other suitable language.
- Ability to understand and analyze fairly complicated algorithms and data structures. (CS161 is sufficient but not necessary.)
- Familiarity with the basic concepts of probability theory. (Stat 116 is sufficient but not necessary.)
Admin stuff
Meeting Times and Locations
Lectures:
- 4 units, TTh 3:15-4:30 PM, Gates 100 (Lectures), Gates B30/32 (Lab)
Teaching Staff
Professor: Kurt Konolige
Office: Gates B30 (Robot Lab)
Office Hours: Tuesday and Thursday 2:00-3:15 pm; evenings on the day before projects are due (or by appointment)
Phone: (650) 475-2808
E-mail: konolige #at# willowgarage.com
TA: Rich Frankel, frankel #at# cs.stanford.edu
Office hours (B30/Myth): Wednesday 6:00-7:30, Friday 2:15-4:15. Wednesday hours may be moved to Monday if a project is due that Tuesday, and may be extended in general the nights before projects are due.
Projects
There will be four robot programming project assignments. The projects will test your ability to take material presented in the lectures and translate it into practice on a mobile robot. There are Videre Design Erratic mobile robots for use in the class, along with two PCs that are dedicated hosts for running their robot control programs. The robot control architecture we will use is called Player/Stage, which is an open-source system.. Some lectures will be devoted to the explanation of these tools relative to the current project.
The projects tasks will consist of programming the robots, using a standard language such as C++ or Java, to perform a task. The task will be related to the theoretical material covered in the lectures. Students will work within the existing Saphira architecture, using the tools that it provides. The projects will be done in groups of 2-3 people. An important part of the project experience is learning to work efficiently within a group. The use of materials and systems commonly available, e.g., MATLAB, is encouraged.
We try to specify the tasks in as clear a way as possible. Usually there is example code that illustrates part of the task. If there is any doubt about the intent of a project, you are urged to communicate your concerns as soon as possible.
Grading
Grades are based on performance in the projects. Each project assignment will be handed out two weeks before the due date. Project performance will be scheduled in the robot laboratory for each group during the due day. All groups are encouraged to attend all the presentations.
Students will be responsible for material covered in the lectures and assigned in the readings relating to the projects, and are expected to be able to explain their ideas in these terms. Each group is responsible for writing well-documented source code for the project, explaining clearly the concepts and implementation of the project. Source code must be turned in at class on the due date for the project.
The grading for the project will be based on a combination of performance of the task, conceptualization and solution of the problem, and programming skill, judged from the source code.
There are no midterms or finals. The final project is an extended one, and will be in the form of a competition, in which two robots from competing teams will play a modified game of robot soccer.
Every attempt will be made to give ample time to complete the projects, and no late projects will be accepted, except under extraordinary circumstances. Workload problems are not an excuse for late projects.
Course grades will be based 50% on the first three projects, 30% on the last project, and 20% on class participation.
Extra credit will be given to the two finalists in last project. It may also be given to some course projects that go substantially above and beyond the requirements in finding creative solutions to the task.
