robot_localization failed to transform warning
I am incorporating gps into robot_localization by running two robot_localization nodes, the first one for continuous data and a second one that takes odom outputs of the first node as well as gps data. The output from the gps robot_localization seems to be working (although the pose jumps around a lot, I suppose that is gps noise, don't know) but I am getting warnings that occur about every couple seconds. They do not happen with every gps update:
[ WARN] [1439616317.672653784]: WARNING: failed to transform from ->base_footprint for odom0 message received at 1439616317.433094978. The message frame_id is empty.
[ WARN] [1439616320.672574210]: WARNING: failed to transform from ->base_footprint for odom0 message received at 1439616320.448824882. The message frame_id is empty.
[ WARN] [1439616322.672615913]: WARNING: failed to transform from ->base_footprint for odom0 message received at 1439616322.471970081. The message frame_id is empty.
In this case, odom0 corresponds to the gps input (as sent from navsat_transform via the topic /odom_navsat). odom1 is the odom from the first robot_localization node (sent via the topic /odom_ukf). The world frame for the gps robot_locaization is set to the map frame; this should be fine, since the first robot_localization broadcasts the transform from odom->base_footprint. As far as I can tell, the transform tree is good and all the transforms are getting broadcast correctly, including the one from gps -> odom that is being done by the gps robot_localization.
Here is a link to a bag file as well as both of the robot_localization launch files and also the navsat_transform launch file and the transform tree: data_folder
I'll look into this tonight. Just looking at the error makes me wonder if you turned on differential mode for
odom0
. Did you?No, odom0 (the gps feed) has both differential and relative = false
I am also sometimes seeing vy run away to large values after a while. There are no vy inputs coming into the filter, so I don't know where it is coming from. The odom1 input (from the first robot_localization) has differential set to true. Bag file with "large_vy_component" is in the same folder.