Support polygon (source code)

= Support polygon
{title2=$P=\operatorname{conv}\{(x_i,y_i)\}$}
{wiki}

A <support polygon> is the <convex hull> of a body's supporting contact positions, projected onto a horizontal plane. For a <rigid body> resting on that plane in a uniform <gravitational field>, with gravity as the only applied load besides support reactions, it describes which horizontal <center of mass> positions can admit <static equilibrium>. Widely separated feet can support a <center of mass> above empty space between them: the footprint's <convex hull>, rather than the material under every point, matters.<Robotic Systems by Kris Hauser>[Chapter 12, Equilibrium conditions, support-polygon definition and Figure 3]{ref}

The geometry follows directly from <force> and <torque> balance. Let the contact positions be $(x_i,y_i,0)$ and their upward <normal forces> be $N_i\ge0$. The inequality expresses <unilateral contact>: an ordinary unbonded support can push the body upward but cannot pull it downward. For total <mass> $m>0$, gravitational acceleration $g>0$ and horizontal <center of mass> projection $c=(x_c,y_c)$, balance gives
$$
\sum_i N_i=mg,\qquad
\sum_i N_i x_i=mgx_c,\qquad
\sum_i N_i y_i=mgy_c.
$$
Divide by $mg$ and write $\lambda_i=N_i/(mg)$. Then
$$
\boxed{c=\sum_i\lambda_i(x_i,y_i),\qquad
\lambda_i\ge0,\quad\sum_i\lambda_i=1.}
$$
Thus $c$ must be a <convex combination> of the contacts, which is exactly membership in their <convex hull>. Conversely, any such <convex combination> supplies nonnegative reactions $N_i=mg\lambda_i$ satisfying this model's balance equations. The <center of pressure> of these vertical <contact forces> coincides with $c$. This proves existence of allowable reactions; it does not determine every reaction uniquely when there are more contacts than independent balance equations.

For an original three-foot example, take contact positions $(0,0)$, $(1,0)$ and $(0,1)$ in metres. The <support polygon> is the <triangle> described by $x\ge0$, $y\ge0$, $x+y\le1$. A $10\,\mathrm{kg}$ body with $c=(0.30,0.20)\,\mathrm m$ requires the <convex combination> coefficients
$$
(\lambda_1,\lambda_2,\lambda_3)=(0.50,0.30,0.20).
$$
With $g=9.81\,\mathrm{m/s^2}$, the corresponding <normal forces> are $49.05$, $29.43$ and $19.62\,\mathrm N$. Moving the projection to $(0.70,0.50)\,\mathrm m$ would require $\lambda_1=-0.20$, a downward reaction at the first foot. No set of nonnegative <normal forces> can hold that configuration at rest under the stated loads.

A simple test uses a rigid plate on three small supports, a movable known <mass>, and three <load cells> measuring the upward reactions. Include the plate's own <mass> and <center of mass> when calculating the combined projection. As that projection approaches the edge $x+y=1$, the first support's reading approaches zero. Beyond the edge, maintaining the same contact configuration would require the forbidden downward reaction; the observed motion or changed contact set marks the failure of the original <static equilibrium>. This is a proposed apparatus test of the balance equations, not reported experimental data.

\Image[/support-polygon-reactions.png]
{title=A <convex hull> converts nonnegative support reactions into a geometric balance test}
{description=Original three-foot example with contact coordinates in metres. An interior <center of mass> projection has nonnegative reaction fractions; a projection beyond the diagonal edge would require a negative first reaction. The second panel shows how lifting one corner shrinks a square support region to a triangle.}

The distance from an interior projection to the polygon's nearest edge is a <static tipping margin>; here it is $\min(0.30,0.20,0.50/\sqrt2)=0.20\,\mathrm m$. A boundary projection has zero margin: some supports unload, and an arbitrarily small outward shift can make balance impossible. A strictly interior projection gives a positive geometric margin against small horizontal shifts under the same model. It is not a general certificate of <dynamical stability> for a flexible or articulated system.

This explains a constraint in a <quadrupedal robot>'s <gait>. Four feet at the corners of a square give a square <support polygon>. Lifting the corner $(1,1)$ leaves the <triangle> $x\ge0$, $y\ge0$, $x+y\le1$. A <center of mass> projection at $(0.60,0.60)$ was inside the square but is outside that <triangle>, so the body must shift or use dynamics to lift that foot without losing the assumed balance. The contact set must be updated when computing the <support polygon>.

The assumptions matter when applying the test. Nonhorizontal contacts require the full balance equations and admissible <contact forces>, including <Coulomb friction>; a projected hull alone need not decide feasibility on irregular terrain.<Robotic Systems by Kris Hauser>[Chapter 12, Contact modeling, Equilibrium conditions and Multi-modal motion planning, Example 1]{ref} Additional horizontal loads also change the balance problem. For example, a horizontal <force> $F$ applied at <center of mass> height $h$ produces an overturning <torque> $Fh$ about the relevant edge. If the inward horizontal distance to that edge is $d$, incipient <tipping of a rigid body> satisfies $Fh=mgd$. Whether the body slides first depends on <static friction>. The gravity-only <support polygon> contains no information about $h$ or that additional load.