Anda di halaman 1dari 4

Room coverage algorithm for a vacuum cleaner agent

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).

Room coverage algorithm for a vacuum cleaner agent


Panasenko Viacheslav

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:

for (int i = 1; i < sizeOfRoom; i++) { move(i); turnRight(); move(i); ruenRight(); }


However, this algorithm aslo has its own disadvantages. First of all, it could be good only if we are in the center of square room and it doesnt utilize doorways. Secondly, sizeOfRoom variable could be (and most probably will be) unknown. Its worth saying with some improvements and mapping this algorithm could be applied, but this is not the best solution. The last one, among simple algorithms is so called snake. This algorithm is quite simple and could be expressed in following words: move to a wall -> turn -> move one step -> turn and switch turning direction to oposite -> move to next wall. During

Room coverage algorithm for a vacuum cleaner agent


Panasenko Viacheslav

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.

Room coverage algorithm for a vacuum cleaner agent


Panasenko Viacheslav

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.

4 References and links


Links 1. iRobot web site - http://www.irobot.com/ 2. Neato web site - http://www.neatorobotics.com/ 3. NaviBot page on Samsung web site - http://www.samsung.com/sg/Navibot/ 4. P3 International web site - http://www.p3international.com/products/consumer/ p4920.html 5. Laser-Guided Robotic Vacuum Cleaner (video) - http://www.youtube.com/watch? v=2YuUiw4oK0U 6. Roomba time laps - http://en.wikipedia.org/wiki/File:Roomba_time-lapse.jpg 7. Joseph L. Jones et al. (2008) Method and system for mult-mode coverage for an autonomous robot - US patent number 7429843. 8. Myung, H., Jeon, H. amd Jeong, W. (2009). Virtual Door Algorithm for Coverage Path Planning of Mobile Robot - IEEE International Symposium on Industrial Electronics. 9. Baek, S., Lee, T., Se-Young, O.H. Ju, K., (2011). Integrated On-Line Localization, Mapping and Coverage Algorithm of Unknown Environments for Robotic Vacuum Cleaners Based on Minimal Sensing - Advanced Robotics, vol. 25, pp. 1651-1673.

Anda mungkin juga menyukai