While going through the Sebastian Thrun‘s AI for Robotics class, I came across a programming assignment that required implementing basic kinematics of a simple robot in 2D space. The robot uses bicycle model. Here is the underlying geometry that give rise to the basic equations used in the class.

Figure 1: A robot (car) movement in 2D space.

As shown in Fig. 1, the robot lies in a global cartesian coordinate space and is characterized by its position and heading, , where is the heading relative to -axis. The length of the robot is and its velocity along heading direction is .

Let’s assume the robot’s origin (center of rear axle in Fig. 1) moves a distance along the heading direction. We are interested in the turn angle that the robot incurred during the movement.

Fig. 2 shows the bicycle model of the robot in Fig. 1. From Fig. 2, the angular velocity of the robot can be expressed as

, (1)

where is the radius of turn.

Figure 2: Bicycle model of the robot (car).

We can also write,

. (2)

Using (1) and (2), the turn angle is given by

, (3)

where integration is performed over the time during which the rear wheel moves distance .

Coordinates of center of turn can be easily computed using Fig. 2,

,

.

New heading of the robot after the turn can be obtained by adding from (3) and original heading . Updated robot position and heading are given by

,

,

.

From (3), when . We can approximate this as just a motion in straight line along heading direction. So,

,

,

.

### Like this:

Like Loading...