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.
© Copyright 2026 Paperzz