CS 344R: Robotics
- Fall 2006. (unique #56355)
- When/Where: TTh 11:00 - 12:30, PAI 3.20
- Professor Benjamin Kuipers
- Office hours: TTh 10:00 - 11:00 am, TAY 4.130C.
- Teaching Assistant: Aniket Murarka (firstname.lastname@example.org)
- Calculus and basic differential equations
- Good programming skills
- upper-division CS major or equivalent
- This syllabus:
The goals and approach of this class will be the same in Fall 2006 as
it was in Fall 2005. However, we are changing robots, from the Amigobot to
the Sony AIBO. This
has resulted in significant changes to the assignments, due to the
differences in sensors and effectors, and some changes to the
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.
This class will be limited to 30 students, who will be divided into 10
teams of three students, each with a robot to program. Please contact
Professor Kuipers if you wish to be admitted to the class. If more
than 30 students wish to sign up, there will be 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?
In theory, there's no difference between theory and practice.
But in practice, there is.
The course is built around a series of six demanding assignments, each
asking your team to achieve an ever-increasing level of sophisticated
behavior from your robot. Many of these assignments build on each
other. It's entirely reasonable (though not perfectly accurate) to
think of the lectures as driven by the needs of the assignments.
Assignments will be done in teams of three, each with their own robot.
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.
There will be robot programming assignments due approximately every
two weeks throughout the semester. Each team will have its own robot
(starting this semester, the Sony Aibo!) to work with.
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 blob
in the visual field.
- Turn the head to face the blob.
- Walk toward the blob until it fills more than half the visual field.
Tracking and catching
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 how closely it will approach the robot, and when.
- If it will pass out of range, turn the head to follow it
as it goes by, but keep paws down.
- If the ball is close enough, reach out a paw and stop the ball
as it passes close to the Aibo. (Half-credit for knocking it
out of the way. No credit for missing.)
- Extra credit: pick up the paw and push the ball back the way it came.
Walk up and kick the ball
Starting with the ball in the distance, walk up and kick it.
- Identify a ball several body-lengths away.
- Use the high-level walk, controlled by a PID controller,
to approach it.
- 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.
- (Don't worry where the ball goes. Yet.)
Learn skill at shooting the ball
Building on the previous skill, learn how to shoot the ball accurately.
- 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 relation between ball-position, leg lateral position, and
- Practice, practice, practice!
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.
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.
- The assignments will be graded by teams, with all members of
each team receiving the same credit.
(5%, 10%, 10%, 10%, 10%, 10%).
- Individuals will received their own grades for the Midterm (15%)
and Final (20%) exams.
- There will also be credit for Class Participation (10%).
Attendance and Textbook
There is no textbook in this class. 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.
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