Skip to main content

Advertisement

Log in

A Computationally Efficient Inverse Dynamics Solution Based on Virtual Work Principle for Biped Robots

  • Research Paper
  • Published:
Iranian Journal of Science and Technology, Transactions of Mechanical Engineering Aims and scope Submit manuscript

Abstract

This paper deals with proposing a computationally efficient solution for the inverse dynamics problem of biped robots. To this end, the procedure of developing a closed-form dynamic model using D’Alembert’s-based virtual work principle (VWP) for a biped robot is described. Then, a closed-form inverse dynamics solution is developed during different phases of walking. For a given motion, the closed-form solution is evaluated at each control cycle to yield the joint torques and interaction forces. This procedure is time-consuming for robots with a large number of degrees of freedom such as 3D biped robots. Alternatively, to improve the computational efficiency of the procedure, a method is proposed to solve inverse dynamics efficiently without the need to develop a closed-form solution. In order to show the computational efficiency of the proposed method, its calculation time is compared to the closed-form solutions obtained from the VWP and Lagrange approaches, while this comparison reveals the merit of the proposed method in terms of computational efficiency. For an example application of the proposed solution for inverse dynamics, a dynamic-based optimization procedure is carried out to show the significance of employing toe-off and heel-contact gait phases during biped walking.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10

Similar content being viewed by others

Notes

  1. Generalized speeds are the linear combination of the generalized velocities but cannot necessarily be integrated to the generalized coordinates.

  2. One of the libraries of Simulink section in MATLAB software.

References

  • Aoi S, Tsuchiya K (2011) Generation of bipedal walking through interactions among the robot dynamics, the oscillator dynamics, and the environment: stability characteristics of a five-link planar biped robot. Auton Robots 30:123–141

    Article  Google Scholar 

  • Aoustin Y, Formalskii A (2014) 3D walking biped: optimal swing of the arms. Multibody SysDyn 32:55–66

    Article  MathSciNet  Google Scholar 

  • Baruh H (1999) Analytical dynamics. WCB/McGraw-Hill, Boston

    Google Scholar 

  • Buschmann T, Lohmeier S, Ulbrich H (2009) Humanoid robot lola: design and walking control. J Physiol Paris 103:141–148

    Article  MATH  Google Scholar 

  • Carbone G, Ogura Y, H-o Lim, Takanishi A, Ceccarelli M (2004) Dynamic simulation and experiments for the design of a new 7-dofs biped walking leg module. Robotica 22:41–50

    Article  Google Scholar 

  • Englsberger J, Ott C, Albu-Schaffer A (2015) Three-dimensional bipedal walking control based on divergent component of motion. IEEE Trans Robot 31:355–368

    Article  Google Scholar 

  • Ezati M, Khadiv M, Moosavian SAA (2014) Dynamics modeling of a biped robot with active toe joints. In: 2014 Second RSI/ISM international conference on robotics and mechatronics (ICRoM), 2014. IEEE, pp 107–112

  • Ezati M, Khadiv M, Moosavian SAA (2015) Effects of toe-off and heel-off motions on gait performance of biped robots. In: 2015 3rd RSI international conference on robotics and mechatronics (ICROM), 2015. IEEE, pp 007–012

  • García DH, Monje CA, Balaguer C (2015) Adaptation of robot skills models to new task contraints. Int J Humanoid Robot 12:1550024

    Article  Google Scholar 

  • Herzog A, Righetti L, Grimminger F, Pastor P, Schaal S (2014) Balancing experiments on a torque-controlled humanoid with hierarchical inverse dynamics. In: 2014 IEEE/RSJ international conference on intelligent robots and systems (IROS 2014), 2014. IEEE, pp 981–988

  • Herzog A, Rotella N, Mason S, Grimminger F, Schaal S, Righetti L (2016) Momentum control with hierarchical inverse dynamics on a torque-controlled humanoid. Auton Robots 40(3):473–491

    Article  Google Scholar 

  • Hollerbach JM (1980) A recursive lagrangian formulation of maniputator dynamics and a comparative study of dynamics formulation complexity. IEEE Trans Syst Man Cybern 10:730–736

    Article  Google Scholar 

  • Hopkins MA, Leonessa A, Lattimer BY, Hong DW (2015) Optimization-based whole-body control of a series elastic humanoid robot. Int J Humanoid Robot 13:1550034

    Article  Google Scholar 

  • Huang Q, Yokoi K, Kajita S, Kaneko K, Arai H, Koyachi N, Tanie K (2001) Planning walking patterns for a biped robot. IEEE Trans RobotAutom 17:280–289

    Google Scholar 

  • Kaiser P, Vahrenkamp N, Schültje F, Borràs J, Asfour T (2015) Extraction of whole-body affordances for loco-manipulation tasks. Int J Humanoid Rob 12:1550031

    Article  Google Scholar 

  • Khadiv M, Moosavian SA (2014) A low friction demanding approach in gait planning for humanoid robots during 3D manoeuvres. J Appl Mech 45:47–60

    Google Scholar 

  • Khadiv M, Moosavian SAA, Sadedel M (2014) Dynamics modeling of fully-actuated humanoids with general robot-environment interaction. In: 2014 Second RSI/ISM international conference on robotics and mechatronics (ICRoM), 2014. IEEE, pp 233–238

  • Khadiv M, Moosavian SAA, Yousefi-Koma A, Sadedel M, Mansouri S (2017) Optimal gait planning for humanoids with 3D structure walking on slippery surfaces. Robotica 35(3):569–587

    Article  Google Scholar 

  • Kwon O, Park JH (2009) Asymmetric trajectory generation and impedance control for running of biped robots. Auton Robots 26:47–78

    Article  Google Scholar 

  • Kwon O, Jeon KS, Park JH (2006) Optimal trajectory generation for biped robots walking up-and-down stairs. J Mech Sci Technol 20:612–620

    Article  Google Scholar 

  • Löffler K, Gienger M, Pfeiffer F (2003) Sensors and control concept of walking “Johnnie”. Int J Robot Res 22:229–239

    Google Scholar 

  • Lohmeier S, Buschmann T, Ulbrich H (2009) Humanoid robot LOLA. In: IEEE international conference on robotics and automation, 2009. ICRA’09, 2009. IEEE, pp 775–780

  • Park HA, Ali MA, Lee CG (2012) Closed-form inverse kinematic position solution for humanoid robots. Int J Humanoid Rob 9:1250022

    Article  Google Scholar 

  • Peasgood M, Kubica E, McPhee J (2007) Stabilization of a dynamic walking gait simulation. J Comput Nonlinear Dyn 2:65–72

    Article  Google Scholar 

  • Righetti L, Buchli J, Mistry M, Kalakrishnan M, Schaal S (2013) Optimal distribution of contact forces with inverse-dynamics control. Int J Robot Res 32:280–298

    Article  Google Scholar 

  • Siciliano B, Sciavicco L, Villani L, Oriolo G (2010) Robotics: modelling, planning and control. Springer, Berlin

    Google Scholar 

  • Tlalolini D, Chevallereau C, Aoustin Y (2009) Comparison of different gaits with rotation of the feet for a planar biped. Robot Auton Syst 57:371–383

    Article  Google Scholar 

  • Wang T, Chevallereau C, Rengifo CF (2012) Walking and steering control for a 3D biped robot considering ground contact and stability. Robot Auton Syst 60:962–977

    Article  Google Scholar 

  • Wensing PM, Orin DE (2016) Improved computation of the humanoid centroidal dynamics and application for whole-body control. Int J Humanoid Robot 13(01):1550039

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Majid Khadiv.

Appendix A

Appendix A

In order to generate trajectories for various components of the feet, without loss of generality, we assume that the right foot is in stance phase and the left foot is in swing phase. For the other half of the gait cycle, it is sufficient to change the role of the right and left feet. With this assumption, the boundary conditions and feet trajectories for walking pattern number 1 in Table 1 may be obtained for the right and left feet as:

$$\left\{ {\begin{array}{ll} {x_{r} = X_{bs} } \hfill & {} \hfill \\ {y_{r} = - L_{p} } \hfill & {} \hfill \\ {z_{r} = 0 } \hfill & {} \hfill \\ {\alpha_{r} = 0} \hfill & {, \quad 0 \le t \le \left( {t_{s} + t_{d} } \right)} \hfill \\ {\beta_{r} = 0 } \hfill & {} \hfill \\ {\gamma_{r} = 0} \hfill & {} \hfill \\ \end{array} } \right.$$
(33)
$$\left\{ \begin{aligned} x_{l} = \left\{ {\begin{array}{ll} {\left\{ {\begin{array}{*{20}l} {{x_{l}:} - c + X_{bs} \to X_{bs} + c} \hfill \\ {{\dot{x}_{l}:}0 \to 0\quad \quad \quad \quad \quad \quad \to \mathop \sum \limits_{i = 0}^{5} a_{i} t^{i} , 0 \le t \le t_{s} } \hfill \\ {{\ddot{x}_{l}:}0 \to 0} \hfill \\ \end{array} } \right.} \hfill \\ {X_{bs} + c, \quad \quad t_{s} \le t \le \left( {t_{s} + t_{d} } \right)} \hfill \\ \end{array} } \right. \hfill \\ y_{l} = L_{p} ,\quad \quad 0 \le t \le \left( {t_{s} + t_{d} } \right) \hfill \\ z_{l} = \left\{ {\begin{array}{ll} {\left\{ {\begin{array}{ll} {{z_{l}:}0 \to H \to 0} \hfill \\ {{\dot{z}_{l}:}0 \to 0\quad \quad \quad \quad \quad \quad \to \mathop \sum \limits_{i = 0}^{6} b_{i} t^{i} ,\quad \quad 0 \le t \le t_{s} ,} \hfill \\ {{\ddot{z}_{l}:}0 \to 0} \hfill \\ \end{array} } \right.} \hfill \\ {0, \quad \quad \quad \quad t_{s} \le t \le \left( {t_{s} + t_{d} } \right)} \hfill \\ \end{array} } \right. \hfill \\ \begin{array}{ll} {\alpha_{l} = 0 ,\quad \quad 0 \le t \le \left( {t_{s} + t_{d} } \right)} \\ {\beta_{l} = 0, \quad \quad 0 \le t \le \left( {t_{s} + t_{d} } \right)} \\ {\gamma_{l} = 0 ,\quad \quad 0 \le t \le \left( {t_{s} + t_{d} } \right)} \\ \end{array} \hfill \\ \end{aligned} \right.$$
(34)

in which \(\left( {{\text{x}},{\text{y}},{\text{z}}} \right)\) denotes the position of the foot with respect to the inertial coordinate system and also \(\left( {{{\alpha }},{{\beta }},{{\gamma }}} \right)\) specifies the orientation of the foot about x-, y-, and z-axes, respectively. Parameter H is the maximum height to which the swing foot reaches, during SSP. Moreover, Lp is half of the length of pelvis link. For the walking pattern number 2 of Table 1, the boundary conditions are considered as follows, and the feet trajectories can be obtained:

$$\left\{ \begin{aligned} x_{r} = \left\{ \begin{aligned} X_{bs} ,0 \le t \le \left( {t_{s} + t_{md} } \right) \hfill \\ \left\{ {\begin{array}{*{20}l} {x_{r} :X_{bs} \to X_{bs} + l_{s} \left( {1 - cos\beta_{t} } \right)} \hfill \\ {\dot{x}_{r} :0 \to 0\quad \quad \quad \quad \quad \quad \quad \quad \to \mathop \sum \limits_{i = 0}^{5} a_{i} t^{i} ,\quad \quad \left( {t_{s} + t_{md} } \right) \le t \le \left( {t_{s} + t_{d} } \right)} \hfill \\ {\ddot{x}_{r} :0 \to 0} \hfill \\ \end{array} } \right. \hfill \\ \end{aligned} \right. \hfill \\ y_{r} = - L_{p} ,\quad \quad 0 \le t \le \left( {t_{s} + t_{d} } \right) \hfill \\ z_{r} = \left\{ \begin{aligned} 0 ,\quad \quad 0 \le t \le \left( {t_{s} + t_{md} } \right) \hfill \\ \left\{ {\begin{array}{*{20}l} {z_{r} :0 \to l_{s} sin\beta_{t} } \hfill \\ {\dot{z}_{r} :0 \to 0\quad \quad \to \mathop \sum \limits_{i = 0}^{5} b_{i} t^{i} , \quad \quad \left( {t_{s} + t_{md} } \right) \le t \le \left( {t_{s} + t_{d} } \right),} \hfill \\ {\ddot{z}_{r} :0 \to 0} \hfill \\ \end{array} } \right. \hfill \\ \end{aligned} \right. \hfill \\ \alpha_{r} = 0 , \quad \quad 0 \le t \le \left( {t_{s} + t_{d} } \right) \hfill \\ \beta_{r} = \left\{ \begin{aligned} 0,0 \le t \le \left( {t_{s} + t_{md} } \right) \hfill \\ \left\{ {\begin{array}{*{20}l} {\beta_{r} :0 \to \beta_{t} } \hfill \\ {\dot{\beta }_{r} :0 \to 0\quad \quad \to \mathop \sum \limits_{i = 0}^{5} c_{i} t^{i} ,\quad \quad \left( {t_{s} + t_{md} } \right) \le t \le \left( {t_{s} + t_{d} } \right),} \hfill \\ {\ddot{\beta }_{r} :0 \to 0} \hfill \\ \end{array} } \right. \hfill \\ \end{aligned} \right. \hfill \\ \gamma_{r} = 0 ,\quad \quad 0 \le t \le \left( {t_{s} + t_{d} } \right) \hfill \\ \end{aligned} \right.$$
(35)
$$\begin{aligned} \left\{ {\begin{array}{*{20}l} {x_{l} = \left\{ {\begin{array}{*{20}l} {\left\{ {\begin{array}{*{20}l} {x_{l} : - c + X_{bs} + l_{s} \left( {1 - cos\beta_{t} } \right) \to X_{bs} + c + \left( {l_{as} + l_{ah} } \right)\left( {1 - cos\beta_{h} } \right)} \hfill \\ {\dot{x}_{l} :0 \to 0\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \to \mathop \sum \limits_{i = 0}^{5} a_{i} t^{i} ,\quad 0 \le t \le t_{s} } \hfill \\ {\ddot{x}_{l} :0 \to 0} \hfill \\ \end{array} } \right.} \hfill \\ {\begin{array}{*{20}l} {\left\{ {\begin{array}{*{20}l} {x_{l} :X_{bs} + c + \left( {l_{as} + l_{ah} } \right)\left( {1 - cos\beta_{h} } \right) \to X_{bs} + c} \hfill \\ {\dot{x}_{l} :0 \to 0\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \to \mathop \sum \limits_{i = 0}^{5} b_{i} t^{i} ,\quad t_{s} \le t \le \left( {t_{s} + t_{md} } \right) } \hfill \\ {\ddot{x}_{l} :0 \to 0} \hfill \\ \end{array} } \right.} \hfill \\ {X_{bs} + c \quad ,\quad \left( {t_{s} + t_{md} } \right) \le t \le \left( {t_{s} + t_{d} } \right)} \hfill \\ \end{array} } \hfill \\ \end{array} } \right.} \hfill \\ {y_{l} = L_{p} \quad ,\quad 0 \le t \le \left( {t_{s} + t_{d} } \right)} \hfill \\ {z_{l} \left\{ {\begin{array}{*{20}l} {\left\{ {\begin{array}{*{20}l} {z_{l} :l_{s} sin\beta_{t} \to H \to \left( {l_{as} + l_{ah} } \right)sin\beta_{h} } \hfill \\ {\dot{z}_{l} :0 \to 0\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \to \mathop \sum \limits_{i = 0}^{6} a_{i} t^{i} , 0 \le t \le t_{s} } \hfill \\ {\ddot{z}_{l} :0 \to 0} \hfill \\ \end{array} } \right.} \hfill \\ {\begin{array}{*{20}l} {\left\{ {\begin{array}{*{20}l} {z_{l} :\left( {l_{as} + l_{ah} } \right)sin\beta_{h} \to 0} \hfill \\ {\dot{z}_{l} :0 \to 0\quad \quad \quad \quad \quad \quad \to \mathop \sum \limits_{i = 0}^{5} b_{i} t^{i} ,\quad t_{s} \le t \le \left( {t_{s} + t_{md} } \right), } \hfill \\ {\ddot{z}_{l} :0 \to 0} \hfill \\ \end{array} } \right.} \hfill \\ {0,\left( {t_{s} + t_{md} } \right) \le t \le \left( {t_{s} + t_{d} } \right)} \hfill \\ \end{array} } \hfill \\ \end{array} } \right.} \hfill \\ {\alpha_{l} = 0,0 \le t \le \left( {t_{s} + t_{d} } \right)} \hfill \\ {\beta_{l} = \left\{ {\begin{array}{*{20}l} {\left\{ {\begin{array}{*{20}l} {\beta_{l} :\beta_{t} \to - \beta_{h} } \hfill \\ {\dot{\beta }_{l} :0 \to 0\quad \quad \to \mathop \sum \limits_{i = 0}^{5} a_{i} t^{i} , 0 \le t \le t_{s} } \hfill \\ {\ddot{\beta }_{l} :0 \to 0} \hfill \\ \end{array} } \right.} \hfill \\ {\begin{array}{*{20}l} {\left\{ {\begin{array}{*{20}l} {\beta_{l} : - \beta_{h} \to 0} \hfill \\ {\dot{\beta }_{l} :0 \to 0\quad \quad \to \mathop \sum \limits_{i = 0}^{5} b_{i} t^{i} , t_{s} \le t \le \left( {t_{s} + t_{md} } \right),} \hfill \\ {\ddot{\beta }_{l} :0 \to 0} \hfill \\ \end{array} } \right.} \hfill \\ {0 , \left( {t_{s} + t_{md} } \right) \le t \le \left( {t_{s} + t_{d} } \right)} \hfill \\ \end{array} } \hfill \\ \end{array} } \right.} \hfill \\ {\gamma_{l} = 0 , 0 \le t \le \left( {t_{s} + t_{d} } \right)} \hfill \\ \end{array} } \right. \hfill \\ \hfill \\ \end{aligned}$$
(36)

where \({{\beta }}_{\text{t}}\) is the angle of foot about toe joint and \({{\beta }}_{\text{h}}\) is the angle of foot about heel. Parameter tmd is assumed to be the half of td. Moreover, Parameter lah is the distance between the ankle and the heel, and las is the distance between the ankle and the center of sole. Furthermore, \({\text{a}}_{\text{i}}\) and \({\text{b}}_{\text{i}}\) and \({\text{c}}_{\text{i}}\) are the polynomial’s coefficients, which may be obtained consistently with the boundary conditions.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Khadiv, M., Ezati, M. & Moosavian, S.A.A. A Computationally Efficient Inverse Dynamics Solution Based on Virtual Work Principle for Biped Robots. Iran J Sci Technol Trans Mech Eng 43 (Suppl 1), 37–52 (2019). https://doi.org/10.1007/s40997-017-0138-5

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s40997-017-0138-5

Keywords

Navigation