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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Azad, M.: Balancing and hopping motion control algorithms for an under-actuated robot. Ph.D. thesis, The Australian National University, School of Engineering (2014)
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)
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
Double Robotics ‘Double’ telepresence robot. http://www.doublerobotics.com (2014). Accessed Aug 2015
Featherstone, R.: Rigid Body Dynamics Algorithms. Springer, New York (2008)
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
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
Hauser, J., Murray, R.M.: Nonlinear controllers for non-integrable systems: the acrobot example. Proc. Am. Control Conf. Nov 3–5, 669–671 (1990)
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)
Segway Inc. Personal transporter. http://www.segway.com (2015). Accessed Aug 2015
Spong, M.W.: The swing up control problem for the acrobot. IEEE Control Syst. Mag. 15(1), 49–55 (1995)
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)
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)
Acknowledgements
The work presented here owes much to the work of Morteza Azad as described in [1].
Author information
Authors and Affiliations
Corresponding author
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
where \(\varvec{H}\) is the joint-space inertia matrix. This implies that
The definition of \(\varvec{H}\) for a general kinematic tree with single-DoF joints is
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:
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
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 j, k 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 j, k 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:
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
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)