Navsat transform and robot_localization ekf implementation questions
Two questions:
1) navsat_transform_node
requires an accurate world heading, why?
a sensor_msgs/Imu containing an accurate estimate of your robot’s heading
Since GPS systems report a position (no orientation) I am unclear as to why the navsat_transform_node
requires an orientation? I understand we are trying to get initial orientation of the vehicle to match so when a GPS position comes in, if after the initial state estimation, the following GPS odometry from /fix
matches the coordinate frame of map
. In our test area we have very weird magnetic disturbance due to metals etc. that are in the soil. This leads into question 2.
2) ekf_localization_node
requires a world oriented heading reference (for the outer layer that is tied back into navsat_transform_node
), why?
Shouldn't the EKF with position fused data be able to compute the vehicle orientation? For a comparison, certain Novatel GNS systems have no magnetometer in them. You drive the system forward for some distance, then in circles. It then computes an orientation from this. Is it possible to do this with ekf_localization_node
?
3) navsat_transform_node
only publishes the GPS messages at some set frequency, why doesn't it publish them as soon as they are received?
If the frequency
param is low, there can be a little bit of latency between the received GPS message and the output of navsat_transform_node
. I assume this implementation detail is due to the use of the publish_filtered_gps
param.