This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

ZMP support areas for multi-contact mobility
under frictional constraints

Stéphane Caron, Quang-Cuong Pham, Yoshihiko Nakamura Stéphane Caron is with the Laboratoire d’Informatique, de Robotique et de Microélectronique de Montpellier (LIRMM), CNRS / Université de Montpellier. Quang-Cuong Pham is with the School of Mechanical and Aerospace Engineering, Nanyang Technological University, Singapore. Yoshihiko Nakamura is with the Department of Mechano-Informatics, University of Tokyo, Japan. Corresponding author: stephane.caron@normalesup.org.
Abstract

We propose a method for checking and enforcing multi-contact stability based on the Zero-tilting Moment Point (ZMP). The key to our development is the generalization of ZMP support areas to take into account (a) frictional constraints and (b) multiple non-coplanar contacts. We introduce and investigate two kinds of ZMP support areas. First, we characterize and provide a fast geometric construction for the support area generated by valid contact forces, with no other constraint on the robot motion. We call this set the full support area. Next, we consider the control of humanoid robots using the Linear Pendulum Mode (LPM). We observe that the constraints stemming from the LPM induce a shrinking of the support area, even for walking on horizontal floors . We propose an algorithm to compute the new area, which we call pendular support area. We show that, in the LPM, having the ZMP in the pendular support area is a necessary and sufficient condition for contact stability. Based on these developments, we implement a whole-body controller and generate feasible multi-contact motions where an HRP-4 humanoid locomotes in challenging multi-contact scenarios.

Index Terms:
Contact stability, Humanoid locomotion, Zero-tilting Moment Point (ZMP)

I Introduction

The Zero-tilting 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 gravity and 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, the 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 Mode (LIPM) [3, 4]. In the LIPM, the COM moves 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).

Refer to caption
Figure 1: Overview of the construction proposed in this paper. The full ZMP support area, including 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 the Linear Pendulum Mode is fully taken into account. A whole-body controller based on these developments enables multi-contact locomotion in arbitrary environments.

These two main merits, a geometric stability condition and linearized dynamics, are as well-known as the two main limitations of the classical ZMP: it does not account for friction, and it can only be applied when all contacts are coplanar. The latter results from the definition of the ZMP as the point on the floor. In a general multi-contact scenario, each contact defines its own surface and there is no single “floor” 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 pseudo-support-polygon, a certain projection of the three-dimensional (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 construct the areas conjectured by Sardain and Bessonnet. Our first contribution is to characterize the ZMP support area generated by valid contact forces, with no other constraint on the robot motion. We call this set the full support area. Our analysis provides a geometric construction that allows for fast calculations. Also, contrary to the assumption that “friction limits are not violated” usually made in the literature, this area fully takes friction into account.

From a control point of view, locomoting systems usually regulate their linear and angular momenta, as examplified by the Linear Pendulum Mode where the robot maintains a constant COM height and moves with a constant angular momentum. These tasks limit the whole-body momentum of the system, which consequently shrinks the ZMP support area. The second contribution of this paper is an algorithm to compute the ZMP support area for the linear-pendulum mode, which we call pendular support area. The latter takes into account both friction and angular-momentum constraints on the robot motion.

Combining these two advances, we design a whole-body controller for humanoids locomoting on arbitrary terrains. Choosing a virtual plane above the COM, we 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 multi-contact scenario involving a large step supported by a hand-on-wall contact.

The paper is organized as follows. In Section II, we review previous work and introduce background notions necessary to understand the present work. In Section III, we characterize the full support area. We then provide in Section IV an algorithm to calculate the pendular support area, which we apply to multi-contact locomotion in Section V. Concluding remarks are finally provided in Section VI.

II Background

II-A Previous work

II-A1 Stability criteria

on horizontal floors, the ZMP of dynamically stable motions lies within the convex hull of contact points (CHCP). However, when the robot makes contact with different non-coplanar 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 [5, 6, 7, 8] conjectured that the CHCP (a 3D volume in general) 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 general111 Sardain and Bessonnet [5] pointed out that the term “zero moment point” is misleading, as the moment at these points has actually a non-zero component along the surface normal. They suggested that “zero-tilting moment point” would be a more proper name. 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 a 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 the general case with non-zero angular momentum, like all approaches based on convex hull of contact points, it assumes infinite friction coefficients. In this paper, we will see how to construct support areas that also take friction into account.

A parallel line of research kept the ZMP in a plane but relaxed the constraint that it coincides with the floor [9, 10, 11, 12]. Kagami et al. [9] had the insight that the ZMP could be taken relative to any plane normal, yet still assuming that this plane should pass through all contact points, which restricted their scope to a maximum of three contacts points. Sugihara et al. [10] 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 support area. Shibuya et al. [11] took the idea further by considering a virtual plane above the COM, while Sato et al. [12] applied this idea to stair climbing. However, like CHCP, VHP support areas suppose infinite friction coefficients. The approach proposed in the present paper also uses a virtual plane and the linear pendulum mode, but our support areas fully account for friction, which makes them 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 [13, 14, 15, 16, 17]. The seminal work by Saida et al. [13] 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. [14] constructed the first full stability criterion for the gravito-inertial wrench, yet with a high number of variables including all contact forces. Later developments [15, 16, 17] reduced these redundant variables to the gravito-inertial wrench 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 non-linear 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, linearized dynamics and a geometric support area.

II-A2 Control

when it comes to control, the use of the ZMP is historically tied to the LIPM, which was introduced in [4, 10] and used in a wealth of subsequent works [6, 7, 11, 12, 18, 19, 20, 21]. Kajita et al. [18] 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. [21] exhibited a closed-form solution for the linear-quadratic regulator tracking a reference ZMP. However, all of these methods only apply to locomotion on horizontal floors.

Aiming for locomotion on rough terrains, Zhao et al. [22] extended the LIPM to a “Prismatic Inverted Pendulum” where the COM altitude is allowed to vary linearly, while Morisawa et al. [23] provided a wider derivation where the COM belongs to a general two-dimensional manifold. Rather than the ZMP, recent papers [20, 24] chose to control the Capture Point to stabilize the unstable dynamics of the LIPM. In terms of support areas, though, the question is the same for the Capture Point and the ZMP and was not addressed by these developments. With the method proposed in the present paper, we realize a control system with marginally stable dynamics using the ZMP as control point and a linear pendulum mode. The benefit of our approach compared to these previous works is that we are able to derive at the same time 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 [14, 25, 26, 27, 28]. 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 [27] or end-effector torques [26]. Notably, Righetti et al. [28] characterized the class of force-distribution controllers for linear-quadratic 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 and intuition 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, [29, 30] added a level of foresight to their contact-force controllers via model-predictive control, while Zheng et al. [31] 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.

II-B Newton-Euler equations

Let mm and GG represent the total mass and center-of-mass (COM) of the robot, respectively. We write 𝒑A{\bm{p}}_{A} the vector of absolute coordinates of a point AA and denote by OO the origin of the absolute frame (so that 𝒑O=𝟎{\bm{p}}_{O}=\bm{0}). For a link kk, define:

  • mkm_{k} the total mass of the link;

  • 𝒑Gk{\bm{p}}_{G_{k}} the vector of absolute coordinates of its COM GkG_{k};

  • 𝐑k\mathbf{R}_{k} its orientation matrix in the absolute frame;

  • 𝝎k\bm{\omega}_{k} its angular velocity in the link frame;

  • 𝐈k\mathbf{I}_{k} its inertia matrix in the link frame.

The linear momentum 𝐏\mathbf{P} and angular momentum 𝐋G\mathbf{L}_{G} of the robot, taken at the COM GG, are defined by:

𝐏\displaystyle\mathbf{P} =def\displaystyle\stackrel{{\scriptstyle\mathrm{def}}}{{=}} linkkmk𝒑˙Gk,\displaystyle\sum_{\mathrm{link}\,k}m_{k}\dot{{\bm{p}}}_{G_{k}}, (1)
𝐋G\displaystyle\mathbf{L}_{G} =def\displaystyle\stackrel{{\scriptstyle\mathrm{def}}}{{=}} linkkmkGGk×𝒑˙Gk+𝐑k𝐈k𝝎k.\displaystyle\sum_{\mathrm{link}\,k}m_{k}\overrightarrow{GG_{k}}\times\dot{{\bm{p}}}_{G_{k}}+\mathbf{R}_{k}\mathbf{I}_{k}\bm{\omega}_{k}. (2)

The fundamental principle of dynamics states that the rate of change of the momentum is equal to the total wrench of forces acting on the system, that is:

[𝐏˙𝐋˙G]=[𝒇g𝟎]+contacti[𝒇iGCi×𝒇i],\left[\begin{array}[]{c}\dot{\mathbf{P}}\\ \dot{\mathbf{L}}_{G}\end{array}\right]\ =\ \left[\begin{array}[]{c}{\bm{f}}^{g}\\ {\bm{0}}\end{array}\right]\,+\,\sum_{\mathrm{contact}\,i}\left[\begin{array}[]{c}{\bm{f}}_{i}\\ {\overrightarrow{GC}_{i}}\times{\bm{f}}_{i}\end{array}\right], (3)

where 𝒇g{\bm{f}}^{g} denotes the gravity force, CiC_{i} the ithi^{\textrm{th}} contact point and 𝒇i{\bm{f}}_{i} the contact force exerted by the environment on the robot at CiC_{i}. Equation (3) is called the Newton-Euler equations of the system, sometimes also referred to as “dynamic balance” or the “dynamic equilibrium”. It can be equivalently 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}\} [32].

Define the gravito-inertial wrench, taken this time at OO:

𝒘Ogi=def[𝒇gi𝝉Ogi]=def[𝒇g𝐏˙𝒑G×(𝒇g𝐏˙)𝐋˙G].{\bm{w}}^{gi}_{O}\ \stackrel{{\scriptstyle\mathrm{def}}}{{=}}\ \left[\begin{array}[]{c}{\bm{f}}^{gi}\\ \bm{\tau}^{gi}_{O}\end{array}\right]\ \stackrel{{\scriptstyle\mathrm{def}}}{{=}}\ \left[\begin{array}[]{c}{\bm{f}}^{g}-\dot{\mathbf{P}}\\ {\bm{p}}_{G}\times({\bm{f}}^{g}-\dot{\mathbf{P}})-\dot{\mathbf{L}}_{G}\end{array}\right]. (4)

Define similarly the contact wrench:

𝒘Oc=def[𝒇c𝝉Oc]=defcontacti[𝒇i𝒑Ci×𝒇i]{\bm{w}}^{c}_{O}\ \stackrel{{\scriptstyle\mathrm{def}}}{{=}}\ \left[\begin{array}[]{c}{\bm{f}}^{c}\\ \bm{\tau}^{c}_{O}\end{array}\right]\ \stackrel{{\scriptstyle\mathrm{def}}}{{=}}\ \sum_{\mathrm{contact}\,i}\left[\begin{array}[]{c}{\bm{f}}_{i}\\ {\bm{p}}_{C_{i}}\times{\bm{f}}_{i}\end{array}\right] (5)

The Newton-Euler equation (3) can be written in terms of these two wrenches as:

𝒘gi+𝒘c=𝟎.{\bm{w}}^{gi}+{\bm{w}}^{c}=\bm{0}. (6)

This formulation separates spatial accelerations (𝒘gi{\bm{w}}^{gi}), that are usually measured by inertial measurement units, from interaction forces with the environment (𝒘c{\bm{w}}^{c}), usually measured by force sensors. Since the two wrenches are simply opposites, we will only use the contact wrench (𝒇,𝝉O)({\bm{f}},\bm{\tau}_{O}) in the following calculations, dropping the superscript cc to alleviate notations.

II-C Contact stability

We assume that all contacts between the environment and the robot are surface contacts, i.e. contacts between a flat surface of the robot and a flat surface of the environment. Wrenches exerted on each contacting link are then fully described by applying contact forces at the vertices of the contact polygon [33], which warrants the formulation by contact points that we have followed so far. Define the contact normal 𝒏i{\bm{n}}_{i} at CiC_{i} as the normal to the contact surface pointing from the environment towards the contacting link. Under Coulomb’s model of dry friction, contact forces 𝒇i{\bm{f}}_{i} lie inside a friction cone directed by 𝒏i{\bm{n}}_{i}:

𝒏i×𝒇ic×𝒏i2\displaystyle\left\|{\bm{n}}_{i}\times{\bm{f}}^{c}_{i}\times{\bm{n}}_{i}\right\|_{2} \displaystyle\leq μi(𝒇ic𝒏i).\displaystyle\mu_{i}({\bm{f}}^{c}_{i}\cdot{\bm{n}}_{i}). (7)

Frictional constraints restrict the range of contact wrenches 𝒘c{\bm{w}}^{c} that the robot can generate without breaking any contact: when each contact force lies in a cone 𝒞i{\cal C}_{i}, the contact wrench lies in the Contact Wrench Cone (CWC) 𝒞c{\cal C}^{c} projected from all 𝒞i{\cal C}_{i}’s via the mapping (5). Because of the connection (6), the gravito-inertial wrench belongs to Gravito-inertial Wrench Cone (GIWC) 𝒞gi=𝒞c{\cal C}^{gi}=-{\cal C}^{c}. This link between feasible motions and keeping contacts is embodied by the notion of contact stability:

Definition 1 (Weak contact stability [34, 35]).

A motion of the robot is (weak-contact) stable if and only if the contact wrench it generates belongs to the CWC.

Weak contact stability is the underlying stability criterion used in recent multi-contact developments [14, 15, 16, 17]. Static stability [36] corresponds to contact stability when the whole-body momentum is zero. Note that the term “stability” is used here in the sense defined by Pang and Trinkle [34]. It should not be confused with the (a-priori unrelated) notion of Lyapunov stability.

II-D Linearized wrench cones

We linearize the quadratic constraint (7) by approximating friction cones by friction pyramids . Denoting by 𝒇ij{\bm{f}}_{ij} the ray vectors of the latter, the constraint becomes:

𝒇i=rayjλij𝒇ij,λij0.{\bm{f}}_{i}=\sum_{\mathrm{ray}\,j}\lambda_{ij}\,{\bm{f}}_{ij},\quad\lambda_{ij}\geq 0. (8)

The set of ray vectors {𝒇ij}\{{\bm{f}}_{ij}\} is known as the span representation of the pyramidal cone. It can be computed directly from the contact frame and friction coefficient μi\mu_{i}. For example, the expression of a four-sided pyramid is {𝒏i±μi2𝒕i±μi2𝒃i}\left\{{\bm{n}}_{i}\pm\frac{\mu_{i}}{\sqrt{2}}\,{\bm{t}}_{i}\pm\frac{\mu_{i}}{\sqrt{2}}\,{\bm{b}}_{i}\right\}, with (𝒕i,𝒃i,𝒏i)({\bm{t}}_{i},{\bm{b}}_{i},{\bm{n}}_{i}) an orthonormal contact frame, where the normalization by 2\sqrt{2} is added to make the friction pyramid an inner approximation of the friction cone. Injecting (8) into Equation (5) yields a span representation for the contact wrench cone:

[𝒇𝝉O]=i,jλij[𝒇ij𝒑Ci×𝒇ij]λij0.\left[\begin{array}[]{c}{\bm{f}}\\ \bm{\tau}_{O}\end{array}\right]\ =\ \sum_{i,j}\lambda_{ij}\left[\begin{array}[]{c}{\bm{f}}_{ij}\\ {\bm{p}}_{C_{i}}\times{\bm{f}}_{ij}\end{array}\right]\quad\lambda_{ij}\geq 0. (9)

Let us define 𝝉O,ij=𝒑Ci×𝒖ij\bm{\tau}_{O,ij}={\bm{p}}_{C_{i}}\times{\bm{u}}_{ij}. After re-indexing the couples i,ji,j into a single index ii (counting the same contact point CiC_{i} multiple times accordingly), we get:

[𝒇𝝉O]=iλi[𝒇i𝝉O,i],λi0.\left[\begin{array}[]{c}{\bm{f}}\\ \bm{\tau}_{O}\end{array}\right]\ =\ \sum_{i}\lambda_{i}\left[\begin{array}[]{c}{\bm{f}}_{i}\\ \bm{\tau}_{O,i}\end{array}\right],\quad\lambda_{i}\geq 0. (10)

We have thus obtained the span representation of the CWC. A motion is weak-contact stable if and only if its contact wrench can be written as (10) for a certain set of coefficients λi0\lambda_{i}\geq 0.

III Full ZMP support area

Let 𝒏{\bm{n}} be a fixed unit space vector, not necessarily aligned with the gravity vector. The Zero-tilting Moment Point (ZMP) is a point ZZ where the moment of the contact wrench aligns with 𝒏{\bm{n}} [5], that is, 𝒏×𝝉Z=𝟎{\bm{n}}\times\bm{\tau}_{Z}=\bm{0}. Consequently,

𝒏×(𝒑Z×𝒇)+𝒏×𝝉O\displaystyle-{\bm{n}}\times({\bm{p}}_{Z}\times{\bm{f}})+{\bm{n}}\times\bm{\tau}_{O} =\displaystyle= 𝟎\displaystyle\bm{0} (11)
(𝒏𝒇)𝒑Z+(𝒏𝒑Z)𝒇+𝒏×𝝉O\displaystyle-({\bm{n}}\cdot{\bm{f}}){\bm{p}}_{Z}+({\bm{n}}\cdot{\bm{p}}_{Z}){\bm{f}}+{\bm{n}}\times\bm{\tau}_{O} =\displaystyle= 𝟎\displaystyle\bm{0} (12)

We are interested in computing the ZMP in the plane that contains OO and that is orthogonal to 𝒏{\bm{n}}, hereafter denoted by Π(O,𝒏)\Pi(O,{\bm{n}}). The relation ZΠ(O,𝒏)Z\in\Pi(O,{\bm{n}}) is expressed by 𝒏𝒑Z=0{\bm{n}}\cdot{\bm{p}}_{Z}=0, so that the equation above becomes:

𝒑Z=𝒏×𝝉O𝒏𝒇{\bm{p}}_{Z}\ =\ \frac{{\bm{n}}\times\bm{\tau}_{O}}{{\bm{n}}\cdot{\bm{f}}} (13)

On horizontal floors, OO is taken on the floor and 𝒏{\bm{n}} is upward vertical, so that Π(O,𝒏)\Pi(O,{\bm{n}}) coincides with the floor plane. However, in what follows we assume that OO can be located at an arbitrary fixed position in space, while 𝒏{\bm{n}} can be an arbitrary unit vector.

III-A Construction of the full support area

Equation (13) presents the ZMP as a two-dimensional projection of the contact wrench (𝒇,𝝉O)({\bm{f}},\bm{\tau}_{O}). Since contact stability is characterized by the CWC, we define the support area of the ZMP as the image of the CWC by this projection:

Definition 2 (Full support area).

The full support area 𝒮{\cal S} of the ZMP in the plane Π(O,𝐧)\Pi(O,{\bm{n}}) is the image of the CWC by the projection (13):

𝒮={𝒑Z=𝒏×𝝉O𝒏𝒇|(𝒇,𝝉O)𝒞c}{\cal S}=\left\{\left.{\bm{p}}_{Z}=\frac{{\bm{n}}\times\bm{\tau}_{O}}{{\bm{n}}\cdot{\bm{f}}}\ \right|\ ({\bm{f}},\bm{\tau}_{O})\in{\cal C}^{c}\right\} (14)

The key idea to calculate this area is to use the span representation (10) of the CWC, which enables rewriting Equation (13) as

𝒑Z=iλi(𝒏×𝝉O,i)iλi(𝒏𝒇i),λi0.{\bm{p}}_{Z}\ =\ \frac{\sum_{i}\lambda_{i}({\bm{n}}\times\bm{\tau}_{O,i})}{\sum_{i}\lambda_{i}({\bm{n}}\cdot{\bm{f}}_{i})},\quad\lambda_{i}\geq 0. (15)

Next, define the points ZiZ_{i} by:

𝒑Zi=def𝒏×𝝉O,i𝒏𝒇i{\bm{p}}_{Z_{i}}\ \stackrel{{\scriptstyle\mathrm{def}}}{{=}}\ \frac{{\bm{n}}\times\bm{\tau}_{O,i}}{{\bm{n}}\cdot{\bm{f}}_{i}} (16)

and denote by pi=def(𝒏𝒇i)p_{i}\stackrel{{\scriptstyle\mathrm{def}}}{{=}}({\bm{n}}\cdot{\bm{f}}_{i}) the virtual pressure of the contact force generator 𝒇i{\bm{f}}_{i} through the virtual plane. Then,

𝒑Z=iλipi𝒑Ziiλipi,λi0.{\bm{p}}_{Z}\ =\ \frac{\sum_{i}\lambda_{i}p_{i}\,{\bm{p}}_{Z_{i}}}{\sum_{i}\lambda_{i}p_{i}},\quad\lambda_{i}\geq 0. (17)

On horizontal floors, 𝒏{\bm{n}} and all contact forces 𝒇i{\bm{f}}_{i} point upwards, so that all pressures pip_{i} are positive. This makes the ZMP ZZ a convex combination of the ZiZ_{i}’s from Equation (17). Furthermore, Equation (16) simplifies to Zi=CiZ_{i}=C_{i}, i.e. , the vertices of the support area 𝒮{\cal S} coincide with contact points. Our definition of the full support area therefore coincides with the conventional support area on horizontal floors.

In general, however, virtual pressures pip_{i} can be either positive or negative.222We assume 𝒏{\bm{n}} is chosen so that none of them is zero, which is easy to do since there is only a finite set of generators {𝒇i}\{{\bm{f}}_{i}\}. Let us then partition the set of generator indices II into I+=def{i|pi>0}I^{+}\stackrel{{\scriptstyle\mathrm{def}}}{{=}}\{i\,|\,p_{i}>0\} and I=def{i|pi<0}I^{-}\stackrel{{\scriptstyle\mathrm{def}}}{{=}}\{i\,|\,p_{i}<0\}. For any KIK\subset I, denote by σ(K)=defiKλi|pi|\sigma(K)\ \stackrel{{\scriptstyle\mathrm{def}}}{{=}}\ \sum_{i\in K}\lambda_{i}|p_{i}| and define

αi\displaystyle\alpha_{i} =def\displaystyle\stackrel{{\scriptstyle\mathrm{def}}}{{=}} +λipiσ(I+) for iI+,α=defσ(I+)σ(I).\displaystyle\frac{+\lambda_{i}p_{i}}{\sigma(I^{+})}\ \textrm{ for }i\in I^{+},\quad\quad\alpha\ \stackrel{{\scriptstyle\mathrm{def}}}{{=}}\ \frac{\sigma(I^{+})}{\sigma(I)}. (18)
βi\displaystyle\beta_{i} =def\displaystyle\stackrel{{\scriptstyle\mathrm{def}}}{{=}} λipiσ(I) for iI,β=defσ(I)σ(I).\displaystyle\frac{-\lambda_{i}p_{i}}{\sigma(I^{-})}\ \textrm{ for }i\in I^{-},\quad\quad\beta\ \stackrel{{\scriptstyle\mathrm{def}}}{{=}}\ \frac{\sigma(I^{-})}{\sigma(I)}. (19)

Equation (15) becomes

𝒑Z=1αβ[αiI+αi𝒑ZiβiIβi𝒑Zi].{\bm{p}}_{Z}\ =\ \frac{1}{\alpha-\beta}\left[\alpha\sum_{i\in I^{+}}\alpha_{i}{\bm{p}}_{Z_{i}}-\beta\sum_{i\in I^{-}}\beta_{i}{\bm{p}}_{Z_{i}}\right]. (20)

Define the positive-pressure polygon as the convex hull of ZiZ_{i}’s for iI+i\in I^{+}: 𝒫+=def{iI+αi𝒑Zi,αi0,iαi=1}{\cal P}^{+}\stackrel{{\scriptstyle\mathrm{def}}}{{=}}\{\sum_{i\in I^{+}}{\alpha}_{i}{\bm{p}}_{Z_{i}},\alpha_{i}\geq 0,\sum_{i}{\alpha}_{i}=1\}, and define the negative-pressure polygon 𝒫{\cal P}^{-} similarly. Equation (20) can be rewritten as

𝒑Z=α𝒑Z+β𝒑Zαβ,{\bm{p}}_{Z}\ =\ \frac{\alpha{\bm{p}}_{Z^{+}}-\beta{\bm{p}}_{Z^{-}}}{\alpha-\beta}, (21)

where α0\alpha\geq 0, β0\beta\geq 0, Z+𝒫+Z^{+}\in{\cal P}^{+} and Z𝒫Z^{-}\in{\cal P}^{-}. Next, let

𝒫+𝒫={𝒑Z+𝒑Z|Z+𝒫+,Z𝒫}{\cal P}^{+}-{\cal P}^{-}=\left\{\left.{\bm{p}}_{Z^{+}}-{\bm{p}}_{Z^{-}}\ \right|\ Z^{+}\in{\cal P}^{+},\ Z^{-}\in{\cal P}^{-}\right\} (22)

denote the Minkowski difference of 𝒫+{\cal P}^{+} and 𝒫{\cal P}^{-}. It is a polygon as difference of two polygons, so that it admits a span representation 𝒫+𝒫=conv({𝒓1,,𝒓k}){\cal P}^{+}-{\cal P}^{-}=\textsc{conv}(\{{\bm{r}}_{1},\ldots,{\bm{r}}_{k}\}) as convex hull (conv) of a set of vertices. We can now characterize the support area as follows:

Proposition 1.

If all virtual pressures pip_{i} have the same sign, then the full support area 𝒮{\cal S} is the convex hull of the vertices {Zi}\{Z_{i}\}. Otherwise, when both 𝒫+{\cal P}^{+} and 𝒫{\cal P}^{-} are nonempty, let

𝒫+𝒫=conv({𝒓1,,𝒓k}){\cal P}^{+}-{\cal P}^{-}=\textsc{conv}(\{{\bm{r}}_{1},\ldots,{\bm{r}}_{k}\}) (23)

denote their Minkowski difference. The full support area 𝒮{\cal S} is then the reunion of two polygonal cones 𝒞+{\cal C}^{+} and 𝒞{\cal C}^{-} given by

𝒞+\displaystyle{\cal C}^{+} =\displaystyle= 𝒫++i+𝒓i,\displaystyle{\cal P}^{+}+\textstyle\sum_{i}\mathbb{R}^{+}{\bm{r}}_{i}, (24)
𝒞\displaystyle{\cal C}^{-} =\displaystyle= 𝒫+i+(𝒓i).\displaystyle{\cal P}^{-}+\textstyle\sum_{i}\mathbb{R}^{+}(-{\bm{r}}_{i}). (25)

In particular, when 𝒫+{\cal P}^{+} and 𝒫{\cal P}^{-} intersect with nonempty interior, the full support area 𝒮{\cal S} spans the whole virtual plane Π(O,𝐧)\Pi(O,{\bm{n}}).

Refer to caption
Figure 2: 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 (Proposition 4). The blue polygon corresponds to the individual support polygon of the right contact. These polygons describe the contribution of each contact to the expansion of the support area, and can e.g. be used in contact planning to evaluate how new contact candidates would expand the area.
Proof:

(Note that this proof is quite formal and may be skipped by first-time readers.) The main idea of the proof is to combine pairs of points in 𝒫+×𝒫{\cal P}^{+}\times{\cal P}^{-} to generate rays in 𝒞+{\cal C}^{+} and 𝒞{\cal C}^{-}. Let us first clear out simple cases. When all pip_{i}’s are positive (𝒫={\cal P}^{-}=\emptyset), Equation (17) shows that 𝒑Z{\bm{p}}_{Z} is a convex combination of the vertices of 𝒫+{\cal P}^{+}, where the weights (λipi)/(jλjpj)(\lambda_{i}p_{i})/(\sum_{j}\lambda_{j}p_{j}) can be chosen freely, so that 𝒮=𝒫+{\cal S}={\cal P}^{+}. The case where 𝒫+={\cal P}^{+}=\emptyset is treated identically. Next, suppose that both 𝒫+{\cal P}^{+} and 𝒫{\cal P}^{-} are nonempty. Equation (21) can be reformulated as

𝒑Z=𝒑Z++βαβZZ+=𝒑Z+αβαZ+Z{\bm{p}}_{Z}\>=\>{\bm{p}}_{Z^{+}}+\frac{\beta}{\alpha-\beta}\overrightarrow{Z^{-}Z^{+}}\>=\>{\bm{p}}_{Z^{-}}+\frac{\alpha}{\beta-\alpha}\overrightarrow{Z^{+}Z^{-}} (26)

where α\alpha (resp. β\beta) is the weight of 𝒫+{\cal P}^{+} (resp. 𝒫{\cal P}^{-}) in Equation (21). Therefore, the set of points ZZ defined by this equation is

𝒮\displaystyle{\cal S} =def{𝒑Z++βαβZZ+,αβ0,Z±𝒫±}\displaystyle\stackrel{{\scriptstyle\mathrm{def}}}{{=}}\left\{{\bm{p}}_{Z^{+}}+\frac{\beta}{\alpha-\beta}\overrightarrow{Z^{-}Z^{+}},\ \alpha\geq\beta\geq 0,Z^{\pm}\in{\cal P}^{\pm}\right\}
{𝒑Z+αβαZ+Z,βα0,Z±𝒫±}\displaystyle\cup\left\{{\bm{p}}_{Z^{-}}+\frac{\alpha}{\beta-\alpha}\overrightarrow{Z^{+}Z^{-}},\ \beta\geq\alpha\geq 0,Z^{\pm}\in{\cal P}^{\pm}\right\} (27)

Given the orderings of α\alpha and β\beta, we can further simplify the ratios into a single positive scalar, so that 𝒮=𝒞+𝒞{\cal S}={\cal C}^{+}\cup{\cal C}^{-} with

𝒞+\displaystyle{\cal C}^{+} =\displaystyle= {𝒑Z++λZZ+,λ0,Z±𝒫±},\displaystyle\left\{{\bm{p}}_{Z^{+}}+\lambda\overrightarrow{Z^{-}Z^{+}},\ \lambda\geq 0,Z^{\pm}\in{\cal P}^{\pm}\right\}, (28)
𝒞\displaystyle{\cal C}^{-} =\displaystyle= {𝒑Z+λZ+Z,λ0,Z±𝒫±}.\displaystyle\left\{{\bm{p}}_{Z^{-}}+\lambda\overrightarrow{Z^{+}Z^{-}},\ \lambda\geq 0,Z^{\pm}\in{\cal P}^{\pm}\right\}. (29)

The set 𝒟=𝒫+𝒫{\cal D}={\cal P}^{+}-{\cal P}^{-} is a convex polygon as Minkowski difference of two convex polygons. To conclude, we show that 𝒞+=𝒫+++𝒟{\cal C}^{+}={\cal P}^{+}+\mathbb{R}^{+}{\cal D}. The inclusion \subset is straightforward from (28). Now, let

𝒑C=𝒑Z0++μ(𝒑Z1+𝒑Z){\bm{p}}_{C}={\bm{p}}_{Z_{0}^{+}}+\mu({\bm{p}}_{Z_{1}^{+}}-{\bm{p}}_{Z^{-}}) (30)

denote any point in 𝒫+++𝒟{\cal P}^{+}+\mathbb{R}^{+}{\cal D}. Define

𝒑Z+=def11+μ𝒑Z0++μ1+μ𝒑Z1+.{\bm{p}}_{Z^{+}}\ \stackrel{{\scriptstyle\mathrm{def}}}{{=}}\ \frac{1}{1+\mu}\,{\bm{p}}_{Z_{0}^{+}}+\frac{\mu}{1+\mu}\,{\bm{p}}_{Z_{1}^{+}}. (31)

One can check that 𝒑C=𝒑Z++μ(𝒑Z+𝒑Z){\bm{p}}_{C}={\bm{p}}_{Z^{+}}+\mu({\bm{p}}_{Z^{+}}-{\bm{p}}_{Z^{-}}), where Z+Z^{+} belongs to 𝒫+{\cal P}^{+} as convex combination of two points from this convex polygon. Thus C𝒞+C\in{\cal C}^{+}, which establishes the converse inclusion \supset.

Finally, note how, when 𝒫+𝒫{\cal P}^{+}\cap{\cal P}^{-} has non-empty interior, 𝒟{\cal D} contains a neighborhood of the origin. For any pair of points (A,Z+)Π(O,𝒏)×𝒫+(A,Z^{+})\in\Pi(O,{\bm{n}})\times{\cal P}^{+}, this implies that there exists a scaling ϵ>0\epsilon>0 such that ϵ(𝒑A𝒑Z+)𝒟\epsilon({\bm{p}}_{A}-{\bm{p}}_{Z^{+}})\in{\cal D}. Then, as 𝒞+=𝒫+++𝒟{\cal C}^{+}={\cal P}^{+}+\mathbb{R}^{+}{\cal D}, we have 𝒑Z++1ϵ(ϵ(𝒑A𝒑Z+))=𝒑A𝒞+{\bm{p}}_{Z^{+}}+\frac{1}{\epsilon}(\epsilon({\bm{p}}_{A}-{\bm{p}}_{Z^{+}}))={\bm{p}}_{A}\in{\cal C}^{+}. Since AA was taken arbitrarily in the virtual plane, this establishes that 𝒮=Π(O,𝒏){\cal S}=\Pi(O,{\bm{n}}), i.e. the support area spans the whole virtual plane. ∎

Refer to caption
Figure 3: Example where the full support area 𝒮{\cal S} is the union of two cones 𝒞+{\cal C}^{+} and 𝒞{\cal C}^{-} (in green). There are three contacts: two feet on a horizontal floor, and a wall contact located 50 cm forward and 90 cm above ground. The virtual plane is taken in the feet’s plane. Polygons 𝒫+{\cal P}^{+} and 𝒫{\cal P}^{-} used in the geometric construction of the support area are drawn in purple, while the rays of friction cones are depicted by gray lines. In this example, 𝒞+{\cal C}^{+} shows how the conventional support polygon between the two feet is extended by the wall contact, while 𝒞{\cal C}^{-} is a complementary support area resulting from the ability to “push down on the wall” .

The geometric construction given by Proposition 1 provides fast computations of the full support area. In particular, it is faster to use this approach than to project the CWC computed by polyhedral duality methods [17]. (A comparison of computation times for both approaches is reported in Table I.)

III-B Geometric properties

Proposition 1 gives the span representation of the full support area. By construction, this area depends only on contact locations {𝒑Ci}\{{\bm{p}}_{C_{i}}\} and on the choice of the virtual plane Π(O,𝒏)\Pi(O,{\bm{n}}). The latter involves the choice of a fixed point OO, but we will now see that the location of this point only matters as far as it defines the virtual plane Π(O,𝒏)\Pi(O,{\bm{n}}) of the ZMP.

Proposition 2.

The support area 𝒮{\cal S} does not depend on the coordinates of the reference point OO in the virtual plane Π(O,𝐧)\Pi(O,{\bm{n}}).

Proof:

By definition of the support area,

𝒮={ZΠ(O,𝒏):OZ=𝒏×𝝉O𝒏𝒇}\textstyle{\cal S}=\left\{Z\in\Pi(O,{\bm{n}}):\overrightarrow{OZ}=\frac{{\bm{n}}\times\bm{\tau}_{O}}{{\bm{n}}\cdot{\bm{f}}}\right\} (32)

where (𝒇,𝝉O)𝒞c({\bm{f}},\bm{\tau}_{O})\in{\cal C}^{c} ranges over the CWC. Now, choose a point OΠ(O,𝒏)O^{\prime}\in\Pi(O,{\bm{n}}) and consider

𝒮={ZΠ(O,𝒏)=Π(O,𝒏):OZ=𝒏×𝝉O𝒏𝒇}.\textstyle{\cal S}^{\prime}=\left\{Z^{\prime}\in\Pi(O,{\bm{n}})=\Pi(O^{\prime},{\bm{n}}):\overrightarrow{O^{\prime}Z^{\prime}}=\frac{{\bm{n}}\times\bm{\tau}_{O^{\prime}}}{{\bm{n}}\cdot{\bm{f}}}\right\}. (33)

Given a contact wrench (𝒇,𝝉O)({\bm{f}},\bm{\tau}_{O}), we have

OZ\displaystyle\overrightarrow{O^{\prime}Z^{\prime}} =\displaystyle= 𝒏×𝝉O𝒏𝒇=𝒏×(OO×𝒇)+𝒏×𝝉O𝒏𝒇\displaystyle\frac{{\bm{n}}\times\bm{\tau}_{O^{\prime}}}{{\bm{n}}\cdot{\bm{f}}}=\frac{{\bm{n}}\times(\overrightarrow{O^{\prime}O}\times{\bm{f}})+{\bm{n}}\times\bm{\tau}_{O}}{{\bm{n}}\cdot{\bm{f}}} (34)
OZ\displaystyle\overrightarrow{O^{\prime}Z^{\prime}} =\displaystyle= OO(𝒏OO)𝒇𝒏𝒇+OZ=OZ.\displaystyle\overrightarrow{O^{\prime}O}-({\bm{n}}\cdot\overrightarrow{O^{\prime}O})\frac{{\bm{f}}}{{\bm{n}}\cdot{\bm{f}}}+\overrightarrow{OZ}=\overrightarrow{O^{\prime}Z}. (35)

Thus, Z=ZZ^{\prime}=Z, and since the wrench we considered is arbitrary, we have shown that 𝒮=𝒮{\cal S}={\cal S}^{\prime}. ∎

Refer to caption
Figure 4: Example where the support area spans the whole virtual plane. There are three contacts in total. Contacts 1 and 2 have an upward vertical normal and correspond e.g. to two feet on horizontal floor. Contact 3 is located one meter above the others and has a downward vertical normal, corresponding e.g. to a hand pushing on the ceiling above the robot. The virtual plane is taken 50 cm above contacts 1 and 2 and 50 cm below contact 3. Gray lines represent the ray generators of friction cones. In this setting, the robot’s contacts are in force closure: they can generate any resultant wrench, hence any ZMP.

By contrast, the support area does change for displacements of OO along the plane normal 𝒏{\bm{n}}. Let us analyze the impact of this remaining coordinate by relaxing the assumption that (𝒏𝒑Z)=0({\bm{n}}\cdot{\bm{p}}_{Z})=0. We now denote by dZd_{Z} the coordinate of the virtual plane, so that dZ=def(𝒏𝒑Z)d_{Z}\stackrel{{\scriptstyle\mathrm{def}}}{{=}}({\bm{n}}\cdot{\bm{p}}_{Z}) and dG=def(𝒏𝒑G)d_{G}\stackrel{{\scriptstyle\mathrm{def}}}{{=}}({\bm{n}}\cdot{\bm{p}}_{G}). On a horizontal floor, dZd_{Z} and dGd_{G} correspond to the altitude of the ZMP and COM, respectively. Given Proposition 2, we can write the virtual plane Π(dZ,𝒏)\Pi(d_{Z},{\bm{n}}). The definition 𝒏×𝝉Z=𝟎{\bm{n}}\times\bm{\tau}_{Z}=\bm{0} of the ZMP yields:

𝒑Z=𝒏×𝝉O𝒏𝒇+dZ𝒇𝒏𝒇.{\bm{p}}_{Z}\ =\ \frac{{\bm{n}}\times\bm{\tau}_{O}}{{\bm{n}}\cdot{\bm{f}}}+d_{Z}\frac{{\bm{f}}}{{\bm{n}}\cdot{\bm{f}}}. (36)

And repeating the step from Equation (16),

𝒑Zi\displaystyle{\bm{p}}_{Z_{i}} =def\displaystyle\stackrel{{\scriptstyle\mathrm{def}}}{{=}} 𝒏×(𝒑Ci×𝒇i)𝒏𝒇i+dZ𝒇i𝒏𝒇i,\displaystyle\frac{{\bm{n}}\times({\bm{p}}_{C_{i}}\times{\bm{f}}_{i})}{{\bm{n}}\cdot{\bm{f}}_{i}}+d_{Z}\frac{{\bm{f}}_{i}}{{\bm{n}}\cdot{\bm{f}}_{i}}, (37)
𝒑Zi\displaystyle{\bm{p}}_{Z_{i}} =\displaystyle= 𝒑Ci+(dZdi)𝒇i𝒏𝒇i.\displaystyle{\bm{p}}_{C_{i}}+(d_{Z}-d_{i})\frac{{\bm{f}}_{i}}{{\bm{n}}\cdot{\bm{f}}_{i}}. (38)

We see from this equation that the vertices ZiZ_{i} are located at the intersection between the plane Π(dZ,𝒏)\Pi(d_{Z},{\bm{n}}) and the ray (Ci,𝒇i)(C_{i},{\bm{f}}_{i}) of the linearized friction cone, which establishes that:

Proposition 3.

The vertices of the support area are located at the intersection between the virtual plane and the rays of the friction cones.

Combining Propositions 1 and 3, we get:

Proposition 4 (Polygonal case).

When all virtual pressures pi=(𝐧𝐟i)p_{i}=({\bm{n}}\cdot{\bm{f}}_{i}) have the same sign, the support area is the convex hull of the intersections 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. (Proposition 4.1 in [13]) for some plane components of the contact wrench.

Figure 2 illustrates the geometric construction in the polygonal case. The support area (in green) is the convex hull of black points projected from friction rays (red lines). Alternatively, each individual contact surface projects its own support polygon (blue polygon in Figure 2), and the ZMP support area is the convex hull of these individual polygons. This second construction can be useful for contact planning, where the quality of contact candidates can be assessed by the expansion that they bring to the support area.

Figure 3 shows a configuration where the support area is the union of two polygonal cones. In this setting, the robot has its two feet on a horizontal floor, and pushes its hand on a wall in front of it. The positive cone 𝒞+{\cal C}^{+} illustrates how the wall contact expands the conventional support area between the two feet, while the negative cone 𝒞{\cal C}^{-} reveals that a second support area appears behind the two floor contacts. This new area results from the ability for the robot to generate downward forces at the wall contact.

Finally, let us determine in which cases a polygonal ZMP support area can be found, which boils down to finding a suitable vector 𝒏{\bm{n}}.

Proposition 5.

Either contact forces can generate any arbitrary resultant force or one can find a plane normal 𝐧{\bm{n}} such that the support area is polygonal.

Proof:

Let 𝒞f{\cal C}_{f} denote the cone positively spanned by the 𝒇i{\bm{f}}_{i}’s. Then, the condition i,(𝒏𝒇i)>0\forall i,({\bm{n}}\cdot{\bm{f}}_{i})>0 is equivalent to 𝒏𝒞f{\bm{n}}\in{\cal C}_{f}^{*}, where 𝒞f{\cal C}_{f}^{*} is the dual cone of 𝒞f{\cal C}_{f} defined by

𝒞f={𝒚:𝒙𝒞f,𝒚𝒙0}.{\cal C}_{f}^{*}=\{{\bm{y}}:\ \forall{\bm{x}}\in{\cal C}_{f},\ {\bm{y}}\cdot{\bm{x}}\geq 0\}. (39)

The set of solutions 𝒞f{\cal C}_{f}^{*} can be computed from 𝒞f{\cal C}_{f}. In particular, 𝒞f={0}{\cal C}_{f}^{*}=\{\textbf{0}\} if and only if 𝒞f=3{\cal C}_{f}=\mathbb{R}^{3}, i.e. the 𝒇i{\bm{f}}_{i}’s positively span the whole space. ∎

Figure 4 provides an example where contacts are in force closure. As they can generate arbitrary contact wrenches, the support area spans the whole virtual plane. Note that being able to generate arbitrary forces is a weaker condition than force closure, which usually assumes that contact forces can generate arbitrary resultant forces and momenta.

Excluding such configurations, from Proposition 5 one can choose 𝒏{\bm{n}} such that 𝒏𝒇>0{\bm{n}}\cdot{\bm{f}}>0 for all resultant forces 𝒇{\bm{f}} generated by valid contacts. This is desirable insofar as it eliminates potential singularities 𝒏𝒇=0{\bm{n}}\cdot{\bm{f}}=0 where the ZMP would be undefined (13). In the classical horizontal-floor setting, taking 𝒏{\bm{n}} as the floor normal is an example of such a solution.

Refer to caption
Figure 5: Illustration of the full support area (green) for a single point contact. Having the ZMP ZZ (red) at the boundary of the support area generates an angular momentum L˙G,y\dot{L}_{G,y} (blue) around the center-of-mass GG which increases with both the altitude dZd_{Z} of the virtual plane and the proximity of ZZ to the boundary of the support area.

III-C Relation with the whole-body momentum

The full support area describes the ZMPs sustainable by valid contact forces. As such, it does not take into account kinematic and dynamic limitations of the robot itself, in particular the limited changes in whole-body momentum (𝐏˙,𝐋˙G)(\dot{\mathbf{P}},\dot{\mathbf{L}}_{G}) that the robot can generate around its COM by moving its limbs. Consider the simple example depicted in Figure 5, with a single point contact. According to Proposition 4, the full support area is given by the intersection of the friction cone with the virtual plane Π(O,n)\Pi(O,n). To generate a ZMP ZZ, the robot needs to change its angular momentum around the COM by

L˙G,y\displaystyle\dot{L}_{G,y} =\displaystyle= xZfz+(dZdG)fx\displaystyle-x_{Z}f_{z}+(d_{Z}-d_{G})f_{x} (40)

Thus, ZMPs close to the boundary of the full support area (|xZ|dZsinα|x_{Z}|\to d_{Z}\sin\alpha) tend to generate higher angular momenta, a phenomenon which is amplified by the altitude dZd_{Z} of the virtual plane. In practice, legged robots cannot generate a arbitrary angular momenta, as torque limits and their bounded range of motion yield additional constraints, which in turn restrict the ZMPs that the robot can generate. One way to take these limitations into account is to put additional constraints on the whole-body momentum, as we will now see with the linear pendulum mode.

IV Pendular ZMP support area

From a control point of view, the strong point of the ZMP lies in its direct relationship with the acceleration of the COM. This can be seen with a suitable rewriting of the Newton-Euler equations of the system:

Proposition 6.

The COM acceleration, ZMP position and angular momentum are bound by the equation:

𝒑¨G=𝒈+𝒏(𝒑¨G𝒈)dGdZZG+𝒏×𝐋˙Gm(dGdZ),\ddot{{\bm{p}}}_{G}\ =\ {\bm{g}}\ +\ \frac{{\bm{n}}\cdot(\ddot{{\bm{p}}}_{G}-{\bm{g}})}{d_{G}-d_{Z}}\,\overrightarrow{ZG}\ +\ \frac{{\bm{n}}\times\dot{\mathbf{L}}_{G}}{m(d_{G}-d_{Z})}, (41)

where 𝐠{\bm{g}} is the gravity vector.

Proof:

Expanding 𝝉O=𝒑G×𝒇+𝐋˙G\bm{\tau}_{O}={\bm{p}}_{G}\times{\bm{f}}+\dot{\mathbf{L}}_{G} in Equation (36),

(𝒏𝒇)𝒑Z\displaystyle({\bm{n}}\cdot{\bm{f}}){\bm{p}}_{Z} =𝒏×(𝒑G×𝒇)+𝒏×𝐋˙G+(𝒏𝒑Z)𝒇\displaystyle\,=\,{\bm{n}}\times({\bm{p}}_{G}\times{\bm{f}})+{\bm{n}}\times\dot{\mathbf{L}}_{G}+({\bm{n}}\cdot{\bm{p}}_{Z}){\bm{f}} (42)
(𝒏𝒇)GZ\displaystyle({\bm{n}}\cdot{\bm{f}})\overrightarrow{GZ} =(𝒏GZ)𝒇+𝒏×𝐋˙G.\displaystyle\,=\,({\bm{n}}\cdot\overrightarrow{GZ}){\bm{f}}+{\bm{n}}\times\dot{\mathbf{L}}_{G}. (43)

Using Equations (4) and (6), 𝒇=m(𝒑¨G𝒈){\bm{f}}=m(\ddot{{\bm{p}}}_{G}-{\bm{g}}), so that:

m(𝒏(𝒑¨G𝒈))GZ=m(𝒏GZ)(𝒑¨G𝒈)+𝒏×𝐋˙G.m({\bm{n}}\cdot(\ddot{{\bm{p}}}_{G}-{\bm{g}}))\overrightarrow{GZ}\ =\ m({\bm{n}}\cdot\overrightarrow{GZ})(\ddot{{\bm{p}}}_{G}-{\bm{g}})+{\bm{n}}\times\dot{\mathbf{L}}_{G}. (44)

Equation (41) is a rearrangement of this last formula. ∎

IV-A Linear pendulum mode

The Linear Pendulum Mode (LPM) is a particular mode of Equation (41), obtained by regulating the COM altitude and the angular momentum to constant values:

Definition 3 (Linear Pendulum Mode (LPM)).

Provided with a normal vector 𝐧{\bm{n}}, the linear-pendulum assumptions are:333 Strictly speaking, our definition includes both 𝐧×𝐋˙G=𝟎{\bm{n}}\times\dot{\mathbf{L}}_{G}=\bm{0} and 𝐧𝐋˙G=0{\bm{n}}\cdot\dot{\mathbf{L}}_{G}=0, while only the former is necessary to realize the linear pendulum mode.

𝒏𝒑¨G\displaystyle{\bm{n}}\cdot\ddot{{\bm{p}}}_{G} =\displaystyle= 0\displaystyle 0 (45)
𝐋˙G\displaystyle\dot{\mathbf{L}}_{G} =\displaystyle= 𝟎.\displaystyle\bm{0}. (46)

When dZ<dGd_{Z}<d_{G}, the COM is above the virtual plane with respect to the plane normal. In such situations, Equation (41) yields the well-known linear inverted pendulum mode (LIPM) [4, 10]:

Proposition 7 (Linear Inverted Pendulum Mode (LIPM)).

Assume that h=defdGdZ>0h\stackrel{{\scriptstyle\mathrm{def}}}{{=}}d_{G}-d_{Z}>0, and define ωLIP=g/h\omega_{\mathrm{LIP}}=\sqrt{g/h}. The COM acceleration in the LPM is then related to the ZMP by:

𝒑¨G=𝒈ωLIP2GZ\ddot{{\bm{p}}}_{G}\ =\ {\bm{g}}-\omega_{\mathrm{LIP}}^{2}\,\overrightarrow{GZ} (47)

The LIPM was a necessity in previous works as the ZMP was assumed to lie on the floor below the COM. But now that the virtual plane coordinate dZd_{Z} can be chosen freely, we may also consider the case where dZ>dGd_{Z}>d_{G}, i.e. taking the virtual plane above the COM. In this case, Equation (41) yields a linear non-inverted pendulum:

Proposition 8 (Linear Non-inverted Pendulum Mode (LNPM)).

Assume that h=defdZdG>0h^{\prime}\stackrel{{\scriptstyle\mathrm{def}}}{{=}}d_{Z}-d_{G}>0, and define ωLNP=g/h\omega_{\mathrm{LNP}}=\sqrt{g/h^{\prime}}. The COM acceleration in the LPM is then related to the ZMP by:

𝒑¨G=𝒈+ωLNP2GZ\ddot{{\bm{p}}}_{G}\ =\ {\bm{g}}+\omega_{\mathrm{LNP}}^{2}\,\overrightarrow{GZ} (48)

The behavior of the ZMP with respect to COM acceleration differs between the two modes. In the LIPM, the ZMP is a repulsor of the COM: when it is maintained at a fixed position, the COM is “pushed away” from it and diverges to infinity. When selecting a virtual plane below the center of mass (dZ<dG)(d_{Z}<d_{G}), ZMP trajectories will therefore follow the COM when it accelerates, and precede it when it decelerates.

In the LNPM, the ZMP is a marginal attractor of the COM: when it is maintained at a fixed position, the COM will “orbit” around it (yet without asymptotic convergence, as there is no damping term in Equation (48)). In a virtual plane above the center of mass (dZ>dGd_{Z}>d_{G}), ZMP trajectories will therefore precede the COM when it accelerates, and follow it otherwise.

These two complementary behaviors reflect the fact that, in the LPM, the resultant contact force 𝒇{\bm{f}} always points from the COM to the ZMP. In what follows, we choose to take the virtual plane above the center of mass and use the LNPM.

IV-B Shrinking of the support area

Previous methods [9, 10, 18, 7, 11, 12] applied the LIPM using the convex hull of contact points (CHCP) as ZMP support area. By Proposition 4, when all contacts are coplanar the CHCP is the full support area. However, it turns out that the constraints (45)-(46) of the linear-pendulum mode shrink the ZMP support area.

This can be seen as follows. Suppose that the ZMP is located at a vertex CkC_{k} of a given contact polygon. The resultant contact force 𝒇{\bm{f}} must then be realized as one contact force 𝒇k{\bm{f}}_{k} applied at CkC_{k}, while all other contact forces 𝒇j=𝟎{\bm{f}}_{j}=\bm{0} for jkj\neq k. (From Equation (17), 𝒑Z=𝒑Zk=𝒑Ck{\bm{p}}_{Z}={\bm{p}}_{Z_{k}}={\bm{p}}_{C_{k}} implies that only the λi\lambda_{i}’s corresponding to CkC_{k} can be strictly positive.) However, in the LPM the contact force 𝒇=𝒑¨G𝒈{\bm{f}}=\ddot{{\bm{p}}}_{G}-{\bm{g}} is also directed from Z=CkZ=C_{k} to GG. Hence, the ZMP support area cannot be the CHCP as soon as the COM lies outside of the friction cone of at least one ground contact point. An example of such situation is when a biped robot stretches its legs, as depicted in Figure 6.

Refer to caption
Figure 6: Situation where the pendular support area (green stripes), i.e. the ZMP support area for the Linear Pendulum Mode, is smaller than the convex hull of ground contact points (blue polygon). The robot has its legs stretched, with its two feet one meter apart on a horizontal floor (in gray). Its COM is 50 cm above ground, and the friction at contact is μ=0.5\mu=0.5. The ZMP cannot be located at the corner CkC_{k} of the convex hull, as it would require a resultant contact force 𝒇k{\bm{f}}_{k} (in magenta) lying outside of the friction cone 𝒞k{\cal C}_{k} (in red). The pendular support area in this Figure has been computed using the algorithm from Section IV-C.

Methods that take the Convex Hull of Contact Points (CHCP) as ZMP support areas rely by construction on the assumption of “infinite friction” to rule out such cases, at the cost of being problematic for locomotion on low-friction floors (apart from sliding, foot yaw rotations due to insufficient friction have also been observed and studied [37, 33]). This assumption explains why the shrinking of the ZMP support area in the LPM was not highlighted in previous works.

We call pendular support area the shrunk support area that takes into consideration the Equations (45)-(46) of the LPM.

IV-C Computation of the pendular support area

In this section, we assume that 𝒏=𝒆Z{\bm{n}}={\bm{e}}_{Z}, the upward vertical (opposite to gravity) unit vector. We now propose an algorithm to compute the pendular support area based on the double-description method [38]. It turns out that computations of this set are very similar to that of the COM static-equilibrium polygon. We explain both calculations here.

IV-C1 Static-equilibrium polygon

In static equilibrium, the equations on the contact wrench are:

𝒇\displaystyle{\bm{f}} =\displaystyle= m𝒈\displaystyle-m{\bm{g}} (49)
𝒏×𝝉O\displaystyle{\bm{n}}\times\bm{\tau}_{O} =\displaystyle= 𝒏×(𝒑G×m𝒈)\displaystyle-{\bm{n}}\times({\bm{p}}_{G}\times m{\bm{g}}) (50)
𝒏𝝉O\displaystyle{\bm{n}}\cdot\bm{\tau}_{O} =\displaystyle= 0\displaystyle 0 (51)

By expanding the triple product in Equation (50), we can rewrite them equivalently as:

[𝐄3𝟎3×3𝟎1×3𝒏][𝒇𝝉O]=[m𝒈0]\left[\begin{array}[]{cc}\mathbf{E}_{3}&\bm{0}_{3\times 3}\\ \bm{0}_{1\times 3}&{\bm{n}}^{\top}\end{array}\right]\left[\begin{array}[]{c}{\bm{f}}\\ \bm{\tau}_{O}\end{array}\right]\ =\ \left[\begin{array}[]{c}-m{\bm{g}}\\ 0\end{array}\right] (52)
𝒑G=(𝒏/mg)×𝝉O+zG𝒏{\bm{p}}_{G}\ =\ ({\bm{n}}/mg)\times\bm{\tau}_{O}+z_{G}{\bm{n}} (53)

In concise form, these two equations can be written:

𝐀𝒘O\displaystyle\mathbf{A}{\bm{w}}_{O} =\displaystyle= 𝒃\displaystyle{\bm{b}} (54)
𝒑G\displaystyle{\bm{p}}_{G} =\displaystyle= 𝐂𝒘O+𝒅\displaystyle\mathbf{C}{\bm{w}}_{O}+{\bm{d}} (55)

Consider the stacked vector of contact forces 𝒇all=[𝒇1𝒇n]{\bm{f}}_{all}=[{\bm{f}}_{1}^{\top}\cdots{\bm{f}}_{n}^{\top}]^{\top}. Linearized friction cones are given by linear inequalities 𝐅i𝒇i𝟎\mathbf{F}_{i}{\bm{f}}_{i}\leq\bm{0}. For instance, four-sided friction pyramids can be formulated as

𝐅i=[10μi+10μi01μi0+1μi]𝐑i.\mathbf{F}_{i}\ =\ \left[\begin{array}[]{ccc}-1&0&-\mu_{i}\\ +1&0&-\mu_{i}\\ 0&-1&-\mu_{i}\\ 0&+1&-\mu_{i}\end{array}\right]\mathbf{R}_{i}^{\top}. (56)

Combining all 𝐅i\mathbf{F}_{i}’s in a block diagonal matrix 𝐅\mathbf{F} yields an inequality 𝐅𝒇all𝟎\mathbf{F}{\bm{f}}_{all}\leq\bm{0}. Meanwhile, Equation (5) provides a linear mapping 𝒘O=𝐆O𝒇all{\bm{w}}_{O}=\mathbf{G}_{O}{\bm{f}}_{all} from contact forces to the contact wrench, where 𝐆O\mathbf{G}_{O} is the so-called grasp matrix. Then, the set of valid contact forces in static equilibrium is given by:

𝐅𝒇all\displaystyle\mathbf{F}{\bm{f}}_{all} \displaystyle\leq 𝟎\displaystyle\bm{0} (57)
𝐀𝐆O𝒇all\displaystyle\mathbf{A}\mathbf{G}_{O}{\bm{f}}_{all} =\displaystyle= 𝒃\displaystyle{\bm{b}} (58)

This expression of a polytope by linear inequalities is known as the half-space representation. By the Minkowski-Weyl theorem [38], all polytopes can be equivalently written in terms of linear inequalities (half-space representation) or in terms of vertices and rays (span representation). The double description method [38] provides a “black-box” algorithm to convert between one representation and the other. Using this tool, one can compute the span representation of this set as:

𝒇all=iαi𝒗i{\bm{f}}_{all}=\sum_{i}\alpha_{i}{\bm{v}}_{i} (59)

where αi>0,iαi=1\alpha_{i}>0,\sum_{i}\alpha_{i}=1, and the 𝒗i{\bm{v}}_{i}’s are computed vertices. The span representation of the stability polygon is finally given by

𝒑G=iαi(𝐂𝐆O𝒗i)+𝒅.{\bm{p}}_{G}=\sum_{i}\alpha_{i}(\mathbf{C}\mathbf{G}_{O}{\bm{v}}_{i})+{\bm{d}}. (60)

In the case of static stability, the solution is always a polygon, so there is no need to consider rays in this span representation. Note that this method for computing the COM static-equilibrium polygon by double-description is different from the recursive polytope projection algorithm [36].

IV-C2 Pendular support area

the Equations (45)-(46) of the LPM are written, in terms of the contact wrench:

𝒏𝒇\displaystyle{\bm{n}}\cdot{\bm{f}} =\displaystyle= mg\displaystyle mg (61)
𝒏𝝉G\displaystyle{\bm{n}}\cdot\bm{\tau}_{G} =\displaystyle= 0\displaystyle 0 (62)
𝒏×𝝉G\displaystyle{\bm{n}}\times\bm{\tau}_{G} =\displaystyle= 𝟎\displaystyle\bm{0} (63)

where g9.81g\approx 9.81 m.s-2 is the gravity constant. Taking the resultant moment 𝝉O\bm{\tau}_{O} rather than 𝝉G\bm{\tau}_{G}, one can rewrite the equations above as:

1mg[zG𝐄3[𝒏×](𝒏×𝒑G)𝒏][𝒇𝝉O]=[𝒑G0]\frac{1}{mg}\left[\begin{array}[]{cc}z_{G}\mathbf{E}_{3}&[{\bm{n}}\times]\\ -({\bm{n}}\times{\bm{p}}_{G})^{\top}&{\bm{n}}^{\top}\end{array}\right]\left[\begin{array}[]{c}{\bm{f}}\\ \bm{\tau}_{O}\end{array}\right]\ =\ \left[\begin{array}[]{c}{\bm{p}}_{G}\\ 0\\ \end{array}\right] (64)
𝒑Z=zZzGmg𝒇+𝒑G,{\bm{p}}_{Z}\ =\ \frac{z_{Z}-z_{G}}{mg}{\bm{f}}+{\bm{p}}_{G}, (65)

Equation (64) results from (61)-(62), while Equation (65) is a reformulation of (63).

Contrary to the previous setting, where the COM position 𝒑G{\bm{p}}_{G} resulted from the contact wrench in static equilibrium, we now assume that 𝒑G{\bm{p}}_{G} is known (e.g. measured from the instantaneous robot state). In concise form, the two equations above can be written:

𝐀𝒘O\displaystyle\mathbf{A}^{\prime}{\bm{w}}_{O} =\displaystyle= 𝒃\displaystyle{\bm{b}}^{\prime} (66)
𝒑Z\displaystyle{\bm{p}}_{Z} =\displaystyle= 𝐂𝒘O+𝒅\displaystyle\mathbf{C}^{\prime}{\bm{w}}_{O}+{\bm{d}}^{\prime} (67)

where the matrices 𝐀,𝐂\mathbf{A}^{\prime},\mathbf{C}^{\prime} and vectors 𝒃,𝒅{\bm{b}}^{\prime},{\bm{d}}^{\prime} now depend on 𝒑G{\bm{p}}_{G}. From there, the computations are the same as for static stability: the set of valid contact forces 𝒇all{\bm{f}}_{all} is given by

𝐅𝒇all\displaystyle\mathbf{F}{\bm{f}}_{all} \displaystyle\leq 𝟎\displaystyle\bm{0} (68)
𝐀𝐆O𝒇all\displaystyle\mathbf{A}^{\prime}\mathbf{G}_{O}{\bm{f}}_{all} =\displaystyle= 𝒃\displaystyle{\bm{b}}^{\prime} (69)

Using the double description method, one can compute the span representation of this set as

𝒇all=iαi𝒗i+jλj𝒓j{\bm{f}}_{all}=\sum_{i}\alpha_{i}{\bm{v}}_{i}+\sum_{j}\lambda_{j}{\bm{r}}_{j} (70)

where αi>0,iαi=1\alpha_{i}>0,\sum_{i}\alpha_{i}=1, λj>0\lambda_{j}>0 and the 𝒗i{\bm{v}}_{i}’s (rep. 𝒓j{\bm{r}}_{j}’s) are the computed vertices (resp. rays). The span representation of the pendular support area is finally given by

𝒑Z=iαi(𝐂𝐆O𝒗i)+jλj(𝐂𝐆O𝒓j)+𝒅.{\bm{p}}_{Z}=\sum_{i}\alpha_{i}(\mathbf{C}^{\prime}\mathbf{G}_{O}{\bm{v}}_{i})+\sum_{j}\lambda_{j}(\mathbf{C}^{\prime}\mathbf{G}_{O}{\bm{r}}_{j})+{\bm{d}}^{\prime}. (71)

Similarly to the full support area, the pendular area can be either conical or polygonal. Compared with the full support area or static-equilibrium polygon, it depends not only on the set of contacts {𝒑Ci}\{{\bm{p}}_{C_{i}}\}, but also on the instantaneous position 𝒑G{\bm{p}}_{G} of the COM. Yet, where the full support area yields only a necessary condition for contact stability (it is a 2D projection of the 6D contact wrench, the remaining four components being unconstrained), the pendular support area gives a condition both necessary and sufficient under the LPM (the four other components of the contact wrench being determined by equality constraints).

V Experiments

V-A Trajectory generation

We now design a trajectory generator for ZMP-COM trajectories based on the model-preview control formalism introduced in previous works [18, 30]. We use the ZMP as a command and COM as the output variable. First, we define the support of the ZMP trajectory 𝒑Z(γ(t)){\bm{p}}_{Z}(\gamma(t)) as a line segment:

𝒑Z(γ(t))=γ(t)𝒑1+(1γ(t))𝒑0,{\bm{p}}_{Z}(\gamma(t))\ =\ \gamma(t){\bm{p}}_{1}+(1-\gamma(t)){\bm{p}}_{0}, (72)

where 𝒑0{\bm{p}}_{0} (resp. 𝒑1{\bm{p}}_{1}) denotes the initial (resp. final) ZMP position. Assuming that its initial velocity is zero, the COM follows a parallel line segment 𝒑G(η(t)){\bm{p}}_{G}(\eta(t)):

𝒑G(η(t))=η(t)𝒑1+(1η(t))𝒑0,{\bm{p}}_{G}(\eta(t))\ =\ \eta(t){\bm{p}}_{1}+(1-\eta(t)){\bm{p}}_{0}, (73)

where η¨(t)=ω2(γ(t)η(t))\ddot{\eta}(t)=\omega^{2}(\gamma(t)-\eta(t)). Next, define the state of the control problem by 𝒙(t)=[η(t)η˙(t)]{\bm{x}}(t)~=~[\eta(t)\ \dot{\eta}(t)]^{\top} and its command by the linear position γ(t)\gamma(t) of the ZMP. Discretizing the time interval into KK steps of duration δt\delta t, the system’s dynamics become

𝒙k+1\displaystyle{\bm{x}}_{k+1} =\displaystyle= [cos(ωδt)1ωsin(ωδt)ωsin(ωδt)cos(ωδt)]𝒙k\displaystyle\left[\begin{array}[]{cc}\cos(\omega\delta t)&\frac{1}{\omega}\sin(\omega\delta t)\\ -\omega\sin(\omega\delta t)&\cos(\omega\delta t)\end{array}\right]{\bm{x}}_{k} (76)
+\displaystyle+ [1cos(ωδt)ωsin(ωδt)]γk\displaystyle\left[\begin{array}[]{c}1-\cos(\omega\delta t)\\ \omega\sin(\omega\delta t)\end{array}\right]\gamma_{k} (79)

Let 𝐗=[𝒙0𝒙K]\mathbf{X}=[{\bm{x}}_{0}^{\top}\cdots{\bm{x}}_{K}^{\top}]^{\top} and 𝜸=[γ0γK1]\bm{\gamma}=[\gamma_{0}\cdots\gamma_{K-1}]^{\top}. Applying (76) repeatedly, we build the matrices 𝚽\bm{\Phi} and 𝚿\bm{\Psi} such that 𝐗=𝚽𝒙0+𝚿𝜸\mathbf{X}=\bm{\Phi}{\bm{x}}_{0}+\bm{\Psi}\bm{\gamma}. We assume that the system starts with zero COM velocity, so that 𝒙0=𝟎{\bm{x}}_{0}=\bm{0} and 𝐗=𝚿𝜸\mathbf{X}=\bm{\Psi}\bm{\gamma}.

Refer to caption
Figure 7: Variations of the shape of the pendular support area with the coordinate dZd_{Z} of the virtual plane. In this configuration, the humanoid is making two tilted foot contacts and a left hand contact. (There is no right hand contact.) The axis directed by the plane normal 𝒏{\bm{n}} and going through the COM is depicted by a dashed line. In the proposed method, the plane altitude can be chosen freely as long as dZdGd_{Z}\neq d_{G}, however the support area becomes small when dZd_{Z} and dGd_{G} are close.

We formulate the trajectory generation problem as a Quadratic Program (QP) as follows:

Objective: minw1c1(𝜸)+w2c2(𝜸)\displaystyle\min\ w_{1}c_{1}(\bm{\gamma})+w_{2}c_{2}(\bm{\gamma})
Constraints: 𝟎𝜸𝟏\displaystyle\bm{0}\leq\bm{\gamma}\leq\bm{1}
𝒙K=𝚿last𝜸=[ 1 0]\displaystyle{\bm{x}}_{K}=\bm{\Psi}_{\mathrm{last}}\bm{\gamma}=[\>1\ 0\>]^{\top}
𝜸K1=1\displaystyle\bm{\gamma}_{K-1}=1

The objective is the weighted sum of two terms:

c1(𝜸)\displaystyle c_{1}(\bm{\gamma}) =\displaystyle= 1Kk(ηkγk)2\displaystyle\textstyle\frac{1}{K}\sum_{k}(\eta_{k}-\gamma_{k})^{2} (80)
c2(𝜸)\displaystyle c_{2}(\bm{\gamma}) =\displaystyle= k(γkγk1)2\displaystyle\textstyle\sum_{k}(\gamma_{k}-\gamma_{k-1})^{2} (81)

The first one minimizes COM accelerations while the second regularizes the ZMP trajectory. The weights of the cost function are set to w1=1w_{1}=1 and w2=100w_{2}=100. Meanwhile, the constraints ensure respectively that:

  • the ZMP belongs to the line segment (γ(t)[0,1])(\gamma(t)\in[0,1])

  • the COM ends at the destination point (ηK=1)(\eta_{K}=1) with zero velocity (η˙K=0)(\dot{\eta}_{K}=0),

  • the ZMP also ends at the destination point (γK1=1)(\gamma_{K-1}=1).

The solution to this QP provides a ZMP trajectory pZ(t)p_{Z}(t), which is then integrated into a COM trajectory pG(t)p_{G}(t) by applying (48). We also added a damping term at this stage to smooth out undesired COM oscillations. On a side note, set aside the two regularization objectives, this optimization problem falls under the framework of Time-Optimal Path Parameterization (TOPP) [39, 40]. One could then trade smoothness of COM accelerations for Admissible Velocity Propagation (AVP), allowing for the integration into a kinodynamic planner of COM trajectories [41].

Refer to caption
Figure 8: Three pendular support areas and their corresponding pendulums at rest configurations, i.e. with the ZMP at the vertical of the COM. The HRP-4 posture corresponds to the leftmost (red) configuration, where the vertical of the COM is centered in the area. In the middle (green) case, the COM slid to the right while the area slid by a lesser amount, so that the vertical of the COM is now on its edge: the configuration is statically marginally stable. In the rightmost (blue) case, the pendulum slid further: the vertical of the COM is no longer in the support area, and the leftmost feasible ZMP (dashed line) will steer the COM further away to the right.

With this method, contact stability is mostly enforced by checking that the segment [𝒑0,𝒑1][{\bm{p}}_{0},{\bm{p}}_{1}] lies inside the pendular support area computed for the extremities 𝒑0{\bm{p}}_{0} and 𝒑1{\bm{p}}_{1} of the segment. However, the COM moves as the robot performs the motion, which affects both the position and shape of the pendular support area. This phenomenon can have two undesired outcomes:

  • the area becomes empty: we observed empirically that this would only happen when the COM is far away (e.g. more than one meter) from contacts, and was not a threat in practice.

  • the area constraints the COM motion toward divergence: past a certain COM-to-contacts distance, the support area slants away from contacts, in a way such that it contains no ZMP that could bring the pendulum back above contacts.

Figure 8 illustrates this phenomenon. In practice, ensuring that the ZMP is well within the support area computed at the beginning 𝒑0{\bm{p}}_{0} and end 𝒑1{\bm{p}}_{1} of the segment was enough to rule out both undesirable outcomes.

V-B Long stride while leaning on a wall

We implemented the whole pipeline described so far to generate multi-contact motions for a model of the HRP-4 humanoid robot. The scenario is depicted in Figure 9. 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 put its left hand on the elevated “wall” platform while pushing with its right foot on the opposite tilted surface. Relying on these two simultaneous contacts, the humanoid can perform a long stride which would have been impossible to achieve in single-support.

As input given to solve this scenario, we assume that a contact planner provides a sequence of stances, where a stance σi({𝒑Ci},𝒑i)\sigma_{i}(\{{\bm{p}}_{C_{i}}\},{\bm{p}}_{i}) provides both a reference position of the COM 𝒑i{\bm{p}}_{i} and a set of contact points {𝒑Ci}\{{\bm{p}}_{C_{i}}\}. The first stage of our solution computes stance-to-stance COM trajectories. To move from σi\sigma_{i} to stance σi+1\sigma_{i+1}, the controller considers the line segment [𝒑i,𝒑i+1][{\bm{p}}_{i},{\bm{p}}_{i+1}]. The trajectory generator is called if this segment is included in the pendular support area 𝒮(𝒑i,dZ){\cal S}({\bm{p}}_{i},d_{Z}) for the initial COM position. Otherwise, dZd_{Z} is increased until the segment is included in 𝒮(𝒑i,dZ){\cal S}({\bm{p}}_{i},d_{Z}). This condition is easy to fulfill in practice, as we observed that the region 𝒮(𝒑G,dZ){\cal S}({\bm{p}}_{G},d_{Z}) grows like the section by the plane Π(dZ,𝒏)\Pi(d_{Z},{\bm{n}}) of a cone passing through GG (see Figure 7). In the motion depicted in Figure 9, this process lead us to take the virtual plane one meter above the center of mass of the humanoid (HRP-4 is 1.5-meter tall). Although contact planning was done by hand in this experiment, we also used the pendular support area to select COM positions 𝒑i{\bm{p}}_{i} from contact locations {𝒑Ci}\{{\bm{p}}_{C_{i}}\}, by enforcing that the ZMP at the vertical of 𝒑i{\bm{p}}_{i} lies well inside 𝒮(𝒑i,dZ){\cal S}({\bm{p}}_{i},d_{Z}).

Refer to caption
Figure 9: Snapshots of the motion generated in the Linear Pendulum Mode with a ZMP above the robot’s COM. The robot has to put its left hand on a “wall” contact (in the background) and its 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 virtual plane is taken one meter above the robot’s COM. Green polygons in this virtual plane correspond to the pendular support areas for each snapshot. Vertical lines represent the (virtual) linear pendulum. Contact forces (arrows pointing from contacts toward the robot) are computed at each time instant to cross-validate the contact-stability of the motion.

Once a reference COM trajectory 𝒑G(t){\bm{p}}_{G}(t) has been computed, we generate whole-body joint-angles by differential inverse kinematics (IK) under the following constraints, by decreasing task weight:

  1. 1.

    tracking of contacting end-effector poses,

  2. 2.

    tracking of COM trajectory,

  3. 3.

    tracking of free end-effector poses,

  4. 4.

    minimum variations in angular momentum

  5. 5.

    preferred values for some joint-angles.

We applied our own IK solver for the task, which is released in the pymanoid library.444https://github.com/stephane-caron/pymanoid Similarly to [26], this solver relies on a single-layer QP problem, using the above cost function and a set of inequality constraints

𝒒˙min(𝒒˙max,Ks(𝒒𝒒max))\dot{{\bm{q}}}\ \leq\ \min(\dot{{\bm{q}}}_{\textrm{max}},-K_{s}({\bm{q}}-{\bm{q}}_{\textrm{max}})) (82)

to limit joint velocities. Gains and weights used in the simulations are reported in Table II, while other simulation parameters are given in Table III. Implementation details can be checked in the library and source code released with the paper (see the motion_editor distributed in [42]).

ZMP tracking is not an explicit task in the list above, and is realized as a side effect of the COM tracking task. The latter comes second in the hierarchy of the differential IK solver and is therefore not fulfilled perfectly, as illustrated in Figure 10. The same holds for the task 𝐋˙G=0\dot{\mathbf{L}}_{G}=0, which has an even lower rank in the hierarchy. Yet, ZMP deviations in the generated trajectory are small enough and one can check that the ZMP always stays well within the pendular support area (see the accompanying video). We cross-validated the contact-stability of the final motion by computing, at each time step, a set of valid contact forces 𝒇all{\bm{f}}_{all}. Force vectors are depicted in Figure 9 and displayed in the accompanying video [42].

Refer to caption
Figure 10: COM and ZMP trajectories (resp. in green and red) for the motion of Figure 9. Reference trajectories are straight dashed lines between via points. Five pendular support areas corresponding to single- and double-support configurations are plotted for reference (green polygons). The accompanying video [42] shows the evolution of support areas throughout the motion.

V-C Computation times

TABLE I: Computation times (in ms) for the full support area and CWC [17], as well as for the pendular support area using [38] (cdd) or [36] (B&L). Bold indicates fastest in each category.
Stability Criterion One contact Two contacts Three contacts6
CWC (cdd) 1.1±4.21.1\pm 4.2 4.5±1.84.5\pm 1.8 9.5±2.69.5\pm 2.6
Full support area 0.8±0.4\bf 0.8\pm 0.4 2.6±2.1\bf 2.6\pm 2.1 6.4±3.1\bf 6.4\pm 3.1
Pendular area (cdd) 6.4±3.3\bf 6.4\pm 3.3 24.8±4.7\bf 24.8\pm 4.7 385.3±251.3385.3\pm 251.3
Pendular area (B&L) 18.5±3.718.5\pm 3.7 33.9±12.233.9\pm 12.2 67.9±11.9\bf 67.9\pm 11.9

Table I reports average computation times for both kinds of support area during the execution of the motion from Figure 9. Simulations were run on an average laptop computer with an Intel(r) Core(tm) i7-6500U CPU @ 2.50 Ghz. The source code for these simulations is located in the full_support_area folder of [42].

The number of samples for each average in Table I is around 1000 for one- and two-contact configurations, and around 100 for three-contact configurations. The first two lines show that computing the full support area is faster using our geometric construction than by projecting the CWC [17], which is expected since the latter is a more complex 6D cone. These two criteria are always computed faster than a pendular support area, as the latter adds equality constraints to the former, while neither of them takes into account limits on the angular momentum. Also, recall that the full support area is only a necessary condition for contact stability.

The first line of the second group corresponds to the algorithm described in Section IV-C. We also implemented a variant of the projection algorithm from [36] to compute the pendular support area.555 See the contact_stability ROS package in [42] for details. In practice, this variant is one to three times slower than cdd, except for triple contacts where we observed a significant slowdown of cdd, along with some freezes. This point is implementation-specific rather than a limitation of the underlying double-description algorithm.666 Averages for “Pendular area (cdd)” in triple-contact are reported for samples where cdd did not freeze, amounting for around 20%20\% of all samples.

VI Conclusion and future work

In this paper, we have generalized the notion of ZMP support areas to take into account frictional constraints and multiple non-coplanar contacts. First, we derived the geometric construction of the full support area, which contains all ZMPs generated by valid contact forces. Then, we moved to the control of humanoid robots in the Linear Pendulum Mode. We noticed that the constraints stemming from this mode shrink the support area (even on horizontal floors), and proposed an algorithm to compute the new area, which we called pendular support area. Armed with these new conceptual tools, we designed a whole-body controller for locomotion across arbitrary multi-contact stances, which we demonstrated in simulation with a model of the HRP-4 humanoid robot.

Support areas are a general property of contact wrenches and can be applied in all fields related to mobility, including locomotion, grasping or workpiece fixturing. As a mathematical object, they are 2D non-linear projections of the 6D contact wrench cone. From there, one may ask: is it the most general we can do, or can a 3D projection take into account more components of the resultant moment? For the interested reader, we provide some elements of answer in Appendix A, although the question itself remains open.

In practice, we believe that the ability to take ZMPs in virtual support areas paves the way for multiple future developments. For contact planning, we noticed how individual support polygons can be used to measure the “increase of stability” of a prospective contact. For whole-body control, our approach can be followed in the more general framework of a-priori dimensionality reduction of control problems. At one end of the spectrum, the full support area corresponds to a controller with state variables for all six components of the whole-body momentum, such as [29, 30]. The task of such a controller is harder, but the area depends only on contact locations. At the other end of the spectrum, the pendular support area corresponds to fixing four momentum components, thus reducing control to a two-dimensional problem. The task of the controller is then simpler, at the cost that the area depends on the position of the COM. Between these two ends of the spectrum lies a hierarchy of intermediate three-, four- or five-dimensional problems that can be computed, in a similar fashion, by a-priori reduction of equality constraints. Exploring these possibilities is the focus of our current research.

TABLE II: Gains and weights used in the differential IK tracker
(n/a: no gain for tasks regulating accelerations)
Task description Gain [Hz] Weight
Contacting end-effector 1 100
Free end-effector 0.03 1
Center of mass tracking 1 5
Angular momentum variations n/a 0.2
Joint-limit gain KsK_{s} 50 n/a
Velocity smoothness n/a 1
Preferred joint-angles 0.05 0.1
TABLE III: Simulation and trajectory generation parameters
Description Symbol Value
Friction coefficient (all contacts) μ\mu 0.5
Number of traj. gen. timesteps KK 100
Duration of traj. gen. timesteps δt\delta t 10 ms
Plane normal 𝒏{\bm{n}} [0 0 1][0\ 0\ 1]
Step duration TST_{S} 2.5 [s]
Velocity limits 𝒒˙max\dot{{\bm{q}}}_{\textrm{max}} 0.5 [rad/s]

Acknowledgment

This research was supported by 2014-2015 NEDO International R&D and Demonstrative Project in Environmental and Medical Fields / International R&D and Demonstrative Project in Robotics Fields / ”Research and Development of Robot Open Platform for Disaster Response” (PI: Yoshihiko Nakamura).

References

  • [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 and K. Tani, “Study of dynamic biped locomotion on rugged terrain-derivation and application of the linear inverted pendulum mode,” in Robotics and Automation, 1991. Proceedings., 1991 IEEE International Conference on. IEEE, 1991, pp. 1405–1411.
  • [4] 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.
  • [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.
  • [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] 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.
  • [11] 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.
  • [12] 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.
  • [13] 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.
  • [14] 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.
  • [15] 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.
  • [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. 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.
  • [18] 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.
  • [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] 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.
  • [22] Y. Zhao and L. Sentis, “A three dimensional foot placement planner for locomotion in very rough terrains,” in Humanoid Robots (Humanoids), 2012 12th IEEE-RAS International Conference on. IEEE, 2012, pp. 726–733.
  • [23] 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.
  • [24] 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.
  • [25] 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.
  • [26] 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.
  • [27] 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.
  • [28] 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.
  • [29] K. Nagasaka, T. Fukushima, and H. Shimomura, “Whole-body control of a humanoid robot based on generalized inverse dynamics and multi-contact stabilizer that can take acount of contact constraints,” in Robotics Symposium (in Japanese), vol. 17, 2012.
  • [30] 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.
  • [31] 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.
  • [32] P.-B. Wieber, “Holonomy and nonholonomy in the dynamics of articulated motion,” in Fast motions in biomechanics and robotics. Springer, 2006, pp. 411–425.
  • [33] 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.
  • [34] 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.
  • [35] 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.
  • [36] T. Bretl and S. Lall, “Testing static equilibrium for legged robots,” Robotics, IEEE Transactions on, vol. 24, no. 4, pp. 794–807, 2008.
  • [37] 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.
  • [38] K. Fukuda and A. Prodon, “Double description method revisited,” in Combinatorics and computer science. Springer, 1996, pp. 91–111.
  • [39] 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.
  • [40] Q.-C. Pham and O. Stasse, “Time-optimal path parameterization for redundantly actuated robots: A numerical integration approach,” IEEE/ASME Transactions on Mechatronics, vol. 20, no. 6, pp. 3257–3263, 2015.
  • [41] Q.-C. Pham, S. Caron, and Y. Nakamura, “Kinodynamic planning in the configuration space via velocity interval propagation,” in Robotics: Science and System, 2013.
  • [42] [Online]. Available: https://github.com/stephane-caron/tro-2016

Appendix A Perspectives on a three-dimensional ZMP

Considering Proposition 2, the ZMP decouples the moment of a wrench from the position at which it is taken, yet at the “cost” of one dimension. A natural question is then: could a three-dimensional ZMP perform a similar decoupling for all three coordinates of the moment? Unfortunately the answer seems to be negative, at least in the following sense:

Proposition 9.

Let 𝐩Z(O)=𝐁(𝐟)𝛕O{\bm{p}}_{Z}(O)=\mathbf{B}({\bm{f}})\,\bm{\tau}_{O} denote any linear projection of the moment 𝛕O\bm{\tau}_{O}, where the matrix 𝐁(𝐟)\mathbf{B}({\bm{f}}) is allowed to depend non-linearly on 𝐟{\bm{f}}. The set of displacements OO\overrightarrow{OO^{\prime}} of the reference point OO that leave ZZ invariant is a vector space of dimension at most two.

Proof:

Let OO and OO^{\prime} denote two points such that 𝒑Z(O)=𝒑Z(O){\bm{p}}_{Z}(O^{\prime})={\bm{p}}_{Z}(O). Then, OO+𝐁(𝒇)OO×𝒇=𝟎\overrightarrow{O^{\prime}O}+\mathbf{B}({\bm{f}})\overrightarrow{OO^{\prime}}\times{\bm{f}}=\bm{0}, which rewrites to 𝐂OO=OO\mathbf{C}\,\overrightarrow{OO^{\prime}}=\overrightarrow{OO^{\prime}} for 𝐂=def𝐁(𝒇)[𝒇×]\mathbf{C}\stackrel{{\scriptstyle\mathrm{def}}}{{=}}\mathbf{B}({\bm{f}})[-{\bm{f}}\times]. The translation vector OO\overrightarrow{OO^{\prime}} thus belongs to the eigenspace {\cal E} of 𝐂\mathbf{C} associated to the eigenvalue 1. To conclude, remark that dim()rank(𝐂)rank([𝒇×])2\textrm{dim}({\cal E})\leq~\textrm{rank}(\mathbf{C})\leq~\textrm{rank}([{\bm{f}}\times])\leq 2. ∎

In other words, at least one coordinate of the ZMP depends on the reference point OO. Let us then consider the remaining moment coordinate (𝒏𝝉O)({\bm{n}}\cdot\bm{\tau}_{O}). Applying the same calculations as those following Equation (13), one can write:

𝒏𝝉O𝒏𝒇=iλi𝒏𝒑Ci×𝒇iiλi(𝒏𝒇i)=iλi(𝒏𝒇i)𝒏𝒑Ci×𝒇i𝒏𝒇iiλi(𝒏𝒇i)\frac{{\bm{n}}\cdot\bm{\tau}_{O}}{{\bm{n}}\cdot{\bm{f}}}\ =\ \frac{\sum_{i}\lambda_{i}{\bm{n}}\cdot{\bm{p}}_{C_{i}}\times{\bm{f}}_{i}}{\sum_{i}\lambda_{i}({\bm{n}}\cdot{\bm{f}}_{i})}\\ \ =\ \frac{\sum_{i}\lambda_{i}({\bm{n}}\cdot{\bm{f}}_{i}){\frac{{\bm{n}}\cdot{\bm{p}}_{C_{i}}\times{\bm{f}}_{i}}{{\bm{n}}\cdot{\bm{f}}_{i}}}}{\sum_{i}\lambda_{i}({\bm{n}}\cdot{\bm{f}}_{i})}

We then define a spatial point including all three coordinates, which we call the 𝐧{\bm{n}}-Moment Point (𝒏{\bm{n}}-MP for short):

𝒑M=𝒏×𝝉O𝒏𝒇+𝒏𝝉O𝒏𝒇𝒏.{\bm{p}}_{M}\ =\ \frac{{\bm{n}}\times\bm{\tau}_{O}}{{\bm{n}}\cdot{\bm{f}}}+\frac{{\bm{n}}\cdot\bm{\tau}_{O}}{{\bm{n}}\cdot{\bm{f}}}\>{\bm{n}}. (83)

The vertices of its support volume 𝒱{\cal V} can be computed in the same fashion as in Section III by

𝒑Mi=𝒏×(𝒑Ci×𝒇i)𝒏𝒇i+𝒏(𝒑Ci×𝒇i)𝒏𝒇i𝒏.{\bm{p}}_{M_{i}}\ =\ \frac{{\bm{n}}\times({\bm{p}}_{C_{i}}\times{\bm{f}}_{i})}{{\bm{n}}\cdot{\bm{f}}_{i}}+\frac{{\bm{n}}\cdot({\bm{p}}_{C_{i}}\times{\bm{f}}_{i})}{{\bm{n}}\cdot{\bm{f}}_{i}}\>{\bm{n}}. (84)

The geometric construction of support areas can also be applied mutatis mutandis to 𝒱{\cal V}:

  • when all virtual pressures 𝒏𝒇i{\bm{n}}\cdot{\bm{f}}_{i} have the same sign, 𝒱{\cal V} is the convex hull of the above vertices,

  • otherwise, it is the union of two polyhedral convex cones built on the Minkowski difference of positive- and negative-pressure polyhedra.

A complete implementation of this construction can be found in the n_moment_point folder of the accompanying source code [42].

The 𝒏{\bm{n}}-MP is a three dimensional spatial point equivalent to the moment 𝝉O\bm{\tau}_{O}, in the sense that one can be computed from the other by

𝝉O=OM×(𝒏𝒇)𝒏+(𝒏OM)(𝒏𝒇)𝒏.\bm{\tau}_{O}\ =\ \overrightarrow{OM}\times({\bm{n}}\cdot{\bm{f}}){\bm{n}}+({\bm{n}}\cdot\overrightarrow{OM})({\bm{n}}\cdot{\bm{f}}){\bm{n}}. (85)

In other words, MM represents the screw coordinates of the contact wrench along its non-central axis directed by 𝒏{\bm{n}}, with magnitude 𝒏𝒇{\bm{n}}\cdot{\bm{f}} and pitch 𝒏OM{\bm{n}}\cdot\overrightarrow{OM}.

However, adding the third moment coordinates makes the shape of the support volume 𝒱{\cal V} depend on the choice of the reference point OO. Formally:

Proposition 10.

There is no non-empty subspace of displacements OO\overrightarrow{OO^{\prime}} of the reference point OO, independent from the resultant 𝐟{\bm{f}}, that leaves the 𝐧{\bm{n}}-MP invariant.

Proof:

Consider a displacement OO\overrightarrow{OO^{\prime}} of OO in the plane. From Equation (83), it results in a variation OO𝒏×𝒇𝒏𝒇\overrightarrow{OO^{\prime}}\cdot\frac{{\bm{n}}\times{\bm{f}}}{{\bm{n}}\cdot{\bm{f}}} of the 𝒏{\bm{n}}-MP coordinate along 𝒏{\bm{n}}. This term needs to be zero for any displacement leaving the 𝒏{\bm{n}}-MP invariant, thus OO\overrightarrow{OO^{\prime}} is parallel to either 𝒏{\bm{n}} or 𝒇{\bm{f}}. The former would yield a variation of the plane coordinates of the 𝒏{\bm{n}}-MP (that is to say, of the ZMP). The latter is excluded as we are looking for an invariance that is independent from the resultant force. ∎

[Uncaptioned image] Stéphane Caron is a post-doctoral researcher at the Laboratoire d’Informatique, de Robotique et de Microélectronique de Montpellier (LIRMM). Born in Toulouse, France, in 1988, he received the B.S and M.S. degrees from the École Normale Supérieure (45 rue d’Ulm), Paris, before moving to Japan for his doctoral studies. He received the Ph.D. in 2016 from the University of Tokyo, Japan. His dissertation was on whole-body motion planning for humanoid robots, with a focus on multi-contact stability.
[Uncaptioned image] Quang-Cuong Pham was born in Hanoi, Vietnam. He graduated from the Departments of Computer Science and Cognitive Sciences of École Normale Supérieure rue d’Ulm, Paris, France, in 2007. He obtained a PhD in Neuroscience from Université Paris VI and Collège de France in 2009. In 2010, he was a visiting researcher at the University of São Paulo, Brazil. From 2011 to 2013, he was a researcher at the University of Tokyo, supported by a fellowship from the Japan Society for the Promotion of Science (JSPS). He joined the School of Mechanical and Aerospace Engineering, NTU, Singapore, as an Assistant Professor in 2013.
[Uncaptioned image] Yoshihiko Nakamura is Professor at the Department of Mechano-Informatics, the University of Tokyo, Japan. He received the Ph.D Degree from Kyoto University in 1985. From 1987 to 1991, he worked as Assistant and Associate Professor at the University of California, Santa Barbara. Humanoid robotics, cognitive robotics, neuro-musculoskeletal human modeling, biomedical systems, and their computational algorithms are his current fields of research. He is Fellow of JSME, Fellow of RSJ, Fellow of IEEE, and Fellow of WAAS. Dr. Nakamura served as President of IFToMM (2012-2015). He is a Foreign Member of the Academy of Engineering Science of Serbia, and TUM Distinguished Affiliated Professor of the Technische Universitat Munchen.