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

What is the purpose of splitting SLAM odom and EKF odom frames in waypoint_nav?

asked 2023-02-07 22:07:54 -0500

chased11 gravatar image

I have a robot somewhat similar to the clearpath husky . In their gmapping launch file, they have their odom frame set to 'odom_gmapping'. config shown here:

<!-- Setting frames -->
<param name="odom_frame" value="odom_gmapping"/>
<param name="base_frame" value="base_link"/>
<param name="map_frame" value="map"/>

But in every other instance (costmaps, EKF, etc.) the odom frame is set to 'odom'. What is the point of having two split odom frames like that?

I know that if they used 'odom' in both, then the map-> odom ekf and gmapping would broadcast the same transform, but I am confused how this works

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2023-06-05 01:28:51 -0500

Tom Moore gravatar image

My guess is that you are meant to run mapping as a discrete process, and then used that generated map for navigation later on. I don't think they intended for you to run mapping while you are running the nav stack.

In any case, tf wouldn't allow them to run at the same time. You cannot have two parents for a given frame in ROS, so if the normal nav is publishing odom->base_link and the mapping is publishing odom_gmapping->base_link, tf will complain and won't function correctly. The only excaption there is if they are inverting the publication of the odom_gmapping->base_link transform and instead publishing the base_link->odom_gmapping transform. In that case, they might want to have independent state estimates in two frames.

edit flag offensive delete link more

Question Tools

3 followers

Stats

Asked: 2023-02-07 22:07:54 -0500

Seen: 71 times

Last updated: Jun 05 '23