Why does navsat_transform_node parameter wait_for_datum change world_frame->utm tf?
Why does selecting 'true' or 'false' for the navsat_transform_node parameter "wait_for_datum" change the published utm transform?
With:
- 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>
<node pkg="robot_localization" type="ekf_localization_node" name="ekf_se_map" clear_params="true">
<remap from="odometry/filtered" to="odometry/filtered_map"/>
</node>
<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"/>
</node>
<launch/>
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