Skip to main content

Technical Implementations of the Sense of Balance

  • Reference work entry
  • First Online:
  • 231 Accesses

Abstract

Control algorithms for legged robots rely on accurate and fail-safe ego-motion estimation in order to keep balance and perform desired tasks. To this end, the robot must integrate the measurements from different sensor modalities into a single consistent state estimation. In particular, the estimation process must provide estimates of the gravity direction and the local velocities of the robot since those quantities are essential for stabilizing the system and to counteract external disturbances. In comparison to other types of robots, legged robots interact through intermittent contacts with the surrounding. This provides the system with an additional source of information which can be leveraged in order to improve the state estimation. Since there is no one-size-fits-all solution, the following chapter will provide an insight into the different concepts and algorithms by discussing state-of-the-art approaches and examples. This should enable the reader to design a tailored state estimation solution to his or her specific robot and environment.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   899.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD   1,099.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. R.J. Peterka, Sensorimotor integration in human postural control. J. Neurophysiol. 88, 1097 (2002)

    Article  Google Scholar 

  2. M. Bloesch, H. Sommer, T. Laidlow, M. Burri, G. Nützi, P. Fankhauser, D. Bellicoso, C. Gehring, S. Leutenegger, M. Hutter, R. Siegwart, A primer on the differential calculus of 3D orientations. CoRR abs/1606.0 (2016). arXiv:1606.05285

    Google Scholar 

  3. G.P. Roston, E.P. Krotkov, Dead reckoning navigation for walking robots, in IEEE/RSJ International Conference on Intelligent Robots and Systems, 1992, pp. 607–612

    Google Scholar 

  4. B. Gaßmann, F. Zacharias, J.M. Zöllner, R. Dillmann, Localization of walking robots, in Proceedings – IEEE International Conference on Robotics and Automation, Apr 2005, pp. 1471–1476

    Google Scholar 

  5. M. Bloesch, C. Gehring, P. Fankhauser, M. Hutter, M.A. Hoepflinger, R. Siegwart, State estimation for legged robots on unstable and slippery terrain, in IEEE/RSJ International Conference on Intelligent Robots and Systems, 2013, pp. 6058–6064

    Google Scholar 

  6. J. Ma, M. Bajracharya, S. Susca, L. Matthies, M. Malchano, Real-time pose estimation of a dynamic quadruped in GPS-denied environments for 24-hour operation. Int. J. Robot. Res. (2015). https://doi.org/10.1177/0278364915587333

    Article  Google Scholar 

  7. B. Siciliano, O. Khatib, Springer Handbook of Robotics (Springer, Berlin, 2008)

    Chapter  Google Scholar 

  8. J. Nikolic, P. Furgale, A. Melzer, R. Siegwart, Maximum likelihood identification of inertial sensor noise model parameters. IEEE Sensors J. 16, 163 (2016)

    Article  Google Scholar 

  9. N. El-Sheimy, H. Hou, X. Niu, Analysis and modeling of inertial sensors using Allan variance. IEEE Trans. Instrum. Meas. 57, 140 (2008)

    Article  Google Scholar 

  10. H. Strasdat, A.J. Davison, J.M.M. Montiel, K. Konolige, Double window optimisation for constant time visual SLAM, in IEEE International Conference on Computer Vision (2011), pp. 2352–2359

    Google Scholar 

  11. J. Engel, T. Schöps, D. Cremers, LSD-SLAM: large-scale direct monocular SLAM, in European Conference on Computer Vision (2014), pp. 834–849

    Google Scholar 

  12. C. Forster, M. Pizzoli, D. Scaramuzza, SVO: fast semi-direct monocular visual odometry, in IEEE International Conference on Robotics and Automation (2014)

    Google Scholar 

  13. S. Leutenegger, S. Lynen, M. Bosse, R. Siegwart, P. Furgale, Keyframe-based visualinertial odometry using nonlinear optimization. Int. J. Robot. Res. 34, 314 (2015)

    Article  Google Scholar 

  14. M. Bloesch, S. Omari, M. Hutter, R. Siegwart, Robust visual inertial odometry using a direct EKF-based approach, in IEEE/RSJ International Conference on Intelligent Robots and Systems (2015), pp. 298–304

    Google Scholar 

  15. F. Pomerleau, F. Colas, R. Siegwart, S. Magnenat, Comparing ICP variants on real-world data sets. Auton. Robot. 34, 133 (2013)

    Article  Google Scholar 

  16. M. Grewal, A. Andrews, Kalman Filtering: Theory and Practice Using MATLAB, vol. 5, 2nd edn. (Wiley, New York, 2001)

    Google Scholar 

  17. R.E. Kalman, A new approach to linear filtering and prediction problems. J. Fluids Eng. 82, 35 (1960)

    Article  Google Scholar 

  18. C. Hertzberg, R. Wagner, U. Frese, L. Schröder, Integrating generic sensor fusion algorithms with sound state representations through encapsulation of manifolds. Inform. Fusion 14, 57 (2011). arXiv:arXiv:1107.1119v1

    Article  Google Scholar 

  19. M.F. Fallon, M. Antone, N. Roy, S. Teller, Drift-free humanoid state estimation fusing kinematic, inertial and LIDAR sensing, in 2014 IEEE- RAS International Conference on Humanoid Robots (2014), pp. 112–119

    Google Scholar 

  20. P.C. Lin, H. Komsuoglu, D.E. Koditschek, Sensor data fusion for body state estimation in a hexapod robot with dynamical gaits. IEEE Trans. Robot. 22, 932 (2006)

    Article  Google Scholar 

  21. M. Görner, A. Stelzer, A leg proprioception based 6 DOF odometry for statically stable walking robots. Auton. Robot. 34, 311 (2013)

    Article  Google Scholar 

  22. M. Bloesch, M. Hutter, M.A. Hoepflinger, S. Leutenegger, C. Gehring, D. Remy, R. Siegwart, State estimation for legged robots consistent fusion of leg kinematics and IMU, in Robotics Science and Systems Conference (2012)

    Google Scholar 

  23. N. Rotella, M. Bloesch, L. Righetti, S. Schaal, State estimation for a humanoid robot, in IEEE/RSJ International Conference on Intelligent Robots and Systems (2014)

    Google Scholar 

  24. A. Chilian, H. Hirschmüller, M. Görner, Multisensor data fusion for robust pose estimation of a six-legged walking robot, in IEEE International Conference on Intelligent Robots and Systems (2011), pp. 2497–2504

    Google Scholar 

  25. M. Reinstein, M. Hoffmann, Dead reckoning in a dynamic quadruped robot based on multimodal proprioceptive sensory information. IEEE Trans. Robot. 29, 563 (2012)

    Article  Google Scholar 

  26. J. Ma, S. Susca, M. Bajracharya, L. Matthies, M. Malchano, D. Wooden, Robust multi-sensor, day/night 6-DOF pose estimation for a dynamic legged vehicle in GPS-denied environments, in Proceedings IEEE International Conference on Robotics and Automation (2012), pp. 619–626

    Google Scholar 

  27. J. Englsberger, A. Werner, C. Ott, B. Henze, M.A. Roa, G. Garofalo, R. Burger, A. Beyer, O. Eiberger, K. Schmid, Overview of the torque-controlled humanoid robot TORO, in IEEE International Conference on Humanoid Robots (2014), pp. 916–923

    Google Scholar 

  28. M. Johnson, B. Shrewsbury, S. Bertrand, T. Wu, D. Duran, M. Floyd, P Abeles, D. Stephen, N. Mertins, A. Lesman, J. Carff, W. Rifenburgh, P. Kaveti, W. Straatman, J. Smith, M. Griffioen, B. Layton, T. de Boer, T. Koolen, P. Neuhaus, J. Pratt, Team IHMC’s lessons learned from the DARPA robotics challenge trials. J. Field Robot. (2015). https://doi.org/10.1002/rob

  29. S. Singh, P. Csonka, K. Waldron, Optical flow aided motion estimation for legged locomotion, in IEEE/RSJ International Conference on Intelligent Robots and Systems (2006), pp. 1738–1743

    Google Scholar 

  30. D. Belter, P. Skrzypczynski, Precise self-localization of a walking robot on rough terrain using parallel tracking and mapping. Ind. Robot-an Int. J. 40, 229 (2013)

    Article  Google Scholar 

  31. S.P.N. Singh, K.J. Waldron, Attitude estimation for dynamic legged locomotion using range and inertial sensors, in IEEE International Conference on Robotics and Automation (2005), pp. 1663–1668

    Google Scholar 

  32. M. Neunert, M. Giftthaler, M. Frigerio, C. Semini, J. Buchli, Fast derivatives of rigid body dynamics for control, optimization and estimation, in 2016 IEEE International Conference on Simulation, Modeling, and Programming for Autonomous Robots (2016)

    Google Scholar 

  33. X. Xinjilefu, S. Feng, C.G. Atkeson, Dynamic state estimation using quadratic programming, in 2014 IEEE/RSJ International Conference on Intelligent Robots and Systems (2014), pp. 989–994

    Google Scholar 

  34. O. Gür, U. Saranli, Model-based proprioceptive state estimation for spring-mass running, in Robotics: Science and Systems VII (2012), pp. 105–112

    Google Scholar 

  35. B.J. Stephens, State estimation for force-controlled humanoid balance using simple models in the presence of modeling error, in Proceedings IEEE International Conference on Robotics and Automation (2011), pp. 3994–3999

    Google Scholar 

  36. Xinjilefu, C.G. Atkeson, State estimation of a walking humanoid robot, in IEEE International Conference on Intelligent Robots and Systems (2012), pp. 3693–3699

    Google Scholar 

  37. Y. Aoustin, F. Plestan, V. Lebastard, Experimental comparison of several posture estimation solutions for biped robot Rabbit, in IEEE International Conference on Robotics and Automation (2008), pp. 1270–1275

    Google Scholar 

  38. V. Lebastard, Y. Aoustin, F. Plestan, Estimation of absolute orientation for a bipedal robot: experimental results. IEEE Trans. Robot. 27, 170 (2011)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Michael Bloesch .

Editor information

Editors and Affiliations

Appendices

Appendix A: Handling 3D Rotations

A more detailed discussion on the following elaborations can be found in [2]. As members of the special orthogonal group SO(3), 3D rotations possess a multiplication operation (which is not commutative) but unfortunately do not have a concept of addition. Consequently the subtraction and differentiation, which are essential for most sensor fusion algorithms, do not exist either. In order to overcome this issue, the region around a specific rotation can be mapped to a 3D vector space (the so-called Lie algebra). This is often done by means of the exponential and logarithmic map at identity. There are different ways of selecting these maps and a common choice is:

$$\displaystyle \begin{aligned} \log: &SO(3) \to \mathbb{R}^3 {} \end{aligned} $$
(69)
$$\displaystyle \begin{aligned} &\boldsymbol{q}_{\mathcal{BI}} \mapsto \log(\boldsymbol{q}_{\mathcal{BI}}) = \boldsymbol{\varphi}_{\mathcal{BI}},\\ \exp: &\mathbb{R}^3 \to SO(3) {} \end{aligned} $$
(70)
$$\displaystyle \begin{aligned} & \boldsymbol{\varphi}_{\mathcal{BI}} \mapsto \exp(\boldsymbol{\varphi}_{\mathcal{BI}}) = \boldsymbol{q}_{\mathcal{BI}}, \end{aligned} $$
(71)

where \(\boldsymbol {\varphi }_{\mathcal {BI}}\) is the passive rotation vector of the rotation parametrized by the unit quaternion \(\boldsymbol {q}_{\mathcal {BI}}\).

These maps can now be used to define a boxplus operator and a boxminus operator as follows:

$$\displaystyle \begin{aligned} \boxplus : & SO(3) \times \mathbb{R}^{3} \rightarrow SO(3) {} \end{aligned} $$
(72)
$$\displaystyle \begin{aligned} & \boldsymbol{q}, \boldsymbol{\varphi} \mapsto \exp(\boldsymbol{\varphi}) \otimes \boldsymbol{q},\\ \boxminus : & SO(3) \times SO(3) \rightarrow \mathbb{R}^{3} {} \\ & \boldsymbol{q}, \boldsymbol{p} \mapsto \log(\boldsymbol{q} \otimes \boldsymbol{p}^{-1}).\end{aligned} $$
(73)

They represent a local concept of addition and subtraction and fulfill the axioms required by Hertzberg et al. [18]:

$$\displaystyle \begin{aligned} \boldsymbol{q} \boxplus \boldsymbol{0} &= \boldsymbol{q}, \end{aligned} $$
(74)
$$\displaystyle \begin{aligned} (\boldsymbol{q} \boxplus \boldsymbol{\varphi}) \boxminus \boldsymbol{q} &= \boldsymbol{\varphi}, \end{aligned} $$
(75)
$$\displaystyle \begin{aligned} \boldsymbol{q} \boxplus (\boldsymbol{p} \boxminus \boldsymbol{q}) &= \boldsymbol{p}. \end{aligned} $$
(76)

The regular addition and subtraction in the definition of differentials can now be replaced by the boxplus and boxminus operators in order to compute derivatives of terms involving 3D rotations. This yields the following set of derivatives for commonly encountered terms (refer to [2] for a derivation):

$$\displaystyle \begin{aligned} \partial/\partial t \left(\boldsymbol{q}_{\mathcal{B}\mathcal{I}}(t)\right) &= -{}_{\mathcal{B}}\boldsymbol{\omega}_{\mathcal{I}\mathcal{B}}(t), \end{aligned} $$
(77)
$$\displaystyle \begin{aligned} \partial/\partial \boldsymbol{q} \left(\boldsymbol{C}(\boldsymbol{q})\boldsymbol{r}\right) &= -\left(\boldsymbol{C}(\boldsymbol{q})\boldsymbol{r}\right)^\times, \end{aligned} $$
(78)
$$\displaystyle \begin{aligned} \partial/\partial \boldsymbol{q} \left(\boldsymbol{q}^{-1}\right) &= - \boldsymbol{C}(\boldsymbol{q})^{T}, {} \end{aligned} $$
(79)
$$\displaystyle \begin{aligned} \partial/\partial \boldsymbol{q} \left(\boldsymbol{q} \otimes \boldsymbol{p}\right) &= \boldsymbol{I}, \end{aligned} $$
(80)
$$\displaystyle \begin{aligned} \partial/\partial \boldsymbol{p} \left(\boldsymbol{q} \otimes \boldsymbol{p}\right) &= \boldsymbol{C}(\boldsymbol{q}), \end{aligned} $$
(81)
$$\displaystyle \begin{aligned} \partial/\partial \boldsymbol{\varphi} \left(\exp(\boldsymbol{\varphi})\right) &=: \boldsymbol{\varGamma}(\boldsymbol{\varphi}), \end{aligned} $$
(82)
$$\displaystyle \begin{aligned} \partial/\partial \boldsymbol{q} \left(\log(\boldsymbol{q})\right) &= \boldsymbol{\varGamma}^{-1}(\log(\boldsymbol{q})). \end{aligned} $$
(83)

Please note that these terms can vary based on the selected convention. The analytical forms of the rotation matrix C(φ) and of the exponential differential matrix Γ(φ) are given by:

$$\displaystyle \begin{aligned} \boldsymbol{C}(\boldsymbol{\varphi}) &= \boldsymbol{I} + \frac{\sin{}(\|\boldsymbol{\varphi}\|) \boldsymbol{\varphi}^\times}{\|\boldsymbol{\varphi}\|} + \frac{(1 - \cos{}(\|\boldsymbol{\varphi}\|)) \boldsymbol{\varphi}^{\times^2}}{\|\boldsymbol{\varphi}\|{}^2}, \end{aligned} $$
(84)
$$\displaystyle \begin{aligned} \boldsymbol{\varGamma}(\boldsymbol{\varphi}) &= \boldsymbol{I} + \frac{(1 - \cos{}(\|\boldsymbol{\varphi}\|)) \boldsymbol{\varphi}^\times}{\|\boldsymbol{\varphi}\|{}^2} + \frac{(\|\boldsymbol{\varphi}\| - \sin{}(\|\boldsymbol{\varphi}\|)) \boldsymbol{\varphi}^{\times^2}}{\|\boldsymbol{\varphi}\|{}^3}. \end{aligned} $$
(85)

Appendix B: Solving the Least Squares Problem for Multiple Point Feet

The goal is to solve the nonlinear least squares problem of Eq. (43) (Lagrangian form):

$$\displaystyle \begin{aligned} \min_{\boldsymbol{t}, \boldsymbol{q}, \lambda} \sum_k \bar{\boldsymbol{e}}_k^T(\boldsymbol{t},\boldsymbol{q}) \bar{\boldsymbol{e}}_k(\boldsymbol{t},\boldsymbol{q}) + \lambda (\boldsymbol{q}^T \boldsymbol{q} - 1), \end{aligned} $$
(86)

with the error term from Eq. (41)

$$\displaystyle \begin{aligned} \bar{\boldsymbol{e}}_k (\boldsymbol{t},\boldsymbol{q}) &= \ \bar{\boldsymbol{t}} \otimes \boldsymbol{q} - \bar{\boldsymbol{a}}_k \otimes \boldsymbol{q} + \boldsymbol{q} \otimes \bar{\boldsymbol{b}}_k, \end{aligned} $$
(87)

and where t is a 3D vector and q is a unit quaternion representing the incremental translation and rotation, respectively. Setting the derivatives with respect to t, q, and λ to zero results in the following set of equations:

$$\displaystyle \begin{aligned} \sum_k \bar{\boldsymbol{e}}_k^T(\boldsymbol{t},\boldsymbol{q}) \boldsymbol{R}(\boldsymbol{q}) \boldsymbol{S}^T &= \boldsymbol{0}, \end{aligned} $$
(88)
$$\displaystyle \begin{aligned} \sum_k \bar{\boldsymbol{e}}_k^T(\boldsymbol{t},\boldsymbol{q}) \left(\boldsymbol{L}(\bar{\boldsymbol{t}}) - \boldsymbol{L}(\bar{\boldsymbol{a}}_k) + \boldsymbol{R}(\bar{\boldsymbol{b}}_k)\right) + \lambda \boldsymbol{q}^T &= \boldsymbol{0}, {} \end{aligned} $$
(89)
$$\displaystyle \begin{aligned} \boldsymbol{q}^T \boldsymbol{q} - 1 &= 0. \end{aligned} $$
(90)

Expanding and transposing the first equations gives

$$\displaystyle \begin{aligned} \sum_k \boldsymbol{S} \boldsymbol{R}(\boldsymbol{q}^{-1}) \left(\bar{\boldsymbol{t}} \otimes \boldsymbol{q} - \bar{\boldsymbol{a}}_k \otimes \boldsymbol{q} + \boldsymbol{q} \otimes \bar{\boldsymbol{b}}_k\right) = \boldsymbol{0}, \end{aligned} $$
(91)

which can be transformed and simplified to

$$\displaystyle \begin{aligned} N \boldsymbol{t} - \sum_k \boldsymbol{a}_k + \sum_k \boldsymbol{C}(\boldsymbol{q}) \boldsymbol{b}_k = \boldsymbol{0}, \end{aligned} $$
(92)

where N is the number of point feet in contact with the ground. This can finally be rearranged to

$$\displaystyle \begin{aligned} \boldsymbol{t} &= \boldsymbol{a} - \boldsymbol{C}(\boldsymbol{q}) \boldsymbol{b}, \ \ \boldsymbol{a} = \frac{\sum_k \boldsymbol{a}_k}{N}, \ \ \boldsymbol{b} = \frac{\sum_k \boldsymbol{b}_k}{N}. {} \end{aligned} $$
(93)

This means that the translation is obtained from the vector that maps the mean of the rotated bk to the mean of the ak.

The quaternion form of t is

$$\displaystyle \begin{aligned} \bar{\boldsymbol{t}} &= \bar{\boldsymbol{a}} - \boldsymbol{q} \otimes \bar{\boldsymbol{b}} \otimes \boldsymbol{q}^{-1}, \end{aligned} $$
(94)

which can be inserted into the transposed form of Eq. (89):

$$\displaystyle \begin{aligned}\sum_k \left(\boldsymbol{L}(\bar{\boldsymbol{a}} - \boldsymbol{q} \otimes \bar{\boldsymbol{b}} \otimes \boldsymbol{q}^{-1}) - \boldsymbol{L}(\bar{\boldsymbol{a}}_k) + \boldsymbol{R}(\bar{\boldsymbol{b}}_k)\right)^T \\ \left(\boldsymbol{L}(\bar{\boldsymbol{a}} - \boldsymbol{q} \otimes \bar{\boldsymbol{b}} \otimes \boldsymbol{q}^{-1}) - \boldsymbol{L}(\bar{\boldsymbol{a}}_k) + \boldsymbol{R}(\bar{\boldsymbol{b}}_k)\right) \boldsymbol{q} + \lambda \boldsymbol{q} = \boldsymbol{0}. {}\end{aligned} $$
(95)

Furthermore, since

$$\displaystyle \begin{aligned} \boldsymbol{L}\left(\boldsymbol{q} \otimes \bar{\boldsymbol{b}} \otimes \boldsymbol{q}^{-1}\right) \boldsymbol{q} = \boldsymbol{R}\left(\bar{\boldsymbol{b}}\right) \boldsymbol{q}, \end{aligned} $$
(96)

and the summation of the second factor in Eq. (95) equals 0:

$$\displaystyle \begin{aligned} \sum_k \left(\boldsymbol{L}(\bar{\boldsymbol{a}}) - \boldsymbol{R}(\bar{\boldsymbol{b}}) - \boldsymbol{L}(\bar{\boldsymbol{a}}_k) + \boldsymbol{R}(\bar{\boldsymbol{b}}_k)\right) &= \boldsymbol{0}, \end{aligned} $$
(97)

Equation (95) can be transformed to:

$$\displaystyle \begin{aligned}- \sum_k \left(\boldsymbol{L}(\bar{\boldsymbol{a}}) - \boldsymbol{R}(\bar{\boldsymbol{b}}) - \boldsymbol{L}(\bar{\boldsymbol{a}}_k) + \boldsymbol{R}(\bar{\boldsymbol{b}}_k)\right) \\ \left(\boldsymbol{L}(\bar{\boldsymbol{a}}) - \boldsymbol{R}(\bar{\boldsymbol{b}}) - \boldsymbol{L}(\bar{\boldsymbol{a}}_k) + \boldsymbol{R}(\bar{\boldsymbol{b}}_k)\right) \boldsymbol{q} + \lambda \boldsymbol{q} = \ \boldsymbol{0}.\end{aligned} $$
(98)

This has the form of an Eigenvector problem for q:

$$\displaystyle \begin{aligned} \boldsymbol{B} \boldsymbol{q} - \lambda \boldsymbol{q} &= \boldsymbol{0}, \end{aligned} $$
(99)

with

$$\displaystyle \begin{aligned} \boldsymbol{B} = \sum_k (\boldsymbol{A}-\boldsymbol{A}_k)&(\boldsymbol{A}-\boldsymbol{A}_k) = \sum_k \boldsymbol{A}_k \boldsymbol{A}_k - \boldsymbol{A} \boldsymbol{A}, \end{aligned} $$
(100)
$$\displaystyle \begin{aligned} \boldsymbol{A} = \sum_k \boldsymbol{A}_k, &\ \ \ \ \boldsymbol{A}_k = \boldsymbol{L}(\bar{\boldsymbol{a}}_k) - \boldsymbol{R}(\bar{\boldsymbol{b}}_k). \end{aligned} $$
(101)

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature B.V.

About this entry

Check for updates. Verify currency and authenticity via CrossMark

Cite this entry

Bloesch, M., Hutter, M. (2019). Technical Implementations of the Sense of Balance. In: Goswami, A., Vadakkepat, P. (eds) Humanoid Robotics: A Reference. Springer, Dordrecht. https://doi.org/10.1007/978-94-007-6046-2_69

Download citation

Publish with us

Policies and ethics