gmapping slam with multiple turtlebot3's as dynamic obstacles

asked 2023-04-22 00:22:14 -0500

hunterlineage1 gravatar image

I am using gmapping slam with 3 turtlebot3 robots in ROS melodic and gazebo. I have the namespaces, navigation, move_base, gmapping slam, multirobot_map_merge, and laser_filters set up correctly for each robot and it runs as it is. So each turtlebot3 creates its own gmapping slam occupancy grid map (think of it as a submap) and multirobot_map_merge merges the map. When the turtlebot3's are near each other and are moving in different directions, their individual maps get disturbed and the mapping and localization of each robot becomes inaccurate. I understand this happens because gmapping uses the static world assumption (i.e. moving objects are not modeled in any way). From "SLAMer and moving objects?" I see that gmapping should be able to handle this violation but it is failing in every case I run multi-robot gmapping instances. I also tried using laser_filters to run the LaserScanSpeckleFilter filter and it still does not work.

This is what it looks like: image description

image description

I am thinking of an approach to solve this: Each robot subscribes to the others' odometry to know its pose. If any combination of robots are within a a distance of their laser scan of each other, then their locations must not be taken to be obstacles in gmapping slam. However, would this affect the DWA local planner? Would the robots still be able to do collision avoidance with each other? Is there a better approach to solving this problem?

edit retag flag offensive close merge delete