4003-590 / 4005-759 Mobile Robot Programming
Zack Butler
70-2590, MW 10-12
Course description:
This course covers standard and novel techniques for mobile
robot motion programming, including software architectures,
reactive motion control, map building, localization and
path planning. Other topics include multi-robot systems,
robot vision, and non-traditional and dynamic robots. Students
will implement various algorithms in simulation as well as on
a real robot, and investigate and report on several pieces
of current research in the area.
Textbook:
"Autonomous Mobile Robots"
by Siegwart and Nourbakhsh. Another decent book is "Computational
Principles of Mobile Robotics" (2nd ed) by Dudek and Jenkin.
We may also read some of "Planning Algorithms" by LaValle
and "Robot Motion Planning" by Choset et al.
Robots: As mentioned above, the assignments will primarily be
in simulation, but we also have some robots in the RND Lab (70-3405)
which we will use for some assignments. I expect that we will
primarily (if not exclusively) use our two Pioneer 3-DX robots named
Lewis and Clark (get it?). These are both equipped with
forward-facing sonar rings and bump sensors, well simulated in
Player/Stage (details below). One of them will also be mounted with a
laser rangefinder that gives us much better sensor information, so we
will use that as well.
Simulation environment: Simulations (and robot experiments)
will be done
using Player/Stage.
This is available on the CS department Linux machines, and you should
feel free to install it on your own (Unix/Mac) machine if you like. I
will spend some class time in Week 1 describing the system, but you
should also play around with it yourself to get a feel for
it. Here
are some notes to get you started with Player/Stage as well as some
coding guidelines for assignments.
Tentative schedule and links to assignments
Somewhat vague assessment-opportunity list:
- Homework - about 4 assignments, primarily programming, some paper.
Primarily individual. Parts of one or two will involve the
real robots, these (parts) will be in teams to allow everyone access.
- Project - a larger, team-based assignment, definitely using the
real robots, though the majority of development will be in simulation.
Ideally teams of three. Note that I will require teams to consist of
either all undergrads or all grads, since the grad project will have a
(perhaps significant) additional component.
- Final exam
- For grad students - a research report,
detailed here.
- You will also be graded on class attendance and participation,
particularly for the research presentations.
- To compute your overall grade, all homeworks (including the
research report, if applicable) and the project will be given grading
points (100 points representing a "regular" assignment). These total
grading points will be worth 70% of the course grade. Not less than
one third of these points will come from the project. The remaining
30% will be assigned as follows: final exam 25%, attendance and
participation 5%.