Bipedal locomotion of humanoid robots remains an open problem despite decades of research in the subject. The complexity of the robot dynamics, the unpredictability of its surrounding environment, and the low efficiency of the robot actuation system are only few problems that complexify the achievement of robust robot locomotion. In the large variety of robot controllers for bipedal locomotion, the Divergent-Component-of-Motion (DCM) is an ubiquitous concept used for generating walking patterns. This paper presents and compares different DCM based control architectures for humanoid robot locomotion.
During the DARPA Robotics Challenge, a common approach for humanoid robot control consisted in defining a hierarchical architecture composed of several layers.[feng2015optimization] Each layer generates references for the layer below by processing inputs from the robot, the environment, and the outputs of the layer before. From top to bottom, these layers are here called: trajectory optimization, simplified model control, and whole-body quadratic programming (QP) control.
The trajectory optimization layer often generates desired foothold locations by means of optimization techniques. To do so, both kinematic and dynamical robot models can be used.[dai2014whole, herzog2015trajectory] When solving the optimization problem associated with the trajectory optimization layer, computational time may be a concern especially when the robot surrounding environment is not structured. There are cases, however, where simplifying assumptions on the robot environment can be made, thus reducing the associated computational time. For instance, flat terrain allows one to view the robot as a simple unicycle,[PascalHandbook, flavigne2010reactive] which enables fast solutions to the optimization problem for the walking pattern generation.
The simplified model control layer is in charge of finding feasible center-of-mass (CoM) trajectories and it is often based on simplified dynamical models, such as the Linear Inverted Pendulum Model (LIPM)[Kajita2001] and the Capture Point (CP).[Pratt2006]
These models have become very popular after the introduction of the Zero Moment Point (ZMP) as a contact feasibility criterion.[Vukobratovic1969] To obtain feasible CoM trajectories, the simplified model control layer often combines the LIPM with Model Predictive Control (MPC) techniques, also known as the Receding Horizon Control (RHC).[Kajita2003, diedam2008online] Another model that is often exploited in the simplified model control layer is the Divergent Component of Motion (DCM).[Englsberger2015] The DCM can be viewed as the extension of the capture point (CP) to the three dimensional case under the assumption of a constant height of the Virtual Repellent Point (VRP) respect to Enhanced Centroidal Moment Pivot point (eCMP).[Englsberger2015] Attempts at loosening this latter assumption and extending the DCM to more complex models have also been presented.[Hopkins2015]
The whole-body QP control layer generates robot positions, velocities or torques depending on the available control modes of the underlying robot. These outputs aim at stabilizing the references generated by the layers before. It uses whole-body kinematic or dynamical models, and very often instantaneous optimization techniques: no MPC methods are here employed. Furthermore, the associated optimisation problem is often framed as an hierarchical stack-of-tasks, with strict or weighted hierarchies.[Stephens2010, nava16]
Recently, the scientific community has been interested in the possibility of using torque control based algorithms to perform locomotion tasks.[Stephens2010, Lee2016, Feng2015a, Kuindersma2016, koolen_ijhr] Indeed torque-controlled robots have several advantages over position or velocity controlled ones. A torque-controlled humanoid robot is, in fact, intrinsically compliant in case of external unexpected interactions, and it can be thus used to perform cooperative tasks alongside humans.[Romano2018]
This paper extends and encompasses our previous work  and presents and compares several DCM based implementations of the above layered control architecture. In particular, the trajectory optimization layer is kept fixed with a unicycle based planner that generates desired DCM and foot trajectories. The simplified model control layer, instead, implements two types of controllers for the tracking of the DCM: an instantaneous and an MPC one. In the same layer, we also present a controller which exploits 6-axes Force Torque sensors (F/T), thus ensuring the tracking of both the CoM and the ZMP. Finally, the whole-body QP control implements two controllers for the tracking of the Cartesian trajectory: a kinematics-based and a dynamics-based whole body controllers. The former uses the kinematics of the robot for generating desired joint positions/velocities. While the latter is based on the entire robot dynamics and its output are the desired joint torques. The several combinations of the control architecture are tested on the iCub humanoid robot.[Natale2017] One of the proposed implementations allows the iCub robot to reach a forward walking velocity of .
The paper is organized as follows. Sec. 2 introduces notation, the humanoid robot model, and some simplified models commonly used for locomotion. Sec. 3 describes each layer of the control architecture, namely the trajectory optimization, the simplified model control and the whole-body QP control layer. Sec. 4 presents the experimental validation of the proposed approach, and shows an explanatory table comparing the different control approaches. Finally, Sec. 5 concludes the paper.
and denote respectively the identity and zero matrices;
denotes an inertial frame;
is a vector that connects the origin of frameand the origin of frame expressed with the orientation of frame ;
given and , , where is the homogeneous transformations and is the rotation matrix; inlineinlinetodo: inlineST: is a matrix, while is a vector. I am afraid we need to append a at the end of of
given the vee operator is ;
denotes the angular velocity between the frame and the frame expressed in the frame ;
given the skew operator is ;
the subscripts , , and indicates the frames attached to the torso, left foot, right foot and CoM;
henceforth, for the sake of clarity, the prescript will be omitted;
the superscript indicates a desired quantity generated by the trajectory optimization layer;
the superscript indicates a desired quantity generated by the simplified model control layer;
the term pose indicates the combination of position and orientation.
2.2 Humanoid Robot Model
A humanoid robot is modelled as a floating base multi-body system composed of links connected by
joints with one degree of freedom each. Since none of the robot links has an a priori pose w.r.t. the inertial frame, the robot configuration is completely defined by considering both the joint positions and the homogeneous transformation from the inertial frame to the robot frame (i.e. called base frame ). In details, the configuration of the robot can be uniquely determined by the triplet . The velocity of the floating system is represented by the triplet , where and are the time derivative of the position of the base and the joint positions, respectively. is defined as
Given a frame attached to a link of the floating base system, its position and orientation w.r.t. the inertial frame is uniquely identified by a homogeneous transformation, .
Similarly, the frame velocity w.r.t. the inertial frame is uniquely identified by the twist . The function that maps to the twist is linear and its matrix representation is the well known Jacobian matrix :
For a floating base system the Jacobian can be split into two sub-matrices. One multiplies the base velocity while the other the joint velocities.
Clearly, using (2), the frame acceleration is given by:
The dynamics of the floating base system can be described by the Euler-Poincaré equation:[Marsden2010]
where, on the left hand side, represents the mass matrix, is the Coriolis and the centrifugal term, is the gravity vector. On the right-hand side of (4), is a selector matrix, is the vector containing the joint torques and is a vector containing the coordinates of the contact wrench. indicates the number of contact wrenches. Henceforth, we assume that at least one of the link is in contact with the environment, i.e. .
Finally, let us also recall the concept of local and global Zero Moment Point (ZMP).[Vukobratovic1969] The interaction between the robot and the environment is modeled as infinitesimal forces acting on the surface of the link in contact with the environment. The effect of the contact forces can be represented with an equivalent wrench . is the linear part of the wrench while is the torque. Under the hypotheses of the Poinsot’s theorem,[Murray1994] it is easy to show that every wrench applied at a point on a link is equivalent to another wrench applied to a body-fixed point[Featherstone2014] whose linear part has the same direction and magnitude of the original wrench while the angular part is parallel to the linear force. If the point is placed on the surface that is in contact with the environment, then the point defines the local ZMP. Given a contact wrench expressed in body frame, the local ZMP, if defined, is given by:[Nori2015] .
When one or more links of the floating base system are in contact with the environment and the contact surfaces belong to the same plane, the global ZMP can be defined:
where is the sum of all the contact forces acting along the z axis.
For sake of simplicity, henceforth, the superscript of will be dropped and the global ZMP will be indicated as ZMP, .
2.3 Simplified models
Consider a humanoid robot walking. Assume that the height of the CoM with respect to the stance foot is constant, and that the rate of change of the Centroidal Angular Momentum is equal to zero.[Orin2013] Then, the motion of the robot can be approximated using the well known Linear inverted pendulum model (LIPM).[Kajita2001] By definition of LIPM, the CoM trajectory belongs to a horizontal plane with a constant height . The simplified CoM dynamics is given by:[Kajita2001]
where and represent the position and the velocity of the CoM projected on the walking surface. is the pendulum time constant, i.e. where is the gravity constant.
Analogously, one can define the Divergent Component of Motion (DCM) as:[Englsberger2015]
By choosing the DCM as state variable, (6) can be decomposed into two parts:
When performing the state space decomposition, it can be easily show that the CoM dynamics has a strictly negative real part eigenvalue, while the DCM dynamics has a strictly positive real part eigenvalue.
This section describes the component of the control architecture presented in Fig. 1, that is investigated in this paper. The control architecture is composed of three main layers, namely the trajectory optimization, the simplified model control and the whole-body QP control layers.
The goal of the trajectory optimization layer is to generate the desired feet trajectory and also the desired DCM trajectory. The simplified model control layer is in charge to ensure the tracking of the desired DCM, CoM and ZMP trajectories. Lastly, the main purpose of the whole-body QP control layer is to exploit the entire model of the robot for guaranteeing the tracking of the desired cartesian trajectories.
Even if the first two layers have been presented in , for the sake of completeness we recall them below.
3.1 Trajectory optimization layer
The trajectory optimization layer objective is to evaluate the desired feet and DCM trajectories. Prior to trajectory generation, however, footsteps positions have to be planned. The humanoid robot is approximated as a unicycle, and the feet are represented by the unicycle wheels. By sampling the continuous unicycle trajectory, it is possible to associate each unicycle pose to a time instant. This time instant can be considered as the time in which the swing foot impacts the ground
. Once the impact time is defined, we decide to use it as a conditional variable in order to plan the footsteps that are feasible for the robot. Too fast/slow step duration and too long/short step length are avoided. Once the footsteps are planned, the feet trajectory is evaluated by cubic spline interpolation.
The footsteps position is also used to plan the desired DCM trajectory. In particular, the DCM is chosen so as to satisfy the following time evolution:
where indicates the -th steps, is the initial position of the DCM. is placed on the center of the stance foot while has to belong to the step domain . Assuming that the final position of the DCM coincides with the ZMP at last step, (10) can be used to define the following recursive algorithm for evaluating the DCM trajectory:[Englsberger2014]
The presented DCM planner has the main limitation of taking into account single support phases only. Indeed, by considering instantaneous transitions between two consecutive single support phases, the ZMP reference is discontinuous. This leads to the discontinuity of the external contact wrenches and consequentially of the desired joint torques. The development of a DCM trajectory generator that handles non-instantaneous transitions between two single support phases becomes pivotal.[Englsberger2014, Englsberger2019] To address this issue, we implemented the solution proposed by Englsberger.[Englsberger2014] In details, in order to guarantee a continuous ZMP trajectory, the desired DCM trajectory must belong at least to class. This can be easily guaranteed by smoothing two consecutive single support DCM trajectory by means of a third order polynomial function. Its coefficients are chosen in order to satisfy the boundaries conditions, i.e. initial and final DCM position and velocity.
3.2 Simplified Model Control Layer
The main goal of the simplified model control layer is to implement a control law that stabilizes the unstable DCM dynamics (8). The stabilization problem is faced by developing two different controllers: an instantaneous and a predictive one.
3.2.1 DCM instantaneous control
To guarantee the tracking of the desired DCM trajectory, the following control law is chosen:
By applying the control input defined in (12), the closed loop dynamics writes:
If and the closed loop dynamics is asymptotically stable, and consequentially the error converges asymptotically to zero.
The main advantage of using the presented controller is the triviality of its implementation. On the other hand, the controller cannot guarantee the feasibility of the gait since the position of the ZMP may exit the support polygon.
3.2.2 DCM predictive control
To guarantee a feasible ZMP, a model predictive controller can be designed.[Krause2012] In the MPC framework, the DCM dynamics (8) is used as a prediction model and it is discretized assuming piecewise constant ZMP trajectories with a constant sampling time :
In order to ensure that the stance foot does not rotate around one of its edges, the desired ZMP must not exit the support polygon.[Vukobratov2004] This is ensured through a set of linear inequality constraints:
The tracking of the desired DCM trajectory and a smooth control signal are obtained with the following cost function:
where , and are symmetric positive definite matrices and is the length of the preview window. The cost (16) can be split into three terms. The first and the third are related to the tracking of the desired DCM trajectory while the second one tries to minimize the rate of change of the control input . Since the cost function is a quadratic positive function and the constraints are linear, the optimal control problem a strictly convex quadratic programming problem (QP).
3.2.3 ZMP-CoM Controller
Both controllers defined in Section 3.2.1 and 3.2.2 provide a desired ZMP position. In case of kinematic based whole-body QP control layer, another control loop is needed in order to obtain such desired ZMP position. Instead, as explained later in Section 3.3.2, if the whole-body QP control layer is developed by taking into account the dynamics of the robot, such additional control loop is not necessary. The ZMP tracking problem is tackled by implementing the control law, [Choi2007] i.e.:
3.3 Whole-body QP control layer
The main objective of the whole-body QP control layer is to ensure the tracking of the desired trajectories by using complete robot models. In the following sections, we analyze two kinds of whole-body QP controllers. First, we design a controller based only on the kinematic model. Secondly, we tackle the control problem by means of the dynamic model.
3.3.1 Kinematics based whole-body QP control layer
The goal of the kinematics based whole-body QP control layer is to ensure the tracking of the position of the CoM, the feet pose and the torso orientation. The control problem is formulated using the stack of tasks approach. The tracking of the feet and of the CoM trajectories are considered as high priority tasks, while the torso orientation is considered as a low priority task. Furthermore, to attempt the stabilization of the zero dynamics of the system,[nava16] a postural condition is added as a low-priority task.
The control objective is achieved by framing the controller as a constrained optimization problem where the low priority tasks are embedded in the cost function and the high priority tasks in the constraints. The cost function is given by:
where , . The tracking of the desired torso orientation is achieved by the first term of (18) with the desired torso angular velocity . By a particular choice of such desired velocity, it is possible to guarantee almost-global stability and convergence of to .[Olfati-Saber:2001:NCU:935467] The second term of (18) is the postural task. It is achieved by specifying a desired joints velocity that depends on the error between the desired and measured joints position
The hard constraints are:
where is the linear velocity of the CoM, is the desired foot twist. More specifically the foot velocities are chosen as:
Here the gain matrices are positive definite. The desired position , orientation and the velocities are the output of the trajectory optimization layer.
The desired CoM velocity is chosen as:
where the gain matrices are positive definite, is the output of the ZMP-CoM (17) controller and is the integrated signal.
Finally, an inequality constraint is added to limit the maximum joint velocities.
The decision variable contains the desired joint velocities. This desired quantity can be used directly as a reference to a joint velocity controller, if available. Otherwise, they can be integrated and fed to a low-level joints position controller.
3.3.2 Dynamics-based whole-body QP Control Layer
The Dynamics-based whole-body QP control layer uses the dynamic model of the system to ensure the tracking of the desired trajectories. The control problem is formulated using the stack of tasks approach. The high priority tasks are the tracking of the desired feet and the ZMP trajectories, while the torso orientation and the postural task are still considered as a low priority.
The control objective is achieved by designing the controller as a constrained quadratic optimization problem whose conditional variables are .
The following cost function holds:
where the term (24a) is in charge of stabilizing the desired torso orientation:
Here , and are positive numbers. The postural task (24b) is achieved by asking for a desired joint acceleration that depends on the error between the desired and measured joint values:
The hard constraints are the tracking of the feet, the ZMP and the control of the CoM height. Since the conditional variables contain both the robot acceleration, the joint torques and the contact wrenches, the robot dynamics is also added as equality constraint. Finally, the feasibility of the desired contact wrenches is guaranteed via another set of inequalities. More specifically has to belong to the associated friction cone, while the position of the local CoP is constrained within the support polygon. The feasibility of the contact wrenches is represented by a linear inequality constrain of the form: .
Concerning the tracking of the feet and the CoM height, we have:
When the foot is in contact, the desired acceleration is zero. During the swing phase, the angular part of is given by (25) where the subscript is substitute with , while the linear part is equal to:
Here the gains are again positive definite matrices. The control law in (28) holds also for the CoM height by using the corresponding quantities.
where the subscripts and indicates the and coordinates of the vectors.
By rearranging (4), the robot dynamics can be treated as an equality constraint of the following form:
where is the matrix contained the contact wrenches Jacobians.
Finally, an inequality constraint is added to limit the maximum joint torques
The controller presented above can be represented as a QP problem and solved via off-the-shelf solvers.
3.3.3 Floating Base estimation
The floating base pose and velocity are crucial for torque-controlled walking and they are not directly measurable on the real robot. Thus, they need to be estimated using a simple base estimation framework. In order to estimate these quantities, we assume that at least one link of the robot is rigidly attached to the environment at every instant of time.
The floating base pose, described by the frame transformation matrix , is computed fusing legged odometry and contact switching information. The pose of the fixed link w.r.t. the inertial frame at the first time-instant, , is known. At this instant, the base pose can simply be computed as,
where, the relative transform between the fixed link and the base can be obtained through forward kinematics using the encoder measurements. The current transform is stored and assumed to be fixed until a contact switch is triggered. As soon as a contact switch occurs, the fixed link is changed to the new link in rigid contact with the environment and the base transform is updated as:
The information about the contact switching is obtained through a Schmitt Trigger thresholding on the contact normal forces. The contact normal forces are, in turn, obtained from the end-effector wrenches estimated by the external wrench estimation method described in.[Nori2015]
The floating base velocity, , is computed considering the constraint that, when a link is rigidly attached to the environment, the velocity of such link is zero. As a consequence, the floating system velocity can be computed through the free-floating Jacobian of the contact link, :
By expressing the Jacobian , in terms of base velocity and joint velocities , the floating base velocity can be computed as:
It should be noted that is a square matrix and it is always invertible.
4 Experimental Results
In this section, we present experiments obtained from several implementations of the control architecture shown in Fig. 1. The experimental activities are carried out with the iCub,[Metta2010] a tall humanoid robot, with a foot length and width of and , respectively.
The optimization problems are solved by using the OSQP library.[osqp] The time horizon of the predictive control described in 3.2.2 is .
Comparing different control architectures, however, is a far cry from being an easy task. Thus, we decided to follow a similar approach presented by Torricelli et al.[Torricelli] In all the experiments the humanoid robot walks on a horizontal ground at a constant speed. In the following sections, we benchmark the different implementations of the controller architecture focusing on two main aspects: tracking and energy consumption performances.
In our previous work,  the benchmarking versus the walking velocity was performed by considering the desired velocity set in the Trajectory Optimization layer. Since the Trajectory Optimization layer computes the desired trajectories solving an optimization problem, the actual planned velocity may be different from the velocity set in the layer. Although the measured robot CoM velocity tends to confirm that the data in  are consistent, the CoM velocity is highly noisy and its significance is still an open point. For this reason, in this paper, we define the walking velocity as the ratio between the step length and the measured step duration.
4.1 Tracking Perfomances
4.1.1 Kinematics-based Walking Architecture
Table 4 summarizes the maximum velocities achieved using the different implementations of the kinematics based control architecture. In particular, the labels instantaneous and predictive mean that the associated layer generates its outputs considering inputs and references either at the single time or for a time window, respectively. The labels, velocity and position control, instead, mean that the layer outputs are either desired joint velocities or position, respectively.
To compare the kinematics-based controller architectures, we decide to perform two main experiments. In the former, the walking velocity is the one achievable by all the kinematics-based architectures. While, in the latter, the robot walks at the maximum velocity achieved with a specific architecture only – see Table 4. Namely:
experiment 1 the forward robot speed is ;
experiment 2 the forward robot speed is .
Simplified model control: Predictive versus Instantaneous
In this section, the control laws presented in Secs. 3.2.1 and 3.2.2 are compared. To simplify the analysis, the implementation of the whole-body QP layer is kept fixed, and only the results when the robot is in position control are discussed.
In Figs. 1(a) and 1(d), the DCM tracking performances obtained with the instantaneous and predictive controllers are depicted. When the robot walks with a forward velocity of , both the implementations guarantee good tracking performances, with a DCM error below . It is interesting to notice that the use of the instantaneous controller induces faster variations of the measured DCM and consequentially overall vibrations of the robot. One of the reasons for this variation is attributable to the desired ZMP injected by the controller. Indeed the desired ZMP is proportional to the measured DCM, that it is, in general, affected by noise. Filtering the DCM may be a possible solution. Nevertheless, our experience showed that the addition of a filter may degrade the controller performances due to the consequent introduction of delays.
Figs. 1(b) and 1(e) depict the CoM tracking performances when the walking velocity is . These performances are mainly dependent on the ZMP-CoM controller (17). This controller receives the desired CoM trajectory and desired ZMP values from either the instantaneous or predictive controllers. In both cases, the controller guarantees good tracking, with a maximum CoM error of .
Figs. 1(c) and 1(f) represent the ZMP tracking performances, which are still mainly dependent on the ZMP-CoM controller (17). It is important to observe that the desired ZMP is smoother when it is generated by using the predictive law. Indeed, this property is related to the associated weight in the cost function (16) of the MPC problem. Although this smoother behavior does contribute to decrease the overall vibrations, the desired ZMP is also bounded and therefore the system has less manoeuvrability than when the instantaneous controller is used. Thus the robot becomes less reactive. Despite the extensive hand-made tuning, we were not able to increase the velocity when the simplified model control used the predictive law.
Figs. 2(d) and 2(a) depict the DCM tracking performances with the robot desired walking speed of . Initially (), there is no significant difference between the DCM tracking obtained with instantaneous and predictive control laws.
However, around , the fast variation of the desired DCM induces the drop of the tracking performances. Consequentially this performances drop induces an overall bad tracking of the CoM and ZMP and at the robot fall. In order to increase the responsiveness of the controller, one may increase the gains of the ZMP-CoM controller, however we notice that by increasing these gains, the system is more sensitive to the external disturbances and noise. In a nutshell, the predictive simplified control is much less robust than the instantaneous simplified control with respect to ZMP tracking errors. To face this problem, we suggest increasing the gain of the ZMP-COM controller (17). However, to avoid injecting noise due to the force sensors we suggest to add a filter. In our case, we decide to avoid to use the low pass filter because the delay introduced dropped the overall performances.
Whole-Body QP Control: Position versus Velocity
To simplify the analysis, the implementation of the simplified model control is kept fixed, and only the results with the instantaneous control (12) are presented. Furthermore, for the sake of compactness, we decide to present only the tracking of the desired feet positions, similar considerations hold for the tracking of the CoM.
Figs. 3(a) and 3(c) depict the tracking of desired left foot positions when the robot is in position and velocity controlled, respectively. The position controller ensures better tracking performance than the velocity one. One may consider increasing the gains of the controllers (20), however increasing too much the gains induces overall oscillation in the robot.
The aforementioned foot tracking problem worsens at higher walking velocity. Fig. 3(b) shows that the feet tracking error is lower than on the axis and on the one for position control. Instead, the velocity control in Fig. 3(d) keeps the error always lower than and on the the and components, respectively.
4.1.2 Dynamics-based Walking Architecture
Controlling the robot using a torque controller architecture is not an easy task. Indeed, the performance guaranteed by the position/velocity architecture are not reached because of an imperfect low-level torque control, presence of friction and model errors. For this reason, to validate the torque architecture, we decide to present also the simulation results. When the robot is torque controlled, the noise affecting the measured DCM does not allow us to use the simplified model controllers. Thus we decided to stabilize a desired CoM instead of DCM. Indeed the simplified model control, either the instantaneous 3.2.1 or the predictive controller 3.2.2, injects a (desired) ZMP that depends on the measured DCM. As the consequence, it generates undesired vibrations on the robot. We also tried to implement low pass filters for mitigating such behavior. However, we did not find the right trade-off for obtaining overall performance improvements. Although the extensive hand-made tuning of the simplified model controllers, we were not able to close the loop on the desired DCM. Tracking down the source of the DCM noise to the measured joint velocities, we decided to stabilize a desired CoM trajectory instead. In order to maintain consistency with the previous architectures, we generate such trajectory from the LIPM dynamics (9) starting from a desired DCM trajectory.
Table 4.1.2 summarizes the maximum velocities achieved using different implementations of the dynamics-based architecture. The labels simulation and real robot mean that the experiments are carried out on the Gazebo Simulator [koenig2004design] or the real platform, respectively.
Experiments on the Real Robot
In this section, we present the performance of the walking architecture when the robot is torque controlled. Fig. 4(a) depicts the CoM tracking performances. It is important to notice that the tracking error on the x-axis is greater than the one on the y-axis. To reduce this, one may tend to increase the associated gain. However, our experience showed that increasing the CoM gain contributes to the overall vibration of the robot.
Fig. 4(b) depicts the tracking of the desired left foot trajectory. Event if the walking velocity is lower than the one used for the kinematics based architecture, the dynamics based whole-body QP is not able to guarantee good performances. One may consider increasing the gains of the feet controller (28), although the extensive hand-made tuning, we were not able to increase the robot velocity.
Such bad performances may be attributed to the low-level torque controller. Indeed as depicted in Fig. 6 the tracking performances of the low-level torque control are poor. One is tempted to increase the gains of the low-level torque controller for ensuring better performances. However, since the iCub robot does not have joint torque sensors, the joint torques are estimated by using the readouts of the force-torque sensors. We observed that the noise due to the force-torque sensors is harmful to the estimated torque and, consequentially increasing too much the gains causes undesired overall vibrations.
Experiments on the Simulation Scenario
In this section, we present the simulation results. To simplify the analysis we decide to show only the results when the robot walks with a forward velocity of .
Figs 6(a) and 6(c) depicts the tracking performance with the instantaneous and the predictive controller, respectively. Both implementations guarantee excellent performances, with a DCM error below . Notice that when the simplified model controller layer is implemented with the instantaneous controller, the whole-body QP control layer sometimes fails to find an admissible solution. This happens because the desired ZMP, evaluated using the instantaneous controller, may exit the feet support polygon, so it may be not feasible. To face this issue we suggest projecting the desired ZMP onto the support polygon.[Englsberger2011]
Fig. 6(b) depicts the tracking of the desired left foot trajectory. The controller is able to guarantee a tracking error always below .
4.2 Energy consumption
To compare the energy efficiency of different control architecture we use the Specific Energetic Cost. The Specific Energetic Cost is defined as: [Torricelli]
where is the positive mechanical work of the actuation system, is the mass of the system and is the distance traveled.
Table 4.2 summarizes the Specific Energetic Cost evaluated using different implementations of the architecture. The labels Simulation and Real Robot mean that the experiments are carried out on the Gazebo Simulator or the real platform, respectively. The labels, Position and Torque control, instead, mean that the whole-body QP control layer outputs are either desired joint positions or torque, respectively. We noticed the Dynamics-based architecture has a lower Specific Energetic Cost inlineinlinetodo: inlineST: I am afraid that ”is more efficient” is a big ambiguous and could lead to criticism. I would simply write a more neutral ”has a lower Specific Energetic Cost”. than the Kinematics-based architecture, the reason of this result is attributable to the minimization of the joint torque when the robot is torque controlled – see (24c).
Remark Let us observe that the Specific Energetic Cost is one of the possible criteria for energy benchmarking. Other criteria, like electrical power, shall be considered to have a clear picture of energy expenditure during robot bipedal locomotion.
5 Conclusions and Future Work
This paper contributes towards the benchmarking of different implementations of state-of-the-art control architectures for humanoid robots locomotion. In particular, we proposed a three-layers controller architecture, which exploits the concept of the Divergent Component of Motion. The cornerstone of this work is the comparison of the different implementations of the three layers, namely the trajectory optimization, the simplified model control and the whole-body QP control. In particular, for the simplified model control layer, we discussed the results obtained with the predictive and instantaneous controllers implementation. Furthermore, we compare the performances obtained controlling the robot in position, velocity and torques modes. Even if the proposed controller architecture was tested only on the humanoid robot iCub,[Natale2017] it can be also used for other typology of structures.[russo, Collins]
We show that instantaneous controllers combined with robot position control allowed us to achieve a desired walking speed of . On the other hand, we show that the torque-based architecture produces excellent results in simulation. Unstructured uncertainty on the real robot caused an overall performance degradation in the real scenario. Furthermore analyzing the energy consumption, we show that when the robot is torque-controlled the specific energy cost required to walk is lower than in a position-controlled robot.
In summary, we demonstrate that instantaneous controllers coupled with robot position control enabled us to reach the highest walking velocity ever achieved on the humanoid robot iCub. The torque-based architecture, on the other hand, generates impressive simulation outcomes, however, uncertainties on the real robot make difficult to use a torque-control architecture in a real scenario. In both simulation and real scenario, when the robot is torque-controlled, the specific energy cost required to walk is lower than in a position-controlled robot. As a consequence, even if the Dynamics-based architecture does not allow iCub to walk at the same velocity reached with the Kinematics-based architecture, it is always more efficient because requires less control effort.
As future work, we intend to improve the walking performances when the robot is in torque mode. To achieve this goal we plan to improve the tracking performances of the low-level torque controller by using the current for estimating the joint torques.[Zhang2015] We also plan to develop a whole-body torque control architecture that takes advantage of the joints elasticity of the humanoid robot iCub (e.g.[Hopkins_ijhr]). Another interesting future work is the implementation of a footstep adjustment algorithm.[Griffin2016, Shafiee-Ashtiani2017, shafiee2019online] This will increase the overall robustness in case of large disturbances acting on the robot.