multi-contact locomotion

**Stéphane Caron**

LIRMM, CNRS-UM2

Work with Q.-C. Pham & Y. Nakamura

Journées Nationales de la Robotique Humanoïde

June 23, 2016

- Start from a footstep plan

- Start from a footstep plan
- Regulate system dynamics around the Linear Inverted Pendulum Mode (LIPM)

- Start from a footstep plan
- Regulate system dynamics around the Linear Inverted Pendulum Mode (LIPM)
- LIPM has simplified:
**Dynamics:**¨xG=ω2(xG−xZ)**Contact stability criterion:**

ZMP inside the support polygon

- Start from a footstep plan
- Regulate system dynamics around the Linear Inverted Pendulum Mode (LIPM)
- LIPM has simplified:
**Dynamics:**¨xG=ω2(xG−xZ)**Contact stability criterion:**

ZMP inside the support polygon

- Plan a trajectory for the pendulum

- Start from a footstep plan
- Regulate system dynamics around the Linear Inverted Pendulum Mode (LIPM)
- LIPM has simplified:
**Dynamics:**¨xG=ω2(xG−xZ)**Contact stability criterion:**

ZMP inside the support polygon

- Plan a trajectory for the pendulum
- Send it as reference to a whole-body controller

The ZMP is traditionally defined as the point *on the floor* where
the moment of the contact wrench is parallel to the surface normal (Sardain &
Bessonnet, 2004).

The point at which the robot “applies its weight”.

The ZMP must lie inside the support polygon (convex hull of ground contact
points).^{1}

- This definition requires a single “floor” surface (no multi-contact)
- The support polygon does not account for frictional limits (slippage, yaw rotations).

What wrenches are feasible under frictional contacts?

A motion or wrench is *weak contact stable* iff it can be
realized by contact forces inside their friction cones.

Friction cones can be combined as Contact Wrench Cone (CWC) at the
COM—see e.g. (Caron et al.,
2015).

By construction,

The ZMP is mathematically defined from a wrench (Sardain & Bessonnet, 2004). The ZMP in the plane Π(O,n) of normal n containing O is the point such that n×τZ=0, that is:

xZ=n×τOn⋅f+xO.
We define the *full support area* S as the image of the CWC by
this equation.

Good news! This area can be computed geometrically:

Bad news! It is not always a polygon:

The Newton-Euler equations of the system are:

[m¨xG˙LG]=[mg0]+∑contacti[fi−−→GCi×fi]- m and g: total mass and gravity vector
- ¨xG: acceleration of the center of mass (COM)
- ˙LG: rate of change of the angular momentum
- fi: contact force received at contact point Ci

They show how the motion of unactuated DOFs results from interactions with the environment.

The Newton equation can be written equivalently:

¨xG=g+¨zGzG−zZ(xG−xZ)−˙LGxm(zG−zZ)where x now denotes X-Y plane coordinates. The Linear Inverted Pendulum Mode (Kajita et al., 2001) is obtained by constraining:

zG−zZ=h˙LG=0The system dynamics become ¨xG=gh(xZ−xG).

The support area in the LIPM is *smaller* than the convex hull of
contact points:

We provide an algorithm to compute the support area corresponding to the system:

w∈CWCzG−zZ=h˙LG=0
We call it the *pendular support area*.

We can now consider the ZMP *above* the COM ⇒ Linear
(non-inverted) Pendulum Mode:

This is the dynamic equation of a spring.

- LIPM: the ZMP is a
**repellor**of the COM - LPM: the ZMP is a marginal
**attractor**of the COM

The robot is driven from above, controlling its target position.

The shape of the pendular support area changes “conically” with the ZMP altitude:

- Geometric construction of general ZMP
*support areas* - Linear-pendulum mode for multi-contact locomotion