Although motion planning techniques were initially developed to create robots with motion autonomy, such as mobile robots navigating in a building, these techniques were later applied and further developed in varied contexts, such as virtual prototyping of new products, design for manufacturing and servicing, plant maintenance, medical surgery, virtual character animation, building code checking (e.g., checking access for disabled persons), rational drug design, and pipe layout design.
Thus, motion planning is about computing the motions of one or several real or virtual objects (called robots, agents, etc.) in some workspace in order to achieve a goal-specified task, such as:
Most motion planning problems are computationally hard. Computing a collision-free path for an object with n degrees of freedom among static obstacles takes time exponential in n. Computing a collision-free trajectory for an object with few degrees of freedom among p moving obstacles takes time exponential in p. Some problems seem even more complex, such as planning motions involving complex physical models and planning sensor-based motions dealing with uncertainty. Some tasks must be performed online, such as building the map of a new environment. Other tasks must be done in real-time, like tracking an evasive target, planning collision-free motions in a continuously changing environment.
The purpose of this course is to present a coherent framework for solving motion planning problems, as well as a number of existing methods to solve specific problems. This presentation will use the concepts of configuration space and related spaces (state, control, motion, and information spaces) to formulate problems. It will use algorithms based on random sampling and cell decomposition to explore the connectivity of these spaces. The course content will be illustrated with examples drawn from areas such as mechanical design, manufacturing, graphic animation, medical surgery, and biology. It will emphasize methods that are efficient, robust, and relatively easy to implement, over methods that strive for optimal worst-case performance. It will emphasize methods with provable guarantees of performance over purely heuristic methods that are often effective only in some specific examples. Most of the methods presented will involve various forms of geometric computing (e.g., interference detection between objects, distance computation, space partitioning, shape matching, etc).
The students are expected to have basic knowledge and interest in geometry and algorithms, and to have the skills to complete a significant programming assignment.
The first two classes will introduce the course, overview the material covered in subsequent classes, and present some needed mathematical and algorithmic background.
Each other class will focus on one topic, such as a specific motion planning problem or a specific family of planning algorithms. In general, I will give the introduction and the conclusion of the class (approximately 15 min) and students will make 2 presentations of 30 min each. Each such presentation will describe the content of a given technical paper. The two technical papers presented in each class will be available in advance (often by downloading them from this website). Other students should also have read these papers. It is expected that each student's presentation will consist of 20 min of presentation and 10 min question/discussion. The topics of the classes are listed in the Schedule and Syllabus section below.
Each student will be expected to do the following work:
There will be no midterm or final exam.
Each homework will count for 15% of the total grade, the project for 40%, and in-class participation (attendance, paper presentation, and contribution to discussion) will count for 30%.
The teaching assistant for the class is Itay Lotan (itayl@cs.stanford.edu). To facilitate interaction, Itay will meet students by appointment. Arrange meetings with him by email or at the end of each class.
Day | # | Topic | Students |
April 3 | 1 | Course overview | None |
April 8 | 2 | Configuration space and basic techniques | None |
April 10 | 3 | Collision detection and distance computation | 1. Aditya Koolwal
2. Julia Letchner |
April 15 | 4 | Probabilistic roadmaps -- Basic Techniques | 1. Leonard Sibille
2. Miler Lee |
April 17 | 5 | Probabilistic roadmaps -- Sampling Strategies | 1. Chris Varma
2. Mitul Saha |
April 22 | 6 | Coordination of multiple robots | 1. Tim Bretl
2. Guha Jayachandran |
April 24 | 7 | Nonholonomic robots | 1. Henrik Tidefelt
2. Steven Branson |
April 29 | 8 | Kinodynamic planning and optimal planning | 1. Guha Jayachandran
2. Petter Frykman |
May 1 | 9 | Planning inspection tours | 1. Michael Adams
2. David Black-Schaffer |
May 6 | 10 | Planning exploration strategies | 1. Miler Lee
2. David Black-Schaffer / Kristof Richmond |
May 8 | 11 | Motion planning with uncertainty | 1. Tim Bretl
2. Kristof Richmond |
May 13 | 12 | Assembly planning | 1. Henrik Tidefelt
2. Julia Letchner / Aditya Koolwal |
May 15 | 13 | Manipulation planning | 1. Mitul Saha
2. Steven Branson |
May 20 | 14 | Part feeding | 1. Alan Chan
2. Peter Frykman |
May 22 | 15 | Motion planning for digital actors | 1. Chris Varma
2. Leonard Sibille |
May 27 | - | Memorial Day -- NO CLASS | None |
May 29 | 16 | Motion planning for deformable objects | 1. Michael Adams
2. Alan Chan |
June 3 | 17 | Surgical Planning/Conclusion | None |
The second homework -- HW#2 -- is posted here. It is due on May 15.
You are given a total of four free late days, which you can use as you want. In addition, the students giving a presentation on the day when a homework is due will get two additional free late days for this homework. No additional late days will be accepted.
For each presentation, your work will consist of the following:
1. Read and understand the paper that you will present. If you have
problems understanding parts of the paper, contact Itay or me as much in
advance as possible.
2. Prepare a set of Powerpoint slides for an approximately 20-min-long
presentation. You should not present the entire paper and go into much
detail. Instead, select key ideas, concepts, and techniques, and focus
on them. Adopt a critical view of the paper. Try to establish relations
with previous presentations.
3. Send your slides by email to Itay four working
days before the day of the presentation. Itay will return suggestions.
Modify your slides accordingly.
4. Email the final version of the slides to Itay and me no
later than 9am on the day of the presentation. We will bring a laptop
with the slides on it. I will also post the slides on the class website
so that the other students will be able to download them later.
5. If time permits, Itay or I will try to bring hardcopies of the slides
in class for the students to take note.
The course website of 2000 (see link below) contains slides prepared
by students. You may look at them for inspiration and import figures and
images. Of course, you may also try to find additional information from
the web.
These pages contain links to programming projects completed by students in previous years. The 2000 page also contains links to ppt slides prepared by students for their in-class presentation. There are some overlaps of papers between the course of 2000 and the course of this year. Students presenting these papers must create their own sets of slides. They may use previous slides as a source of inspiration and even re-use graphics from them. But they must demonstrate clear improvements over these slides.
5/01/02 | The solutions of HW#1 are posted here. |
5/03/02 | HW#1 has been graded. The mean is 87.8 and the std 11.6. |
5/22/02 | The solutions of HW#2 are posted here. |