Intro to Mobile Robot Programming (16362)

Warning: The following information is for general information only. Each year  the course is changed in different ways to react to student comments from the year before.
If you have a CMU andrew account, the latest course webpage is available here.

Instructor: Alonzo Kelly, NSH 3209


Introduction:This course is a comprehensive hands-on introduction to the concepts and basic algorithms needed to make a mobile robot function reliably and effectively. We will work in small groups with small robots that are controlled over wireless from your laptop computers. The robots are
Neato household vacuum robots that have been converted to mini forktrucks that can move pallets from place to place just like
commercial automated guided vehicles do today. The robots are programmed in the modern MATLAB programming environment. It is a pretty easy language to learn, and a very powerful one for prototyping robotics algorithms. 

Class with Robots You will get a lot of experience in this course in addition to some theory. Lectures are focussed on the content of the next lab. There is a lab every week and they build on each other so that a complete robot software system results. The course will culminate with an (ungraded)  class-wide robot "competition" that tests the performance of all of your code implemented in the semester. In order to succeed in the course, students must have a 2nd year science/engineering level background in mathematics (matrices, vectors, coordinate systems) and have already mastered at least one procedural programming language like C or Java. When the course is over, you will have written a single software system that has been incrementally extended in functionality and regularly debugged throughout the semester. 

Video:  there is an introductory video at

Text: There is no formal text for the course beyond the course notes.

Lectures: Usually on Thursdays. Labs on Tuesdays.

Scope:The course will ultimately implement and entire mobile robot system that can compete in the final competition. This takes up to 10,000 lines of Java code and every team always manages to make it to the competition.

Level: The course is tended for studetns who are already strong programmers who want to learn about the and implement algorithms for mobile robots.

Grading: The scores in all labs are combined into a final grade.