Balance of Humanoid robot in Multicontact and Sliding Scenarios
Abstract
This study deals with the balance of humanoid or multilegged robots in a multicontact setting where a chosen subset of contacts is undergoing desired slidingtask motions. One method to keep balance is to hold the centerofmass (CoM) within an admissible convex area. This area should be calculated based on the contact positions and forces. We introduce a methodology to compute this CoM support area (CSA) for multiple fixed and sliding contacts. To select the most appropriate CoM position inside CSA, we account for (i) constraints of multiple fixed and sliding contacts, (ii) desired wrench distribution for contacts, and (iii) desired position of CoM (eventually dictated by other tasks). These are formulated as a quadratic programming optimization problem. We illustrate our approach with pushing against a wall and wiping and conducted experiments using the HRP4 humanoid robot.
Humanoid and multilegged robots, balance, multicontacts, sliding contacts.
I Introduction
Humanoid robots are designed to interact with the environment and are supposed to be able to reproduce all sorts of physical actions that a human could do such as running, flipping, jumping, crawling, etc. In theory, stateoftheart humanoid robots have the hardware capability to achieve –to some extended and relative performances, some of these complex behaviors. Yet, they lack efficient control strategies with robust equilibrium conditions.
Sustaining equilibrium is more challenging in multicontact settings. Balance in multicontact conditions was studied theoretically in [Collette2007] but restricted to nonsliding contacts. A recent study on the interaction of the robot with the environment introduces a passivitybased whole body balancing framework [AbiFarraj2019]. In this latter work, gravitoInertial wrench cone (GIWC) –introduced in [Caron2015icra], is used to keep the balance in multicontact, eventually under moving but not sliding contacts.
Sliding motion is one of the actions that humans master in achieving several tasks in their daily lives. Sliding contacts have been studied on several robots by considering dynamic friction forces and planning and controlling objects by pushing, see a recent example in [shi2017tro].
Recent works on humanoid robots are mostly focused on avoiding [Kajita2004, Zhou2018] or recovering [Kaneko2005, Vazquez2013] slips. Keeping the balance while sliding on purpose has been studied for two feet contacts in both rotational and translational directions. Linear contact constraints have been used in [Kojima2017] for the controller to keep the dynamic balance while slipping in rotational directions on the feet. While rotationalslipping, considering the force distribution within the contact surfaces is the most challenging part of the study. Slipturn motion for the robot is produced in [Miura2013] by minimizing the floor friction power. The works in [Hashimoto2011, Koeda2011] are about generating quick turning motion by rotational shuffling.
As a motion planning for translational shuffling, [Kojima2015] implemented twolayer controller to satisfy of the stability criteria of the robot using Zerotilting Moment Point (ZMP) and achieve proper force distribution in two feet contacts. Total motion sequence of this method consists of both slideandstop phases and CoM trajectory is generated solving a QP and related constraints. Also, keeping the dynamic balance while shuffling is studied in [Posa2014] by formulating complementarity constraints into a QP, and in [Kim2011] by uniform force distribution assumption on the sole for single support phase.
Multiple sliding contacts for humanoid robots are still a challenge to solve. Our contribution to this field of interest is in introducing an applicable method to keep the balance of the robot in multicontact settings. Our method not only guarantees equilibrium criteria for fixed contacts, as shown in Figure (1), but also keeps the balance of the robot in the presence of sliding contacts.
In the following, we structured our work in four sections. In Section II, we introduce a CoM support area for multiple fixed and sliding contacts. Holding the position of the CoM inside this area guarantees the balance of the robot while some chosen contacts slide and other not. Next, in Section III, we illustrate our methodology for calculating the position of CoM under constraints. Sections LABEL:exp and LABEL:conc shows the experimental results of proposed method and gives a conclusion of the whole work, respectively.
Ii CoM support area
The dynamic model of any robot which can be described by NewtonEuler equations is in the following form:
(1) 
where and are the contact and the gravity wrenches respectively. We follow the common practice to write the resultant linear term (force) first in the wrench followed by the moment term. So, . By separating forces and torques of (1), we have:
(2) 
(3) 
where is the total mass of the robot, are the position and force of the contact point respectively; is the gravity vector and is equal to and is the position of the CoM. By introducing the unit vector as , we can rewrite these equations by separating the vertical component of the gravity vector:
(4) 
(5) 
where gravity acceleration is m/s. Moreover, by applying a crossproduct to both sides of (5) by , we get the following equation:
(6) 
Next, we use two wellknown properties of the crossproduct that are:
(7) 
(8) 
by applying equations 7 and 8 into (6) we have:
(9) 
where denotes the position of the CoM in the horizontal plane and is equal to .
Let’s consider we have a robot in a 3contacts setting. The position of the CoM will be formulated as follows:
(10) 
The equation 10 shows the general form of this formula regardless of orientation and positions of contacts. As a particular case, we assume that both feet are on the ground so that . Consequently (10) becomes:
(11) 
In the following, we specify a region for the feasible position of CoM without losing the balance according to our sliding and multicontact conditions. This region was introduced in [Bretl2008] as a static equilibrium CoM area, and its extension to 3D in [audren2018tro]. The purpose of our present work is to be able to balance the robot in multicontact configurations with fixed or sliding contacts. Furthermore, this method will guarantee the stability of the robot for sliding contacts such as wiping a board by hand or shuffling foot motions.
Let’s consider a humanoid having its feet on the ground and one of its arm (e.g. right one) wiping a board (noncoplanar with the other contacts). The wiping trajectory could be anything and there is no limitation for the direction of wiping. Hence, the position of the sliding contact is a predefined parameter according to the designed wiping trajectory. Therefore, the last two elements of (11) is not related to the main variables ( and ) for introducing the CoM support Area (CSA), and we can define them as an independent variable :
(12a)  
(12b) 
then:
(13) 
On the other hand, by considering (2) in vertical direction, we have:
(14) 
From (14), we introduce “” as the sum of the coefficients of (12a):
(15) 
and (13) becomes:
(16a)  
(16b) 
where,
(17) 
Equation (17) is a sufficient condition to show that the point should be inside the convex polygon constructed by connecting points. There are two equivalent ways to represent the wrench applied by the environment on the robot under a surface contact:

Contact forces applied at the vertices of the contact area [Caron2015icra];

A single contact wrench applied at a given point [audren2018tro].
We choose the latter method. To be able to use the surface contact instead of single points, we replace each of these points () with four edges of the related foot. Coordinates of new points are available by considering the dimension of each foot. CSA is depicted in Fig. 2. The green area on the ground of Fig. 2 is CSA for close foot contacts and Fig. 2 emphasizes this area for far feet contacts in wiping motion.
As a result, the CSA is constructed according to both sliding and multicontact conditions. To keep the balance of the robot, the CoM should remain inside the CSA during operating motions. Setting the exact position for the CoM inside the CSA is the next contribution of our work. This is done by formulating this problem as a QP where desired behaviors are specified via a set of tasks and constraints.
Iii Centroidal Quadratic Program
A common solution for keeping the balance of the robot is to put a constraint on the position of the CoM and hold it inside the CSA. This constraint will ignore some parameters that affect the performance of the robot such as keeping the maximum distance of CoM from edges of the CSA or considering an appropriate wrench distribution on the contacts.
Iiia Decision Variables
Collete et. al [Collette2007] introduced a quadratic program that takes into account to the position of CoM, linearized contact forces and the gravity wrench in static equilibrium. Here we extend this QP to enable sliding contacts and apply sliding constraints to the related contact. Our QP is designed with the following decision variables:
(18) 
where denotes the wrench in the world frame and subscripts “rf”, “lf” and “rh” correspond to the rightfoot, leftfoot and righthand contacts, respectively. The solver deals with position of the CoM. This centroidal QP computes decision variables at each time step and sends them to the robot as a command. The static equilibrium of the system is given in (1). Accordingly, by considering three contacts (one hand contact and two feet contacts), NewtonEuler equation writes:
(19) 
where wrenches can be formulated as follows:
(20) 