Skip to main content
Log in

On the dynamics of a rolling ball actuated by internal point masses

  • Published:
Meccanica Aims and scope Submit manuscript

Abstract

The motion of a rolling ball actuated by internal point masses that move inside the ball’s frame of reference is considered. The equations of motion are derived by applying Euler–Poincaré’s symmetry reduction method in concert with Lagrange–d’Alembert’s principle, which accounts for the presence of the nonholonomic rolling constraint. As a particular example, we consider the case when the masses move along internal rails, or trajectories, of arbitrary shape and fixed within the ball’s frame of reference. Our system of equations can treat most possible methods of actuating the rolling ball with internal moving masses encountered in the literature, such as circular motion of the masses mimicking swinging pendula or straight line motion of the masses mimicking magnets sliding inside linear tubes embedded within a solenoid. Moreover, our method can model arbitrary rail shapes and an arbitrary number of rails such as several ellipses and/or figure eights, which may be important for future designs of rolling ball robots. For further analytical study, we also reduce the system to a single differential equation when the motion is planar, that is, considering the motion of the rolling disk actuated by internal point masses, in which case we show that the results obtained from the variational derivation coincide with those obtained from Newton’s second law. Finally, the equations of motion are solved numerically, illustrating a wealth of complex behaviors exhibited by the system’s dynamics. Our results are relevant to the dynamics of nonholonomic systems containing internal degrees of freedom and to further studies of control of such systems actuated by internal masses.

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
Fig. 11
Fig. 12
Fig. 13

Similar content being viewed by others

References

  1. Putkaradze V, Rogers S (2017) On the optimal control of a rolling ball robot actuated by internal point masses. arXiv:1708.03829

  2. Sphero, ed. BB-8 by Sphero (2015) https://brandfolder.com/bb8/attachments/926upng2/bb-8-by-sphero-bb-8-rolling-2-genericfile.jpg?dl=true&resource_key=mln615o60934&resource_type=Brandfolder. Accessed 24 Aug 2017

  3. Hernández JD (2013) Moisture measurement in crops using spherical robots. Ind Robot: Int J 40(1):59–66

    Article  Google Scholar 

  4. Poincaré H (1901) Sur une forme nouvelle des équations de la mécanique. CR Acad Sci 132:369–371

    MATH  Google Scholar 

  5. Hamel G (1904) Die Lagrange–Euler’schen gleichungen der mechanik. Z Math Phys 50:1–57

    MATH  Google Scholar 

  6. Borisov AV, Mamaev IS, Bizyaev IA (2016) Historical and critical review of the development of nonholonomic mechanics: the classical period. Regul Chaotic Dyn 21(4):455–476

    Article  ADS  MathSciNet  MATH  Google Scholar 

  7. Shen J, Schneider DA, Bloch AM (2008) Controllability and motion planning of a multibody chaplygin’s sphere and chaplygin’s top. Int J Robust Nonlinear Control 18(9):905–945

    Article  MathSciNet  MATH  Google Scholar 

  8. Holm DD (2011) Geometric mechanics: rotating, translating, and rolling. Geometric Mechanics. Imperial College Press, London isbn: 9781848167773

    MATH  Google Scholar 

  9. Chaplygin SA (2002) On a motion of a heavy body of revolution on a horizontal plane. Regul Chaotic Dyn 7(2):119–130

    Article  MathSciNet  MATH  Google Scholar 

  10. Chaplygin SA (2002) On a ball’s rolling on a horizontal plane. Regul Chaotic Dyn 7(2):131–148

    Article  MathSciNet  MATH  Google Scholar 

  11. Routh E (1884) Advanced rigid body dynamics. MacMillan and Co., London

    Google Scholar 

  12. Jellett JH (1872) A treatise on the theory of friction. Hodges, Foster, and Company, Fredericton

    MATH  Google Scholar 

  13. Borisov AV, Kilin AA, Mamaev IS (2013) The problem of drift and recurrence for the rolling Chaplygin ball. Regul Chaotic Dyn 18(6):832–859

    Article  ADS  MathSciNet  MATH  Google Scholar 

  14. Borisov AV, Kazakov AO, Sataev IR (2016) Spiral chaos in the nonholonomic model of a Chaplygin top. Regul Chaotic Dyn 21(7–8):939–954

    Article  ADS  MathSciNet  MATH  Google Scholar 

  15. Borisov AV, Kazakov AO, Sataev IR (2014) The reversal and chaotic attractor in the nonholonomic model of Chaplygin’s top. Regul Chaotic Dyn 19(6):718–733

    Article  ADS  MathSciNet  MATH  Google Scholar 

  16. Das T, Mukherjee R, Yuksel H (2001) Design considerations in the development of a spherical mobile robot. In: Proceedings of 15th SPIE annual international symposium on aerospace/defense sensing, simulation, and controls, vol 4364, pp 61–71

  17. Mojabi P et al (2002) Introducing august: a novel strategy for an omnidirectional spherical rolling robot. In: IEEE international conference on robotics and automation, ICRA’02., vol 4, pp 3527–3533

  18. Borisov AV, Kilin AA, Mamaev IS (2012) How to control Chaplygin’s sphere using rotors. Regul Chaotic Dyn 17(3):258–272

    Article  ADS  MathSciNet  MATH  Google Scholar 

  19. Bolotin S (2012) The problem of optimal control of a Chaplygin ball by internal rotors. Regul Chaotic Dyn 17(6):559–570

    Article  ADS  MathSciNet  MATH  Google Scholar 

  20. Gajbhiye S, Banavar R (2016) Geometric tracking control for a nonholonomic system: a spherical robot. IFAC-PapersOnLine 49(18):820–825

    Article  MATH  Google Scholar 

  21. Gajbhiye S, Banavar RN (2015) Geometric modeling and local controllability of a spherical mobile robot actuated by an internal pendulum. Int J Robust Nonlinear Control 26:2436–2454. https://doi.org/10.1002/rnc.3457

    Article  MathSciNet  MATH  Google Scholar 

  22. Kilin AA, Pivovarova EN, Ivanova TB (2015) Spherical robot of combined type: dynamics and control. Regul Chaotic Dyn 20(6):716–728

    Article  ADS  MathSciNet  MATH  Google Scholar 

  23. Burkhardt MR, Burdick JW (2016) Reduced dynamical equations for barycentric spherical robots. In: IEEE international conference on robotics and automation (ICRA), pp 2725–2732

  24. Burkhardt MR, et al. (2014) Energy harvesting analysis for moball, a self-propelled mobile sensor platform capable of long duration operation in harsh terrains. In: IEEE international conference on robotics and automation (ICRA), pp 2665–2672

  25. Davoodi F, Burdick JW, Rais-Zadeh M (2014) Moball network: a self-powered intelligent network of controllable spherical mobile sensors to explore solar planets and moons. In: AIAA SPACE 2014 conference and exposition, p 4261

  26. Asama J, et al. (2015) Design investigation of a coreless tubular linear generator for a moball: a spherical exploration robot with wind-energy harvesting capability. In: IEEE international conference on robotics and automation (ICRA), pp 244–251

  27. Davoodi F, et al. (2015) Moball: an intelligent wind-opportunistic mobile sensor to monitor the polar regions. In: IEEE SENSORS, pp 1–4

  28. Bowkett J, Burkhardt MR, Burdick JW (2016) Combined energy harvesting and control of moball: a barycentric spherical robot. In: International symposium on experimental robotics. Springer, Berlin, pp 71–83

    Google Scholar 

  29. Bolotin SV, Popova TV (2013) On the motion of a mechanical system inside a rolling ball. Regul Chaotic Dyn 18(1–2):159–165

    Article  ADS  MathSciNet  MATH  Google Scholar 

  30. Pivovarova EN, Ivanova TB (2014) Stability analysis of periodic solutions in the problem of the rolling of a ball with a pendulum. Nonlinear Dyn Mob Robot 2(1):21–32

    Google Scholar 

  31. Ivanova T, Pivovarova E (2015) Dynamics and control of a spherical robot with an axisymmetric pendulum actuator. arXiv:1511.02655

  32. Ivanova TB, Kilin AA, Pivovarova EN (2018) Controlled motion of a spherical robot with feedback. I. J Dyn Control Syst 24(3):497–510

    Article  MathSciNet  MATH  Google Scholar 

  33. Ilin KI, Moffatt HK, Vladimirov VA (2017) Dynamics of a rolling robot. In: Proceedings of the national academy of sciences, pp 12858–12863

    Article  MathSciNet  Google Scholar 

  34. Sphero, ed. Sphero Edu (2017) https://brandfolder.com/spheroedu/attachments/opnbxt-5zllfs-30z63c/sphero-edu-sprkplus-hero-genericfile.png?dl=true&resource_key=ooxisb-8l6c4o-f9z224&resource_type=Brandfolder. Accessed 24 Aug 2017

  35. Ascher UM, Mattheij RMM, Russell RD (1994) Numerical solution of boundary value problems for ordinary differential equations, vol 13. Siam, Philadelphia

    MATH  Google Scholar 

  36. Hairer E, Wanner G (1996) Solving ordinary differential equations. II, volume 14 of springer series in computational mathematics

  37. Squire W, Trapp G (1998) Using complex variables to estimate derivatives of real functions. SIAM Rev 40(1):110–112

    Article  ADS  MathSciNet  MATH  Google Scholar 

  38. Martins JRRA, Sturdza P, Alonso JJ (2001) The connection between the complex-step derivative approximation and algorithmic differentiation. In: AIAA paper, vol 921

  39. Martins JRRA, Sturdza P, Alonso JJ (2003) The complex-step derivative approximation. ACM Trans Math Softw (TOMS) 29(3):245–262

    Article  MathSciNet  MATH  Google Scholar 

  40. Frisvad JR (2012) Building an orthonormal basis from a 3D unit vector without normalization. J Gr Tools 16(3):151–159

    Article  Google Scholar 

  41. Kozlov VV (2010) Lagrangian mechanics and dry friction. Nelineinaya Dinamika [Russ J Nonlinear Dyn] 6(4):855–868

    Article  Google Scholar 

  42. Kozlov VV (2011) Friction by painlevé and lagrangian mechanics. In: Doklady physics, vol 56. Springer, Berlin, pp 355–358

    Article  ADS  Google Scholar 

  43. Karavaev YL, Klekovkin AV, Kilin AA (2017) The dynamical model of the rolling friction of spherical bodies on a plane without slipping. Nelineinaya Dinamika [Russ J Nonlinear Dyn] 13(4):599–609

    Article  MathSciNet  MATH  Google Scholar 

  44. Kozlov VV (1982) Dynamics of systems with nonintegrable constraints. 1. Vestnik Moskovskogo Universiteta Seriya 1 Matematika Mekhanika (3):92–100

  45. Kozlov VV (1982) Dynamics of systems with nonintegrable constraints. 2. Vestnik Moskovskogo Universiteta Seriya 1 Matematika Mekhanika (4):70–76

  46. Lewis AD, Murray RM (1995) Variational principles for constrained systems: theory and experiment. Int J Non-Linear Mech 30(6):793–815

    Article  MathSciNet  MATH  Google Scholar 

  47. Suslov GK (1946) Theoretical mechanics. Gostekhizdat, Mosc 3:40–43

    Google Scholar 

  48. Putkaradze V, Rogers SM (2018) Constraint control of nonholonomic mechanical systems. J Nonlinear Sci 28(1):193–234

    Article  ADS  MathSciNet  MATH  Google Scholar 

  49. Graf B (2008) Quaternions and dynamics. arXiv:0811.2889

  50. Stevens BL, Lewis FL, Johnson EN (2015) Aircraft control and simulation: dynamics, controls design, and autonomous systems. Wiley, Hoboken

    Book  Google Scholar 

  51. Baraff D (2001) Physically based modeling: Rigid body simulation. SIGGRAPH Course Notes ACM SIGGRAPH 2(1):2–1

Download references

Acknowledgements

We are indebted to our colleagues A.M. Bloch, D.M. de Diego, F. Gay-Balmaz, D.D. Holm, M. Leok, A. Lewis, T. Ohsawa, V.A. Vladimirov, and D.V. Zenkov for useful and fruitful discussions. This research was partially supported by the NSERC Discovery Grant, the University of Alberta Centennial Fund, and the Alberta Innovates Technology Funding (AITF) which came through the Alberta Centre for Earth Observation Sciences (CEOS). S.M. Rogers also received support from the University of Alberta Doctoral Recruitment Scholarship, the FGSR Graduate Travel Award, the IGR Travel Award, the GSA Academic Travel Award, and the AMS Fall Sectional Graduate Student Travel Grant. The authors declare that they have no conflict of interest.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Stuart Rogers.

Appendices

Appendix A: Background material: variational mechanics, Euler–Poincaré’s method, and nonholonomic constraints

This appendix reviews several principles from mechanics that are useful for developing the equations of motion for the rolling ball. Hamilton’s principle and Euler–Poincaré’s method are reviewed in “Subappendix A.1”, while Lagrange–d’Alembert’s principle is reviewed in “Subappendix A.2”. Euler–Poincaré’s method and Lagrange–d’Alembert’s principle are later utilized to derive the equations of motion for the rolling ball in Sect. 3.

1.1 Hamilton’s principle, symmetry reduction, and Euler–Poincaré’s method

Hamilton’s principle A mechanical system consists of a configuration space, which is a manifold \(M\) with tangent bundle \(TM = \bigcup _{q \in M} T_q M\), and a Lagrangian \(L(q,\dot{q}): TM \rightarrow {\mathbb {R}}\), \((q,\dot{q}) \in TM\). The equations of motion are given by Hamilton’s principle (also called the variational principle of stationary action) which states that

$$\begin{aligned} \delta \int _a^b L \left( q, \dot{q} \right) \mathrm {d} t=0, \quad \delta q(a)=\delta q(b)=0, \end{aligned}$$
(A.1)

for all smooth functions \(\delta q(t)\) defined for \(a\le t \le b\) and that vanish at the endpoints (i.e. \(\delta q(a)=\delta q(b)=0\)). Pushing the variational derivative inside the integral, integrating by parts, and enforcing the vanishing endpoint conditions \(\delta q(a)=\delta q(b)=0\) yields

$$\begin{aligned} \delta \int _a^b L\left( q, \dot{q}\right) \mathrm {d}t=\int _a^b \delta L\left( q, \dot{q}\right) \mathrm {d}t&=\int _a^b \left[ \frac{\partial L\left( q, \dot{q}\right) }{\partial q}\delta q + \frac{\partial L\left( q, \dot{q}\right) }{\partial \dot{q}}\delta \dot{q} \right] \mathrm {d} t \\&=\int _a^b \left[ \frac{\partial L\left( q, \dot{q} \right) }{\partial q}\delta q - \frac{\mathrm {d} }{\mathrm {d} t} \frac{\partial L\left( q, \dot{q}\right) }{\partial \dot{q}}\delta q \right] \mathrm {d} t + \left. \frac{\partial L\left( q, \dot{q} \right) }{\partial \dot{q}} \delta q \right| _a^b \\&=\int _a^b \left[ \frac{\partial L\left( q, \dot{q}\right) }{\partial q} - \frac{\mathrm {d} }{\mathrm {d} t} \frac{\partial L\left( q, \dot{q}\right) }{\partial \dot{q}} \right] \delta q \mathrm {d} t. \end{aligned}$$
(A.2)

Insisting that \(\delta \int _a^b L\left( q, \dot{q} \right) \mathrm {d}t=0\) for all such smooth functions \(\delta q\) produces the Euler–Lagrange equations of motion:

$$\begin{aligned} \frac{\partial L}{\partial q} - \frac{\mathrm {d} }{\mathrm {d} t} \frac{\partial L}{\partial \dot{q}} =0. \end{aligned}$$
(A.3)

Recall that a Lie group is a smooth manifold which is also a group and for which the group operations of multiplication and inversion are smooth functions [8]. In the case when there is an intrinsic symmetry in the configuration space, in particular when \(M=G\), a Lie group, and when there is an appropriate invariance of the Lagrangian with respect to \(G\), these Euler–Lagrange equations, defined on the group’s tangent bundle \(TG\) (i.e. depending on both g and \(\dot{g}\)), are cumbersome to use.

Free rigid body For example, consider the case of a rigid body rotating about a fixed point with no external torques, so that \(G=SO(3)\), \(g=\Lambda \in SO(3)=G\), and the Lagrangian is \(L\left( \Lambda ,\dot{\Lambda }\right)\). This mechanical system is called a free rigid body. The Euler–Lagrange equations are

$$\begin{aligned} \frac{\partial L}{\partial \Lambda } - \frac{\mathrm {d} }{\mathrm {d} t} \frac{\partial L}{\partial \dot{\Lambda }} =\mathbf {0}, \quad \Lambda ^\mathsf {T} \Lambda =I, \end{aligned}$$
(A.4)

where \(I \in {\mathbb {R}}^{3 \times 3}\) is the \(3 \times 3\) identity matrix. Equation (A.4) involves 9 ordinary differential equations with 6 algebraic (i.e. non-differential) constraints, and (A.4) is highly counterintuitive to use. Euler devised a description of reduced rigid body motion in terms of the body angular velocity. A more rigorous way to represent this reduction idea is through the Euler–Poincaré description of motion [4], or Euler–Poincaré’s method. Assuming that the Lagrangian is invariant with respect to rotations on the left, which corresponds to the description of the equations of motion in the body frame, the symmetry-reduced Lagrangian should be of the form \(\ell \left( \Lambda ^{-1} \dot{\Lambda }\right)\).

Since \(\Lambda \in SO(3)\), \(\Lambda ^{-1} \Lambda = I\) and \(\Lambda ^{-1} = \Lambda ^\mathsf {T}\), so that

$$\begin{aligned} { \left( \Lambda ^{-1} \Lambda \right) }^\cdot&= \Lambda ^{-1} \dot{\Lambda }+ \left( \Lambda ^{-1}\right) ^\cdot \Lambda = \Lambda ^{-1} \dot{\Lambda }+ \left( \Lambda ^\mathsf {T} \right) ^\cdot \Lambda = \Lambda ^{-1} \dot{\Lambda }+ {\dot{\Lambda }}^\mathsf {T} \Lambda = \Lambda ^{-1} \dot{\Lambda }+ \left( \Lambda ^\mathsf {T} \dot{\Lambda }\right) ^\mathsf {T} \\&= \Lambda ^{-1} \dot{\Lambda }+ \left( \Lambda ^{-1} \dot{\Lambda }\right) ^\mathsf {T} = \mathbf{0}. \end{aligned}$$
(A.5)

Hence \(\Lambda ^{-1} \dot{\Lambda }= -\left( \Lambda ^{-1} \dot{\Lambda }\right) ^\mathsf {T}\), and so \(\Lambda ^{-1} \dot{\Lambda }\in {\mathfrak{so}}(3)\); moreover, \(\Lambda ^{-1} \delta \Lambda \in {\mathfrak{so}}(3)\). The isomorphic mapping from the column vectors in \({\mathbb {R}}^3\) to the Lie algebra \({\mathfrak{so}}(3)\), i.e. skew-symmetric matrices, is defined using the hat map ⎵\(^\wedge : {\mathbb {R}}^3 \rightarrow {\mathfrak{so}}(3)\) as

$$\begin{aligned} {\widehat{\varvec{\omega }}} = \begin{bmatrix} \omega _1 \\ \omega _2 \\ \omega _3 \end{bmatrix}^\wedge = \begin{bmatrix} 0&-\omega _3&\omega _2 \\ \omega _3&0&-\omega _1 \\ -\omega _2&\omega _1&0 \end{bmatrix}, \end{aligned}$$
(A.6)

and the inverse mapping from \({\mathfrak{so}}(3)\) to the column vectors in \({\mathbb {R}}^3\) is defined using the caron map ⎵\(^\vee : {\mathfrak{so}}(3) \rightarrow {\mathbb {R}}^3\) as

$$\begin{aligned} {\begin{bmatrix} 0&-\omega _3&\omega _2 \\ \omega _3&0&-\omega _1 \\ -\omega _2&\omega _1&0 \end{bmatrix}}^\vee = \begin{bmatrix} \omega _1 \\ \omega _2 \\ \omega _3 \end{bmatrix} = {\varvec{\omega }}. \end{aligned}$$
(A.7)

Since the hat map ⎵\(^\wedge : {\mathbb {R}}^3 \rightarrow {\mathfrak{so}}(3)\) and its inverse ⎵\(^\vee : {\mathfrak{so}}(3) \rightarrow {\mathbb {R}}^3\) give isomorphisms between \({\mathfrak{so}}(3)\) and \({\mathbb {R}}^3\) and since \(\Lambda ^{-1} \dot{\Lambda }\in {\mathfrak{so}}(3)\), the symmetry-reduced Lagrangian should also be of the form \(\ell \left( {\varvec{\Omega }}\right)\), where \({\varvec{\Omega }}\equiv \left[ \Lambda ^{-1} \dot{\Lambda }\right] ^\vee \in {\mathbb {R}}^3\). The variation of \({\varvec{\Omega }}\) is computed as follows [8]:

$$\begin{aligned} \delta {\varvec{\Omega }}&= \dot{\varvec{\Sigma }}+ \left( {{\widehat{{\varvec{\Omega }}}}} {\widehat{{\varvec{\Sigma }}}}-{\widehat{{\varvec{\Sigma }}}} {{\widehat{{\varvec{\Omega }}}}} \right) ^\vee = \dot{\varvec{\Sigma }}+ {\varvec{\Omega }}\times {\varvec{\Sigma }}, \end{aligned}$$
(A.8)

where \({\varvec{\Sigma }}\equiv \left( \Lambda ^{-1} \delta \Lambda \right) ^\vee \in {\mathbb {R}}^3\). Under the hat map isomorphism, the variations \({\varvec{\Sigma }}\) lie in the Lie algebra \({\mathfrak{so}}(3)\). Taking the variation of the action integral, pushing the variational derivative inside the integral, integrating by parts, and enforcing the endpoint conditions \({\varvec{\Sigma }}(a) ={\varvec{\Sigma }}(b) = \mathbf {0}\) yields

$$\begin{aligned} \delta \int _a^b \ell \left( {\varvec{\Omega }}\right) \mathrm {d} t&= \int _a^b \delta \ell \left( {\varvec{\Omega }}\right) \mathrm {d} t = \int _a^b \left\langle \frac{\delta \ell }{\delta {\varvec{\Omega }}}, \delta {\varvec{\Omega }}\right\rangle \mathrm {d} t = \int _a^b \left\langle \frac{\delta \ell }{\delta {\varvec{\Omega }}}, \dot{\varvec{\Sigma }}+ {\varvec{\Omega }}\times {\varvec{\Sigma }}\right\rangle \mathrm {d} t \\&= -\int _a^b \left\langle \left( \frac{\mathrm {d}}{\mathrm {d}t}+{\varvec{\Omega }}\times \right) \frac{\delta \ell }{\delta {\varvec{\Omega }}}, {\varvec{\Sigma }}\right\rangle \mathrm {d} t+ \left. \left\langle \frac{\delta \ell }{\delta {\varvec{\Omega }}}, {\varvec{\Sigma }}\right\rangle \right| _a^b = -\int _a^b \left\langle \left( \frac{\mathrm {d}}{\mathrm {d}t}+{\varvec{\Omega }}\times \right) \frac{\delta \ell }{\delta {\varvec{\Omega }}}, {\varvec{\Sigma }}\right\rangle \mathrm {d} t. \end{aligned}$$
(A.9)

Insisting that \(\delta \int _a^b \ell \left( {\varvec{\Omega }}\right) \mathrm {d} t = 0\) for all smooth variations \({\varvec{\Sigma }}\) that vanish at the endpoints generates the well-known equations of motion for the free rigid body:

$$\begin{aligned} \frac{\mathrm {d}}{\mathrm {d} t} \frac{\delta \ell }{\delta {\varvec{\Omega }}} + {\varvec{\Omega }}\times \frac{\delta \ell }{\delta {\varvec{\Omega }}} =\mathbf {0}. \end{aligned}$$
(A.10)

Note that in the above derivation, the functional derivative notation \(\frac{\delta \ell }{\delta {\varvec{\Omega }}}\) is used rather than the partial derivative notation \(\frac{\partial \ell }{\partial {\varvec{\Omega }}}\). The former is used if the Lagrangian depends functionally (e.g. involving a derivative or integral) rather than pointwise on its argument. If the Lagrangian depends only pointwise on its argument, such as is the case for the free rigid body and heavy top (to be discussed next), the two notations agree. For the free rigid body, the symmetry-reduced Lagrangian is \(l\left( {\varvec{\Omega }}\right) =\frac{1}{2}\left\langle {\mathbb {I}}{\varvec{\Omega }},{\varvec{\Omega }}\right\rangle\), \(\frac{\delta \ell }{\delta {\varvec{\Omega }}} = {\mathbb {I}}{\varvec{\Omega }}\), and the equations of motion (A.10) become

$$\begin{aligned} {\dot{{\varvec{\Omega }}}} = {{\mathbb {I}}}^{-1} \left[ \left( {\mathbb {I}}{\varvec{\Omega }}\right) \times {\varvec{\Omega }}\right] . \end{aligned}$$
(A.11)

By multiplying (A.10) by \(\Lambda\) and using the identity \(\dot{\Lambda }= \Lambda {\widehat{{\varvec{\Omega }}}}\), the equations of motion for the free rigid body may be expressed in conservation law form:

$$\begin{aligned} \frac{\mathrm {d} }{\mathrm {d} t} \left[ \Lambda \frac{\delta \ell }{\delta {\varvec{\Omega }}} \right] =\mathbf {0} \Leftrightarrow \Lambda \frac{\delta \ell }{\delta {\varvec{\Omega }}}=\mathrm{const}. \end{aligned}$$
(A.12)

Heavy top As another application of Euler–Poincaré’s method, consider the heavy top, which is a rigid body of mass m rotating with a fixed point of support in a uniform gravitational field with gravitational acceleration g. Let \({\varvec{\chi }}\) denote the vector in the body frame from the fixed point of support to the heavy top’s center of mass. To compute the equations of motion for the heavy top, another advected variable \({\varvec{\Gamma }}\equiv \Lambda ^{-1} \mathbf {e}_3\) must be introduced. \({\varvec{\Gamma }}\) represents the motion of the unit vector \(\mathbf {e}_3\) along the spatial vertical axis, as seen from the body frame. Computing the time and variational derivatives of \({\varvec{\Gamma }}\) yields

$$\begin{aligned} {\dot{{\varvec{\Gamma }}}} = \left( \Lambda ^{-1} \mathbf {e}_3 \right) ^\cdot =-\Lambda ^{-1} \dot{\Lambda }\Lambda ^{-1} \mathbf {e}_3=-{\widehat{{\varvec{\Omega }}}}{\varvec{\Gamma }}={\varvec{\Gamma }}\times {\varvec{\Omega }}\end{aligned}$$
(A.13)

and

$$\begin{aligned} \delta {\varvec{\Gamma }}= \delta \left( \Lambda ^{-1} \mathbf {e}_3 \right) =-\Lambda ^{-1} \delta \Lambda \Lambda ^{-1} \mathbf {e}_3=-\widehat{{\varvec{\Sigma }}}{\varvec{\Gamma }}={\varvec{\Gamma }}\times {\varvec{\Sigma }}. \end{aligned}$$
(A.14)

The heavy top’s reduced Lagrangian is \(l\left( {\varvec{\Omega }},{\varvec{\Gamma }}\right) =\frac{1}{2}\left\langle {\mathbb {I}}{\varvec{\Omega }},{\varvec{\Omega }}\right\rangle -\left\langle mg{\varvec{\chi }},{\varvec{\Gamma }}\right\rangle\). Taking the variation of the action integral, pushing the variational derivative inside the integral, integrating by parts, and enforcing the endpoint conditions \({\varvec{\Sigma }}(a) = {\varvec{\Sigma }}(b) = \mathbf {0}\) yields

$$\begin{aligned} \delta \int _a^b l\left( {\varvec{\Omega }},{\varvec{\Gamma }}\right) \mathrm {d} t = \int _a^b \delta l\left( {\varvec{\Omega }},{\varvec{\Gamma }}\right) \mathrm {d} t&= \int _a^b \left[ \left\langle {\mathbb {I}}{\varvec{\Omega }},\delta {\varvec{\Omega }}\right\rangle -\left\langle mg{\varvec{\chi }},\delta {\varvec{\Gamma }}\right\rangle \right] \mathrm {d} t \\&= \int _a^b \left\langle -\frac{\mathrm {d} }{\mathrm {d} t} \left( {\mathbb {I}}{\varvec{\Omega }}\right) + \left( {\mathbb {I}}{\varvec{\Omega }}\right) \times {\varvec{\Omega }}+mg{\varvec{\Gamma }}\times {\varvec{\chi }},{\varvec{\Sigma }}\right\rangle \mathrm {d} t. \end{aligned}$$
(A.15)

Insisting that \(\delta \int _a^b l\left( {\varvec{\Omega }},{\varvec{\Gamma }}\right) \mathrm {d} t = 0\) for all smooth variations \({\varvec{\Sigma }}\) that vanish at the endpoints generates the equations of motion for the heavy top:

$$\begin{aligned} {\dot{{\varvec{\Omega }}}}&= {{\mathbb {I}}}^{-1} \left[ \left( {\mathbb {I}}{\varvec{\Omega }}\right) \times {\varvec{\Omega }}+mg{\varvec{\Gamma }}\times {\varvec{\chi }}\right] , \\ {\dot{{\varvec{\Gamma }}}}&= {\varvec{\Gamma }}\times {\varvec{\Omega }}. \end{aligned}$$
(A.16)

Adjoint and coadjoint operations In order to consider mechanics on general groups, adjoint and coadjoint operations are defined as follows. Consider a Lie group \(G\) with Lie algebra \({\mathfrak{g}}\), dual Lie algebra \({\mathfrak{g}}^*\), and a pairing \(\left\langle \cdot ,\cdot \right\rangle : {\mathfrak{g}}^* \times {\mathfrak{g}} \rightarrow {\mathbb {R}}\). The ADjoint operation \(\mathrm{AD} : G \times G \rightarrow G\) is defined by

$$\begin{aligned} \mathrm{AD}_g h = g h g^{-1} \quad \forall g,h \in G. \end{aligned}$$
(A.17)

The Adjoint operation \(\mathrm{Ad} : G \times {\mathfrak{g}} \rightarrow {\mathfrak{g}}\) is defined by taking a smooth curve h(t) with \(h(0)=e\) and \(\dot{h}(0)=\eta \in {\mathfrak{g}}\) (arbitrary and fixed) and computing

$$\begin{aligned} \mathrm{Ad}_g \eta := \left. \frac{\mathrm {d} }{\mathrm {d} t}\right| _{t=0} \mathrm{AD}_g h (t) = g \eta g^{-1} \quad \forall g \in G, \quad \forall \eta \in {\mathfrak{g}}. \end{aligned}$$
(A.18)

The adjoint operation \(\mathrm{ad} : {\mathfrak{g}} \times {\mathfrak{g}} \rightarrow {\mathfrak{g}}\) is defined by taking a smooth curve g(t) with \(g(0)=e\) and \(\dot{g}(0)=\xi \in {\mathfrak{g}}\) (arbitrary and fixed) and computing

$$\begin{aligned} \mathrm{ad}_\xi \eta := \left. \frac{\mathrm {d} }{\mathrm {d} t}\right| _{t=0} \mathrm{Ad}_{g(t)} \eta = \xi \eta - \eta \xi = \left[ \xi ,\eta \right] \quad \forall \xi ,\eta \in {\mathfrak{g}}, \end{aligned}$$
(A.19)

where \(\left[ \cdot ,\cdot \right] : {\mathfrak{g}} \times {\mathfrak{g}} \rightarrow {\mathbb {R}}\) is the Lie bracket defined by

$$\begin{aligned} \left[ \xi ,\eta \right] = \xi \eta - \eta \xi \quad \forall \xi ,\eta \in {\mathfrak{g}}. \end{aligned}$$
(A.20)

The coAdjoint operation \(\mathrm{Ad}^* : G \times {\mathfrak{g}}^* \rightarrow {\mathfrak{g}}^*\) is defined by

$$\begin{aligned} \left\langle \mathrm{Ad}^*_g \mu , \eta \right\rangle = \left\langle \mu , \mathrm{Ad}_g \eta \right\rangle \quad \forall g \in G, \quad \forall \mu \in {\mathfrak{g}}^*, \quad \forall \eta \in {\mathfrak{g}}. \end{aligned}$$
(A.21)

The coadjoint operation \(\mathrm{ad}^* : {\mathfrak{g}} \times {\mathfrak{g}}^* \rightarrow {\mathfrak{g}}^*\) is defined by

$$\begin{aligned} \left\langle \mathrm{ad}^*_\xi \mu , \eta \right\rangle = \left\langle \mu , \mathrm{ad}_\xi \eta \right\rangle \quad \forall \xi ,\eta \in {\mathfrak{g}}, \quad \forall \mu \in {\mathfrak{g}}^*. \end{aligned}$$
(A.22)

Euler–Poincaré’s method More generally, if the Lagrangian \(L : TG \rightarrow {\mathbb {R}}\) is left-invariant, i.e. \(L\left( hg,h \dot{g}\right) =L\left( g,\dot{g}\right) \quad \forall \left( g,\dot{g} \right) \in TG, \quad \forall h \in G\), we can define the symmetry-reduced Lagrangian through the symmetry reduction \(\ell =\ell \left( g^{-1} \dot{g} \right) =\ell (\xi )=L\left( e,\xi \right) ,\) where \(\xi \equiv g^{-1} \dot{g}\). Then, the equations of motion (A.3) are equivalent to the Euler–Poincaré equations of motion obtained from the variational principle

$$\begin{aligned} \delta \int _a^b \ell (\xi ) \text{d}t =0, \quad \text{ for } \text{ variations } \quad \delta \xi = \dot{\eta }+ \mathrm{ad}_\xi \eta , \quad \forall \eta (t):\, \eta (a)=\eta (b)=0. \end{aligned}$$
(A.23)

The variations \(\eta (t)\), assumed to be sufficiently smooth, are sometimes called free variations. Applying the variational principle (A.23) gives

$$\begin{aligned} \delta \int _a^b \ell (\xi ) \text{d}t = \int _a^b \left\langle \frac{\delta \ell }{\delta \xi }, \delta \xi \right\rangle \text{d}t&= \int _a^b \left\langle \frac{\delta \ell }{\delta \xi }, \dot{\eta }+ \mathrm{ad}_\xi \eta \right\rangle \text{d}t = \int _a^b \left\langle -\frac{\mathrm {d} }{\mathrm {d}t} \frac{\delta \ell }{\delta \xi } + \mathrm{ad}^*_ \xi \frac{\delta \ell }{\delta \xi },\eta \right\rangle \text{d}t = 0, \end{aligned}$$
(A.24)

which yields the Euler–Poincaré equations of motion:

$$\begin{aligned} \frac{\mathrm {d} }{\mathrm {d} t} \frac{\delta \ell }{\delta \xi } - \mathrm{ad}^*_ \xi \frac{\delta \ell }{\delta \xi } =0 . \end{aligned}$$
(A.25)

For right-invariant Lagrangians, i.e. \(L\left( gh,\dot{g}h\right) =L\left( g,\dot{g}\right) \quad \forall h \in G\), the Euler–Poincaré equations of motion (A.25) change by altering the sign in front of \(\mathrm{ad}^*_\xi\) from minus to plus. For the free rigid body, \(\varvec{\xi }= {\varvec{\Omega }}\), \(l\left( {\varvec{\Omega }}\right) =\frac{1}{2}\left\langle {\mathbb {I}}{\varvec{\Omega }},{\varvec{\Omega }}\right\rangle\), \(\frac{\delta \ell }{\delta {\varvec{\Omega }}} = {\mathbb {I}}{\varvec{\Omega }}\), and \(\mathrm{ad}^*_{{\varvec{\Omega }}} \frac{\delta \ell }{\delta {\varvec{\Omega }}} = - {\varvec{\Omega }}\times \frac{\delta \ell }{\delta {\varvec{\Omega }}} = \left( {\mathbb {I}}{\varvec{\Omega }}\right) \times {\varvec{\Omega }}\), so that the free rigid body equations of motion (A.11) derived earlier agree with the Euler–Poincaré equations of motion (A.25).

It is interesting that (A.25) implies the conservation of angular momentum. Indeed, letting \(\alpha \in {\mathfrak{g}}\) be arbitrary and constant in time and letting \(t_0 \in {\mathbb {R}}\) be an arbitrary time, one can derive that

$$\begin{aligned} \left\langle \left. \frac{\mathrm {d} }{\mathrm {d} t} \right| _{t=t_0} \mathrm{Ad}^*_{g^{-1}} \frac{\delta \ell }{\delta \xi }, \alpha \right\rangle&=0 . \end{aligned}$$
(A.26)

Euler–Poincaré’s method with an advected parameter In order to further treat the effect of gravity on the heavy top and also on the rolling ball in Sect. 3, we let the Lagrangian depend on a parameter (gravity) which is advected with the dynamics. Formally, let \(V\) be a vector space. Suppose the Lagrangian \(L\) depends on a parameter in the dual space \(V^*\), so that the general Lagrangian has the form \(L : TG \times V^* \rightarrow {\mathbb {R}}\). For a parameter \(\alpha _0 \in V^*\), suppose that the Lagrangian \(L_{\alpha _0} : TG \rightarrow {\mathbb {R}}\) defined by \(L_{\alpha _0}\left( g,\dot{g} \right) = L\left( g,\dot{g}, \alpha _0 \right) \quad \forall \left( g ,\dot{g} \right) \in TG\) is left-invariant, i.e. \(L\left( hg,h \dot{g},h \alpha _0 \right) =L \left( g,\dot{g}, \alpha _0 \right) \quad \forall \left( g,\dot{g} \right) \in TG, \quad \forall h \in G\). Then we can define the symmetry-reduced Lagrangian through the symmetry reduction \(\ell =\ell \left( g^{-1} \dot{g}, g^{-1} \alpha _0 \right) =\ell \left( \xi , \alpha \right) =L\left( e,\xi , \alpha \right) ,\) where \(\xi \equiv g^{-1} \dot{g}\) and \(\alpha \equiv g^{-1} \alpha _0\). Euler–Poincaré’s method with an advected parameter says that the equations of motion are obtained from the variational principle

$$\begin{aligned} \delta \int _a^b \ell \left( \xi ,\alpha \right) \text{d}t =0, \quad \text{ for } \text{ variations } \quad \delta \xi = \dot{\eta }+ \mathrm{ad}_\xi \eta , \, \delta \alpha = -\eta \alpha , \quad \forall \eta (t):\, \eta (a)=\eta (b)=0. \end{aligned}$$
(A.27)

Before applying this variational principle, the diamond operation \(\diamond\) is defined. \(\diamond : V \times V^* \rightarrow {\mathfrak{g}}^*\) is defined by

$$\begin{aligned} \left\langle v \diamond w , \xi \right\rangle = \left\langle w , \xi v \right\rangle \quad \forall v \in V, \quad \forall w \in V^*, \quad \forall \xi \in {\mathfrak{g}}. \end{aligned}$$
(A.28)

\(\diamond : V^* \times V \rightarrow {\mathfrak{g}}^*\) is defined by

$$\begin{aligned} \left\langle w \diamond v , \xi \right\rangle = -\left\langle v \diamond w , \xi \right\rangle = -\left\langle w , \xi v \right\rangle \quad \forall v \in V, \quad \forall w \in V^*, \quad \forall \xi \in {\mathfrak{g}}. \end{aligned}$$
(A.29)

Applying the variational principle (A.27) gives

$$\begin{aligned} \delta \int _a^b \ell \left( \xi ,\alpha \right) \text{d}t&= \int _a^b \left[ \left\langle \frac{\delta \ell }{\delta \xi }, \delta \xi \right\rangle + \left\langle \frac{\delta \ell }{\delta \alpha }, \delta \alpha \right\rangle \right] \text{d}t \\&= \int _a^b \left[ \left\langle \frac{\delta \ell }{\delta \xi }, \dot{\eta }+ \mathrm{ad}_\xi \eta \right\rangle +\left\langle \frac{\delta l}{\delta \alpha },-\eta \alpha \right\rangle \right] \text{d}t \\&= \int _a^b \left[ \left\langle -\frac{\mathrm {d} }{\mathrm {d} t} \frac{\delta \ell }{\delta \xi } + \mathrm{ad}^*_ \xi \frac{\delta \ell }{\delta \xi },\eta \right\rangle +\left\langle \frac{\delta l}{\delta \alpha } \diamond \alpha ,\eta \right\rangle \right] \text{d}t + \left. \left\langle \frac{\delta \ell }{\delta \xi } , \eta \right\rangle \right| _a^b \\&= \int _a^b \left\langle -\frac{\mathrm {d} }{\mathrm {d}t} \frac{\delta \ell }{\delta \xi } + \mathrm{ad}^*_ \xi \frac{\delta \ell }{\delta \xi }+\frac{\delta l}{\delta \alpha } \diamond \alpha ,\eta \right\rangle \text{d}t = 0, \end{aligned}$$
(A.30)

which yields the Euler–Poincaré equations of motion with an advected parameter:

$$\begin{aligned} \frac{\mathrm {d} }{\mathrm {d} t} \frac{\delta \ell }{\delta \xi } - \mathrm{ad}^*_ \xi \frac{\delta \ell }{\delta \xi } -\frac{\delta l}{\delta \alpha } \diamond \alpha =0 . \end{aligned}$$
(A.31)

The most direct application of the Euler–Poincaré equations of motion with an advected parameter is the heavy top, where the advected parameter is the gravity vector expressed in the heavy top’s body frame. For the heavy top, \(\varvec{\xi }={\varvec{\Omega }}\), \(\alpha = {\varvec{\Gamma }}\), \(l\left( {\varvec{\Omega }},{\varvec{\Gamma }}\right) =\frac{1}{2}\left\langle {\mathbb {I}}{\varvec{\Omega }},{\varvec{\Omega }}\right\rangle -\left\langle mg{\varvec{\chi }},{\varvec{\Gamma }}\right\rangle\), \(\frac{\delta \ell }{\delta {\varvec{\Omega }}}={\mathbb {I}}{\varvec{\Omega }}\), \(\mathrm{ad}^*_{{\varvec{\Omega }}} \frac{\delta \ell }{\delta {\varvec{\Omega }}} = - {\varvec{\Omega }}\times {\mathbb {I}}{\varvec{\Omega }}\), \(\frac{\delta \ell }{\delta {\varvec{\Gamma }}}=-mg{\varvec{\chi }}\), and \(\frac{\delta l}{\delta {\varvec{\Gamma }}} \diamond {\varvec{\Gamma }}=-mg{\varvec{\chi }}{\times {{\varvec{\Gamma }}}}\). Plugging all these identities into (A.31) recovers the previously derived heavy top equations of motion (A.16).

1.2 Nonholonomic constraints and Lagrange–d’Alembert’s principle

Suppose a mechanical system having configuration space \(M\), a manifold of dimension n, must satisfy \(m < n\) constraints that are linear in velocity. To express these velocity constraints formally, the notion of a distribution is needed. Given the manifold \(M\), a distribution \(\mathcal {D}\) on \(M\) is a subset of the tangent bundle \(TM = \bigcup _{q \in M} T_q M\): \(\mathcal {D} = \bigcup _{q \in M} \mathcal {D}_q\), where \(\mathcal {D}_q \subset T_q M\) and \(m = \mathrm {dim} \, \mathcal {D}_q < \mathrm {dim} \, T_q M = n\) for each \(q \in M\). A curve \(q(t) \in M\) satisfies the constraints if \(\dot{q}(t) \in \mathcal {D}_{q(t)}\). Lagrange–d’Alembert’s principle states that the equations of motion are determined by

$$\begin{aligned} \delta \int _a^b L(q, \dot{q}) \mathrm {d} t=0 \Leftrightarrow \int _a^b \left[ \frac{\mathrm {d} }{\text{d}t} \frac{\partial L}{\partial \dot{q}}- \frac{\partial L}{\partial q} \right] \delta q \, \text{d}t = 0 \Leftrightarrow \frac{\mathrm {d} }{\mathrm {d}t} \frac{\partial L}{\partial \dot{q}}- \frac{\partial L}{\partial q} \in \mathcal {D}_q^\circ \end{aligned}$$
(A.32)

for all smooth variations \(\delta q(t)\) of the curve q(t) such that \(\delta q(t) \in \mathcal {D}_{q(t)}\) for all \(a\le t \le b\) and such that \(\delta q(a)=\delta q(b)=0\), and for which \(\dot{q}(t) \in \mathcal {D}_{q(t)}\) for all \(a\le t \le b\). If one writes the nonholonomic constraint in local coordinates as \(\sum _{i=1}^n A(q)^j_i \dot{q}^i=0\), \(j=1, \ldots , m < n\), then (A.32) is written in local coordinates as

$$\begin{aligned} \frac{\mathrm {d} }{\mathrm {d} t} \frac{\partial L}{\partial {\dot{q}}^i}- \frac{\partial L}{\partial q^i} = \sum _{j=1}^m \lambda _j A(q)^j_i \, , \quad i=1,\ldots ,n \, , \quad \sum _{i=1}^n A(q)^j_i {\dot{q}}^i=0 , \end{aligned}$$
(A.33)

where the \(\lambda _j\) are Lagrange multipliers enforcing \(\sum _{i=1}^n A(q)^j_i {\delta q}^i=0\), \(j=1, \ldots , m\). Aside from Lagrange–d’Alembert’s approach, there is also an alternative vakonomic approach to derive the equations of motion for nonholonomic mechanical systems. Simply speaking, the vakonomic approach relies on substituting the constraint into the Lagrangian before taking variations or, equivalently, enforcing the constraints using the appropriate Lagrange multiplier method [44, 45]. In general, it is an experimental fact that all known nonholonomic mechanical systems obey the equations of motion resulting from Lagrange–d’Alembert’s principle [46].

Suslov’s problem To illustrate Lagrange–d’Alembert’s principle in conjunction with Euler–Poincaré’s method, also known as Euler–Poincaré-Suslov’s method, consider a rigid body rotating about a fixed point such that its body angular velocity \({\varvec{\Omega }}\) must be orthogonal to a prescribed body frame vector \(\varvec{\xi }\). Such a rigid body is called Suslov’s problem in honor of the Russian mathematician who introduced and studied it in 1902 [47]. Mathematically, the constraint for Suslov’s problem is \(\left\langle {\varvec{\Omega }},\varvec{\xi }\right\rangle =0\), so that Suslov’s problem is an algebraically simple example of a nonholonomic mechanical system. In Suslov’s original formulation [47], \(\varvec{\xi }\) was assumed to be fixed in the body frame. In [48] and here, \(\varvec{\xi }\) is permitted to vary with time. The Lagrangian for Suslov’s problem is its kinetic energy, so that the symmetry-reduced Lagrangian is \(\ell ({\varvec{\Omega }})=\frac{1}{2}\left\langle {\mathbb {I}}{\varvec{\Omega }},{\varvec{\Omega }}\right\rangle\) and the action integral is \(S = \int _a^b \ell ({\varvec{\Omega }}) \mathrm {d}t= \int _a^b \frac{1}{2}\left\langle {\mathbb {I}}{\varvec{\Omega }},{\varvec{\Omega }}\right\rangle \mathrm {d}t\). Since \({\varvec{\Omega }}\equiv \left[ \Lambda ^{-1} \dot{\Lambda }\right] ^\vee\), according to (A.8), \(\delta {\varvec{\Omega }}= \dot{\varvec{\Sigma }}+ {\varvec{\Omega }}\times {\varvec{\Sigma }}\) where \({\varvec{\Sigma }}\equiv \left( \Lambda ^{-1} \delta \Lambda \right) ^\vee\). Part of Lagrange–d’Alembert’s principle states that the nonholonomic constraint \(\left\langle {\varvec{\Omega }},\varvec{\xi }\right\rangle =0\) implies that the variations \({\varvec{\Sigma }}\) must satisfy \(\left\langle {\varvec{\Sigma }}, \varvec{\xi }\right\rangle =0\) when deriving the equations of motion. Enforcing the constraint \(\left\langle {\varvec{\Sigma }}, \varvec{\xi }\right\rangle =0\) on the variations \({\varvec{\Sigma }}\) through the time-varying Lagrange multiplier \(\lambda\), Lagrange–d’Alembert’s principle in conjunction with Euler–Poincaré’s method dictate that the equations of motion for Suslov’s problem are given by

$$\begin{aligned} 0=\delta S+\int _a^b \lambda \left\langle {\varvec{\Sigma }}, \varvec{\xi }\right\rangle \mathrm {d}t\end{aligned}$$
(A.34)

for variations \(\delta {\varvec{\Omega }}= \dot{\varvec{\Sigma }}+ {\varvec{\Omega }}\times {\varvec{\Sigma }}\), for all variations \({\varvec{\Sigma }}\) such that \({\varvec{\Sigma }}(a)={\varvec{\Sigma }}(b)=\mathbf {0}\), and such that \(\left\langle {\varvec{\Omega }},\varvec{\xi }\right\rangle =0\). Pushing the variational derivative inside the action integral’s integration operator, using the fact that \(\delta {\varvec{\Omega }}= \dot{\varvec{\Sigma }}+ {\varvec{\Omega }}\times {\varvec{\Sigma }}\), integrating by parts, and invoking the vanishing endpoint assumptions \({\varvec{\Sigma }}(a)={\varvec{\Sigma }}(b)=\mathbf {0}\), (A.34) simplifies to

$$\begin{aligned} 0&=\delta S+\int _a^b \lambda \left\langle {\varvec{\Sigma }}, \varvec{\xi }\right\rangle \mathrm {d}t= \int _a^b \left\langle {\mathbb {I}}{\varvec{\Omega }},\delta {\varvec{\Omega }}\right\rangle \mathrm {d}t+\int _a^b \lambda \left\langle {\varvec{\Sigma }}, \varvec{\xi }\right\rangle \mathrm {d}t\\&= \int _a^b \left\langle {\mathbb {I}}{\varvec{\Omega }},\dot{\varvec{\Sigma }}+ {\varvec{\Omega }}\times {\varvec{\Sigma }}\right\rangle \mathrm {d}t+\int _a^b \lambda \left\langle {\varvec{\Sigma }}, \varvec{\xi }\right\rangle \mathrm {d}t\\&= -\int _a^b \left\langle \left( \frac{\mathrm {d}}{\mathrm {d}t}+{\varvec{\Omega }}\times \right) {\mathbb {I}}{\varvec{\Omega }}, {\varvec{\Sigma }}\right\rangle \mathrm {d} t+ \left. \left\langle {\mathbb {I}}{\varvec{\Omega }}, {\varvec{\Sigma }}\right\rangle \right| _a^b+\int _a^b \lambda \left\langle {\varvec{\Sigma }}, \varvec{\xi }\right\rangle \mathrm {d}t\\&= \int _a^b \left\langle -\left( \frac{\mathrm {d}}{\mathrm {d}t}+{\varvec{\Omega }}\times \right) {\mathbb {I}}{\varvec{\Omega }}+ \lambda \varvec{\xi }, {\varvec{\Sigma }}\right\rangle \mathrm {d}t. \end{aligned}$$
(A.35)

Since (A.35) must be satisfied for all variations \({\varvec{\Sigma }}\) such that \({\varvec{\Sigma }}(a)={\varvec{\Sigma }}(b)=\mathbf {0}\), the equations of motion for Suslov’s problem are given by

$$\begin{aligned} {\mathbb {I}}{\dot{{\varvec{\Omega }}}} = \left( {\mathbb {I}}{\varvec{\Omega }}\right) \times {\varvec{\Omega }}+ \lambda \varvec{\xi }, \end{aligned}$$
(A.36)

where the Lagrange multiplier \(\lambda\) is determined from the nonholonomic constraint \(\left\langle {\varvec{\Omega }},\varvec{\xi }\right\rangle =0\). Dotting both sides of (A.36) by \({\mathbb {I}}^{-1} \varvec{\xi }\), solving for \(\lambda\), applying the product rule \(\left\langle {\varvec{\Omega }},\varvec{\xi }\right\rangle ^\cdot =\left\langle {\dot{{\varvec{\Omega }}}} ,{{\varvec{\xi }}} \right\rangle +\left\langle {\varvec{\Omega }},{\dot{\varvec{\xi }}} \right\rangle\), and invoking the nonholonomic constraint \(\left\langle {\varvec{\Omega }},\varvec{\xi }\right\rangle =0\) yield the formula for the Lagrange multiplier \(\lambda\):

$$\begin{aligned} \lambda&= \frac{\left\langle {\mathbb {I}}{\dot{{\varvec{\Omega }}}},{\mathbb {I}}^{-1} \varvec{\xi }\right\rangle - \left\langle \left( {\mathbb {I}}{\varvec{\Omega }}\right) \times {\varvec{\Omega }}, {\mathbb {I}}^{-1} \varvec{\xi }\right\rangle }{ \left\langle \varvec{\xi }, {\mathbb {I}}^{-1} \varvec{\xi }\right\rangle } = \frac{\left\langle {\dot{{\varvec{\Omega }}}},\varvec{\xi }\right\rangle - \left\langle \left( {\mathbb {I}}{\varvec{\Omega }}\right) \times {\varvec{\Omega }}, {\mathbb {I}}^{-1} \varvec{\xi }\right\rangle }{ \left\langle \varvec{\xi }, {\mathbb {I}}^{-1} \varvec{\xi }\right\rangle } \\&= \frac{\left\langle {\varvec{\Omega }},\varvec{\xi }\right\rangle ^\cdot - \left\langle {\varvec{\Omega }}, {\dot{\varvec{\xi }}} \right\rangle - \left\langle \left( {\mathbb {I}}{\varvec{\Omega }}\right) \times {\varvec{\Omega }}, {\mathbb {I}}^{-1} \varvec{\xi }\right\rangle }{ \left\langle \varvec{\xi }, {\mathbb {I}}^{-1} \varvec{\xi }\right\rangle } = - \frac{ \left\langle {\varvec{\Omega }}, {\dot{\varvec{\xi }}} \right\rangle + \left\langle \left( {\mathbb {I}}{\varvec{\Omega }}\right) \times {\varvec{\Omega }}, {\mathbb {I}}^{-1} \varvec{\xi }\right\rangle }{ \left\langle \varvec{\xi }, {\mathbb {I}}^{-1} \varvec{\xi }\right\rangle }, \end{aligned}$$
(A.37)

so that the equations of motion for Suslov’s problem are

$$\begin{aligned} {\mathbb {I}}{\dot{{\varvec{\Omega }}}} = \left( {\mathbb {I}}{\varvec{\Omega }}\right) \times {\varvec{\Omega }}- \frac{ \left\langle {\varvec{\Omega }}, {\dot{\varvec{\xi }}} \right\rangle + \left\langle \left( {\mathbb {I}}{\varvec{\Omega }}\right) \times {\varvec{\Omega }}, {\mathbb {I}}^{-1} \varvec{\xi }\right\rangle }{ \left\langle \varvec{\xi }, {\mathbb {I}}^{-1} \varvec{\xi }\right\rangle } \varvec{\xi }. \end{aligned}$$
(A.38)

The reader is referred to [48] for further details.

Appendix B: Details for deriving the equations of motion for the rolling ball

By defining \(\mathbf {s}_i \equiv r {\varvec{\Gamma }}+{\varvec{\chi }}_i\) for \(0\le i\le n\) and combining the summations, the equations of motion (3.22) for the rolling ball become

$$\begin{aligned} \mathbf {0}&= {\mathbb {I}}\dot{\varvec{\Omega }}+{\varvec{\Omega }}\times {\mathbb {I}}{\varvec{\Omega }}-r {\varvec{\Gamma }}\times {\tilde{{\varvec{\Gamma }}}}+ \sum _{i=0}^n m_i \Big \{-g {\varvec{\Gamma }}\times {\varvec{\chi }}_i+ \left[ r {\varvec{\Gamma }}\times {\varvec{\Omega }}+{{\dot{{\varvec{\chi }}}}}_i \right] \times \left[ {\varvec{\Omega }}\times \mathbf {s}_i +{{\dot{{\varvec{\chi }}}}}_i \right] \\&\quad +\,\mathbf {s}_i \times \left\{ {\dot{{\varvec{\Omega }}}} \times \mathbf {s}_i+ {\varvec{\Omega }}\times \left[ r {\varvec{\Gamma }}\times {\varvec{\Omega }}+{{\dot{{\varvec{\chi }}}}}_i \right] +{\ddot{\varvec{\chi }}}_i \right\} \\&\quad +\,{\varvec{\Omega }}\times \left\{ \mathbf {s}_i \times \left[ {\varvec{\Omega }}\times \mathbf {s}_i +{{\dot{{\varvec{\chi }}}}}_i \right] \right\} - \left[ r {\varvec{\Gamma }}\times {\varvec{\Omega }}\right] \times \left[ {\varvec{\Omega }}\times {\varvec{\chi }}_i+{{\dot{{\varvec{\chi }}}}}_i \right] \Big \}. \end{aligned}$$
(B.1)

Since \(\mathbf {s}_i \equiv r {\varvec{\Gamma }}+{\varvec{\chi }}_i\) for \(0\le i\le n\),

$$\begin{aligned} -g {\varvec{\Gamma }}\times {\varvec{\chi }}_i = {\varvec{\chi }}_i \times \left( g {\varvec{\Gamma }}\right) = \left( \mathbf {s}_i - r {\varvec{\Gamma }}\right) \times \left( g {\varvec{\Gamma }}\right) = \mathbf {s}_i \times \left( g {\varvec{\Gamma }}\right) \end{aligned}$$
(B.2)

and

$$\begin{aligned} \left[ r {\varvec{\Gamma }}\times {\varvec{\Omega }}+{{\dot{{\varvec{\chi }}}}}_i \right] \times \left[ {\varvec{\Omega }}\times \mathbf {s}_i +{{\dot{{\varvec{\chi }}}}}_i \right] \\ -\left[ r {\varvec{\Gamma }}\times {\varvec{\Omega }}\right] \times \left[ {\varvec{\Omega }}\times {\varvec{\chi }}_i+{{\dot{{\varvec{\chi }}}}}_i \right]&= \left[ r {\varvec{\Gamma }}\times {\varvec{\Omega }}+{{\dot{{\varvec{\chi }}}}}_i \right] \times \left[ {\varvec{\Omega }}\times \mathbf {s}_i +{{\dot{{\varvec{\chi }}}}}_i \right] \\&\quad -\,\left[ r {\varvec{\Gamma }}\times {\varvec{\Omega }}\right] \times \left[ {\varvec{\Omega }}\times \left\{ \mathbf {s}_i-r {\varvec{\Gamma }}\right\} +{{\dot{{\varvec{\chi }}}}}_i \right] \\&= \left[ r {\varvec{\Gamma }}\times {\varvec{\Omega }}+{{\dot{{\varvec{\chi }}}}}_i \right] \times \left[ {\varvec{\Omega }}\times \mathbf {s}_i +{{\dot{{\varvec{\chi }}}}}_i \right] - \left[ r {\varvec{\Gamma }}\times {\varvec{\Omega }}\right] \times \left[ {\varvec{\Omega }}\times \mathbf {s}_i+{{\dot{{\varvec{\chi }}}}}_i \right] \\&= {{\dot{{\varvec{\chi }}}}}_i \times \left[ {\varvec{\Omega }}\times \mathbf {s}_i \right] . \\ \end{aligned}$$
(B.3)

Moreover, by exploiting Jacobi’s identity for the sum of permuted triple cross products, we find

$$\begin{aligned} {{\dot{{\varvec{\chi }}}}}_i \times \left[ {\varvec{\Omega }}\times \mathbf {s}_i \right] +\mathbf {s}_i \times \left[ {\varvec{\Omega }}\times {{\dot{{\varvec{\chi }}}}}_i \right] +{\varvec{\Omega }}\times \left[ \mathbf {s}_i \times {{\dot{{\varvec{\chi }}}}}_i \right] = 2 \mathbf {s}_i \times \left[ {\varvec{\Omega }}\times {{\dot{{\varvec{\chi }}}}}_i \right] . \end{aligned}$$
(B.4)

By using (B.2), (B.3), and (B.4) in (B.1), the equations of motion (B.1) simplify to

$$\begin{aligned} \mathbf {0}&= {\mathbb {I}}\dot{\varvec{\Omega }}+{\varvec{\Omega }}\times {\mathbb {I}}{\varvec{\Omega }}-r {\varvec{\Gamma }}\times {\tilde{{\varvec{\Gamma }}}}+ \sum _{i=0}^n m_i \Big \{\mathbf {s}_i \times \left( g {\varvec{\Gamma }}\right) + 2 \mathbf {s}_i \times \left[ {\varvec{\Omega }}\times {{\dot{{\varvec{\chi }}}}}_i \right] \\&+ \mathbf {s}_i \times \left\{ {\dot{{\varvec{\Omega }}}} \times \mathbf {s}_i+ {\varvec{\Omega }}\times \left[ r {\varvec{\Gamma }}\times {\varvec{\Omega }}\right] +{{\ddot{{\varvec{\chi }}}}}_i \right\} + {\varvec{\Omega }}\times \left\{ \mathbf {s}_i \times \left[ {\varvec{\Omega }}\times \mathbf {s}_i \right] \right\} \Big \}. \end{aligned}$$
(B.5)

For arbitrary vectors \(\mathbf {a},\mathbf {b} \in {\mathbb {R}}^3\), Jacobi’s identity yields the following identity for the sum of quadruple cross products:

$$\begin{aligned} \mathbf {a} \times \left\{ \mathbf {b} \times \left[ \mathbf {a} \times \mathbf {b} \right] \right\} +\mathbf {b} \times \left\{ \mathbf {a} \times \left[ \mathbf {b} \times \mathbf {a} \right] \right\} = \mathbf {0}. \end{aligned}$$
(B.6)

Since \(\mathbf {s}_i \equiv r {\varvec{\Gamma }}+{\varvec{\chi }}_i\) for \(0\le i\le n\) and using the identity (B.6), it follows that

$$\begin{aligned} \mathbf {s}_i \times \left\{ {\varvec{\Omega }}\times \left[ r {\varvec{\Gamma }}\times {\varvec{\Omega }}\right] \right\} + {\varvec{\Omega }}\times \left\{ \mathbf {s}_i \times \left[ {\varvec{\Omega }}\times \mathbf {s}_i \right] \right\}&= \mathbf {s}_i \times \left\{ {\varvec{\Omega }}\times \left[ \left( \mathbf {s}_i-{\varvec{\chi }}_i \right) \times {\varvec{\Omega }}\right] \right\} + {\varvec{\Omega }}\times \left\{ \mathbf {s}_i \times \left[ {\varvec{\Omega }}\times \mathbf {s}_i \right] \right\} \\&= \mathbf {s}_i \times \left\{ {\varvec{\Omega }}\times \left[ \mathbf {s}_i \times {\varvec{\Omega }}\right] \right\} - \mathbf {s}_i \times \left\{ {\varvec{\Omega }}\times \left[ {\varvec{\chi }}_i \times {\varvec{\Omega }}\right] \right\} \\&\quad +\,{\varvec{\Omega }}\times \left\{ \mathbf {s}_i \times \left[ {\varvec{\Omega }}\times \mathbf {s}_i \right] \right\} \\&= - \mathbf {s}_i \times \left\{ {\varvec{\Omega }}\times \left[ {\varvec{\chi }}_i \times {\varvec{\Omega }}\right] \right\} . \end{aligned}$$
(B.7)

Using (B.7), the equations of motion (B.5) simplify to

$$\begin{aligned} {\mathbb {I}}\dot{\varvec{\Omega }}+{\varvec{\Omega }}\times {\mathbb {I}}{\varvec{\Omega }}+r {\tilde{{\varvec{\Gamma }}}}{\times {{\varvec{\Gamma }}}}+ \sum _{i=0}^n m_i \mathbf {s}_i \times \left\{ g {\varvec{\Gamma }}+{\dot{{\varvec{\Omega }}}} \times \mathbf {s}_i+ {\varvec{\Omega }}\times \left( {\varvec{\Omega }}\times {\varvec{\chi }}_i +2 {\dot{\varvec{\chi }}}_i \right) +{{\ddot{{\varvec{\chi }}}}}_i \right\} = \mathbf {0} . \end{aligned}$$
(B.8)

Finally, since

$$\begin{aligned} \mathbf {s}_i \times \left\{ {\dot{{\varvec{\Omega }}}} \times \mathbf {s}_i \right\} = -\mathbf {s}_i \times \left\{ \mathbf {s}_i \times {\dot{{\varvec{\Omega }}}} \right\} = -\mathbf {s}_i \times \left\{ {\widehat{\mathbf {s}}_i} {\dot{{\varvec{\Omega }}}} \right\} = -{\widehat{\mathbf {s}}_i} {\widehat{\mathbf {s}}_i} \dot{\varvec{\Omega }}= - {\widehat{\mathbf {s}}_i}^2 {\dot{{\varvec{\Omega }}}}, \end{aligned}$$
(B.9)

where for \(\mathbf {v} = \begin{bmatrix} v_1&v_2&v_3 \end{bmatrix}^\mathsf {T} \in {\mathbb {R}}^3\), \({\widehat{\mathbf {v}}}^2={\widehat{\mathbf {v}}}{\widehat{\mathbf {v}}}\) is the symmetric matrix given by

$$\begin{aligned} {\widehat{\mathbf {v}}}^2 = \begin{bmatrix} -(v_2^2+v_3^2)&v_1 v_2&v_1 v_3 \\ v_1 v_2&-(v_1^2+v_3^2)&v_2 v_3 \\ v_1 v_3&v_2 v_3&-(v_1^2+v_2^2) \end{bmatrix}, \end{aligned}$$
(B.10)

we can solve explicitly for \({\dot{{\varvec{\Omega }}}}\) in (B.8) to obtain the equations of motion (3.23) for the rolling ball.

Appendix C: Details for deriving the equation of motion for the rolling disk

Note that \(\left[ \sum _{i=0}^n m_i {\widehat{\mathbf {s}}_i}^2 -{\mathbb {I}}\right] ^{-1} \mathbf {e}_2\) is just the middle column of the matrix inverse of \(A = \sum _{i=0}^n m_i {\widehat{\mathbf {s}}_i}^2 -{\mathbb {I}}\), where \({\widehat{\mathbf {s}}_i}^2\) is given in (3.35). Denote the entries of \(A\) by

$$\begin{aligned} A = \sum _{i=0}^n m_i {\widehat{\mathbf {s}}_i}^2 -{\mathbb {I}}= \begin{bmatrix} a_{11}&a_{12}&a_{13} \\ a_{21}&a_{22}&a_{23} \\ a_{31}&a_{32}&a_{33} \end{bmatrix}. \end{aligned}$$
(C.1)

Since \({\mathbb {I}}\) is diagonal and from (3.35), \(a_{12} = a_{21} = a_{23} = a_{32} = 0\), so that

$$\begin{aligned} A = \sum _{i=0}^n m_i {\widehat{\mathbf {s}}_i}^2 -{\mathbb {I}}= \begin{bmatrix} a_{11}&0&a_{13} \\ 0&a_{22}&0 \\ a_{31}&0&a_{33} \end{bmatrix} \end{aligned}$$
(C.2)

and the determinant of \(A\) simplifies to

$$\begin{aligned} \det A&= a_{11} a_{22} a_{33}+a_{21} a_{32} a_{13}+a_{31} a_{12} a_{23}-a_{11} a_{32} a_{23}-a_{31} a_{22} a_{13}-a_{21} a_{12} a_{33} \\&= a_{11} a_{22} a_{33} - a_{31} a_{22} a_{13} = a_{22} \left( a_{11} a_{33} - a_{31} a_{13} \right) . \end{aligned}$$
(C.3)

From (3.35),

$$\begin{aligned} a_{22} = \sum _{i=0}^n \left\{ m_i \left[ -\left( r \sin \phi + \zeta _{i,1} \right) ^2-\left( r \cos \phi + \zeta _{i,3} \right) ^2 \right] \right\} -d_2. \end{aligned}$$
(C.4)

Using the formula for the inverse of a \(3 \times 3\) matrix and (C.4), the middle column of the matrix inverse of \(A = \sum _{i=0}^n m_i {\widehat{\mathbf {s}}_i}^2 -{\mathbb {I}}\) is

$$\begin{aligned} \left[ \sum _{i=0}^n m_i {\widehat{\mathbf {s}}_i}^2 -{\mathbb {I}}\right] ^{-1} \mathbf {e}_2&= A^{-1} \mathbf {e}_2 = \begin{bmatrix} a_{11}&0&a_{13} \\ 0&a_{22}&0 \\ a_{31}&0&a_{33} \end{bmatrix}^{-1} \mathbf {e}_2 = \frac{1}{\det A} \begin{bmatrix} a_{13} a_{32} - a_{12} a_{33} \\ a_{11} a_{33} - a_{13} a_{31} \\ a_{12} a_{31} - a_{11} a_{32} \end{bmatrix} \\&= \frac{1}{a_{22} \left( a_{11} a_{33} - a_{31} a_{13} \right) } \begin{bmatrix} 0 \\ a_{11} a_{33} - a_{13} a_{31} \\ 0 \end{bmatrix} = \frac{1}{a_{22}} \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix} = \frac{1}{a_{22}} \mathbf {e}_2 \\&= \frac{1}{\sum _{i=0}^n \left\{ m_i \left[ -\left( r \sin \phi + \zeta _{i,1} \right) ^2-\left( r \cos \phi + \zeta _{i,3} \right) ^2 \right] \right\} -d_2} \mathbf {e}_2. \end{aligned}$$
(C.5)

Plugging (C.5) into (3.38) gives the scalar equation of motion (3.39) for the rolling disk.

Appendix D: Quaternions

Quaternions were invented by William Rowan Hamilton in 1843. Good references on quaternions and how they are used to model rigid body dynamics are [8, 49,50,51]. The set of quaternions, which is isomorphic to \({\mathbb {R}}^4\), is denoted by \(\mathbb {H}\). A quaternion \({\mathfrak{p}} \in \mathbb {H}\) can be expressed as the column vector

$$\begin{aligned} {\mathfrak{p}} = \begin{bmatrix} p_0&p_1&p_2&p_3 \end{bmatrix}^\mathsf {T}. \end{aligned}$$
(D.1)

Given a column vector \({\varvec{v}}\in {\mathbb {R}}^3\), \({\varvec{v}}^\sharp\) is the quaternion

$$\begin{aligned} {\varvec{v}}^\sharp = \begin{bmatrix}0 \\ {\varvec{v}}\end{bmatrix}. \end{aligned}$$
(D.2)

Given a quaternion \({\mathfrak{p}} \in \mathbb {H}\), \({\mathfrak{p}}^\flat \in {\mathbb {R}}^3\) is the column vector such that

$$\begin{aligned} {\mathfrak{p}} = \begin{bmatrix} p_0 \\ {\mathfrak{p}}^\flat \end{bmatrix}. \end{aligned}$$
(D.3)

Given a column vector \({\varvec{v}}\in {\mathbb {R}}^3\), note that

$$\begin{aligned} \left( {\varvec{v}}^\sharp \right) ^\flat ={\varvec{v}}. \end{aligned}$$
(D.4)

However, given a quaternion \({\mathfrak{p}} \in \mathbb {H}\),

$$\begin{aligned} \left( {\mathfrak{p}}^\flat \right) ^\sharp = {\mathfrak{p}} \quad \mathrm {iff} \quad {\mathfrak{p}} = \begin{bmatrix} 0 \\ {\mathfrak{p}}^\flat \end{bmatrix}. \end{aligned}$$
(D.5)

Given quaternions \({\mathfrak{p}}=\begin{bmatrix}p_0 \\ {\mathfrak{p}}^\flat \end{bmatrix},{\mathfrak{q}}=\begin{bmatrix}q_0 \\ {\mathfrak{q}}^\flat \end{bmatrix} \in \mathbb {H}\), their sum is

$$\begin{aligned} {\mathfrak{p}} + {\mathfrak{q}}=\begin{bmatrix}p_0 \\ {\mathfrak{p}}^\flat \end{bmatrix}+ \begin{bmatrix}q_0 \\ {\mathfrak{q}}^\flat \end{bmatrix}=\begin{bmatrix}p_0+q_0 \\ {\mathfrak{p}}^\flat + {\mathfrak{q}}^\flat \end{bmatrix}, \end{aligned}$$
(D.6)

their product is

$$\begin{aligned} {\mathfrak{p}} {\mathfrak{q}}=\begin{bmatrix} p_0 \\ {\mathfrak{p}}^\flat \end{bmatrix} \begin{bmatrix}q_0 \\ {\mathfrak{q}}^\flat \end{bmatrix}=\begin{bmatrix}p_0q_0-{\mathfrak{p}}^\flat \cdot {\mathfrak{q}}^\flat \\ p_0{\mathfrak{q}}^\flat + q_0{\mathfrak{p}}^\flat +{\mathfrak{p}}^\flat \times {\mathfrak{q}}^\flat \end{bmatrix}, \end{aligned}$$
(D.7)

and their dot product is

$$\begin{aligned} {\mathfrak{p}} \cdot {\mathfrak{q}}=\begin{bmatrix} p_0 \\ {\mathfrak{p}}^\flat \end{bmatrix} \cdot \begin{bmatrix}q_0 \\ {\mathfrak{q}}^\flat \end{bmatrix}=\begin{bmatrix}p_0&p_1&p_2&p_3\end{bmatrix}^\mathsf {T} \cdot \begin{bmatrix}q_0&q_1&q_2&q_3\end{bmatrix}^\mathsf {T}= p_0 q_0 + {\mathfrak{p}}^\flat \cdot {\mathfrak{q}}^\flat =p_0 q_0 +p_1 q_1 + p_2 q_2 + p_3 q_3. \end{aligned}$$
(D.8)

It may be shown that multiplication in \(\mathbb {H}\) is associative (i.e. \({\mathfrak{p}} \left( {\mathfrak{q}} {\mathfrak{r}} \right) = \left( {\mathfrak{p}} {\mathfrak{q}} \right) {\mathfrak{r}} \quad \forall {\mathfrak{p}},{\mathfrak{q}},{\mathfrak{r}} \in \mathbb {H}\)) but not commutative (i.e. \({\mathfrak{p}} {\mathfrak{q}} \ne {\mathfrak{q}} {\mathfrak{p}}\) for general \({\mathfrak{p}},{\mathfrak{q}} \in \mathbb {H}\)). Given \(c \in {\mathbb {R}}\) and a quaternion \({\mathfrak{p}} = \begin{bmatrix}p_0 \\ {\mathfrak{p}}^\flat \end{bmatrix} \in \mathbb {H}\), scalar multiplication of \({\mathfrak{p}}\) by c is

$$\begin{aligned} c {\mathfrak{p}} = c \begin{bmatrix}p_0 \\ {\mathfrak{p}}^\flat \end{bmatrix} = \begin{bmatrix}c p_0 \\ c{\mathfrak{p}}^\flat \end{bmatrix}. \end{aligned}$$
(D.9)

Given a quaternion \({\mathfrak{p}} = \begin{bmatrix}p_0 \\ {\mathfrak{p}}^\flat \end{bmatrix} \in \mathbb {H}\), its conjugate is

$$\begin{aligned} {\mathfrak{p}}^* = \begin{bmatrix} p_0 \\ -{\mathfrak{p}}^\flat \end{bmatrix}, \end{aligned}$$
(D.10)

its magnitude is

$$\begin{aligned} \left| {\mathfrak{p}} \right| = \left( {\mathfrak{p}} \cdot {\mathfrak{p}} \right) ^\frac{1}{2} = \left( p_0^2 + {\mathfrak{p}}^\flat \cdot {\mathfrak{p}}^\flat \right) ^\frac{1}{2} , \end{aligned}$$
(D.11)

and its inverse is

$$\begin{aligned} {\mathfrak{p}}^{-1} = \frac{{\mathfrak{p}}^*}{\left| {\mathfrak{p}} \right| ^2}. \end{aligned}$$
(D.12)

In the language of abstract algebra, \(\mathbb {H}\) is a four-dimensional associative normed division algebra over the real numbers. \({\mathscr {S}} \subset \mathbb {H}\) denotes the set of unit quaternions, also called versors, which is isomorphic to \(\mathbb {S}^3 \subset {\mathbb {R}}^4\). That is,

$$\begin{aligned} {\mathscr {S}} \equiv \left\{ {\mathfrak{q}} = \begin{bmatrix}{q}_{0}&{q}_{1}&{q}_{2}&{q}_{3} \end{bmatrix}^\mathsf {T} \in {\mathbb {R}}^4 : \left| {\mathfrak{q}} \right| ^2 = {\mathfrak{q}} \cdot {\mathfrak{q}} = {q}_{0}^{2}+{q}_{1}^{2}+{q}_{2}^{2}+{q}_{3}^{2}{=}{1} \right\} \subset \mathbb {H}. \end{aligned}$$
(D.13)

The set of versors \({\mathscr {S}}\) is useful because it may be utilized to parameterize the set of rotation matrices SO(3). Given a versor

$$\begin{aligned} {\mathfrak{q}} = \begin{bmatrix}{q}_{0}&{q}_{1}&{q}_{2}&{q}_{3} \end{bmatrix}^\mathsf {T} \in {\mathscr {S}}, \end{aligned}$$
(D.14)

the corresponding rotation matrix \(\Lambda \in SO(3)\) is

$$\begin{aligned} \Lambda = \begin{bmatrix} 1-2\left( q_2^2+q_3^2\right)&2\left( q_1q_2-q_0q_3 \right)&2\left( q_1 q_3+q_0q_2 \right) \\ 2\left( q_1 q_2+q_0q_3 \right)&1-2\left( q_1^2+q_3^2\right)&2\left( q_2 q_3-q_0q_1 \right) \\ 2\left( q_1 q_3-q_0q_2 \right)&2\left( q_2 q_3+q_0q_1 \right)&1-2\left( q_1^2+q_2^2\right) \end{bmatrix} \in SO(3). \end{aligned}$$
(D.15)

It is easy to see from (D.15), that the versors

$$\begin{aligned} {\mathfrak{q}} = \begin{bmatrix}q_0&q_1&q_2&q_3 \end{bmatrix}^\mathsf {T} \in {\mathscr {S}} \quad \mathrm {and} \quad -{\mathfrak{q}} = \begin{bmatrix}-q_0&-q_1&-q_2&-q_3 \end{bmatrix}^\mathsf {T} \in {\mathscr {S}} \end{aligned}$$
(D.16)

correspond to the same rotation matrix \(\Lambda \in SO(3)\), so that \({\mathscr {S}}\) is a double covering of SO(3). Given a vector \(\mathbf {Y}\in {\mathbb {R}}^3\), the rotation of \(\mathbf {Y}\) by \(\Lambda \in SO(3)\) can be realized using the versor \({\mathfrak{q}} \in {\mathscr {S}}\) via the Euler–Rodrigues formula

$$\begin{aligned} \Lambda \mathbf {Y}= \left[ {\mathfrak{q}} \mathbf {Y}^\sharp {\mathfrak{q}}^{-1} \right] ^\flat . \end{aligned}$$
(D.17)

Since \({\mathfrak{q}}^{-1} \in {\mathscr {S}}\) parameterizes \(\Lambda ^{-1} \in SO(3)\), (D.17) says that the rotation of \(\mathbf {y} \in {\mathbb {R}}^3\) by \(\Lambda ^{-1} \in SO(3)\) can be realized using the versor \({\mathfrak{q}}^{-1} \in {\mathscr {S}}\) via

$$\begin{aligned} \Lambda ^{-1} \mathbf {y} = \left[ {\mathfrak{q}}^{-1} \mathbf {y}^\sharp {\mathfrak{q}} \right] ^\flat . \end{aligned}$$
(D.18)

Now consider a rigid body, such as a free rigid body, a heavy top, Suslov’s problem, a rolling disk, a rolling ball, etc., with orientation matrix \(\Lambda \in SO(3)\) (i.e. \(\Lambda\) maps the body frame into the spatial frame) and body angular velocity

$$\begin{aligned} {\varvec{\Omega }}\equiv \left[ \Lambda ^{-1} \dot{\Lambda }\right] ^\vee =\left[ \Lambda ^\mathsf {T} \dot{\Lambda }\right] ^\vee \in {\mathbb {R}}^3, \end{aligned}$$
(D.19)

so that

$$\begin{aligned} \dot{\Lambda }= \Lambda {\widehat{{\varvec{\Omega }}}}. \end{aligned}$$
(D.20)

Let \({\mathfrak{q}} \in {\mathscr {S}}\) denote a versor corresponding to \(\Lambda\). Then it may be shown that

$$\begin{aligned} \dot{{\mathfrak{q}}} = \frac{1}{2} {\mathfrak{q}} {\varvec{\Omega }}^\sharp . \end{aligned}$$
(D.21)

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Putkaradze, V., Rogers, S. On the dynamics of a rolling ball actuated by internal point masses. Meccanica 53, 3839–3868 (2018). https://doi.org/10.1007/s11012-018-0904-5

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11012-018-0904-5

Keywords

Navigation