Undergraduate Robotics Elective

In MIT's flagship robotics software course, students build complex robotics software for an autonomous race in MIT's basements.

Presents concepts, principles, and algorithmic foundations for robots and autonomous vehicles operating in the physical world. Topics include sensing, kinematics and dynamics, state estimation, computer vision, perception, learning, control, motion planning, and embedded system development. Students design and implement advanced algorithms on complex robotic platforms capable of agile autonomous navigation and real-time interaction with the physical word. Students engage in extensive written and oral communication exercises. Enrollment limited.

Students running after their car during the autonomous race.

The course is comprised of seven labs that culminate in an autonomous race and a final challenge which the students may select from. In 2018, the options for final challenges were:

  • Urban Mobility: parallel park between two boxes from a randomly selected starting location.
  • The Labyrinth: exit a maze that is completly unknown in advance.
  • Fast Collision Avoidance: avoid unmapped obstacles while maintaining a high speed.
  • Deep Visual Navigation: navigate the MIT tunnels with only the camera using learning techniques.

The students perform the labs and the challenges as teams that remain constant throughout the semester. This allows them to build up their own codebase and to form a complete autonomous system. The teams also keep the same car throughout the semester and usually give them pet names.

The course begins with a brief introduction to linux and the robotic operating system (ROS) which are foundational tools used in the rest of the course. Then the students learn about basic control theory by making their Racecar drive next to a wall at a fixed distance.

The line following lab.

Afterwards, the students begin to investigate basic computer vision techniques like color segmentation. Combining these techniques with the control ideas from the first lab they can make controllers that stay a set distance from a color cone or follow a colored line.

The next lab teaches the students about using monte carlo localization to determine the position of the Racecar on a map. Following this, they learn how to plan paths in the space with algorithms like A* and RRT and then follow those paths. The last lab is, of course, the race!

In the weeks leading up to the final challenges the students (and the TAs) can usually be found in the basement of the Stata center which has been transformed into a race track and a variety of obstacle courses for the other challenges.

As part of the communication portion of the course the teams give presentations of each of their labs and make final videos with the results of their final challenge. Below are student-made videos for each of the four types of challenges.

Urban Mobility (Parallel Parking)


The Labyrinth


Fast Collision Avoidance


Deep Visual Navigation



Spring 2016
Spring 2017
Spring 2018


Back to Education