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