CS 344R: Robotics


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 36 students, who will be divided into 12 teams of three students, each with a robot to program. If more than 36 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.

Behavior Languages

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.


Kalman filters can be used to track a moving target from incomplete observations, or to track a moving robot while observing fixed landmarks.

Occupancy grids

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 proceses.

Topological mapping

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.

Social implications

Society will be deeply affected if intelligent robots become a reality. What kinds of implications should we consider?


Assignments will be done in teams of three. Part of the 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 to work with.

These assignments may be changed as the course evolves.

Hello, World!

Get your robot to move and behave. Implement a simple ``virtual bump'' sensor using the sonars, and a toy-like wandering control law:


Build control laws so your robot can use its sonar sensors and camera to:


While using the sonars to avoid obstacles, the robot will use its camera to identify brightly colored tennis balls (``food''), capture them, and bring them home to its ``nest.''

Play catch!

Using its camera, the robot will track a tennis ball rolled toward it, move to catch it, and roll it back. Pair with another team to have two robots volley the ball back and forth.

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.


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 Participation grade.

The Computer Science Department has a Code of Conduct that describes the obligations of faculty and students. Read it at http://www.cs.utexas.edu/users/ear/CodeOfConduct.html.