Nonholonomic wheeled mobile robots employ
conventional wheels that don't allow sideways
sliding, such as this wheel rolling upright
on a plane.
Its configuration q consists of the heading
angle phi, the contact position (x,y), and
the rolling angle theta.
There are two controls driving the wheel:
u_1, the forward-backward rolling angular
speed, and u_2, the speed of turning the heading
direction phi.
With these controls, the rate of change of
the coordinates can be expressed as a configuration-dependent
matrix times the controls, where the configuration-dependent
matrix is called G-of-q.
G-of-q times u can be written g_1-of-q times
u_1 plus g_2-of-q times u_2, where u_1 and
u_2 are called the controls and g_1 and g_2
are called vector fields.
Each of the two vector fields assigns a velocity
to every point q in the configuration space,
so these vector fields are sometimes called
velocity vector fields.
The total velocity of the wheel is the scaled
sum of these vector fields, where the scaling
coefficients are the controls, so these vector
fields are sometimes called control vector
fields.
These vector fields are defined on a 4-dimensional
configuration space, so they are hard to visualize.
Here's a simple velocity vector field defined
on a two-dimensional space, x-dot equals minus-y
and y-dot equals minus-x.
Back to the example of the rolling wheel,
which we also call a unicycle, the equation
q-dot equals G-of-q times u is the kinematic
model of the unicycle.
A diff-drive robot has two independently driven
wheels and one or more caster wheels to keep
it horizontal.
If we define the 5-dimensional configuration
of the robot as phi, the (x,y) position of
a point halfway between the wheels, and the
rolling angles of the left and right wheels,
the kinematic model is given by this G-of-q
matrix times the controls, which are the left
and right wheel velocities, u_L and u_R.
Usually we don't care about how far the wheels
have rotated, so we can scratch the bottom
two rows of the equation.
The two columns of the G matrix are the control
vector fields.
Finally, a car-like robot uses Ackermann steering
of the front wheels to create a center of
rotation somewhere along the axis of the unsteered
rear wheels.
If we define the 4-dimensional configuration
to be the heading angle phi, the position
(x,y) of a point halfway between the rear
wheels, and the steering angle psi, then the
kinematic model is this G-of-q matrix times
the controls, which are the forward velocity
v and the rate of turning the steering wheel
w.
In this model, the control for steering is
the steering speed w.
To make this model more like the unicycle
and the diff-drive robot, I'll assume that
the steering control is the angleof the steering
wheel, not its angular velocity.
With this simplification, the steering angle
is no longer part of the configuration, and
the kinematic model simplifies to this, where
v is still the forward-backward velocity but
now omega is the rate of change of the heading
direction, phi-dot.
As shown in the book, we can calculate the
steering angle psi needed to generate the
virtual control omega using this transformation,
which is a function of both v and omega.
We call this kinematic model our canonical
nonholonomic robot model, because it also
models the unicycle and the diff drive.
They also have control transformations that
take the virtual controls v and omega and
express them in terms of the actual controls.
The only difference among the robots is the
bounds on their controls.
For the unicycle, limits on the forward and
turning speeds are independent, so the available
controls are a box in the control space.
A diff-drive robot with bounds on the individual
speeds of each wheel has a diamond of available
controls.
A car-like robot has a bowtie-shaped control
set, due to bounds on the turning radius and
bounds on the forward-backward speed.
Finally, a forward-only car has only half
the bowtie of controls.
The canonical model says we have a 2-dimensional
set of velocities for the 3-degree-of-freedom
system.
With a little manipulation we get the implicit
Pfaffian constraint on the velocities, x-dot
sine phi minus y-dot cosine phi equals zero.
Since this velocity constraint cannot be integrated
to a constraint on the configuration of the
robot, it's called a nonholonomic constraint,
as we learned in Chapter 2.
The presence of this constraint is why we
call these robots nonholonomic.
In the next video I discuss the controllability
properties of robots subject to velocity constraints.
