How to instruct a robot to cover the whole mapped 2D area?
Hello experts,
I've been searching and trying to figure out how to implement a SLAM based coverage method using ROS on a Turtlebot, that in which the robot builds a map of its workplace and visits every unvisited area of the map (e.g. used floor cleaning applications). You can see what im trying to explain in the following video link:SLAM based cleaning video.
In theory, I know that I have to implement a mapping method (gmapping) to build the map and to Transform robot's Pose to /map and save them or assign a higher cost to the visited areas on the map.
- I don't know how to instruct or set different dynamically changing goals in the path planner node(s) for the robot to go over unvisited areas in order to give me a complete coverage of the mapped area. (as you could see in the video)
Any ideas or pointing me to the correct direction would be highly appreciated. ps: i'm not a pro programmer but i know my way around it.
EDIT1:
I figured out that one good way to achieve this goal is to use Spanning Tree Coverage (STC) Algorithm, for that one need to export FREE map cell coordinates and build the spanning tree that robot has to navigate through to cover the whole (Unoccupied) area. An explorer node can be used initially to build the map of the environment, but next step would be exporting the FREE Cell coordinates and Spanning Tree (or Greedy) algorithm on the cell coords. STC Paper - any help or guidance in those areas are highly appreciated.
Cheers.