1 Introduction

1.1 Spherical Rolling Robot

A spherical rolling robot is a simple robot that has been studied extensively in many different forms from both theoretical and experimental points of view; see e.g., Bhattacharya and Agrawal (2000) for several different types of realizations. One of the realizations is the Sphericle developed by Bicchi et al. (1997); it is a spherical rolling robot controlled by two internal wheels inside the spherical shell of the robot. The \({ Sphero}^{\textregistered }\) (see Fig. 1) is a commercial realization of the Sphericle; it is controlled by two internal wheels (white wheels near the bottom) actuated by motors in the electromechanical unit inside the sphere (the blue wheels above are idler wheels to sustain the unit).

Fig. 1
figure 1

Spherical rolling robot \({ Sphero}^{\textregistered }\); see http://www.sphero.com

Despite its relative simplicity in design and configurations, a spherical rolling robot like the Sphero has fairly complex motions due to its nonholonomic nature of the constraints. In fact, the Sphero comes with an interface that enables one to control it by using a cellphone app as well as both visual and traditional programming languages and hence is an effective STEM education toy that teaches students basic ideas in computer programming, mechanics, and control theory.

1.2 Main Results and Outline

We study the kinematics of the spherical rolling robot like the Sphericle or Sphero from the geometric point of view. Particularly, we exploit the symmetry of the kinematic model of the robot and the notion of shape space (see e.g., Montgomery 1991, 1993a, b; Kelly and Murray 1995) and analyze its controllability as well as its optimal control problem.

We first formulate the kinematic equation describing the nonholonomic constraints of the system in Sect. 2. The resulting model is effectively the same as that of the Sphericle in Bicchi et al. (1997).

The main difference from their approach is that we stress the role of symmetry and formulate the system on a principal bundle; see Sect. 3. In other words, we split the configuration space into the shape space (configurations of the wheels or the internal system) and the fiber (the symmetry group or the translational and rotational configurations of the sphere). The system has a fully actuated subsystem in the shape space, but the rest of the system in the direction of the fiber is not directly actuated and is defined by the constraint of the system. However, one is mainly concerned with the behavior of the system in the fiber. This is the basic geometric setting for the Falling Cat Problem (Montgomery 1993a) as well as robotic locomotion (Kelly and Murray 1995).

This leads to the question of fiber controllability (Kelly and Murray 1995) of the robot in Sect. 4, i.e., whether the system is controllable in the fiber regardless of its shape. We show that the system is fiber controllable by finding the curvature of its principal connection (Theorem 4.1).

We also demonstrate a couple of instances of holonomy or geometric phase in Sect. 5. A holonomy or geometric phase is the displacement in the fiber when the control system makes a loop in the shape space, i.e., when the shape of the system undergoes a change and eventually comes back to the original one. We find exact expressions for translational and rotational holonomies under certain control laws that may be useful for motion planning.

Finally, in Sect. 6, we formulate an optimal control problem of the robot and show that the system resulting from the Pontryagin Maximum Principle is completely integrable, as well as obtain an explicit solution to the problem (Theorem 6.1).

2 Robot Kinematics

2.1 Simple Kinematic Model of Sphero

We model the rolling robot under the following simplifying assumptions:

  1. (i)

    The model is kinematic. (See e.g., Bicchi et al. 1997; Schneider 2002; Shen et al. 2008; Putkaradze and Rogers 2017; Ilin et al. 2017 for dynamical studies of rolling robots.)

  2. (ii)

    The electromechanical unit inside the robot always maintains its horizontal position.

  3. (iii)

    There is no slip between the sphere and the ground in the sense that the contact points of both surfaces have the same velocity.

  4. (iv)

    There is no slip between the sphere and the internal wheels in the same sense.

It results in an essentially the same model as the Sphericle developed by Bicchi et al. (1997).

Regarding the second assumption, the electromechanical unit has a ballast weight at the bottom and is much heavier than the spherical shell. When the robot is in fast motion, the unit tilts and wobbles inside the sphere due to inertia. However, when it is in slow motion, the unit stays at the bottom more or less maintaining its horizontal position at the bottom of the sphere due to its heavy weight relative to the spherical shell. So we would like to model the kinematics of the robot assuming that the electromechanical unit can only rotate about the vertical axis. In other words, we think of the robot as a spherical robot maneuvered by a two-wheeled unit rotating inside the spherical shell maintaining its horizontal position.

Regarding the third and fourth assumptions, these condition impose nonholonomic (rolling) constraints on the robot that define the kinematic system to consider; see Sect. 2.3. Note that the third condition does not prevent the sphere from rotating about the vertical axis; see Sect. 2.4 below.

2.2 Kinematics of Rolling Sphere

Let us first consider the kinematics of the sphere itself. Consider the motion of a sphere with radius r rolling on the plane \(x_{3} = 0\) in the spatial frame \({\mathbb {R}}^{3} = \{(x_{1},x_{2},x_{3})\}\). Following Jurdjevic (1993) (see also Jurdjevic 1997, Section 4.1), we describe the kinematics of the sphere as follows: let \({\mathcal {S}} \mathrel {\mathop :}={\left\{ \bar{\mathbf{q }} \in {\mathbb {R}}^{3} \ |\ {\left\| \bar{\mathbf{q }}\right\| } = r \right\} }\) be the sphere in the body frame of the sphere. The configuration of the rolling sphere is specified by the position of the center \(\mathbf{x }_{\mathrm{c}} = (\mathbf{x },r) \in {\mathbb {R}}^{3}\) in the spatial frame with \(\mathbf{x } = (x_{1},x_{2}) \in {\mathbb {R}}^{2}\) as well as the rotation matrix \(R \in {\textsf {S}}{\textsf {O}}(3)\) that specifies the orientation of the sphere in the spatial frame. Hence the configuration space of the rolling sphere is \({\textsf {S}}{\textsf {O}}(3) \times {\mathbb {R}}^{2} = \{(R,\mathbf{x })\}\).

Fig. 2
figure 2

Rolling sphere in the body and spatial frames

Let \(\bar{\mathbf{q }} \in {\mathcal {S}}\) be an arbitrary point on the sphere in the body frame; see the sphere on the left in Fig. 2. For any given configuration \((R, \mathbf{x }) \in {\textsf {S}}{\textsf {O}}(3) \times {\mathbb {R}}^{2}\) of the sphere, the position of the point of the sphere in the spatial frame would be

$$\begin{aligned} \mathbf{q } \mathrel {\mathop :}=\mathbf{x }_{\mathrm{c}} + R\bar{\mathbf{q }} \end{aligned}$$

as shown on the right in Fig. 2. We may write the velocity of the point \(\mathbf{q }\) (in the spatial frame) in terms of \(({\dot{R}},\dot{\mathbf{x }}) \in T_{(R,\mathbf{x })}({\textsf {S}}{\textsf {O}}(3) \times {\mathbb {R}}^{2})\) as

$$\begin{aligned} \dot{\mathbf{q }} =\begin{bmatrix} \dot{\mathbf{x }} \\ 0\end{bmatrix} + {\dot{R}}\bar{\mathbf{q }} = \begin{bmatrix} \dot{\mathbf{x }} \\ 0\end{bmatrix} + {\hat{\varvec{\omega }}} R\bar{\mathbf{q }} =\mathrel {\mathop :}f(R, {\hat{\varvec{\omega }}}, \dot{\mathbf{x }}; \bar{\mathbf{q }}), \end{aligned}$$
(1)

where \({\hat{\varvec{\omega }}}\) is the angular velocity in the spatial frame, i.e.,

$$\begin{aligned} {\hat{\varvec{\omega }}} = \begin{bmatrix} 0&\quad -\,\omega _{3}&\quad \omega _{2} \\ \omega _{3}&\quad 0&\quad -\,\omega _{1} \\ -\,\omega _{2}&\quad \omega _{1}&\quad 0 \end{bmatrix} \mathrel {\mathop :}={\dot{R}}R^{T} \in {{\mathfrak {s}}}{{\mathfrak {o}}}(3). \end{aligned}$$

This is an example of the so-called hat map \(\hat{(\,\cdot \,)}{:}\,{\mathbb {R}}^{3} \rightarrow {{\mathfrak {s}}}{{\mathfrak {o}}}(3)\) (see e.g., Marsden and Ratiu 1999, Eq. (9.2.7) on p. 289) defined by

$$\begin{aligned} \mathbf{a } = \begin{bmatrix} a_{1} \\ a_{2} \\ a_{3} \end{bmatrix} \mapsto \hat{\mathbf{a }} = \begin{bmatrix} 0&\quad -\,a_{3}&\quad a_{2} \\ a_{3}&\quad 0&\quad -\,a_{1} \\ -\,a_{2}&\quad a_{1}&\quad 0 \end{bmatrix}. \end{aligned}$$
(2)

2.3 No-Slip Constraints

The no-slip condition of the contact point of the sphere with the plane imposes a nonholonomic constraint as follows: for any given configuration \((R,\mathbf{x }) \in {\textsf {S}}{\textsf {O}}(3) \times {\mathbb {R}}^{2}\) of the sphere, the contact point \(\bar{\mathbf{q }}_{\mathrm{c}}(R)\) in the body frame satisfies \(R\bar{\mathbf{q }}_{\mathrm{c}}(R) = -r\mathbf{e }_{3}\), i.e., \(\bar{\mathbf{q }}_{\mathrm{c}}(R) = -r R^{T}\mathbf{e }_{3}\). Hence, in view of (1), the velocity of the contact point in the spatial frame is:

$$\begin{aligned} f\left( R, {\hat{\varvec{\omega }}}, \dot{\mathbf{x }}; \bar{\mathbf{q }}_{\mathrm{c}}(R)\right) = f{\left( R, {\hat{\varvec{\omega }}}, \dot{\mathbf{x }}; -r R^{T}\mathbf{e }_{3} \right) } = \begin{bmatrix} \dot{\mathbf{x }} \\ 0\end{bmatrix} - r{\hat{\varvec{\omega }}}\mathbf{e }_{3}. \end{aligned}$$

The no-slip condition says this vanishes, i.e.,

$$\begin{aligned} \dot{\mathbf{x }} = \begin{bmatrix} {\dot{x}}_{1} \\ {\dot{x}}_{2} \end{bmatrix} = r \begin{bmatrix} \omega _{2} \\ -\,\omega _{1} \end{bmatrix}. \end{aligned}$$
(3)
Fig. 3
figure 3

Configuration of robot

Let us now consider the kinematics of the robot, particularly the interaction between the sphere and the internal wheels. Let \(\psi \in {\mathbb {S}}^{1}\) be the angle of rotation of the two-wheeled unit measured from the positive part of the \(x_{1}\)-axis (of the spatial frame); see the left of Fig. 3. Let \(\mathbf{y }_{\mathrm{w}}^{(i)} \in {\mathbb {R}}^{3}\) with \(i = 1, 2\) be the position—relative to the center of the sphere in the body frame—of the contact point of wheel i to the sphere in the body frame as shown on the right in Fig. 3; the wheels are numbered as shown in the figure. Let 2w be the track width, h be the distance between the center of the sphere and the horizontal plane defined by the contact points of the wheels. Then it is easy to see that

$$\begin{aligned} \mathbf{y }_{\mathrm{w}}^{(1)}(\psi ) \mathrel {\mathop :}=\begin{bmatrix} w \cos \psi \\ w \sin \psi \\ -\,h \end{bmatrix}, \quad \mathbf{y }_{\mathrm{w}}^{(2)}(\psi ) \mathrel {\mathop :}=\begin{bmatrix} -\,w \cos \psi \\ -\,w \sin \psi \\ -\,h \end{bmatrix}. \end{aligned}$$

In addition to the no-slip condition of the sphere itself described above, the above model of the rolling robot imposes additional no-slip constraints at the contact points of the wheels to the sphere. The constraints are simply that the velocity of the contact point of each wheel must match that of the sphere.

Let us first find the velocities of the contact points of the wheels. Let \(\rho \) be the radius of the wheels. Then the positions of the contact points of the wheels in the spatial frame are

$$\begin{aligned} \mathbf{q }_{\text {w}}^{(i)} \mathrel {\mathop :}=\mathbf{x }_{\mathrm{c}} + \mathbf{y }_{\mathrm{w}}^{(i)}(\psi ) \quad \text {for} \quad i = 1, 2. \end{aligned}$$

Then the velocity (in the spatial frame) of each wheel is the composition of the translational and rotational velocities of the electromechanical unit and the rotational velocity of the wheel itself; see Fig. 4. Hence the velocities of the contact points of the wheels in the spatial frame are given by

$$\begin{aligned} \dot{\mathbf{q }}_{\mathrm{w}}^{(1)} \mathrel {\mathop :}=\dot{\mathbf{x }}_{\mathrm{c}} + (w{\dot{\psi }} - \rho {\dot{\varphi }}_{1})\mathbf{e }_{\psi }, \quad \dot{\mathbf{q }}_{\mathrm{w}}^{(2)} \mathrel {\mathop :}=\dot{\mathbf{x }}_{\mathrm{c}} - (w{\dot{\psi }} + \rho {\dot{\varphi }}_{2})\mathbf{e }_{\psi }, \end{aligned}$$

where \(\mathbf{e }_{\psi } \mathrel {\mathop :}=(-\sin \psi , \cos \psi , 0)^{T}\) and is shown on the left in Fig. 3.

Fig. 4
figure 4

Side views of wheels

On the other hand, the positions of the contact points of the sphere in the body frame are

$$\begin{aligned} \bar{{\varvec{q}}}_{\mathrm{s}}^{(i)}(R,\psi ) \mathrel {\mathop :}=R^{T} \mathbf{y }_{\mathrm{w}}^{(i)}(\psi ) \quad \text {for} \quad i = 1, 2, \end{aligned}$$

and so the velocities of these contact points in the spatial frame are, using (1),

$$\begin{aligned} \dot{\mathbf{q }}_{\mathrm{s}}^{(i)} \mathrel {\mathop :}=f{\left( R, {\hat{\varvec{\omega }}}, \dot{\mathbf{x }}; \bar{\varvec{q}}_{\mathrm{s}}^{(i)}(R,\psi ) \right) } = \begin{bmatrix} \dot{\mathbf{x }} \\ 0 \end{bmatrix} + {\hat{\varvec{\omega }}}\mathbf{y }_{\mathrm{w}}^{(i)}(\psi ). \end{aligned}$$

The constraints \(\dot{\mathbf{q }}_{\mathrm{s}}^{(i)} = \dot{\mathbf{q }}_{\mathrm{w}}^{(i)}\) with \(i = 1,2\) then yield

$$\begin{aligned} {\hat{\varvec{\omega }}}\mathbf{y }_{\mathrm{w}}^{(1)}(\psi ) = (w{\dot{\psi }} - \rho {\dot{\varphi }}_{1})\mathbf{e }_{\psi }, \quad {\hat{\varvec{\omega }}}\mathbf{y }_{\mathrm{w}}^{(2)}(\psi ) = -(w{\dot{\psi }} + \rho {\dot{\varphi }}_{2})\mathbf{e }_{\psi }. \end{aligned}$$

However, noting that the hat map (2) satisfies, for any \(\mathbf{a }, \mathbf{b } \in {\mathbb {R}}^{3}\),

$$\begin{aligned} \hat{\mathbf{a }} \mathbf{b } = \mathbf{a } \times \mathbf{b } = - \mathbf{b } \times \mathbf{a } = - \hat{\mathbf{b }} \mathbf{a }, \end{aligned}$$

we have

$$\begin{aligned} -\widehat{\mathbf{y }_{\mathrm{w}}^{(1)}(\psi )}\, \varvec{\omega }= (w{\dot{\psi }} - \rho {\dot{\varphi }}_{1})\mathbf{e }_{\psi }, \quad -\widehat{\mathbf{y }_{\mathrm{w}}^{(2)}(\psi )}\, \varvec{\omega }= -(w{\dot{\psi }} + \rho {\dot{\varphi }}_{2})\mathbf{e }_{\psi }, \end{aligned}$$

or

$$\begin{aligned} Y \varvec{\omega }= \mathbf{b } \quad \text {with} \quad Y \mathrel {\mathop :}=- \begin{bmatrix} \widehat{\mathbf{y }_{\mathrm{w}}^{(1)}(\psi )} \\ \widehat{\mathbf{y }_{\mathrm{w}}^{(2)}(\psi )} \end{bmatrix} \in {\mathbb {R}}^{6 \times 3}, \quad \mathbf{b } \mathrel {\mathop :}=\begin{bmatrix} (w{\dot{\psi }} - \rho {\dot{\varphi }}_{1})\mathbf{e }_{\psi } \\ -\,(w{\dot{\psi }} + \rho {\dot{\varphi }}_{2})\mathbf{e }_{\psi } \end{bmatrix}. \end{aligned}$$

Solving this linear system, we obtain \(\varvec{\omega }= (Y^{T}Y)^{-1}Y^{T} \mathbf{b }\) or

$$\begin{aligned} \begin{bmatrix} \omega _{1} \\ \omega _{2} \end{bmatrix}&= -\frac{\rho }{2h}({\dot{\varphi }}_{1} + {\dot{\varphi }}_{2}) \begin{bmatrix} \cos \psi \\ \sin \psi \end{bmatrix}, \end{aligned}$$
(4)
$$\begin{aligned} \omega _{3}&= {\dot{\psi }} - \frac{\rho }{2w}({\dot{\varphi }}_{1} - {\dot{\varphi }}_{2}). \end{aligned}$$
(5)

2.4 Additional Constraint

We impose one more constraint: the total angular momentum of the robot about the vertical axis passing though the center of the sphere is conserved. Recall that the no-slip assumption (iii) from Sect. 2.1 does not prevent the sphere from rotating about the vertical axis. Accordingly, we make an (ideal) assumption that there is no friction for such rotations. Assuming no spinning initially, this amounts to setting the total angular momentum to be zero. Let \(I_{\mathrm{s}}\) be the moment of inertia of the sphere about any axis passing through the center (assuming that the mass distribution on the surface of the sphere is homogeneous) and J be that of the electromechanical unit. Then the constraint is given by

$$\begin{aligned} I_{\mathrm{s}} \omega _{3} + J{\dot{\psi }} = 0. \end{aligned}$$

Solving the above constraint equation coupled with (5) for \(\omega _{3}\) and \({\dot{\psi }}\), we have

$$\begin{aligned} \omega _{3} = -\frac{c J}{I_{\mathrm{s}}}({\dot{\varphi }}_{1} - {\dot{\varphi }}_{2}), \end{aligned}$$
(6)

and

$$\begin{aligned} {\dot{\psi }} = c({\dot{\varphi }}_{1} - {\dot{\varphi }}_{2}), \end{aligned}$$
(7)

where we defined

$$\begin{aligned} c \mathrel {\mathop :}=\frac{\rho \,I_{\mathrm{s}}}{2w(I_{\mathrm{s}} + J)}. \end{aligned}$$

Equation (7) is a holonomic constraint on the variables \((\varphi _{1}, \varphi _{2}, \psi )\) that can be integrated easily:

$$\begin{aligned} \psi = c(\varphi _{1} - \varphi _{2}), \end{aligned}$$
(8)

where we set, without loss of generality, \(\psi (0) = \varphi _{1}(0) = \varphi _{2}(0) = 0\). Hence we may eliminate \(\psi \) from the formulation by using the holonomic constraint (8). Note that setting \(\psi (0) = 0\) means that the \(x_{1}\)-axis is aligned with the axis of the wheels in the initial configuration; see Fig. 3.

Remark 2.1

The above no-friction assumption for rotations of the sphere about the vertical axis is reasonable if the surface on which the robot is rolling is very smooth. One may need to adjust it slightly to take frictions into account depending on how rough the surface is. If the surface is very rough, one may assume that the moment of inertia of the sphere \(I_{\mathrm{s}}\) is much larger than that of the electromechanical unit and so one may take the limit \(J/I_{\mathrm{s}} \rightarrow 0\) to have \(c = \rho /(2w)\) instead.

3 Geometry of Robot Kinematics

3.1 Kinematic Control System

Let us define the configuration space of the robot as

$$\begin{aligned} Q \mathrel {\mathop :}={\mathbb {S}}^{1} \times {\mathbb {S}}^{1} \times {\textsf {S}}{\textsf {O}}(3) \times {\mathbb {R}}^{2} = \{(\varphi _{1},\varphi _{2},R,\mathbf{x })\}. \end{aligned}$$

Then the no-slip constraints (3) and (4) along with (6) define the following nonholonomic constraints on Q:

$$\begin{aligned} {\dot{R}} = {\hat{\varvec{\omega }}} R \end{aligned}$$
(9a)

with

$$\begin{aligned} \displaystyle \varvec{\omega }= & {} \begin{bmatrix} \omega _{1} \\ \omega _{2} \\ \omega _{3} \end{bmatrix} = \begin{bmatrix} -\,\frac{\rho }{2h}\cos (c(\varphi _{1} - \varphi _{2})) \\ -\,\frac{\rho }{2h}\sin (c(\varphi _{1} - \varphi _{2})) \\ -\,{c J}/{I_{\mathrm{s}}} \end{bmatrix}{\dot{\varphi }}_{1} + \begin{bmatrix} -\,\frac{\rho }{2h}\cos (c(\varphi _{1} - \varphi _{2})) \\ -\,\frac{\rho }{2h}\sin (c(\varphi _{1} - \varphi _{2})) \\ {c J}/{I_{\mathrm{s}}} \end{bmatrix}{\dot{\varphi }}_{2},\nonumber \\ \displaystyle \dot{\mathbf{x }}= & {} \begin{bmatrix} {\dot{x}}_{1} \\ {\dot{x}}_{2} \end{bmatrix} = \frac{r\rho }{2h}({\dot{\varphi }}_{1} + {\dot{\varphi }}_{2}) \begin{bmatrix} -\,\sin (c(\varphi _{1} - \varphi _{2})) \\ \cos (c(\varphi _{1} - \varphi _{2})) \end{bmatrix}. \end{aligned}$$
(9b)

Assuming that one can control the angular velocity of the wheels, we may define a kinematic control system for the robot by the nonholonomic constraints (9a) and (9b) coupled with

$$\begin{aligned} {\dot{\varphi }}_{1} = u_{1}, \quad {\dot{\varphi }}_{2} = u_{2}. \end{aligned}$$
(9c)

As a result, (9) defines a kinematic control system.

3.2 Geometry of Kinematic Control System

The above nonholonomic constraints (9a) and (9b) define a distribution \({\mathcal {H}}\) on Q, i.e., at each point \(q = (\varphi _{1},\varphi _{2},R,\mathbf{x })\) of Q,

$$\begin{aligned} {\mathcal {H}}_{q} \mathrel {\mathop :}={\left\{ ({\dot{\varphi }}_{1},{\dot{\varphi }}_{2},{\dot{R}},\dot{\mathbf{x }}) \in T_{q}Q \ |\ (9\mathrm{a}) \text { and } (9\mathrm{b}) \right\} } \end{aligned}$$

defines a subspace of the tangent space \(T_{q}Q\). Practically speaking, \({\mathcal {H}}_{q}\) is the space of admissible velocities of the robot at the configuration \(q \in Q\).

Now, let \(\textsf {G} \mathrel {\mathop :}={\textsf {S}}{\textsf {O}}(3) \times {\mathbb {R}}^{2} = \{ (R,\mathbf{x }) \}\) and \(\varPhi {:}\,\textsf {G} \times Q \rightarrow Q\) be the natural (right) action of \(\textsf {G} \mathrel {\mathop :}={\textsf {S}}{\textsf {O}}(3) \times {\mathbb {R}}^{2}\) on the \(\textsf {G}\)-component of Q, i.e.,

$$\begin{aligned} \varPhi _{(R_{0},\mathbf{x }_{0})}(\varphi _{1}, \varphi _{2}, R, \mathbf{x }) \mathrel {\mathop :}=(\varphi _{1}, \varphi _{2}, R R_{0}, \mathbf{x } + \mathbf{x }_{0}). \end{aligned}$$
(10)

This gives rise to the principal bundle

$$\begin{aligned} \pi {:}\,Q \rightarrow Q/\textsf {G}; \quad (\varphi _{1}, \varphi _{2}, R, \mathbf{x }) \mapsto (\varphi _{1}, \varphi _{2}), \end{aligned}$$

where the base space

$$\begin{aligned} S \mathrel {\mathop :}=Q/\textsf {G} = {\mathbb {S}}^{1} \times {\mathbb {S}}^{1} = \{ (\varphi _{1}, \varphi _{2}) \} \end{aligned}$$

is the so-called shape space, i.e., the space of all possible angles of rotation of the two wheels. Note that Q is a trivial bundle, i.e., \(Q = S \times \textsf {G}\). In what follows, we will write

$$\begin{aligned} \varphi = (\varphi _{1}, \varphi _{2}) \in S, \quad g = (R,\mathbf{x }) \in \textsf {G}, \quad q = (\varphi ,g) = (\varphi _{1}, \varphi _{2}, R, \mathbf{x }) \in Q \end{aligned}$$

for short. Then we may write the above group action as \(\varPhi _{g_{0}}(\varphi , g) = (\varphi , g g_{0})\) for any \(g_{0} \in \textsf {G}\).

One can easily show that the distribution \({\mathcal {H}}\) is invariant under the tangent lift of \(\varPhi \) in the sense that \(T_{q}\varPhi _{g}({\mathcal {H}}_{q}) = {\mathcal {H}}_{\varPhi _{g}(q)}\) for any \(q \in Q\) and any \(g \in \textsf {G}\); in fact, \({\hat{\varvec{\omega }}} \mathrel {\mathop :}={\dot{R}}R^{-1}\) is clearly invariant under the right action of \({\textsf {S}}{\textsf {O}}(3)\), and the translational symmetry in \({\mathbb {R}}^{2}\) is trivial. Let \({\mathcal {V}}_{q}\) be the tangent space at q to the orbit \({\mathcal {O}}(q) \mathrel {\mathop :}={\left\{ \varPhi _{g}(q) \ |\ g \in \textsf {G} \right\} }\) of the action \(\varPhi \), i.e., \({\mathcal {V}}_{q} \mathrel {\mathop :}=T_{q}{\mathcal {O}}(q)\). Then it is easy to see that it is a complementary subspace of \({\mathcal {H}}_{q}\), i.e., \(T_{q}Q = {\mathcal {H}}_{q} \oplus {\mathcal {V}}_{q}\). As a result, \({\mathcal {H}}\) defines a principal connection on \(\pi {:}\,Q \rightarrow Q/\textsf {G}\); see e.g., Montgomery (1993a).

The control system is then defined by the fully actuated subsystem (9c) in the shape space S coupled with the rest of the system (9b)—defined by the nonholonomic constraints—in the direction of the fiber \(\textsf {G} = {\textsf {S}}{\textsf {O}}(3) \times {\mathbb {R}}^{2}\). A more geometric way of looking at it is the following: for any given \(q = (\varphi ,g) \in Q\), we define the horizontal lift \({\text {hl}}_{q}{:}\,T_{\varphi }S \rightarrow {\mathcal {H}}_{q}\) as \({\text {hl}}_{q} \mathrel {\mathop :}=(T_{q}\pi |_{{\mathcal {H}}_{q}})^{-1}\) or more concretely,

$$\begin{aligned} {\text {hl}}_{q}({\dot{\varphi }}_{1}, {\dot{\varphi }}_{2}) = ({\dot{\varphi }}_{1},{\dot{\varphi }}_{2},{\dot{R}},\dot{\mathbf{x }}) \quad \text {with}\quad (\mathrm{}9\mathrm{a}) \text {and} (\mathrm{}9\mathrm{b}). \end{aligned}$$

Then the kinematic control system is defined by the horizontal lift of the controlled subsystem (9c):

$$\begin{aligned} {\dot{q}} = {\text {hl}}_{q}(u_{1}, u_{2}). \end{aligned}$$

This is an example of the nonholonomic (kinematic) control system considered by, e.g., Montgomery (1993a) and Kelly and Murray (1995).

3.3 Principal Connection Form for Kinematic Control System

Another way of looking at the above principal connection that is more convenient for our purpose is the following: we may define a principal connection form \({\mathcal {A}}{:}\,\textit{TQ} \rightarrow {\mathfrak {g}}\) (\({\mathfrak {g}}\)-valued one-form on Q), where \({\mathfrak {g}} = {{\mathfrak {s}}}{{\mathfrak {o}}}(3) \times {\mathbb {R}}^{2}\) is the Lie algebra of \(\textsf {G} = {\textsf {S}}{\textsf {O}}(3) \times {\mathbb {R}}^{2}\), as

$$\begin{aligned} {\mathcal {A}}_{q} = {\mathcal {A}}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{q} \oplus {\mathcal {A}}^{{\mathbb {R}}^{2}}_{q} \end{aligned}$$

so that (i) the distribution \({\mathcal {H}} \subset { TQ}\) can be written as \({\mathcal {H}}_{q} = \ker {\mathcal {A}}_{q}\); (ii) it is \(\textsf {G}\)-equivariant, i.e., for any \(g \in \textsf {G}\) and \(v_{q} \in T_{q}Q\), we have \({\mathcal {A}}_{q}( T_{q}\varPhi _{g}(v_{q}) ) = {\text {Ad}}_{g^{-1}} {\mathcal {A}}_{q}(v_{q})\); (iii) \({\mathcal {A}}_{q}(\xi _{Q}(q)) = \xi \) for any \(\xi \in {\mathfrak {g}}\), where \(\xi _{Q}\) is the infinitesimal generator defined by

$$\begin{aligned} \xi _{Q}(q) \mathrel {\mathop :}=\left. \dfrac{\text {d}}{\text {d}\varepsilon } \varPhi _{\exp (\varepsilon \xi )}(q) \right| _{\varepsilon =0}. \end{aligned}$$
(11)

In coordinates, one may write such a connection one-form as (see e.g., Bloch 2015, Proposition 2.9.12 on p. 120)

$$\begin{aligned} {\mathcal {A}}_{(\varphi ,g)} = {\text {Ad}}_{g^{-1}}{\left( \mathbf d {g}\cdot g^{-1} + A_{i}(\varphi )\,\mathbf{d }\varphi _{i}\right) }. \end{aligned}$$
(12)

More concretely, we may define \({\mathcal {A}}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}{:}\,\textit{TQ} \rightarrow {{\mathfrak {s}}}{{\mathfrak {o}}}(3)\) and \({\mathcal {A}}^{{\mathbb {R}}^{2}}{:}\,\textit{TQ} \rightarrow {\mathbb {R}}^{2}\) as follows:

$$\begin{aligned} {\mathcal {A}}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{q} \mathrel {\mathop :}={\text {Ad}}_{R^{-1}}{\left( \mathbf{d }{R} \cdot R^{-1} + A^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{i}(\varphi )\,\mathbf{d }\varphi _{i} \right) }, \quad {\mathcal {A}}^{{\mathbb {R}}^{2}}_{q} \mathrel {\mathop :}=\begin{bmatrix} \mathbf d {x}_{1} \\ \mathbf d {x}_{2} \end{bmatrix} + \mathbf{A }^{{\mathbb {R}}^{2}}_{i}(\varphi )\,\mathbf{d }{\varphi }_{i}, \end{aligned}$$

where we used the Einstein summation convention; \(\mathbf{d }{R} \cdot R^{-1}\) is seen as an \({{\mathfrak {s}}}{{\mathfrak {o}}}(3)\)-valued one-form, i.e., \(\mathbf{d }{R} \cdot R^{-1}({\dot{R}}) = {\dot{R}}R^{-1} \in {{\mathfrak {s}}}{{\mathfrak {o}}}(3)\), and

$$\begin{aligned} A^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{1}(\varphi )&\mathrel {\mathop :}=&\widehat{ \begin{bmatrix} \frac{\rho }{2h}\cos (c(\varphi _{1} - \varphi _{2})) \\ \frac{\rho }{2h}\sin (c(\varphi _{1} - \varphi _{2})) \\ {c J}/{I_{\mathrm{s}}} \end{bmatrix} }, \quad A^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{2}(\varphi ) \mathrel {\mathop :}=\widehat{ \begin{bmatrix} \frac{\rho }{2h}\cos (c(\varphi _{1} - \varphi _{2})) \\ \frac{\rho }{2h}\sin (c(\varphi _{1} - \varphi _{2})) \\ -\,{c J}/{I_{\mathrm{s}}} \end{bmatrix} }, \nonumber \\\end{aligned}$$
(13)
$$\begin{aligned} \mathbf{A }^{{\mathbb {R}}^{2}}_{i}(\varphi )&\mathrel {\mathop :}=&\frac{r\rho }{2h} \begin{bmatrix} \sin (c(\varphi _{1} - \varphi _{2})) \\ -\,\cos (c(\varphi _{1} - \varphi _{2})) \end{bmatrix} \quad \text {for} \quad i = 1, 2, \end{aligned}$$
(14)

where we used the hat map (2).

As a result, we have \({\dot{q}} \in {\mathcal {H}}_{q}\) if and only if \({\mathcal {A}}_{q}({\dot{q}}) = 0\), and the subsystem (9b) in the direction of the fiber \({\textsf {S}}{\textsf {O}}(3) \times {\mathbb {R}}^{2}\) can be written as

$$\begin{aligned} {\hat{\varvec{\omega }}} = {\dot{R}}R^{-1} = -A^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{i}(\varphi ) {\dot{\varphi }}_{i}, \quad \dot{\mathbf{x }} = -\mathbf{A }^{{\mathbb {R}}^{2}}_{i}(\varphi ){\dot{\varphi }}_{i}. \end{aligned}$$
(15)

Note that the horizontal lift \({\text {hl}}_{q}{:}\,T_{\varphi }S \rightarrow {\mathcal {H}}_{q}\) is then written as

$$\begin{aligned} {\text {hl}}_{q}({\dot{\varphi }}_{1}, {\dot{\varphi }}_{2}) = {\left( {\dot{\varphi }}_{1}, {\dot{\varphi }}_{2}, (-A^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{i}(\varphi ) {\dot{\varphi }}_{i})R, -\mathbf{A }^{{\mathbb {R}}^{2}}_{i}(\varphi ){\dot{\varphi }}_{i} \right) }. \end{aligned}$$

4 Fiber Controllability

One of the main questions regarding the kinematic control system (9) is its controllability. The controllability of the subsystem (9c) in the shape space S is fairly trivial and is of not much practical importance. What is more important practically is the fiber controllability (Kelly and Murray 1995), i.e., the controllability in the direction of the fiber \(\textsf {G} = {\textsf {S}}{\textsf {O}}(3) \times {\mathbb {R}}^{2}\). The fiber controllability here addresses the question of whether it is possible to maneuver the robot to an arbitrary (center) position with an arbitrary rotational orientation, regardless of the configurations of the wheels. As stated in Proposition 4 in Kelly and Murray (1995) (see also Montgomery 1991, 1993a), the Ambrose–Singer Theorem (Ambrose and Singer 1953) provides a criterion for fiber controllability in terms of the principal connection \({\mathcal {A}}\) defined above as well as its curvature.

4.1 Curvature of Principal Connection

The nonholonomic/nonintegrable nature of the horizontal distribution \({\mathcal {H}}\) is essential in the kinematic control system (9), as the Lie brackets of vector fields in \({\mathcal {H}}\) then generate directions of motion outside the distribution \({\mathcal {H}}\). The lack of integrability is measured by the curvature \({\mathcal {B}}\) of the principal connection \({\mathcal {A}}\); it is the \({\mathfrak {g}}\)-valued two-form on Q defined as

$$\begin{aligned} {\mathcal {B}}(X,Y) \mathrel {\mathop :}=\mathbf{d }{\mathcal {A}}({\text {hor}}X, {\text {hor}}Y) = -{\mathcal {A}}([{\text {hor}}X, {\text {hor}}Y]), \end{aligned}$$

where \(X, Y \in T_{q}Q\) and \({\text {hor}}X, {\text {hor}}Y \in {\mathcal {H}}_{q}\) are their horizontal components, i.e.,

$$\begin{aligned} {\text {hor}}X \mathrel {\mathop :}=X - {\left( {\mathcal {A}}(X) \right) }_{Q}(q), \end{aligned}$$

where \((\,\cdot \,)_{Q}\) stands for the infinitesimal generator defined in (11). A more convenient formula for \({\mathcal {B}}\) is given by the Cartan structure equation (see e.g., Marsden et al. 2007, Theorem 2.1.9):

$$\begin{aligned} {\mathcal {B}}(X,Y) = \mathbf{d }{\mathcal {A}}(X,Y) + [{\mathcal {A}}(X), {\mathcal {A}}(Y)], \end{aligned}$$

where we have the plus sign on the right-hand side because \(\varPhi \), defined in (10), is a right action. This formula gives the following coordinate expression for the curvature:

$$\begin{aligned} {\mathcal {B}}_{q} = {\text {Ad}}_{g^{-1}}(B(\varphi )\,\mathbf{d }\varphi _{1} \wedge \mathbf{d }\varphi _{2}), \end{aligned}$$

where the local expression \(B{:}\,S \rightarrow {\mathfrak {g}}\) of the curvature is written in terms of the local expression \(\{A_{i}{:}\,S \rightarrow {\mathfrak {g}}\}_{i=1,2}\) of the connection one-form (12) as follows: Let \(\{ e_{a} \}_{a=1}^{\dim \textsf {G}}\) be a basis for \({\mathfrak {g}}\), and \(A_{i}(\varphi ) = A_{i}^{a}(\varphi )\, e_{a}\) for \(i = 1, 2\). Then \(B(\varphi ) = B^{a}(\varphi )\, e_{a}\) with

$$\begin{aligned} B^{a} = \dfrac{\partial A_{2}^{a}}{\partial \varphi _{1}} - \dfrac{\partial A_{1}^{a}}{\partial \varphi _{2}} + C^{a}_{bc} A_{1}^{b} A_{2}^{c}, \end{aligned}$$

and \(C^{a}_{bc}\) is the structure constant of \({\mathfrak {g}}\) defined as

$$\begin{aligned} {[}e_{b}, e_{\mathrm{c}}] = C^{a}_{bc}e_{a}. \end{aligned}$$

More explicitly, we have

$$\begin{aligned} {\mathcal {B}}_{q} = {\mathcal {B}}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{q} \oplus {\mathcal {B}}^{{\mathbb {R}}^{2}}_{q}, \end{aligned}$$

where

$$\begin{aligned} {\mathcal {B}}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{q} = {\text {Ad}}_{R^{-1}}(B^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}\,\mathbf{d }\varphi _{1} \wedge \mathbf{d }\varphi _{2}), \quad {\mathcal {B}}^{{\mathbb {R}}^{2}}_{q} = \mathbf{B }^{{\mathbb {R}}^{2}}\,\mathbf{d }\varphi _{1} \wedge \mathbf{d }\varphi _{2} \end{aligned}$$

are the curvatures of the principal connections \({\mathcal {A}}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}\) and \({\mathcal {A}}^{{\mathbb {R}}^{2}}\). The expressions are then given by

$$\begin{aligned} B^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}&= {\left( \dfrac{\partial (A_{2}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)})^{a}}{\partial \varphi _{1}} - \dfrac{\partial (A_{1}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)})^{a}}{\partial \varphi _{2}} + C^{a}_{bc} (A_{1}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)})^{b} (A_{2}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)})^{c} \right) } \hat{\mathbf{e }}_{a} \nonumber \\&= {\left( \dfrac{\partial \mathbf{A }_{2}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}}{\partial \varphi _{1}} - \dfrac{\partial \mathbf{A }_{1}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}}{\partial \varphi _{2}} + \mathbf{A }_{1}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)} \times \mathbf{A }_{2}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)} \right) }^{\widehat{}} \nonumber \\&= \frac{\rho ^{2}}{2 h w} \widehat{ \begin{bmatrix} -\sin (c(\varphi _{1} - \varphi _{2})) \\ \cos (c(\varphi _{1} - \varphi _{2})) \\ 0 \end{bmatrix}}, \end{aligned}$$
(16)

where \(\{ \mathbf{e }_{a} \}_{a=1}^{3}\) is the standard basis for \({\mathbb {R}}^{3}\) and \(\mathbf{A }^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{i}{:}\,S \rightarrow {\mathbb {R}}^{3}\) is defined so that \(\widehat{\mathbf{A }^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{i}} = A^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{i}\) for \(i = 1, 2\) under the hat map (2), whereas

$$\begin{aligned} \mathbf{B }^{{\mathbb {R}}^{2}} = \dfrac{\partial \mathbf{A }_{2}^{{\mathbb {R}}^{2}}}{\partial \varphi _{1}} - \dfrac{\partial \mathbf{A }_{1}^{{\mathbb {R}}^{2}}}{\partial \varphi _{2}} = \frac{c\,r\rho }{h} \begin{bmatrix} \cos (c(\varphi _{1} - \varphi _{2})) \\ \sin (c(\varphi _{1} - \varphi _{2})) \end{bmatrix} \end{aligned}$$
(17)

because \({\mathbb {R}}^{2}\) is abelian.

4.2 Fiber Controllability

We are now ready to prove the fiber controllability of the robot:

Theorem 4.1

The kinematic control system (9) of the spherical rolling robot is fiber controllable, i.e., given arbitrary two points \(g_{0}, g_{1} \in \textsf {G} = {\textsf {S}}{\textsf {O}} (3) \times {\mathbb {R}}^{2}\), there exists a control \(u{:}\,[t_{0},t_{1}] \rightarrow {\mathbb {R}}^{2}\) such that the solution \(g(t) = (R(t),\mathbf{x }(t))\) of the system (9) under the initial condition \(g(t_{0}) = g_{0}\) satisfies \(g(t_{1}) = g_{1}\).

Proof

Let us define, for each \(\varphi \in S\), the subspaces \(\{ {\mathfrak {h}}_{i}(\varphi ) \}_{i=1}^{2}\) of \({\mathfrak {g}}\) as follows:

$$\begin{aligned} {\mathfrak {h}}_{1}(\varphi ) \mathrel {\mathop :}=\mathop {\text {span}}\nolimits \{ A(\varphi ) \}, \quad {\mathfrak {h}}_{2}(\varphi ) \mathrel {\mathop :}=\mathop {\text {span}}\nolimits \{ B(\varphi ) \}, \end{aligned}$$

where \(A = A^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)} \oplus \mathbf{A }^{{\mathbb {R}}^{2}}\) and \(B = B^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)} \oplus \mathbf{B }^{{\mathbb {R}}^{2}}\). Since \(\textsf {G} = {\textsf {S}}{\textsf {O}}(3) \times {\mathbb {R}}^{2}\) is a direct product, \({\mathfrak {g}} = {{\mathfrak {s}}}{{\mathfrak {o}}}(3) \oplus {\mathbb {R}}^{2}\) is a direct sum. Hence we may treat \({{\mathfrak {s}}}{{\mathfrak {o}}}(3)\) and \({\mathbb {R}}^{2}\) separately. First, it is clear from (13) and (16) that

$$\begin{aligned} \mathop {\text {span}}\nolimits \{ A^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}(\varphi ) \} + \mathop {\text {span}}\nolimits \{ B^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}(\varphi ) \} = {{\mathfrak {s}}}{{\mathfrak {o}}}(3), \end{aligned}$$

and also from (14) and (17) that

$$\begin{aligned} \mathop {\text {span}}\nolimits \{ \mathbf{A }^{{\mathbb {R}}^{2}}(\varphi ) \} + \mathop {\text {span}}\nolimits \{ \mathbf{B }^{{\mathbb {R}}^{2}}(\varphi ) \} = {\mathbb {R}}^{2} \end{aligned}$$

for any \(\varphi \in S\). This implies that \({\mathfrak {h}}_{1}(\varphi ) \oplus {\mathfrak {h}}_{2}(\varphi ) = {\mathfrak {g}}\) for any \(\varphi \in S\). Hence by Proposition 4 from Kelly and Murray (1995), the kinematic control system (9) is locally fiber controllable near any \((\varphi _{0}, g_{0}) \in Q\), i.e., there exists an open neighborhood of \(g_{0} \in \textsf {G}\) that can be reached in the fiber direction.

However, since \(\textsf {G}\) is connected, this implies that, for any \(g \in \textsf {G}\), \((\varphi _{0}, g)\) can be reached from \((\varphi _{0}, g_{0})\). In fact, the connectedness implies that, for any \(g_{0},g_{1} \in \textsf {G}\), one can find a path (not the trajectory of the system in general) \(g{:}\,[0,1] \rightarrow \textsf {G}\) such that \(g(0) = g_{0}\) and \(g(1) = g_{1}\). Now the local fiber controllability implies that, for any \(t \in [0,1]\), \(g(t) \in \textsf {G}\) has an open neighborhood \(U_{t} \subset \textsf {G}\) that can be reached from g(t); also g(t) can be reached from any point in \(U_{t}\) by reversing the control because there is no drift in the system (9). This defines an open cover \(\{ U_{t} \}_{t \in [0,1]}\) of the path g([0, 1]). But then, since the path is compact, there exists a finite subcovering, and hence the path is covered by finite open neighborhoods, each of which can be reached from a certain point on the path; also the point on the path can be reached from any point in the neighborhood. This proves the existence of a desired control u. \(\square \)

5 Geometric Phase: Curvature and Locomotion

The fiber controllability proved above only concerned with existence of a desired control and does not provide us with a constructive way of finding a desired control. In this section, we partially address this problem by finding explicit formulas for the changes in the translational position and rotational orientation of the sphere—called holonomy or geometric phase—under those control laws that result in certain types of loops in the shape space S. These formulas apply to only some special types of control and can generate only certain types of motions and does not give the control law for any maneuver in the fiber. Nevertheless, these results illustrate how the geometric ingredients introduced above play a role in motion generation and have potential applications in motion planning; see e.g., Kelly and Murray (1995) and Hatton and Choset (2011).

5.1 Translational Holonomy and Area Rule

It is straightforward to calculate the translational motion of the center of the sphere of the robot by integrating the \({\mathbb {R}}^{2}\) part of (9b). A particularly interesting case is where the control \((u_{1},u_{2})\) is applied so that \(\varphi = (\varphi _{1},\varphi _{2})\) makes a loop in the shape space torus \(S = {\mathbb {S}}^{1} \times {\mathbb {S}}^{1}\) or its covering space \({\mathbb {R}}\times {\mathbb {R}}\) (if a wheel makes more than one revolution). In this case, the displacement of the center of the sphere is determined by the weighted area enclosed by the loop determined in terms of the curvature (17)—an example of the “area rule” (see e.g., Kelly and Murray 1995).

Let \(\Gamma {:}\,[0,T] \rightarrow S\) be a loop in the shape space S that encloses a domain \(D \subset S\), i.e., \(\partial D = \Gamma ([0,T])\). Using Stokes’s Theorem, one can find the displacement of the center of the sphere in terms of the curvature as follows:

$$\begin{aligned} \mathbf{x }(T) - \mathbf{x }(0)&= -\int _{\partial D} \mathbf{A }^{{\mathbb {R}}^{2}}_{i}(\varphi )\mathbf{d }\varphi _{i} \nonumber \\&= -\int _{D} \mathbf{B }^{{\mathbb {R}}^{2}}(\varphi ) \mathbf{d }\varphi _{1} \wedge \mathbf{d }\varphi _{2} \nonumber \\&= -\int _{D} \begin{bmatrix} \cos (c(\varphi _{1} - \varphi _{2})) \\ \sin (c(\varphi _{1} - \varphi _{2})) \end{bmatrix} \mathbf{d }\varphi _{1} \wedge \mathbf{d }\varphi _{2}. \end{aligned}$$
(18)

Example 5.1

As a simple and typical example to see the above area rule, consider a rectangular loop \(\Gamma \) in the shape space \(S = {\mathbb {S}}^{1} \times {\mathbb {S}}^{1}\) or its covering space \({\mathbb {R}}\times {\mathbb {R}}\) shown in Fig. 5a. It is straightforward to evaluate the integral over the domain D:

$$\begin{aligned} \mathbf{x }(T) - \mathbf{x }(0)&= -\int _{D} \mathbf{B }^{{\mathbb {R}}^{2}}(\varphi ) \mathbf{d }\varphi _{1} \wedge \mathbf{d }\varphi _{2} \\&= \frac{r \rho }{c\,h} \begin{bmatrix} \cos (c\alpha ) + \cos (c\beta ) - \cos {\left( c(\alpha - \beta ) \right) } - 1 \\ \sin (c\alpha ) - \sin (c\beta ) - \sin {\left( c(\alpha - \beta ) \right) } - 1 \end{bmatrix}. \end{aligned}$$

With the parameters as specified in the caption of Fig. 5, the above area rule gives \(\mathbf{x }(T) - \mathbf{x }(0) \simeq (-\,0.37, -\,0.01)\); this is the actual displacement of the center \(\mathbf{x }\) in time T as shown in Fig. 5b.

Fig. 5
figure 5

Example of translational holonomy by the area rule. In (b), the parameters are: \(r = 1\), \(\rho = 0.3\), \(h = 0.75\), \(w = 0.8\), and \(J/I_{\mathrm{s}} = 5\); the initial position is \(\mathbf{x }(0) = \mathbf{0 }\); the angles are \(\alpha = 7\pi \) and \(\beta = 6\pi \); the terminal time is \(T = 2(\alpha + \beta )\)

5.2 Rotational Holonomy

How much does the sphere rotate as \(\varphi \) makes a loop in the shape space? Unfortunately, calculation of geometric phases in rotations is not as simple and clear cut as the translational case because of the non-abelian nature of \({\textsf {S}}{\textsf {O}}(3)\). As we have seen in (15), the time evolution of the rotational configuration \(R \in {\textsf {S}}{\textsf {O}}(3)\) is related to the evolution of the angles \(\varphi \) of the wheels as follows:

$$\begin{aligned} {\dot{R}} = {\left( -A^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{i}(\varphi ) {\dot{\varphi }}_{i} \right) } R. \end{aligned}$$
(19)

Suppose that a curve \(\varphi {:}\,[0,T] \rightarrow S\) is given. Then, as is well known in basic theory of linear differential equations, one may formally write down the solution of the above system as an infinite series of integrals. However, since \({\textsf {S}}{\textsf {O}}(3)\) is non-abelian, this series does not simplify to a matrix exponential in general. Therefore there is no simple area rule like the (abelian) translational case.

Here we restrict our attention to a particular type of control for which (19) is explicitly solvable. Upon the change of variables to the new coordinates \((\phi _{1}, \phi _{2})\) defined by

$$\begin{aligned} \phi _{1} \mathrel {\mathop :}=\varphi _{1} + \varphi _{2}, \quad \phi _{2} \mathrel {\mathop :}=\varphi _{1} - \varphi _{2}, \end{aligned}$$
(20)

the connection form \({\mathcal {A}}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}\) becomes

$$\begin{aligned} {\mathcal {A}}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{q} \mathrel {\mathop :}={\text {Ad}}_{R^{-1}}{\left( \mathbf{d }{R} \cdot R^{-1} + {\tilde{A}}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{i}(\phi )\,\mathbf{d }\phi _{i} \right) }, \end{aligned}$$

where

$$\begin{aligned} {\tilde{A}}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{1}(\phi ) \mathrel {\mathop :}=\frac{\rho }{2h} \widehat{ \begin{bmatrix} \cos (c\,\phi _{2}) \\ \sin (c\,\phi _{2}) \\ 0 \end{bmatrix} }, \quad {\tilde{A}}^{{{\mathfrak {s}}}{{\mathfrak {o}}}(3)}_{2}(\phi ) \mathrel {\mathop :}=\frac{c J}{I_{\mathrm{s}}} \widehat{ \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} }, \end{aligned}$$

Note that the first one is constant if \(\phi _{2}\) is constant, while the second one is always constant. This suggests us to make a loop in the shape space so that each edge is parallel to either the \(\phi _{1}\)- or \(\phi _{2}\)-axis; a typical loop of this type is shown in Fig. 6a in the \(\varphi _{1}\)\(\varphi _{2}\) plane. Particularly, if we require that the angular velocities are piecewise constant, the loop is given by

$$\begin{aligned} \varphi _{1}(t)= & {} {\left\{ \begin{array}{ll} t/2 &{}\quad 0 \le t< \alpha + \beta , \\ \alpha + \beta - t/2 &{}\quad \alpha + \beta \le t \le 2(\alpha + \beta ), \end{array}\right. }\\ \varphi _{2}(t)= & {} {\left\{ \begin{array}{ll} t/2 &{}\quad 0 \le t< \alpha , \\ \alpha - t/2 &{}\quad \alpha \le t < 2\alpha + \beta , \\ t/2 - (\alpha + \beta ) &{}\quad 2\alpha + \beta \le t \le 2(\alpha + \beta ), \end{array}\right. } \end{aligned}$$

under the piecewise constant control

$$\begin{aligned} u(t) = (u_{1}(t),u_{2}(t)) = {\left\{ \begin{array}{ll} (1/2, 1/2) &{}\quad 0 \le t< \alpha , \\ (1/2,-\,1/2) &{}\quad \alpha \le t< \alpha + \beta , \\ (-\,1/2,-\,1/2) &{}\quad \alpha + \beta \le t < 2\alpha + \beta , \\ (-\,1/2,1/2) &{}\quad 2\alpha + \beta \le t \le 2(\alpha + \beta ). \end{array}\right. } \end{aligned}$$
(21)
Fig. 6
figure 6

a A loop along which one can find an exact expression for the rotational holonomy, b the initial position of the point is \(\mathbf{e }(0) = (0,1,0)\). The parameters are the same as those from the caption of Fig. 5 except that \(\alpha = \pi \) and \(\beta = 3\pi /2\) here

Then we can compute the rotational holonomy explicitly because (19) is exactly solvable along each edge of the rectangular loop:

$$\begin{aligned} R(\alpha )&= \exp {\left( -\alpha \,\frac{\rho }{2h} \widehat{ \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}} \right) } R(0), \\ R(\alpha +\beta )&= \exp {\left( -\beta \,\frac{c J}{I_{\mathrm{s}}} \widehat{ \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix}} \right) } R(\alpha ), \\ R(2\alpha + \beta )&= \exp {\left( \alpha \,\frac{\rho }{2h} \widehat{ \begin{bmatrix} \cos (c\beta ) \\ \sin (c\beta ) \\ 0 \end{bmatrix}} \right) } R(\alpha + \beta ), \\ R(2(\alpha +\beta ))&= \exp {\left( \beta \,\frac{c J}{I_{\mathrm{s}}} \widehat{ \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix}} \right) } R(2\alpha + \beta ). \end{aligned}$$

Combining the above results, we obtain an explicit expression for the rotational holonomy \(R(2(\alpha +\beta ))\) [assuming \(R(0) = I\) without of loss of generality] picked up after the loop in Fig. 6a is traversed.

Note that the resulting rotational holonomy is independent of a particular choice of control as long as the curve traverses the same loop. In other words, one obtains the same holonomy \(R(2(\alpha +\beta ))\) along any curve \(\varphi {:}\,[0,T] \rightarrow S\) that traverses the loop in the shape space as shown in Fig. 6a.

Figure 6b shows an example of the trajectory \(\mathbf{e }(t)\) in space (modulo translations of the center of the sphere) for \(0 \le t \le T = 2(\alpha + \beta )\) of a point fixed on the sphere under the control (21), that is, \(\mathbf{e }(t) = R(t)\,\mathbf{e }(0)\).

Particularly, if we pick \(\beta = 2\pi /c\), then the translational holonomy vanishes because the curvature of the translational part of the connection in terms of \((\phi _{1},\phi _{2})\) is

$$\begin{aligned} \mathbf{B }^{{\mathbb {R}}^{2}} = -\frac{c\,r \rho }{2h} \begin{bmatrix} \cos (c\,\phi _{2}) \\ \sin (c\,\phi _{2}) \end{bmatrix}\,\mathbf{d }\phi _{1} \wedge \mathbf{d }\phi _{2}, \end{aligned}$$

and vanishes if integrated over \(0\le \phi _{2} \le \beta = 2\pi /c\). Hence \(\mathbf{x }(T) = \mathbf{x }(0)\) by the area rule (18). Therefore, with this particular choice of \(\beta \), the center of the robot comes back to the original position but picks up the rotational phase calculated above, i.e., the total geometric phase is only rotational.

6 Optimal Control Between Two Center Positions

Let us now consider an optimal control problem of the robot. We will restrict ourselves to a simple special case: The terminal time is fixed, and only the wheel angles and the translational configurations (the position of the center of the sphere) are specified at the end (initial and terminal) times, i.e., the rotational configurations at the end times are immaterial. We show that the resulting optimal control system is completely integrable and obtain an explicit solution for it using Jacobi’s elliptic function.

6.1 Sub-Riemannian Geodesic and Optimal Control Problem

Consider the problem of maneuvering the robot from a given position of the center of the sphere to another (regardless of the rotational orientations) in the most “efficient” way. Here we measure the efficiency in terms of the “energy” of a curve \(q{:}\,[0,T] \rightarrow S \times {\mathbb {R}}^{2}\) defined by

$$\begin{aligned} E(q) \mathrel {\mathop :}=\int _{0}^{T} \frac{1}{2} {\left\| {\dot{\varphi }} \right\| }^{2}\,\mathrm{d}t = \int _{0}^{T} \frac{1}{2}{\left( u_{1}(t)^{2} + u_{2}(t)^{2} \right) }\,\mathrm{d}t, \end{aligned}$$

where \({\left\| \,\cdot \,\right\| }\) is the standard Euclidean norm, i.e., \({\left\| {\dot{\varphi }}(t)\right\| } \mathrel {\mathop :}=\sqrt{ {\dot{\varphi }}_{1}(t)^{2} + {\dot{\varphi }}_{2}(t)^{2} }\). The curves are subject to the condition that they are horizontal, i.e., satisfy the nonholonomic constraint (15), and join two given points \(q_{0} \mathrel {\mathop :}=(\varphi (0),\mathbf{x }(0))\) and \(q_{T} \mathrel {\mathop :}=(\varphi (T),\mathbf{x }(T))\) in \(S \times {\mathbb {R}}^{2}\). More specifically, we have the following optimal control problem:

$$\begin{aligned} \displaystyle \min _{u} \int _{0}^{T} \frac{1}{2}(u_{1}(t)^{2} + u_{2}(t)^{2})\,\mathrm{d}t \quad \text {subject to}\quad \left\{ \begin{array}{l} \dot{\mathbf{x }} = -\mathbf{A }^{{\mathbb {R}}^{2}}_{i}(\varphi )\,u_{i}, \\ {\dot{\varphi }}_{1} = u_{1}, \quad {\dot{\varphi }}_{2} = u_{2}, \\ \mathbf{x }(0)\,\text {and}\,\mathbf{x }(T)\,\text {fixed}, \\ \varphi (0) = \varphi (T)\,\text {fixed}. \end{array} \right. \end{aligned}$$
(22)

Those curves that minimize this particular form of energy are intimately related to the so-called sub-Riemannian geodesics: Let us define the length of a curve \(q{:}\,[0,T] \rightarrow S \times {\mathbb {R}}^{2}\) connecting \(q_{0}\) and \(q_{T}\) by

$$\begin{aligned} \ell (q) \mathrel {\mathop :}=\int _{0}^{T} {\left\| {\dot{\varphi }} \right\| }\,\mathrm{d}t = \int _{0}^{T} \sqrt{ u_{1}(t)^{2} + u_{2}(t)^{2} } \,\mathrm{d}t. \end{aligned}$$

Note that the metric used here is degenerate because the length is measured in terms of only \({\dot{\varphi }}\) in the derivative \({\dot{q}} = ({\dot{\varphi }},\dot{\mathbf{x }})\). A curve that minimizes such a length is called a sub-Riemannian geodesic; see e.g., Montgomery (2002). In this particular setting, it is the shortest path in the shape space S whose horizontal lift to \(S \times {\mathbb {R}}^{2}\) joins \(q_{0}\) and \(q_{T}\). What one can show (see e.g., Montgomery 2002, Proposition 1.6) is that \(\varphi \) is a minimizer of the energy E if and only if \(\varphi \) is a sub-Riemannian geodesic with constant speed, i.e., \({\left\| {\dot{\varphi }}(t) \right\| } = \text {const}\).Footnote 1

Moreover, as mentioned in Sastry and Montgomery (1992), this type of optimal control problem is also related to the time-optimal control of the same system: The normalized control \(u(t)/{\left\| u(t)\right\| }\) solves the time-optimal control problem to minimize the time T subject to the same system as above as well as the constraint \({\left\| u(t)\right\| } \le 1\) on the control inputs.

6.2 Pontryagin Maximum Principle

Let us write

$$\begin{aligned} q = (\varphi , \mathbf{x }) \in S \times {\mathbb {R}}^{2}, \quad p = (\gamma , \mathbf{p }) \in T_{(\varphi ,\mathbf{x })}^{*}(S \times {\mathbb {R}}^{2}). \end{aligned}$$

Then the control Hamiltonian is defined by

$$\begin{aligned} H_{\text {c}}(q, p, u) \mathrel {\mathop :}=\mathbf{p } \cdot {\left( -\mathbf{A }^{{\mathbb {R}}^{2}}_{i} (\varphi ) u_{i} \right) } + \gamma \cdot u - \frac{1}{2}(u_{1}^{2} + u_{2}^{2}). \end{aligned}$$

Since it is quadratic in control u, it is easily maximized with respect to u to yield the optimal control \(u^{\star }(q,p) = \mathop {\text {argmax}}_{u \in {\mathbb {R}}^{2}} H_{\text {c}}(q, p, u)\); specifically,

$$\begin{aligned} u^{\star }_{i}(\varphi ,\gamma )&= \gamma _{i} - \mathbf{p } \cdot \mathbf{A }^{{\mathbb {R}}^{2}}_{i}(\varphi ) \\&= \gamma _{i} - \frac{r\rho }{2h} {\left[ p_{1} \sin (c (\varphi _{1}-\varphi _{2})) - p_{2} \cos (c (\varphi _{1}-\varphi _{2})) \right] } \end{aligned}$$

for \(i = 1, 2\). Hence we have the Hamiltonian

$$\begin{aligned} H(q,p)&\mathrel {\mathop :}=\max _{u \in {\mathbb {R}}^{2}} H_{\text {c}}(q, p, u) \nonumber \\&= \frac{1}{2}{\left( u^{\star }_{1}(\varphi ,\gamma )^{2} + u^{\star }_{2}(\varphi ,\gamma )^{2} \right) } = \frac{1}{2}{\left( \gamma _{i} - \mathbf{p } \cdot \mathbf{A }^{{\mathbb {R}}^{2}}_{i}(\varphi ) \right) }^{2}. \end{aligned}$$
(23)

Then the optimal solution necessarily satisfies the Hamiltonian system

$$\begin{aligned} {\dot{q}} = \dfrac{\partial H}{\partial p}, \quad {\dot{p}} = -\dfrac{\partial H}{\partial q}, \end{aligned}$$

or

$$\begin{aligned} \displaystyle \dot{\mathbf{x }}= & {} -\mathbf{A }^{{\mathbb {R}}^{2}}_{i}(\varphi )\,u^{\star }_{i}(\varphi ,\gamma ), \quad {\dot{\varphi }}_{i} = u^{\star }_{i}(\varphi ,\gamma ),\\ \displaystyle \dot{\mathbf{p }}= & {} \mathbf{0 }, \quad {\dot{\gamma }}_{i} = \mathbf{p } \cdot \dfrac{\partial \mathbf{A }^{{\mathbb {R}}^{2}}_{j}}{\partial \varphi _{i}} u^{\star }_{j}(\varphi ,\gamma ). \end{aligned}$$

More explicitly, we have

$$\begin{aligned}&\displaystyle \dot{\mathbf{x }} = -\frac{r\rho }{2h} {\left( u^{\star }_{1}(\varphi ,\gamma ) + u^{\star }_{2}(\varphi ,\gamma ) \right) } \begin{bmatrix} -\sin ( c(\varphi _{1} - \varphi _{2}) ) \\ \cos ( c(\varphi _{1} - \varphi _{2}) ) \end{bmatrix},\nonumber \\&\quad {\dot{\varphi }}_{i} = u^{\star }_{i}(\varphi ,\gamma ), \quad \displaystyle \dot{\mathbf{p }} = \mathbf{0 },\nonumber \\&\displaystyle \begin{bmatrix} {\dot{\gamma }}_{1} \\ {\dot{\gamma }}_{2} \end{bmatrix} = c \frac{r\rho }{2h} {\left( p_{1} \cos ( c(\varphi _{1} - \varphi _{2}) ) + p_{2} \sin ( c(\varphi _{1} - \varphi _{2}) ) \right) } {\left( u^{\star }_{1}(\varphi ,\gamma ) + u^{\star }_{2}(\varphi ,\gamma ) \right) }\nonumber \\&\quad \quad \begin{bmatrix} 1 \\ -1 \end{bmatrix}. \end{aligned}$$
(24)

6.3 Symmetry and Integrability of Optimal Solution

The Hamiltonian (23) is clearly independent of \(\mathbf{x }\), and hence the corresponding costate \(\mathbf{p } = (p_{1}, p_{2})\) is conserved as one sees in (24). The system also has the following \({\mathbb {S}}^{1}\) symmetry: define an \({\mathbb {S}}^{1}\) action

$$\begin{aligned} {\mathbb {S}}^{1} \times (S \times {\mathbb {R}}^{2}) \rightarrow S \times {\mathbb {R}}^{2}; \quad (\varphi _{0}, (\varphi _{1}, \varphi _{2}, \mathbf{x })) \mapsto (\varphi _{1} + \varphi _{0}, \varphi _{2} + \varphi _{0}, \mathbf{x }). \end{aligned}$$

Its cotangent lift is

$$\begin{aligned}&{\mathbb {S}}^{1} \times T^{*}(S \times {\mathbb {R}}^{2}) \rightarrow T^{*}(S \times {\mathbb {R}}^{2}); \\&\quad (\varphi _{0}, (\varphi _{1}, \varphi _{2}, \mathbf{x }, \gamma _{1}, \gamma _{2}, \mathbf{p })) \mapsto (\varphi _{1} + \varphi _{0}, \varphi _{2} + \varphi _{0}, \mathbf{x }, \gamma _{1}, \gamma _{2}, \mathbf{p }), \end{aligned}$$

and the Hamiltonian (23) is invariant under this action. As a result, \(\gamma _{1} + \gamma _{2}\) is conserved as well; this is easy to see directly in (24) as well. One may also set, as in (20),

$$\begin{aligned} \phi _{1} \mathrel {\mathop :}=\varphi _{1} + \varphi _{2}, \quad \phi _{2} \mathrel {\mathop :}=\varphi _{1} - \varphi _{2}, \quad \sigma _{1} \mathrel {\mathop :}=\frac{\gamma _{1} + \gamma _{2}}{2}, \quad \sigma _{2} \mathrel {\mathop :}=\frac{\gamma _{1} - \gamma _{2}}{2} \end{aligned}$$
(25)

so that \((\varphi ,\gamma ) \mapsto (\phi ,\sigma )\) is a canonical change of coordinates. Then one easily sees that the Hamiltonian (23) is independent of \(\phi _{1}\) and hence \(\sigma _{1}\) is conserved.

Now, the Poisson bracket on \(T^{*}(S \times {\mathbb {R}}^{2})\) is defined as follows: For any \(F, G \in C^{\infty }(T^{*}(S \times {\mathbb {R}}^{2}))\),

$$\begin{aligned} \left\{ F,G\right\} \mathrel {\mathop :}=\dfrac{\partial F}{\partial q} \cdot \dfrac{\partial G}{\partial p} - \dfrac{\partial G}{\partial q} \cdot \dfrac{\partial F}{\partial p}. \end{aligned}$$

It is straightforward to see that the four first integrals

$$\begin{aligned} F_{1} \mathrel {\mathop :}=H, \quad F_{2} \mathrel {\mathop :}=\gamma _{1} + \gamma _{2}, \quad F_{3} \mathrel {\mathop :}=p_{1}, \quad F_{4} \mathrel {\mathop :}=p_{2} \end{aligned}$$

are independent, and also are in involution, i.e., \(\left\{ F_{i},F_{j}\right\} = 0\) for \(i, j = 1, \dots 4\). Hence the system is completely integrable.

6.4 Exact Solution

In order to obtain an exact solution to the above system, we reduce it to the equation for a nonlinear pendulum. To that end, we exploit some of the first integrals from above to rewrite the system (24).

Let us first use \((F_{3}, F_{4}) = (p_{1},p_{2}) = \mathbf{p }\). Since \(\mathbf{p }\) is conserved, we may set

$$\begin{aligned} \mathbf{p } = (p_{1},p_{2}) = |\mathbf{p }| (\cos \delta , \sin \delta ), \end{aligned}$$

where \(|\mathbf{p }|\) and \(\delta \) are both constant. Now let us set

$$\begin{aligned} {\tilde{\gamma }}_{i}&\mathrel {\mathop :}=u^{\star }_{i}(\varphi ,\gamma ) \\&= \gamma _{i} - \frac{r\rho }{2h} {\left( p_{1} \sin (c\,\phi _{2}) - p_{2} \cos (c\,\phi _{2}) \right) } \\&= \gamma _{i} - \frac{r\rho }{2h} |\mathbf{p }| \sin (c\,\phi _{2} - \delta ) \end{aligned}$$

for \(i = 1, 2\). Then we can write the Hamiltonian H in terms of them as

$$\begin{aligned} H(q,p) = \frac{1}{2} {\tilde{\gamma }}_{i}^{2} = \frac{1}{4}{\left( ({\tilde{\gamma }}_{1} + {\tilde{\gamma }}_{2})^{2} + ({\tilde{\gamma }}_{1} - {\tilde{\gamma }}_{2})^{2} \right) }, \end{aligned}$$
(26)

and also the differential equations for the angles \((\phi _{1}, \phi _{2})\) as

$$\begin{aligned} {\dot{\phi }}_{1} = {\tilde{\gamma }}_{1} + {\tilde{\gamma }}_{2}, \quad {\dot{\phi }}_{2} = {\tilde{\gamma }}_{1} - {\tilde{\gamma }}_{2}. \end{aligned}$$

However, the above expression (26) of the Hamiltonian H motivates us to set

$$\begin{aligned} {\tilde{\gamma }}_{1} + {\tilde{\gamma }}_{2}&= \gamma _{1} + \gamma _{2} - \frac{r\rho }{h} |\mathbf{p }| \sin (c\,\phi _{2} - \delta ) = 2\sqrt{H} \cos \theta , \end{aligned}$$
(27a)
$$\begin{aligned} {\tilde{\gamma }}_{1} - {\tilde{\gamma }}_{2}&= \gamma _{1} - \gamma _{2} = 2\sqrt{H} \sin \theta \end{aligned}$$
(27b)

using a new variable \(\theta \) so that we have

$$\begin{aligned} {\dot{\phi }}_{1} = 2\sqrt{H} \cos \theta , \quad {\dot{\phi }}_{2} = 2\sqrt{H} \sin \theta . \end{aligned}$$
(28)

Let us obtain a differential equation for \(\theta \). First observe that

$$\begin{aligned} -\,{\dot{\theta }} \csc ^{2}\theta = \dfrac{\text {d}}{\text {d}t} \cot \theta = \dfrac{\text {d}}{\text {d}t} {\left( \frac{{\dot{\phi }}_{1}}{{\dot{\phi }}_{2}} \right) } = \dfrac{\text {d}}{\text {d}t} {\left( \frac{{\tilde{\gamma }}_{1} + {\tilde{\gamma }}_{2}}{{\tilde{\gamma }}_{1} - {\tilde{\gamma }}_{2}} \right) }. \end{aligned}$$

Let us evaluate the right-hand side. First rewrite (26) as

$$\begin{aligned} \frac{1}{2}{\left( \frac{{\tilde{\gamma }}_{1} + {\tilde{\gamma }}_{2}}{{\tilde{\gamma }}_{1} - {\tilde{\gamma }}_{2}} \right) }^{2} = \frac{2H}{({\tilde{\gamma }}_{1} - {\tilde{\gamma }}_{2})^{2}} - \frac{1}{2}. \end{aligned}$$

Taking the time derivative of both sides, we have

$$\begin{aligned} ({\tilde{\gamma }}_{1} + {\tilde{\gamma }}_{2}) \cdot \dfrac{\text {d}}{\text {d}t} {\left( \frac{{\tilde{\gamma }}_{1} + {\tilde{\gamma }}_{2}}{{\tilde{\gamma }}_{1} - {\tilde{\gamma }}_{2}} \right) } = -\frac{4H}{({\tilde{\gamma }}_{1} - {\tilde{\gamma }}_{2})^{2}}{\left( \dot{{\tilde{\gamma }}}_{1} - \dot{{\tilde{\gamma }}}_{2} \right) }. \end{aligned}$$

However, since \({\tilde{\gamma }}_{1} - {\tilde{\gamma }}_{2} = \gamma _{1} - \gamma _{2}\), we have, using (24),

$$\begin{aligned} \dot{{\tilde{\gamma }}}_{1} - \dot{{\tilde{\gamma }}}_{2}&= {\dot{\gamma }}_{1} - {\dot{\gamma }}_{2} \\&= c \frac{r\rho }{h} {\left( \gamma _{1} + \gamma _{2} - \frac{r\rho }{h} (p_{1}\sin (c\,\phi _{2}) - p_{2}\cos (c\,\phi _{2})) \right) }\\&\qquad (p_{1}\cos (c\,\phi _{2}) + p_{2}\sin (c\,\phi _{2}) ) \\&= c \frac{r\rho }{h}|\mathbf{p }| {\left( \tilde{\gamma _{1}} + \tilde{\gamma _{2}} \right) } \cos (c\,\phi _{2} - \delta ). \end{aligned}$$

Therefore,

$$\begin{aligned} \dfrac{\text {d}}{\text {d}t} {\left( \frac{{\tilde{\gamma }}_{1} + {\tilde{\gamma }}_{2}}{{\tilde{\gamma }}_{1} - {\tilde{\gamma }}_{2}} \right) }&= -\frac{4H}{({\tilde{\gamma }}_{1} - {\tilde{\gamma }}_{2})^{2}} \cdot c \frac{r\rho }{h}|\mathbf{p }| \cos (c\,\phi _{2} - \delta ) \\&= -\csc ^{2}\theta \cdot c \frac{r\rho }{h}|\mathbf{p }| \cos (c\,\phi _{2} - \delta ). \end{aligned}$$

As a result, we obtain

$$\begin{aligned} {\dot{\theta }} = c \frac{r\rho }{h}|\mathbf{p }| \cos (c\,\phi _{2} - \delta ). \end{aligned}$$

On the other hand (27a) gives

$$\begin{aligned} \frac{r\rho }{h} |\mathbf{p }| \sin (c\,\phi _{2} - \delta ) = \gamma _{1} + \gamma _{2} - 2\sqrt{H} \cos \theta = 2{\left( \sigma _{1} - \sqrt{H} \cos \theta \right) }, \end{aligned}$$

where we used the definition of \(\sigma _{1}\) from (25) as well. Setting

$$\begin{aligned} a \mathrel {\mathop :}=\frac{r\rho }{h} |\mathbf{p }|, \end{aligned}$$

we have

$$\begin{aligned}&{\dot{\theta }} = c\,a \cos (c\,\phi _{2} - \delta ), \end{aligned}$$
(29a)
$$\begin{aligned}&2{\left( \sqrt{H} \cos \theta - \sigma _{1}\right) } = -a \sin (c\,\phi _{2} - \delta ), \end{aligned}$$
(29b)

and thus we have

$$\begin{aligned} {\dot{\theta }}^{2} + 4c^{2}{\left( \sqrt{H} \cos \theta - \sigma _{1} \right) }^{2} = c^{2} a^{2} \end{aligned}$$

or

$$\begin{aligned} {\left( \dfrac{\text {d}\theta }{\text {d}t} \right) }^{2} = c^{2}{\left( a^{2} - 4{\left( \sqrt{H} \cos \theta - \sigma _{1} \right) }^{2}\right) }. \end{aligned}$$

Now, assuming \(\theta \in (-\,\pi , \pi )\), we introduce a new variable \(\vartheta \in (-\,\pi , \pi )\) defined by

$$\begin{aligned} \tan (\vartheta /2) = \sqrt{ \frac{a + 2(\sqrt{H} + \sigma _{1})}{a - 2(\sqrt{H} - \sigma _{1})} } \tan (\theta /2) \end{aligned}$$

or

$$\begin{aligned} \vartheta \mathrel {\mathop :}=2 \arctan {\left( \sqrt{ \frac{a + 2(\sqrt{H} + \sigma _{1})}{a - 2(\sqrt{H} - \sigma _{1})} } \tan (\theta /2) \right) }, \end{aligned}$$
(30)

where we also assumed that \(a - 2(\sqrt{H} - \sigma _{1}) > 0\); note that \(a + 2(\sqrt{H} + \sigma _{1}) > 0\) follows from (29b).

Then the differential equation for \(\vartheta \) is given by

$$\begin{aligned} {\left( \dfrac{\text {d}\vartheta }{\text {d}t} \right) }^{2} = c^{2}{\left( a^{2} + 4(H - \sigma _{1}^{2}) + 4a\sqrt{H} \cos \vartheta \right) } = 2(E + A \cos \vartheta ), \end{aligned}$$
(31)

where we set

$$\begin{aligned} E \mathrel {\mathop :}=\frac{c^{2}}{2} {\left( a^{2} + 4(H - \sigma _{1}^{2}) \right) }, \quad A \mathrel {\mathop :}=2c^{2}a\sqrt{H}. \end{aligned}$$

This is the differential equation for a nonlinear pendulum.

Fig. 7
figure 7

Solution of the optimal control problem (22) for Example 6.3—trajectories of the wheels and of the center of the sphere. One can see that the trajectory of the wheels in the \(\varphi _{1}\)\(\varphi _{2}\) plane is very similar to one of Euler’s elasticas. On the other hand, the trajectory of the center of the sphere is much more complicated and makes several switches in its direction

For example, if \(A < E\), it corresponds to oscillatory solutions of the nonlinear pendulum, and one obtains the solution

$$\begin{aligned} \vartheta (t) = 2 \arcsin {\left( \mathop {\text {sn}}\nolimits {\left( m, F(m,\vartheta _{0}/2) \pm \sqrt{\frac{E + A}{2}}\,t\right) }\right) }, \end{aligned}$$

where \(m \mathrel {\mathop :}=\sqrt{2A/(E + A)} < 1\), and F is the elliptic integral of the first kind, i.e.,

$$\begin{aligned} F(m, \vartheta ) \mathrel {\mathop :}=\int _{0}^{\vartheta } \frac{1}{\sqrt{1 - m\sin ^{2}\theta }}\,\mathrm{d}\theta , \end{aligned}$$

and \(\mathop {\text {sn}}\nolimits \) is the Jacobi elliptic function, i.e.,

$$\begin{aligned} \mathop {\text {sn}}\nolimits ^{-1}(m, x) \mathrel {\mathop :}=\int _{0}^{x} \frac{1}{\sqrt{(1 - \xi ^{2})(1 - m\,\xi ^{2})}}\,\mathrm{d}\xi = F(m, \sin ^{-1}x), \end{aligned}$$

that is, \(\mathop {\text {sn}}\nolimits (m, F(m,\vartheta )) = \sin \vartheta \). Then the angle \(\theta \) is given in terms of \(\vartheta \) as follows:

$$\begin{aligned} \theta (t) = 2 \arctan {\left( \sqrt{ \frac{a - 2(\sqrt{H} - \sigma _{1})}{a + 2(\sqrt{H} + \sigma _{1})} } \tan (\vartheta (t)/2) \right) }. \end{aligned}$$

Therefore, we obtain \(\phi _{1}\) and \(\phi _{2}\) (and hence \(\varphi _{1}\) and \(\varphi _{2}\)) by quadrature using (28); similarly we obtain the position \(\mathbf{x }\) of the center of the sphere by quadrature using (24) as well.

To summarize, we have the following:

Theorem 6.1

The optimal control problem (22) is completely integrable. Particularly, if the condition \(a - 2(\sqrt{H} - \sigma _{1}) > 0\) is satisfied, then its solution \((\varphi (t), \mathbf{x }(t))\) is obtained by quadrature using a solution of the nonlinear pendulum equation (31).

Remark 6.2

The above calculations and the result are reminiscent of a similar result by Jurdjevic (1993) (see also Jurdjevic 1997, Section 14.3) on the plate-ball system—rolling a ball on the plane by moving a plate attached at the top of the ball. Specifically, the result says that each extremal path of the center of the sphere—\(\mathbf{x }(t) = (x_{1}(t), x_{2}(t))\) in our notation—connecting two translational and rotational configurations is Euler’s elastica. One difference is that our curve is in the shape space or the \(\varphi _{1}\)\(\varphi _{2}\) plane as opposed to the \(x_{1}\)\(x_{2}\) plane; another difference is that it is not exactly Euler’s elastica. Given the differential equation (28), our curve would be Euler’s elastica if \(\theta (t)\) satisfied the nonlinear pendulum equation (31). In fact, this is the case with the plate-ball system with \((\varphi _{1},\varphi _{2})\) being replace by \((x_{1},x_{2})\). However, in our case, it is \(\vartheta \)—defined as a slight deformation of \(\theta \) in (30)—that satisfies the nonlinear pendulum equation (31). As a result, our curve in the \(\varphi _{1}\)\(\varphi _{2}\) plane is a slight deformation of Euler’s elastica; see Example 6.3 below.

Example 6.3

We set the parameters as follows: \(r = 1\), \(\rho = 0.3\), \(h = 0.75\), \(w = 0.8\), \(J/I_{\mathrm{s}} = 5\), and \(T = 10\). Consider the problem of maneuvering the center of spherical rolling robot from the origin to (1, 1) on the \(x_{1}\)\(x_{2}\) plane after each wheel makes 5 revolutions in displacement (not necessarily the total revolutions), i.e., \(\mathbf{x }(0) = (0,0)\), \(\varphi (0) = (0, 0)\), \(\mathbf{x }(T) = (1,1)\), and \(\varphi (T) = (10\pi , 10\pi )\). This turns out to be the case with \(A < E\) discussed above.

Figure 7 shows the optimal trajectory of the wheels in the (covering space of) the shape space S and of the center of the sphere in \({\mathbb {R}}^{2}\).