CS326A: Motion Planning

2002 Spring Quarter

Course Overview

Consider a robot whose task is to assemble a product. This product has been designed using a CAD system and all needed information about its composing parts is available. In which order should the robot assemble the product? Which trajectories should it execute in order to avoid collision with the environment? Which sensing operations should it perform to guide its motion and perform the task despite some uncertainty in the shapes and locations of the parts? The goal of motion planning is to address and answer such questions.

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:

  • Going to location A in a given environment
  • Build a map of this unknown environment
  • Finding an object B in a given environment
  • Assembling a product P from its separated individual parts
  • Orienting a part by pushing on it.

  • In more abstract terms, the basic problem is to answer connectivity queries in a geometric space, such as: Can two points be connected by a continuous path verifying given constraints?

    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.

    Course Organization, Assignments, and Grading

    The class will meet twice a week during the Spring'02 quarter on Mondays and Wednesdays, from 11:00 to 12:15pm, in Gates 100. The course is given for 3 units.

    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:

    Some organization and assignment details will have to be adjusted according to the number of students taking this class.

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

    Office Hours and Teaching Assistant

    I will have my office hours on Mondays at 1-3pm in Gates 154. Students can also send me emails at latombe@cs.stanford.edu. If needed, I will see students outside the regular office hours.

    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.

    Schedule and Syllabus

    The links in the following table are not all working yet. They will be updated as the class progresses. So far, the links down to Class 5 (inclusive) are working.
    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


    Homework Assignments

    The first homework -- HW#1 -- is posted here. It is due on April 24.

    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.

    Slide Preparation

    At the very beginning of the course, you must sign up for giving two presentations.

    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.

    Project Information

    See here.

    Previous 326A Course Notes


    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.

    Websites of Some Well-Known Researchers in Motion Planning

    Considerable amount of additional information can be found from those sites.


    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.