Motion planning is about computing the motions of one or several real or virtual objects in some workspace in order to achieve a goal-specified task, such as: going to location A in a given environment, building 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. 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. 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).