final-31

One is Enough!
Tom Lauwers, George Kantor, and Ralph Hollis
The Robotics Institute
Carnegie Mellon University
Pittsburgh, Pennsylvania, USA
{tlauwers,kantor,rhollis}@ri.cmu.edu
Summary. We postulate that multi-wheel statically-stable mobile robots for operation in human environments are an evolutionary dead end. Robots of this class tall enough to interact
meaningfully with people must have low centers of gravity, overly wide bases of support, and
very low accelerations to avoid tipping over. Accordingly, we are developing an inverse of this
type of mobile robot that is the height, width, and weight of a person, having a high center
of gravity, that balances dynamically on a single spherical wheel. Unlike balancing 2-wheel
platforms which must turn before driving in some direction, the single-wheel robot can move
directly in any direction. We present the overall design, actuator mechanism based on an inverse mouse-ball drive, control system, and initial results including dynamic balancing, station
keeping, and point-to-point motion.
1 Motivation
A significant, but frequently overlooked problem is that statically-stable wheeled
mobile robots can easily become dynamically unstable. If the center of gravity is too
high, or the robot accelerates/decelerates too rapidly, or is on a sloping surface, the
machine can tip over. A robot must be tall enough to be able to interact with people
and the human environment at a reasonable height. On the other hand, it must be
skinny enough to easily make its way around without bumping into things or getting
into peoples’ way.
What is needed are robots that are safe; agile and capable of graceful motion;
slender enough to easily maneuver in cluttered, peopled environments; and which
readily yield when pushed around. It is surmised that intelligent machines of this
sort can only be achieved with dynamic stability. This idea follows the model of
humans and other animals which are intrinsically dynamically stable.
2 Background
A two-wheeled robot with inverse pendulum control developed in Japan was demonstrated in 1994 [2]. The two-wheeled design eliminated the need for a third castor1
2
Lauwers, Kantor, and Hollis
Fig. 1. Ballbot design and realization: (a) with three legs deployed, (b) with legs retracted into
body, (c) balancing and station keeping.
ing wheel. The same group introduced a one-wheel balancing robot [3]. The wheel
is a prolate ellipsoid like a rugby ball and is driven with an axle along the major
axis. The body of the robot has a hinge above and perpendicular to this axis. The
robot balances in the forward/backward directions by application of wheel torque in
the manner of the two-wheeled design, and balances from side to side by leaning
the body left or right at the actuated hinge. Recently, balancing wheel chairs1 and
balancing 2-wheel “Segway personal mobility devices”2 have been introduced. The
2-wheel RMP robotic platforms [4] based on the Segway are the subject of much
recent development in robotic locomotion.
The previous work on dynamically-stable rolling machines provides inspiration
for our current research, yet is distinctly different. For example, there is no previous
work proposing a balancing rolling machine whose body is supported by a single
omni-directional spherical wheel. The previous rolling/balancing machines cannot
immediately drive in a given direction without first re-orienting the drive mechanism. For example, a two-wheel balancing machine such as the Segway RMP cannot
maneuver in tight spaces by moving sideways; a robot based on such a machine could
1
2
Independence Technology, http://www.indetech.com.
Segway human transporter, http://www.segway.com.
One is Enough!
3
not open and close a door without knowing the precise location of the hinges in order
to establish the correct turning radius. The rugby-ball robot cannot turn in place, but
can only turn in a wide arc.
3 System Description
Ballbot, shown in Fig. 1, is a reconfigurable research platform developed and constructed to validate the notion of a dynamically stable robot resting atop a single,
spherical drive wheel. It was designed to meet two goals: approximate the dimensions of a human being, and create a platform that is easily reconfigured for various
present and future research efforts. The body is a cylinder 1.5 m tall, with a diameter
of 400 mm and a weight of 45 kg. Three aluminum channels, held together by circular decks, define the structure of Ballbot’s body. Three retractable landing legs are
attached to the lower third of the channels, which when deployed allow Ballbot to
remain standing after being powered down. Active components, such as computing,
power, and sensing, are mounted on the decks, allowing these elements to be placed
at varying positions along Ballbot’s axis. Figures 1(a) and (b) show the design and
Fig. 1(c) shows its present configuration successfully balancing and station keeping.
Ballbot is designed to be entirely self-contained; power is supplied by a 48V lead
acid battery with operating time of several hours, and computing is performed onboard by a 200 MHz Pentium processor. Communication with Ballbot is through an
802.11b wireless link. A Crossbow Technology VG700CA-200 Inertial Measuring
Unit (IMU) emulating a vertical gyro provides Kalman-filtered pitch and roll angles
and rates with respect to gravity. The drive motors are connected to Copley Model
412 PWM amplifiers, with 1024 cpr encoders feeding motor shaft position back to
the computer. Additionally, 1024 cpr encoders are placed on the passive rollers to
measure ball rotation. The IMU and encoders provide all data required for full-state
feedback control.
Fig. 2. Ballbot inverse mouseball drive mechanism
4
Lauwers, Kantor, and Hollis
The drive mechanism, shown in Fig. 2, is essentially the inverse of a mouse ball
drive: instead of the mouse ball driving the mouse rollers to provide computer input,
rollers drive the ball to produce motion. The ball is a 200 mm diameter hydroformed
steel shell covered with a 3.2 mm thick urethane outer layer. We have fabricated
balls with urethane formulations of several different durometers. The ball is actuated
by a pair of 12.7 mm diameter smooth stainless steel rollers placed orthogonally
at the sphere’s equator. These rollers are linked through timing belts to two high
torque DC servomotors. Opposite the drive rollers are two spring-loaded passive idler
rollers that apply force at the ball’s equator to maintain contact between the drive
rollers and the ball. This arrangement represents a compromise since some slippage
is always present. For example, if one roller is being driven, the orthogonal roller
must be slipping. This simultaneously demands both a high-friction and low-friction
material for the ball. On the other hand, it is always desirable to have high friction
between the ball and the floor. The drive works well but a fair amount of ball wear
has been experienced, and we are at present still seeking a satisfactory compromise
solution. The entire drive mechanism is attached to the body with a large diameter
thrust bearing, allowing a third actuator (currently not installed) to re-orient the body
in yaw. Finally, the entire Ballbot body rests on top of the ball on three commercial
low friction, omni-directional ball transfer devices.
4 Simplified Ballbot Model
For the purposes of developing a stabilizing controller, we introduce and derive equations of motion for a simplified model of Ballbot. In this model, the Ballbot ball
wheel is a rigid sphere, the body is rigid, and the control inputs are torques applied
between the ball and the body. There is no slip between the wheel and the floor. Friction between the wheel and the floor and between the wheel and the body is modeled
as viscous damping. Further, we assume that the motion in the median sagital plane
and median coronal plane is decoupled and that the equations of motion in these two
planes are identical. As a result, we can design a controller for the full 3D system by
designing independent controllers for the two separate and identical planar systems.
Figure 3 is a diagram depicting the planar model. The Lagrangian formulation is
used to derive the nonlinear equations of motion for the simplified model (see, e.g.,
[1]). The first step is to compute the kinetic energy Kb of the ball:
Kb =
mb (rb θ̇)2
Ib θ̇2
+
,
2
2
where Ib , mb , and rb are, respectively, the moment of inertia, mass, and radius of the
ball. The potential energy of the ball is Vb = 0. The kinetic energy KB and potential
energy VB of the body are
KB =
I
mB 2 2
B
rb θ̇ + 2rb (θ̇2 + θ̇φ̇) cos(θ + φ) + 2 (θ̇ + φ̇)2 +
(θ̇ + φ̇)2 ,
2
2
One is Enough!
5
Fig. 3. Planar simplified Ballbot model used for controller design.
VB = mB g cos(φ + θ),
where IB is the moment of inertia of the body about the center of the ball, is the
distance between the center of the ball and the center of mass of the body, mB is the
mass of the body, and g is the acceleration due to gravity. The total kinetic energy is
K = Kb + KB and the total potential energy is V = Vb + VB .
Define the system configuration vector q = [ θ φ ]T . The Lagrangian L is a
function of q and q̇ and is defined to be L(q, q̇) = K − V.
Let τ be the the component of the torque applied between the ball and the body
in the direction normal to the plane. To model the viscous friction terms, define the
vector
μθ θ̇
,
D(q̇) =
μφ φ̇
where μθ and μφ are the viscous damping coefficients that model ball–ground and
ball–body friction, respectively. Using this notation, the Euler-Lagrange equations of
motion for the simplified Ballbot model are
d ∂L ∂L
0
−
=
− D(q̇).
τ
dt ∂ q̇
∂q
After computing the derivatives in the Euler-Lagrange equations and rearranging
terms, the equations of motion can be expressed as
0
M (q)q̈ + C(q, q̇) + G(q) + D(q̇) =
.
(1)
τ
The mass matrix M (q) is
Γ + 2mB rb cos(θ + φ) Γ2 + mB rb cos(θ + φ)
M (q) = 1
,
Γ2 + mB rb cos(θ + φ)
Γ2
where
6
Lauwers, Kantor, and Hollis
Γ1 = Ib + IB + mb rb2 + mB rb2 + mB 2 ,
Γ2 = mB 2 + IB .
The vector of Coriolis and centrifugal forces is
−mB rb sin(θ + φ)(θ̇ + φ̇)2
C(q, q̇) =
0
and the vector of gravitational forces is
−mB g sin(θ + φ)
G(q) =
.
−mB g sin(θ + φ)
To put these equations into standard nonlinear state space form, define the state
vector to be x = [ q T q̇ T ]T and define the input u = τ . This together with Eq. 1
yields
⎤
⎡
q̇
⎦ = f (x, u).
0
ẋ = ⎣
− C(q, q̇) − G(q) − D(q̇)
M (q)−1
u
Fig. 4. Structure of stabilizing linear feedback controller.
5 Stabilizing Feedback Controller
The linear controller used to stabilize Ballbot has two loops: an inner loop that feeds
ball velocity θ̇ back into a PI controller, and an outer loop linear quadratic regulator (LQR) that uses full state feedback. This architecture is shown in Fig. 4. The
proportional gain kp and integral gain ki in the PI controller are chosen and experimentally tuned so that the actual ball velocity θ̇ tracks the desired ball velocity ωd .
The integral term adds an extra state to the system. Define the augmented state vector
xa = [ xT x5 ]T . The closed loop equations of motion of the inner loop can then
be written as
One is Enough!
7
f x, kp (ωd − θ̇) + ki (x5 − θ) ẋa =
= fa (xa , ωd ).
ωd
The outer loop is designed by linearizing the inner loop equations of motion and
applying LQR. Note that the simplified Ballbot system is at equilibrium whenever
sin(θ + φ) = 0 and φ̇ = θ̇ = 0. The objective is to design a controller that will
balance Ballbot with the body straight up and hold it in a fixed position θ = 0, which
is equivalent to stabilizing the equilibrium point at xa = 0. We begin by linearizing
the equations of motion about this point:
∂fa ∂fa xa +
ωd .
ẋa =
∂xa xa =0,ωd =0
∂ωd xa =0,ωd =0
A
B
Working out the partial derivatives yields
⎤
⎡
0
0
1
0
0
⎥
⎢
0
0
1
0
⎢
0
⎥
⎢
−mB g −mB g μθ 0 0 ⎥
A = ⎢ −1
⎥,
M
∗
⎣
−mB g − ki −mB g −kp μφ ki ⎦
0
0
0
0
0
⎡
⎤
0
⎢
0 ⎥
⎢
⎥
⎢
B = ⎢ −1 0 ⎥
⎥,
M
⎣ ∗ kp ⎦
1
where M∗ is simply the mass matrix M (q) evaluated at θ = φ = 0.
Now LQR can be used to find a linear state feedback controller that stabilizes the
system about xa = 0 and minimizes the cost function
J = (xa (t)T Qxa (t) + Rωd (t)2 )dt.
We choose the structure of Q to be
⎡
γb + γB
⎢ γb
⎢
Q=⎢
⎢ 0
⎣ 0
0
γB
0
γB
0
0 γḃ + γḂ
0
γḂ
0
0
0
0
γḂ
γḂ
0
⎤
0
0⎥
⎥
0⎥
⎥,
0⎦
γ5
where γb , γB , γḃ , γḂ , and γ5 can be loosely thought of as controlling the relative
convergence rates of the ball angle, body angle, ball angular velocity, body angular
velocity, and x5 , respectively. In practice, these parameters were hand tuned based on
simulation results. For a given choice of Q and R, Matlab’s LQR command can be
8
Lauwers, Kantor, and Hollis
Fig. 5. Moving between two locations in a straight line: (a) ball position in meters, (b) body
angle in degrees.
used to compute the associated gain matrix K, which defines the stabilizing feedback
control law ωd = −Kxa .
When implementing the controller on the actual robot, we were forced to deviate
slightly from the controller presented above. We found that there is a practical limit
on the magnitude of the gain k4 that multiplies φ̇. Exceeding this limit induces an
oscillation not present in the simplified Ballbot model. We hypothesize that this oscillation is due to flexibility in the body frame and the mechanics of the soft urethane
layer that couples the drive roller to the ball. The K matrix generated by the LQR
algorithm gives a k4 that exceeds the practical limit, so we manually adjusted k4 to
an allowable level. Unfortunately, with this limit on k4 , it is not possible to directly
stabilize Ballbot, which explains the need for the inner PI loop. Also, the gain k5
turns out to be negligible, so it is set to zero in the experiments.
6 Initial Results
A number of tests were conducted to characterize physical system performance, and
to make comparisons with simulation. During operation on a hard tiled floor, it was
found that the machine was able to balance robustly, strongly resisting attempts to
tip it over when a person applied torques to the body. However, it was not able to
simultaneously balance and station keep. When operated on a carpeted surface, Ballbot was able to do both, presumably due to the extra damping afforded by the carpet
material.
In the test run shown in Fig. 5, Ballbot was commanded to move from a starting
position in a straight line to a goal position. There is an initial retrograde ball motion
causing the body to lean toward the goal position, followed by a reverse motion to
stop at the goal. As mentioned in the previous section, differences between simulation and experiment might derive from unknown frictional and spring forces. The
divergence when station keeping is at most about 40 mm in position, and 0.5◦ in tilt.
One is Enough!
9
Fig. 6. Plots of the ball path during (a) balancing and station keeping, and (b) attempting to
move in a square.
To see the typical motion jitter experienced during operation, one may plot the
paths taken as the ball moves around on the carpeted floor. Figure 6(a) shows data
taken from a 99 s run where Ballbot was released slightly out of balance, which
was rapidly corrected by ball motion, followed by station keeping within a roughly
circular region of about 40 mm diameter. Figure 6(b) shows Ballbot’s attempt to track
a square trajectory.
7 Discussion
Our results are preliminary and there is much that remains to refine Ballbot’s model
and control. Nevertheless, it would appear that Ballbot and its progeny might well
represent the vanguard of a new type of wheeled mobile robot capable of agile, omnidirectional motion. Such robots, combined with the research community’s ongoing
work in perception, navigation, and cognition, could yield truly capable intelligent
mobile robots for use in physical contact with people. If realizable and economically viable, they might well function as aids to elderly or disabled persons; provide
guidance and assistance in public spaces; help with education and entertainment;
perform domestic cleaning and housekeeping; or fetch and carry everyday objects.
The more immediate goal of our research is simply to gain a deeper understanding
of how such dynamic agility can be achieved in mobile machines interacting with
people and operating in normal home and workplace environments.
Acknowledgment
This work was supported in part by NSF grant IIS-0308067.
10
Lauwers, Kantor, and Hollis
References
1. A.M. Bloch. Nonholonomic Mechanics and Control. Springer, 2003.
2. Y.-S. Ha and S. Yuta. Trajectory tracking control for navigation of self-contained mobile
inverse pendulum. In Proc. IEEE/RSJ Int’l. Conf. on Intelligent Robots and Systems, pages
1875–1882, 1994.
3. R. Nakajima, T. Tsubouchi, S. Yuta, and E. Koyanagi. A development of a new mechanism
of an autonomous unicycle. In Proc. IEEE/RSJ Int’l. Conf. on Intelligent Robots and
Systems, pages 906–12, Grenoble, France, September 7-11 1997.
4. H. G. Nguyen, J. Morrell, K. Mullens, A. Burmeister, S. Miles, N. Farrington, K. Thomas,
and D. Gage. Segway robotic mobility platform. In SPIE Proc. 5609: Mobile Robots XVII,
Philadelphia, PA, October 2004.