CS 344R: Robotics
- Fall 2007. (unique #56595)
- When/Where: TTh 11:00 - 12:30, RLM 7.112
- Professor Benjamin Kuipers
- Office hours: TTh 10:00 - 11:00 am, CSA 1.120A
(CSA (Computer Science Annex) is the temporary building in front of ENS.)
- Course robotics lab: ENS 19N.
- Teaching Assistant: Jeremy Stober
- Calculus and basic differential equations
- Good programming skills
- upper-division CS major or equivalent
- This syllabus:
- The class wiki:
The goals and approach of this class will be approximately the same in
Fall 2007 as they were in Fall 2006. CS 344R will share lectures with the
CS 393R, but will have somewhat different requirements. See below.
Two major changes are: (1) there will be five robot
assignments instead of six, and (2) an additional assignment will be
required in the graduate course, which will be a literature survey and
project design based on a topic from the research literature (a list of
toics will be provided).
A robot is a computational system coupled with the physical world
through its sensors and effectors. An intelligent robot learns
about its world from experience, and uses the knowledge it accumulates
to make better plans to achieve its goals. Robotics is hard, partly
because it crosses many of the abstraction boundaries that simplify
other areas of computer science.
This course has two goals. First, a number of important theories and
techniques are taught, important to perception and action in a
partially-known world. Second, students will work in teams, applying
these methods to get intelligent behavior from physical robots.
We will be using the Sony
Most of the practical part of the class will be done in teams of three
students, each with a robot. There will be limited space due to the
limited number of robots.
If you have not been able to register for the class, please contact
Professor Kuipers. There will be a small number of additional spaces
and a waiting list.
A robot is an intelligent system in continuous sensorimotor
interaction with its environment.
Control laws are continuous dynamical systems that can be designed to
bring the robot along a trajectory or keep it near a setpoint in spite
of limited knowledge and sensor and motor errors.
Kalman filters can be used to track a moving target from incomplete
observations, or to track a moving robot while observing fixed
Continuous behavior can sometimes be described in terms of discrete
actions and resulting states. We can make simple topological maps
by defining distinctive states and the actions linking them.
Very general environments can be described by a fine-grained grid,
representing the probabilities that each cell is occupied. (Laser
first, then sonar.)
SLAM (Simultaneous Localization and Mapping)
There is an elegant interaction between the mapping and localization
The overall structure of the environment can be described in a more
concise and useful way using a topological map. Describe places, paths,
regions, boundaries, etc.
Society will be deeply affected if intelligent robots become a reality.
What kinds of implications should we consider?
there's no difference
between theory and practice.
But in practice,
The course is built around a series of five demanding assignments due
approximately every three weeks throughout the semester. The first
three are done in teams of three, each with its own robot (the Sony
Aibo!). The last two are individual assignments, using a recorded
sensor trace to build a map.
Each assignment asks your team to achieve an ever more sophisticated
level of behavior from your robot. Many of these assignments build on
each other. It's a pretty good approximation to think of the lectures
as driven by the needs of the assignments.
An important goal of the course is for you to learn how to work
successfully with your team, solving academic/technical,
scheduling/coordination, and social/interpersonal problems as they
arise so that your team is successful.
Demonstrate that you can read the sensors
and control the motor primitives on your Aibo.
- Get the camera image, to show what the Aibo is looking at.
- Run a color-blob-tracker to track the location of a colored ball
in the visual field.
- Turn the head to face the ball.
- Walk toward the ball until the colored blob fills more than half the visual field.
- Invoke a pre-packaged kicking routine to kick the ball.
(Don't worry where the ball goes. Yet.)
Learn to shoot penalty kicks
Starting with the ball in the distance, walk up and kick it.
- Approach the ball starting from several body-lengths away.
- Modify the step-length while approaching the ball, to
arrive with the legs in the right phase for the kick.
- Make a smooth transition from the high-level walk to
setting weight on the stance leg and using the swing leg
to kick the ball.
- On walking up to the ball, visually determine its location
relative to the stance foot.
- Set the lateral position of the swing leg, relative to the
center of the ball.
- Raise the head along with the kick, to observe the ball's trajectory.
- Learn a function that relates ball-position, leg lateral position, and
ball trajectory, so you can use it to aim.
- Practice, practice, practice!
Blocking penalty kicks
Use a Kalman filter to track the position of a ball rolling quickly
toward the robot.
- Track a colored ball as it rolls toward the Aibo.
- Predict which side it will pass the robot, how closely, and when.
- If it will miss the goal, turn the head to follow it
as it goes by, but keep paws down.
- If the ball might enter the goal, lunge or reach out a paw to block it
or knock it aside.
- Extra credit for stopping the ball and kicking it back.
Build an occupancy grid metrical map
Using a sensorimotor trace from a robot with a laser range-finder,
including accurate localization of the robot, build a map of the
robot lab and the surrounding corridor. (Individual project.)
Simultaneous localization and mapping (SLAM)
Solve the above problem, but without the accurate localization of the
robot. You are given the significantly less accurate odometry
readings, and must use the sensor observations to correct them.
Term Projects (Grad Students only)
In addition to the robotics assignments, grad students in CS 393R will write a
term paper. This will require you to:
This assignment does not require you to carry out the research
project, but to design it well enough to convince a proposal reader
that it both should and can be carried out as you describe.
- Select a topic from a list to be provided.
- Survey the related literature.
- Describe the major alternate approaches, and clarify their differences.
- Design a research project to advance the field in this area.
- There are a number of possible ways to do this:
- Design an experiment to compare and contrast the alternate approaches.
- Propose a new approach, and an experiment that would clarify the
difference between it and previous approaches.
- Design a toolkit of methods for use by researchers, in case this topic area
is sufficiently mature, with high-quality methods but no existing toolkit.
- The first three assignments will be graded by teams, with all members of
each team receiving the same credit. The last two are individual assignments.
- Undergraduates (CS 344R): (12%, 12%, 12%, 12%, 12%).
- Graduates (CS 393R): (10%, 10%, 10%, 10%, 10%).
- Graduate students will have a term project: 20%
- Individuals receive their own exam grades.
- Undergraduates (CS 344R): Midterm (15%) and Final (15%) exams.
- Graduates (CS 393R): Midterm (10%) and Final (10%) exams.
- There will also be credit for Class Participation (10%).
Readings and Textbook
Research papers in robotics will be handed out and distributed online
for you to read. Copies of the slides will be made available, ideally
before class each day.
The recommended reference text is:
This will be used as a reference, rather than as a textbook, but we will
use quite a few methods from it, and it is a valuable addition to your
Since so much of the class comes from the lectures and discussion in
class, attendance is required. I will take attendance at the
beginning of the class period each day. (This also helps me learn
your names.) Your attendance will be counted as part of the Class
The Computer Science Department has a Code of Conduct that describes
the obligations of faculty and students. Read it at