Rosanswers logo

I'm building a simple mapping and navigation robot using iRobot create as base and neato xv-11 lidar. The mapping packages I'm testing are gmapping and hector-mapping. Both SLAM packages appear to publish tf mapping from map to scanmatcher_frame. My iRobot create driver (from Brown university) publishes transform from odom to base_link. I have a robot state publisher that publishes tf from base_link to base_laser, and I setup XV-11 to publish on the base_laser frame.

AFAIK, typical laser mapping robot frames are setup to be map -> odom -> base_link -> base_laser, where SLAM or localization packages publishes tf from map to odom.

There are also packages that fuses IMU, odom, visual odometry into one odom.

If I'd run SLAM and have IMU/wheel encoder-based odom, even visual odometry - how to I link them together? And - as titled - where does scanmatcher_frame fit in?

Originally posted by oscillative on ROS Answers with karma: 13 on 2015-04-12

Post score: 1

Original comments

Comment by Tom Moore on 2015-04-17:
The packages that fuse odometry and IMU data would produce the odom->base_link transform here. You would need to turn off the broadcast of that transform in your iRobot driver. There may be a parameter to do so. I can't speak for the SLAM packages.

Comment by oscillative on 2015-04-21:
Thanks! That was the key to use robot_localization as odom->base_link transform authority.


1 Answer 1


Rosanswers logo

I sounded confused, but I feel much better now :) To answer my question, scanmatcher frame is there for debugging purpose - it's what map-based localization think base_link is, and realized as tf transform between map and odom frames.

The iRobot driver I used has a driver.py wrapper that publish odometry but also a tf message between odom to base_link. I had to comment out the tf message part if I wish to fuse wheel/imu/vo odometry using robot_localization or similar filters.

Originally posted by oscillative with karma: 13 on 2015-04-21

This answer was ACCEPTED on the original site

Post score: 0


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.