Odometry is the process of estimating the chassis configuration from wheel motions,
essentially integrating the effect of the wheel velocities.
Since wheel-rotation sensing is available on all mobile robots, odometry is convenient.
Odometry errors tend to accumulate over time, though, due to slipping or skidding of the
wheels and numerical integration error.
For this reason, odometry is usually supplemented with estimation techniques using exteroceptive
sensors, like cameras, range sensors, and GPS.
This video focuses on odometry.
In this video, the 6-dimensional twist of the chassis, expressed in the chassis frame
{b}, is written V_b6.
Since the chassis motion is planar, three of the components are zero.
The remaining three velocities in the plane are collectively written as V_b, a planar
twist.
With this as background, the odometry process consists of the following steps.
First, we measure the wheel rotations Delta theta since the last timestep, typically using
encoders.
Next, we assume that the wheel velocities were constant since the last encoder readings
at time Delta t in the past.
Because it doesn't matter which units we use to measure time, we can assume Delta t is
equal to 1 unit, and therefore theta-dot is equal to Delta theta.
Next, we find the chassis planar twist V_b that corresponds to Delta theta.
Next, we use the matrix exponential to integrate the corresponding 6-dimensional twist V_b6
for time Delta t equal to 1 to find the configuration of the chassis frame at step k-plus-1 relative
to the chassis frame at step k.
Finally we express the new chassis frame relative to the space frame.
Since the other steps are straightforward, let's focus on the third step, finding the
matrix F relating Delta theta to V_b.
For a car or a diff-drive, the chassis frame {b} is midway between the wheels.
The radius of the wheels is r, and positive rotation of the wheels corresponds to forward
motion at those wheels.
A little geometry shows that the planar twist provided by unit velocity of the left wheel
has minus-r over 2d in angular velocity and r over 2 in the x_b direction.
The planar twist for a unit velocity of the right wheel is similar, but with an opposite
angular component.
The 3-by-2 F matrix relates the wheel increments to the chassis twist V_b.
For omnidirectional mobile robots, the wheel speeds theta-dot are related to the chassis
twist V_b by the matrix H of zero, as we learned in a previous video.
We can invert this relationship to get V_b equals H-pseudoinverse times theta-dot, which
we can write equivalently as F theta-dot or F Delta theta.
For the three omniwheel robot, inverting the H matrix we found in an earlier video produces
this 3-by-3 F matrix relating Delta theta to V_b.
For the four mecanum wheel robot, pseudo-inverting the H matrix produces this 3-by-4 matrix.
With the F matrix and the wheel increment Delta theta, we get the planar chassis twist
V_b.
Expressing this as the 6-dimensional twist V_b6, we can use our standard matrix exponential
to calculate the configuration of the chassis frame at step k-plus-1 relative to the configuration
at step k.
To express this in the space frame, we premultiply the matrix exponential by the transformation
matrix representing the chassis frame at step k relative to the space frame.
We can then extract the coordinates q_k-plus-1 from T_{s b_k-plus-1}.
Equivalently, we can convert the matrix exponential to an increment of coordinates expressed in
the chassis frame, rotate the x and y components to an increment in the space frame, and add
the increment to the previous chassis configuration.
In the final video of this chapter, we combine a mobile robot with a manipulator and consider
their coordinated control.