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