CS326A: Motion Planning

2000 Winter Quarter

Course Description

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 operation 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 developed further in varied contexts, such as virtual prototyping of new products, design for manufacturing and servicing, plant maintainance, medical surgery, graphic character animation, building code checking, 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".

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, and computational 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 methods that have been effective only in some specific experiments. Most of the methods presented will involve geometrical computing (e.g., interference detection between geometric objects, distance computation, space partitioning).

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.

Students' Projects

See students' final projects (some of these are interactive Applets).

Course organization and Assignments

The course will meet twice a week during the Winter '00 on Mondays and Wednesdays, from 2:15 to 3:30pm, in Gates 104.

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 method or a specific problem. In general, each class will consist of 3 presentations of 20 minutes each. I will give an introduction to the class. Then students will present two technical papers addressing this topic. The rest of the time will be for discussion. There will also be some demos of robots and software. The topic of each class is listed in the Schedule and Syllabus section below. For each topic, I list one or two required readings, plus some other readings.

Each student will be expected to do the following work: Some organization and assignment details will be adjusted depending on the number of students taking the class.

Office Hours and Teaching Assistant

I will have my office hours just after each class. Students can also send me emails at latombe@cs. The teaching assistant for the class is Carlos Guestrin (guestrin@cs). To facilitate interaction, Carlos will meet students by appointment, please, send him e-mail to schedule a meeting.

Schedule and Syllabus

Day # Topic Students
Jan 5 1 Course overview None
Jan 10 2 Configuration space None
Jan 12 3 Probabilistic roadmaps 1.Michal Louz-On
2.Soren Harner
Jan 17 - NO CLASS None
Jan 19 4 Probabilistic roadmaps 1.Billy Hewlett
2.Xiaofeng Ren
Jan 24 5 Other roadmap and cell decomposition techniques 1.Philip Tsai
2.Ted Hwang
Jan 26 6 Potential field techniques 1.Joel Brown
2.Jeremie Roux
3.Jeffrey Yu
Jan 31 7 Coordination of multiple robots 1.Chris Clark
2.Billy Hewlett
Feb 2 8 Nonholonomic robots 1.Philip Tsai
2.Stephen Rhee
Feb 7 9 Kinodynamic planning 1.Frederic Mazzella
2.Tsun-Tsun Ho
Feb 9 10 Integration of planning and control 1.Matther Hage
2.Jeffrey Yu
Feb 14 11 Planning for visual tasks 1.Ted Hwang
2.Mel Ni
Feb 16 12 Motion planning with uncertainty 1.Matthew Hage
2.Xiaofeng Ren
Feb 21 - NO CLASS None
Feb 23 13 Assembly planning 1.Stephen Rhee
2.Jeremie Roux
3.Soren Harner
Feb 28 14 Part feeding 1.Tsun-Tsun Ho
2.Mel Ni
Mar 1 15 Manipulation planning 1.Joel Brown
2.Frederic Mazzella
Mar 6 16 Dealing with sophisticated physical models 1.Chris Clark
2.Michal Louz-On
Mar 8 17 Surgical planning None


Project Information

The suggested project is to design and implement a probabilistic roadmap planner. Other customized projects may be suggested by the students. Some issues to consider for the probabilistic roadmap planner: Project sessions: Project schedule:

Project Software

We have prepared a user interface in Java that you can use for your project. This interface allows you to define obstacles and robots with initial and goal positions. The following zipped file contains the files for this interface. This was generated in Symmantec Visual Cafe. If you are using this compiler, there is a project file that you can open. If you are using a different compiler, all the .java files are there for you to edit. Please, note that there is a short README file included and some parts important parts of the code have a comment starting with: "CS326A students".

This interface has been implemented as an Applet. You can check out the Applet:

Finnaly, it is not required that you use this software, although we recommend you to. If you are interested in other tools, you can check the ones available from previous years at:

Final project presentations: March 9-14

Sites of Some Well-Known Researchers in Motion Planning

Course Notes of 1999