robot localization- using world frame
Hi, I am using robot localization for my robot.
I have two filters, one for Odom->baselink and one for map->odom
The map topic is from a SLAM node.
In my system, I have a world frame that represents a shared map.
I have a static tf publisher for world->map
I want that the output of the filter will be on the world frame.
I changed the configuration to be like this:
map_frame: map
odom_frame: odom
base_link_frame: base_link
world_frame: world
I got "Odometry message frame_id was world, expected map or doom" error.
How can I get the output of the filter on the world (earth) frame?
Thanks.
I have the same issue. Were you able to figure out the solution?
Robot localization only accepts world frame as map or odom: - If you set world_frame: map, robot_localization will publish the estimated odometry in the map frame and will publish a tf from map->base_link. - If you set world_frame: odom, robot_localization will publish the estimated odometry in the odom frame and will publish a tf from odom->base_link. - If you have 2 instance of state estimation nodes (one for local and for global) global ekf should be world_frame: map and will publish odometry in map frame but tf map -> odom; while local ekf should be set world_frame: odom and will publish odometry in odom frame but tf odom -> base_link.
If you wish to have odometry in another frame that is not odom/map you can convert it using the static transform that you define.