2 added demo
source | link

I'm not sure if you still need it, but for those who happened to google for this thread, I have made one simple version of the algorithm.

Basically, it tries to build the map of the area while it cleans, and it uses the map to find the nearest unvisted node (part of the room). When it can't find any, that means the room is cleaned (or the uncleaned parts are inaccessible by the robot).

It might be slower than other algorithm, but it can guarantee coverage regardless of starting position, direction and obstacles.

https://github.com/dungba88/cleaner_robot

UPDATE: I have made a demo here and comparing it with a backtracking DFS. So even though my algorithm is O(N^2), it is much more optimized in terms of number of moves and turns.

http://jenova.dungba.org/cleaner/showdown

I'm not sure if you still need it, but for those who happened to google for this thread, I have made one simple version of the algorithm.

Basically, it tries to build the map of the area while it cleans, and it uses the map to find the nearest unvisted node (part of the room). When it can't find any, that means the room is cleaned (or the uncleaned parts are inaccessible by the robot).

It might be slower than other algorithm, but it can guarantee coverage regardless of starting position, direction and obstacles.

https://github.com/dungba88/cleaner_robot

I'm not sure if you still need it, but for those who happened to google for this thread, I have made one simple version of the algorithm.

Basically, it tries to build the map of the area while it cleans, and it uses the map to find the nearest unvisted node (part of the room). When it can't find any, that means the room is cleaned (or the uncleaned parts are inaccessible by the robot).

It might be slower than other algorithm, but it can guarantee coverage regardless of starting position, direction and obstacles.

https://github.com/dungba88/cleaner_robot

UPDATE: I have made a demo here and comparing it with a backtracking DFS. So even though my algorithm is O(N^2), it is much more optimized in terms of number of moves and turns.

http://jenova.dungba.org/cleaner/showdown

1
source | link

I'm not sure if you still need it, but for those who happened to google for this thread, I have made one simple version of the algorithm.

Basically, it tries to build the map of the area while it cleans, and it uses the map to find the nearest unvisted node (part of the room). When it can't find any, that means the room is cleaned (or the uncleaned parts are inaccessible by the robot).

It might be slower than other algorithm, but it can guarantee coverage regardless of starting position, direction and obstacles.

https://github.com/dungba88/cleaner_robot