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