Balance of Humanoid robot in Multi-contact and Sliding Scenarios
This study deals with the balance of humanoid or multi-legged robots in a multi-contact setting where a chosen subset of contacts is undergoing desired sliding-task motions. One method to keep balance is to hold the center-of-mass (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 HRP-4 humanoid robot.
Humanoid and multi-legged robots, balance, multi-contacts, sliding contacts.
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, state-of-the-art 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 multi-contact settings. Balance in multi-contact conditions was studied theoretically in [Collette2007] but restricted to non-sliding contacts. A recent study on the interaction of the robot with the environment introduces a passivity-based whole body balancing framework [Abi-Farraj2019]. In this latter work, gravito-Inertial wrench cone (GIWC) –introduced in [Caron2015icra], is used to keep the balance in multi-contact, 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 rotational-slipping, considering the force distribution within the contact surfaces is the most challenging part of the study. Slip-turn 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 two-layer controller to satisfy of the stability criteria of the robot using Zero-tilting Moment Point (ZMP) and achieve proper force distribution in two feet contacts. Total motion sequence of this method consists of both slide-and-stop 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 multi-contact 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 Newton-Euler equations is in the following form:
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:
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:
where gravity acceleration is m/s. Moreover, by applying a cross-product to both sides of (5) by , we get the following equation:
Next, we use two well-known properties of the cross-product that are:
where denotes the position of the CoM in the horizontal plane and is equal to .
Let’s consider we have a robot in a 3-contacts setting. The position of the CoM will be formulated as follows:
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:
In the following, we specify a region for the feasible position of CoM without losing the balance according to our sliding and multi-contact 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 multi-contact 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 (non-coplanar 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 pre-defined 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 :
On the other hand, by considering (2) in vertical direction, we have:
and (13) becomes:
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 multi-contact 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.
Iii-a 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:
where denotes the wrench in the world frame and subscripts “rf”, “lf” and “rh” correspond to the right-foot, left-foot and right-hand 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), Newton-Euler equation writes:
where wrenches can be formulated as follows: