#### 10.1. Overview of Motion Planning

This video introduces the general motion planning problem , several variants, and properties of different motion planners.

Chapter 10 focuses on robot motion planning, particularly in the case of obstacles in the environment. For example, in this video, a motion has been planned for the robot arm to move its end-effector from one frame to another, without hitting any obstacles in the environment.

Since some versions of the path planning problem have been called the piano-mover's problem, here's an animation of a piano being maneuvered through a tight space.

In this chapter, the configuration of a robot is described by a vector of n coordinates q, and the robot's C-space is denoted C, a subset of R^n. More generally, the C-space of the robot could be an arbitrary manifold, like SE(3) for a rigid body, but we will focus on configurations explicitly parametrized by a minimum set of coordinates.

The C-space is the union of C_free, the set of configurations where the robot does not contact any obstacle, and C_obs, the set of configurations where the robot is in collision with an obstacle.

The state of the robot is x, where x could simply be the configuration q, if the robot's control inputs are considered to be velocities, or it could be the configuration plus the velocity, if the control inputs are considered to be accelerations, or forces. The state space is capital X.

The equations of motion are x-dot equals f of (x,u), where the control u is an element of the feasible control set capital U. The integral form of the equations of motion is shown here.

With these definitions, a fairly general statement of the motion planning problem is: "Given an initial state x_start and a desired final state x_goal, find a time T and a set of controls such that the motion satisfies x-of-T equals x_goal and is collision free."

We assume that we have perfect models of the robot and the environment.

There are a number of possible variations on the motion-planning problem: we could plan a full trajectory, with timing information, or just a collision-free geometric path. The robot could have an actuator for every degree of freedom, like most robot arms, or it could have fewer actuators than degrees of freedom, like a car with only two control inputs, forward-backward speed and turning speed. The planner might have to make changes in real time as obstacles move in the environment, or it could be allowed to do its work in advance of the robot motion.
We could ask for minimum-time, minimum-length, or otherwise minimum-cost motions, or we could be satisfied with any collision-free motion that reaches the goal. Finally, we might require motions that go exactly to a goal state or we could be satisfied with a final state anywhere in a goal region.

Apart from the characteristics of the motion planning problem, we can define the following properties of a motion planner: The planner may be designed for multiple queries or a single query. A multiple-query planner is one that invests time in developing a good representation of C-space, so that future motion-planning problems in that space can be solved quickly. If the C-space changes often, however, a single-query planner attempts to find the solution to a single motion-planning problem as quickly as possible. We say that a planner is complete if it always finds a solution when one exists. A weaker version of this notion is resolution completeness. A planner is resolution complete if it always finds a solution when one exists at the level of discretization employed in the representation of the problem. There is also probabilistic completeness. A planner is probabilistically complete if the chances of it finding a solution, if one exists, goes to 100% as the planning time goes to infinity.

Finally, the computational complexity of a planner refers to how much memory a planner will use, or how long the planner will take to execute, in either the average or the worst case, as a function of the description of the planning problem, such as the number of degrees of freedom of the robot or the number of vertices used to represent obstacles.

Before describing specific planners, in the next few videos I will introduce foundational concepts in motion planning, such as C-space obstacles, graphs and trees, and graph search.