ROBOTICS 101Concept explainer

Configuration Space

Planning for a robot arm is hard because every part of it must miss every obstacle. Configuration space, or C-space, flips the problem around: each possible set of joint angles is one point, and obstacles become forbidden regions in that space. Planning for the whole arm then becomes planning for a single point.

Or click in the C-space map to set the joint angles.

From workspace to C-space

A configuration \(\mathbf{q} = (\theta_1, \theta_2)\) collides if any part of the arm at those angles touches an obstacle. The free space and the obstacle region are

$$\mathcal{C}_{\text{free}} = \{\mathbf{q} : A(\mathbf{q}) \cap \mathcal{O} = \varnothing\} \qquad \mathcal{C}_{\text{obs}} = \mathcal{C} \setminus \mathcal{C}_{\text{free}}$$

where \(A(\mathbf{q})\) is the space the arm occupies. Both joint angles wrap around, so the C-space map's edges join: it is really the surface of a donut.

What to notice

Small round obstacles in the workspace become large, curved blobs in C-space, because many different arm poses hit them, with either link. Moving the dot through the white region is always collision-free motion for the whole arm. Every planner in this section, from grid search to RRT, works in C-space. For a 6-joint arm the space has six dimensions and cannot be drawn or gridded densely, which is why sampling-based planners matter.