Robotics StackExchange | Archived questions

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.

Asked by TzviH on 2021-04-14 02:00:04 UTC

Comments

I have the same issue. Were you able to figure out the solution?

Asked by Muhammad Suleman on 2021-07-26 15:35:02 UTC

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.

Asked by xaru8145 on 2022-06-04 19:12:58 UTC

Answers

It is my impression that you are not configuring your state estimation node properly, please read the documentation related with the frame parameters.

In regards to your custom world frame static TF, what you might be interested in is enabled by the broadcast_utm_transform_as_parent_frame parameter, instead of defining it yourself. Additional reading here details how the robot_localization package handles TFs while following the topic of integration of GPS data.

Asked by joao.aguizo on 2022-05-26 06:27:08 UTC

Comments