“Forward kinematics” is the process of calculating the new configuration of a rigid body given the control inputs to its actuators. In other words, knowing what control inputs have been provided to a robot, e.g., the speed of its wheels, we can predict where the robot is gonna be next.

The lecture “Forward and Inverse Kinematics” provides an introduction to this problem for simple differential wheel robots. The goals of this lecture are to

- briefly review basic concepts including coordinate frames, non-holonomic mechanisms, and the forward kinematics of a differential wheel-drive platform
- introduce forward kinematics of car-like mechanisms such as simplified Ackermann steering

## Car-like steering

Differential wheel drives are very popular in mobile robotics as they are very easy to build, maintain, and control. Although not holonomic, a differential drive can approximate the function of a fully holonomic robot by first driving on the spot to achieve the desired heading and then driving straight. Drawbacks of the differential drive are its reliance on a caster wheel, which performs poorly at high speeds , and difficulties in driving straight lines as this requires both motors to drive at the exact same speed.

These drawbacks are mitigated by car-like mechanisms, which are driven by a single motor and can steer their front wheels. This mechanism is known as “Ackermann steering” and illustrated to the right. Ackermann steering should not be confused with “turntable” steering where the front wheels are fixed on an axis with central pivot point. Instead, each wheel has its own pivot point and the system is constrained in such a way that all wheels of the car drive on circles with a common center point, avoiding skid.

## Forward Kinematics of Ackermann Steering

As the Ackermann mechanism lets all wheels drive on circles with a common center point, its kinematics can be approximated by those of a tricycle with rear-wheel drive.

Let the car have the shape of a box with length between rear and front axis. Let the center point of the common circle described by all wheels be distance from the car’s longitudinal center line. Then, the steering angle is given by

Let the robot coordinate system be centered on the car’s rear axis. Then, is the car’s speed given by the speed of the car’s engine. We can now derive expressions for the car’s position in world coordinates . (Remember: as the car is non-holonomic we can derive the kinematics only for speeds, the derivative of position, without integrating.)

The last expression directly follows from the rule that the tangent of an angle is equivalent to the ratio of its *opposite* to *adjacent* edges. At this point it is worth recalling that , no matter what, as a simple model does not allow the robot to skid. Therefore, the steering angle only affects the rotation of the car.

At this point, you have expressions for predicting the movement of the car’s bounding box through space as a function of speed and steering angle. The angles of the left and the right wheel, and can be calculated using the fact that all wheels of the car rotate around circles with a common center point. With the distance between the two front wheels , we can therefore write

with ,

again following the rule *tangent = opposite / adjacent*.

This is important to calculate the resulting wheel angles and to test whether they are within the constraints of the actual vehicle.

# Take-home lessons

- Forward kinematics is the process of expressing the motion of a robot in its coordinate frame, and eventually the world coordinate frame, based on the speed of its actuators.
- As the order in which actions are taken matters for the final position of a non-holonomic vehicle, the forward kinematics only relate speed to speeds.
- Ackermann-steering (a car-like steering mechanism) can be approximated by the kinematics of a tricycle as all wheels of an Ackermann vehicle drive on circles with a common center-point.

# Literature

The content of this lecture is inspired from and explained in greater depth in Introduction to Autonomous Mobile Robots (Intelligent Robotics and Autonomous Agents series) by Siegwart, Nourbakhsh and Scaramuzza in Sections 3.2-3.4, and in Planning Algorithms by Steven LaValle in Section 13.1.2.1.

Pingback: Advanced Robotics #3: Forward kinematics of manipulator arms | Correll Lab