# PR2 Base Odometry

Contents

## Introduction

This component computes odometry for the base.

**Status:** REVIEWED, NOT STABLE. .

## ROS API

#### Parameters

`odometer/initial_distance`(

`double`, default: 0.0)

- Initial value for the distance traveled by the robot (in m)

`odometer/initial_angle`(

`double`, default: 0.0)

- Initial value for the total angular distance traveled by the robot (in radians)

`odom/initial_x`(

`double`, default: 0.0)

- Initial X position of the robot in an odometric frame

`odom/initial_y`(

`double`, default: 0.0)

- Initial Y position of the robot in an odometric frame

`odom/initial_yaw`(

`double`, default: 0.0)

- Initial yaw position of the robot in an odometric frame

`ils_max_iterations`(

`int`, default: 3)

- max number of iterations for iterative least squares

`odom_frame`(

`string`, default: odom)

- The odometric frame id

`base_footprint_frame`(

`string`, default: base_footprint)

- The id for a frame that is below the base link and coincident with the ground

`base_link_frame`(

`string`, default: base_link)

- the id of the base frame on the robot

`x_stddev`(

`double`, default: 0.002)

- the standard deviation for odometry in X direction (higher values for this term implies odometry is doing worse)

`y_stddev`(

`double`, default: 0.002)

- the standard deviation for odometry in Y direction (higher values for this term implies odometry is doing worse)

`rotation_stddev`(

`double`, default: 0.017)

- the standard deviation for odometry in yaw (higher values for this term implies odometry is doing worse)

`cov_xy`(

`double`, default: 0.0)

- the off-axis values in the covariance matrix

`cov_xrotation`(

`double`, default: 0.0)

- the off-axis values in the covariance matrix

`cov_yrotation`(

`double`, default: 0.0)

- the off-axis values in the covariance matrix

`odom_publish_rate`(

`double`, default: 100.0)

- Odometry publish rate (Hz)

`odometer_publish_rate`(

`double`, default: 1.0)

- Odometer publish rate (Hz)

`state_publish_rate`(

`double`, default: 1.0)

- Odometry state publish rate (Hz)

`wheel_radius_multiplier`(

`double`, default: 1.0)

- A correction multiplier for the radius of the wheels on the robot

`caster_calibration_multiplier`(

`double`, default: 1.0)

- A correction multiplier for the reduction ratio for the caster rotation joint

**Example Configuration:**

base_odometry: caster_names: fr_caster_rotation_link fl_caster_rotation_link bl_caster_rotation_link br_caster_rotation_link type: Pr2Odometry ils_max_iterations: 3 odom_frame: odom base_footprint_frame: base_footprint base_link_frame: base_link x_stddev: 0.002 y_stddev: 0.002 rotation_stddev: 0.017 cov_xy: 0.0 cov_xrotation: 0.0 cov_yrotation: 0.0 verbose: false wheel_radius_multiplier: 1.0 caster_calibration_multiplier: 1.0 odom_publish_rate: 100.0 state_publish_rate: 1.0 odometer_publish_rate: 1.0

#### Published Topics

`<name>/odom`(nav_msgs/Odometry)

- Odometry is published on this topic in addition to being published directly to tf

`<name>/odometer`(pr2_mechanism_controllers/Odometer)

- The odometer published on this topic contains the total translational and rotational distance traveled

`/tf`(tf/tfMessage)

- Two transforms are published to tf, a constant transform from the base_footprint frame to the base_link frame and the transform from the odom frame to the base footprint frame.

`<name>/state`(pr2_mechanism_controllers/BaseOdometryState)

- The odometry state contains information about wheel drive errors (difference in predicted and actual wheel speeds) and longitudinal slip errors (amount by which the wheels are predicted to be slipping sideways)