ZMP support areas for multi-contact mobility

1
ZMP support areas for multi-contact mobility
under frictional constraints
a
are
rt iction
o
pp
fr
Su ing
d
u
l
inc
ZMP
ra
ea y g
riz en
ed era
fri to
ct rs
ion of
co
ne
s
Abstract—We propose a method for checking and enforcing
multi-contact stability based on the zero-moment point (ZMP).
Our first contribution is to characterize and provide a fast
computation algorithm for ZMP support areas in arbitrary
virtual planes. Contrary to previous works, our support areas
also account for frictional constraints. We then select a ZMP
plane above the center of mass of the robot, which turns the
usual (unstable) control law of a linear inverted pendulum into
that of a (marginally stable) linear pendulum (LP). We next
observe that pendular models involve a regulation of the dynamic
momentum, which in turn shrinks the support area of the ZMP.
Our second contribution is a new algorithm to compute ZMP
support areas under both frictional and dynamic-momentum
constraints. We show that, under an LP control law, the support
areas thus constructed are a necessary and sufficient condition
for contact stability. Based on these developments, we implement
a whole-body controller and generate dynamically-stable motions
where an HRP-4 humanoid locomotes in challenging simulation
environments.
lin
arXiv:1510.03232v1 [cs.RO] 12 Oct 2015
Stéphane Caron, Quang-Cuong Pham, Yoshihiko Nakamura
Support area
including both friction
and locomotion constraints
Index Terms—Contact stability, humanoid locomotion, zeromoment point (ZMP)
I. I NTRODUCTION
The zero-moment point (ZMP) is the dynamic quantity
thanks to which roboticists solved the problem of walking on
horizontal floors. One of its key properties is that dynamic
stability, i.e. the balance of gravito-inertial forces by valid
contact forces, implies that the ZMP lies in the convex hull
of ground contact points, the so-called support area [1], [2].
The support area thus provides a necessary (non-sufficient)
condition for contact stability on horizontal floors.
For locomotion, a second key property of the ZMP lies in its
coupling with the position of the center of mass (COM). By
keeping a constant angular momentum and constraining the
COM to lie on a plane, this relation simplifies into the Linear
Inverted Pendulum (LIP) model [3], [4]. In the LIP regime,
the COM is “pushed away” from the ZMP under the linear
dynamics of a point-mass at the tip of an inverted pendulum.
The stabilization problem is then to control the position of the
tip (COM) of the pendulum by moving its fulcrum (ZMP).
These main two merits (a geometric stability condition
and linearized dynamics) are as well-known as the two main
limitations of the ZMP: it does not account for friction, and
it can only be applied on horizontal floors. The latter results
from the definition of the ZMP as the point on the ground
Stéphane Caron and Yoshihiko Nakamura are with the Department of
Mechano-Informatics, University of Tokyo, Japan. Quang-Cuong Pham is with
the School of Mechanical and Aerospace Engineering, Nanyang Technological
University, Singapore.
Corresponding author: [email protected].
Fig. 1. Overview of the construction proposed in this paper. The ZMP support area, including positive-pressure and frictional constraints, is computed
in an arbitrary virtual plane (here, above the robot’s head). For locomotion,
linearized pendulum dynamics are obtained by regulation of the angular
momentum. The shrinking of the support area incurred by this regulation is
fully taken into account. A whole-body controller based on these developments
finally enables multi-contact locomotion for arbitrary environments.
where the moment of gravito-inertial forces is parallel to the
vertical (i.e. rolling and pitching moments are balanced) [5]. In
a general multi-contact scenario, each contact defines its own
surface and there is no single “ground” plane. In a classic
survey paper [5], Sardain and Bessonnet stated the problem to
address as follows:
The generalization of the ZMP concept [to the case
of multiple non-coplanar contacts] would be actually complete if we could define what is the pseudosupport-polygon, a certain projection of the threedimensional (3-D) convex hull (built from the two
real support areas) onto the virtual surface, inside
which the pseudo-ZMP stays.
In this paper, we provide a complete construction of the area
conjectured by Sardain and Bessonnet. Our first contribution
is to characterize and calculate this area in arbitrary virtual
planes. Our analysis provides a geometric construction along
with a simple and fast calculation algorithm. Also, contrary to
the assumption that “friction limits are not violated” usually
made in the literature, the support areas we compute fully take
friction into account.
From a practical point of view, locomoting systems usually
2
regulate their linear and angular momenta. For example, a
linear-pendulum model implies that the robot keeps a constant
angular momentum around and a constant-height COM. These
tasks restrain the set of realizable dynamic momenta, and thus
contract the ZMP support area. The second contribution of
this paper is a new algorithm to compute these contracted
support areas, taking both frictional and dynamic-momentum
constraints into account.
Combining these two advances, we design a whole-body
controller for humanoids locomoting on arbitrary terrains. We
take the ZMP plane above the COM and regulate the robot
dynamics around that of a linear non-inverted pendulum. We
showcase the applicability of the controller by locomoting a
model of the HRP-4 humanoid robot in a challenging multicontact scenario involving combinations of foot and hand
contacts.
The paper is organized as follows. In Section II, we review
previous work and introduce the dynamic concepts necessary
for understanding the paper. In Section III, we characterize
and give a fast computation algorithm for the ZMP support
area in arbitrary virtual planes. We then provide in Section IV
a complete control framework for multi-contact locomotion
based on a simple linear-pendulum model, which we validate
in simulations. In Section V, we discuss the advantages and
limitations of the method and sketch some future research
directions.
II. BACKGROUND
A. Previous work
1) Stability criteria: on horizontal floors, the support area
for the ZMP is the convex hull of contact points (CHCP).
However, when the robot makes contact with different noncoplanar surfaces, the ZMP can no longer be defined as a point
on the “ground” and the CHCP has no established connection
with dynamic stability. Various attempts have been made in
the literature to overcome this difficulty.
One line of research [6], [5], [7], [8] conjectured that the
convex hull of contact points (CHCP, a 3D volume in the
general case) conveys the stability condition, and consequently
sought to define a new point lying within this volume. Both [6]
and [8] assumed that the moments at centers of pressure and
ZMP are all zeros, which is not the case in general1 and thus
results in a point that may not exist even in situations where
stability is possible. Harada et al. [7] considered the CHCP as
ZMP support volume when the robot makes two feet contact
with a horizontal floor and hand contacts with the environment.
They detailed how to project the support volume on the floor
to obtain a ZMP support area. While their construction applies
to general dynamic wrenches with non-zero angular momenta,
like all approaches based on convex hull of contact points,
it assumes infinite friction coefficients (see Appendix A for
details). In this paper, we construct ZMP support areas that
also take friction into account.
1 As pointed by Sardain and Bessonnet [5], the term “zero moment point”
is misleading since the moment at these points has actually a non-zero
component along the surface normal.
A parallel line of research kept the ZMP in a plane but
relaxed the constraint that it coincides with the ground [9], [4],
[10], [11]. Kagami et al. [9] had the insight that the ZMP could
be taken relative to any plane normal, however they assumed
that this plane should still pass through all contact points,
which restricted their scope to a maximum of three arbitrary
contacts points. Sugihara et al. [4] introduced the notion of
“Virtual Horizontal Plane” (VHP) in which contact points are
projected on a virtual plane via the line connecting them to
the COM, and the convex hull of these points is then taken as
ZMP support area. This construction is only valid in the linear
pendulum model. Shibuya et al. [10] took the idea further
by considering a virtual plane above the COM, resulting in
marginally stable pendular dynamics rather than that of an
unstable inverted pendulum. Sato et al. [11] applied the same
idea to stair climbing. However, like CHCP, VHP support areas
suppose infinite friction coefficients (see Appendix A). The
approach proposed in the present paper also relies on virtual
plane and simple pendular dynamics, but we derive support
areas also accounting for friction and establish that they are a
necessary and sufficient condition for contact stability.
Breaking away from the notion of ZMP, another line of
work has focused on building criteria that keep equivalence
with full contact stability [12], [13], [14], [15]. The seminal
work by Saida et al. [12] impulsed a shift of paradigm from
the ZMP to the gravito-inertial wrench. It also proposed to
orient the virtual plane orthogonally to the resultant force,
which reinstates the support area as convex hull of (projected)
contact points – an idea that may have been overlooked by
the literature so far. Next, Hirukawa et al. [13] constructed
the first full stability criterion for the gravito-inertial wrench.
However their construction was high-dimensional as it relied
on the full vector of stacked contact forces. Later works [14],
[16], [15] reduced these stacked variables to the gravito-inertial
wrench itself using the double-description method. Compared
to traditional ZMP solutions, this approach has the benefit of
providing a full stability criterion, but at the cost of the nonlinear dynamics of the gravito-inertial wrench. Furthermore,
the nice geometric construction of the ZMP area is replaced by
a considerably less intuitive six-dimensional cone. The method
that we introduce in this paper reconciles full stability, linearpendulum dynamics and a geometric support area.
2) Control: when it comes to control, the use of the ZMP is
historically tied to the LIP model, which was introduced in [3],
[4] and used in a wealth of subsequent research works [17],
[6], [18], [10], [19], [7], [11], [20], [21], [22]. Kajita et al. [17]
brought in the technique of model predictive control as a way
to generate COM trajectories from desired ZMP positions.
Harada et al. [19] proposed an analytical alternative with
polynomial solutions for the coupled COM-ZMP trajectories.
Recently, Tedrake et al. [22] exhibited a closed-form solution
for the linear-quadratic regulator tracking a reference ZMP.
However, these methods only apply to LIPs on horizontal
floors.
Aiming for locomotion on rough terrains, Morisawa et
al. [18] relaxed the planar constraint on the COM to arbitrary
two-dimensional manifolds, while recent papers [20], [21]
chose to control the capture point (CP) rather than the ZMP.
3
As a control variable, the CP stabilizes the unstable dynamics
of the LIP. In terms of support areas, though, the question is
the same for the CP and the ZMP and was not addressed by
these developments.2 With the method proposed in this paper,
we realize a control system with marginally stable dynamics,
while at the same time deriving the support area corresponding
to our control variable.
As with stability criteria, solutions breaking away from
control points were also explored in the whole-body control
literature. The main alternative is to regulate contact forces
directly, resulting in force distribution schemes where desired
contact forces and torques are tracked by a whole-body
controller [13], [23], [24], [25], [26]. Force objectives can
express whole-body tasks, such as tracking of desired COM or
angular momentum, as well as local ones, such as minimizing
friction forces [25] or end-effector torques [24]. Righetti et
al. [26] characterized force-distribution controllers for linearquadratic objectives in the absence of inequality constraints.
Overall, force distribution schemes yield fast computations
and can cope with arbitrary contact conditions, but they
lack the foresight of methods based on control points and
support areas. Indeed, for locomotion, support areas provide
both reachable COM locations and a stability margin (the
point-to-boundary distance). Finding such indicators in the
high-dimensional contact-force space is still elusive. In recent
developments, [27], [28] added a level of foresight to their
contact-force controllers via model-predictive control, while
Zheng et al. [29] constructed a metric that can be used as
wrench-space stability margin. In the present paper, we show
that support areas can be derived in arbitrary multi-contact
configurations as well, providing both COM reachability and
stability margins suitable for locomotion.
B. Dynamic equilibrium
Let m and G respectively the mass and center of mass of
the whole system. For a given link k, we write
•
•
•
•
mk and Gk its mass and COM, respectively;
Rk its orientation matrix in the absolute frame;
ωk its angular velocity in the link frame;
Ik its inertia matrix in the link frame.
Then, the linear momentum P and angular momentum LG of
the system, taken at the COM G, are defined by:
P
LG
def
=
def
=
1 X
mk ṗGk ,
m
link k
X
−−→
mk GGk × ṗGk + Rk Ik ωk .
link k
The dynamic wrench of the robot at G is the wrench (Ṗ, L̇G ).
It is a purely kinematic object that can be computed by
forward kinematics (differentiating the two equations above)
from joint-angle positions, velocities and accelerations.
2 On a related note, we observe that, to the best of our knowledge, none
of the previous works using LIP found in the literature noticed that the ZMP
area was shrunk by the LIP assumptions on the angular momentum and COM
height.
The fundamental principle of dynamics states that the
dynamic wrench of the robot is equal to the total wrench of
forces acting on the system, that is
g X fic
Ṗ
f
=
, (1)
+
−−→
0
L̇G
GC i × fic
contact i
where f g denotes the gravity force, Ci the i-th contact point
and fic the contact force exerted by the environment on the
robot at Ci . This equation is also called dynamic balance or
the dynamic equilibrium of the system. It can be derived from
Gauss’s principle of least constraint and corresponds to the
six unactuated components in the equations of motion of the
system (robot + environment) [30].
Define next the gravito-inertial wrench, taken this time at a
fixed point O (not necessarily the origin of the world frame)
"
#
gi f g − Ṗ
f
def
gi def
w
=
=
. (2)
−−→
τOgi
OG × (f g − Ṗ) − L̇G
Define similarly the contact wrench, taken with respect to a
fixed point O as well,
c X fic
f
def
def
wc =
=
(3)
−
−
→
τOc
OC i × fic
contact i
Dynamic equilibrium (1) can then be written as
wgi + wc = 0.
(4)
The rationale behind this separation is that the gravito-inertial
describes the motion of the overall system while the contact
wrench describes its interactions with the environment.
C. Contact stability
We assume that all contacts between the environment and
the robot are surface contacts between polyhedral rigid bodies.
Contact wrenches at each contact are then fully described
by applying contact forces at the vertices of the contact
polygon [31], which warrants the formulation by contact points
that we have followed so far. Define the contact normal ni
at Ci as the normal to the contact surface pointing from the
environment towards the contacting link. Under Coulomb’s
model of dry friction, contact forces fic can only be realized
inside a friction cone directed by ni :
kni × fic × ni k2
≤ µi (fic · ni ).
(5)
Frictional constraints restrict the range of contact wrenches
wc that the robot can generate without breaking any contact:
when each contact force lies in a cone Ci , the contact wrench
lies in the Contact Wrench Cone (CWC) C c projected from
all Ci ’s via the mapping (3). We will say that a contact
wrench is realizable when it belongs to C c . Because of the
connection (4) between contact and motion, the gravito-inertial
wrench belongs to Gravito-inertial Wrench Cone (GIWC)
C gi = −C c . This link between motion and admissible contacts
is embodied in the notion of contact stability:
Definition 1 (Weak Contact Stability [32], [33]). A motion of
the robot is (weak-contact) stable if and only if the contact
wrench it generates belongs to the CWC.
4
We will equivalently say that a motion is dynamically stable
when the gravito-inertial wrench it generates belongs to the
GIWC.3 , Observe that, since the gravito-inertial and contact
wrenches are simply opposites (4), the two expressions refer
to the same concept. They only differ by the perspective used
to describe it, namely contact or motion.
Weak contact/dynamic stability is the underlying stability
criterion used in recent multi-contact developments [13], [14],
[16], [15]. Static stability [34] corresponds to contact stability
when the dynamic wrench is zero.
D. Linearized wrench cones
We linearize the quadratic constraint (5) by approximating
friction cone by friction pyramids (also known as polyhedral
convex cones). Denoting by fij the ray vectors of the latter,
the constraint becomes:
X
fic =
λij fij , λij ≥ 0.
(6)
ray j
The set of ray vectors {fij } is known as the span or Vrepresentation of the pyramidal cone. It can be computed
directly from the contact frame and friction coefficient µi .
For example, the expression
of a four-sided pyramid is
o
n
µi
µi
√
t
±
b
,
with
(t
, bi , ni ) the full orthonormal
ni ± √
i
i
i
2
2
contact frame.
Injecting the span combinations (6) into eq. (3) yields a
span representation for the contact wrench cone:
c X
fij
f
=
λ
λij ≥ 0.
−
−
→
ij
τOc
OC i × fij
i,j
ZMP in the plane that contains O and that is orthogonal to
n, hereafter denoted by Π(O, n). Note that, in the original
horizontal-floor setting, O belongs to the ground plane and n
is vertical.
We follow the footsteps of Sardain and Bessonnet [5] in
considering the non-central axis ∆w (n) where the moment
of a wrench w is parallel to n (note that [5] assumed that n
is vertical).
Definition 2 (Zero-tilting Moment Point of a wrench in a
plane). The zero-tilting moment point of a wrench w = (f , τ )
in the plane Π(O, n) is the point Z ∈ Π(O, n) such that
n × τZ = 0.
In this paper, we consider the ZMP Z of the contact (equivalently, gravito-inertial) wrench with respect to an arbitrary
plane. Its defining equation n × τZc = 0 can be rewritten as
−→
n × (ZO × f c ) + n × τOc = 0.
(8)
−
→
The first term of this equation expands to (n · f c )ZO − (n ·
−→ c
−→
ZO)f , but since n · ZO = 0 we have:
pZ =
n × τOc
+ pO .
n · fc
(9)
Note how, because of the ratio in the formula above, both
the contact and gravito-inertial wrench define the same ZMP
pZ . Also, when n · f c = 0, eq. (9) has no solution and cannot
be used to define a point Z. This singularity is present in the
horizontal-floor setting as well, where a horizontal resultant
f gi yields a division by zero in the formula of the ZMP [5].
−−→
Let us define τO,ij = OC i ×fij . After re-indexing the couples
(i, j) into a single index i (counting the same contact point
Ci multiple times accordingly), we get:
c X fi f
=
λi
, λi ≥ 0.
(7)
τOc
τO,i
B. Construction of the support area
We have thus obtained the span representation of the contact
wrench cone. A motion is then dynamically stable if and only
if its contact wrench can be written as (7) for a certain set of
coefficients λi ≥ 0.
The key point behind this construction is that the
GIWC/CWC does not depend on the position of the COM,
contrary to the set of dynamic wrenches realizable under contact constraints. It therefore provides a criterion for dynamic
stability that needs to be computed only once per contact
stance {Ci }.
Definition 3. The support area S of the ZMP in the plane
Π(O, n) is the image of the GIWC by the projection (9).
i
III. ZMP SUPPORT AREAS UNDER FRICTIONAL
CONSTRAINTS
A. Zero-tilting Moment Point
Let O denote a fixed reference point in the absolute frame,
not necessarily on the floor. Let n be a fixed unit space vector,
not necessarily vertical. We are interested in computing the
3 The term “stability” is used here in the sense defined by Pang and
Trinkle [32]. It should not be confused with the (a-priori unrelated) notion of
Lyapunov stability.
Equation (9) shows how the ZMP is a two-dimensional
affine projection of the gravito-inertial wrench. Since contact
stability is characterized by the GIWC, we define the support
area as the set of ZMPs corresponding to realizable contact
wrenches.
The key idea to calculate this area is to use the span
representation (7) of the CWC, which enables rewriting eq. (9)
as
P
i λi (n × τO,i )
pZ = P
+ pO , λi ≥ 0.
(10)
i λi (n · fi )
Next, define
−−→
−→ def n × τO,i
n × (OCi × fi )
OZ i =
=
.
n · fi
n · fi
(11)
def
Denote by pi = (n · fi ) the virtual pressure of the contact
force generator fi through the virtual plane. Then,
P
i λi pi pZi
P
pZ =
, λi ≥ 0.
(12)
i λi pi
Note that, on a horizontal floor, all contact forces fi point
upwards, n is vertical and points upward, in such a way that
λi pi > 0 for all i. The point Z is then a convex combination of
the Zi ’s. Furthermore, eq. (11) simplifies to Zi = Ci , i.e. , the
5
contact 3
vertices of the support area S area coincide with the contact
points, themselves taken as the vertices of the contact polygon.
We see here that our definition of the support area agrees with
the horizontal-floor setting.
In general, however, virtual pressures pi can be either
positive or negative.4 Let us then partition the set of generator
def
def
indices I into I + = {i | pi > 0} and I − = {i | pi < 0}. For
def P
any S ⊂ I, denote by σ(S) =
i∈S λi |pi | and define
αi
βi
def
=
def
=
+λi pi
for i ∈ I + ,
σ(I + )
−λi pi
for i ∈ I − ,
σ(I − )
σ(I + )
.
σ(I)
−
def σ(I )
β =
.
σ(I)
def
α =
Equation (10) becomes
#
"
X
X
1
βi pZi .
αi pZi − β
pZ =
α
α−β
−
+
i∈I
i∈I
Define the positive-pressure polygon as the convex hull of
P
def P
Zi ’s for i ∈ I + : P + = { i∈I + αi pZi , αi ≥ 0, i αi = 1},
and define the negative-pressure polygon P − mutatis mutandis. If one of these two polygons is empty, Z simply belongs
to the other. Otherwise, the above expression can be rewritten
as
αpZ + − βpZ −
pZ =
,
(13)
α−β
where α ≥ 0, β ≥ 0, Z + ∈ P + and Z − ∈ P − .
We can now characterize the support area.
Proposition 1. If one of the two polygons P + or P − is empty,
S is equal to the other. Otherwise, Let D = P + − P − =
CONV ({r1 , . . . , rk }) denote the vertices of the Minkowski
difference of the two convex polygons. Then, the support area
S is the reunion of the two polygonal cones C + and C − given
by
P
C + = P + + i R+ ri ,
P
C − = P − + i R+ (−ri ).
In particular, when P + ∩P − has non-empty interior, S covers
the whole plane Π(O, n).
Proof: eq. (13) can be reformulated as
β −−−−−→
α −−+−−→
pZ = pZ + +
Z Z + = pZ − +
Z Z−
α−β
β−α
Therefore, the set of points Z defined by this equation is
β −−−−−→
def
S =
pZ + +
Z Z + , α ≥ β ≥ 0, Z ± ∈ P ±
α−β
α −−+−−→
−
±
±
∪
pZ − +
Z Z , β ≥ α ≥ 0, Z ∈ P
.
β−α
Given the orderings of α and β, we can further simplify the
ratios into a single positive scalar, so that S = C + ∪ C − with
n
o
−−−−→
C+ =
pZ + + λZ − Z + , λ ≥ 0, Z ± ∈ P ± , (14)
n
o
−−−−→
C− =
pZ − + λZ + Z − , λ ≥ 0, Z ± ∈ P ± . (15)
4 We assume n is chosen so that none of them is zero, which is easy to do
since there is only a finite set of generators {fi }.
contact
1
contact 2
Fig. 2. Example of computed support area in the dual-cone case. There are
three contacts in total. Contacts 1 and 2 are made with the same horizontal
surface and correspond to the feet of the robot. Contact 3 is located one meter
above the others and made with a vertical surface in front of the robot. The
virtual plane is taken horizontal and 50 cm above the feet’s plane. Polygons
P + and P − used in the construction process are drawn in purple. Blue
lines connect the vertices generated by contact 3. They illustrate that a single
surface contact can yield vertices in both P + and P − at the same time.
The set D = P + − P − is a convex polygon as Minkowski
difference of two convex polygons. To conclude, we show
that C + = P + + R+ D. The inclusion ⊂ is straightforward
from (14). Now, let pC = pZ + + µ(pZ + − pZ − ) denote any
1
0
point in P + + R+ D. Define
1
µ
def
pZ + =
pZ + +
p +.
0
1+µ
1 + µ Z1
One can check that pC = pZ + + µ(pZ + − pZ − ), where Z +
belongs to P + as convex combination of two points from this
convex polygon. Thus C ∈ C + , which establishes the converse
inclusion ⊃. Finally, note how, when P + ∩ P − has non-empty
interior, D contains a neighborhood of the origin and C + =
P + + R+ D becomes the whole plane.
When both pressure polygons are non-empty, Proposition 1
provides the V-representation of the two polygonal cones. The
dual (half-space or H-)representation of these cones provides
the boundary segments and half-lines of the support area.
General techniques such as the double description method [35]
can be employed here to convert from one representation to the
other. However, since the problem at hand is two-dimensional,
one can also use the following simple algorithm.
In 2D, the Minkowski difference has only two extreme rays
(r1 , r2 ) which are easy to extract in linear time. Next, suppose
def
w.l.o.g. that r1 ×r2 > 0, and denote by v1 = arg mini r1 ×vi
def
and v2 = arg maxi r2 ×vi . Half-lines of the H-representation
are given by v1 + R+ r1 , v2 + R+ and all line segments (in
clockwise ordering of the convex hull) from v1 to v2 . See [36]
for implementation details.
C. Geometric properties of the support area
We now provide a geometric formulation of the support
area freed from the choice of the arbitrary reference point O
used in the construction. A first thing to notice is that the
only coordinate of O influencing S is its position along the
non-central axis ∆c (n) of the wrench.
6
Proposition 2. The support area S does not depend on the
coordinates of the reference point O in the plane Π(O, n).
Proof: By definition of the support area,
n
−→ n×τ c o
S = Z ∈ Π(O, n) : OZ = n·f cO
(16)
where (f c , τ c ) ∈ C c ranges over the CWC. Now, choose a
point O0 ∈ Π(O, n) and consider
n
−−→ n×τ c o
S 0 = Z 0 ∈ Π(O, n) = Π(O0 , n) : O0 Z 0 = n·fOc 0 . (17)
Consider one particular wrench (f c , τOc ) and Z and Z 0 defined
by the equalities inside (16) and (17). We have
−−→
−−
→
n × (O0 O × f c ) + n × τOc
n × τOc 0
0 0
=
OZ =
n · fc
n · fc
−−0→
−−0→ f c
−→ −−→
+ OZ = O0 Z,
= O O − (n · O O)
c
n·f
Thus, Z 0 = Z, and since the wrench (f c , τ c ) ∈ C c we
considered is arbitrary, we have shown that S = S 0 .
By contrast, the support area does change for displacements
of O along the non-central axis ∆c (n). Let us analyze the
impact of this remaining coordinate by relaxing the assumption
−→
−→
(OZ · n) = 0 into (OZ · n) = dZ , where dZ is the axial
coordinate of the virtual plane Π(dZ , n). The definition n ×
τZc = 0 expands to
−→
n × OZ × f c = n × τOc
−→
(n · f c )OZ − dZ f c = n × τOc ,
so that
pZ =
n × τOc
fc
+ pO + dZ
.
c
n·f
n · fc
(18)
Repeating the step from eq. (11),
−−→
OZi
def
pZi
=
=
n × τO,i
fi
+ dZ
,
n · fi
n · fi
fi
.
pCi + (dZ − di )
n · fi
(19)
We thus obtain the same equation (12), but this time the
vertices Zi of the support area have a different axial coordinate
dZ . It also appears from eq. (19) that Zi is the intersection
between the plane Π(dZ , n) and the line passing through Ci
and directed by fi , the latter being a ray of the linearized
friction cone. We have thus established that:
Property 1. The vertices of the support area are located at
the intersection between the virtual plane and the rays of the
friction cones.
This property gives a first geometric interpretation of the
support area, yet it only provides its vertices. We saw in
Prop. 1 how reconstructing the area from these vertices is not
straightforward. Still, when a suitable plane orientation n can
be found so that S is a polygon, we get a simple geometric
characterization.
Corollary 1 (Geometric characterization of the support area).
def
When all virtual pressures pi = (n · fi ) are positive, the
Fig. 3. Geometric construction of the ZMP support area in the polygonal
case. Ray generators of friction cones (red lines) are traced until they intersect
the virtual plane, yielding points inside the support area (black dots). The
support area (in green) is the convex hull of this set of points. The blue
polygon corresponds to the individual support polygon of the right contact.
These polygons can be used for an alternative construction of the ZMP support
area suited to the problem of contact planning.
support area is the convex hull of the intersection between
linearized friction cones and the virtual plane.
This result is coherent with the horizontal-floor setting
where the virtual plane intersects friction cones at their apexes,
i.e. at contact points, and virtual pressures are all positive from
contact unilaterality. A condition similar to the positivity of
virtual pressures was also observed by Saida et al. (property
4.1 in [12]) for plane components of the gravito-inertial
wrench.
Figure 3 illustrates the geometric construction. The support
area (in green) is the convex hull of the set of black points
projected from friction rays (red lines). Alternatively, each
individual contact surface projects its own support polygon
(in blue for the right contact), and the ZMP support area
is the convex hull of these individual polygons. This second
construction is useful for contact planning as it provides a
valuation criterion for new contacts, namely the expansion that
they bring to the support area.
Finally, let us determine in which cases a polygonal ZMP
support area can be found, which boils down to finding a
suitable vector n. Let Cf denote the cone positively spanned
by the fi ’s. Then, the condition ∀i, (n · fi ) > 0 is equivalent
to n ∈ Cf∗ , where Cf∗ is the dual cone of Cf defined by
Cf∗ = {y : ∀x ∈ Cf , y · x ≥ 0}.
The set of solutions Cf∗ can be computed from Cf using e.g. the
double description method. In particular, Cf∗ = {0} if and only
if Cf = R3 , i.e. the fi ’s positively span the whole space. Thus,
either contact forces can generate any arbitrary resultant force5
or one can find an orientation n such that the support area is
polygonal.
D. Generality of the concept
Although historically the ZMP has been mostly used in
locomotion, the support areas constructed in this section are
5 this condition is weaker than force closure, which usually assumes that
contact forces can generate arbitrary resultant forces and torques
7
defined for arbitrary contact wrenches. As such, they also
apply to related fields dealing with mobility under frictional
constraints, such as grasping or workpiece fixturing.
As a mathematical object, support areas are 2D (non-linear)
projections of the 6D contact wrench cone. From there, one
could question the generality of this construction: is it the
“best” we can do? Could there exist a 3D projection that would
account for all three components of the resultant moment,
rather than only two? For the interested reader, we provide
some elements of answer to these questions in Appendix B.
IV. M ULTI - CONTACT L OCOMOTION VIA LP C ONTROL
A. Relationship between ZMP and COM
From a control point of view, the interest of the ZMP lies
in its relationship with the acceleration of the COM.
Proposition 3. The position of the ZMP relative to the COM
is bound to the dynamic momentum by
p̈G = g +
n × L̇G
γ + d¨G −→
ZG +
,
dG − dZ
m(dG − dZ )
(20)
def
where g is the gravity vector. The constant γ = −(n · g)
coincides with the gravity constant g when n is upward
vertical.
Proof: By definition of the gravito-inertial wrench,
f gi
gi
=
m(g − p̈G ),
−m(γ + d¨G ).
(n · f ) =
−−→
Expanding
= OG × f gi − L̇G in eq. (18) yields
−→
−−→
(n · f gi )OZ = n × OG × f gi − n × L̇G + dZ f gi
−→
(n · f gi )GZ = (dZ − dG )f gi − n × L̇G
−→
m(γ + d¨G )ZG = m(dZ − dG )(g − p̈G ) − n × L̇G .(21)
τOgi
Equation (20) is a rearrangement of the latter.
We saw in Section III how to construct support areas
in virtual planes of arbitrary axial coordinate dZ . We now
establish that, from a control perspective, all planes on the
same “side” of the COM (dZ > dG or dZ < dG ) are
equivalent.
Proposition 4. Let Z ∈ Π(dZ , n) denote the ZMP resulting
from a given wrench by eq. (18). Then, eq. (20) yields the same
COM acceleration regardless of the plane coordinate dZ .
Proof: Denote by (f gi , τOgi ) the gravito-inertial wrench
generating Z by (18). Let us differentiate (20) with respect to
the parameter dZ :
h
i
−→
−→
(γ + d¨G )ZG + n×mL̇G
γ + d¨G ∂ ZG
∂ p̈G
=
−
.
∂dZ
dG − dZ ∂dZ
(dG − dZ )2
−→
From (18), we have ∂ ZG/∂dZ = −f gi /m(γ + d¨G ). Meanwhile, the factor between brackets can be replaced by (21),
yielding:
gi
gi
−f
(dZ − dG )f
∂ p̈G
=
−
= 0.
∂dZ
m(dG − dZ )
m(dG − dZ )2
Note that this proposition does not mean that two ZMPs
with the same planar coordinates but in different planes yield
the same COM acceleration. Equivalent ZMPs are aligned on
the axis ∆gi (n) directed by the resultant force f gi , and thus
have different coordinates in different planes in general.
B. Linear pendulum models: LP and LIP
Taking n as the upward vertical vector of the world frame
n = eZ , eq. (20) can be rewritten as
ẍG
=
ÿG
=
L̇Gy
g + z̈G
(xG − xZ ) −
zG − zZ
m(zG − zZ )
g + z̈G
L̇Gx
(yG − yZ ) +
zG − zZ
m(zG − zZ )
(22)
(23)
When the angular momentum is zero and zZ < zG ,
these expressions reduce to the well-known linear invertedpendulum (LIP) model [3], [4]:
r
2
g + z̈G (xZ − xG )
ẍG = −ωIP
def
ωIP =
2
(yZ − yG )
ÿG = −ωIP
zG − zZ zZ <zG
The assumption that zZ < zG was taken for granted in
previous works as the ZMP was supposed to lie on the ground.
But our analysis now allows us to select the other side of the
domain identified in Proposition 4, that is to say zZ > zG . In
this new setting, equations (22)-(23) reduce to a linear (noninverted) pendulum (LP):
r
2
g + z̈G ẍG = ωP
(xZ − xG )
def
ωP =
2
(yZ − yG )
ÿG = ωP
zZ − zG zZ >zG
(24)
The key difference between the two approaches lies in the
stability of the control law. The equilibrium position of an LIP
is unstable in the sense that the COM is always diverging away
from the ZMP. Consequently, to regulate the COM around a
fixed position, the ZMP of an LIP needs to be constantly in
motion. On the contrary, the equilibrium position of an LP is
stable, with the COM always moving towards the ZMP. Taking
the ZMP above the COM rather than below thus directly
results in a stable6 control law, with no need for intermediate
stabilization variables such as the Capture Point.
C. ZMP support areas under LP regulation
In general, keeping the ZMP in the support area does not
provide full contact stability as the ZMP only represents two
out of the six wrench coordinates (the four remaining coordinates have constraints that ought to be checked as well). However, it becomes a full stability condition when the four other
coordinates are regulated by z̈G = 0 and L̇G = 0, which yields
LP dynamics. In this regime, Equations (22)-(23) become a
one-to-one mapping between ZMP and dynamic-momentum
coordinates. Adding these regulations consequently reduces
6 Since there is no damping term in eq. (24), the precise stability property
is marginal stability, i.e. the COM is either at or orbiting around the ZMP.
Convergence can be added by e.g. leveraging the angular momentum to
generate a damping term.
8
the support area to a smaller polygon or cone, which we
will call the LP support area for short.7 It turns out that the
computation of this set by the double-description method is
very similar to that of the COM static-stability polygon. We
explain both calculations here.
1) Static stability: when the system is in static equilibrium,
the two equations ẍG = ÿG = 0 add up to the four previouslymentioned z̈G = 0 and L̇G = 0. In terms of the gravito-inertial
wrench, these six equations become
gi g
f
= m −−→
τOgi
OG × g
−−→
By expanding the triple product (n× OG×g), one can rewrite
them equivalently as:
gi f
I3
03×3
mg
=
0
01×3 n>
τOgi
pG = pO − (n/mg) × τOgi + zG n
gi
gi
In concise form: AwO
= b and pG = CwO
+ d. Next, consider the stacked vector of contact forces f all = [f1c · · · fnc ]> .
Linearized friction cones are given in half-space representation
by linear inequalities Fi fic ≤ 0. For instance, four-sided
friction pyramids correspond to


−1 0 −µi
 +1 0 −µi  >

Fi = 
 0 −1 −µi  Ri .
0 +1 −µi
Combining all Fi ’s in a block diagonal matrix F yields an
inequality Ff all ≤ 0. Meanwhile, eq. (3)-(4) provide a linear
gi all
gi
f from contact forces to the gravito= WO
mapping wO
inertial wrench. Summing up, the set of realizable contact
forces in static-stability is given in half-space representation
by
Ff all
gi all
AWO
f
≤
0
= b
Using the double description method, oneP
can compute the
vertex representation of this set as f all = i λi gi (λi > 0).
The vertices of the COM stability polygon are finally given
by vi = Cgi + d.
Note that this method for computing the COM staticstability polygon by double-description is different from the
recursive polytope projection algorithm proposed in [34].
2) Dynamic stability: contrary to the previous setting,
where the COM position pG resulted from the gravito-inertial
wrench, we know assume that pG is known. The four dynamicwrench equations for the LP regime become, for the gravitoinertial wrench,
gi −mg
f
n> 01×3
= −−→
.
gi
03×3
I3
τO
OG × f gi
7
Strictly speaking, our definition of an LP-regulated system includes
L̇Gz = 0, which is not necessary to achieve linear pendulum dynamics.
−−→
Again, expanding the triple product (n × OG × f gi ) in the
expressions above, one can rewrite them equivalently as
gi −−→ zG I3
[n×]
f
−mg OG
=
−−→
τOgi
(n × OG)> −n>
0
gi
In concise form: A0 wO
= b0 . The coordinates of the ZMP
gi
are given by eq. (18) as pZ = C0 wO
+ d0 . From there,
the computation of the dynamic ZMP support area using the
double description method is exactly the same as with static
stability.
Note that, contrary to static stability setting where the
area is always a polygon [34], the LP support area may be
either conical or polygonal. We observed both outcomes in
simulations.
D. Trajectory generation for the LP model
We now design a trajectory generator for ZMP-COM
trajectories based on the model-preview control formalism
introduced in previous works [17], [28]. We use the ZMP and
COM as command and output variables respectively. First, we
interpolate ZMP trajectories as line segments
pZ (t) = u(t)p0 + (1 − u(t))p1 .
The COM being constrained to a plane Π(zG , eZ ) parallel to
the one Π(zZ , eZ ) of the ZMP, LP dynamics (24) yield:
pG (t) = v(t)p0 + (1 − v(t))p1 + (zG − zZ )eZ ,
2
(u − v). Using line segments, the twowhere v̈ = ωP
dimensional problem of controlling (xG , yG ) from (xZ , yZ )
is thus reduced to the one dimensional problem of controlling
v from u.
We now define the state of our control problem by
x = [v v̇]> and its command by the linear position u of the
ZMP. Discretizing the time interval into K steps of duration
δt, the system’s linear dynamics become
0
1
δt
u
(25)
xk +
xk+1 =
2
2
δt
δt 1
ωP
−ωP
> >
Let X = [x>
and u = [u0 · · · uK−1 ]> . Applying
0 · · · xK ]
(25) repeatedly, we build the matrices Φ and Ψ such that
X = Φx0 + Ψu. We assume that the system starts with zero
COM velocity, so that x0 = 0.
Finally, we formulate the trajectory generation problem as
a Quadratic Program (QP) as follows:
Objective:
min w1 c1 (u) + w2 c2 (u)
Constraints: 0 ≤ u ≤ 1
xK = Ψlast u = [ 1 0 ]>
uK−1 = 1
The objective is the weighted sum of two terms:
P
1
(vk − uk )2
c1 (u) = K
P k
2
c2 (u) =
k (uk − uk−1 )
The first one minimizes COM accelerations while the second
regularizes the ZMP trajectory. We chose the weights w1 = 1
and w2 = 100.
9
The constraints ensure respectively that:
1) the ZMP belongs to the line segment (u(t) ∈ [0, 1])
2) the COM ends at the destination point (vK = 1) with
zero velocity (v̇K = 0),
3) the ZMP also ends at the destination point (uK−1 = 1).
With this method, maintaining dynamic stability is mostly
enforced by including the segment [p0 , p1 ] inside the LP
support area computed for the initial COM position pG (0).
However, the COM will move as the robot performs the
motion, which affects both the position and shape of the LP
support area. We detail how we cope with this phenomenon
in the following section.
On a technical note, set aside the two regularization objectives, this optimization problems falls directly under the framework of Time-Optimal Path Parameterization (TOPP) [37],
[38]. One could consequently trade smoothness of COM accelerations for Admissible Velocity Propagation (AVP), allowing
for a direct integration into a kinodynamic planner of COM
trajectories [39].
E. Validation in simulations
We implemented the whole pipeline described so far to
generate dynamically-stable multi-contact motions for a model
of the HRP-4 humanoid robot. The scenario is depicted in
Figure 4. The robot has to step on inclined platforms in order
to reach its goal configuration on the right. Because there is no
platform for its left foot in the middle of the course, the only
way for it to complete the task is to use of the elevated “wall”
platform with its left hand while keeping its right foot on
the opposite tilted surface. Relying on these two simultaneous
contacts, the humanoid can perform a long stride with its left
leg, which would have been impossible to achieve in singlesupport.
As input given to solve this scenario, we assume that a
contact planner provides a sequence of contact stances, where
a stance provides both a reference position of the COM and a
set of contact points. The first stage of our solution computes
stance-to-stance COM trajectories. To move from stance i
to stance i + 1, the controller considers the line segment
(i)
(i+1)
[pG , pG ]. The trajectory generator is called if this segment
(i)
is included in the LP support area S(pG , zZ ) for the initial
COM position. Otherwise, zZ is increased until the segment
(i)
is included in S(pG , zZ ). This condition was quite easy to
fullfil in practice, as we observed that the region S(pG , zZ )
grows like the section by the plane Π(zZ , n) of a cone passing
through G, i.e. shrinking to a single point when zZ → zG and
expanding proportionally to the distance (zZ −zG ). In practice,
taking a ZMP one meter above the center of mass (HRP-4 is
1.5-meter tall) was enough to generate the complete motion
depicted in Figure 4.8
Once the reference COM trajectory pG (t) has been computed for the overall motion, whole-body joint-angles are
8 One may be tempted to take high plane coordinates z , as it would only
Z
enlarge the corresponding support areas. However, we observed empirically
that very high planes tend to generate numerical instabilities in both the
double-description library cddlib [35] and the trajectory generator described
in IV-D.
TABLE I
G AINS AND WEIGHTS USED IN THE DIFFERENTIAL IK TRACKER
( N / A : NO GAIN FOR TASKS REGULATING ACCELERATIONS )
TASK DESCRIPTION
Contacting end-effector
Free end-effector
Center of mass tracking
Angular momentum variations
Velocity smoothness
Preferred joint-angles
G AIN [Hz]
1
0.01
1
N/A
N/A
0.05
W EIGHT
100
100
1
0.2
1
0.1
TABLE II
S IMULATION AND TRAJECTORY GENERATION PARAMETERS
D ESCRIPTION
Friction coefficient (all contacts)
Number of traj. gen. timesteps
Duration of traj. gen. timesteps
Plane normal
Step duration
Velocity limits
S YMBOL
µ
K
δt
n
TS
q̇max
VALUE
0.5
100
10 ms
[0 0 1]
2.5 [s]
0.5 [rad/s]
generated by differential inverse kinematics (IK) under the
following constraints (by decreasing task weight):
1) tracking of the contacting end-effector poses,
2) tracking of the COM trajectory,
3) minimum variations in angular momentum
4) preferred values for some joint-angles.
We used our own IK solver for the task, which is publicly
available in the pymanoid9 library. Similarly to [24], this solver
is formulated as a single-layer QP problem with linear inequality constraints. Gains and weights used in the simulations
are reported in Table I, while other simulation parameters are
given in Table II. Other implementation details are available
in the source code of the experiment [36]
Center-of-mass, feet and hands motions generated by locomotion are not compatible with a strict regulation of the
angular-momentum. As such, a whole-body controller can only
provide a “best effort” solution that tries to keep variations
in angular-momentum to a minimum (L̇G ≈ 0), while LP
support areas correspond to dynamic stability for L̇G = 0. We
therefore confirmed the validity of our approach by computing
contact forces satisfying dynamic-equilibrium and frictional
constraints at each time step of the generated motion. We
confirmed that such forces always exist. Force vectors are
depicted in Figure 4 and displayed in the accompanying
video [36].
V. C ONCLUSION AND FUTURE WORK
In this paper, we derived the geometric construction of
ZMP support areas in arbitrary planes from arbitrary contact
wrench cones. Contrary to previous works, this approach also
takes friction into account. We then focused on locomotion in
general environments. We observed that the simplified models
commonly used in locomotion to produce linear dynamics
actually shrink the ZMP support area. We consequently proposed a novel algorithm to calculate the correct area, which
we applied to the linear (non-inverted) pendulum model.
9 https://github.com/Tastalian/pymanoid
10
Fig. 4. Snapshots of the motion generated by ZMP control of the COM from above under LP regulation. The scenario is designed so that the robot has to
put its hand on the high platform (in the background) and right foot on the opposite tilted platform in order to perform an ample swing of the left leg that is
otherwise impossible. In these simulations, the ZMP plane is taken one meter above the robot’s COM. Green polygons in the plane above the robot’s head
are the respective support areas for each snapshot. The (virtual) linear pendula between ZMPs (points in the support polygons) and their attached COM are
depitched by gray wires. The correctness of our dynamic-stability criterion was cross-validated by explicit computation of contact forces at each time instant
(arrows at the corners of each contact surfaces).
Armed with these new conceptual tools, we designed a wholebody controller for locomotion across arbitrary multi-contact
stances, which we demonstrated and validated in simulation
with a model of the HRP-4 humanoid robot.
We believe that the ability to take ZMPs in virtual support
areas paves the way for multiple future developments. We can
break them into three axes:
•
•
•
Contact stability: support areas are a general property of
contact wrenches with no particular ties to the problem
of locomotion. As a result, they also have potential applications in related fields such as grasping or workpiece
fixturing.
Control: although we have focused on LP dynamics, the
use of the double-description method applies to a broader
range of simplified models. Examples of extensions include adapting the COM height to terrain shape [18] or
implementing a damping term in the pendular dynamic
equations.
Planning: we discussed how individual contact polygons
can be used by a contact planner to measure the “increase of stability” of a prospective contact. Trajectory
generation for the linear pendulum model also integrates
within the framework of Admissible Velocity Propagation (AVP) [39], which opens the way for kinodynamic
planning in the three-dimensional COM space.
Finally, from a neurophysiological perspective, the control
of the COM from above proposed in this paper resonates with
the remarkable experimental observation of head stabilization
during walking in humans [40], and ensuing locomotion
models where COM and stabilized head play complementary
roles [41]. Exploring this connection is another possible direction of research.
R EFERENCES
[1] M. Vukobratović and J. Stepanenko, “On the stability of anthropomorphic systems,” Mathematical biosciences, vol. 15, no. 1, pp. 1–37, 1972.
[2] A. Goswami, “Postural stability of biped robots and the foot-rotation
indicator (fri) point,” The International Journal of Robotics Research,
vol. 18, no. 6, pp. 523–533, 1999.
[3] S. Kajita, F. Kanehiro, K. Kaneko, K. Yokoi, and H. Hirukawa, “The
3d linear inverted pendulum mode: A simple modeling for a biped
walking pattern generation,” in Intelligent Robots and Systems, 2001.
Proceedings. 2001 IEEE/RSJ International Conference on, vol. 1. IEEE,
2001, pp. 239–246.
[4] T. Sugihara, Y. Nakamura, and H. Inoue, “Real-time humanoid motion
generation through zmp manipulation based on inverted pendulum
control,” in Robotics and Automation, 2002. Proceedings. ICRA’02.
IEEE International Conference on, vol. 2. IEEE, 2002, pp. 1404–1409.
[5] P. Sardain and G. Bessonnet, “Forces acting on a biped robot. center of
pressure-zero moment point,” Systems, Man and Cybernetics, Part A:
Systems and Humans, IEEE Transactions on, vol. 34, no. 5, pp. 630–
637, 2004.
11
[6] K. Mitobe, S. Kaneko, T. Oka, Y. Nasu, and G. Capi, “Control of legged
robots during the multi support phase based on the locally defined zmp,”
in Intelligent Robots and Systems, 2004.(IROS 2004). Proceedings. 2004
IEEE/RSJ International Conference on, vol. 3. IEEE, 2004, pp. 2253–
2258.
[7] K. Harada, S. Kajita, K. Kaneko, and H. Hirukawa, “Dynamics and
balance of a humanoid robot during manipulation tasks,” Robotics, IEEE
Transactions on, vol. 22, no. 3, pp. 568–575, 2006.
[8] K. Inomata and Y. Uchimura, “3dzmp-based control of a humanoid
robot with reaction forces at 3-dimensional contact points,” in Advanced
Motion Control, 2010 11th IEEE International Workshop on. IEEE,
2010, pp. 402–407.
[9] S. Kagami, T. Kitagawa, K. Nishiwaki, T. Sugihara, M. Inaba, and
H. Inoue, “A fast dynamically equilibrated walking trajectory generation
method of humanoid robot,” Autonomous Robots, vol. 12, no. 1, pp. 71–
82, 2002.
[10] M. Shibuya, T. Suzuki, and K. Ohnishi, “Trajectory planning of biped
robot using linear pendulum mode for double support phase,” in IEEE
Industrial Electronics, IECON 2006-32nd Annual Conference on. IEEE,
2006, pp. 4094–4099.
[11] T. Sato, S. Sakaino, E. Ohashi, and K. Ohnishi, “Walking trajectory
planning on stairs using virtual slope for biped robots,” Industrial
Electronics, IEEE Transactions on, vol. 58, no. 4, pp. 1385–1396, 2011.
[12] T. Saida, Y. Yokokohji, and T. Yoshikawa, “Fsw (feasible solution of
wrench) for multi-legged robots,” in Robotics and Automation, 2003.
Proceedings. ICRA’03. IEEE International Conference on, vol. 3. IEEE,
2003, pp. 3815–3820.
[13] H. Hirukawa, S. Hattori, K. Harada, S. Kajita, K. Kaneko, F. Kanehiro,
K. Fujiwara, and M. Morisawa, “A universal stability criterion of the
foot contact of legged robots-adios zmp,” in Robotics and Automation,
2006. ICRA 2006. Proceedings 2006 IEEE International Conference on.
IEEE, 2006, pp. 1976–1983.
[14] Z. Qiu, A. Escande, A. Micaelli, and T. Robert, “Human motions
analysis and simulation based on a general criterion of stability,” in
International Symposium on Digital Human Modeling, 2011.
[15] S. Caron, Q.-C. Pham, and Y. Nakamura, “Leveraging cone double
description for multi-contact stability of humanoids with applications
to statics and dynamics,” in Robotics: Science and System, 2015.
[16] A. Escande, A. Kheddar, and S. Miossec, “Planning contact points for
humanoid robots,” Robotics and Autonomous Systems, vol. 61, no. 5,
pp. 428–442, 2013.
[17] S. Kajita, F. Kanehiro, K. Kaneko, K. Fujiwara, K. Harada, K. Yokoi,
and H. Hirukawa, “Biped walking pattern generation by using preview
control of zero-moment point,” in Robotics and Automation, 2003.
Proceedings. ICRA’03. IEEE International Conference on, vol. 2. IEEE,
2003, pp. 1620–1626.
[18] M. Morisawa, S. Kajita, K. Kaneko, K. Harada, F. Kanehiro, K. Fujiwara, and H. Hirukawa, “Pattern generation of biped walking constrained
on parametric surface,” in Robotics and Automation, 2005. ICRA 2005.
Proceedings of the 2005 IEEE International Conference on. IEEE,
2005, pp. 2405–2410.
[19] K. Harada, S. Kajita, K. Kaneko, and H. Hirukawa, “An analytical
method for real-time gait planning for humanoid robots,” International
Journal of Humanoid Robotics, vol. 3, no. 01, pp. 1–19, 2006.
[20] M. Morisawa, N. Kita, S. Nakaoka, K. Kaneko, S. Kajita, and F. Kanehiro, “Biped locomotion control for uneven terrain with narrow support
region,” in System Integration (SII), 2014 IEEE/SICE International
Symposium on. IEEE, 2014, pp. 34–39.
[21] J. Englsberger, C. Ott, and A. Albu-Schaffer, “Three-dimensional bipedal
walking control based on divergent component of motion,” Robotics,
IEEE Transactions on, vol. 31, no. 2, pp. 355–368, 2015.
[22] R. Tedrake, S. Kuindersma, R. Deits, and K. Miura, “A closed-form
solution for real-time zmp gait generation and feedback stabilization,”
in Proceedings of the International Conference on Humanoid Robotics,
2015.
[23] S.-H. Hyon, J. G. Hale, and G. Cheng, “Full-body compliant human–
humanoid interaction: balancing in the presence of unknown external
forces,” Robotics, IEEE Transactions on, vol. 23, no. 5, pp. 884–898,
2007.
[24] S.-H. Lee and A. Goswami, “Ground reaction force control at each
foot: A momentum-based humanoid balance controller for non-level and
non-stationary ground,” in Intelligent Robots and Systems (IROS), 2010
IEEE/RSJ International Conference on. IEEE, 2010, pp. 3157–3162.
[25] C. Ott, M. Roa, G. Hirzinger et al., “Posture and balance control for
biped robots based on contact force optimization,” in Humanoid Robots
(Humanoids), 2011 11th IEEE-RAS International Conference on. IEEE,
2011, pp. 26–33.
[26] L. Righetti, J. Buchli, M. Mistry, M. Kalakrishnan, and S. Schaal,
“Optimal distribution of contact forces with inverse-dynamics control,”
The International Journal of Robotics Research, vol. 32, no. 3, pp. 280–
298, 2013.
[27] K. Nagasaka, T. Fukushima, and H. Shimomura, “Whole-body control
of a humanoid robot based on generalized inverse dynamics and multicontact stabilizer that can take acount of contact constraints,” in Robotics
Symposium (in Japanese), vol. 17, 2012.
[28] H. Audren, J. Vaillant, A. Kheddar, A. Escande, K. Kaneko, and
E. Yoshida, “Model preview control in multi-contact motion-application
to a humanoid robot,” in Intelligent Robots and Systems (IROS 2014),
2014 IEEE/RSJ International Conference on. IEEE, 2014, pp. 4030–
4035.
[29] Y. Zheng and K. Yamane, “Generalized distance between compact
convex sets: Algorithms and applications,” Robotics, IEEE Transactions
on, vol. 31, no. 4, pp. 988–1003, 2015.
[30] P.-B. Wieber, “Holonomy and nonholonomy in the dynamics of articulated motion,” in Fast motions in biomechanics and robotics. Springer,
2006, pp. 411–425.
[31] S. Caron, Q.-C. Pham, and Y. Nakamura, “Stability of surface contacts
for humanoid robots: Closed-form formulae of the contact wrench cone
for rectangular support areas,” in Robotics and Automation (ICRA), 2015
IEEE International Conference on. IEEE, 2015.
[32] J.-S. Pang and J. Trinkle, “Stability characterizations of rigid body
contact problems with coulomb friction,” ZAMM-Journal of Applied
Mathematics and Mechanics/Zeitschrift für Angewandte Mathematik und
Mechanik, vol. 80, no. 10, pp. 643–663, 2000.
[33] D. J. Balkcom and J. C. Trinkle, “Computing wrench cones for planar rigid body contact tasks,” The International Journal of Robotics
Research, vol. 21, no. 12, pp. 1053–1066, 2002.
[34] T. Bretl and S. Lall, “Testing static equilibrium for legged robots,”
Robotics, IEEE Transactions on, vol. 24, no. 4, pp. 794–807, 2008.
[35] K. Fukuda and A. Prodon, “Double description method revisited,” in
Combinatorics and computer science. Springer, 1996, pp. 91–111.
[36] (Source code and video to be put online).
[37] Q.-C. Pham, “A general, fast, and robust implementation of the
time-optimal path parameterization algorithm,” IEEE Transactions on
Robotics, vol. 30, pp. 1533–1540, 2014.
[38] Q.-C. Pham and O. Stasse, “Time-optimal path parameterization
for redundantly-actuated robots: A numerical integration approach,”
IEEE/ASME Transactions on Mechatronics, 2015.
[39] Q.-C. Pham, S. Caron, and Y. Nakamura, “Kinodynamic planning in
the configuration space via velocity interval propagation,” in Robotics:
Science and System, 2013.
[40] T. Pozzo, A. Berthoz, and L. Lefort, “Head stabilization during various
locomotor tasks in humans,” Experimental Brain Research, vol. 82,
no. 1, pp. 97–106, 1990.
[41] J.-P. Laumond, M. Benallegue, J. Carpentier, and A. Berthoz,
“The Yoyo-Man,” in International Symposium on Robotics Research
(ISRR), Sestri Levante, Italy, Sep. 2015. [Online]. Available: https:
//hal.archives-ouvertes.fr/hal-01175591
[42] R. Cisneros, K. Yokoi, and E. Yoshida, “Yaw moment compensation by
using full body motion,” in Mechatronics and Automation (ICMA), 2014
IEEE International Conference on. IEEE, 2014, pp. 119–125.
A PPENDIX A
CHCP AND INFINITE FRICTION
Methods that take the Convex Hull of Contact Points
(CHCP) as ZMP support areas rely by construction on the
assumption that arbitrary contact forces can be exerted at
each contact points, i.e. that friction coefficients are infinite.
This assumption was reasonable for e.g. walking on horizontal
floors, where the COM is high enough to lie inside contact friction cones. However, it becomes problematic in more general
settings such as multi-contact locomotion or walking on lowfriction floors (apart from sliding, foot yaw rotations due to
insufficient friction have also been observed and studied [42],
[31]).
The rationale for taking the CHCP as ZMP support area or
volume goes as follows. First, the set S of realizable ZMPs is
convex. The ZMP can, in particular, be a center of pressure
12
on a given contact surface, which in turn can be realized at
any vertex of the corresponding contact polygon. Thus, the
ZMP can be realized at any contact point, which makes S is
a convex set containing all contact points. The smallest such
set is the CHCP.
Friction comes into play with the resultant force. Suppose
that the ZMP is located at a vertex Ck of a given contact
polygon. From the analysis of Section III, the resultant force
f c must be realized by fkc , while all other contact forces fjc =
0 (j 6= k). (From eq. 12, pZ = pZk = pCk implies that
only the λi ’s corresponding to Ck can be strictly positive.)
Therefore, the resultant f c of all contact forces must lie in the
friction cone Ck . This is impossible in situations such as the
one depicted in Figure 5: assuming small linear and angular
momentum, f c must be directed toward the vicinity of the
center of mass (eq. (20)), and thus lies outside of Ck . This is
the reason why the actual ZMP support area in this case is
smaller than the convex hull of contact points.
A PPENDIX B
C AN WE DO BETTER THAN ZMP?
Proposition 2 implies that, while the moment τOgi depends
on the reference point O, its projection Z on Π does not
depend on the plan coordinates of O. In this sense, the ZMP
decouples the moment of a wrench from the position at which
it is taken; yet at the cost of one dimension, as it only
represents two out of the three moment coordinates. Could
a “generalized” three-dimensional ZMP perform a similar
decoupling for all three coordinates of the moment?
Unfortunately the answer seems to be negative at first, at
least in the following sense:
Property 2. Let pZ (O) = pO + B(f ) τO denote any affine
projection of the moment τO , where the matrix B(f ) can
−−→
depend non-linearly on f . The set of displacements OO0 that
leave Z invariant is a vector space of dimension at most two.
In other words, at least one coordinate of the ZMP depends
on the reference point O.
Proof: Let O and O0 denote two points such that
−−→
−−→
pZ (O0 ) = pZ (O). Then, O0 O + B(f )OO0 × f = 0, which
−−→
−−→
def
one can write C OO0 = OO0 for C = B(f )[−f ×]. The
−−→0
translation vector OO thus belongs to the eigenspace E of
C associated to the eigenvalue 1. To conclude, remark that
dim(E) ≤ rank(C) ≤ rank([f ×]) ≤ 2.
Let us then consider the remaining moment coordinate
which is not represented by the ZMP. Our analysis following
eq. (9) can be applied mutatis mutandis to this coordinate:
n · τOgi
=
n · f gi
P
−−→
P
−−→
n·OCi ×fi
· OCi × fi
i λi (n · fi )
n·fi
P
=
.
i λi (n · fi )
i λi (n · fi )
λi n
iP
A natural definition of the spatial point including all three
coordinates (let us call it tentatively the n-Moment Point or
n-MP) is then
pM = pO +
n × τOgi
n · τOgi
+
n.
n·f
n·f
(26)
Fig. 5. Situation where the ZMP support area (green stripes) is smaller than
the convex hull of ground contact points (blue polygon). The robot has its
two feet (transparent red boxes) set one meter apart on a horizontal floor (in
gray). Its COM is 50 cm above ground, and the friction at contact is µ = 0.5.
The ZMP cannot be located at the corner Ck of the convex hull, as it would
imply that the contact force exerted at this point (in magenta) lies outside the
friction cone Ck (in red).
The vertices of its support volume V can be computed in the
same fashion as in Section III by
−−→
−−→
n × OCi × fi
n · OCi × fi
pMi = pO +
+
n.
n · fi
n · fi
The geometric construction of support areas can also be
applied mutatis mutandis to V: when all virtual pressures
(n · fi ) have the same sign, V is the convex hull of the above
vertices, while it is otherwise the union of two polyhedral
convex cones built on the Minkowski difference of positiveand negative-pressure polyhedra. An implementation of this
construction can be found in [36].
The n-MP is a three dimensional spatial point equivalent to
the moment τOgi , in the sense that one can be computed from
the other by
−−→
−−→
τOgi = OM × (n · f gi )n + (n · OM )(n · f gi )n.
In other words, M represents the screw coordinates of the
gravito-inertial wrench along the non-central axis ∆gi (n),
−−→
with magnitude n · f gi and pitch n · OM .
However, adding the third moment coordinates makes the
shape of the support volume V depend on the choice of the
reference point O. Formally:
Property 3. There is no non-empty subspace of displacements
−−→0
OO of the reference point O, independent from the resultant
f gi , that leaves the n-MP invariant.
−−→
Proof: Consider a displacement OO0 of O in the plane.
−−→
gi
From eq. (26), it results in a variation OO0 · n×f
n·f gi of the
n-MP coordinate along n. This term needs to be zero for any
−−→
displacement leaving the n-MP invariant, thus OO0 is parallel
to either n or f gi . The former would yield a variation of the
plane coordinates of the n-MP (i.e. , the ZMP). The latter is
excluded, since we look for invariance independent from the
gravito-inertial resultant.