Movement model & Calibration

Movement model

For localization, the robot will need (relatively) precise movement model.

The model we use is parametrized using five variables: . In this model the robot consists of two perfectly parallel wheels placed at wheel base distance from each other. and are distance travelled per encoder tick for each wheel. These values are not necessarily equal (because of manufacturing inaccuracies). Distance measurement uncertainty is modelled using a Gaussian random variable for each wheel.

Odometry values come every interval in the form of encoder ticks, counts for left and right wheel are and . Distance travelled by a wheel is from a following distributions:

During a single interval the robot is assumed to travel on a circular arc with length and angle .

Differential drive model

Code that handles the calculations mentioned in this section is in the file differential_drive.py

Drive calibration

Because of manufacturing inaccuracies, I don’t know the precise dimensions of the robot. To do this, I wrote a tool that matches replays to known travelled pattern (calibration.py).

WRITE THIS!

Calibration pattern