The
Palm Pilot Robot can move *holonomically* across flat surfaces, which in
this case means it may move in any direction while simultaneously controlling
rotational speed. This is true because the omni-wheels have rollers that allow
them to freely roll sideways but control the motion in the direction the wheel
is pointing. The following diagram and analysis illustrates how a desired motion
vector and rotational velocity can be resolved into the wheel velocities that
will create the desired motion.

In the control program, this analysis is incorporated into a function Vector_Drive(V, w) which drives the robot in a direction specified by a given vector V, while rotating the robot at an angular speed w.

r
-wheel radius

F_{0}, F_{1}, F_{2} -unit direction vectors

v - desired body velocity expressed in body coordinate frame

w
- angular velocity

b - wheel baseline

v_{0}, v_{1}, v_{2} - wheel linear velocities

w_{0},
w_{1},
w_{2}
- wheel angular velocities

n - wheel number

p_{n} - velocity of the body at a given wheel n

F_{0} = [-1, 0]

F_{1} = [1/2, -sqrt(3)/2]

F_{2} = [1/2, sqrt(3)/2]

__Finding
body velocity from wheel velocity__:__
__Each wheel constrains the velocity in
a particular direction at the specified point. At each wheel, the velocity
depends on v and w,
and is the sum of the velocity due to rotation (expressed in the body frame) and
the motion of the body frame in the world:

p

p

wheel velocity = v•F

Thus:

w

w

w

Last updated: October 06,
2000 22:25