0
$\begingroup$

Rosanswers logo

Hi,

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


Originally posted by fmarques on ROS Answers with karma: 92 on 2011-10-29

Post score: 1


Original comments

Comment by Brian Gerkey on 2011-10-31:
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.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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.

Ivan


Originally posted by Ivan Dryanovski with karma: 4954 on 2011-10-31

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by fmarques on 2011-10-31:
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.

$\endgroup$

Your Answer

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