1 Introduction

Legged locomotion has an indisputable advantage in terms of mobility over wheeled vehicles. Indeed, despite of their poor performance in terms of velocity and energy consumption, walking machines are able to move in unstructured areas by crossing ditches or steps, affecting very few the environment thanks to the small footprint of the legs. But their use is still restricted to research projects because of their design and control complexity. Dynamic simulation is consequently a useful help for their development and improvement.

Most of walking machines are equipped with DC actuators followed by high-geared transmissions. The high-gearing is responsible for decoupling the dynamics of the leg parts [1], but it induces several non-linearities at joint level such as elasticity [2], backlash [3], and last but not least, friction.

Friction is responsible for several parasitic effects in servomechanisms: jitter, limit cycle, or again large tracking errors during velocity reversals. For this reason, control engineers try to model friction with more or less sophisticated models [4, 5], from the Coulomb’s law to dynamic representations [6, 7] where the internal state of the so-called “bristles” is modelled. In a general way, complex friction models focus on single-axis systems. When the number of joints increases, for example in the case of robotic manipulators, the complexity is revised downward and static friction models are employed [810].

In multi-body dynamic simulation the friction is still largely modelled under velocity-dependent laws [1114], possibly with a static term. In that case, the model is ill-conditioned for numerical integration: a classical solution consists in smoothing the zero-velocity transition [15, 16]. But this approach fails in representing correctly the dynamics at zero velocity because it gets rid of sticking and sliding transitions. This point has been treated by Kövecses et al. [17] or Pennestri et al. [18] where more complex friction models, respectively the Karnopp’s [19] and the Dahl’s [20] ones, are employed. Recently, the LuGre model has also been implemented for the realistic simulation of an industrial robot [21]. Comparisons of simulations and experiments show very good agreement in the motor currents for simple trajectory. Meanwhile, there exist other methods than stand-alone friction equations to account for stick-slip transition; see, for example the reformulation of the equations of motion [22], dedicated numerical algorithm [23], or the non-smooth mechanics theory [24, 25].

The simulation of joint friction at zero velocity is very important in the case of six-legged robots, because the joints are subjected to many direction changes and to regulation around a constant position. Generally static friction models are employed in simulation [26, 27]. Even if they are sufficient for prediction of power consumption, they fail in an accurate representation of joints zero-velocity behaviour.

In this paper, we establish a comprehensive model of the six-legged machine AMRU5 with a special focus on joint friction. The LuGre dynamic model is implemented on each joint, as well as the controllers and the actuators. The model is simulated and deeply compared with experimental measurements, both in a detailed and in a global way for the case of a tripod gait.

Section 2 presents the AMRU5 hexapod robot. Section 3 details the modelling and the simulation framework. Section 4 applies the simulation framework to the hexapod machine. Friction is then discussed, modelled, and identified in Sect. 5. The simulation of the irreversibility is demonstrated in Sect. 6, and the simulation of a tripod gait on flat ground is highlighted in Sect. 7. Detailed results for two motors and global power balance for the whole robot are exposed. The improvement of the robot is also discussed. Finally, the conclusion is given in Sect. 8.

2 AMRU5 overview

2.1 Mechanical overview

The robot has a weight of 34 kg and an outer diameter which can reach 1.4 m. The main body weighs 11.2 kg, with a circular shape of radius 0.175 m. The maximum reachable velocity on flat ground is about 3 cm/s. The six legs are identical and equally distributed around the robot body. The robot is illustrated in Fig. 1.

Fig. 1
figure 1

The AMRU5 robot

One leg has three degrees of freedom (DOF), each actuated by a Maxon RE35 DC motor. The leg relies on a pantograph mechanism, which is a widely spread architecture in hexapod robots [28, 29].

2.2 Control architecture

An overview of the whole digital control system is given in Fig. 2. A master PC running Linux 2.6.31-11 PREEMPT RT kernel computes first a gait algorithm whose principle is out of scope (for details, see [30]). The outputs of the gait algorithm are the 18 new joint references, which are themselves the inputs of eighteen single-input single-output PI position controllers. The PI strategy has been chosen to compensate the tracking error due principally to friction. Hunting limit cycles are prevented by including an anti-windup strategy in each controller.

Fig. 2
figure 2

Overview of the digital control system

Controllers outputs are the new voltages to be applied to the eighteen motors: they are sent by UDP/IP protocol to the slave level embedded on the robot. New references are computed every 10 ms.

Every time slice, the slave stage applies the voltages (converted as PWM signals) sent by the controllers to the actuators and performs the data acquisition of motors position \(q_{m}^{n}\), current \(i_{m}^{n}\) and voltage \(i_{m}^{n}\) (where m=r,v,h and n=0,…,5). These data are sent back to the master where they are saved for post-processing. The slave is a SBC65EC, a PIC18F6627-based single board computer with Ethernet capabilities.

3 Modelling and simulation framework

Software products are numerous in the field of multi-body system dynamics; see, for example [31]. In this paper, we use the EasyDyn open source C++library [32], initially developed at UMons for multi-body teaching purposes but now widely used for research [33]. It uses the minimal coordinates approach developed by Anantharam and Hiller [34].

3.1 Principle of minimal coordinates approach

The minimal coordinates approach leads to a system of ordinary differential equations. It has the advantage of naturally eliminating joint forces and it allows an efficient integration with the existing numerical techniques. The configuration parameters are arbitrarily chosen provided that their number corresponds to the number of degrees of freedom. For a system with n b bodies and n cp configuration parameters (denoted by q j ), the application of d’Alembert’s principle leads to the following equations of motion:

$$\sum_{i=1}^{n_b} \bigl[\underline {\boldsymbol {d}}_{ij}\cdot (\underline {\boldsymbol {R}}_i - m_i \underline {\boldsymbol {a}}_i ) + \underline {\boldsymbol {\delta}}_{ij} \cdot (\underline {\boldsymbol {\mathcal{M}}}_i - \underline {\boldsymbol {\varPhi}}_{G_i} \dot{\underline {\boldsymbol {\omega}}}_i - \underline {\boldsymbol {\omega}}_i \times \underline {\boldsymbol {\varPhi}}_{G_i} \underline {\boldsymbol {\omega}}_i) \bigr] = 0 \quad j=1,\ldots, n_{cp} $$
(1)

where

  1. 1.

    m i and \(\underline {\boldsymbol {\varPhi}}_{G_{i}}\) the mass, and the central inertia tensor of body i;

  2. 2.

    \(\underline {\boldsymbol {R}}_{i}\) and \(\underline {\boldsymbol {\mathcal{M}}}_{i}\) the resultant force and moment, at the center of gravity, of all the applied forces exerted on body i;

  3. 3.

    \(\underline {\boldsymbol {a}}_{i}\), \(\underline {\boldsymbol {\omega}}_{i}\), and \(\dot{\underline {\boldsymbol {\omega}}_{i}}\) the translational acceleration, the rotational velocity, and the rotational acceleration of body i, respectively;

  4. 4.

    \(\underline {\boldsymbol {d}}_{ij}\) and \(\underline {\boldsymbol {\delta}}_{ij}\) the partial velocity contributions relating the body i velocity with the first time derivative of the configuration parameter \(\dot{q}_{j}\):

    $$\underline {\boldsymbol {v}}_{i}=\sum_{j=1}^{n_{cp}}\underline {\boldsymbol {d}}_{ij} \cdot \dot{q}_j $$
    (2)

    for the linear velocity of body i and

    $$\underline {\boldsymbol {\omega}}_{i} = \sum_{j=1}^{n_{cp}}\underline {\boldsymbol {\delta}}_{ij} \cdot \dot{q}_j $$
    (3)

    for its rotational velocity.

For complex multi-body systems, the main difficulty in the building of the equations of motion is to express the kinematics (\(\underline {\boldsymbol {v}}_{i}, \underline {\boldsymbol {a}}_{i}, \underline {\boldsymbol {\omega}}_{i}, \underline {\boldsymbol {{\dot{\omega}}}}_{i}\)) and their relationships with partial velocities of (2) and (3). A convenient way of expressing the kinematics is through the homogeneous transformation matrices (HTM).

3.2 Computation of kinematics from HTM

The position and orientation of frame i with respect to frame j (Fig. 3) can be fully described by the 4×4 homogeneous transformation matrix having the form:

(4)

where

  • \(\{ {\underline {\boldsymbol {p}}_{G_{j}/i}} \}_{i} \) is the coordinate vector of point G j with respect to frame i, projected in frame i;

  • R i,j is the rotation tensor describing the orientation of frame j with respect to frame i.

Fig. 3
figure 3

Homogeneous transformation matrices between two frames

Absolute translational velocities and accelerations can readily be deduced from differentiation operations on HTM giving the situation of body i with respect to the global reference frame. For the absolute linear velocity of body i, we have

$$ \{ {\underline {\boldsymbol {v}}_i} \}_{0} = \sum_{j=1}^{n_{cp}}\frac{\partial \{ {\underline {\boldsymbol {p}}_{G_j/0}} \}_{0} }{\partial q_j}\cdot \dot{q}_j $$
(5)

Similarly, we get for the rotation velocity:

$$ \{ {\tilde{\underline {\boldsymbol {\omega}}}_i} \}_{0} = \sum _{j=1}^{n_{cp}} \frac{\boldsymbol {R}_{0,i}}{\partial q_j}\cdot \boldsymbol {R}^T_{0,i} \cdot \dot{q}_j $$
(6)

where \(\tilde{\underline {\boldsymbol {\omega}}}_{i}\) is the skew-symmetric matrix representing the vector product.

One further derivation of (5) and (6) leads to the expression of the accelerations.

3.3 The EasyDyn framework

The EasyDyn framework can help the user to build and integrate the equations of motion of multi-body systems according to the previous theory. Moreover, the user is free to add any other physics which can be described by first or second order differential equations. The Newmark integration procedure implemented in EasyDyn ensures a strong coupling between the multi-body system and the other physics.

3.3.1 The C++ library

The EasyDyn C++ library consists of 4 modules:

  • vec: C++ classes relative to vector calculus (vector, rotation tensor, homogeneous transformation matrix, inertia tensor) and corresponding assignment methods and operators;

  • sim: routines for integration of second (or first)-order differential equations;

  • mbs: front-end to sim building the equations of motion from kinematics and applied forces, according to a minimal coordinates approach;

  • visu: easy creation of files describing scenes composed of moving 3D objects for further visualisation.

3.3.2 The symbolic tool

A MuPAD/XCAS script called CAGeM Footnote 1 allows the user to describe the kinematics of all the bodies at position level only. Velocities, accelerations, and partial velocities (5) and (6) of all the bodies are then symbolically computed. The output of the script is a ready-to-compile C++ file in which the user can add various force elements [33] (spring, tyre, muscle, actuator, etc.).

4 Modelling AMRU5

The inputs of the complete model are the eighteen joints reference positions given by the gait algorithm. Controllers and motors included in the model are identical to those of the real robot.

The modelling of any legged machine could be made in two steps: (1) write the equations of motion for the mechanical parts, according to the approach described in Sects. 3.1 and (2) complete the model by the relevant forces encountered by walking robots which are:

  • the feet-soil intermittent and unilateral contact forces;

  • the friction in the joints;

  • the motor torques.

Two kinds of kinematic loops exist in the robot: the one of the pantograph mechanism, and the one coming from the feet-ground contact. The problem of pantograph is automatically eliminated by using the minimal coordinates approach. The feet-ground interactions will be modelled with a force element in order to keep the simplicity of ODEs and avoid intermittent kinematic loops [35].

4.1 Kinematics of AMRU5

Degrees of freedom are gathered in the vector \(\underline {\boldsymbol {q}}\) according to

$$\underline {\boldsymbol {q}} = \left ( \begin{array}{c}\underline {\boldsymbol {q}}^b \\\underline {\boldsymbol {q}}^0 \\... \\\underline {\boldsymbol {q}}^5 \\\end{array} \right ) = \left ( \begin{array}{c}(X~Y~Z~\varPhi~\varTheta~\varPsi )^T\\(q^0_r~q^0_v~q^0_h )^T \\... \\(q^5_r~q^5_v~q^5_h )^T\\\end{array} \right )$$
(7)

where superscript b and 0...5 denote the main body configuration parameters and the leg identification number shown in Fig. 4, respectively.

Fig. 4
figure 4

Leg numbering

4.1.1 Main body

The frame O b x b y b z b (O b z b upwards) of Fig. 4 is linked at the main body center of gravity, O b x b indicates the front of the robot. As depicted in Fig. 5, the position of the main robot body in the global reference frame is expressed by successive elementary operations of translation T d(X,Y,Z) and rotations \(\boldsymbol {T}^{R_{x}}\), \(\boldsymbol {T}^{R_{y}}\), and \(\boldsymbol {T}^{R_{z}}\).Footnote 2 The resulting HTM of the body T b is written

$$\boldsymbol {T}_{0,b} = \left ( \begin{array}{c@{\quad}c}{\boldsymbol {R}}_{0,b} & \{ {\underline {\boldsymbol {p}}_{b}} \}_{0} \\[5pt]0\ 0\ 0 & 1\end{array} \right ) = \boldsymbol {T}^d(X,Y,Z)\cdot \boldsymbol {T}^{R_z}(\varPhi) \cdot \boldsymbol {T}^{R_y}(\varTheta) \cdot \boldsymbol {T}^{R_x}(\varPsi).$$
(8)
Fig. 5
figure 5

Kinematics of ARMU5

The orientations are given according to the yaw (Φ), pitch (Θ), and roll (Ψ) angles.

4.1.2 Leg

The motion of each leg with respect to the main body can be fully described from three configuration parameters illustrated in Fig. 6:

  • q r , the rotation of the leg around the vertical axis;

  • q v , the vertical displacement of point A;

  • q h , the horizontal displacement of point D.

Fig. 6
figure 6

Detail of transmissions

To make the description of the pantograph easier two dependent (or intermediary) parameters p 0 and p 1 are introduced and expressed in terms of q v and q h . Considering that \(\|\underline {\boldsymbol {AB}}\|=c\) and \(\|\underline {\boldsymbol {BD}}\|=l\) (see Figs. 5 and 6), the kinematic analysis yields the following relationships:

(9)
(10)

Practically, these parameters and their first and second time derivatives are calculated once at each time step. This reduces by half the simulation time in the case of kinematics expressed only from configuration parameters.

The leg bodies are therefore characterised by the following HTM (Figs. 5 and 6):

  • leg chassis (the center of mass G c belongs to π′):

    $$\boldsymbol {T}_{0,c} = \boldsymbol {T}_{0,b} \cdot \boldsymbol {T}^{R_z}(\alpha) \cdot \boldsymbol {T}^d(O_bO_l) \cdot \boldsymbol {T}^{R_z}(-q_r) \cdot \boldsymbol {T}^d(O_lG_c);$$
    (11)
  • the pantograph link 0 (center of mass G 0):

    $$\boldsymbol {T}_{0,l0} = \boldsymbol {T}_{0,c} \cdot \boldsymbol {T}^d\bigl(G_cC^*\bigr) \cdot \boldsymbol {T}^d(0,0,q_v)\cdot \boldsymbol {T}^{R_y}(-p_0) \cdot \boldsymbol {T}^d(AG_0);$$
    (12)
  • the pantograph link 1 (center of mass G 1):

    $$\boldsymbol {T}_{0,l1} = \boldsymbol {T}_{0,l0} \cdot \boldsymbol {T}^d(G_0B)\cdot \boldsymbol {T}^{R_y}(\pi-p_1) \cdot \boldsymbol {T}^d(BG_1);$$
    (13)
  • the pantograph link 2 (center of mass G 2):

    $$\boldsymbol {T}_{0,l2} = \boldsymbol {T}_{0,c} \cdot \boldsymbol {T}^d\bigl(G_cC^*\bigr) \cdot \boldsymbol {T}^d(q_h,0,0)\cdot \cdot \boldsymbol {T}^{R_y}(-p_0) \cdot \boldsymbol {T}^d(DG_2);$$
    (14)
  • the pantograph link 3 (center of mass G 3):

    $$\boldsymbol {T}_{0,l3} = \boldsymbol {T}_{0,l0} \cdot \boldsymbol {T}^d(G_0C)\cdot \boldsymbol {T}^{R_y}(\pi-p_1) \cdot \boldsymbol {T}^d(DG_3);$$
    (15)
  • the rotors related to the leg degrees of freedom (q r ,q v ,q h ) through the reduction ratio (n r ,n v ,n h ) given in Table 1:

    (16)
    (17)
    (18)

    The rotors location has not been detailed explicitly in Fig. 6 for the sake of clarity.

    Table 1 Reduction ratios between rotor shafts and joint variables

4.2 Applied forces (excepted joint friction)

In this section, we detail the forces applied to the multi-body model, i.e. the terms \(\underline {\boldsymbol {R}}_{i}\) and \(\underline {\boldsymbol {\mathcal{M}}}_{i}\) of (1).

4.2.1 Ground contact

Modelling of ground contact forces is treated like an impact problem in legged locomotion. In the following, distinction is made between the computation of normal and tangential forces.

Normal forces

There are two ways of dealing with impact normal force [12]:

  • The continuous approach where the force varies continuously, depending on the local elastic deformation between the colliding bodies. A spring-damper element [36] or the direct deflection-force relationship [37] can be employed. A second method consists in introducing a kinematic constraint when the distance between foot and ground is zero [25, 38, 39]. The constraint is maintained while the contact force is compressive.

  • The discontinuous approach where the integration of the equations of motion are stopped at the impact time. A momentum balanced is computed to find the velocity after impact [40].

In this paper, the feet/ground interaction is modelled according to the Hunt and Crossley method [36]. The normal force is expressed by

$$F_n = K_{gnd} \delta^{p_K} + D_{gnd}\delta^{p_D} \frac{d\delta}{dt}, $$
(19)

where

  • δ is the foot penetration in the ground;

  • K gnd and D gnd are the contact stiffness and damping, respectively;

  • p K and p D are fitting exponential coefficients.

Reasons of this choice are twofold: (1) the impact is quite long in the case of AMRU5, making the discontinuous approach less relevant, and (2) the addition of constraint equations can not be handled by the integration procedure of EasyDyn, only dedicated to ODEs.

Tangential force

The main method used in legged locomotion is either the insertion of a two dimensional spring-damper force element at foot [27, 35, 41], or the use the dry friction law (or any modified version [12] to avoid numerical pitfalls) expressed as a function of the normal force [37]. Recent researches in multi-body system dynamics have included some dynamic friction models [40, 42] to include the sticking/sliding transitions.

Here, we keep the simple Coulomb’s friction law with a linear approximation at zero velocity:

(20)

where γ is the dynamic friction coefficient of the contact, \(\underline {\boldsymbol {v}}_{g}\) is the slip velocity of the contact point with respect to the ground and v lim is the threshold preventing from numerical pitfalls.

The fact that there always exists a small slipping at leg-ground interface is not critical: by setting the threshold v lim low enough, the slip velocity becomes negligible and the effects of friction can be caught.

Table 2 gathers the parameters used in simulation. The penetration exponent has been chosen to fit with the Hertz’s theory. The soil stiffness value ensures a penetration of 2.3 mm when the robot is standing on three legs. Hexapod machines are designed to perform outdoor, then such an important value for K gnd could seem wrong. However, the purpose of the paper is to validate the robot model with a test-case performed in our lab where the ground is highly rigid. Damping characteristics are set to ensure good stability of the numerical simulations.

Table 2 Parameters of ground contact interaction

4.2.2 Actuation

The torque c m acting on the shaft of a DC motor is proportional to the current i in the motor:

$$c_m = k_t i$$
(21)

with k t the torque constant. This torque is simply added in terms \(\underline {\boldsymbol {\mathcal{M}}}_{i}\) of (1). The current derives from the electrical equation of the motor:

$$u = Ri + L\frac{di}{dt}+k_t \dot{\theta} $$
(22)

where u is the input voltage, R and L the electrical resistance and inductance respectively, and \(\dot{\theta}\) the velocity of the motor shaft which is directly related to the corresponding joint velocity \(\dot{q}\) through the reduction ratio of Table 1 (\(\dot{\theta}= n\dot{q} \)). Again, the 18 dynamics equations of motors are put under the second-order residual form to be processed by the sim solver:

$$u - R\dot{q}_i - L \ddot{q}_i - k_t n \dot{q} = 0 $$
(23)

where \(\dot{q}_{i} = i\).

Each joint is position-controlled with a digital Proportional-Integral controller: At control sample k, we have

(24)
(25)

where K is the proportional gain, T i the integral time constant, \(q^{*}_{k}\) the joint reference position, q k the joint real position, I k−1 the integral term at control sample k−1, and Δt the control time slice of 10 ms.

5 Friction

During a tripod gait on flat ground, the vertical joint of the legs supporting the robot remains in the same position. On the real robot, it has been noticed that there is no current consumption for the related actuators, because the friction in the vertical transmission is so important that the joint is not reversible. To simulate this and incorporate it in our simulation framework, a dynamic friction model is required.

Friction arises in each element of the transmission: gearboxes, ball-screws, sprocket chain, and pantograph hinges. Some preliminary tests have pointed out that it is difficult to identify friction for every component separately. Indeed, the mechanical mounting strongly influences the transmissions behaviour. So, we decided to model the friction in one equivalent friction torque or force applied on each joint.Footnote 3

We chose the LuGre model [43] because it has few friction parameters, it readily describes many dynamic friction phenomena and its dynamic equation incorporates well in the EasyDyn framework. It represents a good choice to express friction both at low velocity where the sticking is required for the vertical joint and at higher velocity where the Coulomb and viscous effects are dominant. A brief description of the model is given in Sect. 5.1.

In a general way, the friction parameters are not predictable from vendor’s specifications of each transmission component, therefore, it is necessary to identify the parameters used in the LuGre model. This point will be detailed in Sect. 5.2.

5.1 Modelling of joint friction

In the context of the LuGre model, the friction generalised force is expressed by the following relationship:

$$Q_f = \alpha_0 z + \alpha_1 \dot{z} +f_v \dot{q} $$
(26)

where z is the average bristles deformation, α 0 and α 1 their stiffness and damping, f v the viscous coefficient and \(\dot{q}\) the velocity of the joint. The bristles state is given by

$$\dot{z} = \dot{q} - \frac{|\dot{q}|}{g(\dot{q})}z. $$
(27)

The function \(g(\dot{q})\) takes the following general form:

$$g(\dot{q}) = \frac{Q_{f,d} + (Q_{f,s} - Q_{f,d}) \exp{(-(\dot{q}/\dot{q}_{st})^2)}}{\alpha_0} $$
(28)

where Q f,d and Q f,s are the Coulomb and the breakaway generalised forces, and \(\dot{q}_{st}\) is the Stribeck’s velocity of the joint.

Practically, insertion of friction generalised force (26) in (1) is made by applying an equivalent friction torque at motor shafts resulting from the friction generalised force divided by the corresponding reduction ratio of Table 1. Computation of the bristle state is made with the sim solver by moving expression (27) into a second- order residual form:

$$\ddot{q}_z - \dot{q} + \frac{|\dot{q}|}{g(\dot{q})}\cdot \dot{q}_z = 0, $$
(29)

where \(\ddot{q}_{z} = \dot{z}\) and \(\dot{q}_{z} = z\), q z being meaningless.

5.2 Friction identification: discussion

The robot AMRU5 is a prototype and experiment reveals that each leg is quite different in term of mechanical mounting quality. The identification is hence necessary to catch accurately the friction contribution in the overall dynamic model.

Some assumptions are made depending on the considered joint:

  • The rotational and horizontal joints are always moving in the case of a tripod gait used as validation test case. Therefore, we consider that (28) can be simplified as

    $$g = \frac{Q_{f,d}}{\alpha_0} $$
    (30)

    which means that the breakaway force and the Stribeck’s zone are neglected. Effectively, the velocities reached by the legs during the tripod gait are well above the breakaway/Stribeck’s zones.

  • The vertical joints are not moving for legs in support phase (in the case of the tripod gait on flat ground): hence friction at low velocity is important, and cannot be neglected. The Stribeck’s velocity \(\dot{q}_{st}\) is hard to identify, and strongly depends on the operating conditions [9]. Once again, this zone is not critical for our study, because the joint is either at zero velocity, or at velocities well above the Stribeck’s area. We set this parameter to \(\dot{q}_{st} =1\)e-4 m/s.

  • The horizontal joints are subjected to a strong friction/load dependency. Experiments have shown an important variation of the friction parameters when the leg is supporting the robot weight. Therefore, steady-state characteristics (Coulomb and viscous parameters) should also be identified for different loading cases.

As far as the bristles characteristics are concerned, their stiffness will not be identified because it requires very high precision encoder [44] not at disposal on the real robot. As recommended by Olsson [45], the value of this parameter must be high enough to obtain a sufficient dynamics of the bristle with respect to the global system. Typically, we choose the same value of α 0=1e9 N/m (or N m for rotation) for the three joints. Secondly, to the best of our knowledge, no successful identification of the bristles damping is reported in the literature. The bristles damping is rather set to satisfy the dissipativity condition of the model [43, 46]. We set α 1=0.02 N s/m (or N m s for rotation).

Table 3 summarises the parameters to identify. The tilde sign mentions that these parameters account for the load effect.

Table 3 Summary of friction parameters to identify per joint nature

5.3 Steady-state friction curves

This section concerns the identification of terms Q f,d of (28) and f v of (26). Constant velocity profiles are assigned to each joint separately so that inertia, Coriolis and centrifugal effects vanish in the motor torque measurementFootnote 4 [9, 10]. The direction of motions is differentiated through the +/− subscript. For the vertical joints (and to a lesser extent for the horizontal ones) gravity influences the measurement. The measurements are automatically corrected by computing in real-time the inverse dynamics of a leg multi-body model to deduce the gravity contribution.

We performed 5 measurements for each parameter. Mean values μ and standard deviations σ are given for the six legs, in Tables 4, 5, and 6. The viscous term is hard to identify accurately because of its poor repeatability: Nevertheless, its influence is quite small with respect to the dry parameter. Results have shown that the viscous contribution is negligible for the horizontal joints.

Table 4 Steady-state friction parameters for the rotational joints (q r )
Table 5 Steady-state friction parameters for the vertical joints (q v )
Table 6 Steady-state friction parameters for the horizontal joints (q h )

The same experiment has been made on each horizontal joint by imposing different load cases vertically on the foot, as it is the case when the robot is walking. According to the measurements, the dependency between the dry friction and the load can be expressed as a second-order polynomial:

$$Q_{f,d} = a_0+ a_1\cdot P+a_2\cdot P^2 $$
(31)

where a 1 and a 2 are the coefficients of the fitting polynomial, a 0 the dry friction level of Table 6 and P the load at foot, in kg. Equation (31) is not linear as expected with the dry friction theory, but quadratic: effectively, an increasing load induces an increasing deformation on the horizontal ball screw, reinforcing the friction. This can explain the quadratic form. Mean values and standard deviations of polynomial coefficients are given in Table 7, for five measurements.

Table 7 Polynomial coefficients of the friction/load dependency for the horizontal joints (q h )

5.4 Breakaway force on the vertical joint

The breakaway force corresponds to the force which “breaks” the pre-sliding regime and leads to the sliding itself. This force is important when transition occurs from rest to motion. Even if the three kinds of joint are not reversible, we are especially interested in the vertical behaviour. This parameter is fundamental to reproduce the irreversibility.

Breakaway forces for the six vertical joints have been identified by slowly increasing the voltage on each actuator with a rate of 0.05 V/s. An increasing voltage provokes a rising of the joint (thus a descent of the foot). In this case, the force balance equation at joint level can be expressed as

$$Q_{f,s}^+ = Q_a + Q_{\mathrm{leg}} - Q_{\mathrm{load}}.$$
(32)

where Q a is the applied force at joint, measured through motor current; Q leg is the equivalent force representing the effect of the gravity acting on the leg parts; Q load is the equivalent joint force representing the force at foot. For a decreasing voltage rate, we have

$$Q_{f,s}^- = Q_a - Q_{\mathrm{leg}} + Q_{\mathrm{load}}.$$
(33)

Both situations are illustrated in Fig. 7.

Fig. 7
figure 7

Loading the leg with 10 kg for stiction identification

Since experiments have shown that load strongly influences the breakaway force level, the identification has been made with different loads:

  • 5 kg: It represents approximately the load acting on the legs when the robot is at rest on its six legs. Parameters of Table 8 will be used for the simulation of irreversibility in Sect. 6.

    Table 8 Breakaway force for the vertical joints (q v )—load of 5 kg
  • 10 kg: It represents approximately the load acting on the legs when the robot is walking according to a tripod gait. Parameters of Table 9 will be used in Sect. 7 for the tripod walking.

    Table 9 Breakaway force for the vertical joints (q v )—load of 10 kg

For joints 1 and 3, a load of 10 kg is too important and overcomes the irreversibility. For these joints, the corresponding value at 5 kg is set in simulation of Sect. 7. Remark that identification of the breakaway force is not made for a leg without load: If the leg is performing its swing, the vertical joints are always moving and, therefore, the breakaway force is not relevant in friction computation.

6 Simulation of irreversibility

Like many other walking robots, AMRU5 becomes self-supporting when power is removed because of friction in gears. We simulate this behaviour in the model by deactivating the controllers and forcing the 18 motors inputs to 0 V. Figure 8 shows the time history of the robot height without joint friction, with the LuGre model of (26) and with the dry/viscous static model described by [15] (ϵ=0.1 mm/s):

(34)
Fig. 8
figure 8

Time history of the robot height

The most “realistic” result is obtained with the LuGre model where the robot altitude is kept constant. Figure 9 shows the friction force at vertical joint of leg 0: the LuGre model perfectly balances the gravity effects after a small transient during which the bristles are reaching their equilibrium state. In the case of the dry/viscous model, damping comes from friction but also from the back-electromotive force of the vertical motors. Effectively, voltage of motors is set to 0 but the circuitry is close so the motors work like a generator. Figure 10 depicts the evolution of function \(g(\dot{q}_{v})\) with respect to time and to joint velocity. When zero velocity is reached, the model switches from one side to another of function g (see (28)) but this discontinuity is “smoothed” by the bristle dynamic equation (see (27)).

Fig. 9
figure 9

Time history of the friction force at vertical joint (leg 0)

Fig. 10
figure 10

Time history of function \(g(\dot{q})\) at vertical joint (leg 0)

7 Simulation of a tripod gait

Here, we compare motor currents and voltages of actuators coming from experimental data and simulation results. The leg 0 is analysed in the case of a forward advance of the robot, i.e. along the O b x b axis of Fig. 4. Simulations are performed without friction at joint, with the LuGre model, with the dry/viscous model of (34) and with the so-called “dry/viscous 2” model where load dependency is taken into account through (31).

7.1 Test case

Validation assumes a tripod gait of the robot. Note that many other types of gaits exist for hexapod machines [29]: tripod gait allows an easier interpretation of the results because the sequence of swing/support phases of the legs is clear. Moreover, it is a sought steady-state reference when developing non-periodic gaits [47]. The model is perfectly valid for other gaits: Nevertheless, it would be useful to identify more accurately the variation of the breakaway forces with the foot load (see Tables 8 and 9).

Five steps are performed but only one cycle is analysed. The robot heading velocity is set at 1.5 cm/s. A complete step cycle lasts 12 s. A double stance phase has been implemented so that the robot load transition is smooth.

7.2 Motor-by-motor

Left side of Fig. 11 is dedicated to the vertical actuator of leg 0, and right side to the horizontal one. The grey area corresponds to the swing phase (leg is in the air) while the blank one is for support phase (leg is on the ground).

Fig. 11
figure 11

Validation of the model by currents and voltages comparisons (leg 0)

The two upper graphs of Fig. 11 show the joint reference trajectory. Horizontal joint is always moving during the gait, whatever the considered leg, while vertical joint reference remains constant during the support phase, and moves quickly during the transfer phase.

7.2.1 Motor current

On the real robot, current is not necessary during support phase because friction is high enough to keep the position locked. With the dry/viscous model, zero friction is not caught and consequently the motor needs current for regulation. With the LuGre model, the bristles provide sufficient friction to avoid current consumption: Irreversibility is well reproduced. Moreover, the slight current consumption arising at around t=28 s is correctly simulated. This loss of irreversibility comes from the increasing load acting on leg 0 when robot is moving forward.

Always from a current point of view, the support phase of the horizontal actuator is not properly simulated with the LuGre and dry/viscous models. With the dry/viscous 2 model, the load is considered and results are better.

The swing phases are correctly reproduced whatever the friction model. The measured oscillations are due to the meshing effects of the sprocket chain which has not been modelled in this paper.

7.2.2 Motor voltage

Although the agreement remains quite good with the experiments, the motor voltage is always under-estimated in simulation whatever the friction model. This effect is still worse when low voltages are considered. It can be explained by the H-Bridge dynamics which has not been modelled. The motor driver has been introduced in the model by a simple resistor in series with the one of the armature coil.

7.3 Specific resistance

The specific resistance ξ is an indicator of the energetic performance of a vehicle [48]:

$$\xi = \frac{E}{Pl}$$
(35)

where E is the global energy expended by a robot of weight P to travel the distance l. Although AMRU5 is not a very efficient machine this indicator is used here to validate our model. Figure 12 compares the specific energy for different heading velocities and for different friction models.

Fig. 12
figure 12

Specific resistance of AMRU5

Friction is responsible for the performance degradations. The LuGre and the dry/viscous model exhibit identical specific energy: while the irreversibility could save some energy, it is not the case so the simulation of irreversibility is not relevant for energetic considerations. The model is also able to reproduce the degradation due to the mechanical undersizing of the horizontal joint (dry/viscous 2). The dry/viscous curve could be interpreted as the “mechanically improved” robot for which the friction does not depend on the leg load anymore. With improved horizontal joints, the efficiency would be 35% better.

The predicted specific resistance with the dry/viscous 2 model is, however, slightly different from experiment at low velocity of the robot, mainly because of the non-modelled H-Bridge dynamics, which is predominant for low voltages.

8 Conclusion

A comprehensive modelling of a hexapod robot has been presented in this paper. More generally, this approach could be used for description of mechatronic systems. The core model is a multi-body system representing the mechanical parts of the robot. On top of this, motors, controllers, and friction dynamics have been implemented. The whole set of ODEs is put under a second-order residual form and is time-integrated with a Newmark scheme implemented in the sim module of the EasyDyn library. This monolithic integration ensures a strong coupling between the mechanical, the electrical, and the “frictional” variables, similarly to the real robot.

The modelling approach has been extensively verified by current and voltage measurements on the motors. A contribution of this work is the implementation of the LuGre model to account for joint friction in a large robotic system. The model is especially able to reproduce the common characteristics necessary for energy consumption prediction, as well as irreversibility of the vertical joints caused by a high-geared transmission. The breakaway force should be carefully identified for this purpose because it reflects the friction force for zero velocity, and hence defines if joint is reversible or not. A relevant result of the simulation is the estimation of the efficiency improvement if the mechanical defect of the horizontal joints was corrected.