ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

robot localization- using world frame

asked 2021-04-14 02:00:04 -0500

TzviH gravatar image

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?


edit retag flag offensive close merge delete


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

Muhammad Suleman gravatar image Muhammad Suleman  ( 2021-07-26 15:35:02 -0500 )edit

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.

xaru8145 gravatar image xaru8145  ( 2022-06-04 19:12:58 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2022-05-26 06:27:08 -0500

joao.aguizo gravatar image

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.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2021-04-14 02:00:04 -0500

Seen: 536 times

Last updated: May 26 '22