Ask Your Question

Why does navsat_transform_node parameter wait_for_datum change world_frame->utm tf?

asked 2019-12-29 16:36:59 -0500

Marvin gravatar image

updated 2020-01-06 16:01:42 -0500

Why does selecting 'true' or 'false' for the navsat_transform_node parameter "wait_for_datum" change the published utm transform?


  • wait_for_datum: true, we get an odom->utm transform.
  • wait_for_datum: false, we get a map->utm transform.

Key navsat settings:

  • Odometry input with frame_id: map. (From the ekf_se_map node, world_frame: map)
  • broadcast_utm_transform: true
  • broadcast_utm_transform_as_parent_frame: false
  • datum: [56.yyyyy, -3.xxxxxx, 0.0]

Navsat node (plus 2 x ekf nodes): <launch> <rosparam command="load" file="$(find marvin_py)/config/dual_ekf_navsat.yaml"/>

    <node pkg="robot_localization" type="ekf_localization_node" name="ekf_se_odom" clear_params="true">
        <remap from="odometry/filtered" to="odometry/filtered_odom"/>

    <node pkg="robot_localization" type="ekf_localization_node" name="ekf_se_map" clear_params="true">
        <remap from="odometry/filtered" to="odometry/filtered_map"/>

    <node pkg="robot_localization" type="navsat_transform_node" name="navsat_transform" clear_params="true">
        <rosparam command="load" file="$(find marvin_py)/config/navsat_transform.yaml" />
        <remap from="/imu/data" to="/imu_9dof_data"/>
        <remap from="gps/fix" to="fix"/>
        <remap from="odometry/filtered" to="odometry/filtered_map"/>


Navsat_transform config (navsat_transform.yaml):

frequency: 30
delay: 1.0
magnetic_declination_radians: -0.03525565  # At datum coords below, Dec 2019
yaw_offset: 1.570796327  # IMU reads 0 facing magnetic north, not east
zero_altitude: true
broadcast_utm_transform: true
broadcast_utm_transform_as_parent_frame: false
publish_filtered_gps: true
use_odometry_yaw: false
wait_for_datum: false
datum: [56.yyyyyy, -3.xxxxx, 0.0] # Coords masked for online publishing
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2020-01-06 04:56:10 -0500

Tom Moore gravatar image

Can you just post your navsat_transform_node config in its entirety?

I think this looks like a bug. When we use wait_for_datum, we aren't setting world_frame_id_. We initialize it to odom here, but then we never update it, because we're not using the normal callback mechanism. We should add a parameter for that frame ID for manual datum setting so we set that accordingly.

Feel free to file a ticket, or better yet, a PR. :)

edit flag offensive delete link more


Navsat config file added as requested.

Marvin gravatar image Marvin  ( 2020-01-06 15:40:52 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2019-12-29 16:36:59 -0500

Seen: 297 times

Last updated: Jan 06 '20