## Abstract

For many planar bipedal models, each step is divided into a finite time single support period and an instantaneous double support period. During single support, the biped is typically underactuated and thus has limited ability to reject disturbances. The instantaneous nature of the double support period prevents nonimpulsive control during this period. However, if the double support period is expanded to finite time, it becomes overactuated. While it has been hypothesized that this overactuation during a finite-time double support period may improve disturbance rejection capabilities, this has not yet been tested. This paper presents a refined biped model by developing a finite-time, adaptive double support controller capable of handling the overactuation and limiting slip. Using simulations, we quantify the disturbance rejection capabilities of this controller and directly compare them to a typical, instantaneous double support model for a range of gait speeds and perturbations. We find that the finite-time double support controller increased the walking stability of the biped in approximately half of the cases, indicating that a finite-time double support period does not automatically increase disturbance rejection capabilities. We also find that the timing and magnitude of the perturbation can affect if a finite-time double support period enhances stability. Finally, we demonstrate that the adaptive controller reduces slipping.

## 1 Introduction

An open challenge for bipedal gait is how to best increase robustness of gait to disturbances and how to best prevent falls. For robots, this can improve performance and allow for more extensive applications of bipedal robots. For humans, understanding how to achieve this can improve the quality of life for elderly adults by reducing injuries due to falls [1–3]. The easiest and safest method to answer this question is to study gait through simulations and robotics. In this work, we compare how an instantaneous versus finite-time double support period affects the ability of planar bipedal simulations to avoid falls due to external disturbances. While a biped can (and will) fall due to internal perturbations, such as sensor or actuator noise, or due to improper control, this work focuses on how including a finite-time double support period can handle the introduction of external disturbances.

While there are several different ways to model bipedal walking, one energetically efficient approach that can mimic human walking utilizes the passive dynamics of the biped [4]. These models typically divide the step into a finite-time single support period, when only one leg is in contact with the ground, and an instantaneous double support period, when both legs are in contact with the ground (e.g., Refs. [5–9]). These models typically have *N* rigid links connected by (*N* − 1) revolute joints with actuators at each joint and may include a torso. They typically have point [5,8,9] or curved [10,11] feet, so the foot cannot apply a moment to the ground. Therefore, the model has *N* degrees-of-freedom (DOF) and (*N* − 1) actuators during single support and is thus underactuated. Because of this underactuation, these biped models cannot easily control their global orientation during single support, which limits their ability to quickly reject disturbances. Hybrid zero dynamic (HZD) control is a control method developed for such planar bipeds and combines hybrid models with the use of zero dynamics through feedback linearization [5,6,11]. With standard HZD-based control, if the biped is perturbed forward or backward, the coordination between limbs is kept consistent with an unperturbed step [12]. However, this joint coordination does not ensure that the velocity of the biped is consistent with an unperturbed step, and incorrect velocity often causes falls. Because the double support period is instantaneous, it is uncontrollable with non-impulsive actuators and cannot be used to reject disturbances.

There are several approaches to correct these velocity disturbances and prevent falls. One is to adjust the single support controller based on error in the unactuated velocity [11,13,14]. Another is to alter the step length through foot placement [15,16]. The approach investigated here is to use a finite-time double support period to take advantage of the overactuation during double support. This overactuation occurs due to the additional foot contact, causing the biped to have (*N* − 2) DOF and (*N* − 1) actuators. Overactuation may be useful because it provides an infinite number of ways to accomplish a task, so a secondary goal, such as rejecting disturbances, can be specified in addition to maintaining joint coordination. While there has been limited work comparing the disturbance rejection capabilities of bipeds with instantaneous versus finite-time double support periods, it is typically assumed to be advantageous in all cases. There is some support for this. Lengthening the double support period in human gait (typically by walking more slowly) may improve stability [17]. Further, increasing step length has been shown to increase the stability of the double support period [18]. Recent work has also shown that humans struggle to voluntarily lengthen double support duration when forced to maintain a constant walking speed, suggesting that they use the longest possible double support duration for a given speed [19]. This may suggest that a long double support duration increases stability. Further, for very simple models with variability, a flat-foot model with finite-time double support periods [20] was able to walk with much higher levels of variability than a passive point-foot model [21]. Therefore, we formally evaluate if a finite-time double support period increases disturbance rejection capabilities in planar biped models.

To evaluate this, a finite-time double support controller is needed. A finite-time double support period can be included for any biped model with at least four links, regardless of the foot model, by modeling the period as a closed-loop kinematic chain. Because the system is overactuated during the double support period, not all coordinates can be defined independently. Instead, additional conditions are required to uniquely define the joint torques. One common approach is to track a ground reaction force (GRF) to reduce the chance of slipping [22–24]. However, it may be unnecessary to directly control the GRF as long as the resulting GRF keep the feet firmly planted on the ground. Alternatively, the norm of the joint torques can be minimized to reduce energy expenditure [25–33]. Minimizing the joint torques is not trivial because they are derived as a function of the GRF, which are in turn dependent on the joint torques. Unfortunately, preliminary work using this method indicated that the biped often slipped during double support following perturbations [34]. This could be addressed by solving a quadratic programming problem [35], but this can be computationally expensive. In this work, an HZD-based adaptive controller that modifies the joint torques to prevent slipping was developed to reduce slipping while still minimizing joint torques.

To quantify disturbance rejection capabilities, the system can be evaluated through brute force by applying random perturbations until the biped falls or through more sophisticated techniques. One such technique is local perturbation analysis, which applies small perturbations and quantifies how quickly the biped returns to the nominal gait [36,37]. However, this focuses on local stability, which may not correlate with falling [38,39]. A second popular technique is to ensure the center of pressure remains within the base of support [40,41], which is a very conservative stability metric. Human gait, which is usually quite robust, is typically unstable with respect to this stability criteria [42]. Another popular technique is to look at N-step capturability, or the ability of a biped to come to a stop without falling while taking N-steps or fewer [43,44]. However, this considers the ability of the biped to come to a complete stop, rather than the ability to keep walking in the presence of disturbances. Finally, another technique that has been used is to treat the biped as a metastable system and estimate the number of steps before failure using a Markov chain [45]. A metastable system is one that exhibits locally stable behavior in the presence of small perturbation, but is guaranteed to eventually fail [46]. As such, it possesses qualities of both a stable and unstable system. This technique is best suited to discrete perturbations [34] instead of continuous perturbations [47]. By treating the system as metastable, we were able to test the robustness of the system to random perturbations in a computationally feasible manner even when the biped was able to walk for millions of steps before failing. By comparing the number of steps to fail, we can ascertain if a finite-time double support period is useful.

To evaluate the effect of a finite-time double support period on disturbance rejection capabilities, two double support controllers were developed and tested in simulation. The first “controller” was simply an instantaneous, unactuated impact mapping, as is common for HZD-based controllers. The second controller was a finite-time double support controller. We chose to deal with the overactuation by minimizing the norm of the joint torques rather than controlling one of the GRF. For both double support scenarios, HZD control was used for the single support period. This paper expands on our preliminary work in Ref. [34] by refining the model and controller and performing substantially more testing to determine if a finite-time double support period enhances stability. The refined model introduced a compliant ground which improved the ability to find valid finite-time double support controllers. An additional adaptive controller was developed to prevent excessive slipping during double support. Finally, a broader range of gait speeds and perturbations were used to quantify how stability changes with a finite-time versus instantaneous double support period. Section 2 provides an overview of the bipedal model with the added compliant ground model. Section 3 provides a derivation of the controllers. Section 4 describes how the gaits were chosen and compared. Finally, Sec. 5 compares the different double support controllers and discusses the results.

## 2 Model

*q*

_{1}is the absolute, unactuated angle, $q2,\u2026,q6$ are the relative joint angles, and

*x*

_{h}and

*y*

_{h}are the horizontal and vertical positions of the hip, respectively.

**D**is the inertia matrix,

**C**is the matrix containing Coriolis force and centripetal force terms,

**G**is the gravity matrix,

**B**maps the five control inputs to joint torques, $u=[u2\u2026u6]T$ is the set of joint torques, which were modeled as ideal actuators with no losses,

**A**is the Jacobian constraint matrix, and

**λ**is the set of Lagrangian constraints representing GRF acting on the feet. These last two terms in the EOM were dependent on whether the biped was in single or double support. This was because during single support, the biped only had one foot on the ground, so there was one GRF with two components. During double support, the biped had both feet on the ground, so there were two GRF with a total of four components. When simulating the gait, the foot (or feet) in contact with the ground was assumed to not slip or lift up except for the trailing foot at the end of the double support period. The matrix

**A**was found by mathematically ensuring that the foot (or feet) in contact with the ground did not slip or lift up. The constraint equation $Aq\u02d9=0$ ensured that the biped was correctly attached to the ground in the extended coordinate system. The validity of this constraint was later verified by checking that the vertical GRF was positive and that the horizontal GRF was within the cone of friction; otherwise, the step was considered to have failed.

Parameter | Value | Description |
---|---|---|

M_{h} | 53.8 | Hip mass (kg) |

L_{t} | 0.431 | Thigh length (m) |

L_{c,t} | 0.185 | Thigh COM distance (m) |

M_{t} | 10.4 | Thigh mass (kg) |

J_{t} | 0.106 | Thigh moment of inertia (kg·m^{2}) |

L_{s} | 0.433 | Shank length (m) |

L_{c,s} | 0.177 | Shank COM distance (m) |

M_{s} | 4.07 | Shank mass (kg) |

J_{s} | 0.175 | Shank moment of inertia (kg·m^{2}) |

R | 0.300 | Foot radius (m) |

f_{y} | 0.075 | Vertical foot COM distance (m) |

f_{x} | 0.075 | Horizontal foot COM distance (m) |

f_{c,x} | 0.075 | Foot rotation distance (m) |

M_{f} | 2.00 | Foot mass (kg) |

J_{f} | 0.100 | Foot moment of inertia (kg·m^{2}) |

k_{p} | 100 | Proportional control gain |

k_{d} | 10.0 | Derivative control gain |

Parameter | Value | Description |
---|---|---|

M_{h} | 53.8 | Hip mass (kg) |

L_{t} | 0.431 | Thigh length (m) |

L_{c,t} | 0.185 | Thigh COM distance (m) |

M_{t} | 10.4 | Thigh mass (kg) |

J_{t} | 0.106 | Thigh moment of inertia (kg·m^{2}) |

L_{s} | 0.433 | Shank length (m) |

L_{c,s} | 0.177 | Shank COM distance (m) |

M_{s} | 4.07 | Shank mass (kg) |

J_{s} | 0.175 | Shank moment of inertia (kg·m^{2}) |

R | 0.300 | Foot radius (m) |

f_{y} | 0.075 | Vertical foot COM distance (m) |

f_{x} | 0.075 | Horizontal foot COM distance (m) |

f_{c,x} | 0.075 | Foot rotation distance (m) |

M_{f} | 2.00 | Foot mass (kg) |

J_{f} | 0.100 | Foot moment of inertia (kg·m^{2}) |

k_{p} | 100 | Proportional control gain |

k_{d} | 10.0 | Derivative control gain |

Note: The values were the same for both legs. Here, COM indicates the center of mass.

*F*

_{n}and

*F*

_{t}are the normal and tangential components of the GRF on one foot,

*z*

_{n}is the vertical distance of the bottom of the foot below the ground,

*z*

_{t}is the horizontal distance between the foot and where the foot made contact with the ground (accounting for any foot roll),

*k*

_{n}and

*k*

_{t}are the vertical and horizontal spring stiffnesses,

*c*

_{n}and

*c*

_{t}are the vertical and horizontal damping coefficients, and

*N*

_{k}and

*N*

_{c}are the coefficients characterizing the form of the nonlinear spring damper system. Note that

*z*

_{n}and

*z*

_{t}are functions of

**q**. The parameters for the compliant ground were chosen such that it behaved similarly to rigid ground most of the time (Table 2).

Parameter | Value | Description |
---|---|---|

k_{n} | 1 × 10^{3} | Vertical spring stiffness (N/m) |

k_{t} | 1 × 10^{2} | Horizontal spring stiffness (N/m) |

c_{n} | 1 × 10^{4} | Vertical damping (Ns/m) |

c_{t} | 1 × 10^{4} | Horizontal damping (Ns/m) |

N_{k} | 1.5 | Nonlinear stiffness coefficient |

N_{c} | 0 | Nonlinear damping coefficient |

Parameter | Value | Description |
---|---|---|

k_{n} | 1 × 10^{3} | Vertical spring stiffness (N/m) |

k_{t} | 1 × 10^{2} | Horizontal spring stiffness (N/m) |

c_{n} | 1 × 10^{4} | Vertical damping (Ns/m) |

c_{t} | 1 × 10^{4} | Horizontal damping (Ns/m) |

N_{k} | 1.5 | Nonlinear stiffness coefficient |

N_{c} | 0 | Nonlinear damping coefficient |

Note: The values were constant for all simulations.

A full step consisted of four parts—a single support period, an instantaneous smooth transition to double support, a double support period, and an instantaneous smooth transition to single support. Both the single and double support periods were modeled with Eq. (1). The double support period can either be instantaneous [7] or finite time. The transition to double support always occurred when the swing foot contacted the ground. During this transition, the coordinates were relabeled so that the same set of angles always referred to the stance and swing legs. The transition to single support always began at the end of the double support period. For the instantaneous double support model, this occurred immediately after the double support period. For the finite-time double support model, the transition occurred when the vertical GRF for the trailing leg equaled 0. Both the transition to single support and the transition to double support were smooth and instantaneous. They were modeled as algebraic mappings—either the identity matrix *I* for the transition to single support, or a relabeling matrix, *R*, where *RR* = *I* for the transition to double support.

## 3 Control

Both an instantaneous impact with no double support controller and a finite-time double support controller were examined, and the following sections will derive each controller and outline the differences between them.

### 3.1 Single Support.

*θ*[5]:

*θ*is the linearized progression of the hip.

*θ*was then normalized to lie between 0 and 1 for a nominal single support period.

*θ*

^{+}and

*θ*

^{−}are the values of

*θ*at the beginning and end of the nominal single support period, respectively.

The following assumptions must hold during the single support period to ensure that the gait was valid:

S1. The swing leg began behind the hip and ended in front of the hip;

S2. the single support phase ended when the swing foot made contact with the ground; and

S3. the phase variable was strictly monotonic and uncontrolled.

**h**is the desired joint trajectories, given as a function of step progression. To drive the output to zero, the output function was differentiated twice, and the EOM (1) was substituted into the equation, resulting in

_{d}**v**is a stabilizing controller such as $v=kpy+kvy\u02d9$ (a PD controller) and solve (6) for

**u**. This gave

*λ** is the GRF assuming a rigid ground. This assumption was made to reduce the numerical stiffness of the system for simulation. The assumption that the ground was rigid was done with the constraint equation $Aq\u02d9=0$, which ensured that the biped was correctly attached to a rigid ground in the extended coordinate system. To use this constraint equation, it was first differentiated once, giving

**u**. These joint torques were then used along with the compliant GRF,

*λ*from Eq. (2), to find the joint acceleration using Eq. (1).

### 3.2 Instantaneous Double Support Model.

**A**is given in Sec. 2 assuming GRF on only the front foot. The velocity after impact $q\u02d9+$ and the impulse on the foot

**f**were found by solving (9) and (10) to obtain

_{λ}### 3.3 Finite-Time Double Support Controller.

For the next scenario, the double support period was finite time and was an extension of the controller given in Ref. [34]. As with the single support controller, the finite-time double support controller assumed that the compliant ground was rigid for the purpose of finding joint torque. With this fixed-ground assumption, the controller behaved as if the biped was overactuated because the feet cannot move independently. Thus, the biped effectively only has four DOF during double support, so attempting to track five independent joint trajectories generally results in incompatible prescribed motion. Because of this, the output function could only define the trajectory of four DOF independently. The remaining two DOF were defined by the assumption that the feet neither slid or lifted up, other than to end the double support period. Given that there were five actuators and only four independent coordinates, the equations could be manipulated to minimize the norm of **u**, thereby reducing energy expenditure. This section derives the time-based double support controller.

*t*is the current time and

*t*

_{f}is the planned duration of the double support period, defined a priori. The time

*t*was always set to 0 at the beginning of double support.

**u**, it could not be used directly because

*λ** was unknown. Finding the solution would have been straightforward if we wanted to minimize the norm of all of the unknowns. However, we wished to minimize only the norm of

**u**, so an equation for

**u**without any unknowns was found. To do so, we substituted Eq. (1) into Eq. (8) and solved for

*λ**

**u**. The set of joint torques

**u**were not constrained to be continuous across phase transitions. To simulate the system,

*λ*was found using Eq. (2) and both

*λ*and

**u**were then substituted back into Eq. (1).

#### Phase-Based Finite-Time Double Support Controller.

An alternative option was a phase-based double support controller [34]. In contrast to the time-based finite-time double support controller, this controller parameterizes the progression of the biped through the double support period independently from time. Parameterizing the gait this way improves the robustness of gait when implemented during the single support period [12]. As discussed in Ref. [34], using a phase variable during double support necessitates the control of joint velocities instead of joint positions, as was done with the other controllers in this work.

While it was theoretically possible to implement this type of controller, finding a set of desired joint velocity trajectories was prohibitively difficult. After adding compliant ground, we were unable to find a successful gait via either hand-tuning or optimization without also changing the ground parameters. Any gaits we found had invalid GRF which forced the feet to lift up at the beginning of double support or to slip. Because of these challenges with the phase-based controller, the following results only compare a time-based finite-time double support controller with an instantaneous double support model.

### 3.4 Adaptive Controller.

During double support, the biped became prone to slipping [34]. This was due to the fact that both feet were in contact with the ground and any actuation could easily cause the feet to move antagonistically. Additionally, any tracking error at the beginning of double support would cause the controller to force the feet to slip to correct the error. Therefore, an additional controller was used to detect when the feet were about to slip and adjust the torques in order to obtain valid GRF and prevent slipping. However, by using a compliant ground model (2), the GRF were a function of the joint positions and velocities–which the controller was unable to directly affect. Thus, the controller was unable to correct slipping instantaneously and needed to look ahead to prevent slipping before it occurred.

*t*is the look-ahead time-step, the subscript

_{0}indicates the current value, and the subscript

_{f}indicates the future value given the current joint torque

**u**

_{0}. Here, Δ

*t*= 0.0001

*s*and was chosen through hand tuning to find a balance between simulation speed and ability to prevent slipping. The future GRF

*λ*

_{f}were then calculated using

**q**

_{f}and $q\u02d9f$ in Eq. (2) and checked to make sure that they were valid, i.e., neither foot was about to slip nor lift up. If

*λ*

_{f}was valid for both feet, the current value of

**u**

_{0}as calculated via Eq. (17) was used. If

*λ*

_{f}was not valid, the desired future GRF

*λ*

_{d}were calculated for both feet, as shown in Fig. 2. This was done by finding the closest vertical and horizontal force pair that were valid in order to minimize the change necessary to prevent slipping. In cases where only one foot had invalid

*λ*

_{f},

*λ*

_{d}=

*λ*

_{f}for the foot with valid

*λ*

_{f}. To find the new torques

**u**

_{d}, Eq. (2) was first rewritten to emphasize the dependence on foot velocity.

**F**and

_{1}**F**are

_{2}_{L}refers to the leading foot and

_{T}refers to the trailing foot. Equation (19) was solved for $z\u02d9d$, yielding $z\u02d9d=F2\u22121(qf)(\lambda d\u2212F1(qf))$. The foot velocity was linearly related to the joint velocity via

**u**

_{d}that minimized the difference from the old joint torques. This minimized the deviation from the desired motion and was equivalent to minimizing the difference between the foot velocities in Eq. (20) to get

**u**

_{d}and

**u**

_{0}are the desired joint torque and the current joint torque, respectively. Substituting these into Eq. (21) leads to the following equation which can then be simplified. This was then solved for

**u**

_{d}to get

## 4 Simulation Generation

Once the controllers for the single and double support periods were developed, simulations were created to evaluate if a finite-time double support period enhanced stability. To do so, gaits were found via optimization, then perturbation testing was performed.

### 4.1 Optimizing Gait.

For all simulations, the joint angle trajectories were parameterized by Bézier polynomials with order 5 for single support and order 4 for double support. When a finite-time double support controller is used, the gait is defined by two Bézier polynomials—one for the double support period and one for the single support period—defined such that the desired positions and velocities were continuous between phases. When the instantaneous double support model is used, only one Bézier polynomial is required to define the gait. For the single support period, all actuated joints, *q*_{2} · · · *q*_{6} were tracked using Eq. (5). For the finite-time double support period, the knee and ankle joints *q*_{3} · · · *q*_{6} were tracked and controlled using Eq. (13). Six gaits were found for each double support condition spanning a range of speeds from 0.8 m/s to 1.2 m/s (Table 3, Fig. 3). In some cases, multiple gaits were found for a given speed to evaluate the fall risk sensitivity on the Bézier polynomial choice.

Parameter | Instantaneous | Finite-time |
---|---|---|

Gait 1 (v ≈ 0.8m/s) | ||

Gait speed (m/s) | 0.800 | 0.807 |

Step length (m) | 1.053 | 0.973 |

Step time (s) | 1.316 | 1.205 |

f | 0.208 | 0.377 |

Gait 2 (v ≈ 0.8m/s) | ||

Gait speed (m/s) | 0.783 | 0.789 |

Step length (m) | 1.052 | 0.985 |

Step time (s) | 1.344 | 1.249 |

f | 0.197 | 0.406 |

Gait 3 (v ≈ 0.9m/s) | ||

Gait speed (m/s) | 0.905 | 0.876 |

Step length (m) | 1.041 | 0.969 |

Step time (s) | 1.151 | 1.106 |

f | 0.204 | 0.469 |

Gait 4 (v ≈ 1.0m/s) | ||

Gait speed (m/s) | 1.001 | 0.979 |

Step length (m) | 1.039 | 0.974 |

Step time (s) | 1.038 | 0.995 |

f | 0.222 | 0.478 |

Gait 5 (v ≈ 1.1m/s) | ||

Gait speed (m/s) | 1.099 | 1.100 |

Step length (m) | 1.038 | 0.979 |

Step time (s) | 0.945 | 0.890 |

f | 0.197 | 0.519 |

Gait 6 (v ≈ 1.2m/s) | ||

Gait speed (m/s) | 1.200 | 1.132 |

Step length (m) | 1.024 | 0.949 |

Step time (s) | 0.853 | 0.838 |

f | 0.246 | 0.766 |

Parameter | Instantaneous | Finite-time |
---|---|---|

Gait 1 (v ≈ 0.8m/s) | ||

Gait speed (m/s) | 0.800 | 0.807 |

Step length (m) | 1.053 | 0.973 |

Step time (s) | 1.316 | 1.205 |

f | 0.208 | 0.377 |

Gait 2 (v ≈ 0.8m/s) | ||

Gait speed (m/s) | 0.783 | 0.789 |

Step length (m) | 1.052 | 0.985 |

Step time (s) | 1.344 | 1.249 |

f | 0.197 | 0.406 |

Gait 3 (v ≈ 0.9m/s) | ||

Gait speed (m/s) | 0.905 | 0.876 |

Step length (m) | 1.041 | 0.969 |

Step time (s) | 1.151 | 1.106 |

f | 0.204 | 0.469 |

Gait 4 (v ≈ 1.0m/s) | ||

Gait speed (m/s) | 1.001 | 0.979 |

Step length (m) | 1.039 | 0.974 |

Step time (s) | 1.038 | 0.995 |

f | 0.222 | 0.478 |

Gait 5 (v ≈ 1.1m/s) | ||

Gait speed (m/s) | 1.099 | 1.100 |

Step length (m) | 1.038 | 0.979 |

Step time (s) | 0.945 | 0.890 |

f | 0.197 | 0.519 |

Gait 6 (v ≈ 1.2m/s) | ||

Gait speed (m/s) | 1.200 | 1.132 |

Step length (m) | 1.024 | 0.949 |

Step time (s) | 0.853 | 0.838 |

f | 0.246 | 0.766 |

Note: Here, *f*_{obj} is approximately the non-dimensional energy consumption of the gait.

*M*is the mass of the biped,

*g*is the gravitational constant,

*l*is the step length,

*T*is the total step time, and

*k*is the joint number as defined in Sec. 2. To implement the constraints, exponential barrier functions were used [51]

*W*

_{k}is the weight and

*e*

_{k}is the constraint violation for the for the

*k*th barrier function. These functions were added to the objective function to penalize constraint violations. Adding the constraints as barrier functions allowed the initial guess for the optimization to not fully satisfy the constraints but still be driven towards a valid, optimal gait. Multiple optimizations were run with increasing barrier function weights in order to find a valid gait while decreasing the objective function. At the end of the optimization, the barrier functions were approximately zero, indicating that there were no constrain violations. The primary constraints were that the GRF were valid (no slipping and no flying) and that the gait was periodic (the positions and velocities at the beginning of the step were equal to those at the beginning of the following step) [5]. To allow comparisons between gaits, the speed and step length were constrained. Additional constraints, such as limiting joint angles to normal human motion prevented the optimization from exploiting the objective function. This optimization was performed without the use of the adaptive controller (24).

To find the Bézier polynomials for the finite-time double support model, simulated annealing was used to find gaits at approximately 0.8 m/s (gait 1), 1.0 m/s (gait 4), and 1.2 m/s (gait 6). An initial, hand-tuned Bézier polynomial was used as the starting point for the gait at approximately 1.0 m/s. This optimized Bézier polynomial was then used as the starting point for the optimizations to find gaits 1 and 6. To compare the controllers, the gaits should be as similar as possible. To help ensure this, the optimal gaits for the finite-time double support model were used as the initial point for the instantaneous double support model optimization. The finite-time double support gait was simulated for one step to determine the joint angle trajectories over the entire step. These trajectories were then parameterized in the phase domain using the single support phase variable (3). This resulted in usable gaits for the instantaneous double support controller, which were then optimized using simulated annealing in order to minimize the objective function (25) and meet the step constraints. To determine how sensitive the stability of each controller was to the specific gait, three additional gaits were generated using a gradient descent algorithm. These were found by starting with an average speed gait of 1.0 m/s (gait 4) for each controller and optimizing the gait while slowly reducing or increasing the constrained walking speed. By doing this, we found gaits at approximately 0.9 m/s (gait 3), 0.8 m/s (gait 2), and 1.1 m/s (gait 5).

In total, six valid gaits were found for each controller. The structure of a step was fundamentally different for the instantaneous double support model compared with the finite-time double support model (Fig. 4). Primarily, during a finite-time double support period, the joints are coordinated in order to reach the desired hip velocity at the beginning of single support. In contrast, the instantaneous double support period requires using the end of the single support period to modulate hip velocity in preparation for the next single support period. As a result, we could not match both the kinematic and spatio-temporal characteristics of the gaits. To allow the most direct comparison between different controllers, the spatio-temporal characteristics were matched while the kinematics were different. Despite the differences in the joint angles, step length and walking speed were very similar for all speed-matched scenarios (Table 3).

### 4.2 Perturbation Testing.

In order to determine the robustness of these controllers to disturbances, perturbations were applied to the biped during simulation. The system was metastable, meaning it will eventually, but not quickly, fail when experiencing small, random perturbations. Because of this, it was analyzed as a discrete-time Markov chain [45]. This technique, as outlined below, created a deterministic state-transition mesh using known perturbations. This mesh was then used to find the Markov chain from the nominal gait to the failure state (slipping or falling) when the distribution of random perturbations was known.

*s*∈

*S*

^{d}, where

*S*

^{d}is a discrete set of perturbations, was applied at a specified point in the gait cycle. The applied perturbation and resulting state were then recorded and the new state was added to the state-transition mesh. From each new point in the state-transition mesh, the biped was simulated with each perturbation

*s*∈

*S*

^{d}. Again, the applied perturbation and resulting state were recorded and the new state was added to the state-transition mesh if it was not already in the mesh. To determine if a given state was already in the mesh, the normalized Euclidean distance from the new state,

*p*, to each state in the mesh,

*m*∈

*M*was calculated using

*r*

_{i}was the standard deviation of all

*m*

_{i}elements. If this distance was greater than the threshold value 1, then the new state was added to the mesh. Once each state in the state-transition mesh had been simulated with the perturbation set and no new states were found, the state-transition mesh was complete. This state-transition mesh can be thought of as a deterministic Markov chain (

*T*

^{d}), which includes every state the biped may experience, including the failure state, as a result of any perturbation

*s*∈

*S*and any starting state.

*T*

^{d}was determined,

*S*

^{s}was defined as a stochastic distribution of perturbations based on the discrete perturbation set

*S*

^{d}. Then the (stochastic) Markov chain (

*T*

^{s}) was determined by assigning a probability for each perturbation

*s*∈

*S*

^{d}to

*T*

^{d}. Given the initial state, this Markov chain

*T*

^{s}now gives the probability of ending up at any state due to a random perturbation. The eigenvalues of

*T*

^{s}were used to approximate the mean first passage time (MFPT), which was the expected number of steps the biped will take given random perturbations before failing. This was a measure of the robustness of the biped and controller. The largest eigenvalue,

*λ*

_{1}= 1, was associated with the failure state. The second largest eigenvalue,

*λ*

_{2}, was associated with the metastable state, and its association with MFPT was

In this work, a comprehensive set of perturbations were tested. The perturbations simulated a horizontal push and were implemented in simulation using a horizontal impulse applied to the hip at a given time point during the gait. The three perturbation points were (1) just before the double support period, (2) just before the single support period, and (3) halfway through the single support period. For the instantaneous double support period, perturbations (1) and (2) occurred immediately before and after the impact mapping (11), respectively. The discrete set of perturbations over which the biped was tested was *S*^{d} = [−0.2, 0.2] m/s with a 0.002 m/s spacing. Three different normal stochastic distributions were used for testing—low variance with $Ss\u223cN(0,(0.01/6)2)$, medium variance with $Ss\u223cN(0,(0.01/3)2)$, and high variance with $Ss\u223cN(0,(0.02/3)2)$. All gaits and both double support models were tested. The adaptive controller was used with the finite-time double support controller during perturbation testing. A separate *T*^{s} and therefore MFPT was found for each perturbation point, walking speed, stochastic distribution, and double support model combination.

## 5 Results and Discussion

In general, the objective function cost increased with increasing speed and with a finite-time double support period (Table 3). However, for a given walking speed and double support model, there seems to be a tradeoff between gait stability and objective function cost (Tables 3,4). This is apparent when comparing gaits 1 and 2. For both the finite-time and instantaneous double support models walking at *v* ≈ 0.8 m/s, the more stable gait (gait 1 for the instantaneous double support model and gait 2 for the finite-time double support model) had a higher objective function cost than the less stable gait. Further supporting the trade-off, both objective function cost and stability generally increased with increasing speed. The increase in stability may be due to the fact that as the walking speed increases, a given velocity perturbation magnitude shrinks in relation to the velocity of the biped. However, this tradeoff between objective function cost and gait stability was not explored in depth.

Low variance | Medium variance | High variance | ||||
---|---|---|---|---|---|---|

Perturbation time | Instantaneous | Finite-time | Instantaneous | Finite-time | Instantaneous | Finite-time |

Gait 1 (v ≈ 0.8m/s) | ||||||

DS_{0} | 5.888 × 10^{6} | 1.131 × 10^{4} | 185.1 | 43.35 | 24.95 | 6.526 |

SS_{0} | 5.888 × 10^{6} | 1.048 × 10^{11} | 185.1 | 2.571 × 10^{3} | 24.95 | 20.24 |

SS_{0.5} | 4.174 × 10^{7} | 3.217 × 10^{14} | 2.840 × 10^{7} | 1.298 × 10^{6} | 1.687 × 10^{7} | 157.8 |

Gait 2 (v ≈ 0.8m/s) | ||||||

DS_{0} | 292.4 | 3.336 × 10^{14} | 43.99 | 2.545 × 10^{4} | 21.53 | 40.93 |

SS_{0} | 295.5 | 1.321 × 10^{8} | 44.01 | 449.0 | 21.54 | 13.55 |

SS_{0.5} | 6.719 × 10^{9} | 9.007 × 10^{14} | 1.137 × 10^{8} | 8.188 × 10^{14} | 1.903 × 10^{3} | 8.188 × 10^{14} |

Gait 3 (v ≈ 0.9m/s) | ||||||

DS_{0} | 2.613 × 10^{4} | 3.872 × 10^{11} | 154.3 | 3.655 × 10^{3} | 34.21 | 21.56 |

SS_{0} | 1.637 × 10^{6} | 3.853 × 10^{10} | 153.0 | 2.015 × 10^{3} | 34.45 | 20.30 |

SS_{0.5} | 4.201 × 10^{7} | 3.217 × 10^{14} | 9.037 × 10^{10} | 1.126 × 10^{15} | 1.180 × 10^{4} | 2.002 × 10^{14} |

Gait 4 (v ≈ 1.0m/s) | ||||||

DS_{0} | 3.383 × 10^{8} | 1.935 × 10^{12} | 472.7 | 5.275 × 10^{3} | 54.74 | 25.74 |

SS_{0} | 1.586 × 10^{8} | 2.002 × 10^{14} | 462.5 | 2.859 × 10^{6} | 54.44 | 166.5 |

SS_{0.5} | 5.759 × 10^{4} | 6.434 × 10^{14} | 4.403 × 10^{11} | 6.434 × 10^{14} | 2.503 × 10^{4} | 3.002 × 10^{14} |

Gait 5 (v ≈ 1.1m/s) | ||||||

DS_{0} | 1.580 × 10^{14} | 2.824 × 10^{13} | 6.587 × 10^{6} | 1.083 × 10^{4} | 370.3 | 27.54 |

SS_{0} | 1.580 × 10^{14} | 6.344 × 10^{6} | 6.587 × 10^{6} | 194.1 | 370.3 | 7.604 |

SS_{0.5} | 3.464 × 10^{14} | 3.753 × 10^{14} | 3.753 × 10^{14} | 6.397 × 10^{4} | 2.502 × 10^{14} | 55.31 |

Gait 6 (v ≈ 1.2m/s) | ||||||

DS_{0} | 2.537 × 10^{13} | 1.287 × 10^{15} | 6.367 × 10^{4} | 6.770 × 10^{4} | 208.6 | 54.12 |

SS_{0} | 3.264 × 10^{13} | 10.79 | 6.525 × 10^{4} | 3.847 | 209.2 | 2.458 |

SS_{0.5} | 4.094 × 10^{14} | 46.68 | 5.630 × 10^{14} | 6.499 | 3.753 × 10^{14} | 3.122 |

Low variance | Medium variance | High variance | ||||
---|---|---|---|---|---|---|

Perturbation time | Instantaneous | Finite-time | Instantaneous | Finite-time | Instantaneous | Finite-time |

Gait 1 (v ≈ 0.8m/s) | ||||||

DS_{0} | 5.888 × 10^{6} | 1.131 × 10^{4} | 185.1 | 43.35 | 24.95 | 6.526 |

SS_{0} | 5.888 × 10^{6} | 1.048 × 10^{11} | 185.1 | 2.571 × 10^{3} | 24.95 | 20.24 |

SS_{0.5} | 4.174 × 10^{7} | 3.217 × 10^{14} | 2.840 × 10^{7} | 1.298 × 10^{6} | 1.687 × 10^{7} | 157.8 |

Gait 2 (v ≈ 0.8m/s) | ||||||

DS_{0} | 292.4 | 3.336 × 10^{14} | 43.99 | 2.545 × 10^{4} | 21.53 | 40.93 |

SS_{0} | 295.5 | 1.321 × 10^{8} | 44.01 | 449.0 | 21.54 | 13.55 |

SS_{0.5} | 6.719 × 10^{9} | 9.007 × 10^{14} | 1.137 × 10^{8} | 8.188 × 10^{14} | 1.903 × 10^{3} | 8.188 × 10^{14} |

Gait 3 (v ≈ 0.9m/s) | ||||||

DS_{0} | 2.613 × 10^{4} | 3.872 × 10^{11} | 154.3 | 3.655 × 10^{3} | 34.21 | 21.56 |

SS_{0} | 1.637 × 10^{6} | 3.853 × 10^{10} | 153.0 | 2.015 × 10^{3} | 34.45 | 20.30 |

SS_{0.5} | 4.201 × 10^{7} | 3.217 × 10^{14} | 9.037 × 10^{10} | 1.126 × 10^{15} | 1.180 × 10^{4} | 2.002 × 10^{14} |

Gait 4 (v ≈ 1.0m/s) | ||||||

DS_{0} | 3.383 × 10^{8} | 1.935 × 10^{12} | 472.7 | 5.275 × 10^{3} | 54.74 | 25.74 |

SS_{0} | 1.586 × 10^{8} | 2.002 × 10^{14} | 462.5 | 2.859 × 10^{6} | 54.44 | 166.5 |

SS_{0.5} | 5.759 × 10^{4} | 6.434 × 10^{14} | 4.403 × 10^{11} | 6.434 × 10^{14} | 2.503 × 10^{4} | 3.002 × 10^{14} |

Gait 5 (v ≈ 1.1m/s) | ||||||

DS_{0} | 1.580 × 10^{14} | 2.824 × 10^{13} | 6.587 × 10^{6} | 1.083 × 10^{4} | 370.3 | 27.54 |

SS_{0} | 1.580 × 10^{14} | 6.344 × 10^{6} | 6.587 × 10^{6} | 194.1 | 370.3 | 7.604 |

SS_{0.5} | 3.464 × 10^{14} | 3.753 × 10^{14} | 3.753 × 10^{14} | 6.397 × 10^{4} | 2.502 × 10^{14} | 55.31 |

Gait 6 (v ≈ 1.2m/s) | ||||||

DS_{0} | 2.537 × 10^{13} | 1.287 × 10^{15} | 6.367 × 10^{4} | 6.770 × 10^{4} | 208.6 | 54.12 |

SS_{0} | 3.264 × 10^{13} | 10.79 | 6.525 × 10^{4} | 3.847 | 209.2 | 2.458 |

SS_{0.5} | 4.094 × 10^{14} | 46.68 | 5.630 × 10^{14} | 6.499 | 3.753 × 10^{14} | 3.122 |

Note: The finite-time double support controller used the adaptive controller. DS_{0}, SS_{0}, and SS_{0.5} indicate that the perturbation is applied at the beginning of double support, beginning of single support, or halfway through the single support period, respectively.

In three out of the six gaits tested, the finite-time double support model generally had greater MFPT than the instantaneous double support model (gaits 2-4), while the converse was true for the other gaits (gaits 1, 5, and 6, Table 4, Fig. 5). When counting individual conditions, a finite-time double support period had a greater MFPT in 29 out of the 54 cases. There was considerable variance and overlap in the MFPT between controller types. The instantaneous double support gaits had a MFPT range from ∼10 to ∼10^{14} with a median of 6.063 × 10^{4} steps, while the finite-time double support gaits had an almost identical MFPT range of ∼1 to ∼10^{15} and a median of 1.107 × 10^{4} steps. Thus, different gaits can have different stability, and a finite-time double support controller does not always help. Unfortunately, there were no obvious kinematic or kinetic features that could identify which controller was more stable which could make it difficult to optimize a gait for stability. Instead, it appears that there is some non-obvious aspect(s) of gait that largely govern the inherent stability of a gait, rather than obvious features such as the presence of a finite-time double support period.

Nevertheless, as expected, increasing the variance of the perturbations decreased the MFPT, and more stable gaits generally remained more stable as the distribution changed (Fig. 5). For low variance perturbations, the median MFPT was 7.167 × 10^{10} steps, for medium variance perturbations, the median MFPT was 1.814 × 10^{4} steps, and for high variance perturbations, the median MFPT was 54.28 steps. Similar to the MFPT ranges for controller types, there was considerable overlap in the MFPT ranges for each perturbation distribution, with all three perturbation conditions yielding MFPT ranges from ∼1 to ∼10^{15}. This appears to be partly driven by differences in the inherent stability of each gait and partly driven by the effect of perturbation timing. The point in the gait at which the perturbation was applied affected the likelihood that the biped would slip or fall, in some cases by many orders of magnitude. In general, gait stability increased as the perturbation time became later (true for $76%$ of comparisons). For perturbations at the beginning of double support (DS_{0}), the median MFPT was 2.064 × 10^{3} steps. This decreased for perturbations at the beginning of single support (SS_{0}) to a median MFPT of 409.7 steps. Gaits had a substantially higher MFPT when the perturbation was applied in the middle of the single support period (SS_{0.5}), with the median MFPT rising to 2.653 × 10^{11} steps. Thus, the biped was generally the most stable when perturbations were introduced in the middle of the single support period regardless of the controller type.

The timing also affected if the biped was more likely to fail due to forward or backward perturbations. When applied at the beginning of the single support period (SS_{0}), backward perturbations caused the most gait failures in all cases. This was because a backward perturbation at this point in the gait cycle robbed the biped of the necessary forward momentum to complete a step, causing the biped to fall over backward. This was also the case for perturbations at the beginning of the double support period (DS_{0}) with an instantaneous double support period. Because the perturbation and the instantaneous double support period (Sec. 3.2) are both impacts, there was little difference between perturbations just before and after the double support period. Thus, stability between these two perturbation points was very similar. On the other hand, when perturbations were applied at the beginning of the double support period with a finite time double support period, forward perturbations contributed to most to gait failures at all speeds. This may be because forward perturbations sped the biped up just before it needed to decelerate and redirect the center of mass (COM) [52]. This increased the required horizontal GRF, which in turn increased slipping. When the perturbation was applied in the middle of the single support period (SS_{0.5}), the direction of the perturbation had little effect on when the biped failed.

In general, when the instantaneous double support model was used, the gait failed due to the biped falling over. However, when the finite-time double support controller was used, the gaits failed due to the biped slipping, usually during double support. Although we considered both of these conditions to be failures causing the gait to end, it may be possible to recover from slipping. This was done to a limited extent with the adaptive controller. The adaptive controller was able to limit slipping and greatly increase the MFPT in all perturbation conditions (Table 5). However, this adaptive controller is limited. As derived in Sec. 3.4, the adaptive controller attempts to predict and prevent future slipping, meaning it cannot correct for any slipping that occurs at the very beginning of the double support period. Because of this, if the initial conditions of the double support period cause slipping, the adaptive controller is not able to prevent it. It may be possible to further augment the double support controller to correct for slip and return the biped to a non-slipping state once slip starts [53]. This would allow the finite-time double support controller to walk for longer than the MFPT in Table 4 suggests.

Perturbation time | With adaptive | Without adaptive |
---|---|---|

Gait 1 (v ≈ 0.8m/s) | ||

DS_{0} | 43.35 | 18.46 |

SS_{0} | 2.571 × 10^{3} | 2.136 |

SS_{0.5} | 1.298 × 10^{6} | 2.425 × 10^{3} |

Perturbation time | With adaptive | Without adaptive |
---|---|---|

Gait 1 (v ≈ 0.8m/s) | ||

DS_{0} | 43.35 | 18.46 |

SS_{0} | 2.571 × 10^{3} | 2.136 |

SS_{0.5} | 1.298 × 10^{6} | 2.425 × 10^{3} |

Note: These results are typical and show the benefit of including an adaptive controller.

In summary, a finite-time double support period does not always increase disturbance rejection capabilities as previously assumed. Nevertheless, it appears that a finite-time double support period may be useful for bipedal gait because it changes how a bipedal gait fails—from falling over to slipping—and because it can sometimes increase the stability of the gait. It is not clear however, how to fully take advantage of the finite-time double support period to increase the stability in all gaits.^{2}

## Footnote

An example bipedal gait using the time-based finite-time double support controller is provided as an additional material at https://youtu.be/dOfmu82KWwM.

## Acknowledgment

This work was supported by the NSF under award 1727540.

## Conflict of Interest

There are no conflicts of interest.

## Data Availability Statement

The datasets generated and supporting the findings of this article are obtainable from the corresponding author upon reasonable request.