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

How to publish TF for slam_gmapping

asked 2013-09-01 16:30:54 -0600

clonzz gravatar image

updated 2013-09-01 16:39:07 -0600


I completed the tutorial on [slam_gmapping using Logged data]. When I play the basic_localisation_stage.bag and run "rostopic echo tf", I realised that there are 3 messages published every 100ms:

  1. odom-->base_footprint
  2. base_footprint-->base_link
  3. base_link-->base_laser

So, if i want to run gmapping with TF, do I need to publish all those three types messages in every cycle? (2) and (3) have fixed values, and may be unneccessarily to be published again. So, they can be published only at the beginning of the process.

I am not sure how the slam_gmapping works with the TF, as in does it subscribe all the three messages in every cycle? I need to minimise data transfer since I am using Labview to transfer the odometry data to ROS.

Any help would be much appreciated. Thanks

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2013-09-02 00:07:39 -0600

dornhege gravatar image

You only need to provide some transformation chain from /odom to the laser frame. It doesn't matter what that is and how it is constructed. Usually it depends on the robot setup.

edit flag offensive delete link more


Its also important, that there is some kind of base_link. Currently released gmapping uses odom -> base_link tf for motion estimation. Newest version from git uses odom -> laser frame for motion, but needs base_link -> laser to find out about the orientation of the laser.

Ben_S gravatar image Ben_S  ( 2013-09-02 00:16:43 -0600 )edit

answered 2018-06-28 11:39:01 -0600

Mark Rose gravatar image

For fixed transformations it's usually easiest to create a URDF file and let robot_state_publisher publish the TF transforms. You need to publish odom-->base_footprint from your odometry system, but the others will be handled by robot_state_publisher. The fixed transforms need to be published periodically because of the timing requirements of TF (which are controllable when by the parameters used when asking for a transform). The default publish rate is 10Hz, I believe, in robot_state_publisher.

edit flag offensive delete link more

Question Tools



Asked: 2013-09-01 16:30:54 -0600

Seen: 472 times

Last updated: Jun 28 '18