CSCI-632 Mobile Robot Programming
GOL(70)-3435 TR 11-12:15
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.
- Office: GOL(70)-3011 (inside CS main office, but don't be afraid!)
- Phone: x5-6155
- Office hours: MR 2:30-4:30, or by appointment [in office or lab]
- We will use "Computational Principles of Mobile
Robotics" (2nd ed) by Dudek and Jenkin.
- We will also refer to:
- "Planning Algorithms" by
- "Robot Motion Planning" by Choset et al. (selections made
available via MyCourses)
- Various research papers
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 three Pioneer 3-DX robots.
These are both equipped with forward-facing sonar rings, bump sensors,
and Kinects (which we will mostly use to simulate much more expensive
laser scanners). We also have one real laser rangefinder, we may use
that as well. Here are some important
policies regarding the lab and robots.
Programming environment: Simulations and robot experiments
will be done using ROS (the Robot
Operating System), specifically ROS Kinetic, and the semi-integrated
simulator Gazebo. This is
available on the CS department Linux machines. You should feel free
to install it on your own machine if you like, though it is only
supported under Ubuntu. 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 is where I will put my own notes for
getting up to speed with ROS, especially as it applies in the CS
environment. All programming assignments may be completed in your
choice of Python or C++.
Tentative schedule and links to assignments
Somewhat vague assessment-opportunity list:
- Homework (40% of grade) - Mostly programming-based, a few will be
paper (or virtual paper!) based. Primarily individual, though parts
of one or two will involve the real robots, these (parts) will be in
teams to allow everyone access. Not all homework assignments will be
worth the same amount - each one will be given a point value with 100
points being an average-length homework, and the total homework score
will be based on summing up all points out of the total available.
Late homework will be accepted up to 48 hours after the
original deadline, with a 20% penalty. No homework will be accepted
after that point, period.
- Research report and presentation (15% of grade) - you will read a
research paper or two, write a summary that compares the work to what
we have discussed in class, and present the paper to the class. Most
likely in (small) teams. More details forthcoming.
- Project (20-25% of grade) - a larger, team-based assignment,
definitely using the real robots, though the majority of development
will be in simulation. Ideally teams of three.
- Final exam (15-20% of grade)
- Weight on project and final exam will be determined by which
option makes your overall grade higher.
- Class attendance and participation, particularly for the research
presentations (5% of grade)