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.