Appl Intell
DOI 10.1007/s10489-014-0571-8
BoB: an online coverage approach for multi-robot systems
Hoang Huu Viet · Viet-Hung Dang · SeungYoon Choi ·
TaeChoong Chung
© Springer Science+Business Media New York 2014
Abstract Online complete coverage is required in many
applications, such as in floor cleaning, lawn mowing, mine
hunting, and harvesting, and can be performed by singleor multi-robot systems. Motivated by the efficiency and
robustness of multi-robot systems, this study proposes a
solution to provide online complete coverage through a
boustrophedon and backtracking mechanism called the BoB
algorithm. This approach designs robots in the system
according to a market-based approach. Without a central
supervisor, the robots use only local interactions to coordinate and construct simultaneously non-overlapping regions
in an incremental manner via boustrophedon motion. To
achieve complete coverage, that is, the union of all covered
regions in the entire accessible area of the workspace, each
robot is equipped with an intelligent backtracking mechanism based on a proposed greedy A* search (GA*) to move
H. H. Viet
Department of Information Technology, Vinh University,
182-Le Duan, Vinh City, Nghe An, Vietnam
e-mail:
[email protected]
V. -H. Dang
Research and Development Center, Duy Tan University,
K7/25 Quang Trung, Da Nang City, Vietnam
e-mail:
[email protected]
S. Y. Choi · T. C. Chung ()
Department of Computer Engineering, Kyung Hee University,
1-Seocheon, Giheung, Yongin, Gyeonggi, 446-701, South Korea
e-mail:
[email protected]
S. Y. Choi
e-mail:
[email protected]
to the closest unvisited region. The robots complete the coverage task when no more backtracking points are detected.
Computer simulations show that the BoB approach is efficient in terms of the coverage rate, the length of the coverage
path, and the balance of the workload distribution of robots.
Keywords Cleaning robot · Complete coverage ·
Greedy A* · Multi-robot system
1 Introduction
The complete coverage task of service robots is required in
a wide range of applications, such as floor cleaning, lawn
mowing, mine hunting, and harvesting. Complete coverage
is performed by either single- or multi-robot systems and
is considered an optimal criterion in terms of the coverage rate and time. In small environments, such as homes,
workplaces, and restaurants, a single robot is appropriate for the coverage task because of the simplicity of its
design and program. Consequently, single-robot systems
have received considerable attention from researchers and
have been developed by methods such as genetic algorithms,
neural networks, cellular decomposition, spanning trees,
spiral filling paths, and the ant colony method [6, 37]. In
large environments, such as supermarkets, train stations, and
airports, a multi-robot system accomplishes the coverage
task more quickly than a single robot by dividing the coverage task into sub-tasks and executing them concurrently.
Furthermore, a multi-robot system is effective because, even
when several robots fail, the remaining robots can cover the
entire workspace. However, using a team of robots for a
coverage task increases the challenge of the coverage algorithm because of challenges in communication, localization,
cooperation, coordination, and conflict.
H. H. Viet et al.
A few complete coverage approaches for multi-robot
systems have been investigated. These approaches can be
divided into two categories, offline and online methods. In
the offline method, the coverage task is to determine a coverage path for each robot so that the union path covers
the entire workspace. In other words, the robots are given
a map of the workspace in advance and then follow the
map to perform the coverage task. In contrast, in the online
method, the robots accomplish the coverage task without
any prior knowledge about the workspace and thus must
construct their coverage paths step by step during the execution of the coverage algorithm. In real-world scenarios,
where the map of a workspace is unknown to the robots,
online complete coverage is preferred. Thus, the development of this method should be given considerable attention.
From this perspective, we seek an online coverage solution
that is not only complete, but also robust and non-redundant
for multi-robot systems in unknown workspaces. Coverage
algorithms with complete, robust, and non-redundant properties have been considered for several offline methods [2,
18, 19]. An algorithm is complete if the robots, controlled
by the algorithm in finite time, sweep the workspace such
that the union of all their trajectories completely covers the
workspace. An algorithm is robust if it is complete, provided that at least one live robot performs the coverage task.
An algorithm is non-redundant if the robots do not cover the
same area.
Coverage approaches based on strategic motions and
backtracking mechanisms have been studied for singlerobot systems. Gonzalez et al. [15] proposed a backtracking
spiral algorithm (BSA) in which local regions are covered
by spiral-like paths and linked by a backtracking mechanism. However, this backtracking mechanism is limited to
zigzag-like paths. Choset et al. [5, 7] proposed a coverage
path-planning approach known as boustrophedon cellular
decomposition (BCD). In BCD, the entire accessible area
of the workspace is decomposed into non-overlapping cells
so that each cell is covered by a boustrophedon motion. A
boustrophedon motion is a simple back-and-forth motion
Fig. 1 Path created by boustrophedon motion
whose path is similar to the plowing path of an ox in a field
(Fig. 1). This backtracking mechanism solves the traveling
salesman problem on an adjacent graph where each vertex
is represented by a decomposed cell and each edge is connected by two adjacent cells. In [37] we proposed a BA*
approach based on boustrophedon motion and A* search
[17]. A* search with a smoothed path is proposed to achieve
smooth and short backtracking paths instead of zigzag-like
paths as in BSA or BCD. Unfortunately, the backtracking
mechanism in BA* is inefficient in terms of time complexity because the robot must determine all backtracking paths
from the end point of the boustrophedon motion to all other
backtracking points and must then choose the shortest one.
In the BoB approach, robots are designed so that they coordinate to cover local regions by boustrophedon motions.
In addition, an intelligent backtracking mechanism from a
single source to multiple destinations on the basis of A*
search [17], namely greedy A* search (GA*), is proposed to
speed up the execution time of the BoB algorithm. The BoB
works under five regular conditions. First, the workspace
must be closed and the accessible regions must be connected so that the robots can reach any accessible position
in the workspace. Second, the robots are equipped with
sweeping and communication devices. Third, the robots correctly detect obstacles through sensors during navigation.
Fourth, communication between the robots must guarantee
that each robot sends its position to the other robots. Finally,
we assume that each robot has knowledge of its position
and heading angle in a global coordinate frame, as in [29,
30, 38, 39]. To complete the coverage task in an online
working manner, the robots use their sensors and accumulated knowledge to construct non-overlapping regions in
an incremental manner via boustrophedon motions, so that
the union of all covered regions is the entire accessible
area of the workspace. In addition, the robots are designed
according to the market-based approach [9, 10]; that is, each
robot works independently, but utilizes knowledge from
other robots to make optimal decisions at runtime. In other
words, without a central supervisor, the robots use only
local interactions to share their accumulated knowledge and
coordinate to perform the coverage task. Computer simulations show that the BoB approach is efficient for the
online coverage task of multi-robot systems in terms of the
coverage rate, the length of the coverage path, and the balance of the workload distribution of the robots in unknown
workspaces.
The rest of this paper is organized as follows: Section 2
describes the related literature, Section 3 presents the proposed approach, Section 4 discusses the simulations and
evaluations, and Section 5 concludes the paper and outlines
future work.
BoB: An online coverage approach for multi-robot systems
2 Related literature
Multi-robot systems for complete coverage tasks have
attracted considerable research attention because of their
efficiency and robustness compared with single-robot systems. Several researchers have concentrated on partitioning
the accessible area in the workspace into sub-areas for
robots. The accessible area can be partitioned either statically or dynamically. In static partition, each robot is
assigned to cover a specific sub-area. Lee et al. [25] proposed an algorithm that breaks down the workspace into
small regions and then plans the coverage paths in the
divided regions. The algorithm also sequentially allocates
the divided regions to cleaning robots, which follow the
planned paths in their specific regions to perform the coverage task. Guruprasad et al. [16] proposed the complete
coverage of an unknown environment by Voronoi partition. This solution partitions the workspace into Voronoi
cells of equal areas according to the initial positions of
the robots. Each robot is then responsible for covering its
Voronoi cell through any algorithm for single-robot coverage, such as spanning tree coverage [13] or boustrophedon
coverage [5, 7]. In multi-robot systems, communication
mechanisms between robots are the key to high efficiency.
Unfortunately, this important capability is neglected in static
partition-based approaches. In contrast to static partition,
dynamic partition assigns sub-areas to robots during runtime. A method by Min et al. [27] divides the workspace
into several equal sub-areas at the beginning and assigns
each robot to sweep its area autonomously. The robots that
have completed their tasks can help the robots that are slow
or cannot finish their tasks. Jager et al. [21] presented a
dynamic decentralized method to partition an area for multiple robots. The accessible area of the workspace is divided
into polygons allocated for the robots, which are responsible for cleaning the polygons to which they are assigned.
Ahmadi et al. [3] proposed a multi-robot system for a continuous sweeping task in which the area is partitioned while
the robots are doing their tasks.
Several methods use approximate cellular decomposition
to solve the problem of complete coverage of multi-robots,
in which the accessible area of the workspace is covered by
a grid of equal cells. In this approach, almost all methods use
the spanning tree coverage (STC) algorithm [13] as a basis
for creating the coverage paths of the robots. The STC algorithm is an offline method that approximately decomposes
the workspace into a grid of N cells with size D, where
D is a square cleaning tool of the robot. The grid is then
reconstructed such that each cell has a size of 2D × 2D, and
a spanning tree is built on the reconstructed grid. Finally,
the robot follows the spanning tree in a counterclockwise
direction to cover the workspace. The STC algorithm provides an optimal coverage path in terms of path length
because each grid cell is covered exactly once. Hazon et al.
[18, 19] proposed two types of an offline algorithm known
as multi-robot spanning tree coverage (MSTC). First, they
presented a non-backtracking MSTC algorithm that divides
the coverage task of the robots into two phases. The first
phase is to construct a coverage path based on the STC
algorithm, and the second phase is to distribute the robots
to cover specific regions. Each robot simply moves in a
counterclockwise direction along the spanning tree until it
reaches the initial position of the next robot. If no robot fails,
this algorithm is complete, because each cell is covered
once. Unfortunately, this algorithm is inefficient in terms
of the balance of workload distribution when the robots are
located next to each other. In this case, almost all robots
remain idle while a few robots perform the coverage task.
To solve this problem, Hazon et al. proposed a backtracking MSTC algorithm in which the second phase allows the
robots to backtrack over parts of their coverage paths; that
is, the robots can move both clockwise and counterclockwise. Similarly, this algorithm achieves a poorly balanced
workload distribution among robots because the coverage
paths strongly depend on the initial positions of the robots.
The algorithm is also inefficient in terms of the length of
the coverage path because of redundant coverage when the
robots backtrack along zigzag-like paths over already covered parts. Agmon et al. [1, 2] argued that the choice of
spanning tree has crucial consequences for the coverage
time obtained by algorithms using the spanning tree as a
basis for coverage. For example, the optimal coverage time
for a system with n robots is the total coverage time of
N/n if the spanning tree is chosen such that the robots are
uniformly located along the tree. Therefore, Agmon et al.
proposed an offline algorithm for finding a spanning tree
that minimizes the maximal distance between any two adjacent robots on the tree. They showed that the coverage time
obtained by the non-backtracking or backtracking MSTC
algorithm on the spanning tree it constructed is significantly better than that on randomly generated trees. Hazon
et al. [20] proposed an online MSTC algorithm that decomposes the coverage tasks of the robots into two stages. The
first stage is to decompose the workspace into a grid of
2D × 2D cells and inform the robots of their initial positions in the grid. The second stage is to enable each robot
to cover the workspace while gradually constructing a local
spanning tree so that the union of all local spanning trees
covers the entire grid. Although STC-based approaches for
multi-robots can achieve coverage under a polynomial time
complexity, they incur unevenly balanced travel costs for
the robots. Zheng et al. [38] proposed offline multi-robot
H. H. Viet et al.
forest coverage (MFC) to find a coverage tree with subtrees
of balanced weights to overcome the limitation of STCbased approaches. Different objects in the terrain, such as
rocks, sand, and grass, require robots to travel at different
speeds. To solve this problem, MFC is generalized from
unweighted terrain to weighted terrain [39].
In contrast, several multi-robot coverage algorithms
focus on exact cellular decomposition in which the accessible area of the workspace is decomposed into a set of
regions whose union exactly fills the entire area. Rekleitis
et al. [29, 30] proposed a coverage algorithm based on two
main ideas. First, the robots start together next to each other
in the workspace to cover a single cell. Two robots of the
team, called explorers, cover the top and bottom boundaries
of a cell until an obstacle blocks the line of sight between
them. The remaining robots cover the cell in a boustrophedon motion until they join the two explorers. Second,
when the robot team encounters an obstacle, it splits into
two sub-teams to cover the two adjacent cells until both
sub-teams meet again and rejoin. Because each sub-team
uses two explorers, this approach requires a minimum of
four robots. Gerlein et al. [14] extended the BSA [15] for a
multi-robot cooperative model, called the BSA for cooperative multi-robots. Following spiral paths, the robots detect
and remember the backtracking points on the covered paths.
When a robot reaches the end cell of a spiral path, it finds
the nearest backtracking point and moves to this point to
start a new spiral path. Kong et al. [24] used boustrophedon
decomposition [7] to develop a distributed coverage algorithm for a multi-robot system. The accessible area of the
workspace is decomposed into cells of the same fixed width.
The decomposed cells are then represented by an adjacency graph incrementally constructed and shared among all
robots, each of which is allocated a virtually bounded area to
cover. After covering a cell, the robot selects the next unvisited cell with the highest utility function from the adjacency
graph.
Several multi-robot coverage algorithms use ant robots.
A common such method is similar to the pheromone trails
laid and followed by real ants. Koenig et al. [22, 23] presented a simulation study using ant robots in real-time
heuristic searches for terrain coverage. The terrains are represented by directed graphs, which are to be covered by
the ant robots by visiting all vertices once or repeatedly.
Svennebring et al. [34, 35] studied ant robots that repeatedly cover closed terrain. The terrain is modeled by a grid,
and each ant robot is equipped with a node-counting procedure so that it marks vertices on the grid and moves
in the direction of the smallest value. Simulations show
that ant robots that count nodes cover terrains more systematically and quickly than those that randomly walk.
Senthilkumar et al. [32] presented an algorithm for the
complete coverage of a bounded terrain by multiple robots
on the basis of the STC algorithm [13]. The proposed algorithm simultaneously builds multiple spanning trees that
correspond to multiple robots and is thus called simultaneous multiple-spanning tree construction (S-MSTC). Starting
from the initial position, each robot constructs its spanning
tree incrementally in a counterclockwise direction to cover
the terrain. Because the S-MSTC algorithm disregards narrow openings between areas in the terrain, the robots incur
unbalanced travel costs. Senthilkumar et al. [33] extended
the S-MSTC by using ant robots so that the workloads of
the robots are almost equal (i.e., the ES-MSTC algorithm).
In general, ant robots are simply designed with limited sensing and computational capabilities and are easy to program
and cheap to build. Consequently, these robots cover terrain
inefficiently compared with robots equipped with advanced
sensing and computational capabilities.
In contrast to previous approaches, the proposed
approach focuses on online complete coverage using boustrophedon motions and a proposed backtracking mechanism
called greedy A* search to enable robots to achieve a
well-balanced workload distribution while maximizing their
coverage rates and minimizing their travel costs.
3 Design of the BoB approach
This section describes the design of the BoB approach
for the online coverage problem of multi-robot systems.
Robots and obstacles are three-dimensional objects in
workspaces, but the movement of robots is constrained to
the ground. Therefore, we assume that robots and obstacles
are projected to the ground and consider them to be twodimensional objects in the workspace W = R2 . We also
assume that n robots, denoted by A1 , A2 , · · · , An , exist
in the system and that each robot Ai (i = 1, 2, · · · , n) is
modeled by a circle with a radius of r.
3.1 Overview of BoB
To achieve online complete coverage, we enable robots to
construct non-overlapping regions in an incremental manner
via boustrophedon motions so that the union of all covered regions is the entire accessible area of the workspace.
Specifically, every robot performs a single boustrophedon
motion to cover an unvisited region. If a robot reaches an
end point, an area surrounded by covered positions or obstacles, it performs three tasks: the robot (i) detects the next
starting points on the basis of accumulated knowledge, (ii)
determines the shortest backtracking path, and (iii) follows
this path to start another boustrophedon motion. The coverage process finishes when no further starting points for
BoB: An online coverage approach for multi-robot systems
boustrophedon motion are detected. An overview of the
BoB algorithm is presented in Algorithm 1.
The mechanism designed in Algorithm 1 allows each robot
to cover an unvisited region with a boustrophedon motion
until it reaches an end point. The next tasks of the robot at
the end point are described in the next subsections. Figure 2
shows an example with boustrophedon paths and a map of
the workspace built by three robots A1 , A2 , and A3 with
starting positions S1, S2, and S3, respectively. While covering an unvisited region, each robot shares its knowledge to
the other robots; thus, a map of the workspace is built and
known by the three robots.
3.2 Detection of backtracking points
To cover local regions in an incremental manner, each
robot mimics the pattern of plowed tracks in a field. At
each algorithm iteration, if the robot moves north (or south),
it keeps checking this direction and moves forward via
iterations until it encounters a blocked position, either an
obstacle or an already covered position, in its path. Then,
the robot checks whether the eastern (or western) position is
blocked. If so, the robot turns around and moves to the west
(or east) and traces a new straight line adjacent to the previous one. To check whether the next position is blocked, each
robot uses its sensors to detect obstacles and its accumulated knowledge to recognize already covered positions. In
a multi-robot system, robots need to exchange information
with each other to avoid conflict and redundant coverage.
In the BoB approach, robots are designed according to the
market-based approach [9, 10]; that is, each robot works
independently, but must know the positions of all the robots
in the system to accumulate relevant knowledge. Before
moving to the next accessible position with the length of the
robot’s diameter, each robot broadcasts its position to the
other robots and receives their positions to update its memory of covered positions. Thus, each robot owns a map of
the workspace built incrementally when all the robots simultaneously perform boustrophedon motions. Let Mk be the
memory of robot Ak (k = 1, 2, · · · , n). Mk is built as
Mk = Mk ∪ {s i }, i = 1, 2, · · · , n,
The workspace cannot be covered completely with only a
single boustrophedon motion. When robot Ak reaches an
end point, its task is to find the closest unvisited region and
travel to it to continue the coverage task. To do so, the robot
has to determine the starting point of the next boustrophedon motion from points on the covered paths. This section
proposes an efficient method to select backtracking points
for robot Ak at the end point.
Considering that the workspace is initially unknown to
the robots, the starting point of the next boustrophedon
motion for robot Ak must be detected from the positions
covered so far, that is, from the map Mk . In principle,
a starting point can be any element at the borders of the
map Mk of which at least one of its four neighboring cells
(i.e., in the east, north, west, or south) remains unvisited.
For example, when robot A1 arrives at end point E1, it
can choose a random starting point on the borders between
the covered and unvisited regions (Fig. 2). Obviously, randomly choosing a starting point on the edges of the covered
S1
E1
(1)
where s i = (xi , yi ) is the current position of robot Ai (i =
1, 2, · · · , n). The memory Mk of robot Ak is the same
for all robots in the system because it is the map of the
workspace built by all robots. Furthermore, the memory Mk
of robot Ak is represented as a tiling, in which each element
of Mk is a tile that can overlap at the border of obstacles.
S3
E3
E2
S2
S: starting point
E: ending point
obstacle
boustrophedon path
Fig. 2 Boustrophedon paths created by robots A1 , A2 , and A3
H. H. Viet et al.
regions is a poor decision because it increases the number
of boustrophedon motions and thus lengthens the coverage
path. To identify the best starting point of the next boustrophedon motion, backtracking points on the edges of the
covered regions should be determined, and the best starting point is then chosen from these backtracking points.
However, if the backtracking points are all positions on
the edges of the covered regions, numerous backtracking
points that can be potential starting points must be maintained, making the decision of the best candidate inefficient.
To reduce the number of backtracking points, our method
is to choose those at the corners of the covered regions,
because a candidate starting point at the corner of a covered region creates fewer fragments than one starting at a
random point at the edge of a covered region, thereby shortening the coverage path. More specifically, backtracking
points s at the corners of covered regions are proposed as
in Fig. 3, where each black cell denotes a blocked position, each white cell denotes an unvisited position, and the
other cells denote either blocked or unvisited cells. If we
define function η(si , sj )(i, j = 1, 2, · · · , 8) to determine
the relationship between cells si and sj as
η(si , sj ) =
1, if (si is uncovered) and (sj is blocked);
0, otherwise,
(3)
The set of the backtracking points for robot Ak is determined as
S k = {s|s ∈ Mk and b(s) = true}.
is the backtracking path found by A*SPT of robot Aj
j
(Section 3.3), the last element ŝmj of path P j , that is, the
j
next starting point of robot A , must be eliminated from set
S k . In summary, when robot Ak reaches an end point, the
set of its backtracking points is determined and maintained
in a backtracking list, Lk , as
k
(2)
then the backtracking point s is taken under condition
⎛
⎞
η(s1 , s2 ) + η(s1 , s8 )+
⎜ η(s5 , s4 ) + η(s5 , s6 )+ ⎟
⎟
b(s) = ⎜
⎝ η(s3 , s2 ) + η(s3 , s4 )+ ⎠ ≥ 1.
η(s7 , s6 ) + η(s7 , s8 )
Obviously, while robot Ak is identifying the backtracking points, some robots Ai (i = 1, 2, · · · , n1 ) perform
boustrophedon motions, and some other robots Aj (j =
1, 2, · · · , n2 ) backtrack to the next starting points. For the
former case, the position of robot Ai is a blocked position; therefore, set S k contains this position and the starting
points surrounding it. These positions must be eliminated
from set S k . Assuming that s i is the position of robot Ai and
s2i , s4i , s6i , and s8i are the positions at the northeast, northwest,
southwest, and southeast directions, respectively, of position
s i (Fig. 4), set S i = s i , s2i , s4i , s6i , s8i must be eliminated
from set S k . For the latter case, set S k can contain the next
starting points chosen by other robots. To avoid conflict
when robot Ak chooses the same next starting point as robot
Aj , the next starting point of robot Aj also must be elimij j
j
nated from set S k . Assuming that P j = ŝ1 , ŝ2 , · · · , ŝmj
(4)
k
L =S −
n1
i=1
i
S −
n2
j
(5)
ŝmj ,
j =1
where n1 is the number of robots performing boustrophedon motions and n2 = n − n1 − 1 is the number of robots
performing the backtracking task.
The BoB approach to determining backtracking points is
different from the BSA approach [15]. In BSA, backtracking points are detected and stored during the execution of
a spiral path. However, we argue that backtracking points
cannot be identified online while the robots are moving for
three reasons. First, the robots have inadequate information on all the corner neighbors s2 , s4 , s6 , and s8 of the
Fig. 3 Starting points at the
corners of the covered regions
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
BoB: An online coverage approach for multi-robot systems
Fig. 4 Starting points around
robot Ai at position s i
(a)
current position (Fig. 3). Second, backtracking points are
created from the map of the workspace built by all robots in
the system. Finally, several backtracking points added from
the prior and current boustrophedon motions can be eliminated during the current boustrophedon motion. Therefore,
in the BoB approach, each robot determines the backtracking points only if it detects an end point. At this end point,
robot Ak uses its memory Mk to identify backtracking
points. Therefore, when examining whether a non-ending
visited tile is a backtracking point, it has enough information
on all neighbors of the tile.
3.3 Determination of backtracking path
The next task of robot Ak at an end point is to plan a
collision-free path as the backtracking path to the best starting point in the backtracking list Lk nearest its position.
This section proposes an efficient method known as greedy
A* search to determine the shortest backtracking path for
robot Ak .
The backtracking path for robot Ak can be determined
by several path-planning algorithms, such as the Dijkstra’s
algorithm [11], A* search [17], A* with post-smoothed path
(A*PS) [4, 36], Field D* [12], Theta* [8, 28], or ED-FCM
[26]. A* search is a widely known form of the best-first
search algorithm. This algorithm takes a starting vertex and
a goal vertex as inputs to find the shortest path connecting
them through a sequence of vertices. A* search defines the
cost of a vertex s by a “heuristic search“ f-value f (s) =
g(s) + h(s), an estimate of the length of the shortest path
from the starting vertex via vertex s to the goal vertex,
where g(s) is the length of the shortest path from the starting vertex to vertex s found so far and h(s) is the estimated
distance from vertex s to the goal vertex. A* search is optimal if the heuristic function h(s) of vertex s is admissible
or h(s) < h∗ (s), where h∗ (s) is the actual cost to reach
the goal vertex [31]. For example, the Euclidean distance is
admissible because the shortest path between any two vertices is a straight line; thus, the Euclidean distance cannot
be an overestimated value.
When A* search works on grids, its solution path is a
rough path and is also not equivalent to the true shortest path
because the parent of a vertex must be an adjacent vertex.
(b)
(c)
(d)
As a result, the robot must change its direction continuously
while moving along this path from the starting vertex to
the goal vertex. A*PS [4, 36] and Theta* [8, 28] are both
variants of A* search that allow the parent of a vertex to
be any vertex. Therefore, the solution path of these variants is improved by a smoother process. A*PS smoothes
the solution path of A* search by a postprocessing step.
Meanwhile, Theta* inserts the smoothing task into iterations
of the searching process with more time complexity than
A*PS because it always requires a line-of-sight checking
procedure when expanding points to find the solution path,
with costly line-of-sight checking between two vertices. A*
search, as well as its variants, takes a starting vertex and
a single goal vertex as inputs. Therefore, this algorithm is
inefficient in terms of time complexity in determining the
shortest backtracking path for robot Ak because robot Ak
must perform A* search many times to determine all backtracking paths from the end point to all candidates in the
backtracking list Lk and then choose the shortest one. To
overcome this limitation, we propose a variant of A* search,
namely greedy A* search (GA*), to find the shortest path
from a single source to multiple destinations. Specifically,
the heuristic function h(s) is defined as a greedy function so
that GA* always chooses the destination vertex nearest the
current vertex:
h(s) = min (c(s, sb )),
s b ∈L k
(6)
where c(s, sb ) is the Euclidean distance from point s to a
backtracking point sb ∈ Lk . GA* is shown in Algorithm
2. To examine all the candidate vertices that might be able
to construct the shortest path, GA* uses three lists of vertices: open, closed, and parent. The open list consists of two
columns, the first of which is used to memorize all neighboring vertices of the vertices already expanded, and the
second of which is the cost of each vertex in the first column. Any vertex and its cost in the open list are eliminated
from the list if the vertex is expanded. The closed list is
used to store all expanded points to ensure that no point is
repeatedly checked. The parent list is used to maintain the
parent-child relationships between the vertices to extract the
H. H. Viet et al.
solution path when the algorithm ends. Next, we prove the
completeness and optimality of the GA* algorithm.
Given that sg1 is a goal vertex, h∗ (sg1 ) = 0, therefore,
h(sg1 ) = 0, and
f (sg1 ) = g(sg1 ) + h(sg1 ) = g(sg1 ).
(9)
Next, we show that path P k
from vertex se to sg1 is the shortest path, or f (sg1 ) is the minimum cost. Assuming that a
goal vertex sgi ∈ Lk (i = 2, 3, ...) can be reached on path
k from vertex se , we must prove that
P
f (sgi ) ≥ f (sg1 ).
(10)
k
P
Let s be the first vertex on path
that has not been
expanded. Therefore, the parent of s has already been
expanded, and s is one neighbor of the expanded region that
GA* search expanded to goal vertex sg1 . In other words, s
is on the priority queue that GA* search expanded to goal
vertex sg1 . Because GA* search chooses vertices to expand
in the order starting with the least costly path and chooses
the goal vertex sg1 before s, this implies that
f (sg1 ) ≤ f (s).
(11)
Because sgi is a goal vertex, as in (8) and (9), h(sgi ) = 0.
k to sg passes through s:
Furthermore, path P
i
f (s) ≤ f (sgi ) = g(sgi ) + h(sgi ) = g(sgi ).
Theorem 1 (completeness) The GA* algorithm is complete; that is, it is guaranteed to find a backtracking path for
the robot from the end point to a point in the backtracking
list Lk .
Proof Let N (s) be the set of visited neighboring vertices
of vertex s. N (s) is determined by
N (s) = {s ′ ∈ Mk |c(s, s ′ ) ≤
√
2d},
(7)
where d is the robot’s diameter. Thus, the search space of
GA* is the region accessed by the robots, that is, the map
Mk has built so far. Because A* search is complete in
the connected region, the backtracking path of robot Ak is
found. In the worst case, the solution path of GA* is the
backtracking path along the old boustrophedon paths until it
reaches a backtracking point in the backtracking list Lk .
Theorem 2 (optimality) The GA* algorithm is optimal;
that is, it is guaranteed to find the least costly path from the
end point to the first reached goal point in the backtracking
list Lk .
Proof Let us assume that sg1 ∈ Lk is the first goal vertex
to be expanded. Because the heuristic function h(s) in (6) is
the Euclidean distance, it is non-negative and admissible, or
0 ≤ h(sg1 ) ≤ h∗ (sg1 ).
(8)
(12)
Equations (9), (11), and (12) lead to
g(sg1 ) = f (sg1 ) ≤ f (s) ≤ g(sgi ) = f (sgi ),
(13)
and thus, Eq. (10) is proved. This means that GA* finds
the least costly path to the first reached goal point in the
backtracking list Lk .
Figure 5 shows a typical example finding the shortest path from the starting point S to one goal Gi (i =
1, 2, · · · , 10). Goals G1 , G2 , G3 , and G4 are placed on a
circle with center S. To do so, A* search has to expand to
cover a large area to find the paths to all the goals and then
choose the shortest path, as shown in the overlapped areas
of Fig. 5a. The larger the number of goals or the farther
away from the starting point they are, the more inefficient
A* search is. Meanwhile, GA* expands only a few directions to goals on the circle while guaranteeing the shortest
path to a goal without expanding any mediating point again;
that is, no areas overlap in Fig. 5b. Thus, GA* is more efficient than A* search in terms of computational complexity,
while its solution path is the same as that of A* search.
GA* is a variant of A* search in that its solution path
is not equivalent to the true shortest path because the parent
of each vertex is constrained to a neighbor vertex. Therefore, the solution path of GA* should be improved by
path-smoothing algorithms, such as A*PS [4, 36] or A*SPT
[37]. For each vertex on the input path, A*PS finds the
nearest non-line-of-sight vertex and then connects to the
previous neighbor of this vertex, whereas A*SPT finds and
connects to the farthest line-of-sight vertex on the path.
BoB: An online coverage approach for multi-robot systems
Fig. 5 Solution paths and areas
explored by a A* search and
b GA*
G
G
G
8
G7
G
8
G7
5
5
G
G9
9
G1
G2
S
G1
G
G2
S
G3
3
G4
G6
S: starting point
G: goal points
G10
obstacle
expanded point
found path
S: starting point
G: goal points
(a)
For example, let us assume that the solution path found by
GA* is P k = s1k , s2k , · · · , s9k and that lines-of-sight are
observed from s2k to s3k , s4k , s5k , and s8k . A*PS connects s2k to
s5k and yields smooth path P k = s1k , s2k , s5k , s6k , s7k , s8k , s9k ,
whereas A*SPT connects s2k to s8k and yields smooth path
P k = s1k , s2k , s8k , s9k . Then, in general, A*SPT provides a
shorter path than A*PS and is therefore employed to smooth
the solution path of GA*. A*SPT is shown in Algorithm
3. The line-of-sight between two points is checked only in
visited regions, that is, the map Mk built so far. A*SPT is
complete because its solution path is P k in the worst case.
G4
G6
G10
obstacle
expanded point
found path
(b)
3.4 Following the backtracking path
The final task of robot Ak at the end point is to follow
k
found by
the backtracking path P k = ŝ1k , ŝ2k , · · · , ŝm
k
k
A*SPT. To do so, robot
to determine the turning
A needs
k
=
angle at point ŝik = xik , yik and the distance to ŝi+1
k
k
k
xi+1 , yi+1 (i = 1, 2, · · · , mk − 1) on path P . Let θik be
the heading angle of the robot at ŝik . The angle required for
the robot to turn at ŝik is
αik = βik − θik , mapped into (−π, π],
(14)
−−−→
k
where βik is the direction of the vector ŝik ŝi+1
, or
βik = arctan
k
− yik
yi+1
k
xi+1
− xik
, mapped into (−π, π].
(15)
k
The distance required for the robot to move from ŝik to ŝi+1
is
2
2 k
k
k
(16)
di =
− yik .
xi+1 − xik + yi+1
After smoothing the backtracking path using A*SPT, the
next task of robot Ak at the end point
is to follow backtrackk
ing path P k = ŝ1k , ŝ2k , · · · , ŝm
to the next starting point
k
to sweep the next unvisited region. While the backtracking
path is followed, a conflict may appear when some robots
choose the backtracking point of robot Ak . To avoid this
conflict, robot Ak needs to broadcast a message about its
k to the other robots before it follows
backtracking point ŝm
k
the backtracking path. This backtracking point is rejected by
the other robots in determining the backtracking points (5).
To avoid collision between robots when robot Ak is following the backtracking path, it has to broadcast a message
about its next position in model Mk to the other robots
before moving to the next position. If some robots are moving to that position, the robot with the smallest identifier
obtains the highest priority, and the other robots wait to
obtain priority. This coordination solves the conflict in the
backtracking task.
3.5 Properties of the BoB algorithm
Theorem 3 (completeness) The BoB algorithm is complete; that is, controlled by the algorithm in finite time, the
H. H. Viet et al.
robots sweep the workspace so that the union of all their
trajectories completely covers the workspace.
Proof Suppose that the BoB is not complete, that is, an
accessible region has not been covered. Because the accessible regions of the workspace are connected, the unvisited
region must be connected to some boustrophedon path. Furthermore, because the next starting point of a boustrophedon
motion is detected on the boustrophedon paths and the proposed GA* is complete, a robot reaches the unvisited region
to cover it.
Theorem 4 (robustness) The BoB algorithm guarantees
that coverage is completed in finite time provided that a
robot is still functioning to perform the coverage task.
Proof Theorem 3 shows that the BoB algorithm is complete without depending on the number of robots; that is, any
number of robots covers the workspace completely. If one
or more robots fail, they become blocked positions, and if at
least one live robot exists, it certainly reaches the remaining
accessible region to cover it.
As for the non-redundant property, the BoB algorithm is
not satisfied, because its backtracking mechanism controls
robots to unvisited regions only within regions accessed
by the robots. In other words, the positions on the backtracking paths of the robots are covered repeatedly. Except
STC-based offline methods, existing methods for creating
coverage paths, including the proposed BoB algorithm, are
redundant. However, GA* provides the least costly path;
therefore, the redundancy of the covered regions is minimal.
Although the backtracking mechanism causes redundant
coverage for the BoB, it creates two advantages for the BoB.
First, the BoB is an online method thanks to its backtracking
mechanism; that is, the robots complete the coverage task
without any prior knowledge about the workspace. In contrast, the previous boustrophedon-based approaches [5, 7,
24, 29, 30] are offline methods because they do not include
backtracking mechanisms. Second, the backtracking mechanism of the BoB dominates the backtracking mechanisms
of the BSA [15] and the BA* [37] in terms of time complexity. In the BSA, the backtracking points are determined
while the robots are following the spiral paths, and therefore, numerous backtracking points must be maintained in
a backtracking list, making the decision for the best candidate inefficient. Meanwhile, the BA* plans the shortest
backtracking path by determining all backtracking paths to
all backtracking points in the backtracking list and then
choosing the shortest one, increasing the computational
complexity of the BA*. In the BoB, each robot determines
the backtracking list when it reaches an end point of a
boustrophedon motion and plans the shortest backtracking
path thanks to a heuristic function defined by a greedy
function, and therefore the backtracking mechanism of the
BoB is more efficient than those of the BSA and the BA*
approaches.
In the BoB algorithm, each robot Ak (k = 1, 2, · · · , n)
performs two main tasks: (i) covering an unvisited region by
a boustrophedon motion, and (ii) planning a backtracking
path from an end point of a boustrophedon motion to backtracking points with the GA* algorithm. In the first task,
each robot Ak has to maintain a map Mk of the workspace
and check covered positions in its memory by using a linear
search algorithm. Therefore, the memory complexity and
the time complexity for this task are both equal to O(|Mk |),
where |Mk | is the number of elements of the map Mk
of the workspace. In the second task, the GA* uses three
lists: open, closed, and parent. In the worst case, the memory requirement for these lists is approximately equal to
that for Mk or O(|Mk |). Because the GA* is a variant
of A* search whose heuristic function is a greedy function, the time complexity of the GA* is equal to that of
A* search or O(|Mk |). Overall, the memory complexity
and the time complexity of each robot are both equal to
O(2|Mk |). Therefore, the memory complexity and the time
complexity of the BoB algorithm are both n times those of
each robot, or O(2n|Mk |).
4 Simulations and evaluations
4.1 Simulations
This section presents simulations to evaluate the performance of the proposed approach. Simulations are implemented by object-oriented programming in Matlab software
on a Core i5-2430M CPU 2.4 GHz with a 4-GB RAM computer. Each robot is modeled by an object consisting of data
properties and methods. In all simulations, the workspaces
of the robots are binary images of 250 × 250 pixels, each of
which is marked to indicate whether it belongs to an obstacle based on its value of one or zero. We also assume that
each robot is modeled by a circle with a radius of r = 5
pixels.
The first four simulations aim to verify the performance
of the BoB algorithm in workspaces consisting of predefined obstacles. Figures 6 and 7 show the results of these
simulations, where robot Ai (i = 1, 2, 3, 4) starts at position Si and ends at position Ei . The coverage path lengths
of robots A1 , A2 , and A3 in simulation 1 are 169.08,
156.42, and 161.18, respectively, and those in simulation 2
are 172.67, 178.05, and 160.14. Meanwhile, the coverage
path lengths of robots A1 , A2 , A3 , and A4 in simulation 3 are 122.24, 122.24, 120.42, and 120.42, respectively,
and those in simulation 4 are 107.30, 129.09, 107.30, and
BoB: An online coverage approach for multi-robot systems
S1
11
111
111
1111
11111111
11
1
1
1
1
1
1
1
1
1
1
1
1
111
1 111
1111
1111
11
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
22
22
22
22
22
22
22
22
22
S2
22
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
22
22
2 22
22222
2
2
22222
2
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
233
233
233
233
233
233
233
233
2
233
233
233
233
233
233
2S3
3
33
S: starting point
E: ending point
2
2
2
2
2
2
2
2
2
2
11
11
11
11
33
33
33
33
333
3
223
2
3E2
3
23
3
3
3
333
3
333
333
33
3
3
3
3
3
3
3
3
3
3
3
3
3
1
1
1
1
1
1
1
1
3
3
3
3
1
1
1
1
1
1
1
1
3
3
3
3
1
1
1
1
3
3
3
3
3
3
3
3
1
1
1
1
3
3
3
3
3
3
3
3
1E1
11
11
11
11
11
11
11
3
33
33
3
3E3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
33
33
3 33
33333
3
3
33333
3
3
3
3
3
3
3
3
3
3
3
obstacle
boustrophedon path
backtracking path
1 1S3
3333
113333
113333
113333
113333
113333
3
11333
33
11
11
1 1E1
111
1
11111
11111
11111
11111
11111
11
11
111111
111111
111111
111111
111111
111111
S1
111111
1
3
3
3
3
3
3
3
3
1
1
1
1
1
1
1
1
3
3
3
3
3
3
3
3
1
1
1
1
1
1
1
1
1
1
3
3
3
3
3
3
3
3
3333
33
333
3222
33333
3333222
2
3
3
3
3
33
3222
22
222
1
111
132
322
1
1 13222
11111
1 3
1
111 111 222
111111132
311111132
3
1
3
311111132
2
3
32
3
32
33333333
333333332
333333332
33333333222
33333333222
33222
33
222
222
2
3
2 2 2
333
3322222
33333
3 2 2
2 2 2E2 2
3333
3 3E3
3S2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
obstacle
boustrophedon path
backtracking path
S: starting point
E: ending point
(a) Simulation 1
2
2
2
2
2
2
2
2
(b) Simulation 2
Fig. 6 Coverage paths created by the BoB algorithm
129.13. The simulations demonstrate that the BoB algorithm succeeds in controlling robots to finish the coverage
task without depending on the initial positions of the robots.
Furthermore, the BoB algorithm distributes a well-balanced
workload for the robots because the lengths of the coverage
paths of the robots are approximately equal.
To evaluate the successful coverage rate and workload distribution of the robots accurately from a statistical
perspective, many simulations are performed. Specifically,
S3
3 3 3E3
333333333
34
44
44444
444
3333333333
33444
44
444
3333333333
3
4
4
3 34 4
3
3
3
3
3
3
3
3
3
1
1
1
1
1
1
1
1
1
1
1
S1
1
3
3
3
3
3
3
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
33
33
3
33
33
33
33
33
33
11
11
11
11
11
11
1
11
11
11
11
1E1
1
333 3
3
33
333
3
3
33
33
3
3
33333333
33333333
3333333
33
33
3
333333
1111
111111
1111111
11
11111111
1
1111 111
11 1
11
1
1
1
11
111
1 11111
11111111
11111111
11111111
1
S: starting point
E: ending point
4E4
4
44
44
4
44444
44
44
44
4
4
4
4444
44
444444444
4
4
4
44
4 44
4 444 4
44
44444444
4
4
44444
22222
222
22
222
22
22222222
222 22222
222222222
22
2222
2
2
22
2
22222222
2
222222222
222222222
2
2
2
2 2 2 2 2 2 2 2E2
4
4
4
4
4
4
4
4
4
4
4
4
2
2
2
2
2
2
2
2
2
2
2
2
4S4
4
44
44
44
44
44
44
44
44
44
44
44
22
22
22
22
22
22
22
22
22
22
22
2S2
2
obstacle
boustrophedon path
backtracking path
(a) Simulation 3
Fig. 7 Coverage paths created by the BoB algorithm
we design 15 workspaces, each of which contains five or
six obstacles. The obstacles in each workspace are created
randomly in terms of position and angle to generate diverse
situations. Four robots are used to perform the coverage
task in each workspace. For each workspace, we perform 10
simulations in which the four robots are placed randomly
in the accessible region of the workspace. If the successful coverage rate is the ratio of the covered pixel number to
the accessible pixel number, the simulations show that the
S3
3333333
3
3
3
3
3
3
3
3
3
3
3
1
1
1
1
1
1
1
1
1
1
1
S1
1
3
3
3
3
3
3
3
3
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
3
3
3
3
3
3
3
1
1
1
1
1
1
1
1
1
3
3
3
3
3
3
3
1
1
1
1
1
1
1
1
1
3
3
3
3
3
3
3
3
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
3
3
3
3
3
3
3
3
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
3
3
3
3
3
3
3
3
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
3
3
3
3
1
1
1
1
3
3
3
1
1
1
1
3
33
33
33
33
33
33
33
33
33
33
33
3
1E3
3
1E1
11
11
11
11
11
11
11
11
11
11
11
S: starting point
E: ending point
4
4
4
4
4
4
4
4
4
4
4
4
2
2
2
2
2
2
2
2
2
2
2
2
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
2
2
2
2
2
2
2
4
4
4
4
4
4
2
2
2
2
2
2
4
4
4
4
4
4
2
2
2
2
2
2
4
4
4
4
4
2
2
2
2
2
2
4
4
4
4
4
4
4
4
4
44
44
44
44
4
4E4
2
2
2
2
2
2
2
2
2
2E2
22
22
22
22
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4S4
4
44
44
44
44
44
44
44
44
44
44
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
22
22
22
22
22
22
22
22
22
22
2S2
2
obstacle
boustrophedon path
backtracking path
(b) Simulation 4
H. H. Viet et al.
average coverage rate for each workspace after 10 simulations is about 97 %. Similar to boustrophedon-based
approaches [7, 24, 29, 30], the BoB approach cannot cover
small portions along the boundaries of the obstacles because
boustrophedon motions consider the movement of each
robot in the directions of north, east, west, and south when
the robot encounters obstacles instead of directions perpendicular to the boundary of the obstacles. However, the
unvisited portions along obstacle boundaries are small compared with the whole workspace. If the robots are equipped
with soft brushes outside, they surely cover the entire
workspace. Figure 8 shows the lengths of the coverage paths
of the robots in each workspace. Although these lengths
depend on the robots initial positions, they are approximate
in each simulation of each workspace, indicating that the
BoB approach assigns each robot a coverage task such that
the workloads of the robots are approximately equal.
4.2 Evaluations
This section compares the BoB approach with the nonbacktracking MSTC (NB-MSTC) [18, 19]. Although NBMSTC is an offline method and the BoB approach is
an online method, the former is compared with the BoB
160
160
160
120
120
120
80
80
80
40
40
40
0
0
1
2
3
4
5
6
7
8
9 10
0
1
2
3
4
5
6
7
8
9 10
160
160
160
120
120
120
80
80
80
40
40
40
0
2
3
4
5
6
7
8
9 10
1
2
3
4
5
6
7
8
9 10
160
160
160
120
120
120
80
80
80
40
40
40
0
0
1
2
3
4
5
6
7
8
9 10
2
3
4
5
6
7
8
9 10
160
160
120
120
120
80
80
80
40
40
40
0
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
9 10
160
160
160
120
120
120
80
80
80
40
40
40
0
2
3
4
5
6
7
8
9 10
5
6
7
8
9 10
1
2
3
4
5
6
7
8
9 10
1
2
3
4
5
6
7
8
9 10
1
2
3
4
5
6
7
8
9 10
1
2
3
4
5
6
7
8
9 10
0
0
1
4
0
1
9 10
3
0
1
160
0
2
0
0
1
1
1
2
3
4
5
6
7
Fig. 8 The lengths of coverage paths achieved by simulations in 15 workspaces
8
9 10
BoB: An online coverage approach for multi-robot systems
approach because it yields the smallest total length of the
coverage paths of the robots (i.e., no cell is covered twice).
The criteria for comparison are a successful coverage rate,
the total length of the coverage paths, and the maximum
coverage time of the robots.
NB-MSTC can employ any spanning tree construction
algorithm. Of course, the efficiency of the coverage path
strongly depends on the spanning tree. To reduce the number of turns of the robots, we propose a boustrophedonbased depth-first search algorithm to construct an STC
algorithm, called B-STC. The idea of the B-STC algorithm
is to construct a boustrophedon path as long as possible
to make a branch of the spanning tree and then backtrack to add other branches of the spanning tree also as
long as possible. Let T = (V ′ , E ′ ) be a spanning tree
of the grid graph G = (V , E) and V be the stack to
store visited vertices of the grid graph G. The B-STC
algorithm is shown in Algorithm 4. Figure 9a shows an
example of the spanning tree, where the boustrophedon
paths are labeled 1 to 13. Starting from position S, the
first branch of the spanning tree is built based on a boustrophedon motion until it reaches an end point surrounded
by visited vertices. Next, the algorithm backtracks on the
boustrophedon path until a vertex exists whose neighboring vertex has not been visited yet. At this vertex, the next
branch of the spanning tree is built. This process is repeated
until every vertex of the grid graph is visited. Figure 9b
shows the coverage path based on the spanning tree of
Fig. 9a.
and that each is modeled by a point in the workspaces. For
each workspace, we perform one pair of simulations for
BoB and NB-MSTC. The initial positions of the robots are
the same for BoB and NB-MSTC and are random to generate diverse situations. Figures 10 and 11 show the lengths
of the coverage paths achieved by the simulations based on
the NB-MSTC and BoB approaches, respectively. From the
simulation results, some main observations can be made as
follows:
(i)
(ii)
(iii)
To compare the BoB approach with the NB-MSTC
approach, 15 workspaces are designed to implement the
simulations as follows. Each workspace is a grid of 30 × 30
square cells, each of which is considered a point. To the
grid are randomly added 8 to 12 obstacles. Each obstacle is
a bar with the width of a square cell and a random length
5 to 10 times that of a square cell. It is placed randomly
in the workspace with a random position in either the horizontal or the vertical direction. We also assume that four
robots are used for the coverage task of each workspace
According to Theorem 1 [18, 19], NB-MSTC is complete. However, NB-MSTC cannot cover the entire
workspace because, when the workspace is divided
into square cells of size 4D, where D is the size of
the robot, some cells with a size of D along the borders of the obstacle do not belong to the graph grid
used to construct the spanning tree. Therefore NBMSTC cannot cover these cells (Fig. 9b). In the BoB
approach, the robots cover the workspaces based on
boustrophedon motions, in which the width of each
boustrophedon path is D. Thus, the cells with a size
of D along the borders of the obstacle are covered
completely, indicating that the coverage rate achieved
by the BoB approach is higher than that achieved by
NB-MSTC. For example, the coverage rate achieved
by the BoB approach in the simulations is 100 %, but
that achieved by NB-MSTC is only 88.2 to 92.7 %.
The total length of the coverage paths achieved by
NB-MSTC is shorter that that achieved by the BoB
approach. In NB-MSTC, the robots follow the spanning tree to cover cells, therefore no cell is covered
twice. In the BoB approach, the robots backtrack to
cover unvisited regions; consequently, the backtracking paths increase the total coverage path length of
the robots. In addition, the coverage rate achieved by
the BoB approach is higher than that achieved by NBMSTC; this significantly lengthens the total coverage
path length in the BoB approach.
If we define the coverage time of a workspace as the
maximum length of the coverage paths found by the
robots, then the coverage time achieved by the BoB
approach is shorter than that achieved by NB-MSTC.
Using multi-robots is intended to reduce the coverage time of a workspace. To do so, the robots in the
BoB are distributed such that they can cover equal
areas (Fig. 11). However, this important capability is
neglected in NB-MSTC (Fig. 10).
In summary, the simulation results show that the BoB
works well in different environments. Furthermore, BoB
dominates NB-MSTC in terms of the coverage rate and
the balance of the workload distributions among the robots.
Theoretically, the more robots that cover the workspace, the
faster the workspace is completely covered. However, if the
H. H. Viet et al.
1 1 1 1 1
13
3 13 13
2 2
E1
11 11 11
11
1 1 1 1 1
13 13 2 2
11 11 11
1 1 1 1 1
13 13 2 2 11 11 11 11
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
1
1
11
12 11
12
2 11
2 11
2 11 12
1 1 1
2 2 2 2 2 2 2 2
1 1 1
2 2
5 2 2
3 3
1 8 8 9 9 2 2
5 2 2
3 3
1 8 8 9 9 2 2
3 3 3 3
5 2 2
1
1 8 8
1 8
9 2 2 6 6
5
3 3
3 3
4 4 4 4
7 6 5 5
1
80 8 8 8 8 8
7 6
1 10
4 4 4 3 3
1 10 8 8 8 8 7 6
10
0
1 10 1
S1 10 10
8 8 7 6
3 3
6 6 6 3 3
8 8 7 7
6 6 6 6 6 3 3
S: starting point
E: ending point
obstacle
spanning tree
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
22
22
22
22
22
22
2
2
22
22
2
2
2
2
2
2
2
2
2
2
2
2
22222
2222
22222
23 3 2
32
22222
2 3S3
22222
42
2 3E4
23422222222
23422222222
23422222222
23422222222
2222342
333 3 3 42
222
3
114222
211
3
114222
211
3
114222
3
2E1
114222
11
3
41
1 1 4 2 2 2 2 2 2S4
3
1 1 44444444 1
31111
111
1221
111
11221111111111
112
222112211
222112211
112
222222211
112
211
112
211
112
222222211
112
2 2222211
112
11222222222211
2 22 22 2 22222222
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
222222
222222
222
222
11111111222
1 1 1 11 1 1 1 2 2 2
222
1 1 1 1 1 1 1 1S2
322
1 1 11E3
111
1111
11322
1111
1 1
11
1
11
1
11111111111
12211221122
12211221122
22 2 2 2 2 11 22
1E2
21122
1S1
111
21122
1111
21122
1111
222 2 2
1111
22
22
22
22
22
22
S: starting point
E: ending point
(a)
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
obstacle
spanning tree
coverage path
(b)
Fig. 10 The lengths of
coverage paths created by the
NB-MSTC approach
The length of the coverage paths (robot’s diameter)
Fig. 9 The spanning tree and the coverage path of four robots
450
400
350
300
250
200
150
100
50
0
1
2
3
4
5
6
The length of the coverage paths (robot’s diameter)
8
9
10
11
12
13
14
15
Workspace ID
Robot 1
Fig. 11 The lengths of
coverage paths created by the
BoB algorithm
7
Robot 2
Robot 3
Robot 4
450
400
350
300
250
200
150
100
50
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Workspace ID
Robot 1
Robot 2
Robot 3
Robot 4
15
BoB: An online coverage approach for multi-robot systems
workload is not shared equally, one robot takes more time to
finish its work than the others, leading to increased overall
coverage time. A coverage algorithm for a multi-robot system is optimal in terms of coverage time if it distributes the
balance of workloads among the robots [2]. Our simulations
show that the BoB distributes a well-balanced workload for
robots in which the coverage path length of each robot is
approximately l/n, where l is the total coverage path length
and n is the number of robots. However, sharing the workload cannot be absolutely fair in reality if the number of
robots is more than one, especially for an online algorithm
with an unknown map. Therefore, determining the optimal number of robots to minimize the coverage time is a
challenging problem.
5 Conclusions and future work
This study proposes an online coverage approach for
multi-robot systems in unknown environments, called the
BoB algorithm. The robots are designed according to the
market-based approach, that is, they use only local interactions to coordinate and simultaneously construct nonoverlapping regions in an incremental manner via boustrophedon motions. Furthermore, each robot is equipped with
an intelligent backtracking mechanism to travel to the closest unvisited region. If a robot reaches the end point of
a boustrophedon motion, it performs three main tasks: it
(i) detects backtracking points based on the map of the
workspace built by all robots, (ii) determines the shortest
backtracking path through proposed algorithm greedy A*
search (GA*), and (iii) follows the backtracking path to
cover the next unvisited region. The coverage process is
accomplished when no other backtracking point is detected.
The simulations show that the BoB approach is efficient in
terms of the coverage rate, the coverage path length, and the
balance of the workloads of the robots.
There are still several problems that need to be solved
in future work. First, the robots and obstacles are threedimensional (3D) objects, and therefore, the BoB should
be extended to work in 3D-space. To do this, the BoB
approach needs to be employed in experiments with real
robots in real-world environments to analyze and evaluate
its effectiveness so as to provide the basis for developing
new versions more efficiently. Second, the BoB approach
is inefficient in environments with movable objects because
of its backtracking mechanism. For example, if an object
moves and stands in front of a robot moving toward its backtracking point, then the robot cannot reach the backtracking
point. In such environments, determining the optimal backtracking path for the robot from a single source to multiple
destinations is a difficult task, and we leave it to future work
with deeper analyses.
Acknowledgements The authors are grateful to the Basic Science
Research Program through the National Research Foundation of Korea
(NRF) funded by the Ministry of Education, Science, and Technology
(2010-0012609) for its tremendous support to this work’s completion.
References
1. Agmon N, Hazon N, Kaminka GA (2006) Constructing spanning
trees for efficient multi-robot coverage. In: Proceedings of the
2006 IEEE international conference on robotics and automation.
Orlando, pp 1698–1703
2. Agmon N, Hazon N, Kaminka GA (2008) The giving tree:
constructing trees for efficient offline and online multi-robot
coverage. J Ann Math Artif Intell 52(1):143–168
3. Ahmadi M, Stone P (2006) A multi-robot system for continuous
area sweeping tasks. In: Proceedings of the 2006 IEEE international conference on robotics and automation. Orlando, pp 1724–
1729
4. Botea A, Muller M, Schaeffer J (2004) Near optimal hierarchical
path-finding. J Game Dev 1(1):7–28
5. Choset H (2000) Coverage of known spaces: the boustrophedon
cellular decomposition. Auton Robot 9(1):247–253
6. Choset H (2001) Coverage for robotics a survey of recent results.
Ann Math Artif Intell 31(1):113126
7. Choset H, Pignon P (1997) Coverage path planning: the boustrophedon cellular decomposition. In: Proceedings of the international conference on field and service robotics. Canberra
8. Daniel K, Nash A, Koenig S (2010) Theta*: any-angle path
planning on grids. J Artif Intell Res 39(1):533–579
9. Dias MB, Stentz A A market approach to multirobot coordination.
Technical report, CMU-RI -TR-01-26
10. Dias MB, Stentz A (2003) A comparative study between centralized, market-based, and behavioral multirobot coordination
approaches. In: Proceedings of the 2003 IEEE/RSJ international
conference on intelligent robots and systems. Las Vegas, pp 2279–
2284
11. Dijkstra EW (1959) A note on two problems in connexion with
graphs. Numerische Mathematik 1(1):269–271
12. Ferguson D, Stentz A (2006) Using interpolation to improve path
planning: the field d* algorithm. J Field Robot 23(2):79–101
13. Gabriely Y, Rimon E (2001) Spanning-tree based coverage of continuous areas by a mobile robot. Ann Math Artif Intell 31(4):77–
98
14. Gerlein E, Gonzalez E (2011) Multirobot cooperative model
applied to coverage of unknown regions, multi-robot systems,
trends and development. In: Yasuda T. (ed.) InTech
15. Gonzalez E, Alvarez O, Diaz Y, Parra C, Bustacara C (2005) BSA:
a complete coverage algorithm. In: Proceedings of the IEEE international conference on robotics and automation. Barcelona, pp
2040–2044
16. Guruprasad K, Wilson Z, Dasgupta P (2012) Complete coverage of an initially unknown environment by multiple robots using
voronoi partition. In: Proceedings of the 2nd international conference on adcances in control and optimization of dynamical
systems. Bengaluru
17. Hart PE, Nilsson NJ, Raphael B (1968) A formal basis for the
heuristic determination of minimum cost paths, vol 4
18. Hazon N, Kaminka GA (2005) Redundancy, efficiency and robustness in multi-robot coverage. In: Proceedings of the 2005 IEEE
international conference on robotics and automation. Barcelona,
pp 735–741
19. Hazon N, Kaminka GA (2008) On redundancy, efficiency, and
robustness in coverage for multiple robots. Robotic Auton Syst
56(1):1102–1114
H. H. Viet et al.
20. Hazon N, Mieli F, Kaminka GA (2006) Towards robust on-line
multi-robot coverage. In: Proceedings of the 2006 IEEE international conference on robotics and automation. Orlando, pp 1710–
1715
21. Jager M, Nebel B (2002) Dynamic decentralized area partitioning
for cooperating cleaning robots. In: Proceedings of the 2002 IEEE
international conference on robotics and automation. Washington,
pp 3577–3582
22. Koenig S, Liu Y (2001) Terrain coverage with ant robots: a simulation study. In: Proceedings of the international conference on
autonomous agents. Montreal, pp 600–607
23. Koenig S, Szymanski B, Liu Y (2001) Efficient and inefficient ant coverage methods. Ann Math Artif Intell 31(1):41–
76
24. Kong CS, Peng NA, Rekleitis I (2006) Distributed coverage with
multi-robot system. In: Proceedings of the 2006 IEEE international conference on robotics and automation. Orlando, pp 2423–
2429
25. Lee JH, Choi JS, Lee BH, Lee KW (2009) Complete coverage path planning for cleaning task using multiple robots.
In: Proceedings of the 2009 IEEE international conference
on systems, man, and cybernetics. San Antonio, pp 3618–
3622
26. Mendonça M, Ramos de Arruda LV, Neves F Jr (2012)
Autonomous navigation system using event driven-fuzzy cognitive maps. Appl Intell 37(2):175–188
27. Min TW, Yin HK (1998) A decentralized approach for cooperative sweeping by multiple mobile robots. In: Proceedings of the
1998 IEEE/RSJ international conference on intelligent robots and
systems. Victoria, pp 380–385
28. Nash A, Daniel K, Koenig S, Felner A (2007) Theta*: anyangle path planning on grids. In: Proceedings of the AAAI
conference on artificial intelligence. Vancouver, pp 1177–
1183
29. Rekleitis I, Lee-Shue V, New AP, Choset H (2004) Limited
communication, multi-robot team based coverage. In: Proceedings of the 2004 IEEE international conference on robotics and
automation. New Orleans, pp 3462–3468
30. Rekleitis I, New AP, Rankin ES, Choset H (2008) Efficient boustrophedon multi-robot coverage: an algorithmic approach. J Ann
Math Artif Intell 52(1):109–142
31. Russel SJ, Norvig P (2003) Artificial intelligence a modern
approach. Pearson education, 2nd edn
32. Senthilkumar K, Bharadwaj K (2010) Multi-robot terrain coverage by constructing multiple spanning trees simultaneously. Int J
Robotic Autom 25(3):195–203
33. Senthilkumar K, Bharadwaj K (2012) Multi-robot exploration and
terrain coverage in an unknown environment. Robotic Auton Syst
60(1):123–132
34. Svennebring J, Koenig S (2003) Trail-laying robots for robust
terrain coverage. In: Proceedings of the 2003 IEEE international conference on robotics and automation. Taipei, pp 75–
82
35. Svennebring J, Koenig S (2004) Building terrain-covering ant
robots: a feasibility study. Auton Robot 16(1):313–332
36. Thorpe CE (1984) Path relaxation: path planning for a mobile
robot. In: Proceedings of the AAAI conference on artificial intelligence. Austin, pp 318–321
37. Viet HH, Dang VH, Laskar MNU, Chung T (2013) BA*: an
online complete coverage algorithm for cleaning robots. Appl
Intell 39(2):217–235
38. Zheng X, Jain S, Koenig S, Kempe D (2005) Multi-robot forest
coverage. In: Proceedings of the 2005 IEEE/RSJ international conference on intelligent robots and systems. Edmonton, pp 3852–
3857
39. Zheng X, Koenig S, Kempe D, Jain S (2010) Multirobot forest coverage for weighted and unweighted terrain. IEEE Trans
Robotic 26(6):1018–1031
Hoang Huu Viet received
the B.S. degree in Mathematics from Vinh University,
Nghean, Vietnam, in 1994,
and the B.S. and M.S. degrees
in Computer Science from
Hanoi University of Technology, Hanoi, Vietnam, in
1998 and 2002, respectively.
He received the Ph.D. degree
in Computer Engineering
from Kyung Hee University,
Republic of Korea in August
2013. He is now a lecturer at
Department of Information
Technology, Vinh University,
Vietnam. His current research interests include Artificial Intelligence,
Reinforcement Learning, and Robotics.
Viet-Hung Dang graduated
as an electric-electronics
engineer from HoChiMinh
University of Technology in
2003, Vietnam. He got his
M.S. from the same university
in 2005. After 4 years of pursuing, he received his Ph.D.
degree in Computer Science
from Kyung Hee University,
Republic of Korea in Feb
2012. He is now working for
Research and Development
Center in Duy Tan University, Vietnam. His research
interests are Machine Learning, Artificial Intelligence,
Distributed Computing and
problems on Localization and
Navigation.
SeungYoon Choi received
the B.S. degree in Information and Communication
from Korea Nazarene University, Republic of Korea,
in 2010, and the M.S. degree
in Computer Engineering
from Kyung Hee University,
Republic of Korea, in 2012,
respectively. He is now working toward a Ph.D. degree at
Artificial Intelligence Laboratory, Department of Computer
Engineering, Kyung Hee University, Republic of Korea.
His current research interests
include Machine Learning,
Optimization, and Robotics.
BoB: An online coverage approach for multi-robot systems
TaeChoong Chung received
the B.S. degree in Electronic
Engineering
from
Seoul
National University, Republic of Korea, in 1980, and
the M.S. and Ph.D. degrees
in Computer Science from
KAIST, Republic of Korea, in
1982 and 1987, respectively.
Since 1988, he has been with
Department of Computer
Engineering, Kyung Hee University, Republic of Korea,
where he is now a Professor.
His research interests include
Machine Learning, Meta
Search, and Robotics.