This package provides a ROS nodelet that reads navigation satellite data and publishes nav_msgs/Odometry and tf transforms. The position is converted to Universal Transverse Mercator (UTM) coordinates relative to the local MGRS grid zone designation.

ROS nodelet interface

ROS nodelet for converting navigation satellite data and inertial measurements into odometry and transforms.

Subscribed Topics

gps (sensor_msgs/NavSatFix)
  • Latitude and longitude fix from navigation satellite.
imu (sensor_msgs/Imu)
  • Inertial measurements.

Published Topics

odom (nav_msgs/Odometry)
  • Three-dimensional odometry for navigation, using UTM coordinates.

Provided tf Transforms

  • 3D pose of vehicle in UTM grid relative to the WGS 84 ellipsoid. The actual transform frame ID names come from the header.frame_id of the /gps (parent) and /imu (child) messages.


Run the nodelet in its own separate process, publishing odometry and transforms for reported robot positions and inertial measurements.

$ rosrun nodelet nodelet standalone navsat_odom/nodelet


  • The initial version does not report linear velocity in the nav_msgs/Odometry message.

  • Strange things are likely to happen if the robot moves from one UTM grid zone into another. These grid zones are roughly rectangular with hundreds of kilometers to a side.

Wiki: navsat_odometry (last edited 2011-07-12 17:55:48 by JackOQuin)