How to run navigation and SLAM gmapping simultaneously
Hello everyone
I have been trying to run gmapping and navigation simultaneously, in simulation on gazebo. I am using the turtlebot3slam.launch file to launch the gmapping slam, and for navigation, I have removed the amcl and mapServer lines in the turtlebot3navigation.launch file. I am using default parameters, i.e. Local Costmap has staticmap false and Global Costmap has staticmap true. I first wanted to ask if Global Costmap should also have staticmap = false. When I try to run them together, there are no errors, but the robot does not seem to navigate properly when I give random goals. Specifically, I tried giving goals such as x=0.3,y=0 , x=0,y=0.3 and the robot moves in the same way in both cases.
I think I am missing out on some parameters for navigation which should probably be different from default in tb3, since I am trying to use it with Slam in real time.
Any help would be greatly appreciated! Thanks.
Asked by aditi741997 on 2020-09-04 11:03:00 UTC
Comments
Iam not sure about this, but the usual setup takes in a already build map and goes from there, not updating the map along the way. This would mean you dont have a map at the beginning and it never updates, thus navigation has no map at all, being lost in space. I have seen other slam packages being used for slam navigation combined with exploration alghorythms, but not gmapping. This way or the other Iam highly confidenct that this would need much more tweeking of the nodes then just the mentioned launchfile alterations. At first I would try with an empty but existing map on the map server and see if this solves the x/y goal problem.
Asked by Dragonslayer on 2020-09-05 09:15:26 UTC
Thankyou for the response! I did see that for the global costmap [within navigation], if the static variable is true, it has a static layer plugin, which subscribes to the /map topic, i.e. there is a callback in the global costmap which is receiving the updated maps [being published by slam node], but probably the callback isnt really doing anything? I am referring to the incomingMap function in the static layer within costmap2dros. It would be great if it could be confirmed that navigation is not able to use the updated map...
Asked by aditi741997 on 2020-09-05 12:29:41 UTC
Also, could you point me to any slam + navigation + exploration package? I am planning to try nav2d, but it seems to be using stage for simulation which might not work on ros melodic/kinetic
Asked by aditi741997 on 2020-09-05 13:08:43 UTC
Iam not sure about the map topic. But in usual configuration one gets the map once from the map server, and thats it. I think its highly likely that you would have to enable the update map feature and configure navigation to subscribe and use it instead of just the map server. You only mentioned the "little" changes to the launchfile I expect that not to be enough for this very different usecase. I think to remember that slam packages with integrated odometry were used. rtabmap or cartographer for example. I dont know a package to point you to. But you really only need a exploration algo, should be easy to find.
Asked by Dragonslayer on 2020-09-06 10:20:10 UTC