Home Lecture Blog Resources Project Discussion Group Assignments

Robotics II / Robot Design

91.451.201 (undergrad) and 91.548.201 (grad)

Spring 2012

Prof. Fred Martin
Tue/Thu, 12:30p – 1:45p

This course will focus understanding and implementing control architectures for mobile robots that operate autonomously to accomplish specific tasks. There will be a specific focus on the emerging field of probabilistic robotics. The class will combine theory and practice, including the study of successful robot architectures and our own implementations.

We will use two books—a text with strong theoretical basis, and a volume that's a paper collection of implementation stories of successful mobile robot designs:

Probabilistic Robotics (2005) Sebastian Thrun, Wolfram Burgard, & Dieter Fox

	Artificial Intelligence and Mobile Robots: 

Case Studies of Successful Robot Systems (1998) D. Kortenkamp, R. Peter Bonasso, R. Murphy (eds).

By the inventors of probabilistic robotics. 1990s mobile robotics work that's still relevant. Both books are published by MIT Press and have been ordered at the UML Bookstore. A used copy is suggested for the Kortenkamp et al. book to save costs.

For practical work, we will use ROS, the robot operating system, an open-source robot simulation package and driver system. This will allow us to develop control programs for simulated robots, including the ability to process robot-centric camera views and laser ranger data.

You will develop a control program for a simulated robot in a simulated world, and then be able to seamlessly run that control program on our actual robot running in the real world. The use of the simulation tools are essential, given the amount of work involved in creating successful control programs and the relatively low availability of live robot time in the field.

We will develop code in simulation and then run it on the Bilibot, an open-source robotics platform that is based on an iRobot Create with an integrated Core i3 motherboard, a Microsoft Kinect point-cloud 3d sensor, and a custom arm. (The Bilibot was co-developed by an alum of the UML Computer Science Department.)

Robot control tasks will include:

  • localization—determining the robot's location and position (pose) within a known map of the surroundings
  • mapping—dynamically building a map of the robot's surroundings
  • sensor filtering—e.g., combining data from a rate-gyro and wheel encoders to determine robot position; interpreting data from a 3d point cloud
  • coordinate transformations—e.g.,translating reference frames of sensors or effectors mounted on the robot's body to the center of the robot
  • manipulation—using a robot arm or the robot's own body to cause changes in the world

Our work will also be driven by the Intelligent Ground Vehicles Competition challenge, which combines localization, mapping, and navigation tasks in an outdoor environment. Robots must visit waypoints in a 1-acre field (using GPS data) and stay inside a pair of painted lines in a one-tenth mile outdoor course, all while dealing with the presence of barrels, sawhorses, and other physical obstacles. See for more details.

This year's IGVC competition will be held June 8–11, 2012. Students who participate in the course will be invited to make the road trip to Oakland, Michigan (just north of Detroit) to enter the contest. Partial funding to support the trip will be available.

Prerequisites and Expectations

The course will exercise your mathematical background, specifically drawing on skills in calculus, discrete mathematics, linear algebra, and probability.

The course will require significant software implementation skills. Implementation work will be done using the ROS framework and writing code in (your choice of) Python or C++.

The course will also require you to be a self-directed learner, seeking out solutions to only partially-structured problems, and ultimately specifying and carrying out your own final project.

Discussion Group / E-Mail List

We will use Google Groups for class conversation and announcements. Please join this group.

	Subscribe to 91451-548-s12


Browse Archives


The following plan will be used in determining course grades:

30% Weekly assignments (problem sets and reading summaries)
20% Midterm (theory and programming)
35% Project (implementation and final paper)
15% Participation (classroom, lab, and online)