Configuration Space
Before we can plan paths, we need to understand the space we’re planning in.
The Problem with Workspace
Your robot lives in physical space—the workspace. For a mobile robot on a warehouse floor, that’s 2D. For a drone, 3D. For an arm, still 3D, but the robot itself is more complex.
The naive approach: plan in workspace. Find a path for the robot’s center point that avoids obstacles.
This falls apart immediately. The robot isn’t a point. It has extent. A path that’s valid for the center might drive the robot’s corner straight into a shelf.
Enter Configuration Space
The configuration space (C-space) is the space of all possible robot configurations. For a mobile robot with pose $(x, y, \theta)$, C-space is 3-dimensional: two for position, one for orientation.
The key insight: in C-space, we can treat the robot as a point. The complexity of the robot’s shape gets absorbed into the obstacles.
A configuration $q = (x, y, \theta)$ is valid if the robot, placed at that configuration, doesn’t collide with anything. The set of all valid configurations is free space, denoted $C_{free}$.
$$ C_{free} = \{q \in C : \text{robot}(q) \cap \text{obstacles} = \emptyset\} $$Motion planning becomes: find a continuous path through $C_{free}$ from $q_{start}$ to $q_{goal}$.
Computing C-Space Obstacles
For a circular robot of radius $r$, the C-space obstacle for a polygonal workspace obstacle is that polygon expanded by $r$ in all directions (Minkowski sum with a disk).
For non-circular robots, it’s more complex. The C-space obstacle depends on $\theta$. Each orientation slice gives a different expanded obstacle shape.
This is why most practical planners don’t precompute C-space. Instead, they do collision checking: given a configuration, test whether the robot at that configuration intersects any obstacle.
Why This Matters
Understanding C-space clarifies what motion planning algorithms are actually doing:
- Grid-based planners discretize C-space into cells
- Sampling-based planners sample random points in C-space
- Optimization-based planners search for smooth curves through C-space
The next part covers how to discretize C-space and search it with A*.