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