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

Laser_scan_matcher gmapping and stage

asked 2011-10-29 00:14:40 -0500

fmarques gravatar image


I'm trying to build a system utilizing gmapping and laser_scan_matcher ( laser_scan_matcher to improve the odometry of my robot). I've already made the system work utilizing the bag that came with laser_scan_matcher. Using

Fixed_Frame: odom Base_Frame: base_link

But when I try to use the same setup in conjunction with stage, a concurrent tf transform problem arises.

I kind of understand the problem the laser_scan_matcher publishes the odom to base_footprint and stageros does also.

But I'm lost how to solve it i tried to modify stageros to not publish the transform but laser scan matcher needs the inicial transform.

Thanks in advance

edit retag flag offensive close merge delete


Unfortunately, `stageros` uses hardcoded frame names. But `gmapping`'s frame names are configurable via parameters. Can you change the frame names used by `laser_scan_matcher`? If so, you should be able to configure the system to run all three components without conflicts.
Brian Gerkey gravatar image Brian Gerkey  ( 2011-10-31 06:25:42 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2011-10-31 00:39:27 -0500

I kind of understand the problem the laser_scan_matcher publishes the odom to base_footprint and stageros does also.

That would create a problem, yes. Only one node should be publishing that transform. I'm not familiar with how stageros works, but if it's publishing the odom->base_link transform, you need to disable that.

laser scan matcher needs the inicial transform.

That shouldn't be the case. The only tf that laser_scan_matcher requires is base_link -> laser. That can be published by a static tf publisher, or by stage.

laser_scan_matcher is intended as a replacement for odometry, for robots without odom sensors. If your robot already has an odometry sensor, then you can provide its measurements as an optional input to laser_scan_matcher, and the scan matcher will refine them. The odom sensor's measurements would need to be published on a topic (not as a tf). I would get the base case working first though (no odometry) and then attempt this case.

Could you describe your use case in a little more detail? You are working with simulated data? What sensors does the robot have?

Also, attaching the console output would be helpful, so we can see what warnings/errors you are getting.


edit flag offensive delete link more


So I did change the stageros cpp to not publish the odom-> base_fooprint( base_link) and that solved the problem everything running smooth now. It works fine using the odom topic or not. So thank you very much.
fmarques gravatar image fmarques  ( 2011-10-31 07:54:30 -0500 )edit

Question Tools

1 follower


Asked: 2011-10-29 00:14:40 -0500

Seen: 1,075 times

Last updated: Oct 31 '11