Intro to Mobile Robot Programming (16x62)

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

Email: alonzo@ri.cmu.edu

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 groups of 3 on Nomad Scout robots and interface to them using laptops programmed in the Java programming language. 

This is a lab course, so the emphasis is on hands-on learning. You will get experience in this course rather than a lot of theory. Lectures are light and focussed on the content of the next lab. There is a lab every week and they build on each other. 

We will start by implementing basic motion controls for turning and moving and then move on to lower level intelligent behaviors that use sonars and your controls to avoid obstacles, follow moving objects, and move competently in narrow corridors. Next, we learn to determine the configuration of walls within range of the sonars and use this information to determine where the robot is in a "mazeWorld" - a real maze constructed of vertical walls. Next comes precision motion within a mazeWorld and the exectution of sequences of motions in order to get from one place to another.One TEam Gets ready for Competition

Once your robot can execute a sequence of commands competently, we move on to many variations on the problem of motion planning. Here, you may or may not be given a description of the maze, and you may or may not know where the robot starts. You must write a program to automatically generate a sequence of commands to move from one place to another - perhaps while learning more about the maze as you go. 

Next we move on to vision and rudimentary manipulation, using cameras, you will detect colored magnetic objects mounted on the maze walls and then implement visual servoing algorithms to pick them up with magnets. Then, we address the problem of how to plan a sequence of pick-ups and drop-offs so that the lenght of the overall "tour: is minimal. This is called the travelling salesman problem. In the second last lab, we will have two robots talking to each other over a wireless radio link and cooperating in moving objects from place to place while dealing with issues of optimal allocation and avoiding deadloock in the maze. The course culminates in a final competition where teams compete against each other in a gold mining game (two teams of two robots each).

Labs: Following are the writeups (PDF Format) for the labs as thet existed in the Fall 2006 semester

 

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.