ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Hi, I did a sloppy version of that on a turtlebot2 a year ago but I don't think that I still have the code.
What I did is at each step I find the closest unknown point (at least a meter away from the turtlebot) on the map and run an A* on it. And loop until either everything is covered or unreacheable.
There are more efficient ways to do it using entropy (e.g. http://www2.informatik.uni-freiburg.de/~stachnis/pdf/stachniss03iros.pdf).

NOTE: if you use only odometry and gmapping you're map will certainly be drifting over time so coming back to the base station might be more challenging that it seems (solved it by putting ar markers every ten meters to stabilize the map, but there must be more elegant way to do it).
Also don't forget to inflate your obstacles to avoid unwanted collisions. Otherwise your robot might spend a lot of time trying to explore uneachable areas.

This is just to get you started, I guess that many people will have more efficient/reliable solutions. Hope this helps,

Hi, I did a sloppy version of that on a turtlebot2 a year ago but I don't think that I still have the code.
What I did is at each step I find the closest frontier point (free cell neighour to an unknown point cell) (at least a meter away from the turtlebot) on the map and run an A* on it. And loop until either everything is covered or unreacheable.
There are more efficient ways to do it using entropy (e.g. http://www2.informatik.uni-freiburg.de/~stachnis/pdf/stachniss03iros.pdf).

NOTE: if you use only odometry and gmapping you're map will certainly be drifting over time so coming back to the base station might be more challenging that it seems (solved it by putting ar markers every ten meters to stabilize the map, but there must be more elegant way to do it).
Also don't forget to inflate your obstacles to avoid unwanted collisions. Otherwise your robot might spend a lot of time trying to explore uneachable areas.

This is just to get you started, I guess that many people will have more efficient/reliable solutions. Hope this helps,