Academia.eduAcademia.edu

Fault-tolerant multi-robot area coverage with limited visibility

2010, Proceedings of the ICRA 2010 Workshop on Search and Pursuit/Evasion in the Physical World: Efficiency, Scalability, and Guarantees

Abstract���We address the problem of multi-robot area coverage and present a new approach in the case where the map of the area and its static obstacles are known and the robots have a limited visibility range. The proposed method starts by locating a set of static guards on the map of the target area and then builds a graph called Reduced-CDT, a new environment representation method based on the Constrained Delaunay Triangulation (CDT). Multi-Prim's is used to decompose the resulted graph into a forest of partial ...

Fault-Tolerant Multi-Robot Area Coverage with Limited Visibility Pooyan Fazli, Alireza Davoodi, Philippe Pasquier, and Alan K. Mackworth Abstract— We address the problem of multi-robot area coverage and present a new approach in the case where the map of the area and its static obstacles are known and the robots have a limited visibility range. The proposed method starts by locating a set of static guards on the map of the target area and then builds a graph called Reduced-CDT, a new environment representation method based on the Constrained Delaunay Triangulation (CDT). Multi-Prim’s is used to decompose the resulted graph into a forest of partial spanning trees (PSTs). Each PST is then modified through a mechanism called Constrained Spanning Tour (CST) to build a cycle which is then assigned to a covering robot. Subsequently, robots start navigating the cycles and consequently cover the whole area. We show that the proposed approach is complete and robust with respect to robot failure. I. INTRODUCTION Multi-robot area coverage is receiving considerable attention due to its applicability in different scenarios such as search and rescue operations, planetary exploration, intruder detection, environment monitoring, floor cleaning and so on. In this task a team of robots is cooperatively trying to observe or sweep an entire area, possibly containing obstacles, with their sensors or actuators. The goal is to build an efficient path for each robot which jointly ensure that every single point in the environment can be seen or swept by at least one of the robots while performing the task. If there is a need to detect some resources in the environment, area coverage guarantees finding all the resources in the target area. There is confusion in the literature regarding the terms Coverage and Exploration. To clarify the problem definition, we note that in exploration, we have an unknown environment and a team of robots is trying to build a map of the area together [22], [4]. In a coverage problem, the map of the environment may be known or unknown and the goal of the team is to jointly observe/sweep the whole area with their sensors or physical actuators. Building a map of the environment is not the ultimate aim of the coverage mission. Another similar class of problems is Boundary Coverage in which, the purpose of coverage is slightly different from the original coverage problem we have defined in this paper. In boundary coverage the aim is to inspect all of the obstacles’ boundaries by a team of robots instead of complete coverage of the area [21]. Several research communities including robotics/agents [10], [8], [2], sensor networks [3], [13] and computational geometry [5] work on this class of area coverage problems. In computational geometry, this problem stems from the Art Gallery problem [16] and its variation for mobile guards called the Watchman Route problem [7], [17]. In the Art P. Fazli and A. K. Mackworth are with the Department of Computer Science, Universiy of British Columbia, Vancouver, B.C., Canada {pooyanf, [email protected]} A. Davoodi and P. Pasquier are with the School of Interacive Arts and Technology, Simon Fraser University, Vancouver, B.C., Canada {ada48, [email protected]} Gallery problem, the goal is to find a minimum number of static guards (control points) which jointly can cover a work space under different restrictions. On the other hand, in the Watchman Route problem the objective is to compute routes watchmen should take to guard an entire area given only the map of the environment. Most research done on the above problem definitions deal with simple polygons without obstacles, unconstrained guard visibility, and single watchman scenarios. From a robotics point of view, in a taxonomy presented by Choset [8], the proposed approaches for area coverage are divided into offline methods, in which the map of the environment is known, and online methods, in which the map of the environment is unknown. Choset [8] further divides the approaches for area coverage based on the methods they employ for decomposing the area: Exact Cellular Decomposition, and Approximate Cellular Decomposition. Previous research on multi-robot area coverage is mostly focused on approaches using the Approximate Cellular Decomposition (e.g. grid-based methods) [1], [23], [12]. These methods have limitations since they do not consider the structure of the environment and have difficulties handling partially occluded cells or covering areas close to the boundaries in continuous spaces. In contrast, methods based on the Exact Cellular Decomposition (e.g. graph-based methods) which employ structures such as the visibility graph for environment representation do not suffer those restrictions [19], [20]. However, while traversing a visibility graph guarantees covering the whole environment in continuous spaces, it might include many redundant movements. A. Overview and Results This paper addresses the concerns mentioned above regarding dealing with the structure of the environments containing static obstacles in the coverage problem. To this end, Reduced-CDT is introduced as a method for representation and modeling of the environment in an efficient way. Also, due to the distributed characteristic of the coverage problem, another mechanism called Multi-Prim’s is applied to decompose the graph representing the environment into a collection of partial spanning trees. Each robot is assigned to a tree and then Constrained Spanning Tour is employed to enable every robot to navigate its assigned tree by building a cycle on it. The proposed approach is complete, meaning every accessible point in the environment will be visited in a finite time. Furthermore, it supports robustness by handling individual robot failure. Our approach has been designed to overcome the restrictive constraint imposed by the robots’ limited visibility range as well. Fig. 1. From Left to Right: (a) Sample Environment (b) Trapezoidal Decomposition (c) Computed Guards II. MULTI-ROBOT AREA COVERAGE We present a cooperative approach to covering a known environment using an arbitrary number of robots. In this part, we make the following simplifying assumptions. Assumption 1. The environment is a known, 2D, simple polygon containing static polygonal obstacles. Assumption 2. Each robot, of the set of robots R, is represented by a point in the environment. Assumption 3. The robots are homogeneous, have the same speed, and can move in all directions. Assumption 4. The robots are assumed to have 360 ◦ field of view and a predefined circular limit of visibility range. Assumption 5. The vision sensors are ideal without noise. Our coverage method is composed of four main steps: 1) First, it determines the locations of static guards required to visually cover a given 2D environment, considering the limited visibility range of the robots’ cameras. 2) Then, it builds the Reduced-CDT, a graph-based representation of the environment. 3) An algorithm called Multi-Prim’s is introduced to partition the graph and construct a forest consisting of as many partial spanning trees as there are covering robots. 4) Afterward, a new method called Constrained Spanning Tour is used to build a cycle on each resultant tree of the forest, and finally, the cycles are allocated individually to the robots. A. Locating Guards with Limited Visibility In our problem definition, we assume robots equipped with panoramic cameras with a 360 ◦ field of view. However, the cameras’ visibility range is limited. The proposed approach initially locates a possibly minimal number of guards required to visually cover an entire area. These static guards are control points that can jointly cover the whole environment while satisfying the visibility constraint of the robots. To this end, the algorithm decomposes the initial target area, a 2D, simple, possibly non-convex polygon with static obstacles, into a collection of convex polygons (Trapezoidal Decomposition). Then, a divide and conquer method is applied to successively divide each of the resulting convex polygons into smaller convex sub-polygons until each of them can be visually covered by one guard. Figure 1 illustrates sequential steps of computing the static guards for a sample environment in Player/Stage [11]. B. Environment Representation In this paper, we investigate a graph structure for environment representation based on the Constrained Delaunay Triangulation. Given the set of obstacles and their corresponding endpoints, the algorithm first uses the method explained in the previous section to create the set of static guards. The CDT is then built on the obstacles and the computed guards. Then, we introduce a mechanism to reduce the graph so as to minimize the distance each robot has to traverse which consequently improves the efficiency of the whole approach. 1) Constrained Delaunay Triangulation: The Delaunay Triangulation of a set of points in the Euclidean plane is a triangulation such that circumcircle of any triangle in the triangulation does not contain vertices other than the three that define it [14]. The Delaunay Triangulation corresponds to the dual graph of the Voronoi tessellation. Figure 2(a) illustrates the Delaunay Triangulation on the sample environment. The Constrained Delaunay Triangulation (CDT) is a variant of the standard Delaunay Triangulation in which a set of pre-specified edges (in our case, edges of the obstacles) must lie in the triangulation [6]. A Constrained Delaunay Triangulation (CDT) is not truly a Delaunay Triangulation. Some of its triangles might not be Delaunay, but they are all constrained Delaunay. Figure 2(b) illustrates the Constrained Delaunay Triangulation on the sample environment. 2) Graph Reduction: The aim of graph reduction is to improve efficiency by minimizing the average or total time taken for the robots to traverse the graph. Algorithm 1 describes the steps of the construction of a reduced graph (Reduced-CDT) on a given environment. The input of the algorithm is the CDT made on the map of the area. The method starts by  using the Floyd-Warshall algorithm to find the set MD = (ci j , vi , v j  )|vi , v j ∈ Vcdt of minimum distances, ci j , and the set SP = (ri j , vi , v j )|vi , v j ∈ Vcdt of shortest paths, ri j , between any pair of vertices vi and v j of the input graph. Fig. 2. From Left to Right: (a) Delaunay Triangulation (b) Constrained Delaunay Triangulation (c) Reduced-CDT The minimum value of all the minimum distances in MD is then selected provided that both the endpoints of the corresponding shortest path in SP belong to the set of static guards, SG, computed in the previous section. The chosen path, including all its vertices and edges, forms the initial component called Connected Component, Gcc . Figure 2(c) illustrates the Reduced-CDT computed on the CDT from the previous section. Algorithm 1 Graph Reduction Input: S Graph Gcdt (Vcdt , Ecdt ), where Vcdt = SG P // CDT SG = {g1 , g2 , ...., gm } // Set of Static Guards P = {p1 , p2 , ...., pn } // Endpoints of Obstacles Ouput: S e Pe ⊂ P Graph Gr cdt (Vr cdt , Er cdt ) where Vr cdt = SG P, 1: set Vr cdt = φ and Er cdt = φ 2: (MD, SP) = FloydWarshall(Gcdt ) 3: (i, j) = arg min(ci j |(ci j , vi , v j ) ∈ MD) (i, j) 4: 5: 6: 7: 8: 9: 10: ri j = GetT heCorrespondingShortestPath(i, j) Gcc (Vcc , Ecc ) = InitialConnectedComponent(ri j ) while ¬all the guards added do g = FindT heClosestGuardTo(Gcc ) Expand(Gcc , g) end while return Gr cdt (Vr cdt , Er cdt ), where Vr cdt = Vcc and Er cdt = Ecc Next, among all the guards that have not yet been added to the component, the algorithm finds the closest guard to the current component, merging the corresponding shortest path with it. Following the same process, the algorithm keeps expanding the Connected Component until there are no more guards to be added to the current component. The resultant Connected Component is the final reduced graph Gr−cdt . |R| partial spanning trees, where |R| is the number of robots of the team. These trees are created incrementally from the initial location of the robots. The Multi-Prim’s algorithm starts by determining the starting points. A corresponding starting point for a robot is a visible reduced graph vertex closest to the robot. In some situations the algorithm might lead to the same starting points for different robots. Having determined all the starting points, the Multi-Prim’s algorithm initiates as many trees as there are covering robots. At this stage, each tree only contains two vertices, (i.e. the robot and the corresponding starting point), and the edge between them. Subsequently, robots try to sequentially expand their own trees (one guard at a time) until all the guards of the reduced graph are visited at least once. The guards are visited in a way that satisfies the following constraints: 1) Find the nearest immediate (that is, ignoring the endpoints of the obstacles) guard, add it and the corresponding path to the tree provided that it does not create a cycle. In case of a tie, choose the guard which maximizes the sum of the distances from the guards most recently selected by the other robots. 2) Do not add a guard which has already been visited by any other robot, unless there is no other unvisited immediate guard. 3) When all the guards of the graph are visited by at least one robot, remove as many as possible of common vertices shared by the trees of the robots. To this end, starting from the most recently selected guard, C. Multi-Prim’s Algorithm The Multi-Prim’s algorithm [9] extends the Prim’s algorithm [18] used to build the minimum spanning tree of a weighted graph. This extension is motivated by the fact that multiple robots are involved in the environment to accomplish the task. The proposed approach has a weighted graph (i.e. Reduced-CDT) as an input and outputs a forest of Fig. 3. Multi-Prim’s Algorithm Fig. 4. From Left to Right: (a) A Sample Tree (b) Double-MST (c) Revised-DMST (d) CST discard the guards and their corresponding paths from the robot’s tree if they had been visited sooner by any other robot. Continue this process until it reaches the most recently selected guard which hasn’t been visited sooner by other robots. Figure 3 illustrates the result of decomposing the reduced graph among three robots on the sample environment. D. Constrained Spanning Tour The next step is to construct a cycle on each partial spanning tree resulted from the Multi-Prim’s algorithm. To this end, we introduce an algorithm called Constrained Spanning Tour (CST) which is an improved variant of the Double-Minimum Spanning Tree (Double-MST) algorithm. Double-MST takes a tree as an input and returns a cycle whose length is twice the length of the tree. In this algorithm, every edge of the tree is visited twice. Figure 4(a) and 4(b) illustrate running the algorithm on a sample tree. A revision can be made to the algorithm in order to form a possibly shorter cycle. Starting from an arbitrary initial point, as indicated by the arrow in Figure 4(c), the revised algorithm called Revised-DMST traverses the vertices in the same way as the Double-MST algorithm does, but whenever it reaches a vertex visited before, it discards it, proceeding to the next vertex along the cycle to find an unvisited one, making a shortcut edge to it. This process continues until it returns back to the starting point. Figure 4(c) illustrates the result of the algorithm. However, because of the obstacles in the environment, our coverage mechanism can not apply the Revised-DMST algorithm. In order to avoid the obstacles, we introduce another algorithm called Constrained Spanning Tour (CST). This algorithm traverses the vertices of the tree similar to the way the Revised-DMST does, with the difference that it uses edges of the original graph (CDT) as shortcuts. The CST algorithm uses backtracking to find out the best shortcut. If the shortcut does not belong to the original graph, the next best shortcut will be considered. For instance, in Figure 4(d), suppose there is no edge connecting the vertices A and B in the original graph. Therefore, the CST algorithm can not add the shortcut edge AB to the path; instead, it selects the shortcut AC, assuming there is such an edge in the CDT graph. It keeps following the same way to find the best shortcut. CST traverses the tree to return to the initial point. In the worst case the result will be the same as the result of the Double-MST algorithm. LenRevised−DMST (T ) ≤ LenCST (T ) ≤ LenDouble−MST (T ) Finally, the robots start navigating the cycles which consequently results in full coverage of the target area. CST has the benefit that it returns the robots to their initial locations, facilitating tasks like garbage collection and storage. III. FAULT-TOLERANT MULTI-ROBOT AREA COVERAGE Robot failure during execution can jeopardize the completion of the area coverage task. By failure we mean the robot is not capable of operating and moving anymore, and by fault tolerance, we mean the ability of the robot team to respond to individual robot failures that may occur at any time during the mission. Our approach addresses the issue through the concept of Supportive trees. Definition 1. A bridge between two trees of a forest is either a vertex or an edge in common or an edge in the original reduced graph with endpoints each located on one of the trees. Definition 2. Two trees of a graph are Mutually Supportive if there is at least a bridge connecting those two trees. The algorithm uses the forest, built on the original reduced graph by Multi-Prim’s algorithm, to find all pairs of Mutually Supportive trees. Lemma 1. There is at least one Supportive tree for each tree of the forest Proof. (Proof by Contradiction) Assume that there is no supportive tree for a tree of the forest, meaning that there is no bridge between this tree and any other trees of the forest. This assumption implies that the tree is disconnected within the original reduced graph, which is in contradiction with the graph’s connectivity. Property 1. Assuming LenA (T ) is the length of the cycle returned by an algorithm A over tree T , we have the following property: Fig. 5. Fault-Tolerant Multi-Robot Area Coverage Algorithm 2 Fault-Tolerant Multi-Robot Area Coverage Input: A forest of n trees, T = {T1 , T2 , . . . , Tn } where n S i=1 VTi = V in which V is the set of guards of the reduced graph and VTi is the set of guards of the tree Ti TF = {TF1 , TF2 , . . . , TFm } // Corresponding Trees of the Failed Robots Output:  ′ where A forest of n − m trees, T ′ = T1′ , T2′ , . . . , Tn−m n−m S i=1 VTi′ = V in which V is the set of guards of the reduced graph and VTi′ is the set of guards of the tree Ti′ 1: set ST = φ // Supportive Trees 2: for all TFi ∈ TF do 3: for all T j ∈ T do / TF 4: if TFi and T j are Mutually Supportive and T j ∈ then S 5: ST = ST T j 6: end if 7: end for 8: end for 9: while ¬all the guards o f the graph Gr cdt visited do 10: for all Ti′ ∈ ST do 11: find v ∈ V which is the nearest immediate guard to Ti′ in Gr cdt and ¬visited 12: if T here is no such a vertex v then 13: find v ∈ V which is the nearest immediate guard to Ti′ in Gr cdt 14: end if 15: Ti′ .push(v) 16: end for 17: end while 18: for all Ti′ ∈ ST do 19: while Ti′ .top() visited sooner by any other robot do 20: Ti′ .pop() 21: end while 22: end for 23: return T ′ Definition 3. Robots working on two Mutually Supportive trees are also Mutually Supportive. Corollary 1. Each robot has at least one Supportive robot. When a robot fails, all the vertices of its assigned tree are released. Then all of its Supportive robots expand their trees through the Multi-Prim’s algorithm to possess the released vertices and to cover the whole environment again. Theorem 1. (Robustness) The approach is robust even if |R| − 1 of the robots fail, or in other words, as long as at least one robot is operating correctly (|R| is the number of robots). Proof. (Proof by Induction) We want to show that the statement is true for all number of robots i from 1 to |R| − 1, meaning that if i robots fail, the remaining robots will still be able to cover the whole area (or the reduced graph). Induction Base: Let i = 1. According to Corollary 1, each robot has at least one Supportive robot. Therefore, if a robot fails, then its supportive robots expand their trees to possess all the released vertices of the failed robot and consequently cover the whole area again. Induction Step: Assume if i = k robots fail during the mission, the remaining robots can still cover the whole environment. It must then be shown for i = k + 1 robots. |R| − k robots can cover the whole environment, meaning that there are |R| − k trees within the environment which by navigating around them (CSTs), the robots can together cover the whole area. According to Lemma 1, there is at least one Supportive tree for each tree of the forest. Therefore, if one more robot fails during the mission, its Supportive robots expand their trees to possess all the released vertices of the failed robot and consequently cover the whole area again. Figure 5 illustrates the map of the environment after one of the robots fails. IV. ANALYSIS OF THE ALGORITHM The variation of the problem with just one robot operating in an environment without obstacles has an exact polynomial time solution. But, extending the problem to support obstacles in the environment or allowing multiple robots (when minimizing the longest path or sum of the paths) make the corresponding decision problems hard. The hardness proofs use simple reductions from the TSP [7] and partition [15] problems, respectively. A. Overall Complexity In summary, the complexity order of the different stages of the proposed algorithm is shown in Table I: TABLE I C OMPLEXITY OF D IFFERENT S TAGES OF THE C OVERAGE A LGORITHM Stages of the Algorithm Locating Guards Environment Representation Multi-Prim’s Algorithm Constrained Spanning Tour Time Complexity O(n2 log n2 ) O((n + m)3 ) O(|R|(n′ + m)log(n′ + m)) O(|R|(n′ + m)2 ) n: Number of vertices of the obstacles n′ : Number of vertices of the obstacles in the reduced graph m: Number of guards |R|: Number of robots Since the complexity order of the whole coverage mechanism is dominated by the Environment Representation part, the entire approach is a polynomial time algorithm of complexity of O((n + m)3 ) B. Other Properties Using multiple robots reduces the coverage time by dividing the task among the robots. The coverage time of the area is determined by the robot traversing the longest distance in the environment. We define the running time of an area coverage task as the maximum of the distances each robot has to traverse in the area, maxr∈R (dist(r)), where dist(r) is the distance traversed by robot r. Property 2. (Worst Case Running Time) The worst case running time of the proposed approach is 2 × weight(G), where G is the Reduced-CDT graph and weight(G) is the sum of the lengths of all edges in G. Proof. In the worst case, the coverage time for a team of |R| robots is equal to that of a single robot team. The worst case scenario happens when all the robots start from initial locations very close to each other and the environment (e.g. a narrow corridor) can be represented by a small and sparse graph (e.g. a chain of vertices, resembling a straight line). Theorem 2. (Completeness) The proposed approach covers every accessible point in the environment in a finite time. Proof. As mentioned earlier, the computed static guards can together inspect the whole target area considering the limited visibility constraint of the robots’ cameras. In the MultiPrim’s step, the robots divide the reduced graph created on the static guards among themselves so that the union of the generated trees includes all the guards. Hence, traversing the cycles (CSTs) created on the trees assigned to the robots leads to visiting all the static guards in the area and therefore to full inspection of the environment. V. CONCLUSION AND FUTURE WORK This paper investigated the multi-robot area coverage problem and presented a new approach for covering a known polygonal area cluttered with static obstacles. The robots’ cameras are assumed to have a limited visibility range. The proposed approach can be used in other applications such as border inspection instead of area coverage. It is also guaranteed to be complete and robust provided that at least one robot operates correctly. There are numerous challenging future research directions for this problem. Some are as follows: 1) Heterogeneity: Heterogeneity can be defined in different aspects and contexts, such as different movement or sensing capabilities of the robots, and so on. 2) Open Systems: The current approach is robust to robot failure during the mission but what if a new robot joins the team in the middle of the execution? 3) Priority: In some applications, parts of the target area should be visited or covered sooner than others due to different priorities. 4) Robustness: In this paper we investigated robot failure. There are other robustness criteria that need to be dealt with in the real world, such as robot action failure, communication failure, message loss, and such. 5) Communication: The robots could have a limited range of communication, meaning a message sent by a robot is transmitted only to robots within a certain distance from that robot. 6) Dynamic Environments: The robot team should have the ability to change its behavior over time in response to a dynamic environment (e.g. dynamic obstacles or an environment changing in shape or size), to either improve performance or to prevent unnecessary degradation in performance. R EFERENCES [1] N. Agmon, N. Hazon, and G. A. Kaminka, “The giving tree: constructing trees for efficient offline and online multi-robot coverage,” Annals of Mathematics and Artificial Intelligence, vol. 52, no. 2-4, pp. 143–168, 2008. [2] M. Ahmadi and P. Stone, “A multi-robot system for continuous area sweeping tasks,” in Proceedings of the IEEE International Conference on Robotics and Automation, ICRA 2006, May 2006, pp. 1724–1729. [3] I. F. Akyildiz, S. Weilian, Y. Sankarasubramaniam, and E. Cayirci, “A survey on sensor networks,” IEEE Communications Magazine, vol. 40, no. 8, pp. 102–114, 2002. [4] W. Burgard, M. Moors, D. Fox, R. Simmons, and S. Thrun, “Collaborative multi-robot exploration,” in Proceedings of the IEEE International Conference on Robotics and Automation, ICRA 2000, vol. 1, 2000, pp. 476–481. [5] S. Carlsson, B. J. Nilsson, and S. C. Ntafos, “Optimum guard covers and m-watchmen routes for restricted polygons,” International Journal of Computational Geometry and Applications, vol. 3, no. 1, pp. 85– 105, 1993. [6] L. P. Chew, “Constrained delaunay triangulations,” in Proceedings of the Symposium on Computational Geometry, 1987, pp. 215–222. [7] W. Chin and S. Ntafos, “Optimum watchman routes,” in Proceedings of the Second Annual Symposium on Computational Geometry, SCG ’86. New York, NY, USA: ACM, 1986, pp. 24–33. [8] H. Choset, “Coverage for robotics – a survey of recent results,” Annals of Mathematics and Artificial Intelligence, vol. 31, no. 1-4, pp. 113– 126, 2001. [9] A. Davoodi, P. Fazli, P. Pasquier, and A. K. Mackworth, “On multirobot area coverage,” in Proceedings of the 7th Japan Conference on Computational Geometry and Graphs, JCCGG 2009, 2009, pp. 75–76. [10] P. Fazli, A. Davoodi, P. Pasquier, and A. K. Mackworth, “Multirobot area coverage with limited visibility,” in Proceedings of The 9th International Conference on Autonomous Agents and Multiagent Systems, AAMAS 2010, 2010. [11] B. P. Gerkey, R. T. Vaughan, and A. Howard, “The Player/Stage project: Tools for multi-robot and distributed sensor systems,” in Proceedings of the 11th International Conference on Advanced Robotics, 2003, pp. 317–323. [12] N. Hazon and G. Kaminka, “Redundancy, efficiency and robustness in multi-robot coverage,” in Proceedings of the IEEE International Conference on Robotics and Automation, ICRA 2005, April 2005, pp. 735–741. [13] A. Krause, C. Guestrin, A. Gupta, and J. Kleinberg, “Near-optimal sensor placements: maximizing information while minimizing communication cost,” in Proceedings of the 5th International Conference on Information Processing In Sensor Networks, IPSN 2006, 2006, pp. 2–10. [14] D. T. Lee and B. J. Schachter, “Two algorithms for constructing a delaunay triangulation,” International Journal of Computer Information Science, vol. 9, no. 3, pp. 219–242, 1980. [15] J. Mitchell and E. Wynters, “Watchman routes for multiple guards,” in Proceedings of the 3rd Canadian Conference on Computational Geometry, 1991, pp. 126–129. [16] J. O’Rourke, Art gallery theorems and algorithms. New York, NY, USA: Oxford University Press, 1987. [17] E. Packer, “Computing multiple watchman routes,” in 7th International Workshop on Experimental Algorithms, WEA, ser. Lecture Notes in Computer Science, C. C. McGeoch, Ed., vol. 5038. Springer, 2008, pp. 114–128. [18] A. K. Ravindra, T. L. Magnanti, and J. B. Orlin, Network Flows: Theory, Algorithms, and Applications. Prentice Hall, February 1993. [19] I. M. Rekleitis, G. Dudek, and E. E. Milios, “Multi-robot exploration of an unknown environment, efficiently reducing the odometry error,” in Proceedings of the International Joint Conference on Artificial Intelligence, IJCAI 1997, 1997, pp. 1340–1345. [20] I. M. Rekleitis, V. Lee-Shue, A. Peng New, and H. Choset, “Limited communication, multi-robot team based coverage,” in Proceedings of the IEEE International Conference on Robotics and Automation, ICRA 2004, vol. 4, 2004, pp. 3462–3468. [21] K. Williams and J. Burdick, “Multi-robot boundary coverage with plan revision,” in Proceedings of the IEEE International Conference on Robotics and Automation, ICRA 2006, 2006, pp. 1716–1723. [22] B. Yamauchi, “Frontier-based exploration using multiple robots,” in Proceedings of the Second International Conference on Autonomous Agents, AGENTS 1998, 1998, pp. 47–53. [23] X. Zheng, S. Jain, S. Koenig, and D. Kempe, “Multi-robot forest coverage,” in Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, IROS 2005, 2005, pp. 3852–3857.