Perspective Chapter: Multi-Contact Humanoid Stability for Increased Interaction in Unstructured Environments

*Parastoo Dastangoo and Alejandro Ramirez-Serrano*

## **Abstract**

This paper presents a practical solution to the problem of multi-legged robot stability moving on unstructured 3D terrains using a multi-contact approach. The solution is based on a modified version of the contact wrench set method, which has been reformulated to utilize three arbitrary contact points representing the physics of contact between the robot and the environment. The new formulations are then used to test the stability of a life-size humanoid robot. The proposed method extends available formulations making the CWS tool suitable for a variety of terrains having various physical and geometrical characteristics including heterogenous coplanar (e.g., stairs and sloped terrain) and noncoplanar surfaces (e.g., gravel, sand, compliant terrains, etc.). The results provided by the new formulations are visualized using a graphical visualization tool, showing the adaptability of the proposed formulation in multi-contact locomotion. The results show that the proposed approach effectively quantifies the robot's stability on a wide range of surfaces and environments, such as mines, industrial facilities, and urban search and rescue operations. Experimental tests on a life-size humanoid are also presented.

**Keywords:** multi-legged robotics, humanoid stability, multi-contact locomotion, CWS method

## **1. Introduction**

According to the International Labor Organization, 2.3 million work-related deaths happen around the world annually. Work-related incidents also contribute to thousands of disabling work-related injuries every year. These statistics are even more pronounced in work-related tasks that are performed in highly unstructured environments, such as mining and forestry.

A viable approach to keep humans out of harm's way is to provide them with robotic artifacts that can assist them when the associated tasks are performed in high-risk structured/unstructured chaotic and confined environments. In particular, multi-legged artifacts, such as quadrupeds, humanoids, and hybrid robots, are promising devices as they have (at least in theory) the capabilities to penetrate and perform tasks in complex unstructured (potentially compliant environments. However,

maintaining the stability of such robots in the mentioned environments is complex and improved mechanisms need to be developeded before multi-legged artificial systems can be effectively deployed in such spaces.

Among the large body of stability mechanisms developed targeting robotic systems, the zero moment point (ZMP) method [1] is one of the most popular. However, ZMP is only able to assess the stability of walking robotic systems moving on flat horizontal surfaces. It cannot be applied to assess stability in terrains having noncoplanar surfaces, unstructured terrains, and deformable (compliant) terrains. The reason is that ZMP cannot determine whether any of the robot's feet slip or not, and it cannot be applied on uneven terrain where foot contacts take place on noncoplanar surfaces. To overcome these aspects, diverse formulations have been proposed capable of capturing the entire robot's dynamics, including friction constraints [2]. Among such formulations, the contact wrench set (CWS) method is a formulation capable of measuring the stability of multi-legged walking robots when the system has multiple noncoplanar contacts where friction cone constraints hold. For this, the method uses a set of allowable wrenches obtained from the contact forces at each individual contact point [3–5]. For a multi-legged robot to maintain its stability, its total contact wrench, calculated from the robot's motion, should lie within the CWS [3, 4]. The CWS method has been enhanced by investigating the extent to which the method is valid and its application in different operation scenarios [3, 6–10]. For instance, the authors in Ref. [10] developed a linear and angular momentum motion planning method using the robot's prespecified contact locations. The authors in Ref. [9] used pre-specified contact locations and CWS to generate whole-body robot motions. Other authors [e.g., [6, 7]] have considered the CWS at the robot's center of mass (CoM) to generate whole-body motion plans. Such work uses nonlinear optimization within the multi-contact domain to generate walking patterns when climbing stairs while the robot is able to employ handrails for additional support. Furthermore, complementary formulations have been developed to compute the robot's CoM feasible acceleration to generate effective walking patterns [11]. Similarly, researchers have developed time-optimal trajectory generation approaches using fixed wholebody robot postures with prespecified contact locations using optimization approaches [e.g., Ref. [8]]. In other publications [e.g., Ref. [12]], authors have combined the ZMP and the CWS methods to maximize their individual advantages.

Although the published studies provide advances in formulating somewhat effective stability methodologies using a set of discrete contact points, the available methodologies fail to fully resolve and provide a generic methodology for stability on continuous surface contacts where the contacts point between the robot and the ground can be perceived as a surface having infinite contact points (e.g., a continuous sole of the robot's foot in contact with a deformable ground surface, such as sand). To solve this issue, many approaches have used a large finite number of individual contact points and contact forces to capture the physics of the continuous surface [13]. However, such approaches are computationally expensive and cannot be effectively employed in real time or in cases where robots might need to move at high speeds. In an attempt to provide a solution to such a problem, the authors in Ref. [13] proposed the use of a closed-form formulation capable of computing the CWS stability explicitly, without the need to make reference to individual contact points. Although effective, such method, is only applicable to contact areas between the robot and the ground having rectangular shapes (e.g., typical shape for humanoid feet). Such a limitation restricts the application of the formulation to particular foot shapes. Furthermore, the methodology cannot be used in robots having partial contact with

### *Perspective Chapter: Multi-Contact Humanoid Stability for Increased Interaction… DOI: http://dx.doi.org/10.5772/intechopen.108754*

the ground (e.g., when partial footholds exist e.g., Ref. [14]). In this manuscript, the scope of the CWS method is extended by proposing a modified formulation that is applicable to robots walking on unstructured terrains and when robots move on surfaces that can be perceived as providing an arbitrary number of contact points that reduce to three contact forces. In such an approach, the stability of the robot can be measured on practically any real-world terrain, where each foot of the robot might only have partial contact with the ground (e.g., on rough and rocky terrains). The proposed approach can thus be employed in realistic contact scenarios while reducing the computation time via the use of fewer contact forces when compared to the traditional CWS method. This, in turn, enables us to employ the solution on arbitrary terrain topographies provided there are at least three contact points between the robot and the environment. Hence, the proposed approach provides opportunities to deploy humanoids and other multi-legged robots in real-world complex environments.

Furthermore, the proposed method described in this paper is also suitable to measure the robustness of the robot's stability via a newly developed margin for acceptable contact wrenches [15]. In this paper, radar charts are developed to visualize the robot's stability condition. Such visualization technique enables roboticists to have the tool to better control/guide multi-legged robots moving on unstructured potentially dynamic terrains encompassing surfaces having various geometrical and physical characteristics.

The rest of this paper is organized as follows: Section 2 describes the proposed methodology. Section 3 provides simulation and experimental results, and conclusions are provided in Section 4.

## **2. Proposed methodology**

Multi-contact stability methods, such as the CWS, rely on sensor data information measured on the contact points. Based on the available information such methods shape the robot's stability condition. In general, contact models have been employed as a key element in determining the stability of any multi-legged robot. In this paper, two types of contact styles are considered as a robot locomotes through a given surface: (*i*) *fixed contact* defined when the robot's foot is in the support phase, and (*ii*) *free contact* (i.e., six unconstrained degrees of freedom—DoF) defined when the foot of interest is in its swing phase. In this work shifting between contact modes (e.g., from fix contact to free contact and vice versa) as well as other types of contact modes, such as sliding contact modes, are not considered. Rather the work focuses on determining the stability of the robot when in a fix contact mode. Such a focus does not, however, restrict the methodology to be applied in locomotion transition mode phases as it is assumed that the robot's locomotion is performed in a quasi-static manner where it can be considered to be in a fixed contact mode. That is, the proposed stability mechanisms simplify the mathematical formulations but do not restrict the robot from locomoting at high speeds.

#### **2.1 Physics of friction**

To determine whether a given foot, *i*, of the robot of interest is in the fixed contact mode the exerted force on the system (foot) is checked [16]. For this, the coulomb friction cone on foot *i* is employed. Accordingly, the contact mode of a box

representing the robot's foot remains fixed as long as the contact force at point *i*, *f i c*, remains inside the Coulomb friction cone [17]. Therefore, for the contact force to remain inside the friction cone, it needs to satisfy Eq. (1):

$$f\_{\ c}^{i} \cdot n\_{i} > 0$$

$$|f\_{\ c}^{i} \cdot t\_{i}| \le \mu \cdot \left(f\_{\ c}^{i} \cdot n\_{i}\right) \tag{1}$$

$$|f\_{\ c}^{i} \cdot b\_{i}| \le \mu \cdot \left(f\_{\ c}^{i} \cdot n\_{i}\right)$$

where *ti*, *bi* ð Þ , *ni* is the local orthogonal contact frame at the contact point *Ci*, where *ti*, *bi*, and *ni* denote the two tangential, and the surface normal components, respectively, *f i <sup>c</sup>* denotes the contact force at the point *Ci*, and *μ* denotes the static coefficient of friction.

#### **2.2 Contact of surface areas**

The physics of a single contact point described above, however, cannot be employed as defined in Eq. (1). Such formulation must be extended to consider the generic case where two surfaces (in contrast to two points) are in contact with each other where the contact between surfaces is to be considered continuous over the corresponding contact area. Under such conditions, one can consider that there exist infinite contact points between the corresponding surfaces where each (and discrete) contact point has a specific contact force (**Figure 1a**). Under such conditions, previously proposed methods require an infinite amount of time to compute the friction cone for each of contact points comprising the contact surface and find the corresponding fix mode boundaries. Fortunately, the authors in Ref. [13] have proven that under the Coulomb friction assumption, rather than dealing with an infinite number of reaction force vectors found on a continuous surface (needed to calculate the corresponding wrench at the center of the surface), a discrete number of friction cones can be defined at diverse points of the contact surface area adding up to the same wrench (**Figure 1b**). Three contact points used to define a given plane is

#### **Figure 1.**

*A surface (e.g., robot's sole) in contact with the ground through surface contact.*

*Perspective Chapter: Multi-Contact Humanoid Stability for Increased Interaction… DOI: http://dx.doi.org/10.5772/intechopen.108754*

#### **Figure 2.**

*Contact triangle from isometric and bottom perspectives.*

significant when compared to using a large number of contact points, as it provides numerous advantages, including shorter time to compute the given stability, while providing a more generic solution.

Furthermore, a triangular surface is a good, simplified approximation of any typical contact between a robot's foot (or feet) and the ground when the foot (feet) is (are) in its (their) support (*fixed contact*) phase. This is true when the robot's foot is in contact with any rigid surface, especially rugged ones, such as stepping on rocky surfaces, where the foot makes contact only with a small set of discrete contact points. This approximation is also effective and applicable for deformable surfaces (e.g., loose sandy terrains) assuming the terrain deformation takes place over a sufficiently long period of time such that the deformation could be considered quasi-static. In this paper, standing on a single point (e.g., pegs) or in line contacts (e.g., stepping on a long and narrow surface—funambulism) is not considered. **Figure 2** illustrates a set of three random contact points, *A*, *B*, and *C* forming a virtual triangular contact area *ABC* when a robot's foot lands on an unstructured rigid terrain. Such a surface is considered virtual as it might not fully define the real surface but rather a hypothetical plane where the robot is setting its foot.

#### **2.3 Triangular surfaces and corresponding wrench cone**

With the virtual triangular surface area *ABC*, a novel analytical formulation can be developed for calculating the wrench cone using the known Fourier-Motzkin method [13].

Without loss of the generality, a geometrical frame of reference defining the virtual triangular surface can be produced by aligning the x-axis alongside the *BC* edge of the triangular surface, with the orthogonal y-axis defined in the same plane. When the robot moves over a flat rigid terrain the virtual triangle can be considered as part of the real contact surface.

Based on the location of the contact points *A*, *B*, and *C* defining the virtual triangle (shown in **Figures 1** and **2**) each having coordinates (*xi*, *yi*) the following properties are computed (**Figure 3**).

**Figure 3.** *A general contact triangle and its centroid.*

For a given triangle, the coordinates of its centroid (*xO*, *yO*), as well as the distances, *dOA*, *dOB*, and *dOC* from the triangle's centroid to each of the vertices can be computed per Eqs. (2) and (3), respectively.

$$\mathbf{x}\_{O} = \frac{\mathbf{x}\_{A} + \mathbf{x}\_{B} + \mathbf{x}\_{C}}{3}; \mathbf{y}\_{O} = \frac{\mathbf{y}\_{A} + \mathbf{y}\_{B} + \mathbf{y}\_{C}}{3} \tag{2}$$

$$d\_{OA} = \begin{pmatrix} d\mathbf{x}\_{OA} = (\mathbf{x}\_{A} - \mathbf{x}\_{O}) \\ d\mathbf{y}\_{OA} = (\mathbf{y}\_{A} - \mathbf{x}\_{O}) \end{pmatrix};$$

$$d\_{OB} = \begin{pmatrix} d\mathbf{x}\_{OB} = (\mathbf{x}\_{B} - \mathbf{x}\_{O}) \\ d\mathbf{y}\_{OB} = (\mathbf{y}\_{B} - \mathbf{x}\_{O}) \end{pmatrix}; \tag{3}$$

$$d\_{OC} = \begin{pmatrix} d\mathbf{x}\_{OC} = (\mathbf{x}\_{C} - \mathbf{x}\_{O}) \\ d\mathbf{y}\_{OC} = (\mathbf{y}\_{C} - \mathbf{x}\_{O}) \end{pmatrix};$$

$$|d\mathbf{x}\_{OA}| = \mathbf{x}\_{OA}|d\mathbf{x}\_{OB}| = \mathbf{x}\_{OB}, |d\mathbf{x}\_{OC}| = \mathbf{x}\_{OC}$$

$$|d\mathbf{y}\_{OA}| = \mathbf{y}\_{OA}|d\mathbf{y}\_{OB}| = \mathbf{y}\_{OB}|d\mathbf{y}\_{OC}| = \mathbf{y}\_{OC}$$

Under the above formulations, it can be shown that the contact forces on the contact surface are equivalent to a set of forces at the contact vertices comprising the virtual triangular surface. Therefore, in what follows, three contact forces at points *A*, *B*, and *C* and the corresponding torque at the triangle's centroid are used to determine the physical interaction that exists between the foot and the ground. To achieve this, a set of mathematical formulations, Eqs. (4) and (5), developed as part of this research work are used.

**Figure 4** illustrates a top-down view of one of the robot's feet in contact with the ground, including the contact forces and contact torques, exerting on the contact points. The complete system of forces and torques is formulated as per Eqs. (4) and (5).

$$f\_x = f\_x^A + f\_x^B + f\_x^C$$

$$f\_y = f\_y^A + f\_y^B + f\_y^C \tag{4}$$

$$f\_x = f\_x^A + f\_x^B + f\_x^C$$

*Perspective Chapter: Multi-Contact Humanoid Stability for Increased Interaction… DOI: http://dx.doi.org/10.5772/intechopen.108754*

**Figure 4.**

*The location and orientation of forces with respect to the frame of reference located on the triangle's centroid.*

$$\boldsymbol{\tau}\_{\rm x} = f\_x^1(\boldsymbol{y}\_{\rm OA}) - f\_x^2(\boldsymbol{y}\_{\rm OB}) - f\_x^3(\boldsymbol{y}\_{\rm OC})$$

$$\boldsymbol{\tau}\_{\rm y} = f\_x^1(\mathbf{x}\_{\rm OA}) + f\_x^2(\mathbf{x}\_{\rm OB}) - f\_x^3(\mathbf{x}\_{\rm OC}) \tag{5}$$

$$\boldsymbol{\tau}\_{\rm x} = f\_x^3(\boldsymbol{y}\_{\rm OC}) + f\_x^2(\boldsymbol{y}\_{\rm OB}) - f\_x^1(\boldsymbol{y}\_{\rm OA}) + f\_y^3(\mathbf{x}\_{\rm OC}) - f\_y^2(\mathbf{x}\_{\rm OB}) - f\_y^1(\mathbf{x}\_{\rm OA})$$

For this, a theorem is used, where the wrench cone at each of the three contactpoint systems can be expressed (Theorem 1).

Theorem 1: A system with three contact points fA,fB,fC obeying the Coulomb friction rules exist, if and only if there exists a contact wrench cone with wrench ¼ fx, fy, f z, τx, τy, τ<sup>z</sup> at the centroid, O(x0,y0), of the virtual contact triangle satisfying Eq. (6).

$$\left|f\_{x}\right| \leq \frac{\mathcal{Y}\_{OA}}{\mathcal{Y}\_{sum}} \cdot \mu f\_{x}$$

$$\left|f\_{y}\right| \leq \frac{\mathcal{X}\_{OC}}{\mathcal{X}\_{sum}} \cdot \mu f\_{x}$$

$$f\_{x} > 0$$

$$-\mathcal{Y}\_{OB}f\_{x} \leq \tau\_{x} \leq \mathcal{Y}\_{OA}f\_{x} \tag{6}$$

$$-\mathcal{X}\_{OC}f\_{x} \leq \tau\_{y} \leq \mathcal{X}\_{OB}f\_{x}$$

$$\tau\_{\min} \leq \tau\_{x} \leq \tau\_{\max}$$

where

$$\mathbf{x}\_{Oi} = |\mathbf{x}\_i - \mathbf{x}\_O|, \mathbf{x}\_O = \frac{\mathbf{x}\_A + \mathbf{x}\_B + \mathbf{x}\_C}{3}, i = A, B, C$$

$$\mathbf{y}\_{Oi} = |\mathbf{y}\_i - \mathbf{y}\_O|, \mathbf{y}\_O = \frac{\mathbf{y}\_A + \mathbf{y}\_B + \mathbf{y}\_C}{3}, i = A, B, C$$

$$\mathbf{x}\_{sum} = \mathbf{x}\_{OA} + \mathbf{x}\_{OB} + \mathbf{x}\_{OC}$$

$$\mathbf{y}\_{sum} = \mathbf{y}\_{OA} + \mathbf{y}\_{OB} + \mathbf{y}\_{OC}$$

$$\mathbf{r}\_{min} = -\mu (\mathbf{x}\_{OC} + \mathbf{y}\_{OA})\mathbf{f}\_x + |\mathbf{y}\_{sum}\mathbf{f}\_x - \mu \mathbf{r}\_x| + |\mathbf{x}\_{sum}\mathbf{f}\_y - \mu \mathbf{r}\_y|$$

$$\mathbf{r}\_{max} = \mu (\mathbf{x}\_{OC} + \mathbf{y}\_{OA})\mathbf{f}\_x - |\mathbf{y}\_{sum}\mathbf{f}\_x + \mu \mathbf{r}\_x| - |\mathbf{x}\_{sum}\mathbf{f}\_y + \mu \mathbf{r}\_y|$$

Theorem 1 guarantees that if the CWC obeys Eq. (6), there exists a set of three contact forces that fulfill Eq. (1) (i.e., satisfy the Coulomb friction rules). The significance of this theorem is twofold:


Therefore, Theorem 1 provides the mechanism to demonstrate whether a foot or robot of interest is stable or not via the value of the wrench at the centroid of a continuous (real or virtual) contact surface. The added benefit of the proposed method is that it is suitable for implementation on any real robot which has a force/ torque (F/T) sensor positioned at the interface between the robot and the contact with the surface (e.g., ankle of the robot's foot or at any extremity e.g., arms) that the robot might use to locomote in any style (e.g., crawling). The captured F/T sensor data can then be used to compute the corresponding wrench at the centroid of the corresponding contact triangular surface.

Eq. (6) determines the stability condition of multi-legged robots in binary logical terms (i.e., 1 ! stable; 0 ! unstable). If all six inequalities in Eq. (6) are satisfied the robot is said to be stable, otherwise, it is unstable.

However, to understand how stable a stable robot is a stability margin is needed as well as a visualization tool, where users can determine the conditions in which the robot is stable and what movements the robot might need to avoid which might cause it to approach instability.

#### *Proof:*

In order to prove that the previous statements are satisfied, there is a need to relate Eqs. (4) and (5) to the Coulomb friction law, so that they can be expressed as positive combinations enabling the use of linear algebra algorithms. In order to achieve this, all force and torque variables (*e:g:*, *f i x*, *f i y*, *f i <sup>z</sup> f <sup>x</sup>*, *f <sup>y</sup>*, *f <sup>z</sup>*,*τx*, *τy*,*τz*) at each contact point (between the robot and the environment) and the centroid of the triangle formed by three contact points are normalized by defining a set of new variables (*k*1, *k*2, *k*3,*c*1,*c*2, *α<sup>i</sup> <sup>x</sup>*, *α<sup>i</sup> <sup>y</sup>*, *β<sup>i</sup> <sup>z</sup>*Þ according to the Coulomb friction law. It is worth mentioning that in such a procedure there exist 15 variables *f i x*, *f i y*, *f i <sup>z</sup> f <sup>x</sup>*, *f <sup>y</sup>*, *f <sup>z</sup>*,*τx*, *τy*,*τ<sup>z</sup>* (*<sup>i</sup>* <sup>¼</sup> 1, 2, 3), which are substituted with 14 new variables *<sup>k</sup>*1, *<sup>k</sup>*2, *<sup>k</sup>*3,*c*1,*c*2, *<sup>α</sup><sup>i</sup> <sup>x</sup>*, *α<sup>i</sup> <sup>y</sup>*, *β<sup>i</sup> z* (*i* ¼ 1, 2, 3). Therefore, while normalizing the variables, one variable is reduced as the first step of the Fourier-Motzkin elimination method [18].

In order to normalize the forces and torques while satisfying Eq. (1), there is a need to define a new set of variables as per Eq. (7).

$$\begin{aligned} k\_1 &:= \frac{f\_x}{\mu \overline{f\_x}}; \; k\_2 := \frac{f\_y}{\mu \overline{f\_x}}; \; k\_3 := \frac{\tau\_x}{\mu (X+Y)\overline{f\_x}}\\ c\_1 &:= \frac{\tau\_x}{\nu\_{sum} f\_x}; c\_2 := \frac{\tau\_y}{\varkappa\_{sum} \overline{f\_x}} \end{aligned} \tag{7}$$

Normalizing the contact forces employing the parameters *α<sup>i</sup> <sup>x</sup>*, *α<sup>i</sup> <sup>y</sup>*, and *β<sup>i</sup> <sup>z</sup>* produce the expressions in Eq. (8):

*Perspective Chapter: Multi-Contact Humanoid Stability for Increased Interaction… DOI: http://dx.doi.org/10.5772/intechopen.108754*

$$\alpha^i\_x := \frac{f^i\_x}{\mu f^i\_x}; \alpha^i\_y := \frac{f^i\_y}{\mu f^i\_x}; \beta^i\_x := \frac{f^i\_x}{f\_x} \tag{8}$$

*Recall:*

$$\sum\_{i} f\_{x}^{i} = f\_{x} \text{ with } \forall i \in N: f\_{x}^{i} > 0$$

It must be noted that Eq. (8) produces nine expressions (*i* ¼ 1 *to* 3), where *i* represents one of the three contact points. To obtain a set of suitable expressions to enable developing a solution for the Fourier-Motzkin elimination procedure, the 11 parameters used in Eq. (9) are defined as:

$$\begin{aligned} \mathcal{Y}\_{\text{sum}} &:= \mathcal{Y}\_{OA} + \mathcal{Y}\_{OB} + \mathcal{Y}\_{OC} \\ \mathcal{X}\_{\text{sum}} &:= \mathcal{X}\_{OA} + \mathcal{X}\_{OB} + \mathcal{X}\_{OC} \\ \mathcal{Y}\_{OA} &:= \frac{\mathcal{Y}\_{OA}}{\mathcal{Y}\_{\text{sum}}}; \mathcal{Y}\_{OB} := \frac{\mathcal{Y}\_{OB}}{\mathcal{Y}\_{\text{sum}}}; \mathcal{Y}\_{OC} := \frac{\mathcal{Y}\_{OC}}{\mathcal{Y}\_{\text{sum}}} \\ \mathcal{X}\_{OA} &:= \frac{\mathcal{X}\_{OA}}{\mathcal{X}\_{\text{sum}}}; \mathcal{X}\_{OB} := \frac{\mathcal{X}\_{OB}}{\mathcal{X}\_{\text{sum}}}; \mathcal{X}\_{OC} := \frac{\mathcal{X}\_{OC}}{\mathcal{X}\_{\text{sum}}} \\ \mathcal{X} &:= \max\left(\mathcal{X}\_{OA}, \mathcal{X}\_{OB}, \mathcal{X}\_{OC}\right) \\ \mathcal{Y} &:= \max\left(\mathcal{Y}\_{OA}, \mathcal{Y}\_{OB}, \mathcal{Y}\_{OC}\right) \\ \mathcal{P}\_{\text{x}} &= \frac{\mathcal{X}\_{\text{sum}}}{\mathcal{X}\_{\text{sum}} + \mathcal{Y}\_{\text{sum}}}; \mathcal{P}\_{\text{y}} = \frac{\mathcal{Y}\_{\text{sum}}}{\mathcal{X}\_{\text{sum}} + \mathcal{Y}\_{\text{sum}}} \end{aligned} \tag{9}$$
 
$$\mathcal{Q} := \mathcal{X}\mathcal{P}\_{\text{x}} + \mathcal{Y}\mathcal{P}\_{\text{y}}$$

By considering Eqs. (4) and (5), as well as the new set of variables defined in Eqs. (7) and (8) lead to Eqs. (10):

$$\mathbf{1} = \boldsymbol{\beta}\_x^1 + \boldsymbol{\beta}\_x^2 + \boldsymbol{\beta}\_x^3 \tag{10a}$$

$$\mathcal{L}\_1 = \beta\_x^1. Y\_{OA} - \beta\_x^2. Y\_{OB} - \beta\_x^3. Y\_{OC} \tag{10b}$$

$$\mathbf{c}\_2 = \boldsymbol{\beta}\_\mathbf{z}^1 \mathbf{X}\_{OA} + \boldsymbol{\beta}\_\mathbf{z}^2 \mathbf{X}\_{OB} - \boldsymbol{\beta}\_\mathbf{z}^3 \mathbf{X}\_{OC} \tag{10c}$$

$$p\_{\chi} = \frac{\varkappa\_{sum}}{\varkappa\_{sum} + \jmath\_{sum}} ; p\_{\jmath} = \frac{\wp\_{sum}}{\varkappa\_{sum} + \jmath\_{sum}} \tag{10d}$$

$$k\_3 = p\_\mathbf{x} \left( -a\_\mathbf{y}^1 \beta\_\mathbf{z}^1 X\_{\text{OA}} - a\_\mathbf{y}^2 \beta\_\mathbf{z}^2 X\_{\text{OB}} + a\_\mathbf{y}^3 \beta\_\mathbf{z}^3 X\_{\text{OC}} \right) + p\_\mathbf{y} \left( -a\_\mathbf{x}^1 \beta\_\mathbf{z}^1 Y\_{\text{OA}} + a\_\mathbf{x}^2 \beta\_\mathbf{z}^2 Y\_{\text{OB}} + a\_\mathbf{x}^3 \beta\_\mathbf{z}^3 Y\_{\text{OC}} \right) \tag{10e}$$

$$\forall i, |a\_x^i| \le 1 \tag{10f}$$

$$|\forall i, |a\_{\mathbf{y}}^i| \le \mathbf{1} \tag{10g}$$

$$\forall i, \beta\_x^i > 0 \tag{10h}$$

Eqs. (10) represents a set of eight inequalities based on variables *k*1, *k*2, *k*3, *c*1, *c*2, *α<sup>i</sup> <sup>x</sup>*, *α<sup>i</sup> <sup>y</sup>*, and *β<sup>i</sup> <sup>z</sup>*. In order to apply the Minkowski sum to the set of inequalities in Eqs. (10), the variables *γx*, *γy*, *γ*<sup>0</sup> *<sup>x</sup>*, *γ*<sup>0</sup> *<sup>y</sup>* are defined as per Eq. (11).

$$\begin{aligned} \gamma\_x &= \alpha\_x^2 \beta\_x^2 \cdot Y\_{OB} + \alpha\_x^3 \beta\_x^3 \cdot Y\_{OC} \\ \gamma\_y &= \alpha\_y^1 \beta\_x^1 X\_{OA} + \alpha\_y^2 \beta\_x^2 X\_{OB} \\ \gamma\_x' &= \alpha\_x^1 \beta\_x^1 \cdot Y\_{OA} \\ \gamma\_y' &= \alpha\_y^3 \beta\_x^3 X\_{OC} \end{aligned} \tag{11}$$

The variables defined in Eq. (11) can then be used to derive a simpler system of inequalities based on the properties of *α<sup>i</sup> <sup>x</sup>*, *α<sup>i</sup> <sup>y</sup>* and *β<sup>z</sup> <sup>i</sup>* . From Eqs. (8), (10), and (11), it is concluded that P *i βi <sup>z</sup>* <sup>¼</sup> 1 and *<sup>β</sup><sup>z</sup> <sup>i</sup>* >0. Furthermore, from Eqs. (1) and (8), it is clear that the parameter *α* (defined in Eq. (8)) lies within the range of ½ � �1, 1 . By applying these properties in the expressions in Eq. (11), the following set of inequalities is obtained (Eqs. (12)).

$$|\boldsymbol{\gamma}\_{\boldsymbol{x}}| \le \mathbf{Y}\_{OB}. \boldsymbol{\beta}\_{\boldsymbol{x}}^2 + \mathbf{Y}\_{OC}. \boldsymbol{\beta}\_{\boldsymbol{x}}^3$$

$$|\boldsymbol{\gamma}\_{\boldsymbol{x}}^{\prime}| \le \mathbf{Y}\_{OA}. \boldsymbol{\beta}\_{\boldsymbol{x}}^1 \Rightarrow |\boldsymbol{\gamma}\_{\boldsymbol{x}}^{\prime}| - |\boldsymbol{\gamma}\_{\boldsymbol{x}}| \le c\_1 \tag{12a}$$

$$|\boldsymbol{\gamma}\_{\boldsymbol{x}}^{\prime}| + |\boldsymbol{\gamma}\_{\boldsymbol{x}}| \le \max\left(\mathbf{Y}\_{OA}, \mathbf{Y}\_{OB}, \mathbf{Y}\_{OC}\right) = \mathbf{Y}$$

and,

$$|\boldsymbol{\gamma}\_{\boldsymbol{\gamma}}| \le \boldsymbol{X}\_{OA}. \boldsymbol{\beta}\_{\boldsymbol{x}}^{1} + \boldsymbol{X}\_{OB}. \boldsymbol{\beta}\_{\boldsymbol{x}}^{2}$$

$$|\boldsymbol{\gamma}\_{\boldsymbol{x}}^{\prime}| \le \boldsymbol{X}\_{OC}. \boldsymbol{\beta}\_{\boldsymbol{x}}^{3} \Rightarrow |\boldsymbol{\gamma}\_{\boldsymbol{\gamma}}| - |\boldsymbol{\gamma}\_{\boldsymbol{\gamma}}^{\prime}| \le c\_{2} \tag{12b}$$

$$|\boldsymbol{\gamma}\_{\boldsymbol{\gamma}}^{\prime}| + |\boldsymbol{\gamma}\_{\boldsymbol{\gamma}}| \le \max\left(\boldsymbol{X}\_{OA}, \boldsymbol{X}\_{OB}, \boldsymbol{X}\_{OC}\right) = \mathbf{X}$$

Given the fact that the Fourier-Motzkin method algorithm works based on eliminating variables in each step, to proceed with this algorithm on the inequalities in Eqs. (12), some of the variables should be eliminated. Therefore, the following lemma describes the procedure for removing *β<sup>i</sup> <sup>z</sup>* by finding the boundaries of ∣*γx*∣, ∣*γ*<sup>0</sup> *<sup>x</sup>*∣, ∣*γy*∣, and ∣*γ*<sup>0</sup> *<sup>y</sup>*∣ based on Eqs. (12).

*Lemma 1) Following boundaries are derived based on* Eqs. (12):

$$|\mathcal{Z}|\boldsymbol{\gamma}'\_{\boldsymbol{x}}| \le \mathcal{Y} + c\_1 \tag{13a}$$

$$\mathcal{D}|\boldsymbol{\gamma}\_{\boldsymbol{x}}| \leq \mathcal{Y} - \boldsymbol{c}\_{1} \tag{13b}$$

$$|\mathcal{Z}|\!\!\!/ \_{\mathcal{Y}}\!\!/ \le \mathcal{X} - c\_2 \tag{13c}$$

$$2|\boldsymbol{\gamma}\_{\boldsymbol{\gamma}}| \le \mathbf{X} + \mathbf{c}\_2 \tag{13d}$$

#### *Proof of lemma 1:*

Summing up the both sides of inequalities jγ<sup>x</sup> 0 j � jγxj≤c1 and jγ<sup>x</sup> 0 j þ jγxj≤Y (refer to Eq. (12a)) results into 2jγ<sup>0</sup> <sup>x</sup>j≤ Y þ c1, which is Eq. (13a); therefore, Eq. (13a) is proved. By similar calculations on Eq. (12b), Eq. (13d) can also be proved (summing both sides of inequalities). To prove Eq. (13b), it is required to recall the definition of Y (Eq. (9)):

*Recall:*

$$Y \coloneqq \max\left(Y\_{OA}, \, Y\_{OB}, \, Y\_{OC}\right)$$

*Perspective Chapter: Multi-Contact Humanoid Stability for Increased Interaction… DOI: http://dx.doi.org/10.5772/intechopen.108754*

*Therefore,*

$$\begin{aligned} Y\_{OB} &\le Y \\ \Rightarrow Y\_{OB} + Y\_{OB} &\le Y + Y\_{OB} \\ \Rightarrow 2Y\_{OB} &\le Y + Y\_{OB} \\ \Rightarrow 2Y\_{OB}\theta\_x^2 &\le (Y + Y\_{OB})\theta\_x^2 \end{aligned} \tag{14}$$

*Similarly,*

$$2\mathbf{Y}\_{\rm OC}\boldsymbol{\beta}\_{\rm x}^{3} \le (\mathbf{Y} + \mathbf{Y}\_{\rm Ox})\boldsymbol{\beta}\_{\rm x}^{3} \tag{15}$$

*Now, in a similar procedure, by summing both sides of inequalities* (14) and (15)*, the following inequality is obtained:*

$$2\left(Y\_{OB}\rho\_x^2 + Y\_{OC}\rho\_x^3\right) \le (Y + Y\_{OB})\rho\_x^2 + (Y + Y\_{OC})\rho\_x^3 \tag{16}$$

*Again, definition of Y* (Eq. (9)) *leads to:*

$$Y\_{OA} \le Y$$

$$\Rightarrow \mathbf{0} \le Y - Y\_{OA}$$

$$\Rightarrow \mathbf{0} \le (Y - Y\_{OA})\boldsymbol{\beta}\_x^1$$

*The following inequality is derived by adding both sides of inequalities* (15) and (16)*:*

$$2\left(Y\_{OB}\rho\_{\underline{x}}^{2} + Y\_{OC}\rho\_{\underline{x}}^{3}\right) \le \left(Y - Y\_{OA}\right)\rho\_{\underline{x}}^{1} + \left(Y + Y\_{OB}\right)\rho\_{\underline{x}}^{2} + \left(Y + Y\_{Ox}\right)\rho\_{\underline{x}}^{3}$$

$$\Rightarrow 2\left(Y\_{OB}\rho\_{\underline{x}}^{2} + Y\_{OC}\rho\_{\underline{x}}^{3}\right) \le Y\left(\rho\_{\underline{x}}^{1} + \rho\_{\underline{x}}^{2} + \rho\_{\underline{x}}^{3}\right) - \left(\rho\_{\underline{x}}^{1}Y\_{OB} - \rho\_{\underline{x}}^{2}Y\_{OB} - \rho\_{\underline{x}}^{3}Y\_{OC}\right) \tag{17}$$

*By substituting β*<sup>1</sup> *<sup>z</sup>* <sup>þ</sup> *<sup>β</sup>*<sup>2</sup> *<sup>z</sup>* <sup>þ</sup> *<sup>β</sup>*<sup>3</sup> *<sup>z</sup>* <sup>¼</sup> <sup>1</sup> *(refer to* Eq. (10a)*) and <sup>β</sup>*<sup>1</sup> *zYOB* � *<sup>β</sup>*<sup>2</sup> *zYOB* � *<sup>β</sup>*<sup>3</sup> *zYOC* ¼ *c*<sup>1</sup> *(refer to* Eq. (10b)*), into the above inequality* (Eq. (17)) *the inequality in* Eq. (8) *is obtained:*

$$2\left(Y\_{OB}\rho\_x^2 + Y\_{OC}\rho\_x^3\right) \le Y - c\_1\tag{18}$$

*Recall from Eq. (12a):*

$$|\chi\_x| \le Y\_{OB}. \rho\_x^2 + Y\_{OC}. \rho\_x^3$$

$$\Rightarrow 2|\chi\_x| \le 2\left(Y\_{OB}\rho\_x^2 + Y\_{OC}\rho\_x^3\right) \tag{19}$$

*Inequalities* (18) and (19) *conclude that* 2j*γx*j≤*Y* � *c*1*, which means that* Eq. (13b) *is proved. By implementing a similar procedure on* Eq. (12b), Eq. (13c) *can be proved as well. Therefore, the proof of lemma 1 is completed.* ∎

The proposed method outlined in the paper uses a reduced number of variables when compared to other methods (e.g., CWS). However, to solve for the robot's stability, it is required to reduce the number of variables. For this, the Fourier-Motzkin elimination method is used to reduce the number of variables by one at each step of the process. That is, the *β<sup>i</sup> <sup>z</sup>* variables are eliminated through the procedure outlined in Eqs. (12) to (13) (refer to lemma 1). Subsequently, the proposed variable

elimination method *c*<sup>1</sup> and *c*<sup>2</sup> are eliminated from the set of inequalities in (13). For this, the upper and lower bounds of *c*<sup>1</sup> and *c*<sup>2</sup> are determined based on Eq. (21). Such method is heavily based on the geometrical features of the virtual support triangular area depicted in **Figure 4**.

Without loss of generality, the vertices of the defined virtual contact triangle can be named in such a way that the x coordinates of the vertices satisfy Eqs. (20).

$$\mathbf{x}\_{\rm OC} \ge \mathbf{x}\_{\rm OB} \ge \mathbf{x}\_{\rm OA} \tag{20a}$$

and,

$$\mathcal{y}\_{OA} \ge \left(\mathcal{y}\_{OB} = \mathcal{y}\_{OC}\right) \tag{20b}$$

**Figure 5** illustrates the possible different contact triangles where Eqs. (20) is satisfied (thus, any three contact points can be used in the proposed approach provided the X-axis of the contact triangle is defined to be aligned with the BC line.

Eqs. (20) results from the fact that the distances *xOC*, *xOB*, *xOA*, *yOA*, *yOB*, and *yOC* are greater than or equal to zero values (refer to Eq. (3)). By substituting Eq. (10a) in Eqs. (10b) and (10c), the boundary values of *c*<sup>1</sup> and *c*<sup>2</sup> (Eqs. (10)) are computed as:

$$c\_1 \in \left[ \min\left(c\_1\right), \max\left(c\_1\right) \right]$$

$$c\_2 \in \left[ \min\left(c\_2\right), \max\left(c\_2\right) \right]$$

where

**Figure 5.** *Naming the vertices of the contact triangle to meet Eqs. (21a) and (21b).*

*Perspective Chapter: Multi-Contact Humanoid Stability for Increased Interaction… DOI: http://dx.doi.org/10.5772/intechopen.108754*

$$\max\left(c\_1\right) = \max\left(\beta\_x^1 X\_{OA} - \beta\_x^2 X\_{OB} - \beta\_x^3 X\_{OC}\right) = \mathbf{1} \times Y\_{OA} + \mathbf{0} + \mathbf{0} = Y\_{OA}$$

$$\min\left(c\_1\right) = \min\left(\beta\_x^1, Y\_{OA} - \beta\_x^2, Y\_{OB} - \beta\_x^3, Y\_{OC}\right) = \mathbf{0} + \mathbf{0} - \mathbf{1} \times Y\_{OB} = -Y\_{OB}$$

$$\max\left(c\_2\right) = \max\left(\beta\_x^1 X\_{OA} + \beta\_x^2 X\_{OB} - \beta\_x^3 X\_{OC}\right) = \mathbf{0} + \mathbf{1} \times X\_{OB} + \mathbf{0} = X\_{OB}$$

$$\min\left(c\_2\right) = \min\left(\beta\_x^1 X\_{OA} + \beta\_x^2 X\_{OB} - \beta\_x^3 X\_{OC}\right) = \mathbf{0} + \mathbf{0} - \mathbf{1} \times X\_{OC} = -X\_{OC}$$

The above formulations give rise to Eq. (21).

$$-Y\_{OB} \le c\_1 \le Y\_{OA} \tag{21}$$

$$-X\_{OC} \le c\_2 \le X\_{OB}$$

Accordingly, the coordinates for *Y* and *X* (defined in Eq. (9)) can be denoted as *YOA* and *XOC*, respectively, as per the following expression:

$$X = \max\left(\mathbf{x}\_{OA}, \mathbf{x}\_{OB}, \mathbf{x}\_{OC}\right) = X\_{OC}$$

$$Y = \max\left(\mathbf{y}\_{OA}, \mathbf{y}\_{OB}, \mathbf{y}\_{OC}\right) = Y\_{OA}$$

The result of the above process provides a set of inequalities that describe the boundaries of the defined variables (*γ<sup>x</sup>* 0 , *γx*, *k*1, *k*2,*c*1, and*c*2) as per Eq. (22):

$$\begin{aligned} k\_1 &= \boldsymbol{\gamma}\_x + \boldsymbol{\gamma}\_x \\ k\_2 &= \boldsymbol{\gamma}\_y + \boldsymbol{\gamma}\_y \end{aligned}$$

$$k\_3 = p\_x \left( \boldsymbol{\gamma}\_y \,' - \boldsymbol{\gamma}\_y \right) + (\boldsymbol{\gamma}\_x - \boldsymbol{\gamma}\_x \,')$$

$$\begin{aligned} 2|\boldsymbol{\gamma}\_x\,'| &\le \mathbf{Y}\_{OA} + c\_1; 2|\boldsymbol{\gamma}\_x| \le \mathbf{Y}\_{OA} - c\_1 \\ 2|\boldsymbol{\gamma}\_y\,'| &\le \mathbf{X}\_{OC} - \mathbf{c\_2}; \ 2|\boldsymbol{\gamma}\_y| \le \mathbf{X}\_{OC} + \mathbf{c\_2} \end{aligned} \tag{22}$$

$$-\mathbf{Y}\_{OB} \le c\_1 \le \mathbf{Y}\_{OA}$$

$$-\mathbf{X}\_{OC} \le c\_2 \le \mathbf{X}\_{OB}$$

Eq. (22) describes all *γ*<sup>0</sup> *s* with respect to *γx*, however, there is a need to eliminate the *γ*<sup>0</sup> *s* parameters. Such elimination is achieved via the fourth step of the Fourier-Motzkin procedure as described below via Eqs. (23) and (24), where all inequalities are in terms of 2*pyγx*.

$$2p\_{\mathcal{Y}}\chi\_{\mathfrak{x}} \le p\_{\mathcal{Y}}(Y\_{OA} - c\_1) \tag{23a}$$

$$2p\_{\mathcal{Y}}\chi\_{\mathfrak{x}} \le p\_{\mathcal{Y}}(Y\_{OA} + c\_1) + 2p\_{\mathcal{Y}}k\_1 \tag{23b}$$

$$2p\_{\mathcal{Y}}\boldsymbol{\chi}\_{\mathbf{x}} \le p\_{\mathbf{x}}(\mathbf{X}\boldsymbol{\alpha}\mathbf{c} + \mathbf{c}\boldsymbol{\varrho}) + k\_{\mathcal{Y}} + p\_{\mathcal{Y}}k\_{\mathbf{1}} - p\_{\mathbf{x}}k\_{\mathbf{2}}\tag{23c}$$

$$2p\_{\mathbf{y}}\mathbf{y}\_{\mathbf{x}} \le p\_{\mathbf{x}}(\mathbf{X}\_{\text{OC}} - \mathbf{c}\_2) + k\_3 + p\_{\mathbf{y}}.k\_1 + p\_{\mathbf{x}}.k\_2\tag{23d}$$

$$2p\_\mathcal{y}\gamma\_\mathbf{x} \ge -p\_\mathcal{y}(Y\_{OA} - c\_1) \tag{24a}$$

$$2p\_{\mathcal{Y}}\chi\_{\mathbf{x}} \ge -p\_{\mathcal{Y}}(Y\_{OA} + c\_1) + 2p\_{\mathcal{Y}}k\_1 \tag{24b}$$

$$2p\_y \gamma\_x \ge -p\_x (X\_{OC} + c\_2) + k\_3 + p\_y k\_1 - p\_x k\_2 \tag{24c}$$

$$2p\_{\mathcal{Y}}\boldsymbol{\gamma}\_{\mathbf{x}} \ge -p\_{\mathbf{x}}(\mathbf{X}\_{OC} - \mathbf{c}\_2) + k\_3 + p\_{\mathbf{y}}k\_1 + p\_{\mathbf{x}}k\_2 \tag{24d}$$

Since the right-hand side terms of Eqs. (24) have higher values when compared to the left-hand side terms, all 2*pyγ<sup>x</sup>* terms in Eqs. (23) and (24) can be eliminated, resulting in the following set of 16 inequalities.

24*a*≤23*a* ! *c*<sup>1</sup> ≤*YOA* 24*a*≤23*b* ! *k*<sup>1</sup> ≥ � *YOA* 24*a*≤23*c* ! �*k*<sup>3</sup> � *py:k*<sup>1</sup> þ *px:k*<sup>2</sup> þ *py:c*<sup>1</sup> � *px:c*<sup>2</sup> ≤ *XOC:px* þ *YOA:py* 24*a*≤23*d* ! �*k*<sup>3</sup> � *py:k*<sup>1</sup> � *px:k*<sup>2</sup> þ *py:c*<sup>1</sup> þ *px:c*<sup>2</sup> ≤ *XOC:px* þ *YOA:py* 24*b*≤23*a* ! *k*<sup>1</sup> ≤*YOA* 24*b*≤23*b* ! *c*<sup>1</sup> ≥ � *YOA* 24*b*≤23*c* ! �*k*<sup>3</sup> þ *py:k*<sup>1</sup> þ *px:k*<sup>2</sup> � *py:c*<sup>1</sup> � *px:c*<sup>2</sup> ≤ *XOC:px* þ *YOA:py* 24*b*≤23*d* ! �*k*<sup>3</sup> � *py:k*<sup>1</sup> � *px:k*<sup>2</sup> þ *py:c*<sup>1</sup> þ *px:c*<sup>2</sup> ≤ *XOC:px* þ *YOA:py* 24*c*≤23*a* ! *k*<sup>3</sup> þ *py:k*<sup>1</sup> � *px:k*<sup>2</sup> þ *py:c*<sup>1</sup> � *px:c*<sup>2</sup> ≤*XOC:px* þ *YOA:py* 24*c*≤23*b* ! *k*<sup>3</sup> � *py:k*<sup>1</sup> � *px:k*<sup>2</sup> � *py:c*<sup>1</sup> � *px:c*<sup>2</sup> ≤*XOC:px* þ *YOA:py* 24*c*≤23*c* ! *c*<sup>2</sup> ≥ � *XOC* 24*c*≤23*d* ! *k*<sup>2</sup> ≥ � *XOC* 24*d*≤23*a* ! *k*<sup>3</sup> þ *py:k*<sup>1</sup> þ *px:k*<sup>2</sup> þ *py:c*<sup>1</sup> þ *px:c*<sup>2</sup> ≤*XOC:px* þ *YOA:py* 24*d*≤23*b* ! *k*<sup>3</sup> � *py:k*<sup>1</sup> þ *px:k*<sup>2</sup> � *py:c*<sup>1</sup> þ *px:c*<sup>2</sup> ≤*XOC:px* þ *YOA:py* 24*d*≤ 23*c* ! *k*<sup>2</sup> ≤*XOC* 24*d*≤ 23*d* ! *c*<sup>2</sup> ≤ *XOC*

The ! symbol in the previous set of 16 inequalities is used to denote that the left-hand side of the corresponding inequality results in the right-hand inequality. Substituting the expression for *Q* in Eq. (9), *Q* ¼ *XOC:px* þ *YOA:py*, into the above 16 inequalities result in Eqs. (25) and (26).

$$k\_3 \le Q - p\_\mathcal{y}.k\_1 + p\_\mathcal{x}.k\_2 - p\_\mathcal{y}.c\_1 + p\_\mathcal{x}.c\_2$$

$$k\_3 \le Q + p\_\mathcal{y}.k\_1 + p\_\mathcal{x}.k\_2 + p\_\mathcal{y}.c\_1 + p\_\mathcal{x}.c\_2$$

$$k\_3 \le Q - p\_\mathcal{y}.k\_1 - p\_\mathcal{x}.k\_2 - p\_\mathcal{y}.c\_1 - p\_\mathcal{x}.c\_2$$

$$k\_3 \le Q + p\_\mathcal{y}.k\_1 - p\_\mathcal{x}.k\_2 + p\_\mathcal{y}.c\_1 - p\_\mathcal{x}.c\_2$$

Therefore,

$$k\_3 \le Q - p\_y |k\_1 + c\_1| - p\_x |k\_2 + c\_2| \tag{25}$$

*Perspective Chapter: Multi-Contact Humanoid Stability for Increased Interaction… DOI: http://dx.doi.org/10.5772/intechopen.108754*

Similarly,

$$\begin{aligned} k\_3 &\geq -Q - p\_\gamma.k\_1 + p\_\times.k\_2 + p\_\gamma.c\_1 - p\_\times.c\_2\\ k\_3 &\geq -Q - p\_\gamma.k\_1 - p\_\times.k\_2 + p\_\gamma.c\_1 + p\_\times.c\_2 \end{aligned}$$

$$k\_3 &\geq -Q + p\_\gamma.k\_1 + p\_\times.k\_2 - p\_\gamma.c\_1 - p\_\times.c\_2$$

$$k\_3 &\geq -Q + p\_\gamma.k\_1 - p\_\times.k\_2 - p\_\gamma.c\_1 + p\_\times.c\_2$$

Therefore,

$$k\_3 \ge -Q + p\_y|k\_1 - c\_1| + p\_x|k\_2 - c\_2| \tag{26}$$

and,

$$k\_1 \in [-Y\_{OA}, +Y\_{OA}], \ k\_2 \in [-X\_{OC}, +X\_{OC}]$$

$$c\_1 \in [-Y\_{OB}, +Y\_{OA}], \ c\_2 \in [-X\_{OC}, +X\_{OB}]$$

Now, by eliminating variable *k*<sup>3</sup> from the set of inequalities, the Fourier-Motzkin method can continue. As discussed, eliminating variables step by step enables to determine the boundaries of all variables. Eliminating the last implicit variable *k*<sup>3</sup> from Eqs. (25) and (26) results in Eq. (27).

$$Q - p\_y|k\_1 + c\_1| - p\_x|k\_2 + c\_2| \ge -Q + p\_y|k\_1 - c\_1| + p\_x|k\_2 - c\_2|$$

$$p\_y(|k\_1 - c\_1| + |k\_1 + c\_1|) + p\_x(|k\_2 + c\_2| + |k\_2 - c\_2|) \le 2Q$$

$$p\_y\left(\max\left(|k\_1|, |c\_1|\right) + p\_x\left(\max\left(|k\_2|, |c\_2|\right) \le Q\right)\right)$$

$$X\_{OC}p\_x + Y\_{OA}.p\_y \le Q\tag{27}$$

Following the definition of *Q* (Eq. (9)), Eq. (27) is always valid. The result of the above process is that the variables of interest (i.e., *k*1, *k*2, *k*3, *c*1, *c*2,*α<sup>i</sup> <sup>x</sup>*, *α<sup>i</sup> <sup>y</sup>*, *β<sup>i</sup> <sup>z</sup>*, and *βz*) are real values where each of such variables is obtained by changing the corresponding defined variable to the initial variables (i.e., *f i x, f<sup>i</sup> y, f<sup>i</sup> <sup>z</sup>, f <sup>x</sup>*, *f <sup>y</sup>*, *τx*, *τ<sup>y</sup>* and *τz*). This process leads to the following set of expressions (Eq. (28)), which proves Theorem 1:

$$\begin{aligned} |f\_{\,\,\,}| &\leq \frac{\mathcal{Y}\_{OA}}{\mathcal{Y}\_{sum}} \cdot \mu \mathcal{f}\_{x} \\ |f\_{\,\,\,}| &\leq \frac{\mathcal{X}\_{OC}}{\mathcal{X}\_{sum}} \cdot \mu \mathcal{f}\_{x} \\ \int\_{\,\,x} &> 0 \\ -\mathcal{Y}\_{OB}\int\_{x} &\leq \tau\_{x} \leq \mathcal{Y}\_{OA}\mathcal{f}\_{x} \\ -\infty\_{OC}\mathcal{f}\_{x} &\leq \tau\_{\mathcal{Y}} \leq \infty\_{OB}\mathcal{f}\_{x} \\ \tau\_{\min} &\leq \tau\_{x} \leq \tau\_{\max} \end{aligned} \tag{28}$$

where

$$
\mathfrak{x}\_{Oi} = |\mathfrak{x}\_i - \mathfrak{x}\_O|, \\
\mathfrak{x}\_O = \frac{\mathfrak{x}\_A + \mathfrak{x}\_B + \mathfrak{x}\_C}{\mathfrak{3}},
$$

$$i = A, B, C$$

$$\mathcal{Y}\_{Oi} = |\mathcal{Y}\_i - \mathcal{Y}\_O|, \mathcal{Y}\_O = \frac{\mathcal{Y}\_A + \mathcal{Y}\_B + \mathcal{Y}\_C}{3},$$

$$i = A, B, C$$

$$\mathbf{x}\_{\text{sum}} = \mathbf{x}\_{OA} + \mathbf{x}\_{OB} + \mathbf{x}\_{OC}$$

$$\mathcal{Y}\_{\text{sum}} = \mathcal{Y}\_{OA} + \mathcal{Y}\_{OB} + \mathcal{Y}\_{OC}$$

$$\boldsymbol{\tau}\_{\text{min}} = -\mu (\mathbf{x}\_{OC} + \mathbf{y}\_{OA})\boldsymbol{f}\_x + |\mathbf{y}\_{\text{sum}}\boldsymbol{f}\_x - \mu \boldsymbol{\tau}\_x| + |\mathbf{x}\_{\text{sum}}\boldsymbol{f}\_y - \mu \boldsymbol{\tau}\_y|$$

$$\boldsymbol{\tau}\_{\text{max}} = \mu (\mathbf{x}\_{OC} + \mathbf{y}\_{OA})\boldsymbol{f}\_x - |\mathbf{y}\_{\text{sum}}\boldsymbol{f}\_y + \mu \boldsymbol{\tau}\_x| - |\mathbf{x}\_{\text{sum}}\boldsymbol{f}\_y + \mu \boldsymbol{\tau}\_y|$$

Eq. (28) provides the stability condition of the corresponding robot's contact with the environment. That is, if the forces and torque values read from the corresponding force and torque (F/T) sensor on the robot (e.g., ankle) satisfy Eq. (28), then, such conditions indicate that the robot is stable. Otherwise, the robot is unstable. The stability results provided from Eq. (28), however, is a binary value (stable or not stable), which does not provide the degree of stability with which the given robot might be (How stable is the robot stable?). Furthermore, such results do not provide information to help guide the motions of the robot such that it does not move toward an unstable state or becomes marginally stable.

#### **2.4 Stability margin and visualizing stability condition**

Now that a set of mathematical formulations, Eq. (28), has been developed to enable to determine the stability condition of legged bipedal robots in binary logical terms (i.e., 1 ! stable; 0 ! unstable), a stability margin is needed. A stability margin based on the parameters used in this work would enable us to know how stable the robot is or how close the robot is from becoming unstable. In this work, a stability margin based on the five parameters used in the proposed formulations (i.e., *f <sup>x</sup>*, *f <sup>y</sup>*, *f <sup>z</sup>*, *τx*, *τy*, and *τz*) is provided to enable us to know how stable the robot is or how close the robot is from becoming unstable. To this aim, a radar chart is proposed as a practical solution to visualize multivariate data on a 2-dimensional surface. Each variable of interest has an axis starting from a common center point from where the axes for the remaining variables emanate. On each axis, the acceptable range of each variable is represented. The maximum values of the five parameters form a polygon called *stability polygon*. While the values of the five parameters computed based on the state of the robot are used to form another polygon, which is referred to in this paper as the *data polygon* in **Figure 6**. As long as the *data polygon* lies inside the stability polygon, as shown in **Figure 6a**, all inequalities are satisfied, and the robot is said to be stable. In contrast, if one or more of the vertices of the *data polygon* crosses the boundaries of the *stability polygon* the robot becomes unstable as illustrated in **Figure 6b**.

The proposed radar graph is divided into different fuzzy regions each indicating how stable the robot is. Each region can be defined based on user preferences, desired levels of desired stability, or robot characteristics. To illustrate such aspects,, in this paper, the allowable range for each of the *f <sup>x</sup>*, *f <sup>y</sup>*, *f <sup>z</sup>*, *τx*, *τy*, and *τ<sup>z</sup>* variables are divided into five severity regions. Such fuzzy stability characteristics are then applied to a life-size humanoid robot having 29 DoF. These stability levels are expressed as fuzzy variables

*Perspective Chapter: Multi-Contact Humanoid Stability for Increased Interaction… DOI: http://dx.doi.org/10.5772/intechopen.108754*

**Figure 6.** *Stability polygon on a radar graph.*

and their ranges are presented in **Table 1**. If the values of the five parameters are inside the region closer to the center of the radar graph, it indicates that the robot is more stable when compared to a case where the parameter values are in regions closer to the borders of polygons, which would indicate that the robot is approaching instability.

To build the radar graph the five parameters *f <sup>x</sup>*, *f <sup>y</sup>*, *τx*, *τy*, and *τ<sup>z</sup>* are normalized based on the six variables *f <sup>x</sup>*, *f <sup>y</sup>*, *f <sup>z</sup>*, *τx*, *τy*, and *τ<sup>z</sup>* to obtain *f m x* ,*f m <sup>y</sup>* ,*τ<sup>m</sup> <sup>x</sup>* ,*τ<sup>m</sup> <sup>y</sup>* , and *τ<sup>m</sup> <sup>z</sup>* . Among all the six variables, *f <sup>z</sup>* has a direct impact on each of the five normalized variables and as a result does not appear as a normalized variable itself. The formulations to obtain *f m x* ,*f m <sup>y</sup>* ,*τ<sup>m</sup> <sup>x</sup>* ,*τ<sup>m</sup> <sup>y</sup>* ,*τ<sup>m</sup> <sup>z</sup>* are presented in Eq. (29).


#### **Table 1.**

*Stability regions in the radar chart.*

$$f\_x^m = \frac{|f\_x|}{\frac{\gamma\_{oA}}{\gamma\_{mn}} \cdot \mu f\_x} \Rightarrow 0 \le f\_x^m \le 1$$

$$f\_y^m = \frac{|f\_y|}{\frac{\gamma\_{oC}}{\gamma\_{mn}} \cdot \mu f\_x} \Rightarrow 0 \le f\_y^m \le 1 \tag{29}$$

$$t\_x^m = 2 \times \left(\frac{|\tau\_x - \frac{(\gamma\_{oA}f\_x - \gamma\_{oB}f\_x)}{2}|}{\gamma\_{oA}f\_x + \gamma\_{oB}f\_x}\right) \Rightarrow 0 \le t\_x^m \le 1$$

$$t\_y^m = 2 \times \left(\frac{|\tau\_y - \frac{(\gamma\_{oB}f\_x - \gamma\_{oC}f\_x)}{2}|}{\pi\_{oB}f\_x + \pi\_{oC}f\_x}\right) \Rightarrow 0 \le t\_y^m \le 1$$

$$t\_x^m = 2 \times \left(\frac{|\tau\_x - \frac{(\tau\_{mx} + \tau\_{xm})}{2}|}{\tau\_{mx} - \tau\_{min}}\right) \Rightarrow 0 \le t\_x^m \le 1$$

## **3. Results**

The proposed methodology described in Section 2 was analyzed in simulation and via experimental tests using *Transcend*, a life-size humanoid robot (**Figure 7**) developed by 4Front Robotics Inc. and the University of Calgary.

#### **3.1 Simulation results**

Before the proposed stability method was implemented on a real robot, a comprehensive simulation study was performed to evaluate its functionality and analyze and determine its limitations. To conduct the simulations, the commercial-off-the-shelf (COTS) multi-body dynamics simulation software Adams was used from where the stability of the robot of interest was determined. The software Adams enabled us to study the dynamics of the parts of the moving robot and determine how forces and loads are distributed throughout the robot affecting its stability. The results of such simulations in Adams were assumed to be accurate and then used to compare with the results of the proposed method. The consistency between the Adams and results obtained from the proposed methodology were used to determine the validity and accuracy of the proposed method. The performance of the method was assessed according to two complementary measures: (i) accuracy and (ii) reliability.

*Perspective Chapter: Multi-Contact Humanoid Stability for Increased Interaction… DOI: http://dx.doi.org/10.5772/intechopen.108754*

**Figure 7.** *TRANSCEND: Experimental life-size humanoid robotic platform.*

**Accuracy** is defined as the number of cases when both simulation and theoretical formulation produce identical results under the same robot state (i.e., stable or unstable). Such value is then divided by the total number of cases tested resulting in the *accuracy value*.

**Reliability** is defined as a measurement of the inconsistency in the results provided by the theoretical and the simulation tests under the same robot state. The purpose of this indicator is to determine how reliable is the proposed method. The inconsistency of the results is considered *reliable* when the mathematical formulation shows that the robot is unstable, but the simulation shows that it is stable. On the other hand, the inconsistency is considered *unreliable* when the mathematical formulation predicts that the robot is stable, while the simulation shows that it is not.

To be able to generate realistic results from the simulation that can be experimentally tested in a reproducible fashion, four terrain characteristics were used: (*i*) coefficient of friction, (*ii*) damping ratio, (*iii*) terrain stiffness, and (*iv*) penetration depth. These characteristics were defined on the contact surface between the robot's foot and the ground. Obviously, such characteristics are dependent on the materials of both surfaces (the ground and the robot's sole/foot), which was known (the robot and the terrain were engineered). The value of each of these four parameters used in the experimental tests was selected based on prior work in the Adams software [19] (see **Table 2**).

During each experimental test, the robot was positioned on a specific surface having four of the properties outlined in **Table 2** (i.e., terrain stiffness friction, and damping). In turn, the robot was positioned in a given (selected) kinematic state after which the corresponding simulation was performed. Each simulation test was conducted three times and each simulation used a different penetration depth coefficient. The reason for such a testing scenario was to investigate the extent to which the


**Table 2.**

*Contact characteristics used.*

proposed methodology can be used to determine the robot's stability when standing on compliant (deformable) surfaces and not just solid (rigid) terrains. Although numerous surface conditions (e.g., slope, friction, etc.) were used during the experimental tests, for simplicity, in the context of this paper only three representative horizontal flat surfaces are used to exemplify the obtained results: *surface 1*, *surface 2*, and *surface 3*.

*Surface 1*: A solid surface with a penetration depth of zero.

*Surface 2*: A semi-solid surface with a penetration depth of 10�4, (and)

*Surface 3*: A compliant surface with a penetration depth of 2*:*<sup>1</sup> � <sup>10</sup>�3.

During each simulation case, the values of the contact forces, *f i <sup>x</sup>* and *f i <sup>y</sup>*, at the corresponding contact point *Ci* were varied from 0 to 100 *N* between tests. **Figure 8** illustrates the location of the three contact points on the robot's sole used during the simulation and experimental tests. In the experimental tests such contact points were achieved by placing rubber bumpers on the robot's feet at the locations shown in **Figure 8**.

**Figure 9** illustrates the robot's stability on different values for *f* 2 *<sup>y</sup>* on the three different surfaces. The bars denote the binary stability condition obtained from the proposed method (orange) and the simulation (blue bars).

From **Figure 9**, it is observed that the proposed methodology agrees 100% with the full-body dynamic simulation tests except in the case of surface 3, when a force *f* 2 *<sup>y</sup>* ¼ 10*N* was applied. Under such conditions, the simulations and proposed mathematical

*Perspective Chapter: Multi-Contact Humanoid Stability for Increased Interaction… DOI: http://dx.doi.org/10.5772/intechopen.108754*

#### **Figure 9.**

*Stability results during the simulation as the robot stand on a flat horizontal surface when one of the contact forces (f* **<sup>2</sup>** *<sup>y</sup> ) is varied.*

**Figure 10.** *Visualization of the foot's motion when in an unstable condition.*

formulation indicate that the robot is in an unstable and stable state, respectively. This discrepancy is thought to be due to the fact that the simulated full-body dynamics is able to identify that the robot's foot is sliding (due to the low friction that exist at the contact points) while experimentally such aspects were sometimes difficult to easily visualize (**Figure 9**). **Figure 10** shows the corresponding motion of the robot's foot when sliding on the surface and taken at different time steps causing the robot to lose stability and fall.

The same procedure was also performed for the three components of the three contact points, *f* 2 *x*, *f* 3 *x*, *f* 1 *y*, *f* 2 *<sup>y</sup>* , and *f* 3 *<sup>y</sup>* while varying the corresponding force caused by gravity at each simulation on a specific surface. Such tests produced similar results to the results shown in **Figure 9**. The results of these tests in terms of their accuracy and reliability are presented in **Tables 3**–**5** for the specific surfaces used (i.e., solid, semi-solid, and compliant).

The obtained results show that the proposed method is successful in estimating the stability of the robot on all surfaces. With almost the same accuracy for the solid and semi-solid surfaces (**Tables 3** and **4**, respectively). Also, the method shows reliable


**Table 3.**

*Performance of the proposed method compared to the simulation on a flat horizontal surface 1.*

*Perspective Chapter: Multi-Contact Humanoid Stability for Increased Interaction… DOI: http://dx.doi.org/10.5772/intechopen.108754*


**Table 4.**

*Performance of the proposed method compared to the simulation on a flat horizontal surface 2.*


**Table 5.**

*Performance of the proposed method compared to the simulation on a flat horizontal surface 3.*

results in all cases tested, which suggests that the proposed method can accurately predict all unstable conditions. The results show that the proposed methodology provides better results on solid surfaces and surfaces having small deformation (**Table 5**).

**Figure 11** shows the corresponding radar charts for the test shown in **Figure 9a**. **Figure 11a** shows the robustness status of the robot when all contact force components are equal to zero (except for the vertical forces, *f <sup>z</sup>*, and caused by the robot's weight). The obtained radar chart 10a shows a "highly stable" condition as all five parameters are within the green section of the chart. **Figure 11b**, as an unstable example, shows the case when the force *f* 2 *<sup>y</sup>* was increased to 10 N. **Figure 11c** shows the case when the humanoid robot is in a "moderate-risk stability" region despite the fact that the force *f* 2 *y* was increased to 15 N when compared to previous tests. Lastly, when the force *f* 2 *<sup>y</sup>* was increased to 20 N, the robot is seen to lose stability. That is, the generated data polygon crosses the borders of the stability polygon where the robustness concept is not defined (**Figure 11d**).

The proposed approach was also tested on slope surfaces. To this aim, three surfaces having slopes of 10, 20, and 30 degrees were used. The simulation settings used to test the stability on these surfaces were the same as provided in **Table 2** and **Figure 8**.

The results on tilted surfaces having an angle between 10 and 20 degrees produced reasonable results with a stability accuracy value between 72 and 100%. Similar to the simulated tests on flat horizontal solid and semi-solid surfaces, the results are considered to be reliable. However, some of the results obtained for compliant surfaces were unreliable [18]. When increasing the surface slope to 30 degrees, it was observed that under the same settings used for the 20° sloped terrain, both the simulation and the proposed method show that the robot losses stability as expected without the robot receiving help via external forces (e.g., supporting itself from a banister of from any other surface with its hand).

**Figure 11.**

*Robustness check for different force values of f* <sup>2</sup> *<sup>y</sup> on a flat horizontal surface.*

### **3.2 Experimental tests**

After analyzing and validating the proposed method in simulation, the method was experimentally tested on real humanoid hardware to examine the proposed method under real-world conditions. To test the proposed stability mechanism the humanoid robot, *transcend* (**Figure 7**) was used. To enable such tests a ROS (robot operating system) package was developed encoding the proposed formulations and configured to read sensor data from the robot's F/T sensors in real time. **Table 6** shows the pseudo-code for the developed ROS package.

To check the stability when standing on slanted surfaces, the robot was positioned on the corresponding surface standing on one of its feet. Then, the ROS package was executed, and the stability results were published continuously. The robot was placed on a flat rigid surface as well as on a bumpy sloped terrain. Once the robot was in place the slope value of the terrain was changed as the robot kept its state (did not attempt to maintain balance).

It was observed that when the stability condition of the robot changes, the proposed method is able to accurately perceive such changes and compute the stability of the robot while publishing the updated stability condition in real time. After numerous experimental tests on various terrain conditions, it is concluded that the proposed *Perspective Chapter: Multi-Contact Humanoid Stability for Increased Interaction… DOI: http://dx.doi.org/10.5772/intechopen.108754*


#### **Table 6.**

*The pseudocode of the ROS package was developed to test the robot's stability.*

method accurately predicts the robot's stability conditions on various surfaces having different friction coefficients, slopped conditions, and levels of surface characteristics, such as diverse bumpiness conditions.

## **4. Discussion**

With an increasing demand for utilizing robotic tools in many hazardous/laborintense working environments, such as mining and forestry, the need for obtaining a comprehensive and practical robotics approach using humanoid robots becomes essential. Although remarkable studies have been conducted to enable humanoids to execute tasks in environments engineered for humans, one of the biggest problems prohibiting the full integration of these systems in complex labor-intense working environments is that they are incapable of successfully maneuvering through such complex chaotic spaces where they must maintain their stability while performing operations. The main reason for this incapability is the lack of a universal (yet fast) solution to the problem of humanoid stability on complex and unstructured terrains. Most of the relevant studies conducted on humanoids'stability have focused on humanoids walking on flat horizontal terrains which do not represent many realworld scenarios (e.g., urban search and rescue operations inside collapsed infrastructure). Prior work on multi-legged robot stability including the multi-contact approaches, such as the CWS and the ZMP methods, are limited as they do not provide effective solutions for cases where the robot's feet contact the environment on multiple noncoplanar surfaces.

The solution presented in this chapter allows humanoids to use not only their feet but also any other parts of their body to contact the environment to enhance their stability and hence improve their locomotion. In this regard, the modified version of CWS discussed in this work provides a generic approach that extends the capabilities of the ZMP and the traditional CWS approaches. Although the modified CWS method provides an effective procedure for determining the stability of robots in multicontact locomotion procedures, there are several improvements that can be conducted to further enhance the approach. Some of these improvements include:


Although the presented stability method provides a rigorous theoretical framework, the method would benefit from a detailed experimental comparison with respect to previously formulated stability determination approaches to precisely quantify its superiority in the real-world scenario, hence improving human-robot collaboration. Human-robot collaborative systems (HRCS) have emerged as a solution that aims to satisfy the current demand for highly personalized products, enhance quality, and reduce costs by combining the skills of humans and robots within a shared workspace. However, the safety of human operators, and people in general, is of major concern when located in collaborative workstations and/or common areas. In this regard, it is envisioned that the methodology presented in this manuscript can significantly improve safety assurance practices in diverse sectors, including current applications of the manufacturing industry [20]. In this sense, the integration of human-robot interactions and safety standards has been analyzed [20], where a favoring inclination to techno-centered practices has been noticed, where policies designed for rigid automation are being used for HRCS alike. This, however, brings additional risks to the well-being of human operators.

Industry 4.0, as the current transformation of manufacturing systems, introduces a paradigm shift supported by new robotic technologies that together enable the decentralization of production processes via HRCS [21, 22]. For instance, collaborative robots (or cobots) have been developed with intuitive interfaces, sensors, and software to aid human operators in performing demanding physical tasks (i.e., handling dangerous materials or executing repetitive operations) [23]. Furthermore, since HRCS aims to achieve higher flexibility in the production of diverse-sized volumes, HRCS is being adopted in the manufacturing and other industries as a solution that mixes, within a shared workspace, the accuracy and repeatability skills of collaborative robots with the dexterity and cognitive capabilities of human operators. This semi-automated schema, which integrates modern robotics and legacy manual work, is a promising instrument for mass customization goals [24] in which the methodologies presented in this manuscript will find useful applications.

## **5. Conclusions**

The proposed theoretical formulation based on the CWS stability approach was found to be applicable to any continuous (e.g., floor or loose dirt) or discrete (e.g.,

## *Perspective Chapter: Multi-Contact Humanoid Stability for Increased Interaction… DOI: http://dx.doi.org/10.5772/intechopen.108754*

sharp rocky surface) contact surface that can be represented by an arbitrary set of three contact points. The proposed approach provides the ability for a fast and efficient stability computation for multi-legged robots operating in a broad spectrum of applications. Hence, it provides opportunities to deploy humanoids and other types of robots in various real-world environments as complex as the environments encountered in hazardous urban search and rescue operations. The developed approach enables fast and efficient stability computation that can be utilized in a wide range of applications, such as hazardous spaces, including moving inside collapsed buildings. The introduced formulations equip roboticists with a superior stability tool that will enable them to better control robots walking in complex potentially dynamic environments. The results from simulations and experimental tests show that the proposed method is a powerful tool capable of computing stability in a very fast way with reasonable accuracy and reliability. As a result, the proposed approach provides relevant information that can be used to control the body motions of multi-legged robots so that their actions do not compromise their stability.

## **Author details**

Parastoo Dastangoo and Alejandro Ramirez-Serrano\* Department of Mechanical and Manufacturing Engineering, University of Calgary, Calgary, Canada

\*Address all correspondence to: aramirez@ucalgary.ca

© 2022 The Author(s). Licensee IntechOpen. This chapter is distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/3.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

## **References**

[1] Vukobratović M, Borovac B. Zeromoment point—Thirty five years of its life. International Journal of Humanoid Robotics. 2004;**1**(01):157-173

[2] Takao S. Yokokohji Y. Yoshikawa T. FSW (feasible solution of wrench) for multi-legged robots. In: 2003 IEEE International Conference on Robotics and Automation. IEEE. 2003;**3**: 3815-3820

[3] Dai H. Robust multi-contact dynamical motion planning using contact wrench set [A thesis]. Massachusetts Institute of Technology. 2016

[4] Wieber P-B. On the stability of walking systems. In: Proceedings of the International Workshop on Humanoid and Human Friendly Robotics. 2002

[5] Hirukawa H. Humanoid robotics projects in Japan. In: Proceedings of the Understanding Humanoid Robots Workshop at IEEE ICRA 2006. 2006

[6] Dai H, Valenzuela A, Tedrake R. Whole-body motion planning with centroidal dynamics and full kinematics. In: 2014 IEEE-RAS International Conference on Humanoid Robots. IEEE. 2014. pp. 295-302

[7] Koyanagi Ki, et al. A pattern generator of humanoid robots walking on a rough terrain using a handrail. In: 2008 IEEE/RSJ International Conference on Intelligent Robots and Systems. IEEE. 2008. pp. 2617-2622

[8] Caron S, Pham Q-C, Nakamura Y. Leveraging cone double description for multi-contact stability of humanoids with applications to statics and dynamics. Robotics: Science and Systems. 2015;**11**:1-9

[9] Escande A, Kheddar A, Miossec S. Planning contact points for humanoid robots. Robotics and Autonomous Systems. 2013;**61**(5):428-442

[10] Herzog A, Rotella N, Schaal S, Righetti L. Trajectory generation for multi-contact momentum control. In: 2015 IEEE-RAS 15th International Conference on Humanoid Robots (Humanoids). IEEE. 2015. pp. 874-880

[11] Zheng Y, Lin MC, Manocha D, Adiwahono AH, Chew C-M. A walking pattern generator for biped robots on uneven terrains. In: 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems. IEEE. 2010. pp. 4483-4488

[12] Wang Z, Harada K, Wan W. Multicontact Stability of Humanoids using ZMP and CWC. In: 2019 IEEE-RAS 19th International Conference on Humanoid Robots (Humanoids). IEEE. 2019. pp. 126-131

[13] Caron S, Pham Q-C, Nakamura Y. Stability of surface contacts for humanoid robots: Closed-form formulae of the contact wrench cone for rectangular support areas. In: 2015 IEEE International Conference on Robotics and Automation (ICRA). IEEE. 2015. pp. 5107-5112

[14] Wiedebach G, Bertrand S, Wu T, Fiorio L, McCrory S, Griffin R, et al. Walking on partial footholds including line contacts with the humanoid robot atlas. In: 2016 IEEE-RAS 16th International Conference on Humanoid Robots (Humanoids). IEEE. 2016. pp. 1312-1319

[15] Kagami S, Kitagawa T, Nishiwaki K, Sugihara T, Inaba M, Inoue H. A fast dynamically equilibrated walking

*Perspective Chapter: Multi-Contact Humanoid Stability for Increased Interaction… DOI: http://dx.doi.org/10.5772/intechopen.108754*

trajectory generation method of humanoid robot. Autonomous Robots. 2002;**12**(1):71-82

[16] Caron S. Computational foundation for planner-in-the-loop multi-contact whole-body control of humanoid robots [A thesis]. University of Tokyo. 2016

[17] Trinkle JC, Pang JS, Sudarsky S, Lo G. On dynamic multi-rigid-body contact problems with Coulomb friction. ZAMM-Journal of Applied Mathematics and Mechanics/Zeitschrift für Angewandte Mathematik und Mechanik. 1997;**77**(4):267-279

[18] Dastangoo P. Multi-contact stability of multi-legged robots operating in unstructured spaces [MS thesis]. Schulich School of Engineering. 2021

[19] Daniel WW. MSC.Software. Contact modeling presentation, sheet 10. Available from: https://www.insumma. nl/wp-content/uploads/SayField\_ Verheul\_ADAMS\_Contacts.pdf

[20] Segura Parra P, Lobato-Calleros O, Ramirez-Serrano A, Soria I, Humanrobot collaboration systems: Structural components for current manufacturing applications, Journal of Advances in Industrial Manufacturing Engineering. Nov 2021;**3**:114-125

[21] Costa Mateus JE, Aghezzaf E-H, Claeys D, Limère V, Cottyn J. Method for transition from manual assembly to Human-Robot collaborative assembly. IFAC-PapersOnLine. 2018;**51**(11): 405-410

[22] Mateus JEC, Claeys D, Limère V, Cottyn J, Aghezzaf E-H. Ergonomic and performance factors for Human-robot collaborative workplace design and evaluation. IFAC-PapersOnLine. 2019; **52**(13):2550-2555

[23] Parra PS, Calleros OL, Ramirez-Serrano A. Human-robot collaboration systems: Components and applications. In: International Conference of Control, Dynamic Systems, and Robotics, 2020. 2020. pp. 1-9

[24] Ding Y, Xu W, Liu Z, Zhou Z, Pham DT. Robotic task oriented knowledge graph for human-robot collaboration in disassembly. Procedia CIRP. 2019;**83**:105-110

## **Chapter 6**
