Orientation-dependent configuration-space obstacle (source code)

= Orientation-dependent configuration-space obstacle

An <orientation-dependent configuration-space obstacle> is the forbidden set for an extended <robot> whose occupied geometry changes with its orientation. For a planar rigid shape $B$ referred to a body-fixed point, translation $t\in\mathbb R^2$ and rotation matrix $R_\theta$, the occupied set is $t+R_\theta B$. With obstacle set $O$, collision means
$$
(t+R_\theta B)\cap O\ne\varnothing.
$$
For each fixed angle, the forbidden translations are therefore
$$
\boxed{C_\theta=O\oplus(-R_\theta B).}
$$
Indeed, an intersection gives $t+R_\theta b=o$, hence $t=o-R_\theta b$, and the converse follows by substitution. This is a reflected <Minkowski sum>, not an unreflected sum of the two shapes. Hauser develops these angle-indexed slices explicitly for a translating and rotating polygon.<Robotic Systems by Kris Hauser>[Chapter 9, C-obstacles for rotational motion; Motion planning in SE(2)]{ref}

The full <configuration-space obstacle> is $\{(t,\theta):t\in C_\theta\}$. Its angular coordinate is periodic: orientations zero and $2\pi$ represent the same rotation. Translation and orientation cannot generally be replaced by one planar obstacle inflation. A circular <robot> centered at its reference point is a special case, because rotating that shape leaves every $C_\theta$ unchanged.

An original doorway example uses a rectangle with half-length $a=0.30\,\mathrm m$ and half-width $b=0.10\,\mathrm m$, centered in an infinitely long horizontal corridor of width $W=0.25\,\mathrm m$. Its vertical half-extent at angle $\theta$ is
$$
h(\theta)=a|\sin\theta|+b|\cos\theta|.
$$
With contact counted as collision, a centered placement is clear only if $h(\theta)<W/2$. At zero angle the total width is $0.20\,\mathrm m$, leaving $25\,\mathrm{mm}$ at each wall. At $10^\circ$, the total width is about $0.3012\,\mathrm m$, so the same center position collides. For small positive angles, the first touching angle solves $0.30\sin\theta+0.10\cos\theta=0.125$, giving approximately $4.85^\circ$. A collision-free center path alone would miss this rotational restriction.

Angular sampling needs a bound on the geometry between checked orientations. If every body point lies within radius $\rho$ of the reference point, changing orientation by $\Delta\theta$ moves each corresponding point by at most
$$
2\rho\sin(|\Delta\theta|/2)\le\rho|\Delta\theta|,\qquad |\Delta\theta|\le\pi.
$$
The first expression is the chord length; the inequality follows from $\sin u\le u$. An <angular clearance bound for a rotating body> uses this motion allowance to transfer a measured separation to nearby orientations. For the rectangle above, $\rho=\sqrt{a^2+b^2}\approx0.3162\,\mathrm m$. A ten-degree grid has a five-degree worst-case distance to a sampled orientation, allowing about $27.6\,\mathrm{mm}$ of point motion. A sampled $20\,\mathrm{mm}$ gap would not certify every intermediate orientation under that bound.

A geometric validation can place a rectangular test piece at predicted near-touching angles in a measured corridor, accounting for reference-point offsets and wall tolerances. A planner must also check the continuous motions connecting clear configurations; clear grid vertices alone do not establish clear connecting rotations. A conservative enclosing disk may simplify that check, at the cost of excluding some feasible narrow passages.