Academia.eduAcademia.edu

BoB: an online coverage approach for multi-robot systems

2014, Applied Intelligence

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

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.