A Motion Planning Strategy for a Spherical Rolling Robot Driven by Two Internal Rotors

IEEE TRANSACTIONS ON ROBOTICS, VOL. 30, NO. 4, AUGUST 2014

[21] H. K. Shin and B. K. Kim, “Energy-efficient reference gait generation
utilizing variable ZMP and vertical hip motion based on inverted pendulum
model for biped robots,” in Proc. IEEE Int. Conf. Control Auton. Syst.
(ICCAS), Oct. 27–30, 2010, pp. 1408–1413.
[22] F. M. Silva and J. A. T. Machado, “Energy analysis during biped walking,”
in Proc. IEEE Int. Conf. Robot. Auton. (ICRA), Detroit, MI, USA, May
1999, vol. 1, pp. 59–64.
[23] D. Goswami, V. Prahlad, and P. D. Kien, “Genetic algorithm-based optimal bipedal walking gait synthesis considering tradeoff between stability
margin and speed,” Robotica, vol. 27, pp. 355–365, 2009.
[24] V. H. Dau, C. Chew, and A. Poo, “Achieving energy-efficient biped walking trajectory through GA-based optimization of key parameters,” Int. J.
Human. Robot., vol. 6, no. 4, pp. 609–629, 2009.
[25] Z. Liu, L. Wang, C. L. Philip Chen, X. Zeng, Y. Zhang, and Y. Wang,
“Energy-efficiency-based gait control system architecture and algorithm
for biped robots,” IEEE. Trans. Sys. Man. Cybernet. Part C: Appl. Rev.,
vol. 42, no. 6, pp. 926–933, Nov. 2012.
[26] L. C. Jain and N. M Marti, Fusion of Neural Networks, Fuzzy Systems
and Genetic Algorithms: Industrial Applications. Boca Raton, FL: CRC,
2011.
[27] R. Sellaouti, O. Stasse, S. Kajita, K. Yokoi, and A. Kheddar, “Faster and

smoother walking of humanoid HRP-2 with passive toe joints,” in Proc.
IEEE/RSJ Int. Conf. Intell. Robots Syst. (IROS), Beijing, China, Oct. 9–15,
2006, pp. 4909–4914.
[28] T. Ha and C. H. Choi, “An effective trajectory generation method for
bipedal walking,” Robot. Auton. Syst., vol. 55, no. 10, pp. 795–81, 2007.
[29] A. Goswami, “Postural stability of biped robots and the foot-rotation
indicator (FRI) point,” Int. J. Robot. Res., vol. 18, pp. 523–533, 1999.
[30] M. Nahon and J. Angeles, “Minimization of power losses in cooperating
manipulator,” J. Dyn. Syst. Meas. Control (Trans. ASME), vol. 114, no. 2,
pp. 213–219, 1992.
[31] S. K. M. Morisawa, K. Miura, S. Nakaoka, K. Harada, K. Kaneko,
F. Kanohiro, and K. Yokoi, “Biped walking stabilization based on linear
inverted pendulum tracking,” in Proc. IEEE/RSJ Int. Conf. Intell. Robots
Syst., Taipei, Taiwan, Oct. 18–22, 2010, pp. 4489–4493.
[32] I. Ha, Y. Tamura, and H. Asama, “Gait pattern generation and stabilization
for humanoid robot based on coupled oscillators,” in Proc. IEEE/RSJ Int.
Conf. Intell. Robots Syst. (IROS), San Francisco, CA, USA, Sep. 25–30,
2011, pp. 3207–3212.

A Motion Planning Strategy for a Spherical Rolling Robot

Driven by Two Internal Rotors
Akihiro Morinaga, Student Member, IEEE,
Mikhail Svinin, Member, IEEE,
and Motoji Yamamoto, Member, IEEE
Abstract—This paper deals with a motion planning problem for a spherical rolling robot actuated by two internal rotors that are placed on orthogonal axes. The key feature of the problem is that it can be stated only in
Manuscript received June 2, 2013; revised December 8, 2013; accepted February 14, 2014. Date of publication March 12, 2014; date of current version August
4, 2014. This paper was recommended for publication by Associate Editor M.
Vendittelli and Editor G. Oriolo upon evaluation of the reviewers’ comments.
The authors are with the Department of Mechanical Engineering, Faculty of
Engineering, Kyushu University, Fukuoka 819-0395, Japan (e-mail: morinaga@
ctrl.mech.kyushu-u.ac.jp; svinin@mech.kyushu-u.ac.jp; yama@mech.kyushuu.ac.jp).
This paper has supplementary downloadable material, available at
http://ieeexplore.ieee.org, provided by the authors. It has two files showing
motion of the spherical rolling robot in the simulation example in Section III.
The file animation_k 2.5.mp4 corresponds to the set of parameters k = 2.5 and
η = 0.6. The file animation_k2.5.mp4 corresponds to the set of parameters k =
10 and η = 0.5. Its size is 20.6 Mb.
Color versions of one or more of the figures in this paper are available online
at http://ieeexplore.ieee.org.
Digital Object Identifier 10.1109/TRO.2014.2307112


993

dynamic formulation. In addition, the problem features a singularity when
the contact trajectory goes along the equatorial line in the plane of the two
rotors. A motion planning strategy composed of two trivial and one nontrivial maneuver is devised. The trivial maneuvers implement motion along
the geodesic line perpendicular to the singularity line. The construction of
the nontrivial maneuver employs the nilpotent approximation of the originally nonnilpotent robot dynamics, and is based on an iterative steering
algorithm. At each iteration, the control inputs are constructed with the
use of geometric phases. The motion planning strategy thus constructed is
verified under simulation.
Index Terms—Dynamics, motion planning, nonholonomic systems,
rolling constraints, spherical rolling robot.

I. INTRODUCTION
In recent years, there has been growing research interest in spherical
rolling robots. They are regarded as nonconventional single-wheeled
locomotion machines that can be helpful when the usage of traditional
vehicles is limited or undesirable. The motion of such machines is usually generated by creating gravity imbalance with a spherical pendulum
or sliders, or by changing the system inertia with the use of internal rotors. Different designs of spherical mobile robotic systems are reported

in [1]–[7]. In this paper, we consider a rolling robot actuated by internal
rotors. Under proper placement of the rotors, the center of mass of the
robot is at the geometric center of the sphere and, as a result, gravity
terms do not enter the motion equations [2], [8].
One of the key problems in the control of spherical rolling robots
is the construction of motion planning algorithms. In the majority of
papers in the robotics literature, this problem is considered for the
so-called ball–plate system where the sphere is actuated by moving
two parallel plates. Under such an actuation, provided that the ball is
dynamically symmetric with respect to the plane axes, the spinning of
the ball around the vertical axis is canceled out and the ball moves in
the so-called pure rolling mode. As a result, motion planning for such
a system can be conducted in kinematic formulation, and a number of
motion planning algorithms have been developed so far [9]–[14]. In
general, however, the existence of the pure rolling mode in a rolling
system depends on the inertia distribution as well as on how the system
is actuated.
Addressing the rolling robots actuated by internal rotors, it should
be noted that when the number of actuators is more than two, the
motion planning problem can be decomposed into the kinematic and

dynamic levels and, in principle, its solution does not represent essential
difficulties. However, for the minimal number of two actuators, such
a decomposition is impossible because there appears a constraint on
the component of the angular velocity of the sphere and this constraint
depends on the inertia distribution [15]. For this reason, the assigned
trajectories for the angular velocity, including those corresponding to
pure rolling, are not necessarily dynamically feasible and realizable by
the robot actuators [15]. As a result, the motion planning problem must
be considered only in dynamic formulation.
Since the mathematical model of the rolling robot with two rotors
inherits the basic properties of that for the ball–plate system (not differentially flat, not nilpotent, cannot be represented in a chained form),
it belongs to a special class of nonholonomic systems, the class for
which conventional planning techniques are not directly applicable. It
is worthwhile, therefore, to look at the two main motion planning approaches developed for the kinematic model of pure rolling. The first is
based on the optimal control theory [10], while the second deals with
geometric phases [9], [16].
Numerical implementation of the optimal control approach, apart
from the long computation time, can be sensitive to initial guess of the

1552-3098 © 2014 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.

See http://www.ieee.org/publications standards/publications/rights/index.html for more information.

994

IEEE TRANSACTIONS ON ROBOTICS, VOL. 30, NO. 4, AUGUST 2014

optimal controls. Even in the case of pure rolling, the structure of the
optimal control exhibits several qualitatively different types of solutions
corresponding to Euler’s elastica [10]. One may expect that the solution
structure becomes more complex if rolling is not restricted to nospinning but constrained dynamically [15]. This makes a systematic
construction of the initial guess for the optimal control very difficult.
The geometric phase approach is based on tracing a closed path
on the sphere, which produces a nonclosed path in the contact plane.
For the kinematic model with pure rolling constraint, tracing geodesic
lines on the sphere results in geodesic lines in the contact plane and
vice versa, and many algorithms exploit this property explicitly [9],
[12], [13] or implicitly as a part of a more general procedure [14].
However, if the rolling is constrained dynamically, this property—
geodesic-to-geodesic mapping—does not, in general, hold true [15].
For this reason, the aforementioned algorithms cannot be used without

essential modifications because the trajectories they produce are not,
in general, dynamically realizable.
To the best of our knowledge, not many results have been reported
so far on the development of motion planning algorithms for the actuation by two rotors. In [2], the motion planning problem was posed in
the optimal control settings using an approximation by the Phillip Hall
basis [16]. However, since the robot dynamics are not nilpotent, this is
not an exact representation of the system and it can result to inaccuracies. An exact motion planning algorithm was described in [8], but
the trajectories generated by that algorithm are not always dynamically
realizable [15].
This paper continues our study undertaken in [15], where we developed a mathematical model of a rolling robot actuated by internal rotors
and analyzed the model’s properties. Here, we solve the motion planning problem in dynamic formulation by using the iterative steering
approach to control of general (not necessarily nilpotentizable or differentially flat) driftless nonholonomic systems, which was formulated
and tested in [17]. The approach employs a nilpotent approximation of
the dynamic model for the synthesis of the control actions. Contrary
to the conventional tangent linearization, the nilpotent approximation
retains the controllability property of the original nonholonomic system [18], [19]. For the construction of the control inputs, we resort to
the geometric phase approach. At each iteration step, it results, finite
algebraic expressions for the change of the state variables of the approximate nilpotent system, which essentially simplifies the computation
of the control inputs.
The paper is organized as follows. In Section II, a short summary of

the mathematical model established in [15] is given. In Section III, a
motion planning strategy, consisting of trivial and nontrivial maneuvers,
is proposed. For the nontrivial maneuver, the nilpotent approximation
of the system dynamics is first constructed, and then an iterative steering
algorithm is fabricated and verified under a simulation study. Finally,
conclusions are drawn in Section IV.
II. MATHEMATICAL MODEL
Consider a rolling robot composed of a spherical shell (carrier)
actuated by internal rotors. It is assumed that the rotors have the same
mass distribution and the center of mass of the system is located at
the geometric center. The rotors are mounted symmetrically along
orthogonal axes, as shown in Fig. 1. On each axis, the two diametrically
opposite rotors are actuated in tandem. This scheme, with actuation
along two orthogonal axes, was first proposed in [2] and later on studied
in [8], [15].
Define the following coordinate frames (see Fig. 2): Σb is a base
(inertial) frame fixed in the contact plane and Σo is a frame fixed at
the geometric center of the spherical object. In addition, we introduce

Fig. 1.


Rolling system with orthogonal placement of rotors.

Fig. 2.

Basic frames and contact coordinates.

two contact frames, one on the object Σc o and one on the plane Σc b .
The contact coordinates are given by the angles ϑ and ϕ, describing the
contact point on the sphere, by the displacements x and y, describing
the contact point on the plane, and by the contact angle ψ, which is
defined as the angle between the x-axis of Σc o and Σc b (the z-axes of
these frames are aligned, as depicted in Fig. 2). It is assumed that the
frame Σc b is parallel to Σb , and in the zero configuration the axes of
Σo are parallel to those of Σb .
The position of the contact point on the sphere is parameterized
as c(ϑ, ϕ) = [−R sin ϑ cos ϕ, R sin ϕ, −R cos ϑ cos ϕ]T , where R is
the radius of the sphere. In this parameterization, the origin is placed
at the south pole of the sphere. In terms of the contact coordinates, the
orientation matrix of the sphere (the orientation of Σo relative to Σb )



is defined as R(ψ, ϕ, ϑ) = RTz (ψ)RTx (ϕ)RTy (ϑ) = [n1 | n2 | n3 ] ,
where Rx (ϕ), Ry (ϑ), and Rz (ψ) are the matrices of elementary rotations, and the columns of the orientation matrix are defined as


cos ϑ cos ψ + sin ϑ sin ϕ sin ψ


n1 = ⎣ − cos ϑ sin ψ + sin ϑ sin ϕ cos ψ ⎦
(1)
cos ϑ cos ϕ

cos ϕ sin ψ


n2 = ⎣ cos ϕ cos ψ ⎦


− sin ϕ


(2)

IEEE TRANSACTIONS ON ROBOTICS, VOL. 30, NO. 4, AUGUST 2014



− sin ϑ cos ψ + cos ϑ sin ϕ sin ψ





n3 = ⎣ sin ϑ sin ψ + cos ϑ sin ϕ cos ψ ⎦ .

995

III. MOTION PLANNING
(3)

cos ϑ cos ϕ

T

Let ω = {ωx , ωy , ωz } be the angular velocity of the frame Σo ,
defined in projections onto the axes of Σb . The evolution of the contact
coordinates can be established from the Montana equations [16] and
represented as
x˙ = A(x) ω
(4)
where the state vector x = {ϑ, ϕ, ψ, x, y}T , and


− sin ψ/ cos ϕ − cos ψ/ cos ϕ 0


− cos ψ
sin ψ
0 ⎥





(5)
A = ⎢ − sin ψ tan ϕ − cos ψ tan ϕ −1 ⎥ .




0
R
0 ⎦

−R

0

0

Note that the no-spinning constraint ωz = 0, featuring the pure rolling
mode, is not imposed here.
The dynamic equations for the system under consideration are developed in [15]. Under the assumption that the motion does not start
impulsively, the dynamic model admits the following integral
J ω + Jr

2


q˙i ni = 0

(6)

i= 1

reflecting the conservation of the total angular momentum of the system
about the contact point, which can be interpreted as the driving principle
of the robot under consideration. Here, qi is the angle of rotation around
the axis ni , Jr is the inertia moment of the single rotor around its axis
of rotation, and J = diag{Jx x , Jx x , Jz z } is the inertia tensor of the
composite system (rolling carrier and the rotors) with respect to the
contact point. Jx x = Jz z + M R2 , Jz z = 23 mo R2 + 2Jp + Jr , where
M is the total mass of the system, mo is the mass of the spherical shell,
and Jp is the inertia moment of the rotor about the plane orthogonal to
the axis of rotation.
By combining (4) and (6), one obtains the following five states–two
inputs driftless affine control system
x˙ = H (x)q˙ = h1 (x)q˙1 + h2 (x)q˙2

(7)

where the rates of the rotors angles are considered as the control inputs,
and the columns of the matrix H = −Jr AJ −1 [n1 | n2 ] are defined
as


sin ϑ tan ϕ


1






cos ϑ


0










2
2


sin
ϕ+k
cos
ϕ
(1−k) sin ϕ ⎥. (8)
h1 = c⎢ sin ϑ
⎥ , h 2 = c⎢




cos ϕ




⎢ −Rn2 y ⎥






−Rn1 y


Rn2 x
Rn1 x

Here, n1 x , n1 y , n2 x , n2 y are the corresponding components of the vectors n1 and n2 , and the dimensionless constants k = Jx x /Jz z and
c = Jr /Jx x , defined through the components of the inertia tensor J ,
can be represented as
k =1+
and

2
3

mo

M R2
+ 2Jp + Jr

R2

Jr k − 1
.
c=
M R2 k

(9)

(10)

The motion planning problem we address in this paper consists of
finding a trajectory x(t), t ∈ [0, T ], given the start state x(0) = xs and
the final state x(T ) = xf . It should be noted that for the robot under
consideration, this problem cannot be solved exclusively at the level
of kinematics1 , by dealing only with the system (4) and finding the
appropriate vector of the angular velocity ω(t). The reason is that the
components of the vector ω are dynamically (or, better said, inertially)
constrained by the condition n3 · J ω = 0, which follows from (6).
The physical meaning of this condition is that the angular momentum
of the rolling carrier must lie in in the plane through the axes of the
actuated rotors.
By checking the Lie algebra rank condition, one can find [15] that the
distribution formed by the vector fields h1 , h2 , h3 = [h1 , h2 ], h4 =
[h1 , h3 ], h5 = [h2 , h3 ], where [·, ·] stands for the Lie brackets of two
vector fields, has full rank unless ϑ = ±π/2, i.e., the contact point lies
on the great circle in the equatorial plane of the rotors axes (red line in
Fig. 1). However, the distribution formed by h1 , h2 , h3 , h4 , h6 , where
h6 = [h1 , h4 ], has full rank at ϑ = ±π/2 and, therefore, the system
(7) is controllable.
The existence of the singular line contrasts the robot under consideration to the ball–plate system. Mathematically, when the contact point
gets into the singular line the degree of nonholonomy of the system
(7) changes from three to four. Note that when ϑ = ±π/2, the vector ω is always on the line through the vector n3 and the condition
of dynamic realizability, n3 · J ω = 0, is not satisfied. The physical
meaning of this singularity line, defined by ϑ = ±π/2, is evident—it is
impossible to generate the rolling motion of the robot along this line
when the rotors axes are placed in the equatorial plane.
While the system (7) is controllable, it can be shown that it is not
nilpotent, not differentially flat, and cannot be represented in chained
form. The lack of special structure places it into the general class
of driftless nonholonomic systems and stipulates the use of general
steering techniques. To facilitate motion planning, one can devise a
motion strategy composed of maneuvers for which the construction
of movements is relatively easier than that conducted in the general
formulation.
In this paper, we fabricate a motion planning strategy consisting
of two trivial and one nontrivial maneuver, as depicted in Fig. 3. The
trivial maneuvers are executed right before and right after the nontrivial
one. In the first trivial maneuver, the contact coordinates ϑ and ϕ are
nullified, while in the second one, they are brought from zeros to desired
values. Thus, in the nontrivial maneuver, the motion planning problem
is solved under the assumption that at the start and end configurations,
the initial and final values of ϑ and ϕ are zero. The change of the
contact coordinates x, y, and ψ corresponding to the trivial maneuvers
can be computed in advance, and the corresponding initial and desired
values for the nontrivial maneuver can be easily established.
On the whole, this general reconfiguration strategy is comparable
with those considered in [9], [11]–[13] for the kinematic ball–plate
system. Apart from the structural simplicity, the reason the strategy is
divided into trivial and nontrivial maneuvers has also to do with the
singularity line ϑ = ±π/2. This line is passed only during the trivial
maneuvers where the singularity does not create any computational
problems. Thus, during the nontrivial maneuver, the contact point on
the sphere does not leave either lower or upper hemisphere. The details
of the trivial maneuver are described in the Appendix, and from now
on, we concentrate on the nontrivial maneuver.
1 This can be done only for some restricted formulations of the motion planning problem, for example, when the evolution of the angular state variables is
not important.

996

Fig. 3.

IEEE TRANSACTIONS ON ROBOTICS, VOL. 30, NO. 4, AUGUST 2014

Motion planning strategy.

A computational algorithm, solving the motion planning problem
for the nontrivial maneuver, can be constructed with the use of the
nilpotent approximation2 of the nonnilpotent system dynamics. The
idea was first proposed in [20] and later developed in [17], [21]. Since
the control problem for the nilpotent system can be solved exactly, the
control inputs found for the nilpotent system can be used for iterative
steering of the original nonnilpotent system (7). In the remainder of this
paper, we compute the nilpotent approximation, construct an iterative
steering algorithm, and verify it under simulation.
A. Nilpotent Approximation

w j −1

zj = yj −

where u1 and u2 are the new control inputs. This results in the following
representation
x˙ = G(x)u = g 1 (x)u1 + g 2 (x)u2
where the columns of the matrix G are defined as




1
0




0
1












g 1 = ⎢ (1 − k) sin ϕ ⎥, g 2 = ⎢ k sec ϕ tan ϑ ⎥.








⎣ −R cos ϕ cos ψ ⎦
⎣ R sin ψ ⎦

(12)



hk (y1 , · · · , yj −1 )

(15)

k=2

where
hk (y1 , . . . , yj −1 )
=

Before approximating the original system (7), it is reasonable to
convert it to strictly triangular form. This can be done with the use of
the following input transformation
!
!
!
1 0
sec ϑ
u1
q˙1
=
(11)
q˙2
c 1 − tan ϑ tan ϕ u2

R cos ϕ sin ψ

Having defined the local coordinates y, one then transforms them to
privileged coordinates z. In the component form, the transformation is
represented as



g α1 1

α j −1
· · · g j −1

|α |= k , w (α )< w j



yj +

k −1


hq

q=2



(xo )

j −1 α i
,
yi
αi !
i= 1

(16)
n

j −1

w(α) = i = 1 wi αi , |α| = i = 1 αi 
, and the expression in the parentheses is the Lie derivative of order ji =−11 αi along the vector fields
g 1 , g 2 , . . . , g j −1 evaluated at the point x0 .
Having constructed the transformation (15), one expresses the system (12) in the privileged coordinates and expands it in Taylor series
at the origin. Finally, the nilpotent approximation of system (12) is obtained by collecting in the Taylor series the terms of weighted degree
−1. The approximate system
˜
˜ 2 (z)u2
˜ 1 (z)u1 + g
z˙ = G(z)u
=g

(13)

R cos ψ

The nilpotent approximation of the system (12) in the neighborhood
of some point x0 is obtained as follows [17], [22]. First, one transforms
the original coordinates x to local coordinates y at the point x0 as
follows:
(14)
y = Γ(x − x0 )

where Γ is the inverse of a matrix with columns g 1 , g 2 , g 3 =
[g 1 , g 2 ], g 4 = [g 1 , g 3 ], g 5 = [g 2 , g 3 ]. Let Ls (x0 ) be the vector space
generated at x0 by the Lie brackets of g 1 and g 2 of length ≤ s, s =
1, 2, . . . and ns (x0 ) = dimLs (x0 ), s = 1, . . . , r, where r is smallest
integer such that dimLr (x0 ) = 5. The weight wi of the coordinates xi
is defined by setting wj = s if ns −1 < j ≤ ns , with ns = ns (x0 ) and
n0 = 0. Note that r defines the degree of nonholonomy, and the vector (n1 (x0 ), . . . , nr (x0 )) is the growth vector of the nonholonomic
system (12).

is nilpotent, controllable, composed of polynomial functions, and has
the same degree of nonholonomy and the same growth vector as the
original system [17], [22].
In our implementation of the nontrivial maneuver, we need to construct the nilpotent approximation only at the south pole of the sphere
where ϑ0 = ϕ0 = 0. When the point the approximation is constructed
at is set as x0 = [0, 0, ψ0 , x0 , y0 ] the calculations are simplified considerably. In particular, the matrix Γ takes the following form
Γ = [ g 1 (x0 ), g 2 (x0 ),

1
0
0

1
0
⎢ 0


0 γ3 3
=⎢ 0


0
⎣ 0 γ4 2
γ5 1

0

0

g 3 (x0 ), g 4 (x0 ), g 5 (x0 ) ]−1

0
0

0
0 ⎥


0
0 ⎥


γ4 4 γ4 5 ⎦
γ5 4

sin ψ0
,
R(1 − 3k)

(18)

γ5 5

where the nonzero elements of Γ are obtained as
1
1
γ3 3 =
, γ4 2 = γ5 1 =
2k − 1
3k − 1
γ4 4 = −γ5 5 =

2 The conventional tangent linearization cannot be used for our purpose because it does not retain the controllability property.

(17)

γ4 5 = γ5 4 =

(19)
cos ψ0
.
R(1 − 3k)
(20)

IEEE TRANSACTIONS ON ROBOTICS, VOL. 30, NO. 4, AUGUST 2014

997

In addition, when ϑ0 = ϕ0 = 0 the second term of (15) vanishes and
the privileged coordinates zi coincides with yi . Therefore, the transformation from the original to the privileged coordinates is obtained
as
z1 = ϑ

(21)

z2 = ϕ

(22)

z3 = γ3 3 ψ

(23)

z4 = γ4 2 ϕ + γ4 4 x + γ4 5 y

(24)

z5 = γ5 1 ϑ + γ5 4 x + γ5 5 y.

(25)

The original system (12), (13), expressed in the privileged coordinates
with the use of (21), (25), becomes
z˙1 = u1

(26)

z˙2 = u2

(27)

z˙3 = {(1 − k)γ3 3 sin z2 } u1 + {k γ3 3 tan z1 sec z2 } u2
%
"

z3
z3
− γ4 4 cos
u1
z˙4 = R cos z2 γ4 5 sin
γ3 3
γ3 3
"

%
z3
z3
+ γ4 2 + R γ4 4 sin
+ γ4 5 cos
u2
γ3 3
γ3 3
"
%

z3
z3
− γ5 5 sin
u1
z˙5 = γ5 1 − R cos z2 γ5 4 cos
γ3 3
γ3 3
" 
%
z3
z3
+ γ5 5 cos
+ R γ5 4 sin
u2 .
γ3 3
γ3 3

(28)

(29)

(15) the image of the subgoal in the privileged coordinates, z di ,
and construct a controller that steers the approximate nilpotent system (17) from the origin to z di in the time interval
t ∈ [ti , ti + 1 ]. This control problem can be solved exactly, and
the control law found for the nilpotent system is then applied to
the original system (12).
3) If the state x(ti + 1 ) the system is brought to by the control action
is far from xf , set i = i + 1 and xi = x(ti + 1 ) and repeat the
iterative process.
The particular structure of the control law to steer a nilpotent system can be constructed in a variety of ways [20], [23]–[25]. In this
paper, we build it in the spirit of the geometric phase approach [9],
[12] because it results to simple calculations and has a clear geometric
interpretation. Compared with steering the robot under consideration
by sinusoids at integrally related frequencies [26], it results in wellstructured trajectories and requires less iterations to reach the goal
state. As in [17], the nontrivial maneuver in our construction is divided
into two parts corresponding to attaining, respectively, the desired orientation and translation. More specifically, reconfiguring the initial
state xs = [0, 0, ψs , xs , ys ] to the final one xf = [0, 0, ψf , xf , yf ] is
described as follows.
First Part: In the first part, we steer ϑ, ϕ, and ψ to the desired values
0, 0, and ψf regardless of the values of x and y. The computational
procedure can be summarized as follows.


1) Set i = 0, ti = 0, xi = [ϑi , ϕi , ψi , xi , yi ] = [0, 0, ψs , xs , ys ].
2) Set ti + 1 = ti + ∆T , define the subgoal ψid = ψi + η(ψf −
ψi ), where η ∈ [0, 1], and compute by (23) its image in the
privileged coordinates
(30)

By expanding this system in Taylor series at the origin and retaining
the terms of weighted degree −1, one obtains the representation (17)
˜ 2 defined as
˜ 1 and g
with the vector fields g




1
0






0


1










γ3 3 (1 − k)z2
⎢ γ3 3 kz1 ⎥


⎥.
˜2 = ⎢
˜1 = ⎢
, g
(31)
g

⎢ γ4 4

1
⎢ γ4 5



Rz
Rz3 + γ4 4 Rz22 ⎥

3
⎢ γ3 3

⎢ γ3 3

2




⎣γ


⎣ γ5 5
54
1
2
Rz3
Rz3 + γ5 4 Rz2
γ3 3
γ3 3
2

The resulting approximate system is polynomial and in triangular form.
The latter property facilitates the integration of the approximate dynamics in closed form under some well-defined control inputs.
It should be finally noted that if one sets k = 0 in (31), the approximate system (17) will coincide with that constructed in [17] for the
kinematic model of a ball–plate system with no-spinning constraint
ωz = 0. However, in our model, such a setting can be only purely
hypothetical because by definition (9) the inertia ratio k > 1.
B. Iterative Steering

Having constructed the nilpotent approximation (17), one can use
it for the iterative steering of the original system (12) from the initial
xs to a desired state xf . The general idea of this approach can be
formulated as follows [17].
1) Set i = 0, ti = 0, and xi = xs .
2) Set ti + 1 = ti + ∆T , where ∆T is the movement time allocated
for one iteration. Define the subgoal xdi = xi + η(xf − xi ),
where η ∈ [0, 1] is a sufficiently small number. Compute from

Ψdi = η(ψf − ψi )/(2k − 1)

(32)

where k > 1 is the inertia ratio given by (9). Let ω = 2π/∆T .
Define the control law by
u1 (t) = ri cos σi ωt

(33)

u2 (t) = ri sin σi ωt

(34)

where t ∈ [ti , ti + 1 ] and σi = sign(ψf − ψi ). Geometrically, in
the space of the contact coordinates ϑ and ϕ, this control law
traces a circle of radius ri in the direction defined by σi
ri
sin σi ωt
σi ω
ri
(1 − cos σi ωt).
ϕ(t) =
σi ω
ϑ(t) =

(35)
(36)

Therefore, by the end of the iteration, the contact coordinates ϑ
and ϕ remain unchanged.
By direct integration of the approximate system (17) and (31)
with the control (33) and (34), it can be shown that
z1 (ti + 1 ) = z2 (ti + 1 ) = 0, z3 (ti + 1 ) = σi πri2 /ω 2 .

(37)

The free parameter ri is defined from the condition z3 (ti + 1 ) =
Ψdi , which results in
#
ri = ω |Ψdi |/π.
(38)

Thus, the control law defined by (33) and (34) steers the privileged coordinates z1 , z2 , and z3 from the origin to, respectively,
0, 0, and Ψdi . By checking the first three equations of the system
(12), (13), one can see that in the original coordinates, we have
ϑ(ti + 1 ) = ϕ(ti + 1 ) = 0, but ψ(ti + 1 ) does not necessarily reach
ψid .

998

IEEE TRANSACTIONS ON ROBOTICS, VOL. 30, NO. 4, AUGUST 2014

3) Set xi = xi + 1 , increase the counter i = i + 1, and repeat the
calculations until ψ(ti + 1 ) reaches a given vicinity of ψf .
It should be noted that, since the control law (33) and (34) defines a
circle in the space of ϑ and ϕ, one has |ϑ(t)| ≤ ri /ω and |ϕ(t)| ≤ ri /ω.
To guarantee that the contact point does not leave the lower hemisphere,
one must have
.
η |ψ f − ψi |
η
ri
=

< π/2
(39)
ω
(2k − 1)π
2k − 1

Next, since one circle is traced in clockwise direction and the
other in the counterclockwise direction, by the end of the iteration, the angle ψ remains unchanged.
By direct integration of the approximate system (17), (31) with
the control (43), (44) and (45), (46), it can be shown that
z1 (ti + 1 ) = z2 (ti + 1 ) = z3 (ti + 1 ) = 0
z4 (ti + 1 ) =

2πri3

z5 (ti + 1 ) =

2πri3

sin (ψf − θi )/ω

(51)

3

(52)

3

(53)

cos (ψf − θi )/ω .

which gives the following estimate
η < (2k − 1)π 2 /4.

(40)

Thus, since the inertia ratio k > 1, for any η ∈ [0, 1] the control law
(33), (34) keeps the contact point away from the singularity line ϑ =
±π/2.
1) Second Part: In the second part of the maneuver, we steer x, y
to the desired values xf , yf without changing (in the final configuration) ϑ = ϕ = 0 and ψ = ψf . The computational procedure can be
summarized as follows.
¯s , y¯s ], where x
¯s , y¯s are the
1) Set i = 0, ti = 0, xi = [0, 0, ψf , x
coordinates of the contact point in the plane attained by the end
of the first part of the maneuver.
2) Set ti + 1 = ti + 2∆T . Define the subgoal in the contact plane
xdi = xi + η(xf − xi ) and yid = yi + η(yf − yi ), where η ∈
[0, 1], and compute by (24) and (25) the image of the subgoal in
the privileged coordinates
Xid =

Yid

η
{sin ψf (xf −xi ) + cos ψf (yf −yi )}
R(1−3k)

(41)
η
{cos ψf (xf −xi ) − sin ψf (yf −yi )} .
=
R(1−3k)
(42)

Let ω = 2π/∆T . Define the control law by
u1 (t) = ri cos (θi + ωt)

(43)

u2 (t) = ri sin (θi + ωt)

(44)

for t ∈ [2(i − 1)∆T, (2i − 1)∆T ] and
u1 (t) = ri cos (θi − ωt)

(45)

u2 (t) = ri sin (θi − ωt)

(46)

for t ∈ [(2i − 1)∆T, 2i∆T ]. Geometrically, this control law defines two symmetric circles in the space of the contact coordinates
ϑ and ϕ
ri
{sin(θ+ωt)−sin θ}
ω
ri
ϕ(t) =
{cos θ−sin(θ+ωt)}
ω
ϑ(t) =

(47)
(48)

for t ∈ [2(i − 1)∆T, (2i−1)∆T ] and
ri
{sin θ − sin(θ + ωt)}
ω
ri
ϕ(t) =
{sin(θ + ωt) − cos θ}
ω
ϑ(t) =

(49)
(50)

for t ∈ [(2i−1)∆T, 2i∆T ]. Therefore, the contact variables ϑ
and ϕ are zero at t = ti + (2i − 1)∆T , and t = ti + 2i∆T .

The free parameters ri and θi are defined from the conditions
z4 (ti + 1 ) = Xid and z5 (ti + 1 ) = Yid , which results in
.
d 2
d 2
6 (X i ) + (Yi )
ri = ω
(54)
2

θi = ψf − arctan (Xid /Yid ).

(55)

Thus, the control law defined by (43) and (44), as well as (45)
and (46), steers the state variables of the approximate nilpotent
system (17) from the origin to, respectively, [0, 0, 0, Xid , Yid ]. By
the geometric construction, for the original state variables, we
have ϑ(ti + 1 ) = ϕ(ti + 1 ) = 0, and ψ(ti + 1 ) = ψf , but x(ti + 1 )
and y(ti + 1 ) do not necessarily reach xdi and yid .
3) Set xi = xi + 1 , increase the counter i = i + 1, and repeat the
calculations until the coordinates of the contact point in the plane
[x(ti + 1 ), y(ti + 1 ) reach a given vicinity of [xf , yf ].
Under the control law (43) and (44), as well as (45) and (46), the
contact point in the space of the contact coordinates ϑ and ϕ is always
on the circle of radius ri /ω, with |ϑ(t)| ≤ ri /ω and |ϕ(t)| ≤ ri /ω. To
ensure that the contact point does not leave the lower hemisphere, one
needs to have
.
d 2
d 2
ri
π
6 (X i ) + (Yi )
=
(56)
< .
2
ω

2
By transforming this inequality with the use of (41), (42), one obtains
the following estimate
π 4 (3k − 1)
η
< 
.
R
32 (xf − xi )2 + (yf − yi )2

(57)

Thus, if η is selected in accordance with (57), the trajectory of the
contact point on the sphere is kept below the singularity line ϑ = ±π/2.
Two comments are in order.
1) For the brevity of presentation, in the iterative scheme described
in this section, the parameter η is a constant that must be tuned
to ensure the convergence of the iterative process. A globally
convergent iterative scheme with automatic adjustment of η at
every iteration is reported in [27], [28]. In principle, the presented scheme can be easily adjusted to the settings of [27], [28]
without modification of the control laws. Note, however, that the
convergence rate for the schemes with constant and nonconstant
η can be different.
2) The control laws constructed in this section define a path connecting the initial and final configurations. The timing of tracing this path can be readjusted as t = t(τ ), τ ∈ [0, T ], with
uj (τ ) = uj (t)dt/dτ, j = 1, 2. This can also be interpreted as
breaking motion planning into path planning and time planning [29]. To guarantee that the motion at each iteration does
not start and end impulsively, one can set the timing control law as t(τ ) = ti + ∆T {10s3 (τ ) − 15s4 (τ ) + 6s5 (τ )},
where s(τ ) = (τ − ti )/∆T so that t(τi ) = τi = i∆T and
[dt/dτ ]τ = τ i = [dt/dτ ]τ = τ i + 1 = 0.

IEEE TRANSACTIONS ON ROBOTICS, VOL. 30, NO. 4, AUGUST 2014

999

Fig. 4. Time histories of x (red line), y (blue line) (top), ψ (blue line), ϑ (red
line), and ϕ (green line) (bottom) during the first part of the maneuver.

C. Simulation
The performance and effectiveness of the motion planning algorithm
are tested under simulation for the nontrivial maneuver. Here, we drive
the system from the initial state x0 = {0, 0, 3π/4, 2.0, 2.0} to the
final state xf = {0, 0, 0, 0, 0}. In the simulation, we set R = 1, ∆T =
1, k = 2.5, and η = 0.6. The units of all the dimensional quantities are
specified in the SI system.
In the first part of the maneuver, where we drive ψ to zero regardless
of the attained x and y, we set η = 0.6. Time histories of all the state
variables are shown in Fig. 4. After five iterations the error between
the current and target values of ψ becomes less than 0.001, while ϑ
and ϕ keep zero values at the end of each iteration (integer moments
of time). By the end of the first part of the maneuver, the values of x
and y change, respectively, from 2.0 to 1.51 and from 2.0 to 2.85.
In the second part of the maneuver, where x and y are driven to
the origin, we set η = 0.6. Time histories of the state variables are
shown in Fig. 5. After ten iterations the error between the current
and target position
of the contact point on the plane, defined by the
Euclidean distance (x(t) − xf )2 + (y(t) − yf )2 , becomes less than
0.001, while ϑ, ϕ, and ψ keep zero values at the end of each iteration
(integer moments of time).
The evolution of the contact point trajectory on the sphere and on
the plane is shown in Fig. 6. Here, each iteration in the first part of the
maneuver is shown in green color. For the second part of the maneuver,
the first half of each iteration, corresponding to the control action (43),
(44), is shown in red color while the second half, corresponding to (45)
and (46), is shown in blue color. As can be seen from this figure3 , the
magnitude of the change of the state variables is gradually decreasing
as the robot approaches the target state.
While the results presented demonstrate the computational feasibility of the proposed motion planning strategy, it would be also interesting
to analyze the performance of the steering algorithm when the inertia
parameter k of the mathematical model is changed. Although a detailed theoretical analysis is beyond the scope of this paper, we provide
some simulation results illustrating this issue. The main problem here
3 The animation of the simulation results, provided in supplementary downloadable files, are available at http://ieeexplore.ieee.org.

Fig. 5. Time histories of x (red line), y (blue line) (top), ψ (red line), ϑ (blue
line), and ϕ (green line) (bottom) during the second part of the maneuver.

is the selection of the parameter η which defines the convergence and
the number of iterations to reach the goal state. In this connection, it
should be noted that the estimates (40), (57) provide the guidance for
not crossing the singularity line but have no relation to the convergence
of the algorithm.
Let us revisit the simulation example considered before and change
the inertia coefficient from k = 2.5 to k = 10. It is found under
simulation trials that to preserve the convergence of the steering algorithm, one needs to decrease the parameter η from 0.6 to 0.5. The
simulation results, presenting the evolution of the contact point trajectory on the sphere and on the plane, are shown in Fig. 7. Note that the
magnitude of the control inputs is directly proportional to the parameter
η. Therefore, the decrease of η results to smaller circles traced in the
contact coordinates ϑ and ϕ, which in turn leads to the increase in the
number of iterations necessary to reach the goal state.
The number of iterations as a function of η for different values
of the inertia ration k can be estimated under simulation runs. For the
example considered in this section, the simulation results, including the
hypothetical case of k = 0, which corresponds to the kinematic model
of pure rolling, are shown in Fig. 8. As can be seen from this figure,
the interval of η on which the iterative steering algorithm converges is
gradually decreasing with the increase of the inertia ratio k. This means
that the accuracy of the nilpotent approximation at a neighborhood of
the south pole of the sphere is decreasing with the increase of k.
A clear interpretation of this fact is not available at the moment as
the thorough estimation of the accuracy of the nilpotent approximation
goes beyond the scope of this paper. It is interesting to note, however,
that in the limiting case of k → ∞, the approximate system (17) and

1000

Fig. 6. Trajectory of the contact point on the plane (top) and on the sphere
(bottom) during the nontrivial maneuver for k = 2.5. The first part of the
maneuver is shown in green color, while the second part is shown in red [as
resulted from (43) and (44)] and blue [as resulted from (45) and (46)] colors.

(31) remains controllable but the matrix Γ in (18) becomes singular.
Thus, the transformation from the original to privileged coordinates
tends to singularity with the increase of k. Note also that from the
physical point of view, roughly speaking, the dynamic coefficient k
becomes larger with the increase of the ratio of the inertia of the
spherical shell to that of the rotors. Therefore, it is realistic that driving
a heavier spherical shell with lighter rotors would result in the control
inputs of smaller magnitude.
It should be noted that in our algorithm, constructed in the settings
of [17], η is constant for every iteration. The iterative algorithm [27],
[28] with automatic adjustment of η converges for any value of k. In our
numerical experiments, not reported in this paper because of the page
limitation4 , the latter algorithm often converges faster than the former
one but not always because the actual convergence rate depends also
on the initial and final configurations. Still, the pattern of the decrease
of the convergence rate with the increase of k can be witnessed also in
the globally convergent algorithm [27], [28].

4 However, Mathematica software scripts, implementing the algorithms with
constant and nonconstant η, are available from the authors upon request.

IEEE TRANSACTIONS ON ROBOTICS, VOL. 30, NO. 4, AUGUST 2014

Fig. 7. Trajectory of the contact point on the plane (top) and on the sphere
(bottom) during the nontrivial maneuver for k = 10. The first part of the maneuver is shown in green color, while the second part is shown in red [as resulted
from (43) and (44)] and blue [as resulted from (45) and (46)] colors.

Fig. 8. Number of iterations in the second part of the nontrivial maneuver as
a function of η for different values of the inertia ratio k.

IV. CONCLUSION
Motion planning for a spherical rolling robot, actuated by two internal rotors that are placed on orthogonal axes, has been studied in
this paper. The problem of finding trajectories of the state variables
given the initial and final configuration of the robot has been considered. One of the characteristic features of this problem is that it can be
addressed only in dynamic formulation. The mathematical model of

IEEE TRANSACTIONS ON ROBOTICS, VOL. 30, NO. 4, AUGUST 2014

1001

Let α be the angle of rotation around the unit vector ns . The matrix
of rotation around ns can be defined by the Rodriguez formula
Rs = I + sin αΩ(ns ) + (1 − cos α)Ω2 (ns )

(58)

where Ω(·) is the skew-symmetric matrix used for the matrix repre△

sentation of the vector product (Ω(a)b = a × b), which gives


1−sin2 β(1−cos α) 12 sin 2β(1−cos α) sin β sin α


Rs =⎣ 12 sin 2β(1−cos α) 1−cos2 β(1−cos α) − cos β sin α⎦.
sin β sin α

cos β sin α

cos α

(59)
The orientation of the sphere at the final configuration can be represented as
(60)
R(ψ0 , 0, 0)Rs (β, α) = R(ψf , ϑf , ϕf )
where the orientation matrix of the sphere R(ψ, ϑ, ϕ) is defined in
Section II. By solving this equation with respect to the unknown angles
α, β, and ψ0 , one obtains

Fig. 9.

Trivial maneuver.

the robot, represented by a driftless control system, contains a physical
singularity corresponding to the motion of the contact point along the
equatorial line in the plane of the two rotors. To solve the state-to-state
transfer problem, a motion planning strategy composed of two trivial
and one nontrivial maneuver has been proposed. The trivial maneuvers
implement motion along the geodesic line perpendicular to the singularity line. The nontrivial maneuver is based on an iterative steering
algorithm and employs the nilpotent approximation of the originally
nonnilpotent robot dynamics. The feasibility of the motion planning
strategy has been verified under simulation.
In future research, apart from the experimental verification of the
motion planning strategy, it would be interesting to try out different,
more systematic techniques to pass through the singularity line. Theoretical approaches to steering nonholonomic systems with singularities
are reported in [22], [28]. In principle, these approaches are applicable
to the rolling robot with two rotors. However, the practical construction
of computationally feasible algorithms based on these approaches is
not trivial and requires a special investigation.

APPENDIX
Here, we consider the trivial maneuver executed in the third step5 of
the motion strategy and show how to modify the x, y, and ψ components
of the vector x0 so that rolling along a geodesic line on the sphere will
guarantee arrival at the given target configuration xf . The vector x0 is
then set as the target configuration for the nontrivial maneuver executed
in the second step of the motion strategy.
Let ϑf and ϕf be the corresponding components of the vector xf .
The geodesic line connecting ϑf and ϕf with the origin is defined
uniquely and is perpendicular to the singularity line ϑ = ±π/2. Let
β + π/2 be the angle of orientation of the great circle, formed by this
geodesic line, with respect to the frame Σo as shown in Fig. 9. When
the sphere rolls along the geodesic line it rotates around the unit vector
ns whose components in the frame Σo are [cos β, sin β, 0]T .

5 The calculations in the first step are similar and can be conducted straightforwardly in much the same way.

α = arccos (cos ϑf cos ϕf )


cos ϕf sin ϑf
β = arctan
sin ϕf


sin ϑf cos ψf −cos ϑf sin ϕf sin ψf
.
ψ0 = β −arctan
sin ϑf sin ψf +cos ϑf sin ϕf cos ψf

(61)
(62)
(63)

Having defined the angles α, β and ψ0 , one finally obtains
x0 = xf − R α cos (β − ψ0 )

(64)

y0 = yf − R α sin (β − ψ0 ).

(65)

It remains to be shown that the motion along the selected geodesic
line is dynamically realizable. When α is changed as a function of time
the orientation matrix of the sphere R is defined by the left hand side
of (60). Therefore,
n3 = [sin α(t) sin (β −ψ0 ), − sin α(t) cos (β −ψ0 ), cos α(t)]T .
(66)
˙ T yields
Computing ω from Ω(ω) = RR
ω = Rα(t)[cos
˙
(β −ψ0 ), sin (β −ψ0 ), 0]T .

(67)

Since the last component of ω is zero, the motion is pure rolling and the
contact point on the plane moves along the straight line6 connecting
(x0 , y0 ) with (xf , yf ). Since J = diag{Jx x , Jx x , Jz z }, it is easily
verified that n3 · J ω = 0, and, therefore, the motion is dynamically
realizable. The velocities of the rotors, realizing this motion, are defined
from (6) and obtained as
˙
cos β
q˙1 (t) = −(n1 · J ω)/Jr = −(Jx x /Jr )α(t)

(68)

˙
sin β.
q˙2 (t) = −(n2 · J ω)/Jr = −(Jx x /Jr )α(t)

(69)

REFERENCES
[1] A. Bicchi, A. Balluchi, D. Prattichizzo, and A. Gorelli, “Introducing the
“Sphericle”: An experimental testbed for research and teaching in nonholonomy,” in Proc. IEEE Int. Conf. Robot. Autom., Albuquerque, NM,
USA, 1997, vol. 3, pp. 2620–2625.
6 Note that if a different geodesic line, not orthogonal to the rotors plane and
therefore not passing through the south pole is selected, the trajectory of the
contact point on the plane will not be a straight line [15] and the motion will
not necessarily be pure rolling.

1002

IEEE TRANSACTIONS ON ROBOTICS, VOL. 30, NO. 4, AUGUST 2014

[2] S. Bhattacharya and S. Agrawal, “Spherical rolling robot: A design and
motion planning studies,” IEEE Trans. Robot. Autom., vol. 16, no. 6,
pp. 835–839, Dec. 2000.
[3] A. Javadi and P. Mojabi, “Introducing glory: A novel strategy for an omnidirectional spherical rolling robot,” ASME J. Dyn. Syst., Meas., Contr.,
vol. 126, no. 3, pp. 678–683, 2004.
[4] R. Balasubramanian, A. Rizzi, and M. Mason, “Legless locomotion: A
novel locomotion technique for legged robots,” Int. J. Robot. Res., vol. 27,
no. 5, pp. 575–594, 2008.
[5] M. Ishikawa, Y. Kobayashi, R. Kitayoshi, and T. Sugie, “The surface
walker: A hemispherical mobile robot with rolling contact constraints,”
in Proc. IEEE/RSJ Int. Conf. Intell. Robots Syst., St. Louis, MO, USA,
2009, pp. 2446–2451.
[6] V. Joshi, R. Banavar, and R. Hippalgaonkar, “Design and analysis of a
spherical mobile robot,” Mech. Mach. Theory, vol. 45, no. 2, pp. 130–136,
2010.
[7] A. Borisov, A. Kilin, and I. Mamaev, “How to control Chaplygin’s sphere
using rotors: Part II,” Regular Chaotic Dyn., vol. 18, no. 1–2, pp. 144–158,
2013.
[8] V. Joshi and R. Banavar, “Motion analysis of a spherical mobile robot,”
Robotica, vol. 27, no. 3, pp. 343–353, 2009.
[9] Z. Li and J. Canny, “Motion of two rigid bodies with rolling constraint,”
IEEE Trans. Robot. Autom., vol. 6, no. 1, pp. 62–72, Feb. 1990.
[10] V. Jurdjevic, “The geometry of the plate-ball problem,” Arch. Rational
Mech. Anal., vol. 124, no. 4, pp. 305–328, 1993.
[11] A. Marigo and A. Bicchi, “Rolling bodies with regular surface: Controllability theory and applications,” IEEE Trans. Autom. Control, vol. 45,
no. 9, pp. 1586–1599, Sep. 2000.
[12] R. Mukherjee, M. Minor, and J. Pukrushpan, “Motion planning for a
spherical mobile robot: Revisiting the classical ball-plate problem,” ASME
J. Dyn. Syst., Meas. Contr., vol. 124, no. 4, pp. 502–511, 2002.
[13] M. Svinin and S