Configuration-space obstacle (source code)

= Configuration-space obstacle

A <configuration-space obstacle> is a set of robot configurations whose occupied geometry intersects an obstacle. It translates a collision question about an extended <robot> into an excluded region of <configuration space>. The excluded coordinates can include rotation and joint angles as well as position. Hauser's primary planning formulation describes feasibility using the robot's occupied workspace set at each configuration.<Robotic Systems by Kris Hauser>[Chapter 8, Point-to-point path planning, free-space definition]{ref}

For an original fixed-orientation translation model, let $R$ be the robot's shape relative to its reference point, $O$ the physical obstacle and $q$ the reference-point translation. Collision means
$$
(q+R)\cap O\ne\varnothing.
$$
This is equivalent to $q+r=o$ for some $r\in R$, $o\in O$, and therefore
$$
\boxed{Q_{\rm obs}=O\oplus(-R).}
$$
The <Minkowski sum> must use the reflected robot shape. When $R$ is symmetric about its reference point, reflection leaves it unchanged; for an asymmetric reference choice, omitting the minus sign changes the collision region.

A one-dimensional example makes the reflection visible. Let a robot occupy $R=[0,0.30]$ metres relative to its left endpoint, and let the obstacle be the point $O=\{1\}$ metre. The forbidden reference positions are $[0.70,1.00]$ metres. At $q=0.80$, the robot spans $[0.80,1.10]$ and hits the obstacle. Using $O\oplus R=[1.00,1.30]$ would wrongly miss this collision and exclude some clear positions.

For a centered circular footprint of radius $r$ and a circular obstacle of radius $a$, the forbidden center positions form a disk of radius $a+r$. For axis-aligned rectangular shapes, each obstacle side expands by the robot's corresponding half-width. These are exact reductions for the stated geometry and fixed orientation.

An <orientation-dependent configuration-space obstacle> instead has a different translation-space cross-section for each orientation. A thin centered rod of length $0.40\,\mathrm m$ collides with a radius-$0.03\,\mathrm m$ obstacle centered at $(0.18,0)$ when the rod lies along the horizontal axis. At the same center position, a vertical rod is clear. The shared center point cannot encode the difference without the orientation coordinate.

For closed occupied sets, touching belongs to the forbidden set under this definition; a required clearance margin can enlarge it further. A proposed geometric check places the modeled robot at selected boundary configurations, compares the predicted intersections with measured geometry, and then verifies the path between them. Testing a few clear endpoint configurations alone does not establish a collision-free continuous motion.