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.