Panasenko Viacheslav
1. Introduction
In order to make this assignment I decided to start with overview of the existent reallife vacuum cleaner robots. First of all, they gave me an inspiration for this work. Secondly, this overview allowed me to see what types of sensors are used for vacuum cleaner robots. And last, but not least it allowed me to analyse their algorithms. I picked a few robots, including the most popular "iRobot Roomba"[1], its main competitor Neato XV-11[2] and two other interesting robots - Samsung Navi[3] and P4920 (from P3 International)[4]. First of all, all the robots have different equipment and algorithms, but something in common (except the last one) - wall and stairs detection, possibility of returning to the charging dock. Roomba doesn't seem to have any navigational advancements (see fig. 1), XV-11 has Room Positioning System(RPM) based on laser mapping, NaviBots use "Visionary Mapping System" with built-in camera, while P4920 is the simpliest robot without additional sensors.
Figure 1 - Roombas cleaning trace [6] Neato and Samsung use different approach for navigation and they are worth a bit more detailed description. XV-11 starts its work by scanning a room making the map with objects (furniture) and doorways. Than it creates an optimal path to clean the mapped area, but starts with the perimeter. When one room is cleaned the robot uses data about doorway position to move to another room. [5] Samsung NaviBots use completly different approach for making the map of a room. It uses built-in camera on top of its robotic body to create maps and navigate through rooms basing on the picture of ceiling. Strange approach, but on the web page, Samsung claims that it helps to achieve 93% of efficiency, comparing to 70% of conventional cleaning robot (in a 5*5 m room, given 20 minutes for the cleaning task). The most interesting robot from the point of view of this assignment is P4920 one. For a very simple reason - it uses minimum of sensors, but provides different movement modes. They are - random, spiral and along the wall (fig. 2).
Figure 2 - Automatic operation modes of a P4920 [4] What's interesting that were the first three algorithms that came to my mind when I saw the assignment.
2 Algorithms review
Generally, there are two main types of algorithm for cleaning rooms - random and mapping. Random algorithm is not an intellectual one, so I will focus on mapping algorithm. For this group of algorithms we should assume that robot has at least some internal memory to save information, for example visited places. It could be considered a low-cost improvement since memory modules are relatively cheap. Also, Id assume that our agent cleans while moving (most of real life robots work in such a way). The first algorithm I thought about, was as following: go through house along walls, than go mark visited places as walls and move along new walls. The weakness of this method is obvious - after a very first round robot can mark some doorways as walls, so he couldnt go further. A second algorithm was square spiral, that could be easily expressed in the following code:
a lecture we discussed application of this method for cleaning one room. However, cleaning many rooms is much more complex task, so I think that the combination of algorithms could be used. I suggest two algorithms - first Id name sequential and the other planned. The idea of sequential algorithm is to clean one room and than move to another room and clean it. So, to define a room I suggest using 3 corners. 1. Move to a corner. 2. Turn. 3. Start measuring distance. 4. Move till the next wall. 5. Save distance. 6. Turn. 7. Start measuring distance. At this point the agent knows the size (area) of a room (multiplication of measured distances) and is in a position to start cleaning room. 8. Start cleaning with modified snake algorithm. 9. Finnish when hitting corner (after turn agent couldnt do a step) and/or reached previously measured size of the room. Modification of snake algorithm means that on each round from wall to wall agent controls that he didnt exceed previously measured value between the walls. This allows the agent to focus on cleaning inside one room. 10. Return to the start position. 11. Use algorithm of left-handed movement along the wall to find a doorway to next room. 12. Go to 1. After finishing work in one room a robot will move to another and will do the algorithm again.
Planning algorithm uses different approach. First of all, the agent moves along the wall till it makes a closed path. After this stage the agent have boundaries - a map of the house and its own position (for positioning we can use sensor that tracks movement of the robot). At this stage agent should divide the space into a set of rectangles. Than the agent should visit every rectangle and clean it using, for example snake algorithm.
3 Conclusion
Cleaning of unknown environments could be solved with different coverage algorithms, however most of them have their own pros and cons, but more important they have a set of limitations or prerequisites. Its a field of current interest for scientist and there are interesting papers published on this topic ([8, 9]). In this document I presented a brief overview of modern autonomous vacuum cleaning solutions and proposed algorithms that could be used for this problem.