This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

\sidecaptionvpos

figurec

Multi-Robot Path Planning in Complex Environments via Graph Embedding

Xifeng Gao1, Zherong Pan2, and Ruiqi Ni1
1Xifeng Gao and Ruiqi Ni are with Department of Computer Science, Florida State University (gao@cs.fsu.edu and rn19g@my.fsu.edu). 2Zherong Pan is with Department of Computer Science, University of Illinois at Urbana-Champaign (zherong@illinois.edu).
Abstract

We propose an approach to solve multi-agent path planning (MPP) problems for complex environments. Our method first designs a special pebble graph with a set of feasibility constraints, under which MPP problems have feasibility guarantee. We further propose an algorithm to greedily improve the optimality of planned MPP solutions via parallel pebble motions. As a second step, we develop a mesh optimization algorithm to embed our pebble graph into arbitrarily complex environments. We show that the feasibility constraints of a pebble graph can be converted into differentiable geometric constraints, such that our mesh optimizer can satisfy these constraints via constrained numerical optimization. We have evaluated the effectiveness and efficiency of our method using a set of environments with complex geometries, on which our method achieves an average of 99.0%99.0\% free-space coverage and 30.3%30.3\% robot density within hours of computation on a desktop machine.

I Introduction

MPP is a unified theoretical model of various applications, including warehouse arrangement [1], coverage planning for flooring vacuuming [2, 3], and inspection planning for search and rescue [4]. Some applications, such as flooring vacuuming, search and rescue, require MPP planners to tackle complex environments. Intuitively, a task can be accomplished more efficiently when more robots are available. However, coordinating a large number of robots for complex environments can incur a high computational cost. Indeed, determining the feasibility of simplified MPP instances have been shown to be PSPACE-hard [5] (for rectangular objects) and strongly NP-hard [6] (for polygonal environments). It is thus unsurprising that brute-force search algorithms [7, 8, 9, 10] are only practical for tens of robots.

Instead of aiming at generally complex environments, a row of prior works [11, 12, 13] assume that robots can only move on a discrete graph, i.e. robots reside in a discrete set of vertices and move along a discrete set of paths connecting the vertices. For special graphs, such as trees [11, 13] and regular grids [14, 15], determining feasibility and even finding near optimal solutions are polynomial-time solvable. In his recent work, [15] [15] proposed to use curved grids to tile complex environments, but no practical algorithm has been proposed to construct such grids for general geometries. When the shape of an environment has inherent irregularity as illustrated in Figure 1, regular geometric patterns can generate a low-level of coverage or miss curved-boundary regions.

Refer to caption
Figure 1: For an environment with non-axis aligned boundaries, compared to a triangulation in the lattice style (top left) and its resulting graph (bottom left), our method generates a boundary aligned triangulation (top right) that can produce a graph with full coverage of the entire environment (bottom right). MPP problems on the graph are always feasible when robots (orange) are arranged on the graph vertices.

Main Results: We propose a MPP planner that generalizes the idea of graph-based algorithms [1, 16, 15, 12] to complex environments with curved boundaries. Our method uses a special graph topology, on which robots can both move along edges and spin in loops. When the graph satisfy certain geometric properties, it has been shown in [17, 13] that MPP instances are always feasible under certain geometric conditions. We further propose a space-time search algorithm to find parallel motions and greedily improve the makespan. As our key contribution, we show that our graph can be topologically identified with a planar triangle mesh, where the geometric properties of the graph are mapped to differentiable geometric constraints of the triangles. As a result, we can adapt the greedy triangle mesh optimization framework proposed in [18, 19] to optimize a graph that can be embedded into arbitrarily complex environments. During the mesh optimization, a constrained numerical optimization is used to ensure all the geometric constraints are satisfied, i.e., MPP instances are feasible on the graph.

We have evaluated our method on a set of 1515 complex environments including 2D floorplans of houses, malls, and maps. Our algorithm is efficient, allowing a graph containing thousands of robots to be generated within an hour on average using a desktop machine. Our generated graph embedding not only aligns well with the curved input boundary but also has high free-space coverage ratio of 99.0%99.0\% and robot density ratio of 30.3%30.3\% on average. In addition, compared to sequential scheduling, our space-time search algorithm empirically reduces the makespan by a factor of 15×15\times.

II Related Work

In this section, we review related works on MPP, mesh optimization, and graph embedding.

MPP problems in a general setting is intractable [5, 6] and practical methods target at solving restricted problem subclass. If the number of robots is small, then brute-force search is tractable. Early works [8, 20] use RRT or PRM as sub-problem solvers and are thus probabilistically complete. When robots are restricted to move on a graph, their motions can be enumerated using conflict-based search [10] or integer programming [16]. These algorithms are deterministically complete and optimal. For larger robot swarms, state-of-the-art results restrict robots to a graph of special topology such as trees [11] and loops [13], where feasible solutions can be found in polynomial time, and regular grids [15], where near optimal solutions can be found up to a constant factor. Our method resembles [13] in that we allow robots to move and spin. To adapt our method to arbitrarily complex geometries, we cannot guarantee optimality, but we greedily improve optimality via space-time search.

Mesh Optimization algorithm was originally proposed in [19]. The algorithm defines a set of possible remeshing operators that change both the geometry and topology of a mesh and exhaustively applies these operators to monotonically improve a given quality metric. Mesh optimization finds applications in geometric processing [18, 21], and physics-based modeling [22, 23]. These applications use similar algorithm frameworks but differ in the set of operators and the quality metric. Although the framework proposed in [19] is greedy and only achieves local optimality, it is capable of exploring a large portion of solution space. In robotic research, there are similar ideas of cell decomposition [24, 25] and resolution-complete motion planning. Meshes are also used in distributed multi-robot coordination [26, 27] that considers moving a group of robots while maintaining given topological patterns.

Graph Embedding applies the discrete graph theory of MPP to continuous environments. It has been used in [14, 1, 15] that consider rectangular, triangular, and hexagonal grids. These works do not allow the graph topology or the geometry to be modified. Optimal graph embedding problems have also been applied to network optimization and embedding [28, 29], where the topology of the graph can be modified but the geometries (vertex positions of the graph) are fixed. Recent work on layout optimization [30, 31] allows simultaneous modification of geometry and topology for urban city designing. Graph embedding is considered more challenging than mesh optimization because it has to preserve a set of topological constraints. We show that the special topological constraints in MPP problems can be preserved during mesh optimization by limiting the set of legal remeshing operators in [19].

III Problem Statement

We consider planar, labeled, disk-shaped MPP in a complex workspace 𝒲2\mathcal{W}\subset\mathbb{R}^{2} with piecewise linear boundaries. We assume there are NN robots centered at 𝐱1,,N𝒲\mathbf{x}_{1,\cdots,N}\in\mathcal{W}. All the robots have an identical radius rr, so the iith robot takes up the circular region: C(𝐱i){𝐱|𝐱𝐱ir}𝒲C(\mathbf{x}_{i})\triangleq\{\mathbf{x}|\|\mathbf{x}-\mathbf{x}_{i}\|\leq r\}\subset\mathcal{W}. Our MPP problem is defined as a permutation σ\sigma of robot locations, such that the start position of the iith robot is 𝐱i\mathbf{x}_{i} and its goal position is 𝐱σ(i)\mathbf{x}_{\sigma(i)}. As a result, our robots can only move to finitely many positions, we further restrict the robots’ moving paths to a finite set of edges. In other words, robots are restricted to a graph 𝒢=<𝒳,>\mathcal{G}=<\mathcal{X},\mathcal{E}> that can be embedded into 𝒲\mathcal{W}. Here 𝒳\mathcal{X} is the set of vertices mapped to robots’ positions 𝒳{𝐱1,,𝐱N}\mathcal{X}\triangleq\{\mathbf{x}_{1},\cdots,\mathbf{x}_{N}\} and we refer to a graph vertex and a robot position interchangeably. \mathcal{E} is the set of edges connecting vertices in 𝒳\mathcal{X} and we refer to a path connecting two positions in 𝒲\mathcal{W} and a graph edge interchangeably.

Our method consists of two steps. In our first step (Section IV), we consider a subclass of graph topology that is a special case of [17]. Our graph consists of simple loops with 3 vertices. These 3-loops are connected by extra edges into a single, connected components. Two kinds of moves are available for the robot: A cyclic move allows a group of 3 robots to cyclically permute locations along a 3-loop. A vacant move allows a robot to move along any edge 𝐞\mathbf{e}\in\mathcal{E} connecting 𝐱i\mathbf{x}_{i} and 𝐱j\mathbf{x}_{j}, as long as 𝐱j\mathbf{x}_{j} is not occupied by any other robot (a vacant vertex). It has been shown in [17] that MPP problems are feasible on such graphs, as long as the number of robots is less than |𝒳||\mathcal{X}|. However, if the number of robots is strictly |𝒳|1|\mathcal{X}|-1, then the worst case makespan can be 𝒪(|𝒳|2)\mathcal{O}(|\mathcal{X}|^{2}). As the number of robots decreases, more vacant vertices are available that allows multiple robots to move simultaneous. To exploit extra vacant vertices, we present a space-time search algorithm that schedule simultaneous robot motions to improve the makespan.

While our first step only considers the graph topology, our second step (Section V and Section VI) focuses on the geometry of the graph. Specifically, we compute a planar embedded of 𝒢\mathcal{G} into 𝒲\mathcal{W} such that, for any 𝐱i𝒳\mathbf{x}_{i}\in\mathcal{X}, C(𝐱i)𝒲C(\mathbf{x}_{i})\subset\mathcal{W} and C(𝐱i)C(𝐱j)=C(\mathbf{x}_{i})\cap C(\mathbf{x}_{j})=\emptyset for any iji\neq j. We further ensure that a cyclic move on any 3-loop and a vacant move along any 𝐞\mathbf{e}\in\mathcal{E} can be performed in a collision-free manner. A planar embedding satisfying the above conditions are considered feasible. In addition to ensuring feasibility, our algorithm maximizes a user-defined metric function (𝒢)\mathcal{M}(\mathcal{G}) that encodes different requirements for a “good” graph.

IV MPP on Loop Graphs

In this section, we assume that robots can move on 𝒢\mathcal{G} in a collision-free manner and present the graph’s topological properties, under which any MPP problems can be solved.

Refer to caption

Case ICase II

Figure 2: Our graph (a) consists of 3-loops (red edges), along which cyclic moves can be performed along (black, arced) arrows, connected by (blue) inter-loop edges, along which vacant moves can be performed along (black) arrows. An MPP problem can be solved using a series of sub-swaps between two connected vertices. Case I: If the two vertices, blue and yellow, belong to the same loop, then we can move the vacant vertex to the loop (1,2) and swap the two vertices via 3 cyclic moves (4,5,6). Case II: If two vertices belong to two connected loops, then we can use (1,2,3,4) to reduce to Case I. After the swaps, all other robots’ position are unaltered using a reversed sequence of moves.

IV-A MPP Feasibility

As illustrated in Figure 2 (a), we consider connected graphs consisting of simple loops with 3 vertices that are connected by additional inter-cell edges. We can show that MPP instances restricted to such graphs are always feasible:

Lemma IV.1

If 𝒢\mathcal{G} has more than 1 loop, then any MPP problem with N<|𝒳|N<|\mathcal{X}| is feasible.

We only give a sketch of proof and refer readers to [17] for a complete proof. Any permutation σ\sigma of robot positions can be decomposed into a set of pairwise swaps. To swap the location of two robots, 𝐱i\mathbf{x}_{i} and 𝐱j\mathbf{x}_{j}, we first find a path in 𝒢\mathcal{G} connecting 𝐱i\mathbf{x}_{i} and 𝐱j\mathbf{x}_{j}, which is always possible as 𝒢\mathcal{G} is connected, denoted as 𝐱i,𝐱1,𝐱2,,𝐱K,𝐱j\mathbf{x}_{i},\mathbf{x}_{1},\mathbf{x}_{2},\cdots,\mathbf{x}_{K},\mathbf{x}_{j}. We can further decompose the swap into a series of sub-swaps:

𝐱i𝐱1,,𝐱i𝐱K,𝐱i𝐱j,𝐱K𝐱j,,𝐱1𝐱j,\displaystyle\mathbf{x}_{i}\leftrightarrow\mathbf{x}_{1},\cdots,\mathbf{x}_{i}\leftrightarrow\mathbf{x}_{K},\mathbf{x}_{i}\leftrightarrow\mathbf{x}_{j},\mathbf{x}_{K}\leftrightarrow\mathbf{x}_{j},\cdots,\mathbf{x}_{1}\leftrightarrow\mathbf{x}_{j},

where each pair of positions in a sub-swap are connected directly by some 𝐞\mathbf{e}\in\mathcal{E}, where 𝐞\mathbf{e} is either a loop edge or an inter-cell edge. In either case, the sub-swap can be performed with the help of a nearby vacant vertex as illustrated in Figure 2. Finally, such vacant vertex must exist because our number of robots is strictly less than the number of vertices and the vacant position can be moved anywhere via vacant moves.

IV-B Parallel Robot Moves

[Uncaptioned image]

𝒢1\mathcal{G}_{1}𝒢2\mathcal{G}_{2}𝒢3\mathcal{G}_{3}𝒢4\mathcal{G}_{4}

In the worst case, the makespan of above mentioned MPP solutions is 𝒪(|𝒳|2)\mathcal{O}(|\mathcal{X}|^{2}). This is because we have only one vacant vertex, which is needed to perform every sub-swap. When more vacant vertices are available, we can parallelize the sub-swaps and improve the makespan. We present a space-time search algorithm to find parallel sub-swaps, which is similar to [15] in principle but adapted to graphs of more general topology. As illustrated in the inset, we first use the CLINK algorithm [32] to cluster the loops into a binary tree. This algorithm starts by treating each loop as a separate cluster, and then iteratively merge two smallest clusters (with the smallest number of vertices) until only one cluster is left. We then iteratively merge small leaf nodes until all leaf nodes have more than K>1K>1 loops (K=4K=4 in the inset), where KK is a user specified parameter determining the congestion-level. In the worst case, this method requires |𝒳|/(3K)\lceil|\mathcal{X}|/(3K)\rceil vertices to be left vacant. Next, we introduce a vacant vertex for each leaf node. As a result, cyclic moves and vacant moves can be performed parallelly within a leaf node and two pairs of connected leaf nodes can perform two robot position swaps in parallel. Finally, we adopt the divide-and-conquer algorithm proposed in [15]. For every internal binary tree node, we consider their two children, which are two connected sub-graph. We swap robots between the two sub-graphs until 𝐱i\mathbf{x}_{i} and 𝐱σ(i)\mathbf{x}_{\sigma(i)} belongs to the same sub-graph for all i=1,,Ni=1,\cdots,N. This procedure is performed recursively from the root node to all the leaves, where the swaps within different sub-trees are performed in parallel.

IV-C Scheduling Robot Swaps between Sub-Graphs

The major challenging in the above algorithm lies in the scheduling of parallel robot position swaps between sub-graphs, for which we use a space-time data structure. We denote 𝒢i\mathcal{G}_{i} as the iith leaf node and we assume there are N1N_{1} leaf nodes in one of the sub-graph and N2N_{2} in the other (N1+N2|𝒳|/(3K)N_{1}+N_{2}\leq\lceil|\mathcal{X}|/(3K)\rceil). The inter-sub-graph position swaps are decomposed into several rounds, where each round consists of several parallel position swaps between two connected leaf nodes. We denote as 𝒢i,t\mathcal{G}_{i,t} as the state of 𝒢i\mathcal{G}_{i} at the beginning of ttth round. We further connect 𝒢i,t\mathcal{G}_{i,t} and 𝒢j,t+1\mathcal{G}_{j,t+1} using a space-time edge 𝐞ij,t\mathbf{e}_{ij,t} if two conditions hold: 1) 𝒢i\mathcal{G}_{i} and 𝒢j\mathcal{G}_{j} are connected by some inter-loop edge 𝐞\mathbf{e}\in\mathcal{E}; 2) 𝒢i\mathcal{G}_{i} and 𝒢j\mathcal{G}_{j} belongs to the same sub-graph, i.e., i,jN1i,j\leq N_{1} or N1<i,jN1+N2N_{1}<i,j\leq N_{1}+N_{2}. Our space-time data structure is defined as the space-time graph <{𝒢i,t|tt0+1},{𝐞ij,t|tt0}><\{\mathcal{G}_{i,t}|t\leq t_{0}+1\},\{\mathbf{e}_{ij,t}|t\leq t_{0}\}>, where t0t_{0} is the maximal allowed number of rounds. Note that the space-time graph is directed with each 𝐞ij,t\mathbf{e}_{ij,t} directing from 𝐞j,t+1\mathbf{e}_{j,t+1} to 𝐞i,t\mathbf{e}_{i,t}. The inter-sub-graph position swaps can be accomplished by multi-rounds of swaps between leaf nodes, which in turn corresponds to selecting a set of space-time edges 𝐞ij,t\mathbf{e}_{ij,t}. Our algorithm greedily select a set of space-time edges leading to an inter-sub-graph position swap in the earliest round. After each selection, we remove the conflicting space-time edges before selecting the next set of edges, until all the robots belong to the correct sub-graph. When no position swaps can be found for the given t0t_{0}, we introduce a new round and increase t0t_{0} by one. This procedure is guaranteed to terminate.

Algorithm 1 Space-Time Scheduling of Robot Swaps
1:Sub-graphs A: leaves G1,,N1G_{1,\cdots,N_{1}} and GN1+1,,N1+N2G_{N_{1}+1,\cdots,N_{1}+N_{2}}
2:t02t_{0}\leftarrow 2
3:Build space-time graph <{𝒢i,t|tt0+1},{𝐞ij,t|tt0}><\{\mathcal{G}_{i,t}|t\leq t_{0}+1\},\{\mathbf{e}_{ij,t}|t\leq t_{0}\}>
4:while i=1,,N1+N2#𝒢i,t0>0\sum_{i=1,\cdots,N_{1}+N_{2}}\#\mathcal{G}_{i,t_{0}}>0 do
5:    Found\leftarrowFalse
6:    for t=1,,t0t=1,\cdots,t_{0} do
7:         for Connected leaf nodes 𝒢a,𝒢b\mathcal{G}_{a},\mathcal{G}_{b} do
8:             Run Dijkstra’s algorithm from 𝒢a,t,𝒢b,t\mathcal{G}_{a,t},\mathcal{G}_{b,t}
9:             until some 𝒢i,t\mathcal{G}_{i,t^{\prime}} satisfying Equation 1 is found
10:             if Found both shortest paths then
11:                 Select edges on the two shortest paths
12:                 for Selected edge 𝐞ij,t\mathbf{e}_{ij,t} do
13:                     Remove {𝐞kj,t,𝐞ik,t}\{\mathbf{e}_{kj,t},\mathbf{e}_{ik,t}\}
14:                     for t=1,,t0t^{\prime}=1,\cdots,t_{0} do
15:                         Remove
16:                         {𝐞ki,t,𝐞kj,t|mint′′=t,,t0#/𝒢j,t′′=0}\{\mathbf{e}_{ki,t^{\prime}},\mathbf{e}_{kj,t^{\prime}}|\underset{t^{\prime\prime}=t^{\prime},\cdots,t_{0}}{\min}\#_{/}\mathcal{G}_{j,t^{\prime\prime}}=0\}                                       
17:                 Remove {𝐞ak,t,𝐞bk,t}\{\mathbf{e}_{ak,t},\mathbf{e}_{bk,t}\}
18:                 Found\leftarrowTrue                           
19:    if Found\leftarrowFalse then
20:         t0t0+1t_{0}\leftarrow t_{0}+1
21:         Build space-time nodes 𝒢i,t0+2\mathcal{G}_{i,t_{0}+2}, edges 𝐞ij,t0+1\mathbf{e}_{ij,t_{0}+1}     

Our method is outlined in Algorithm 1, which is composed of two main steps. First, we consider all pairs of connected leave nodes <𝒢a,t,𝒢b,t><\mathcal{G}_{a,t},\mathcal{G}_{b,t}> belonging to different sub-graphs. We find the two shortest paths connecting from 𝒢a,t\mathcal{G}_{a,t}, 𝒢b,t\mathcal{G}_{b,t} to some leaf node containing a robot that belongs to a different sub-graph. Specifically, we run Dijkstra’s algorithm with all-one edge weights from both 𝒢a,t\mathcal{G}_{a,t} and 𝒢b,t\mathcal{G}_{b,t}. We terminate the Dijkstra’s algorithm at any 𝒢i,t\mathcal{G}_{i,t} satisfying the following condition:

mint=t,,t0(#𝒢i,t)>0,\underset{t^{\prime}=t,\cdots,t_{0}}{\min}(\#\mathcal{G}_{i,t^{\prime}})>0, (1)

where we define #𝒢i,t\#\mathcal{G}_{i,t} as the number of robots within 𝒢i,t\mathcal{G}_{i,t} that belongs to a different sub-graph from 𝒢i,t\mathcal{G}_{i,t} at the beginning of the ttth round. Intuitively, Equation 1 ensures that swapping one more robot away from 𝒢i\mathcal{G}_{i} during the ttth round will not cause conflict with the number of to-be-swapped robots required by other swapping operations in the future rounds. Finally, note that we consider nodes pairs in a time-ascending order. The first pair of leaf nodes, for which such paths can be found, are selected, which corresponds to the position swap in the earliest round.

Our second step would remove three types of conflicting edges: 1) If an edge 𝐞ij,t\mathbf{e}_{ij,t} is selected, then all the edges {𝐞kj,t,𝐞ik,t|k=1,,N1+N2}\{\mathbf{e}_{kj,t},\mathbf{e}_{ik,t}|k=1,\cdots,N_{1}+N_{2}\} are removed because they conflict with the edges along the two paths; 2) all the edges {𝐞ak,t,𝐞bk,t|k=1,,N1+N2}\{\mathbf{e}_{ak,t},\mathbf{e}_{bk,t}|k=1,\cdots,N_{1}+N_{2}\} are removed because they conflict with the inter-sub-graph swap between 𝒢a,t\mathcal{G}_{a,t}, 𝒢b,t\mathcal{G}_{b,t}; 3) Let’s define #/𝒢j,t\#_{/}\mathcal{G}_{j,t} as the number of robots belonging to the same sub-graph as 𝒢j\mathcal{G}_{j} at the beginning of ttth round (#𝒢j,t+#/𝒢j,t+1\#\mathcal{G}_{j,t}+\#_{/}\mathcal{G}_{j,t}+1 equals to the number of vertices in 𝒢j\mathcal{G}_{j}), then all the edges:

{𝐞kj,t|mint=t,,t0#/𝒢j,t=0k=1,,N1+N2},\displaystyle\{\mathbf{e}_{kj,t}|\underset{t^{\prime}=t,\cdots,t_{0}}{\min}\#_{/}\mathcal{G}_{j,t^{\prime}}=0\land k=1,\cdots,N_{1}+N_{2}\},

should be removed. This is because selecting edge 𝐞kj,t\mathbf{e}_{kj,t} implies that a robot 𝐱a𝒢k,t\mathbf{x}_{a}\in\mathcal{G}_{k,t} must be swapped with another robot 𝐱b𝒢j,t\mathbf{x}_{b}\in\mathcal{G}_{j,t} at ttth round. We must have 𝐱b\mathbf{x}_{b} belongs to the same sub-graph as 𝒢j\mathcal{G}_{j} at the beginning of ttth round, because otherwise the shortest path would stop at 𝐱b\mathbf{x}_{b} instead of moving on to 𝐱a\mathbf{x}_{a}. However, mint=t,,t0#/𝒢j,t=0\underset{t^{\prime}=t,\cdots,t_{0}}{\min}\#_{/}\mathcal{G}_{j,t^{\prime}}=0 implies that, if 𝐱b\mathbf{x}_{b} was swapped out of 𝒢j\mathcal{G}_{j} during ttth round, there will not be enough to-be-swapped agents (that belongs to the same sub-graph as 𝒢j\mathcal{G}_{j}) during some future rounds.

V Graph Embedding and Mesh Discretization

In this section, we move on to consider the geometric properties of 𝒢\mathcal{G} that allows robots to move in a collision-free manner within a 𝒲\mathcal{W} of arbitraily complex geometry. Our key innovation is a mapping from a mesh discretizing 𝒲\mathcal{W} to a graph embedded in 𝒲\mathcal{W}. As illustrated in Figure 3 (a), a mesh discretizing 𝒲\mathcal{W}, denoted as 𝒢¯=<𝒳¯,¯>\bar{\mathcal{G}}=<\bar{\mathcal{X}},\bar{\mathcal{E}}>, is another graph that is also a simplicial-complex, cell-decomposition of 𝒲\mathcal{W} and we denote all the variables defined on the mesh using a bar over variables. Given a mesh 𝒢¯\bar{\mathcal{G}}, we can convert it into a graph using Algorithm 2, which is denoted as a mapping Φ(𝒢¯)=𝒢\Phi(\bar{\mathcal{G}})=\mathcal{G}. Algorithm 2 consists of 4 general steps. First, we place robots on inner corner points of each cell, i.e. points inside a cell that are distance-rr away from two consecutive edges of the cell. Next, we assume that 3 robots inside the same cell form a loop, along which cyclic moves can be performed, and we add 3 loop edges to 𝒢\mathcal{G}. We then add inter-cell edges to 𝒢\mathcal{G} between the two pairs of corner points sharing an edge 𝐞¯\bar{\mathbf{e}} in 𝒢¯\bar{\mathcal{G}}, along which vacant move can be performed. Note that some cells may be too small and robots placed on inner corners are not collision-free. Even when corner points are collision-free, robots inside the same cell can still collide when performing cyclic moves. Therefore, we add a fourth and final step to remove from 𝒢\mathcal{G} all the corner points (and incident edges) in invalid cells. We define a cell as invalid if the 3 corner points or cyclic moves are not collision-free. In the following, we show that the collision-free conditions of 𝒢\mathcal{G} can be converted to three differentiable geometric constraints on 𝒢¯\bar{\mathcal{G}}.

Refer to caption

(a)(b)(c)

Figure 3: (a): A mesh discretizing 𝒲\mathcal{W} is another graph 𝒢¯\bar{\mathcal{G}} that is also a cell decomposition with straight-line edges and triangular cells. (b): We map 𝒢¯\bar{\mathcal{G}} to 𝒢\mathcal{G} by first putting robots (gray) on the cell’s corner points. (c): We then create loop edges for robots in a single cell (red), and finally create inter-cell edges between robots of neighboring cells (blue).
Algorithm 2 Evaluate Φ(𝒢¯)\Phi(\bar{\mathcal{G}}).
1:𝒳\mathcal{X}\leftarrow\emptyset and \mathcal{E}\leftarrow\emptyset
2:for Each triangular cell in 𝒢¯\bar{\mathcal{G}} do
3:    for Corner point 𝐱1,2,3\mathbf{x}_{1,2,3} in the cell do
4:         𝒳𝒳{𝐱i}\mathcal{X}\leftarrow\mathcal{X}\bigcup\{\mathbf{x}_{i}\}     
5:    for 𝐞\mathbf{e} between two points in 𝐱1,2,3\mathbf{x}_{1,2,3} do
6:         {𝐞}\mathcal{E}\leftarrow\mathcal{E}\bigcup\{\mathbf{e}\}     
7:for 𝐞\mathbf{e} between neighboring corner points sharing edge in 𝒢¯\bar{\mathcal{G}} do
8:    {𝐞}\mathcal{E}\leftarrow\mathcal{E}\bigcup\{\mathbf{e}\}
9:𝒢<𝒳,>\mathcal{G}\leftarrow<\mathcal{X},\mathcal{E}>
10:for Corner points 𝐱\mathbf{x} of invalid cell do
11:    Remove 𝐱\mathbf{x} from 𝒢\mathcal{G}
12:Return 𝒢\mathcal{G}

V-A Condition 1: Planner Embedding

Since 𝒢¯\bar{\mathcal{G}} is a simplicial complex, each cell is a triangle and we denote the 3 vertices of this triangle as: 𝐱¯1,2,3\bar{\mathbf{x}}_{1,2,3}. The distance-rr corner points can be computed using the following formula, as illustrated in Figure 4 (a):

𝐱2=𝐱¯2+r(𝐱¯3𝐱¯2)𝐱¯1𝐱¯2+(𝐱¯1𝐱¯2)𝐱¯3𝐱¯2(𝐱¯3𝐱¯2)×(𝐱¯1𝐱¯2).\displaystyle\mathbf{x}_{2}=\bar{\mathbf{x}}_{2}+r\frac{(\bar{\mathbf{x}}_{3}-\bar{\mathbf{x}}_{2})\|\bar{\mathbf{x}}_{1}-\bar{\mathbf{x}}_{2}\|+(\bar{\mathbf{x}}_{1}-\bar{\mathbf{x}}_{2})\|\bar{\mathbf{x}}_{3}-\bar{\mathbf{x}}_{2}\|}{\|(\bar{\mathbf{x}}_{3}-\bar{\mathbf{x}}_{2})\times(\bar{\mathbf{x}}_{1}-\bar{\mathbf{x}}_{2})\|}. (2)

We only show formula for 𝐱2\mathbf{x}_{2} and the formulas for 𝐱1,3\mathbf{x}_{1,3} are symmetric. We will mark the cell as invalid and remove the 3 vertices from 𝒢\mathcal{G} if there are overlappings between C(𝐱1,2,3)C(\mathbf{x}_{1,2,3}).

V-B Condition 2: Collision-Free Cyclic Moves

Even when the 3 corner points are not overlapping, robots can still collide when they perform cyclic moves along the 3 loop edges with constant speed, as illustrated in Figure 4 (b). To derive a condition for collision-free cyclic moves, we assume that the 3 robots trace out a trajectory τ1,2,3(t)\tau_{1,2,3}(t) where t[0,1]t\in[0,1]. At time tt, the 3 robots are at positions:

𝐱1,2,3(t)\displaystyle\mathbf{x}_{1,2,3}(t) 𝐱1,2,3(1t)+𝐱2,3,1t,\displaystyle\triangleq\mathbf{x}_{1,2,3}(1-t)+\mathbf{x}_{2,3,1}t,

and we have collision-free cyclic moves if:

𝐱1,2,3(t)𝐱2,3,1(t)2rt[0,1].\displaystyle\|\mathbf{x}_{1,2,3}(t)-\mathbf{x}_{2,3,1}(t)\|\geq 2r\quad\forall t\in[0,1]. (3)

Here we use cyclic subscripts to denote 3 symmetric conditions. The left-hand side of Equation 3 is quadratic when squared and determining the smallest value of a quadratic equation in [0,1][0,1] has closed-form solution, which can be used for determining whether a cell is invalid in Algorithm 2.

Refer to caption

rrrr𝐱¯1\bar{\mathbf{x}}_{1}𝐱¯2\bar{\mathbf{x}}_{2}𝐱¯3\bar{\mathbf{x}}_{3}𝐱1\mathbf{x}_{1}𝐱2\mathbf{x}_{2}𝐱3\mathbf{x}_{3}(a)(b)(c)

Figure 4: (a): For a thin triangle, corner points will not be collision-free, violating condition 1. (b): Even when condition 1 holds, robots need to follow the red arrows and perform a cyclic move. (c): If collisions happen during a cyclic move, condition 2 is violated.

In addition to determining the validity of a cell, our mesh optimization algorithm (Section VI) requires an operator that can modify an invalid cell’s geometric shape to achieve validity using numerical optimization. To this end, we derive a condition equivalent to Equation 3 but does not contain continuous time variable tt, because the variable tt can take infinitely many values from [0,1][0,1] leading to a difficult semi-infinite programming problem [33]. Taking one of the equations 𝐱1(t)𝐱2(t)2r\|\mathbf{x}_{1}(t)-\mathbf{x}_{2}(t)\|\geq 2r in Equation 3 for example (the other 2 cases are symmetric), its left-hand-side is a polynomial of a single time variable tt. To eliminate tt, the Fekete, Markov-Lukaćz theorem [34] can be applied to show that, if Equation 3 holds, then we have:

𝐱1(t)𝐱2(t)24r2=α1(2t1)2+2α2α+α3+α4(4t4t2)\displaystyle\|\mathbf{x}_{1}(t)-\mathbf{x}_{2}(t)\|^{2}-4r^{2}=\alpha_{1}(2t-1)^{2}+2\alpha_{2}\alpha+\alpha_{3}+\alpha_{4}(4t-4t^{2})
(α1α2α2α3)0α40,\displaystyle\land\left(\begin{array}[]{cc}\alpha_{1}&\alpha_{2}\\ \alpha_{2}&\alpha_{3}\end{array}\right)\succeq 0\land\alpha_{4}\geq 0,

where α1,2,3,4\alpha_{1,2,3,4} are four unknown variables to be fitted. The 2×22\times 2 PSD-cone constraint is equivalent to two quadratic constraints: α1α30\alpha_{1}\alpha_{3}\geq 0 and α1α3α22\alpha_{1}\alpha_{3}\geq\alpha_{2}^{2}. By equating coefficients in the quadratic constraints, we can express α1,2,3,4\alpha_{1,2,3,4} in terms of 𝐱1,2,3\mathbf{x}_{1,2,3} to get the following equivalent form:

(142𝐱2𝐱1𝐱32+α4)(14𝐱1𝐱324r2α4)\displaystyle(\frac{1}{4}\|2\mathbf{x}_{2}-\mathbf{x}_{1}-\mathbf{x}_{3}\|^{2}+\alpha_{4})(\frac{1}{4}\|\mathbf{x}_{1}-\mathbf{x}_{3}\|^{2}-4r^{2}-\alpha_{4})\geq (4)
[14(𝐱1𝐱3)(2𝐱2𝐱1𝐱3)]2α40,\displaystyle\left[\frac{1}{4}(\mathbf{x}_{1}-\mathbf{x}_{3})(2\mathbf{x}_{2}-\mathbf{x}_{1}-\mathbf{x}_{3})\right]^{2}\land\alpha_{4}\geq 0,

where α4\alpha_{4} is an additional decision variable that cannot be eliminated. But unlike tt, we only need to satisfy Equation LABEL:eq:equi_cond2 for a single α4\alpha_{4}. We summarize this result below:

Lemma V.1

A cell in 𝒢¯\bar{\mathcal{G}} is valid if its 3 corner points, computed according to Equation 2, satisfy Equation 3 for all t[0,1]t\in[0,1] or if the 3 corner points satisfy Equation LABEL:eq:equi_cond2 for any positive α4\alpha_{4}.

V-C Condition 3: Collision-Free Vacant Moves

We show that, as long as condition 2 is satisfied, condition 3 must also be satisfied, so Φ(𝒢¯)\Phi(\bar{\mathcal{G}}) always satisfy condition 3. Condition 3 requires that a robot can move to a vacant position along any 𝐞\mathbf{e}\in\mathcal{E}. We analyze two cases: 𝐞\mathbf{e} being a loop edge or 𝐞\mathbf{e} being an inter-cell edge.

Refer to caption

𝐱i\mathbf{x}_{i}𝐱j\mathbf{x}_{j}𝐱k\mathbf{x}_{k}𝐱i\mathbf{x}_{i}𝐱j\mathbf{x}_{j}𝐱k\mathbf{x}_{k}

Figure 5: Top: the path between 𝐱i\mathbf{x}_{i} and 𝐱j\mathbf{x}_{j} will not be blocked by 𝐱k\mathbf{x}_{k}. Bottom: If 𝐱k\mathbf{x}_{k} is below the dashed line and blocking the path, then the cyclic move from 𝐱k\mathbf{x}_{k} to 𝐱j\mathbf{x}_{j} and 𝐱j\mathbf{x}_{j} to 𝐱i\mathbf{x}_{i} along the red arrows will not be collision-free, contradicting condition 2.

Loop edge: If one of the 3 corner points 𝐱i\mathbf{x}_{i} in a cell is vacant and another robot 𝐱j\mathbf{x}_{j} is moving along a loop edge to 𝐱i\mathbf{x}_{i}, we show that this move is always collision-free. We prove by contradiction as illustrated in Figure 5. If this move is not collision-free, then the third corner point 𝐱k\mathbf{x}_{k} must be in the way between 𝐱i\mathbf{x}_{i} and 𝐱j\mathbf{x}_{j}. However, in this case, cyclic moves in the cell is not collision-free, which contradicts condition 2.

Inter-cell edge: If two neighboring triangles satisfy condition 2 and share an edge 𝐞¯¯\bar{\mathbf{e}}\in\bar{\mathcal{E}}, then cyclic moves inside each triangle are collision-free. As illustrated in Figure 6, if robot 𝐱i\mathbf{x}_{i} is to be moved to a vacant position 𝐱j\mathbf{x}_{j} along an inter-cell edge, then we can rotate 𝐱i\mathbf{x}_{i} (along with the two other robots) clockwise and 𝐱j\mathbf{x}_{j} counterclockwise until the line-segment 𝐱i𝐱j\mathbf{x}_{i}-\mathbf{x}_{j} is orthogonal to 𝐞¯\bar{\mathbf{e}} and the convex hull of C(𝐱i)C(\mathbf{x}_{i}) and C(𝐱j)C(\mathbf{x}_{j}) does not contain other agents so the vacant move is collision-free. We prove in Appendix IX that such convex hull always exists between any pair of valid triangles. Finally, we rotate 𝐱i,j\mathbf{x}_{i,j} reversely to undo extra changes.

Refer to caption

𝐱i\mathbf{x}_{i}𝐱j\mathbf{x}_{j}𝐞¯\bar{\mathbf{e}}(a)(b)(c)(d)

Figure 6: If 𝐱i\mathbf{x}_{i} is to be moved to a vacant position 𝐱j\mathbf{x}_{j} along a blue inter-cell edge (a), then we can rotate 𝐱i\mathbf{x}_{i} clockwise and 𝐱j\mathbf{x}_{j} counterclockwise to align 𝐱i\mathbf{x}_{i} and 𝐱j\mathbf{x}_{j} (b), so that the convex hull of C(𝐱i)C(\mathbf{x}_{i}) and C(𝐱j)C(\mathbf{x}_{j}) does not contain other agents (c). After the vacant move inside the convex hull, we rotate 𝐱i,j\mathbf{x}_{i,j} reversely to undo extra changes (d).

VI Mesh Optimization

In this section, we present a variant of mesh optimization algorithm [19, 35] to search for 𝒢¯\bar{\mathcal{G}} that maximizes a user given metric (𝒢¯,𝒢)\mathcal{M}(\bar{\mathcal{G}},\mathcal{G}). Afterwards, a corresponding 𝒢\mathcal{G} can be extracted using Algorithm 2 to solve for MPP problems.

VI-A Metric Function

Our metric consists of 4 terms #r,#rc,sd,g\mathcal{M}_{\#r},\mathcal{M}_{\#rc},\mathcal{M}_{sd},\mathcal{M}_{g} that can either be a function of the mesh 𝒢¯\bar{\mathcal{G}} or the graph 𝒢\mathcal{G}. These four terms measure the robot packing density as well as the area covered by the robots in 𝒲\mathcal{W}. Our first term, #r\mathcal{M}_{\#r} is defined as: #r(𝒢)|𝒳|\mathcal{M}_{\#r}(\mathcal{G})\triangleq|\mathcal{X}|, which is the number of vertices contained in 𝒢\mathcal{G}. This term reflects the number of robots that 𝒢\mathcal{G} can hold, but MPP problems might not be feasible for all these robots because 𝒢\mathcal{G} might not be connected. #r\mathcal{M}_{\#r} is a heuristic that guides our algorithm to find more valid cells at an early stage and then try to connect them. Our second term, #rc\mathcal{M}_{\#rc}, is the number of robots in the largest connected component of 𝒢\mathcal{G}:

#rc(𝒢)max𝒢𝒢connected(#r(𝒢)),\displaystyle\mathcal{M}_{\#rc}(\mathcal{G})\triangleq\underset{\footnotesize{\mathcal{G}^{\prime}\subseteq\mathcal{G}\;\text{connected}}}{\max}(\mathcal{M}_{\#r}(\mathcal{G}^{\prime})),

which is the maximal number of robots for which MPP problems are feasible. Note that #r,#rc\mathcal{M}_{\#r,\#rc} are discrete, non-differentiable terms that are related to both the topology and geometry of 𝒢¯\bar{\mathcal{G}}. To increase #r,#rc\mathcal{M}_{\#r,\#rc}, we need to update the shape of triangles in 𝒢¯\bar{\mathcal{G}} and also update their connectivity so that they are valid. Our third term is the agent packing density averaged over the valid cells:

sd(𝒢)πr2#r(𝒢)valid cell in 𝒢¯|cell|.\displaystyle\mathcal{M}_{sd}(\mathcal{G})\triangleq\frac{\pi r^{2}\mathcal{M}_{\#r}(\mathcal{G})}{\sum_{\text{valid cell in }\bar{\mathcal{G}}}|\text{cell}|}.

sd\mathcal{M}_{sd} is a heuristic guidance term that biases our algorithm towards denser robot packing, when only a subset of the workspace is covered by the robot. Our last metric term g\mathcal{M}_{g} is the 2D AMIPS energy [36] using the smallest regular triangle satisfying condition 2 as the target shape. g\mathcal{M}_{g} is differentiable, purely geometric, and related to 𝒢¯\bar{\mathcal{G}} only.

Algorithm 3 Optimize \mathcal{M} with respect to 𝒢¯\bar{\mathcal{G}}.
1:Input: Initial 𝒢¯\bar{\mathcal{G}}
2:Compute (𝒢¯,Φ(𝒢¯))\mathcal{M}\leftarrow\mathcal{M}(\bar{\mathcal{G}},\Phi(\bar{\mathcal{G}}))
3:Set terminate\leftarrowFalse
4:for pass1,2\leftarrow 1,2 do
5:    while Not terminate do
6:         Set terminate\leftarrowTrue
7:         if Collapsing edges improves #r+w#rc\mathcal{M}_{\#r}+w\mathcal{M}_{\#rc} then
8:             Set terminate\leftarrowFalse          
9:         if pass=1=1 then
10:             Splitting edges (i.e. |𝐞¯|>1.3|𝐞¯||\bar{\mathbf{e}}|>1.3|\bar{\mathbf{e}}^{*}|)
11:             if Splitting improves #r+w#rc\mathcal{M}_{\#r}+w\mathcal{M}_{\#rc} then
12:                 Set terminate\leftarrowFalse                       
13:         Flip edges to reduce g\mathcal{M}_{g}
14:         if Flipping improves #r+w#rc\mathcal{M}_{\#r}+w\mathcal{M}_{\#rc} then
15:             Set terminate\leftarrowFalse          
16:         Smooth vertices to reduce g\mathcal{M}_{g}
17:         if Smoothing improves #r+w#rc\mathcal{M}_{\#r}+w\mathcal{M}_{\#rc} then
18:             Set terminate\leftarrowFalse          
19:         LocalOpt. vertices to improve sd\mathcal{M}_{sd}
20:         if LocalOpt. improves #r+w#rc\mathcal{M}_{\#r}+w\mathcal{M}_{\#rc} then
21:             Set terminate\leftarrowFalse          
22:         if GlobalOpt. improves #r+w#rc\mathcal{M}_{\#r}+w\mathcal{M}_{\#rc} then
23:             Get terminate\leftarrowFalse              
24:Return Φ(𝒢¯)\Phi(\bar{\mathcal{G}})

VI-B Greedy Maximization of Metric

The greedy algorithm is summarized in Algorithm 3, which exhaustively tries one of the re-meshing operators: edge-flip, edge-split, edge-collapse, vertex-smoothing, local-optimization, and global-optimization. Our re-meshing operators, except for global-optimization, are all local and only affect a small neighborhood of cells. The first 4 re-meshing operators are inherited from [19, 35], as illustrated in Figure 7. Edge-flip is guided by g\mathcal{M}_{g} and is mostly applied to obtuse triangles and turns them into acute triangles. Edge-split and edge-collapse are used to remove tiny edges and split long edges in 𝒢¯\bar{\mathcal{G}}, respectively. Finally, vertex-smoothing locally optimizes g\mathcal{M}_{g} with respect to the one-ring neighborhood of a single vertex. The four operators combined can turn a low-quality mesh into one with nice element shapes.

Refer to caption

(a)(b)(c)(d)(e)

Figure 7: The first 4 remeshing operators inherited from [19]. (a): original mesh, (b): edge-flip, (c): edge-split, (d): edge-collapse, (e): vertex-smoothing (part of mesh modified by the operator in red).

Our algorithm uses two passes. In the first pass, we allow the algorithm to explore a larger search space by allowing both edge-collapse and edge-split. To ensure the convergence of the first pass, we avoid the cases where consecutive edge-flip and edge-split operators happen for a same edge repeatedly. Allowing edge-split will create more triangles and potentially lead to denser packing of robots. In practice, we split a 𝐞¯\bar{\mathbf{e}} when its length is larger than 1.3×1.3\times of the optimal length 𝐞¯\bar{\mathbf{e}}^{*}. Here the optimal length is the edge length of the smallest regular triangles satisfying condition 2, which equals to: |𝐞¯|=(23+4)r|\bar{\mathbf{e}}^{*}|=(2\sqrt{3}+4)r. In the second pass, we are more conservative and disallow edge-split. This pass can be considered as post-processing, merging too small triangles and simplifying the robot layout. Within each pass, we check every possible operator and only accept operators when the weighted metric #r+w#rc\mathcal{M}_{\#r}+w\mathcal{M}_{\#rc} monotonically increases and we set w=10w=10. We also reject operators that violate our assumption on 𝒢¯\bar{\mathcal{G}} being a cell decomposition, i.e. introducing non-manifold connection and flipped cells. The non-manifoldness of 𝒢¯\bar{\mathcal{G}} can happen only in edge-collapse and can be avoided by the link condition check [37]. A flipped cell has a negative area which can be checked by the following constraint:

(𝐱¯2𝐱¯1)×(𝐱¯3𝐱¯1)0.\displaystyle(\bar{\mathbf{x}}_{2}-\bar{\mathbf{x}}_{1})\times(\bar{\mathbf{x}}_{3}-\bar{\mathbf{x}}_{1})\geq 0. (5)
Refer to caption
Figure 8: Gallery of testing workspaces. For each example, left is our optimized triangulation where cells colored in light gray are invalid, right is the converted graph for MPP problems from valid cells and their connections.

VI-C Local- and Global-Optimization Operators

Aside from the four remeshing operators inherited from [19, 35], we introduce one local- and one global-optimization operators. These operators use the primal-dual interior point method to optimize the geometric shape of the cells, taking condition 2 as hard constraints. At the same time, we maximize sd\mathcal{M}_{sd} by minimizing the area of valid cells, leading to a denser robot packing. Specifically, for a cell in 𝒢¯\bar{\mathcal{G}} with vertices 𝐱¯1,2,3\bar{\mathbf{x}}_{1,2,3}, we solve the following problem in the local-optimization operator:

argmin𝐱¯1,2,3\displaystyle\underset{\bar{\mathbf{x}}_{1,2,3}}{\text{argmin}} valid cell in 𝒢¯|cell|\displaystyle\sum_{\text{valid cell in }\bar{\mathcal{G}}}|\text{cell}| (6)
𝐬.𝐭.\displaystyle\mathbf{s.t.} EquationLABEL:eq:equi_cond2valid cell in 𝒢¯\displaystyle Equation~{}\ref{eq:equi_cond2}\quad\forall\text{valid cell in }\bar{\mathcal{G}}
Equation5cell in 𝒢¯,\displaystyle Equation~{}\ref{eq:flip}\quad\forall\text{cell in }\bar{\mathcal{G}},

where we require that the entire mesh to be a cell decomposition, so we add Equation 5 for all cells. We also require that those originally valid cells stay valid, so we add Equation LABEL:eq:equi_cond2 for all valid cells. This optimization can be solved efficiently because it is local. Since we only treat the 3 vertices of a single cell in 𝒢¯\bar{\mathcal{G}} as decision variables, most of the terms in the objective function and constraints are outside the 1-ring neighborhood of 𝐱¯1,2,3\bar{\mathbf{x}}_{1,2,3} and not influenced by the decision variables, which can be omitted. Note that Equation LABEL:eq:equi_cond2 is expressed in terms of the corner points 𝐱1,2,3\mathbf{x}_{1,2,3}, instead of mesh vertices 𝐱¯1,2,3\bar{\mathbf{x}}_{1,2,3}. When the optimizer requires partial derivatives of Equation LABEL:eq:equi_cond2 against 𝐱¯1,2,3\bar{\mathbf{x}}_{1,2,3}, we use the chain rule on the relationship Equation 2.

The global-optimization operator is very similar to the local-optimization operator, which also takes the form of Equation 6, but we set all the variables 𝐱¯\bar{\mathbf{x}} as decision variables. The global-optimization is more expensive than all other operators, but we found that this last operator can significantly improve robot packing density and it is more efficient than applying the local-optimization operator to each of the cell.

VII Results and Analysis

We implement our algorithm and conduct experiments on a single desktop machine with Intel i7-9700 CPU. The input to our algorithm is a vector image in the svg format representing 𝒲\mathcal{W}. Our main Algorithm 3 starts from an initial guess of 𝒢¯\bar{\mathcal{G}}, which can be generated using Triangle [38]. Our mesh optimization algorithm can nicely turn a triangle mesh (left of the inset), with an arbitrary initialization that has only few triangles satisfying the graph embedding constraints, into a regular triangle mesh (right of the inset) with most of its triangles being valid graph nodes for MPP problems.

[Uncaptioned image]

We evaluate our algorithm on a set of complex workspaces and we summarize the statistics of #r\mathcal{M}_{\#r}, #rc\mathcal{M}_{\#rc}, robot density 𝒟\mathcal{D}, free space coverage (the ratio between the area of all valid cells and the area of 𝒲\mathcal{W}), and computational time of the mesh optimization in Figure 8 and Table I.

Measures Models 1 2 3 4 5 6 7 8 9 10
#r\mathcal{M}_{\#r} 1489 1061 782 1021 756 569 1515 877 981 1104
#rc\mathcal{M}_{\#rc} 1489 1061 782 1021 756 569 1515 877 981 1104
𝒟\mathcal{D} 0.31 0.29 0.30 0.30 0.29 0.28 0.30 0.31 0.32 0.33
Coverage 0.995 0.979 0.983 0.984 1.000 0.994 0.985 0.993 0.998 0.990
time 14133 2598 4439 5866 2793 3241 6155 2539 7836 9066
TABLE I: Statistics of #r\mathcal{M}_{\#r}, #rc\mathcal{M}_{\#rc}, robot density 𝒟\mathcal{D}, free space coverage, and time (s) measurements for the graph generation of the workspaces listed in Figure 8 (indexed from top to bottom, left to right).

We also compare our method with the regular-pattern baseline, illustrated in Figure 1 and Figure 9. Using our arrangement of robots in Section V, we can use regular triangles with the optimal area AA^{*} to cover 𝒲\mathcal{W} and then remove triangles that are outside 𝒲\mathcal{W}. As shown in Figure 9, the regular pattern does lead to higher #r\mathcal{M}_{\#r} and #rc\mathcal{M}_{\#rc} when the size of a robot is small. But, as the robot size gets larger, our method can produce a graph embedding with a higher number of robots (Figure 1 and Figure 9). Moreover, regular pattern method introduces undesirable zig-zag boundary coverage (see Figure 1 for a visual comparison on a simple workspace).

We also profile the influence of different robot radius. In Figure 9, we change the radius rr, and compare the curve with the ideal curve 3|𝒲|/A3|\mathcal{W}|/A^{*} by plotting the change of #r\mathcal{M}_{\#r} and #rc\mathcal{M}_{\#rc} against rr. Our method closely matches the ideal reference curve and the performance is comparable to regular-pattern baseline with different rr.

Refer to caption
Figure 9: By varying rr, we plot #r\mathcal{M}_{\#r} and #rc\mathcal{M}_{\#rc} produced by our boundary aligned approach, #rregular\mathcal{M}^{regular}_{\#r} and #rcregular\mathcal{M}^{regular}_{\#rc} by the simple regular-pattern baseline, and compare them with the ideal reference 3|𝒲|/A3|\mathcal{W}|/A^{*}.

On the optimized 𝒢¯\bar{\mathcal{G}} and corresponding 𝒢\mathcal{G}, we use our parallel MPP scheduler Algorithm 1 to solve 55 randomized MPP problems for each of the 1010 environments listed in Figure 8 and Table I. We profile the rate of acceleration using more and more vacant vertices (determined by the parameter KK). We summarize the average makespan for each environment for three different KKs in Figure 10. We observe greater makespan reductions as KK goes smaller that will consider more agents as vacant.

Refer to caption
Figure 10: We summarize the average makespan for 1010 environments under three different KK. For most environments, the makespan reduces linearly with KK.

VIII Conclusion and Limitations

We present a method to solve graph-restricted MPP problems in complex environments. Our method uses a special graph topology to ensure MPP feasibility. Using a divide-and-conquer algorithm with space-time scheduling, we can parallelize the robot motions and greedily improve the makespan. The special graph topology can be further identified with triangular meshes, which in turn is optimized via mesh optimization and embedded into arbitrarily complex environments. In the future, we plan to extend our method to continuous robot motions under general dynamic constraints. \AtNextBibliography

References

  • [1] R. Chinta, S. D. Han and J. Yu “Coordinating the Motion of Labeled Discs with Optimality Guarantees under Extreme Density” In The 13th International Workshop on the Algorithmic Foundations of Robotics, 2018
  • [2] J. M. Palacios-Gasós et al. “Optimal path planning and coverage control for multi-robot persistent coverage in environments with obstacles” In 2017 IEEE International Conference on Robotics and Automation (ICRA), 2017, pp. 1321–1327 DOI: 10.1109/ICRA.2017.7989156
  • [3] K. M. Hasan, Abdullah-Al-Nahid and K. J. Reza “Path planning algorithm development for autonomous vacuum cleaner robots” In 2014 International Conference on Informatics, Electronics Vision (ICIEV), 2014, pp. 1–6 DOI: 10.1109/ICIEV.2014.6850799
  • [4] J. L. Baxter, E. K. Burke, J. M. Garibaldi and M. Norman “Multi-Robot Search and Rescue: A Potential Field Based Approach” In Autonomous Robots and Agents Berlin, Heidelberg: Springer Berlin Heidelberg, 2007, pp. 9–16
  • [5] John E Hopcroft, Jacob Theodore Schwartz and Micha Sharir “On the Complexity of Motion Planning for Multiple Independent Objects; PSPACE-Hardness of the” Warehouseman’s Problem”” In The international journal of robotics research 3.4 Sage Publications Sage CA: Thousand Oaks, CA, 1984, pp. 76–88
  • [6] Paul Spirakis and Chee K Yap “Strong NP-hardness of moving many discs” In Information Processing Letters 19.1 Elsevier, 1984, pp. 55–59
  • [7] Glenn Wagner, Minsu Kang and Howie Choset “Probabilistic path planning for multiple robots with subdimensional expansion” In 2012 IEEE International Conference on Robotics and Automation, 2012, pp. 2886–2892 IEEE
  • [8] Gildardo Sánchez and Jean-Claude Latombe “On Delaying Collision Checking in PRM Planning: Application to Multi-Robot Coordination” In The International Journal of Robotics Research 21.1, 2002, pp. 5–26
  • [9] Duong Le and Erion Plaku “Cooperative Multi-Robot Sampling-Based Motion Planning with Dynamics” In ICAPS, 2017
  • [10] Guni Sharon, Roni Stern, Ariel Felner and Nathan R Sturtevant “Conflict-based search for optimal multi-agent pathfinding” In Artificial Intelligence 219 Elsevier, 2015, pp. 40–66
  • [11] Vincenzo Auletta, Angelo Monti, Mimmo Parente and Pino Persiano “A linear-time algorithm for the feasibility of pebble motion on trees” In Algorithmica 23.3 Springer, 1999, pp. 223–245
  • [12] R. Luna and K. E. Bekris “Push and Swap: Fast Cooperative Path-Finding with Completeness Guarantees” In International Joint Conferences in Artificial Intelligence (IJCAI-11), 2011, pp. 294–300
  • [13] Jingjin Yu and Daniela Rus “Pebble motion on graphs with rotations: Efficient feasibility tests and planning algorithms” In Algorithmic foundations of robotics XI Springer, 2015, pp. 729–746
  • [14] Shuai D. Han, Edgar J. Rodriguez and Jingjin Yu “SEAR: A Polynomial- Time Multi-Robot Path Planning Algorithm with Expected Constant-Factor Optimality Guarantee.” In 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems, IROS 2018, Madrid, Spain, October 1-5, 2018 IEEE, 2018
  • [15] J. Yu “Average Case Constant Factor Time and Distance Optimal Multi-Robot Path Planning in Well-Connected Environments” In Autonomous Robots, 2019
  • [16] J. Yu and S. M. LaValle “Optimal Multi-Robot Path Planning on Graphs: Complete Algorithms and Effective Heuristics” In IEEE Transactions on Robotics 32.5, 2016, pp. 1163–1177
  • [17] Liang He, Zherong Pan, Biao Jia and Dinesh Manocha “Efficient Multi-Agent Motion Planning in Continuous Workspaces Using Medial-Axis-Based Swap Graphs” In arXiv:2002.11892 arXiv:2002.11892, 2020
  • [18] Hugues Hoppe “New quadric metric for simplifying meshes with appearance attributes” In Proceedings Visualization’99 (Cat. No. 99CB37067), 1999, pp. 59–510 IEEE
  • [19] Hugues Hoppe et al. “Mesh optimization” In Proceedings of the 20th annual conference on Computer graphics and interactive techniques, 1993, pp. 19–26
  • [20] Jur Berg, Jack Snoeyink, Ming Lin and Dinesh Manocha “Centralized path planning for multiple robots: Optimal decoupling into sequential plans” In Robotics: Sciences and Systems, 2009 DOI: 10.15607/RSS.2009.V.018
  • [21] Pierre Alliez, Giuliana Ucelli, Craig Gotsman and Marco Attene “Recent advances in remeshing of surfaces” In Shape analysis and structuring Springer, 2008, pp. 53–82
  • [22] Bryan E. Feldman, James F. O’Brien and Bryan M. Klingner “Animating Gases with Hybrid Meshes” In Proceedings of ACM SIGGRAPH 2005, 2005 URL: http://graphics.cs.berkeley.edu/papers/Feldman-AGH-2005-08/
  • [23] Julien Villard and Houman Borouchaki “Adaptive meshing for cloth animation” In Engineering with Computers 20.4 Springer, 2005, pp. 333–341
  • [24] Frank Lingelbach “Path planning using probabilistic cell decomposition”, 2005
  • [25] Jean-Claude Latombe “Exact cell decomposition” In Robot Motion Planning Springer, 1991, pp. 200–247
  • [26] A. Li, L. Wang, P. Pierpaoli and M. Egerstedt “Formally Correct Composition of Coordinated Behaviors Using Control Barrier Certificates” In 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2018, pp. 3723–3729 DOI: 10.1109/IROS.2018.8594302
  • [27] Geunho Lee, Nak Young Chong and Henrik Christensen “Adaptive triangular mesh generation of self-configuring robot swarms” In 2009 IEEE International Conference on Robotics and Automation, 2009, pp. 2737–2742 IEEE
  • [28] Petra Mutzel and René Weiskircher “Bend minimization in orthogonal drawings using integer programming” In International Computing and Combinatorics Conference, 2002, pp. 484–493 Springer
  • [29] Andreas Fischer et al. “Virtual network embedding: A survey” In IEEE Communications Surveys & Tutorials 15.4 IEEE, 2013, pp. 1888–1906
  • [30] Chi-Han Peng, Yong-Liang Yang and Peter Wonka “Computing layouts with deformable templates” In ACM Transactions on Graphics (TOG) 33.4 ACM New York, NY, USA, 2014, pp. 1–11
  • [31] Chi-Han Peng, Helmut Pottmann and Peter Wonka “Designing Patterns Using Triangle-Quad Hybrid Meshes” In ACM Trans. Graph. 37.4 New York, NY, USA: Association for Computing Machinery, 2018 DOI: 10.1145/3197517.3201306
  • [32] Daniel Defays “An efficient algorithm for a complete link method” In The Computer Journal 20.4 Oxford University Press, 1977, pp. 364–366
  • [33] Ankur Sinha, Pekka Malo and Kalyanmoy Deb “A review on bilevel optimization: from classical to evolutionary approaches and applications” In IEEE Transactions on Evolutionary Computation 22.2 IEEE, 2017, pp. 276–295
  • [34] Monique Laurent “Sums of squares, moment matrices and optimization over polynomials” In Emerging applications of algebraic geometry Springer, 2009, pp. 157–270
  • [35] Yixin Hu et al. “Tetrahedral Meshing in the Wild” In ACM Trans. Graph. 37.4 New York, NY, USA: Association for Computing Machinery, 2018 DOI: 10.1145/3197517.3201353
  • [36] Xiao-Ming Fu, Yang Liu and Baining Guo “Computing Locally Injective Mappings by Advanced MIPS” In ACM Trans. Graph. 34.4 New York, NY, USA: Association for Computing Machinery, 2015
  • [37] Tamal K. Dey, Herbert Edelsbrunner, Sumanta Guha and Dmitry V. Nekhayev “Topology Preserving Edge Contraction” In Publ. Inst. Math. (Beograd) (N.S 66, 1998, pp. 23–45
  • [38] Jonathan Richard Shewchuk “Triangle: Engineering a 2D quality mesh generator and Delaunay triangulator” In Applied Computational Geometry Towards Geometric Engineering Berlin, Heidelberg: Springer Berlin Heidelberg, 1996, pp. 203–222
  • [39] K Hägglöf, Per Olov Lindberg and Lars Svensson “Computing global minima to polynomial optimization problems using Gröbner bases” In Journal of global optimization 7.2 Springer, 1995, pp. 115–125
  • [40] Jinhu Li and Jeffrey S Racine “Maxima: An open source computer algebra system” JSTOR, 2008

IX Appendix: Proof of Vacant Move

Lemma IX.1

Assuming condition 2 of Section V, for a pair of positions 𝐱i,j\mathbf{x}_{i,j} in different triangles sharing an edge 𝐞¯\bar{\mathbf{e}}, 𝐱i\mathbf{x}_{i} and 𝐱j\mathbf{x}_{j} can be rotated such that the convex hull of C(𝐱i)C(\mathbf{x}_{i}) and C(𝐱j)C(\mathbf{x}_{j}) does not contain other agents.

Refer to caption

(a)(b)(c)(d)𝐱¯1\bar{\mathbf{x}}_{1}𝐱¯2\bar{\mathbf{x}}_{2}𝐱¯3\bar{\mathbf{x}}_{3}d1d_{1}d2d_{2}θ1/2{\theta_{1}}/{2}θ2/2{\theta_{2}}/{2}

Figure 11: The red dot is the center of the shared edge, d1,2d_{1,2} are the length of the green,red edge respectively, and θ1,2/2\theta_{1,2}/2 are the two half angles in (d).
Proof:

As illustrated in Figure 11 (ab), we have to align 𝐱i\mathbf{x}_{i} and 𝐱j\mathbf{x}_{j} by rotating 𝐱i\mathbf{x}_{i} clockwise and 𝐱j\mathbf{x}_{j} counterclockwise. We choose to always rotate until the edge between 𝐱i\mathbf{x}_{i} and 𝐱j\mathbf{x}_{j} passes through the center of the shared edge: (𝐱¯1+𝐱¯2)/2(\bar{\mathbf{x}}_{1}+\bar{\mathbf{x}}_{2})/2 in Figure 11 (c). Therefore, we only need to consider one triangle and show that the half capsule lies inside the triangle (Figure 11 (c)), for which an equivalent condition is d1rd_{1}\geq r and d2rd_{2}\geq r in Figure 11 (d) for all possible choices of θ1,2\theta_{1,2}.

We first derive closed-form expressions for d1,2d_{1,2}. Note that at least one of the two angles θ1,2\theta_{1,2} are acute and, without loss of generality, we assume that θ2\theta_{2} is acute. We further denote η1tan(θ1/2)\eta_{1}\triangleq\tan(\theta_{1}/2) and η2tan(θ2/2)\eta_{2}\triangleq\tan(\theta_{2}/2). Condition 2 implies the following two conditions:

𝐱2(t)𝐱1(t)\displaystyle\|\mathbf{x}_{2}(t)-\mathbf{x}_{1}(t)\| 2rt[0,1]\displaystyle\geq 2r\quad\forall t\in[0,1] (7)
𝐱2(t)𝐱3(t)\displaystyle\|\mathbf{x}_{2}(t)-\mathbf{x}_{3}(t)\| 2rt[0,1].\displaystyle\geq 2r\quad\forall t\in[0,1]. (8)

Since θ2\theta_{2} is an acute angle, it is easy to show that 𝐱2(t)𝐱1(t)\|\mathbf{x}_{2}(t)-\mathbf{x}_{1}(t)\| attains its minimal value when t[0,1]t\in[0,1]. Therefore, we can eliminate tt and derive a lower bound of d1d_{1} from Equation 7 (This is lower bound because Equation 8 is omitted). After trigonometric simplification, we can express the lower bound of d1rd_{1}-r as the following functions of η1,2\eta_{1,2}:

d1r(L1R1)r/(2η12η22)\displaystyle d_{1}-r\geq(L_{1}-R_{1})r/(2\eta_{1}^{2}\eta_{2}^{2})
L1η1η24η12η24+(4η134η1)η23+(16η12+η14)η22+(4η14η13)η2+4η12\displaystyle L_{1}\triangleq\eta_{1}\eta_{2}\sqrt{4\eta_{1}^{2}\eta_{2}^{4}+(4\eta_{1}^{3}-4\eta_{1})\eta_{2}^{3}+(1-6\eta_{1}^{2}+\eta_{1}^{4})\eta_{2}^{2}+(4\eta_{1}-4\eta_{1}^{3})\eta_{2}+4\eta_{1}^{2}}
R1(η12η12)η2+η12η2.\displaystyle R_{1}\triangleq(-\eta_{1}-2\eta_{1}^{2})\eta_{2}+\eta_{1}^{2}\eta_{2}.

To show that d1d_{1} is always positive, we define Δ1L12R12\Delta_{1}\triangleq L_{1}^{2}-R_{1}^{2} and show that Δ1\Delta_{1} is always larger than zero on the following semi-algebraic set:

𝒦1{(η1η2)|η2(0,1),η1>0,η1η2<1}.\displaystyle\mathcal{K}_{1}\triangleq\{\left(\begin{array}[]{cc}{\eta_{1}}&{\eta_{2}}\end{array}\right)|\eta_{2}\in(0,1),\eta_{1}>0,\eta_{1}\eta_{2}<1\}.

Note that Δ1\Delta_{1} is a polynomial function and verifying the positivity of a polynomial function on a semi-algebraic set can be performed analytically using Gröbner basis [39]. We use the computational algebraic software Maxima [40] to verify that the global minimum of Δ1\Delta_{1} on 𝒦1\mathcal{K}_{1} is zero. Therefore, we conclude that d1rd_{1}\geq r for any valid triangles. Similarly, we can derive the lower bound of d2d_{2} resulting in a similar formula:

d2r(L2R2)r/(2η12η22)\displaystyle d_{2}-r\geq(L_{2}-R_{2})r/(2\eta_{1}^{2}\eta_{2}^{2})
L2η1η24η12η24+(4η134η1)η23+(16η12+η14)η22+(4η14η13)η2+4η12\displaystyle L_{2}\triangleq\eta_{1}\eta_{2}\sqrt{4\eta_{1}^{2}\eta_{2}^{4}+(4\eta_{1}^{3}-4\eta_{1})\eta_{2}^{3}+(1-6\eta_{1}^{2}+\eta_{1}^{4})\eta_{2}^{2}+(4\eta_{1}-4\eta_{1}^{3})\eta_{2}+4\eta_{1}^{2}}
R2(η2η12)η2η12η2.\displaystyle R_{2}\triangleq(\eta-2\eta_{1}^{2})\eta_{2}-\eta_{1}^{2}\eta_{2}.

If we define Δ2L22R22\Delta_{2}\triangleq L_{2}^{2}-R_{2}^{2} and compute the global minimum of Δ2\Delta_{2} on 𝒦1\mathcal{K}_{1}, the result is negative. Therefore, we need to consider two cases separately. First, if θ1+θ2<π/2\theta_{1}+\theta_{2}<\pi/2, then we have the following semi-algebraic set:

𝒦2{(η1η2)|η2(0,1),η1>0,η1+η2+η1η2<1}.\displaystyle\mathcal{K}_{2}\triangleq\{\left(\begin{array}[]{cc}{\eta_{1}}&{\eta_{2}}\end{array}\right)|\eta_{2}\in(0,1),\eta_{1}>0,\eta_{1}+\eta_{2}+\eta_{1}\eta_{2}<1\}.

The global minimum of Δ2\Delta_{2} on 𝒦2\mathcal{K}_{2} is zero. Therefore, we conclude that d2rd_{2}\geq r holds for any valid triangles with θ1+θ2<π/2\theta_{1}+\theta_{2}<\pi/2. If θ1+θ2>π/2\theta_{1}+\theta_{2}>\pi/2, then the third angle π(θ1+θ2)\pi-(\theta_{1}+\theta_{2}) is acute and we can show that the left-hand side of Equation 8 attains its minimum when t[0,1]t\in[0,1]. As a result, Equation 8 gives us another lower bound for d2d_{2}. Applying trigonometric simplification and we have:

d2r(L3R3)r/(2η12η22)\displaystyle d_{2}-r\geq(L_{3}-R_{3})r/(2\eta_{1}^{2}\eta_{2}^{2})
L3η1η2η12η24+(2η12η13)η23+(1+12η12+η14)η22+(2η132η1)η2+η12\displaystyle L_{3}\triangleq\eta_{1}\eta_{2}\sqrt{\eta_{1}^{2}\eta_{2}^{4}+(2\eta_{1}-2\eta_{1}^{3})\eta_{2}^{3}+(1+12\eta_{1}^{2}+\eta_{1}^{4})\eta_{2}^{2}+(2\eta_{1}^{3}-2\eta_{1})\eta_{2}+\eta_{1}^{2}}
R3(η12η12)η2η12η2.\displaystyle R_{3}\triangleq(\eta_{1}-2\eta_{1}^{2})\eta_{2}-\eta_{1}^{2}\eta_{2}.

If we define Δ3L32R32\Delta_{3}\triangleq L_{3}^{2}-R_{3}^{2}, we can show that the global minimum of Δ3\Delta_{3} on 𝒦1𝒦2\mathcal{K}_{1}-\mathcal{K}_{2} is zero. As a result, d2rd_{2}\geq r for any valid triangles with θ1+θ2π/2\theta_{1}+\theta_{2}\geq\pi/2. ∎