I am implementing a basic robot which uses a SLAM algorithm to produce an occupancy grid of it’s environment. It is very simple with no probabilistic aspect, simply an enum to represent Empty, Occupied, Unexplored, Unreachable etc.
I was wondering if there is a well known algorithm to find the shortest path necessary to visit all of the grid cells once (it’s a Vacuum cleaner!). Is this the Travelling Salesman Problem?
I have researched a couple of solutions based on Graphs, for example finding Hamiltonian Cycles, but i wondered if there was anything which efficiently worked on Grids directly.
The grid will be around 250×250 cells.
Thanks!
Just thought id add my solution to this unanswered question – Most algorithms I tried out were just too computationally complex. I settled on an approximation of the maximum-coverage path which was quite efficiently computed using the reverse wavefront algorithm.
Using this algorithm I was able to construct a maximum-coverage path of a 250×250 array of grid cells in around 5 seconds, which was certainly acceptable in my scenario.