Skip to main content

A New Simple Model of Balancing in the Plane

  • Chapter
  • First Online:
Robotics Research

Part of the book series: Springer Proceedings in Advanced Robotics ((SPAR,volume 3))

Abstract

This paper presents a new model of the dynamics of balancing in the plane, in which the essential parameters of the robot’s balancing behaviour are reduced to just two numbers, both of which are simple functions of basic physical properties of the robot mechanism. A third number describes the effect of other movements on the robot’s balance. Given this model, a high-performance balance controller can be constructed as a simple four-term control law with gains that are trivial functions of the two model parameters and a single value chosen by the user that determines the overall speed of balancing. The model is first developed for a double pendulum, and then extended to a general planar mechanism. Simulation results are presented showing the controller’s performance at following commanded motion trajectories while simultaneously maintaining the robot’s balance.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 169.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 219.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 219.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

Institutional subscriptions

References

  1. Azad, M.: Balancing and hopping motion control algorithms for an under-actuated robot. Ph.D. thesis, The Australian National University, School of Engineering (2014)

    Google Scholar 

  2. Azad, M., Featherstone, R.: Balancing control algorithm for a 3D under-actuated Robot. In: Proceedings of the IEEE/RSJ International Conference Intelligent Robots & Systems, pp. 3233–3238. Chicago, IL, 14–18 Sept (2014)

    Google Scholar 

  3. Azad, M., Featherstone, R.: Angular momentum based balance controller for an under-actuated planar robot. Auton. Robot. (2015). http://dx.doi.org/10.1007/s10514-015-9446-z

  4. Double Robotics ‘Double’ telepresence robot. http://www.doublerobotics.com (2014). Accessed Aug 2015

  5. Featherstone, R.: Rigid Body Dynamics Algorithms. Springer, New York (2008)

    Book  MATH  Google Scholar 

  6. Featherstone, R.: Quantitative measures of a robot’s ability to balance. In: Robotics Science & Systems. Rome. http://www.roboticsproceedings.org/rss11/p26.html. 13–17 July (2015). Accessed Aug 2015

  7. Grizzle, J.W., Moog, C.H., Chevallereau, C.: Nonlinear control of mechanical systems with an unactuated cyclic variable. IEEE Trans. Automat. Control 50(5):559–576 (2005). http://dx.doi.org/10.1109/TAC.2005.847057

  8. Hauser, J., Murray, R.M.: Nonlinear controllers for non-integrable systems: the acrobot example. Proc. Am. Control Conf. Nov 3–5, 669–671 (1990)

    Google Scholar 

  9. Miyashita, N., Kishikawa, M., Yamakita, M.: 3D motion control of 2 links (5 DOF) underactuated manipulator named AcroBOX. In: Proceedings of the American Control Conference, pp. 5614–5619. Minneapolis, MN, 14–16 June (2006)

    Google Scholar 

  10. Segway Inc. Personal transporter. http://www.segway.com (2015). Accessed Aug 2015

  11. Spong, M.W.: The swing up control problem for the acrobot. IEEE Control Syst. Mag. 15(1), 49–55 (1995)

    Article  Google Scholar 

  12. Xin, X., Kaneda, M.: Swing-up control for a 3-DOF gymnastic robot with passive first joint: design and analysis. IEEE Trans. Robot. 23(6), 1277–1285 (2007)

    Article  Google Scholar 

  13. Yonemura, T., Yamakita, M.: Swing up control of acrobot based on switched output functions. In: Proceedings of the SICE 2004 Aug, vol. 4–6, pp. 1909–1914. Sapporo, Japan (2004)

    Google Scholar 

Download references

Acknowledgements

The work presented here owes much to the work of Morteza Azad as described in [1].

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Roy Featherstone .

Editor information

Editors and Affiliations

Appendix

Appendix

This appendix proves the result that \(p_i=\varvec{s}_i^\mathrm {T}\varvec{h}_{\nu (i)}\), where \(p_i\) and \(\varvec{s}_i\) are the momentum variable and axis vector of joint i, and \(\varvec{h}_{\nu (i)}\) is the total momentum of the subtree or self-contained subsystem consisting of body i and its descendants. A self-contained subsystem, in this context, is defined to be a subsystem in which every kinematic loop that involves at least one body in the subsystem is entirely contained within the subsystem. In general, \(\varvec{s}_i\) and \(\varvec{h}_{\nu (i)}\) will be spatial vectors. However, if the whole system is planar then they may instead be planar vectors.

Consider a kinematic tree consisting of N bodies and joints numbered from 1 to N according to a regular numbering scheme. Without loss of generality, we assume that every joint has only a single degree of freedom (DoF), which means that every multi-DoF joint has already been replaced by a kinematically equivalent chain of single-DoF joints connected by massless bodies, and that these extra bodies and joints are already included in N.

Let \(\varvec{p}\) and \(\dot{\varvec{q}}\) denote the joint-space momentum and velocity vectors of the tree, or the spanning tree if there are kinematic loops. By definition, the two are related by the equation

$$\begin{aligned} \varvec{p}= \varvec{H}\dot{\varvec{q}}\,, \end{aligned}$$
(44)

where \(\varvec{H}\) is the joint-space inertia matrix. This implies that

$$\begin{aligned} p_i = \sum _{j=1}^N H_{ij} \dot{q}_j \,. \end{aligned}$$
(45)

The definition of \(\varvec{H}\) for a general kinematic tree with single-DoF joints is

$$\begin{aligned} H_{ij} = \left\{ \begin{array}{cc} \varvec{s}_i^\mathrm {T}\varvec{I}_{\nu (i)} \varvec{s}_j &{} \text { if } i \in \nu (j) \\ \varvec{s}_i^\mathrm {T}\varvec{I}_{\nu (j)} \varvec{s}_j &{} \text { if } j \in \nu (i) \\ 0 &{} \text { otherwise} \end{array} \right. \end{aligned}$$
(46)

where \(\varvec{s}_i\) is the joint axis vector (i.e., joint motion subspace vector) of joint i, \(\varvec{I}_{i}\) is the inertia of body i (spatial or planar as appropriate), \(\nu (i)\) is the set of all bodies in the subtree beginning at body i, and \(\varvec{I}_{\nu (i)}=\sum _{j\in \nu (i)}\varvec{I}_{j}\).

Let \(\bar{\kappa }(i)\) be the set of all bodies on the path between body i and the base (body 0), excluding both body i and the base, and let \(\kappa (i)=\bar{\kappa }(i)\cup \{i\}\) be the same set including body i. If we use the terms ‘ancestor’ and ‘descendant’ in an inclusive sense, meaning that body i is both an ancestor and a descendant of itself, and use the term ‘proper ancestor’ in an exclusive sense, then the sets \(\nu (i)\), \(\kappa (i)\) and \(\bar{\kappa }(i)\) can be seen to be the sets of descendants, ancestors and proper ancestors, respectively, of body i. \(\kappa (i)\) is also the set of joints on the path between body i and the base.

We now rewrite Eq. 46 as follows:

$$\begin{aligned} H_{ij} = \left\{ \begin{array}{cc} \varvec{s}_i^\mathrm {T}\varvec{I}_{\nu (i)} \varvec{s}_j &{} \text { if } j \in \bar{\kappa }(i) \\ \varvec{s}_i^\mathrm {T}\varvec{I}_{\nu (j)} \varvec{s}_j &{} \text { if } j \in \nu (i) \\ 0 &{} \text { otherwise} \end{array} \right. \end{aligned}$$
(47)

which makes it clear that \(H_{ij}\) is nonzero only if \(j\in \bar{\kappa }(i)\) or \(j\in \nu (i)\). Substituting Eq. 47 into Eq. 45 gives

$$\begin{aligned} p_i= & {} \varvec{s}_i^\mathrm {T}\big ( \sum _{j\in \bar{\kappa }(i)} \varvec{I}_{\nu (i)} \varvec{s}_j \dot{q}_j + \sum _{j\in \nu (i)} \varvec{I}_{\nu (j)} \varvec{s}_j \dot{q}_j \big ) \nonumber \\= & {} \varvec{s}_i^\mathrm {T}\big ( \sum _{j\in \bar{\kappa }(i)} \sum _{k\in \nu (i)} \varvec{I}_{k} \varvec{s}_j \dot{q}_j + \sum _{j\in \nu (i)} \sum _{k\in \nu (j)} \varvec{I}_{k} \varvec{s}_j \dot{q}_j \big ) \nonumber \\= & {} \varvec{s}_i^\mathrm {T}\big ( \sum _{k\in \nu (i)} \sum _{j\in \bar{\kappa }(i)} \varvec{I}_{k} \varvec{s}_j \dot{q}_j + \sum _{k\in \nu (i)} \sum _{j\in \nu (i)\cap \kappa (k)} \varvec{I}_{k} \varvec{s}_j \dot{q}_j \big ) \nonumber \\= & {} \varvec{s}_i^\mathrm {T}\sum _{k\in \nu (i)} \varvec{I}_{k} \sum _{j\in \kappa (k)} \varvec{s}_j \dot{q}_j \,. \end{aligned}$$
(48)

The step from the second to the third line works as follows: \(\sum _{j\in \nu (i)}\sum _{k\in \nu (j)}\) is the sum over all jk pairs where j is a descendant of i and k is a descendant of j, whereas \(\sum _{k\in \nu (i)}\sum _{j\in \nu (i)\cap \kappa (k)}\) is the sum over all jk pairs where k is a descendant of i, and j is both a descendant of i and an ancestor of k; but these two sets of pairs are the same. The step from the third to the fourth line exploits the fact that \(\nu (i)\cap \kappa (k)\) is the set of all ancestors of body k from i onwards, whereas \(\bar{\kappa }(i)\) is the set of all ancestors of body k prior to i, so the union of the two sets is \(\kappa (k)\).

Now let \(\varvec{v}_k\) be the velocity of body k, let \(\varvec{h}_k=\varvec{I}_{k}\varvec{v}_k\) be the momentum of body k, and let \(\varvec{h}_{\nu (i)}=\sum _{k\in \nu (i)}\varvec{h}_k\) be the total momentum of the subtree beginning at body i. The velocity of any body in a rigid-body system is the sum of the joint velocities along any one path between that body and the base, so \(\varvec{v}_k=\sum _{j\in \kappa (k)}\varvec{s}_j\dot{q}_j\). We can now further simplify Eq. 48 as follows:

$$\begin{aligned} p_i \,=\, \varvec{s}_i^\mathrm {T}\!\! \sum _{k\in \nu (i)} \!\! \varvec{I}_{k} \varvec{v}_k \,=\, \varvec{s}_i^\mathrm {T}\!\! \sum _{k\in \nu (i)} \!\! \varvec{h}_k \,=\, \varvec{s}_i^\mathrm {T}\varvec{h}_{\nu (i)} \,, \end{aligned}$$
(49)

which establishes the desired result for the case of a kinematic tree. If the system contains kinematic loops then we find that Eq. 49 no longer holds for all joints, but does still hold for any joint that is not involved in any kinematic loop. This is equivalent to the condition stated at the beginning that the subsystem consisting of the bodies in \(\nu (i)\) be self-contained.

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG

About this chapter

Cite this chapter

Featherstone, R. (2018). A New Simple Model of Balancing in the Plane. In: Bicchi, A., Burgard, W. (eds) Robotics Research. Springer Proceedings in Advanced Robotics, vol 3. Springer, Cham. https://doi.org/10.1007/978-3-319-60916-4_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-60916-4_10

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-60915-7

  • Online ISBN: 978-3-319-60916-4

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics