Skip to content

Odometry

Link to module repo: Odometry


Overview

The odometry block reads in a local twist message. This message gets transformed from the robot reference frame to the global reference frame. Next, this twist vector is summed up in time discrete steps to calculate the robots global pose. The block outputs for vectors containing the twist (linear and angular part) and the pose (linear and angular). Further it outputs the covariances for the twist and the pose. Note: the covariances of the twist are currently set to all zeros. However, they should be calculated from incoming twist messages.

block.drawio

Configuration

A config/config.json configuration file is given with the following content:

{
    "odometry": {
        "linear_error": 0.03,
        "linear_vertical_error": 0.0,
        "angular_error": 0.1,
        "minimal_est_gamma_error": 0.01
    }
}

The settings are as follows

  • \(linear\_error = 0.03 [m] \pm error\), when robot drives 1 m
  • \(linear\_vertical\_error = 0.0 [m] \pm vertical\ error\), when robot drives 1 m
  • \(angular\_error = 0.1 [rad] \pm error\), when robot turns 1 rad
  • \(minimal\_est\_gamma\_error = 0.01 [rad]\)

Important

Make sure to override the setting for the odometry for your rover settings.