0
$\begingroup$

Rosanswers logo

I am writing a SLAM system myself. It is a seperate module not running under ROS. We have a tcp/ip node to send and receive msgs.

We have successfully built the map. Now we are going to use our own map to do a navigation.

Let me simply describe my system..

Odometry and image are sent to the SLAM system to build map. We use this map do localization and path planning, so the current_pose and global path are generated and sent back to navigation package. We use fake_localization to subscribe to the base_pose_ground_truth (just derived from our current_pose) and publish the amcl_pose.

I hope to run the whole system without gmapping and amcl.

First problem. Currently, we cannot perform a global planning without lauching gmapping. (we wrote our own node from a carrot_planner. However it is only a plug-in, i am not sure if only the gmapping can call it).

Second problem. It is OK to run gmapping, as long as we are not using its own global planner, it wont affect our system. However, when we launch fake_localization and gmapping together, it seems the map to odom link is controlled by gmapping. That means the gmapping still estimates the robot current_pose and make compensation through change the map_to_odom link. May I know how to disable this function? Or how to let fake_localization control this TF? I hope researchers who is doing simulation can help me out, you should be more familiar with this TF tree.

So finally come to the question in the title. Are both Gmapping and amcl publishing Map to Odom TF? Is there any confliction?

I have searched for this for quite a while, not sure whether I have missed out some important things or I have not found it. Any related link is welcome to paste as an answer. Lots of thanks.


Originally posted by tianb03 on ROS Answers with karma: 710 on 2013-03-19

Post score: 0


Original comments

Comment by davinci on 2013-03-19:
perhaps you can check this with rostopic info (shows publishers and subscribers)?

Comment by tianb03 on 2013-03-19:
Hi davinci, I think I asked a question that I have already known the answer. This one can be checked using tf view_frames when I launch them seperately. I just do not know how does ROS choose between gmapping and amcl for this TF

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Are both Gmapping and amcl publishing Map to Odom TF? Is there any confliction?

Yes, both are. You wouldn't typically run both at the same time. gmapping performs SLAM (builds a map and localizes simultaneously) while amcl performs localization on a pre-existing map.

The choice of which on to run depends on what you are trying to do. It sounds like maybe you don't want to run either of them, because you're writing your own SLAM system. If that is the case, make sure your SLAM system publishes a map that is usable by the path-planners in the ROS navigation stack. Take a look at map_server for example.


Originally posted by Ivan Dryanovski with karma: 4954 on 2013-03-19

This answer was ACCEPTED on the original site

Post score: 3


Original comments

Comment by tianb03 on 2013-03-19:
Hi Ivan, thanks for your advice. If I launch the navigation package without both of gmapping and amcl, when I set a goal there is no global planning. We do not have a map, as the SLAM is running not in ROS and the map is not a grid map. I only want to integrate the local planner into our system

Comment by Ivan Dryanovski on 2013-03-19:
As far as I know the local planners that come in ROS require the grid map. If you have a different type of map, you might consider also implementing your own planner. Maybe someone else could provide advice on this too?

Comment by tianb03 on 2013-03-19:
I have not read through the base_local_planner carefully. In description it says local planner only takes in current perceived obstacles. I hope I can reuse the code and the navigation package structure. Because currently this is not our research focus...

$\endgroup$

Your Answer

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