Two links is well and good, but what if theres more DoF and more complex robot geometries?

On mobile robots we care about the temporal evolution of robot configurations, because going straight and then turning is not the same as turning and then going straight.

3.3.1 Forward Differential Kinematics

Let the transitional speed of a robot be given by

Let the angular velocity of a robot be given by

We can now write the generalized velocity vector Let the generalized configuration in joint space be Therefore the set of joint speed is a simple derivation of eq 3.1 (find) with respect to time gives

where is the Jacobian matrix. It is a function of the joint configuration and contains all of the partial derivatives of , relating every joint angle to every velocity. Together, this describes how the robot moves with respect to time.

3.3.2 Forward kinematics of a Differential Wheeled Robot

Holonomic definiton:

A system is non-holonomic when closed trajectories in its configuration space may not return it to its original state. A robot arm is holonomic because each joint position corresponds to a unique position in space (Figure 3.4, bottom): a generic joint-space trajectory that comes back to the starting point will position the robot’s end-effector at the exact same position in operational space.

A differential wheeled robot is non-holonomic, which means we need to care about speed and direction with respect to time in order to have a chance at preforming forward kinematics.

Let’s establish as a world coordinate system (i.e. the inertial frame). Let be a coordinate system on the robot centered on between its two wheels, with the x-axis pointing toward the default driving direction and z upwards.

Let’s define the robots speed as a vector where and refer to the speed along the and directions, and refers to the rotation velocity around the z-axis.

We need to relate to , or the , and position in the inertial or world frame in order to be of particular use.

One complication. A movement along the x-axis in might be a movement along the x-axis and y-axis in . Here are the components for and in

which is true because the Robot’s z-axis and the world’s z-axis are shared.

So We’re almost there! Now, how to calculate ? We can take advantage over the kinematics of wheels to find out. First, is always zero since we aligned the x-axis with the default forward motion of the robot. Then for we can find

where is the angle the wheel has rolled by (in radians) and is the rate of change of that angle.

We can also define and as the individual speeds of each wheel.

Now we only need to calculate the rotation of the robot around the z-axis. Given an axle diameter of , we can write

where is the angle of rotation around the left wheel. This equation assumes a “limp” accessory wheel. The equation is the same for the left wheel. Adding in rotation speeds finds

Putting it all together..

And we’ve found !!!!

AAAAAAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHH

3.3.3 Forward kinematics of Car-like steering

Skipped.