BSA: A Complete Coverage Algorithm Enrique González, Oscar Álvarez, Yul Díaz, Carlos Parra, Cesar Bustacara Grupos de Investigación SIDRe – SIRP Pontificia Universidad Javeriana Bogotá – Colombia egonzal@javeriana.edu.co Abstract – The Backtracking Spiral Algorithm (BSA) is a coverage strategy for mobile robots based on the use of spiral filling paths; in order to assure the completeness, unvisited regions are marked and covered by backtracking mechanism. The BSA basic algorithm is designed to work in an environment modeled by a coarse-grain grid. BSA has been extended to cover, not only the free cells, but also the partially occupied ones. In this paper, the concepts and algorithms used to extend BSA are introduced. The ideas used to extend BSA are generic, thus a similar approach can be used to extend most of the grid-based coverage algorithms. Finally, some simulation results that demonstrate that BSA performs a complete coverage are presented. Index Terms – Coverage Algorithm, Region Filling, Mobile Robots, Service Robots. I. INTRODUCTION The goal of robotics for the near future is to develop machines that collaborate with the humans in everyday tasks, thus generating new products that will be used massively. There are many emergent areas where robots can be used; however, some of the more promising ones include the automation of specialized tasks, at home or at work. In this kind of applications, the development is focused in the design of well-specialized robotic low-cost platforms that could be operated in a simple way by a non- qualified user. In some of these everyday tasks, the service robot must be able to autonomously perform jobs involving the filling/sweeping of the surface that is accessible. For instance, automatic floor cleaners, lawn mowers, agricultural robots, humanitarian demining and other surface maintenance or inspection machines must use an algorithm that drives a robot to cover completely its working area [1]. Some autonomous vacuum cleaners have been developed; between the most important commercial platforms, it can be mentioned the Roomba robot and Trilobite robot [2][3]. In these cases, the algorithm used to control the robot trajectory is based in a brownian motion, which is inefficient, even if it incorporates some structured paths. In these kind of applications, the goal can be reached in an autonomous way if the robot covers the entire accessible surface: this is the general statement of the coverage problem. A path of complete coverage drives the robot to sweep all areas of free space in an environment in a systematic manner. The generated path is composed of multiple single paths that allow the robot to accomplish the global task. Other desired characteristics of a good coverage algorithm include that the trajectory length must be as short as possible and sweeping twice the same place must be avoided when possible. In order to accomplish a surface covering procedure, several problems, such as localization, map building, trajectory planning and motion control must also be solved. The notion of completeness can be ambiguous; even if a complete coverage is guaranteed, different areas are effectively swept depending on the granularity of the model of the environment. When a coarse-grain model is used, the surface is seen as a grid, and the algorithm covers only the completely free cells; thus, some areas nearby the obstacles are not swept. Using a fine-grain surface model allows a better coverage; the surface is not partitioned, therefore the robot can cross closer to the obstacles. In practice, a more accurate approach to measure the quality of a coverage algorithm can be the effective coverage rate, the percentage of the accessible surface that is swept by the robot. Some previous works have attempted to solve the region filling problem. Cao’s algorithm [8] introduces the idea of using a well structured pattern to fill a region. Lumesky’s spread seeder algorithm for terrain acquisition [6] can be adapted to fill a region, but it can generate very inefficient paths to get around obstacles. The indirect control algorithm [9] takes a potential field approach, it uses the concept of driving the robot near the unknown areas. The complementary regions algorithm [7], finds simple regions that can be filled by zig-zag like paths, while filling the region it looks for new adjacent regions that can be filled recursively. The algotithm proposed by Acar and Choset [10] is based in an exact cell decomposition, thus allowing to obtain a good effective coverage rate; however, the delimitation of the cells on-line is not an easy task. One of the most elegant solutions, based on spanning trees, was proposed by Gabrielly [11]; in the basic algorithm the coarse-grain cells are too big, thus generating low effective coverage rates, even if each one is visited only once; a modified version was proposed to reduce these problem, unfortunately, the modified on-line algorithm becomes too complex and makes the robot cover some cells twice. Other approaches include cooperative covering by a robot team [12] and the use of artificial markers in the environment [13]. The Backtracking Spiral Algorithm, BSA [4][5], is based on the execution of spiral filling paths, instead of “zig-zag” like paths used by most of the precedent algorithms [7][14][10]; in consequence, it is more robust to the robot´s initial orientation. BSA completeness is guaranteed by the backtracking mechanism included in the algorithm. Proceedings of the 2005 IEEE International Conference on Robotics and Automation Barcelona, Spain, April 2005 0-7803-8914-X/05/$20.00 ©2005 IEEE. 2040