Keywords

1 Introduction

In this paper, we apply the trajectory planning and control methods derived in [12, 13] to the Flexible Linear Inverted Pendulum (FLIP) model for bipedal locomotion introduced in [19]. The result is a computationally efficient method for planning bounded trajectories using a model that is more realistic than the Linear Inverted Pendulum (LIP) model used by many researchers (e.g., [10]) in the past.

Several models of bipedal locomotion have been introduced that are intended to capture dynamic aspects that are not present in the LIP model. Pratt et al. [16] include a flywheel to model the dynamics of a rotating body. In [1, 15], the dynamics of the swinging leg are taken into account by including extra masses in the model. Dau et al. [4] propose a specific extension to the LIP model by a function that can be utilized to model various dynamical issues.

While multiple-mass models are an indisputable improvement, another important dynamical aspect in robotics is compliance, elasticity and flexibility. These can arise as a desired compliance, as in the COMAN [19] and TORO [7] humanoids. But elasticity can also be an undesired property of cost-effective robots like Nao by Aldebaran Robotics. While compliance is a reasonable attribute for a humanoid robot expected to operate in an environment with humans, the necessity of light-weight and cost-effective robots is evident.

Thus, in our previous paper [19] we presented a novel model called the Flexible Linear Inverted Pendulum model (FLIPM) that includes elasticity and has a proven positive impact on walking stability. In this paper we further investigate this model and give a new interpretation as an interconnected system of a flexible system and the cart-table model of Kajita et al. [9].

Along with improvements in the modeling, different enhancements or alternative approaches to the preview control of [9] have also been proposed. For example, the combination of an observer with the preview control showed a stabilizing effect in simulation [3] and on a physical robot [2]. It is also possible to include multiple sensor sources [21] and reactive stepping [20] ideas. Model Predictive Control as proposed by Diedam et al. [5] allows also reactive stepping without defining an a-priori reference ZMP.

The novel concept of Capture Point (CP), defined as the point on the floor where the robot has to step in order to come to a full stop, was initially introduced in Pratt et al. [16]. Englsberger et al. [6] applied this concept to a walking algorithm which is the base for Missura and Behnke [14] to include a state estimation.

In this paper we want to exploit the novel FLIP model and generate a stable gait by using the boundedness approach introduced in [12, 13] which provides a certain number of possible advantages. First an analytical solution can be derived, given a desired ZMP trajectory, for the CoM trajectory thus allowing efficient real-time implementations. Moreover this approach can also be seen as an extension of the Capture Point concept with its benefits as the determination of stopping strategies or sudden change of plans.

In Sect. 2 we illustrate the FLIPM and its interpretation as the series interconnection of two sub-systems. This separation allows, in Sect. 3.2, the development of a novel controller. To show a direct application of both the FLIPM and the boundedness approach, we explicitly illustrate the derivation of the state reference trajectories when a piecewise constant desired ZMP is chosen. The necessity of an impulsive control input is also highlighted together with an alternative approach. Experiments finally show the performance of the obtained controller in Sect. 5. Conclusions and future work are then addressed.

2 FLIP Dynamical Model

In this section we first describe the idea behind the Flexible Linear Inverted Pendulum Model (FLIPM), and write it as two systems in series. As explained in the introduction, it is intended to model elasticity in various parts of the robot: motors, gears, light-weight links and possible PD controllers, which can be imagined as a spring and a damper. Comparably to LIPM, it is a linear model and thus can still be efficiently applied. Note that it does not model vertical flexibility as height changes would lead to a nonlinear model.

Fig. 1.
figure 1

The cart-table representation of the FLIPM

We begin with the cart-table model proposed by Kajita et al. [9], here extended as in Fig. 1. A massless table stands on the ground with a cart on top at height \(z_h\), with mass \(m_1\) at position \(c_1\). The cart can accelerate itself such that the table stands stably even if the cart is not located above the stand of the table, in which case the Zero Moment Point (ZMP) \(x_\mathrm {zmp}\) is located in the support polygon of the table.

To model the elasticity, we add a second mass \(m_2\ll m_1\) with position \(c_2\), located within the cart. The second mass is connected to mass 1 by a spring-damper mechanism, with spring constant \(k\) and damper constant \(b\), modeling elastic parts of the robot like motors, gears etc. Thus mass 2 models everything that is located before all elastic parts of the robot, and mass 1 everything after the elasticity. In this model, the control input is a force applied to mass 2. In Fig. 1 the acceleration of mass 1 due to the spring and damper is the acceleration achieved by the wheels on the table. While both masses are used in the dynamic model, to simplify calculations the second mass is not included in the ZMP.

The corresponding equations of motion are

$$\begin{aligned} m_1 \ddot{c}_1&= - b(\dot{c}_1 - \dot{c}_2) - k (c_1 - c_2) \end{aligned}$$
(1)
$$\begin{aligned} m_2 \ddot{c}_2&= b(\dot{c}_1 - \dot{c}_2) + k (c_1 - c_2) + u \end{aligned}$$
(2)

and the ZMP (neglecting the contribution of mass 2) is given by

$$\begin{aligned} x_\mathrm {zmp}= c_1 - \frac{z_h}{g}\ddot{c}_1 = c_1 - \frac{1}{\omega _o^2}\ddot{c}_1 \end{aligned}$$
(3)

where \(\omega _o^2 = g/z_h\) (which is the pendulum frequency for the LIP). Computing the overall transfer function from u to \(x_\mathrm {zmp}\) which, after some manipulations, takes on the form

$$\begin{aligned} F(s) = \frac{x_\mathrm {zmp}(s)}{u(s)} = \left( \frac{1- \frac{1}{\omega _o^2} s^2}{s^2}\right) \left( \frac{bs + k}{m_1m_2 s^2 + (m_1 + m_2)(bs + k)}\right) \end{aligned}$$
(4)

it is interesting to recognize the typical cart-table transfer function \(F_\mathrm {ct}(s)\) from the acceleration \(\ddot{c}_1\) and the ZMP

$$\begin{aligned} F_\mathrm {ct}(s) = \frac{x_\mathrm {zmp}(s)}{\ddot{c}_1(s)} = \frac{1- \frac{1}{\omega _o^2} s^2}{s^2} \end{aligned}$$
(5)

and a second transfer function

$$\begin{aligned} F_\mathrm {flex}(s) = \frac{\ddot{c}_1(s)}{u(s)} = \frac{bs + k}{m_1m_2 s^2 + (m_1 + m_2)(bs + k)} \end{aligned}$$
(6)

from the input force u to \(\ddot{c}_1\) which can be thought as the contribution of a flexible system \(\mathcal{S}_\mathrm {flex}\). In the sequel it is important to notice that \(\mathcal{S}_\mathrm {flex}\) is both stable and minimum-phase due to the presence of a stable zero at \(-k/b\). The overall system \(F(s) = F_\mathrm {ct}(s) F_\mathrm {flex}(s)\) can be interpreted as the conceptual series interconnection of the cart-table \(\mathcal{S}_\mathrm {ct}\) and the flexible system \(\mathcal{S}_\mathrm {flex}\) as shown in Fig. 2.

Fig. 2.
figure 2

FLIPM as a series interconnected system (up) and its inverse (down)

If \(m_2 = 0\) the transfer function (4) reduces to \(F_\mathrm {ct}(s)/m_1 \) which is consistent with u being a force while in the classic cart-table the input is an acceleration.

In order to find the same explicit series interconnection in the state space, we make a change of coordinates. We choose the first two components as \(x_1 = c_1\) and \(x_2 = \dot{c}_1\) with

$$\begin{aligned} \dot{x}_1 = x_2 , \qquad \dot{x}_2 = u_1 , \qquad y_1 = x_1 - \frac{1}{\omega _o^2} u_1 \end{aligned}$$

and \(u_1 = \ddot{c}_1\), which leads to the cart-table model \(\mathcal{S}_\mathrm {ct}\) with transfer function \(F_\mathrm {ct}(s)\). The original version of the cart-table [9] had also the acceleration \(\ddot{c}_1\) as a state variable in order to obtain a strictly proper transfer function.

We choose as the two final state components the relative position and velocity

$$\begin{aligned} \begin{pmatrix}x_3 \\ x_4 \end{pmatrix} = \begin{pmatrix}c_2 - c_1 \\ \dot{c}_2 - \dot{c}_1 \end{pmatrix} \end{aligned}$$
(7)

so that we obtain, by setting

$$\begin{aligned} \bar{M} = \frac{1}{m_1} + \frac{1}{m_2} = \frac{m_1 + m_2}{m_1m_2} \end{aligned}$$
(8)

the following state space representation \((A_2, B_2)\) of \(\mathcal{S}_\mathrm {flex}\)

$$\begin{aligned} \begin{pmatrix} \dot{x}_3 \\ \dot{x}_4 \end{pmatrix} = \begin{pmatrix}0 &{} 1 \\ -k\bar{M} &{} -b \bar{M} \end{pmatrix} \begin{pmatrix}x_3 \\ x_4 \end{pmatrix} + \begin{pmatrix}0 \\ 1/m_2 \end{pmatrix} u \end{aligned}$$
(9)

The output matrix \(C_2\), which gives the transfer function \(F_\mathrm {flex}(s)\)

$$\begin{aligned} F_\mathrm {flex}(s) = C_2 (sI - A_2)^{-1}B_2 = C_2 \begin{pmatrix}s &{} -1 \\ k\bar{M} &{} s + b \bar{M} \end{pmatrix}^{-1} \begin{pmatrix}0 \\ 1/m_2 \end{pmatrix} \end{aligned}$$
(10)

and therefore the acceleration \(\ddot{c}_1\) as output \(y_2\), is

$$\begin{aligned} C_2 = \begin{pmatrix} {\displaystyle \frac{k}{m_1}}&{\displaystyle \frac{b}{m_1} } \end{pmatrix} \end{aligned}$$
(11)

The previous series separation allows the direct use of the framework and results of [12, 13] for the \(\mathcal{S}_\mathrm {ct}\) subsystem. The basic idea is illustrated next.

3 Stable Inversion Approach

After briefly recalling the basic idea of [13] for the LIP, we take advantage of the series interconnection previously identified for the FLIPM.

3.1 Stable Inversion for the LIP

For the LIP, the problem consists in finding, for a given desired output ZMP denoted as \(x_\mathrm {zmp}^\mathrm {d}(t)\), the corresponding bounded CoM reference trajectory and feedforward input \(u^\mathrm {d}(t)\) which guarantee exact tracking: if the state is initialized on the bounded state reference trajectory, the cart-table driven by \(u^\mathrm {d}(t)\) will ensure zero output tracking error. This reference state trajectory (CoM state) can then be translated, through inverse kinematics, into a joint reference trajectory to be tracked by the local joint controllers.

Using the framework of [12] we transform an exact tracking problem for the cart-table into a stable inversion one for the LIP, i.e. the inverse of the cart-table system. The LIP is then forced by \(x_\mathrm {zmp}^\mathrm {d}\) and has its generic state trajectories exponentially diverging unless a specific initial state for the unstable part is chosen (the LIP has an unstable pole in \(s = \omega _o\)). These initial conditions which guarantee a bounded state evolution for a given \(x_\mathrm {zmp}^\mathrm {d}\), should verify the so-called boundedness condition (see [13] for further details) which involves only the unstable dynamics of the LIP as in [6, 8, 18].

For the LIP system

$$\begin{aligned} F_{ct}^{-1}(s) = \frac{s^2}{1-\frac{1}{\omega _o^2} s^2} \end{aligned}$$
(12)

the boundedness condition extend the concept of capture point of [16] and, for any given analytical expression of the desired ZMP \(x_\mathrm {zmp}^\mathrm {d}(t)\), we are able to obtain a bounded CoM position trajectory in an analytical closed form (so also the velocity and acceleration have closed form analytical expressions) thus providing a useful tool for real-time implementation.

3.2 Stable Inversion for the FLIPM

For the FLIP model, we seek the bounded reference trajectory for \(c_1\), analogous to finding the CoM trajectory for the LIP. To do so, we extend the approach recalled in Sect. 3.1 to the FLIPM by using the particular series interconnection highlighted in (4): the inverse of a series interconnection is the series (in reverse order) of the single inverse systems and thus we can use all our previous results for the LIP part. In Fig. 2 the overall inverse system is expressed in terms of \(\mathcal{S}_\mathrm {ct}^{-1}\), i.e. the LIP, and \(\mathcal{S}_\mathrm {flex}^{-1}\) which denote the inverse system of respectively \(\mathcal{S}_\mathrm {ct}\) and \(\mathcal{S}_\mathrm {flex}\).

Moreover, being \(\mathcal{S}_\mathrm {flex}\) minimum phase, its inverse \(\mathcal{S}_\mathrm {flex}^{-1}\) is stable. Therefore since the boundedness constraint involves only the unstable dynamics, obtaining a stable inverse for the FLIPM reduces to using the boundedness constraint for the unstable part of the LIP and just inverting \(\mathcal{S}_\mathrm {flex}\). All previous results obtained for the LIP can therefore be extended.

To explicitly derive \(\mathcal{S}_\mathrm {flex}^{-1}\) we rewrite the dynamics of \(\mathcal{S}_\mathrm {flex}\) using a change of coordinates which also highlights the dynamics of the zeros (the zero-dynamics) and thus enables the direct derivation of a reduced order inverse system [17]. Since \(\mathcal{S}_\mathrm {flex}\) has relative degree one - we need to differentiate the output once to make the input appear explicitly - we choose as new coordinates the output \(z = y_2\) and \(\eta = x_3 = c_2 - c_1\)

$$\begin{aligned} \begin{pmatrix}z \\ \eta \end{pmatrix} = \begin{pmatrix} k/m_1 &{} b/m_1\\ 1 &{} 0 \end{pmatrix} \begin{pmatrix}x_3 \\ x_4 \end{pmatrix} \end{aligned}$$
(13)

so that, in these new coordinates, system \(\mathcal{S}_\mathrm {flex}\) becomes

$$\begin{aligned} \dot{z}= & {} \left( \frac{k}{b} - b \bar{M}\right) z - \frac{k^2}{m_1 b}\eta + \frac{b}{m_1m_2} u \end{aligned}$$
(14)
$$\begin{aligned} \dot{\eta }= & {} \frac{m_1}{b} z - \frac{k}{b}\eta \end{aligned}$$
(15)
$$\begin{aligned} y_2= & {} z \end{aligned}$$
(16)

By definition, the dynamics of \(\eta \), when the output is restricted to be identically zero (\(z = 0\)), gives the dynamics of the zeros (one zero at \(-k/b\) for the flexible system as clearly confirmed by the transfer function \(F_\mathrm {flex}(s)\)). The reduced order first order flexible system inverse \(\mathcal{S}_\mathrm {flex}^{-1}\) is then directly obtained as

$$\begin{aligned} \dot{\eta }= & {} - \frac{k}{b}\eta + \frac{m_1}{b} y_2(t) \end{aligned}$$
(17)
$$\begin{aligned} u= & {} \left( \frac{b}{m_1m_2}\right) ^{-1} \left[ \frac{k^2}{ m_1 b}\eta + \dot{y}_2(t) - \left( \frac{k}{b} - b \bar{M}\right) y_2(t) \right] \end{aligned}$$
(18)

where u is solved from (14) and z is taken from (16). Being \(\mathcal{S}_\mathrm {flex}^{-1}\) stable, if we apply the bounded \(y_2^\mathrm {d}(t) = \ddot{c}_1^\mathrm {d}(t)\) obtained from the LIP (see Sect. 3.1 and Fig. 2) as input, the resulting state evolution \(\eta ^\mathrm {d}(t)\) and output \(u^\mathrm {d}(t)\) will be bounded for any initial stateFootnote 1. Note that the output u(t) in (18) depends also on its input derivative \(\dot{y}_2 = \dddot{c}_1\).

Going back to the original system with the new coordinates (13), we can summarize the overall procedure by noting that if the FLIPM is driven by \(u^\mathrm {d}(t)\) and has a state evolving as \((c_1^\mathrm {d}, \dot{c}_1^\mathrm {d}, \eta ^\mathrm {d}, \ddot{c}_1^\mathrm {d})\), then the output will exactly track the desired ZMP \(x_\mathrm {zmp}^\mathrm {d}(t)\). The analytical closed form expression of \(c_1^\mathrm {d}(t)\), for a given \(x_\mathrm {zmp}^\mathrm {d}\), is readily obtained using the boundedness condition of [13]. An example is discussed in the following section.

4 A Carried Out Example: Piecewise Constant ZMP

In order to illustrate the overall approach and its potential, we choose the most demanding reference ZMP trajectory: an instantaneous variation at time T, i.e. \(x_\mathrm {zmp}^\mathrm {d}(t) = u_\mathrm {step}(t - T)\) where \(u_\mathrm {step}(\cdot )\) denotes the Heaviside step function. The boundedness condition applied to the chosen \(x_\mathrm {zmp}^\mathrm {d}(t)\) leads to

$$\begin{aligned} c_1(0) + \frac{\dot{c}_1(0)}{\omega _o} = e^{-\omega _o T} \end{aligned}$$
(19)

which coincides with the Capture Point condition of [16]. A possible corresponding reference trajectory \(c_1^\mathrm {d}\) of the LIP is given byFootnote 2

$$\begin{aligned} c_1^\mathrm {d}(t) = \frac{1}{2}e^{\omega _o(t - T)}\cdot (1 - u_\mathrm {step}(t - T)) + \frac{1}{2}(2 -e^{-\omega _o(t - T)})\cdot u_\mathrm {step}(t - T) \end{aligned}$$
(20)

where the first term shows the anticipatory behavior emphasized in [9]. Note that the resulting desired velocity \(\dot{c}_1^\mathrm {d}\)

$$\begin{aligned} \dot{c}_1^\mathrm {d}(t) = \frac{\omega _o}{2}\left( e^{\omega _o(t - T)} - 2 \sinh (\omega _o(t-T))\cdot u_\mathrm {step}(t - T)\right) \end{aligned}$$
(21)

is still continuousFootnote 3 while the acceleration \(\ddot{c}_1^\mathrm {d}(t)\) is not. We still need to also compute \(\eta ^\mathrm {d}\), but since it is the solution of (17) driven by \(y_2^\mathrm {d} = \ddot{c}_1^\mathrm {d}\),

$$\begin{aligned} \eta ^\mathrm {d} (t) = e^{-k/b t}\eta ^\mathrm {d}(0) + \frac{m_1}{b}\int _0^t e^{-k/b(t-\tau )}\ddot{c}_1^\mathrm {d}(\tau ) \, d\tau \end{aligned}$$
(22)

it can be obtained analytically by substituting \(\ddot{c}_1^\mathrm {d}\) and evaluating the integral.

Finally, in order to compute the feedforward term \(u^\mathrm {d}\) using (18) for the particular chosen desired ZMP, we note that the third derivative of \(c_1^\mathrm {d}\)

$$\begin{aligned} \dddot{c}_1^\mathrm {d}(t) = \frac{\omega _o^3}{2}\left( e^{\omega _o(t - T)} - 2\sinh (\omega _o(t-T))u_\mathrm {step}(t - T) \right) - \omega _o^2 \, \mathrm {Imp}(T) \end{aligned}$$
(23)

is needed and therefore an impulse \( \mathrm {Imp}(T)\) appears in the desired feedforward

$$\begin{aligned} u^\mathrm {d}(t) = \frac{m_2 k^2}{b^2} \eta ^\mathrm {d}(t) - \frac{m_1m_2}{b} \left( \frac{k}{b} - b \bar{M}\right) \ddot{c}_1^\mathrm {d}(t) + \frac{m_1m_2}{b}\dddot{c}_1^\mathrm {d}(t) \end{aligned}$$
(24)

which makes the implementation difficult. From a theoretical point of view, this result is consistent with the FLIPM model: in order to make the ZMP change instantaneously we need an impulsive input. Note that if \(x_\mathrm {zmp}^\mathrm {d}\) were continuous, at this point we would have obtained an analytical result that could be directly implemented, which would be extremely beneficial for real-time applications.

4.1 Approximate Inverse

The presence of the impulse in (24) emanates from the chosen challenging \(x_\mathrm {zmp}^\mathrm {d}\) and from the system \(\mathcal{S}_\mathrm {flex}\) having relative degree one and therefore the need of \(\dot{y}_2\) in (18). A possible way to avoid this derivation is to make a relative degree zero approximation of \(\mathcal{S}_\mathrm {flex}\) by adding a high frequency zero in \(F_\mathrm {flex}(s)\), i.e.

$$\begin{aligned} F_\mathrm {flex}^\mathrm {a}(s) = (1 + \tau s) F_\mathrm {flex}(s) = \frac{(1 + \tau s)(bs + k)}{m_1m_2s^2 + (m_1+m_2)(bs + k)} \end{aligned}$$
(25)

which can be rewritten, after some manipulations, as

$$\begin{aligned} F_\mathrm {flex}^\mathrm {a}(s) = \frac{b \tau }{m_1 m_2} + \frac{\alpha s + \beta }{m_1m_2s^2 + (m_1+m_2)(bs + k)} \end{aligned}$$
(26)

with

$$\begin{aligned} \alpha = \frac{1}{m_1 m_2} \left[ \tau (k - \bar{M} b^2) + b\right] , \quad \beta = \frac{k}{m_1 m_2}( 1 - \bar{M} b \tau ) \end{aligned}$$
(27)

Since only the numerator of the transfer function has changed, we can use the same state Eq. (9) as for \(\mathcal{S}_\mathrm {flex}\), while the output is now given by

$$\begin{aligned} \ddot{c}_1 = \begin{pmatrix} \beta m_2&\alpha m_2 \end{pmatrix} \begin{pmatrix} x_3 \\ x_4 \end{pmatrix} + \frac{b \tau }{m_1 m_2}u = C_a \begin{pmatrix} x_3 \\ x_4 \end{pmatrix} + D_a u \end{aligned}$$
(28)

Being the relative degree 0, the inverse system is readily found as

$$\begin{aligned} \dot{x}_i&= (A_2 - B_2 D_a^{-1}C_a) x_i + B_2 D_a^{-1} \end{aligned}$$
(29)
$$\begin{aligned} u&= - D_a^{-1}C_a x_i + D_a^{-1} \ddot{c}_1 \end{aligned}$$
(30)

with \(x_i = (x_3, x_4)^T\) and \(A_2, B_2\) defined in (9). When the ZMP trajectory is given by a step function, we have avoided the triple derivative of \(c_1^\mathrm {d}\) which introduced the impulse. The choice of the high frequency zero needs to be done consistently with the sampling time and the system parameters.

4.2 Some Interesting Applications

The previous analysis shows that we can obtain closed form expressions for the FLIPM reference state corresponding to a given \(x_\mathrm {zmp}^\mathrm {d}\). The same boundedness framework, however, allows to solve a simultaneous CoM/ZMP problem which allows to solve for both a desired ZMP which satisfies some additional constraints and the corresponding CoM (which for the FLIP refers to \(c_1\)). For example, in the same spirit of the Capture Point, a change of plan or a sudden obstacle could require the humanoid to stop as soon as possible, if possible in one step. This is equivalent to requiring a step recovery from a generic initial state \((c_1(0), \dot{c}_1(0))\). Considering a generic instantaneous step at time T of length \(\alpha \), since the boundedness constraint

$$\begin{aligned} c_1(0) + \frac{\dot{c}_1(0)}{\omega _o} = \alpha e^{-\omega _o T} \end{aligned}$$
(31)

applied to the FLIPM involves only the unstable dynamics of the LIP, we can solve (31) either in the step length \(\alpha \) - as shown next in Sect. 5 - or in the step duration T. While this solution guarantees that, after the step is taken, \(c_1\) converges asymptotically to 0, other interesting choices can also be studied by considering both parameters \(\alpha \) and T to be still determined. We can, for example, add the additional requirement that the humanoid should immediately stop when the step is taken without the asymptotic convergence to the rest upright position. This can be achieved by solving simultaneously

$$\begin{aligned} c_1(0) + \frac{\dot{c}_1(0)}{\omega _o} = \alpha e^{-\omega _o T} \qquad c_1(0) - \frac{\dot{c}_1(0)}{\omega _o} = \alpha e^{\omega _o T} \end{aligned}$$
(32)

where the second condition ensures a deadbeat behavior. Solving in \(\alpha \) and T

$$\begin{aligned} \alpha = \frac{1}{\omega _o}\sqrt{\omega _o^2 c_1^2(0) - \dot{c}_1^2(0)} \qquad T = \frac{1}{2\omega _o}\ln \left( \frac{\omega _o c_1(0) - \dot{c}_1(0)}{\omega _o c_1(0) + \dot{c}_1(0)} \right) \end{aligned}$$
(33)

Analyzing the existence of T leads to interesting considerations.

We envisage to explore and implement, for the FLIPM, this and several other possibilities illustrated in [11] together with a smoother choice of the ZMP desired trajectory as the typical Constant/Cubic/Constant profile used for representing single/double/single support patterns.

5 Experiments

As in [19] we show the superiority of the FLIPM compared to the LIP, we give a comprehensive comparison between the boundedness approach and the preview control w.r.t. the tracking error and execution time. Additionally, we show how the approximate inverse system performs on a system that is hard to control due to the spring-damper-system even in the case of a stopping capture step.

5.1 Dynamic Simulation

To verify that the system is capable of generating a stable gait, we apply it in the rigid body dynamics simulation environment SimRobot that is based on the Open Dynamics Engine. In [19] the Nao is utilized as an example for a robot with elasticities, thus we also utilize a model of it here. As this robot is position controlled, we directly apply \(c_2^d = c_1^d + \eta ^d\) without numerically problematic integration steps that would be required using preview control [21]. We thus have a reference \(c_1\) that exactly matches the reference, while preview control uses an optimization function which allows tracking errors.

Fig. 3.
figure 3

Results of the dynamic simulation with control and simulation frequency of 100 Hz applying the exact system (Sect. 3) implemented in C++

Figure 3 depicts the results of a walk forward at 10 cm/s that is interrupted by an unforeseen instant stop at 14.7 s executed utilizing a capture step. In this simulation we use high values for \(k\) and \(b\) (1000, 200) as the simulated robot reveals a low elasticity. The frequency of control and simulation is 100 Hz. As it is implemented in C++Footnote 4, it can also be applied on a physical robot in real-time at this frequency.

To show stability we consider directly the body orientation as shown in Fig. 3, rather than the measured ZMP. As can be seen, a low oscillation occurs during the walk that does not affect stability. It is a consequence of the simulation of the collisions between the feet and the ground, which are not fully rigid. At the stopping step the oscillation stops immediately indicating a correct determined final position.

5.2 Comparison

Figure 4 shows the application of the approximate system to the state space equation \(x_{t+1} = Ax_t + Bu^d_t\) that represents the FLIPM as presented in [19]. The control output \(u_t^d\) is obtained and applied to the state space by integration enabling a comparison with a preview controller.

The walk initially consists of 10 steps with a sudden stopping (capture) step at 1.8 s. With low values for \(b\) the tracking error of the reference ZMP is low, even in case of an interrupting and unforeseen stop by a capture step. Rising values of \(b\) require an adaption of \(\tau \) to compensate the arising tracking error.

In contrast to Sect. 5.1, Fig. 4 is obtained using a high control frequency of 2 kHz. While this leads to satisfying results applying the boundedness approach, the preview controller in Fig. 4(d) performs partially better. However, in fact preview control is not applicable at these frequencies as the time for calculating the depicted 3 s is 204.9 s using a Python script on a Core i5 PC. This is a consequence of the preview that must be approx. 1 s, thus requiring to calculate 2000 future frames in each time step. In contrast, calculation time is approx. 1 s for the simulation of 3 s using the boundedness approach. Thus, it needs 1/3 of the available time for calculation and is therefore even at 2 kHz real-time capable using Python. At lower frequencies, where preview control is also real-time capable, e.g. at 100 Hz where computation time is 0.5 s, it reveals higher tracking errors (see [19]) and a jitter in the resulting ZMP. Therefore, at frequencies where the controller is real-time capable, Boundedness Control performs better.

Fig. 4.
figure 4

Comparison of different choices of \(k, b\) and \(\tau \) for the approximate iterative system and preview control (without capture step).

6 Conclusion

In this paper, we presented a boundedness approach for gait planning based on the Flexible Linear Inverted Pendulum Model (FLIPM). Applying a stable inversion to a series connection of LIP and the flexible system we are able to obtain a reference trajectory for the CoM and a control output. We show several advantages compared to preview control like Capture Point determination, computation time etc.

As future work we will investigate an advantage of preview control: closed-loop control. While the experiments show stable results, a system applying a control output may drift due to integration steps. Additionally, sensor feedback will be investigated due to its importance for physical robots.