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

Multi-Robot Path Planning Using Medial-Axis-Based Pebble-Graph Embedding

Liang He1†, Zherong Pan3, Kiril Solovey2, Biao Jia4, and Dinesh Manocha4 1Liang He is with Department of Computer Science, University of North Carolina at Chapel Hill. {[email protected]} 2Kiril Solovey is with the Technion, Israel Institute of Technology. {[email protected]} 3Zherong Pan is with Lightspeed & Quantum Studio, Tencent America. {[email protected]} 4Biao Jia and Dinesh Manocha are with Department of Computer Science and Electrical & Computer Engineering, University of Maryland at College Park. {biao,[email protected]}
Abstract

We present a centralized algorithm for labeled, disk-shaped Multi-Robot Path Planning (MPP) in a continuous planar workspace with polygonal boundaries. Our method automatically transform the continuous problem into a discrete, graph-based variant termed the pebble motion problem, which can be solved efficiently. To construct the underlying pebble graph, we identify inscribed circles in the workspace via a medial axis transform and organize robots into layers within each inscribed circle. We show that our layered pebble-graph enables collision-free motions, allowing all graph-restricted MPP instances to be feasible. MPP instances with continuous start and goal positions can then be solved via local navigations that route robots from and to graph vertices. We tested our method on several environments with high robot-packing densities (up to 61.6%61.6\% of the workspace). For environments with narrow passages, such density violates the well-separated assumptions made by state-of-the-art MPP planners, while our method achieves an average success rate of 83%83\%.

I Introduction

We propose a centralized approach for Multi-Robot Path Planning (MPP) for planar workspaces with polygonal obstacles. This problem has a wide range of applications such as warehouse management [1], computer games [2], and crowd modeling [3], which require the coordination of a large swarm of robots within a limited computational budget. MPP plans must be computed within a couple of milliseconds for an interactive game and an automatic warehouse needs to answer thousands of queries on a daily basis. Unfortunately, solving general MPP problems is NP-hard [4, 5, 6] and practical algorithms based on sampled roadmaps [7] and conflict-based search [8] quickly become intractable for more than a few robots. Follow-up research relies on additional assumptions on environment shapes and/or robot arrangements to attain practical performance.

I-A Related Work

We review the three assumptions most relevant to our work. To begin with, graph pebbling [9, 10, 11] lays the theoretical foundation of discrete structure in MPP problems. It assumes that robots are restricted to vertices and move along the edges of a graph. Prior work established fast algorithms to verify and construct feasible solutions for sub-classes of pebble-graphs [9, 11]. Certain regular grids are endowed with complete results [12, 13, 8, 14] and near-optimal solutions [15, 16] although exact optimality is intractable to attain [17]. However, building a pebble-graphs for workspaces with complex boundaries is still challenging, because regular grids cannot cover narrow passages and sharp features as illustrated in Figure 1 (b).

Some methods [18, 19, 20, 21, 22, 23] use random sampling to build discrete graphs that capture the structure of the continuous problem. Some of these methods have completeness guarantees, that is, if a graph leading to feasible solutions exists, they can ultimately build one. However, to the best of our knowledge, those approaches do not scale well with the number of robots.

Lastly, the well-separated assumption [24, 25, 26, 27] partially addresses the shortcomings of the above methods. By assuming robots (as well as their goal positions) are sufficiently separated from each other and the obstacles, each robot can find paths to their goal regardless of the order of movements of other robots. Unlike graph-pebbling, the well-separated assumption can be verified and established for an arbitrary workspace easily, after which feasibility can be guaranteed. On the downside, the large separation distance can limit the number of robots.

I-B Main Results

We propose a new method to construct pebble-graphs for arbitrary workspaces without using sampling-based methods. As illustrated in Figure 1 (c), our method relies on the medial-axis transform [28] to identify a series of inscribed circles with center points connected into skeleton curves. We then organize robots into discrete layers inside each inscribed circles, as illustrated in Figure 1 (d). We show that our robot arrangement allows both translational and rotational pebble motions. Following an idea similar to [11], we prove that all the MPP instances restricted to our pebble-graph are feasible as long as the number of graph vertices is larger than the number of robots. Finally, our method can inherently extend to continuous start and goal positions by moving robots to and from closest graph vertices via local navigation algorithms [29].

Our method works well in workspaces with complex obstacles and boundary shapes. We have conducted systematic comparisons with [16] in 55 different environments, each having 3016030-160 randomized MPP instances. For the benchmark with narrow passages, our method achieves a 100%100\% success rate on an average robot density between 3071%30-71\% of the workspace, while such a high density violates the well-separated assumption in [25] and the method in [16] can fail whenever agents fall inside these narrow passages.

Refer to caption

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

Figure 1: (a): We have two robots moving from start (red) to target (green) positions. (b): Prior work such as [30] assumes that robots can move on a regular grid (black edges). (c):To extract the skeletons (yellow), our method first computes a medial axis transform, each point on which is the center of an inscribed circle. (d): Our method embeds the pebble-graph into 𝒲\mathcal{W} by picking two inscribed circles, in which robots are arranged into loops (separated by yellow loop boundaries). We further use subsets of the skeleton as paths connecting inscribed circles. Generally speaking, 𝐬i\mathbf{s}^{i} and 𝐭i\mathbf{t}^{i} do not coincide with the planned positions in the inscribed circles and we use local navigation to move robots there (arrows). (e): The topology of the embedded graph consists of six connected loops, on which a robot can move to a neighboring vacant position and robots on a loop can perform rotational motions (black edges).

II Problem Statement and Approach Overview

We formalize 2D labeled MPP problems. We define 𝒲2\mathcal{W}\subseteq\mathbb{R}^{2} as the 2D workspace and assum that the boundary of workspace, 𝒲\partial\mathcal{W}, is piecewise linear. We have a set of NN disk-shaped robots initially centered at 𝐬1,,𝐬N\mathbf{s}^{1},\ldots,\mathbf{s}^{N} with identical unit radii, and we denote B()B(\bullet) as a unit circle centered at \bullet. The robots have distinct goal positions 𝐭1,,N\mathbf{t}^{1,\cdots,N}. Our method aims at finding a continuous path for each robot connecting 𝐬i\mathbf{s}^{i} and 𝐭i\mathbf{t}^{i}, where the disk-shaped regions of any two robots do not overlap for any given time instance and no robot collides with obstacles.

Having defined the problem, we provide an overview of our approach. The first step of our algorithm is pebble-graph embedding (Section III). The pebble-graph is embedded into 𝒲\mathcal{W} with the help of Blum’s medial axis analysis, which can be performed through robust algorithms such as [31]. The medial axis analysis extracts two crucial pieces of information from a continuous workspace: skeleton lines and inscribed circles, as illustrated in Figure 1 (c). An inscribed circle, denoted as 𝒞\mathcal{C}, is defined as a circular subset of the workspace that touches the boundary of the workspace at least two points, and skeleton lines are derived by connecting centers of inscribed circles. These two pieces of information, skeleton lines and inscribed circles, are crucial because they allow the structure in 𝒲\mathcal{W} to move and accommodate robots: robots can reside in inscribed circles and move along sub-paths of skeleton lines. As illustrated in Figure 1 (d), we design an algorithm to select a subset of inscribed circles where robots can be arranged into connected loops such that they can move to nearby vacant positions or rotate along loops in a collision-free manner as illustrated in Figure 1 (e). By construction, our pebble-graph is topologically identified with the setting considered in [11]. Our second step is motion planning (Section IV), where we compute a series of motions to answer arbitrary MPP queries. In other words, robots can perform arbitrary position permutations restricted to the graph vertices. Finally, start and goal positions might not coincide with graph vertices, and we use unlabeled, local navigations to move robots between their start/goal positions and graph vertices (Section V).

III Pebble-Graph Embedding

The first step of our method finds M>NM>N graph vertex positions using the greedy Algorithm 1. These vertices should be close to robots’ start positions, so that robots can be moved to vertices with a high success rate via local navigation algorithms such as [29]. We further assume each robots’ goal position set is close to its start position set, so goal positions can be ignore in the graph construct step. Our method maintains: 1) a set of considered robot start positions 𝕏\mathbb{X} initialized to be empty; 2) a set of remaining positions initialized to be {𝐬1,,𝐬N}\{\mathbf{s}^{1},\cdots,\mathbf{s}^{N}\}; 3) a set of considered inscribed circles \mathbb{C} initialized to be empty. During each iteration, an arbitrary position in the remaining set is picked, e.g. 𝐬i\mathbf{s}^{i}. By the definition of inscribed circles, B(𝐬i)B(\mathbf{s}^{i}) must be contained in at least one inscribed circle, and we select the circle whose center is closest to 𝐬i\mathbf{s}^{i}, denoted as 𝒞(𝐬i)\mathcal{C}(\mathbf{s}^{i}). (To find 𝒞(𝐬i)\mathcal{C}(\mathbf{s}^{i}), we sample the skeleton lines at regular intervals and extract inscribed circles centered at sample points, giving a discrete circle set ¯\bar{\mathbb{C}}.) We then move 𝐬i\mathbf{s}^{i} from the remaining set to the considered set 𝕏\mathbb{X} and move 𝒞(𝐬i)\mathcal{C}(\mathbf{s}^{i}) into the circle set \mathbb{C}. Further, if there is another 𝐬j\mathbf{s}^{j} in the remaining set such that B(𝐬j)𝒞(𝐬i)B(\mathbf{s}^{j})\subset\mathcal{C}(\mathbf{s}^{i}), we also move 𝐬j\mathbf{s}^{j} into the considered set. We terminate when the remaining set is empty. Note the success of our method depends on the order of choosing positions in the remaining set. To increase the success rate, we propose executing the algorithm multiple times using randomly shuffled start positions and return the first successful result. The resulting circle set would be used to construct our discrete loop graph using a BuildGraph function.

Remark 1.

The result of Algorithm 1 is a graph 𝒢=𝒱,\mathcal{G}=\langle\mathcal{V},\mathcal{E}\rangle with MM vertices corresponding to 𝒱={𝐯1,,M}\mathcal{V}=\{\mathbf{v}^{1,\cdots,M}\} and edges \mathcal{E} constructed in the BuildGraph function. If 𝒢\mathcal{G} is not connected, has only one looploop, or MNM\leq N, then we immediately return failure because our pebble motion planner (Section IV) relies on these pre-conditions. Otherwise, we will use local navigation (Section V) to move robots from 𝐬1,,N\mathbf{s}^{1,\cdots,N} to NN out of MM positions. If robots get stuck during local navigation, we also return failure.

Algorithm 1 Convert 𝒲\mathcal{W} into 𝒢\mathcal{G}
1:Perform Blum’s medial axis analysis [31] for 𝒲\mathcal{W}
2:A discrete candidate circle set ¯\bar{\mathbb{C}}
3:Initialize considered set 𝕏\mathbb{X}\leftarrow\emptyset
4:Initialize selected circle set \mathbb{C}\leftarrow\emptyset
5:Initialize 𝒢<,>\mathcal{G}\leftarrow<\emptyset,\emptyset>
6:for i=1,,Ni=1,\cdots,N do
7:     if 𝐬i𝕏\mathbf{s}^{i}\notin\mathbb{X} then
8:         Find 𝒞(𝐬i)argminB(𝐬i)𝒞¯center(𝒞)𝐬i\mathcal{C}(\mathbf{s}^{i})\leftarrow\underset{B(\mathbf{s}^{i})\subseteq\mathcal{C}\in\bar{\mathbb{C}}}{\text{argmin}}\;\|\text{center}(\mathcal{C})-\mathbf{s}^{i}\|
9:         {𝒞(𝐬i)}\mathbb{C}\leftarrow\mathbb{C}\cup\{\mathcal{C}(\mathbf{s}^{i})\}
10:         𝒢\mathcal{G}\leftarrowBuildGraph(\mathbb{C})
11:         for j=1,,Nj=1,\cdots,N do
12:              if 𝐬j𝕏B(𝐬j)𝒞(𝐬i)\mathbf{s}^{j}\notin\mathbb{X}\land B(\mathbf{s}^{j})\subseteq\mathcal{C}(\mathbf{s}^{i}) then
13:                  𝕏𝕏{𝐬j}\mathbb{X}\leftarrow\mathbb{X}\cup\{\mathbf{s}^{j}\}                             
14:if Disconnected(𝒢)|𝒱|N#Loop(𝒢)1(\mathcal{G})\lor|\mathcal{V}|\leq N\lor\#\text{Loop}(\mathcal{G})\leq 1 then
15:     if Maximal trial number not reached then
16:         Random shuffle 𝐬i\mathbf{s}^{i}, 𝕏,𝒢<,>\mathbb{X}\leftarrow\emptyset,\mathcal{G}\leftarrow<\emptyset,\emptyset>
17:         Goto Line 5
18:     else
19:         Return Failure      
20:else
21:     Return Success

In the following, we analyze the relationship between loops and derive geometric conditions of a graph embedding, such that robot motions are collision-free. Since two loops can belong to different inscribed circles or different layers of the same inscribed circle, we use the subscript to index circles and superscript to index loops inside a circle. For example, 𝒞ai\mathcal{C}_{a}^{i} indicates the iith loop (starting from the innermost one) of the aath circle.

III-A A Single Circle

We refine the details of the BuildGraph function, which arranges robots into loops within inscribed circles, ensuring that translational and rotational motions are collision-free. We denote the iith loop as 𝒞i2\mathcal{C}^{i}\in\mathbb{R}^{2}, where the 0th loop is the innermost loop. We use subscripts to distinguish different circles and superscripts to distinguish different loops. We have an upper bound on the number of loops 𝒞\mathcal{C} can hold as 0i(r(𝒞)+1)/20\leq i\leq\left\lfloor(r(\mathcal{C})+1)/2\right\rfloor, where r(𝒞)r(\mathcal{C}) is the radius. In addition, we denote #(R)\#(R) as the number of prescribed positions that can be put into some subset region R2R\subseteq\mathbb{R}^{2} without any collisions between positions or with 𝒲\partial\mathcal{W}.

We begin with the simplest case where there is only one 𝒞\mathcal{C} in 𝒢\mathcal{G}. Although a single robot can be put into 𝒞0\mathcal{C}^{0}, we let #(𝒞0)=0\#(\mathcal{C}^{0})=0 because our pebble motion planner requires each loop to have at least 3 positions (see Section IV for more details). For other loops, we have #(𝒞1)=6\#(\mathcal{C}^{1})=6 and for i>1i>1 we have:

#(𝒞i)=(2π2sin11i)/(2sin112i)+2.\displaystyle\#(\mathcal{C}^{i})=\left\lfloor(2\pi-2\sin^{-1}\frac{1}{i})/(2\sin^{-1}\frac{1}{2i})\right\rfloor+2. (1)
Refer to caption

6060^{\circ}sin11i\sin^{-1}\frac{1}{i}

2i2i

22

Figure 2: We illustrate the angles defining #(𝒞1)\#(\mathcal{C}^{1}) and #(𝒞i)\#(\mathcal{C}^{i}) for i>1i>1. Our goal is to make sure the capsule-shaped region (blue) contains only the two robots.

As illustrated in Figure 2, Equation 1 allows a capsule-shaped region between 𝒞i\mathcal{C}^{i} and 𝒞i1\mathcal{C}^{i-1} to contain only the two positions, allowing a pebble motion to be performed between the two loops. A pebble or rotational motion inside a single 𝒞i\mathcal{C}^{i} can be performed within 𝒞i\mathcal{C}^{i} without affecting any other loops by having all the positions trace out a circular arc along the centerline of 𝒞i\mathcal{C}^{i}. In summary, the procedure to convert a single inscribed circle 𝒞\mathcal{C} into a graph 𝒢\mathcal{G} is Algorithm 2. Note that Algorithm 2 requires that (r(𝒞)+1)/22\left\lfloor(r(\mathcal{C})+1)/2\right\rfloor\geq 2, since our pebble motion planner requires more than one loop in 𝒢\mathcal{G}. In addition, Equation 1 allows #(𝒞i)\#(\mathcal{C}^{i}) positions to be placed along the centerline of 𝒞i\mathcal{C}^{i} that are at least 22 apart, positions of different layers are non-overlapping.

Refer to caption

(a)(b)(c)𝐯\mathbf{v}𝐯\mathbf{v}^{\prime}𝐯\mathbf{v}𝐯\mathbf{v}^{\prime}𝐯\mathbf{v}^{\prime}𝐯\mathbf{v}𝐯\mathbf{v}^{\prime}𝐯\mathbf{v}

Figure 3: To perform a pebble motion along 𝐯𝐯\mathbf{v}\leftrightarrow\mathbf{v}^{\prime}, we first move robots in 𝒞i\mathcal{C}^{i} continuously to: (a) align the capsule region (blue); (b) perform the swap; (c) move robots in 𝒞i\mathcal{C}^{i} backward.

Each pebble or rotational motion in 𝒞i\mathcal{C}^{i} can be performed by moving robots along the centerline of 𝒞i\mathcal{C}^{i} without affecting other layers. To realize pebble motions between two robots 𝐯\mathbf{v} and 𝐯\mathbf{v}^{\prime} of neighboring layers (Line 9 of Algorithm 2), we first rotate robots continuously in 𝒞i\mathcal{C}^{i} to make sure that the capsule-shaped region between B(𝐯)B(\mathbf{v}) and B(𝐯)B(\mathbf{v}^{\prime}) does not contain other robots, as illustrated in Figure 3. After the pebble motion, we rotate robots in 𝒞i\mathcal{C}^{i} back to their original positions.

Algorithm 2 BuildGraph for a single 𝒞\mathcal{C}
1:if r(𝒞)+12<2\left\lfloor\frac{r(\mathcal{C})+1}{2}\right\rfloor<2 then
2:     Return 𝒢=<,>\mathcal{G}=<\emptyset,\emptyset>
3:for 1ir(𝒞)+121\leq i\leq\left\lfloor\frac{r(\mathcal{C})+1}{2}\right\rfloor do
4:     \triangleright Pick positions that are at least 22 apart
5:     Pick #(𝒞i)\#(\mathcal{C}^{i}) positions along the centerline of 𝒞i\mathcal{C}^{i}
6:     Insert the #(𝒞i)\#(\mathcal{C}^{i}) positions into 𝒱\mathcal{V}
7:     Insert #(𝒞i)1\#(\mathcal{C}^{i})-1 edges into \mathcal{E}
8:     if i>1i>1 then
9:         Choose 𝐯,𝐯\mathbf{v},\mathbf{v}^{\prime} belonging to i,i1i,i-1th loop
10:         Insert 𝐯𝐯\mathbf{v}\leftrightarrow\mathbf{v}^{\prime} into \mathcal{E}      
11:Return 𝒢\mathcal{G}

III-B Two Overlapping Circles

Next, we discuss the case where two circles 𝒞a,b\mathcal{C}_{a,b} are overlapping, which might result in loop sharing. Since the interiors of different layers in the same circle are disjointed, we always have the following decomposition of the domain:

(2)

where the inequality can be strict since we exclude robots that can cross the boundary of sub-domains. We choose to construct our graph using the lower bound on the righthand side. As illustrated in Figure 4, the three terms on the righthand side can be derived analytically by considering 4 different cases. These four cases are distinguished by the distance between center vertices of 𝒞a\mathcal{C}_{a} and 𝒞b\mathcal{C}_{b}, denoted as DD. In addition, we require that the center of 𝒞a\mathcal{C}_{a} is outside 𝒞b\mathcal{C}_{b} and vice versa:

Dmax(r(𝒞a),r(𝒞b)).\displaystyle D\geq\max(r(\mathcal{C}_{a}),r(\mathcal{C}_{b})). (3)
Refer to caption

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

Figure 4: We illustrate 4 critical cases between two loops of overlapping inscribed circles.

III-B1 Case I

The first case is illustrated in Figure 4 (a), and it happens if the following condition holds:

D(2i+1)21+(2j+1)21\displaystyle D\geq\sqrt{(2i+1)^{2}-1}+\sqrt{(2j+1)^{2}-1} (4)

In this case, we cannot fit any circle in the overlapping area, i.e. #(𝒞ai𝒞bj)=0\#(\mathcal{C}_{a}^{i}\cap\mathcal{C}_{b}^{j})=0. The capacity of 𝒞ai\mathcal{C}_{a}^{i} is reduced to:

#(𝒞ai𝒞bj)=2π2cos1D2+(2i)2(2j+2)24iD2sin112i+1,\displaystyle\#(\mathcal{C}_{a}^{i}-\mathcal{C}_{b}^{j})=\left\lfloor\frac{2\pi-2\cos^{-1}\frac{D^{2}+(2i)^{2}-(2j+2)^{2}}{4iD}}{2\sin^{-1}\frac{1}{2i}}\right\rfloor+1, (5)

and a symmetric equation applies to 𝒞bj\mathcal{C}_{b}^{j}. Although the two loops overlap, they are not connected in 𝒢\mathcal{G} because 𝒞ai𝒞bj\mathcal{C}_{a}^{i}\cap\mathcal{C}_{b}^{j} is too narrow to perform pebble motions. It is trivial to show that rotational motions can be performed in either 𝒞ai\mathcal{C}_{a}^{i} or 𝒞bj\mathcal{C}_{b}^{j}. We can convert this case by building two loops for 𝒞ai\mathcal{C}_{a}^{i} and 𝒞bj\mathcal{C}_{b}^{j} without adding edges to \mathcal{E}.

III-B2 Case II

The second case is illustrated in Figure 4 (b), which happens if Equation 4 does not hold but we have:

D2i+2j.\displaystyle D\geq 2i+2j. (6)

In this case, we still have #(𝒞ai𝒞bj)=0\#(\mathcal{C}_{a}^{i}\cap\mathcal{C}_{b}^{j})=0 and Equation 5 holds. However, 𝒞ai𝒞bj\mathcal{C}_{a}^{i}\cap\mathcal{C}_{b}^{j} is now wide enough to allow an robot to travel in the blue region of Figure 4 (b) to swap with a vacant position, which also utilizes the blue region. Therefore, we can insert an edge into \mathcal{E}_{\mathcal{I}} between two loops.

III-B3 Case III

The third case is illustrated in Figure 4 (c), which happens if Equation 6 does not hold but we have:

D2i+2j2.\displaystyle D\geq 2i+2j-2. (7)

In this case, we have #(𝒞ai𝒞bj)=2\#(\mathcal{C}_{a}^{i}\cap\mathcal{C}_{b}^{j})=2 and we have:

#(𝒞ai𝒞bj)=(Equation 5)2.\displaystyle\#(\mathcal{C}_{a}^{i}-\mathcal{C}_{b}^{j})=\text{(Equation~{}\ref{eq:capaCaseI})}-2.

Moreover, the two robots in 𝒞ai𝒞bj\mathcal{C}_{a}^{i}\cap\mathcal{C}_{b}^{j} can be swapped if one of them is vacant and rotational motions can be performed in either 𝒞ai\mathcal{C}_{a}^{i} or 𝒞bj\mathcal{C}_{b}^{j}. Therefore, we can construct two loops for 𝒞ai\mathcal{C}_{a}^{i} and 𝒞bj\mathcal{C}_{b}^{j}, let them share two robots in 𝒞ai𝒞bj\mathcal{C}_{a}^{i}\cap\mathcal{C}_{b}^{j}, and the edge between them.

III-B4 Case IV

The last case is illustrated in Figure 4 (d), and it happens if we have:

max(r(𝒞a),r(𝒞b))D<2i+2j2.\displaystyle\max(r(\mathcal{C}_{a}),r(\mathcal{C}_{b}))\leq D<2i+2j-2. (8)

In this case, we have #(𝒞ai𝒞bj)=2\#(\mathcal{C}_{a}^{i}\cap\mathcal{C}_{b}^{j})=2, but #(𝒞ai𝒞b)\#(\mathcal{C}_{a}^{i}-\mathcal{C}_{b}) has a new expression:

(9)

Similar to case III, we can construct two loops for 𝒞ai\mathcal{C}_{a}^{i} and 𝒞bj\mathcal{C}_{b}^{j}, let them share two robots in 𝒞ai𝒞bj\mathcal{C}_{a}^{i}\cap\mathcal{C}_{b}^{j}, but the two loops do not share any edges.

Note that we have computed #(𝒞ai𝒞bj)\#(\mathcal{C}_{a}^{i}-\mathcal{C}_{b}^{j}) in the four cases but we need #(𝒞ai𝒞b)\#(\mathcal{C}_{a}^{i}-\mathcal{C}_{b}) in Equation 2, which can be computed by excluding each layer 𝒞bj\mathcal{C}_{b}^{j} from 𝒞ai\mathcal{C}_{a}^{i} (the details are similar to the four cases and omitted for brevity). We summarize our method to convert 𝒲\mathcal{W} to 𝒢\mathcal{G} for two overlapping circles in Algorithm 3. This algorithm inserts vertices corresponding to each term of the righthand side of Equation 2 in Line 2 and Line 5, respectively, and then inserts edges to connect loops. Note that we only need to insert inter-loop edges in Case II, as is done in Line 14.

Algorithm 3 BuildGraph for two circles 𝒞a,b\mathcal{C}_{a,b}
1:for 1ir(𝒞a)+121\leq i\leq\left\lfloor\frac{r(\mathcal{C}_{a})+1}{2}\right\rfloor and 1jr(𝒞b)+121\leq j\leq\left\lfloor\frac{r(\mathcal{C}_{b})+1}{2}\right\rfloor do
2:     Insert #(𝒞ai𝒞bj)\#(\mathcal{C}_{a}^{i}\cap\mathcal{C}_{b}^{j}) vertices into 𝒱\mathcal{V}
3:for pass=1,21,2 do
4:     for 1ir(𝒞a)+121\leq i\leq\left\lfloor\frac{r(\mathcal{C}_{a})+1}{2}\right\rfloor do
5:         Insert #(𝒞ai𝒞b)\#(\mathcal{C}_{a}^{i}-\mathcal{C}_{b}) vertices into 𝒱\mathcal{V}
6:         Add #(𝒞ai𝒞b)+j#(𝒞ai𝒞bj)\#(\mathcal{C}_{a}^{i}-\mathcal{C}_{b})+\sum_{j}\#(\mathcal{C}_{a}^{i}\cap\mathcal{C}_{b}^{j}) edges to \mathcal{E}
7:         if i>1i>1 then
8:              Choose 𝐯,𝐯\mathbf{v},\mathbf{v}^{\prime} belonging to i,i1i,i-1th loop
9:              Insert 𝐯𝐯\mathbf{v}\leftrightarrow\mathbf{v}^{\prime} into \mathcal{E}               
10:     Swap a,ba,b
11:for 1ir(𝒞a)+121\leq i\leq\left\lfloor\frac{r(\mathcal{C}_{a})+1}{2}\right\rfloor and 1jr(𝒞b)+1)21\leq j\leq\left\lfloor\frac{r(\mathcal{C}_{b})+1)}{2}\right\rfloor do
12:     if Case II holds then
13:         Choose 𝐯,𝐯\mathbf{v},\mathbf{v}^{\prime} from i,ji,jth loop of 𝒞a,b\mathcal{C}_{a,b}, respectively
14:         Insert 𝐯𝐯\mathbf{v}\leftrightarrow\mathbf{v}^{\prime} into \mathcal{E}      
15:Return 𝒢\mathcal{G}

Informally, we justify the correctness of Algorithm 3. First, since each summand in Equation 2 corresponds to pairwise disjointed regions, the embedding is collision-free. Second, it is trivial to show that pebble or rotational motions within a single circle can be performed in the same way as in Section III-A. In addition, pebble motions between two overlapping loops are only required in Case II, which can also be safely performed, as shown in Figure 4 (b). Note that we might not get a valid pebble graph in two scenarios: 1) when some loop might not have 3 vertices; 2) when two circles are not connected, leading to disconnected 𝒢\mathcal{G}.

III-C More Than Two Circles

We can combine the two previous cases to derive the final BuildGraph procedure. We assume that KK inscribed circles 𝒞1,,K\mathcal{C}_{1,\cdots,K} are used and our algorithm is based on the assumption that, for any three (pairwise distinct) circles 𝒞a,𝒞b,𝒞c\mathcal{C}_{a},\mathcal{C}_{b},\mathcal{C}_{c}, we have:

𝒞a𝒞b𝒞c=.\displaystyle\mathcal{C}_{a}\cap\mathcal{C}_{b}\cap\mathcal{C}_{c}=\emptyset. (10)

As a result, we have the following inequality:

(11)
Refer to caption

θ\theta

Figure 5: We illustrate the procedure to compute #(𝒞aiba𝒞b)\#(\mathcal{C}_{a}^{i}-\bigcup_{b\neq a}\mathcal{C}_{b}).

which is valid only when Equation 10 holds. We can compute each of the terms in Equation 11 analytically. For a term of type #(𝒞ai𝒞bj)\#(\mathcal{C}_{a}^{i}\cap\mathcal{C}_{b}^{j}), we can compute it using the four cases in Section III-B. For a term of type #(𝒞aiba𝒞b)\#(\mathcal{C}_{a}^{i}-\bigcup_{b\neq a}\mathcal{C}_{b}), we use a procedure illustrated in Figure 5, where we first identify all the tangent cases (red circle) using triangular relationships (black), then find the angles between tangent cases (θ\theta), and finally compute the number of spheres that can be put into the interval between neighboring tangent cases as θ/(2sin11/(2i))+1\left\lfloor\theta/(2\sin^{-1}1/(2i))\right\rfloor+1.

Algorithm 4 BuildGraph for 𝒞1,,K\mathcal{C}_{1,\cdots,K}
1:for 1a<bK1\leq a<b\leq K do
2:     for 1ir(𝒞a)+21\leq i\leq\left\lfloor\frac{r(\mathcal{C}_{a})+}{2}\right\rfloor and 1jr(𝒞b)+121\leq j\leq\left\lfloor\frac{r(\mathcal{C}_{b})+1}{2}\right\rfloor do
3:         Insert #(𝒞ai𝒞bj)\#(\mathcal{C}_{a}^{i}\cap\mathcal{C}_{b}^{j}) positions into 𝒱\mathcal{V}      
4:for 1aK1\leq a\leq K do
5:     for 1ir(𝒞a)+121\leq i\leq\left\lfloor\frac{r(\mathcal{C}_{a})+1}{2}\right\rfloor do
6:         Insert #(𝒞aiba𝒞b)\#(\mathcal{C}_{a}^{i}-\bigcup_{b\neq a}\mathcal{C}_{b}) positions into 𝒱\mathcal{V}
7:         Insert #(𝒞aiba𝒞b)+baj#(𝒞ai𝒞bj)\#(\mathcal{C}_{a}^{i}-\bigcup_{b\neq a}\mathcal{C}_{b})+\sum_{b\neq a}\sum_{j}\#(\mathcal{C}_{a}^{i}\cap\mathcal{C}_{b}^{j})
8:         edges into \mathcal{E}
9:         if i>1i>1 then
10:              Choose 𝐯,𝐯\mathbf{v},\mathbf{v}^{\prime} belonging to i,i1i,i-1th loop
11:              Insert 𝐯𝐯\mathbf{v}\leftrightarrow\mathbf{v}^{\prime} into \mathcal{E}               
12:for 1a<bK1\leq a<b\leq K do
13:     for 1ir(𝒞a)+121\leq i\leq\left\lfloor\frac{r(\mathcal{C}_{a})+1}{2}\right\rfloor and 1jr(𝒞b)+121\leq j\leq\left\lfloor\frac{r(\mathcal{C}_{b})+1}{2}\right\rfloor do
14:         if Case II holds then
15:              Choose 𝐯,𝐯\mathbf{v},\mathbf{v}^{\prime} from i,ji,jth loop of 𝒞a,b\mathcal{C}_{a,b}
16:              Insert 𝐯𝐯\mathbf{v}\leftrightarrow\mathbf{v}^{\prime} into \mathcal{E}               
17:     if There is τ\tau satisfying Equation LABEL:eq:path then
18:         Set i=r(𝒞a)+12i=\left\lfloor\frac{r(\mathcal{C}_{a})+1}{2}\right\rfloor and j=r(𝒞b)+12j=\left\lfloor\frac{r(\mathcal{C}_{b})+1}{2}\right\rfloor
19:         Choose 𝐯,𝐯\mathbf{v},\mathbf{v}^{\prime} from i,ji,jth loop of 𝒞a,b\mathcal{C}_{a,b}
20:         Insert 𝐯𝐯\mathbf{v}\leftrightarrow\mathbf{v}^{\prime} into \mathcal{E}      
21:Return 𝒢\mathcal{G}
Refer to caption

(a)(b)

Figure 6: A tunnel along the medial axis is added between two distant loops (a), so that an agent can be moved to a nearby vacant position by first rotating in the two loops and then moving the agent along the tunnel (b).

However, as shown in Section III-B, two scenarios might lead to invalid pebble-graphs that also apply for multiple circles. First, there may be invalid loops with less than 3 positions. In Section III-B, we eliminate this case by having two circles’ centers outside each other, but this cannot be done for multiple circles. Second, two circles might be too far apart, leading to disconnected 𝒢\mathcal{G}. This later scenario can be mitigated with the help of a medial axis. For two circles 𝒞s,t\mathcal{C}_{s,t}, their centers are on the medial axis. If we can find a sub-path τ:[0,1]2\tau:[0,1]\rightarrow\mathbb{R}^{2} along the medial axis such that:

τ(0)𝒞aτ(1)𝒞b\displaystyle\tau(0)\in\mathcal{C}_{a}\land\tau(1)\in\mathcal{C}_{b}\land (12)
(τB(0))(𝒞s𝒞t)𝒲a=1K𝒞a,\displaystyle(\tau\oplus B(0))-(\mathcal{C}_{s}\cup\mathcal{C}_{t})\subseteq\mathcal{W}-\bigcup_{a=1}^{K}\mathcal{C}_{a},

then we can insert an edge into \mathcal{E}_{\mathcal{I}} between the outermost loops of 𝒞s\mathcal{C}_{s} and 𝒞t\mathcal{C}_{t}. Here \oplus is the Minkowski Sum, i.e. we require the path to have no interference with any obstacle or other circle. When performing pebble motions along τ\tau, we follow the procedure illustrated in Figure 6. The motions can be performed in a collision-free manner when Equation LABEL:eq:path holds. The procedure to convert the KK circles into 𝒢\mathcal{G} is summarized in Algorithm 4. This algorithm adds vertices corresponding to each term of the righthand side of Equation 10 in Line 3 and Line 6, respectively. It then adds three kinds of edges: 1) loop edges (Line 8); 2) inter loop edges (Line 11 and Line 16); and 3) medial axis edges (Line 20).

IV Pebble Motion Planning

We allow robots to perform two types of movements on the pebble graph: 1) cyclic permutation of robots in a single loop; 2) movement of robot to an adjacent vacant position (either in the same loop or in an adjacent loop). This setting is similar to prior work in [17], but that method focuses on checking the feasibility, while we ensure feasibility of arbitrary robot configuration change on the graph under the assumption that the graph vertices are not fully occupied. Our pebbling motion planner does not differentiate between loops of the same circle or loops of different circles (because such differences have been taken care of in Section III). Therefore, we only use a global superscript to index loops. For the iith loop, the set of vertices is denoted as 𝒱i\mathcal{V}_{\mathcal{L}}^{i}. These vertices are connected by a set of edges denoted as i\mathcal{E}_{\mathcal{L}}^{i}.

Formally, the topology of a pebble-graph 𝒢=<𝒱,>\mathcal{G}=<\mathcal{V},\mathcal{E}> successfully constructed from Algorithm 1 is simple, undirected, and connected. Different loops can be interpreted as a partition of 𝒱\mathcal{V} as follows:

𝒱=i=1K𝒱i,|𝒱i𝒱j|{0,2}.\displaystyle\mathcal{V}=\bigcup_{i=1}^{K}\mathcal{V}_{\mathcal{L}}^{i},\quad|\mathcal{V}_{\mathcal{L}}^{i}\cap\mathcal{V}_{\mathcal{L}}^{j}|\in\{0,2\}. (13)

The partition of vertices induces a partition of edge set \mathcal{E} as follows:

=i=1Ki,i=,|ij|{0,1}.\displaystyle\mathcal{E}=\mathcal{E}_{\mathcal{I}}\cup\bigcup_{i=1}^{K}\mathcal{E}_{\mathcal{L}}^{i},\quad\mathcal{E}_{\mathcal{L}}^{i}\cap\mathcal{E}_{\mathcal{I}}=\emptyset,\quad|\mathcal{E}_{\mathcal{L}}^{i}\cap\mathcal{E}_{\mathcal{L}}^{j}|\in\{0,1\}. (14)

Specifically, we assume that the vertices can be partitioned into K>1K>1 loops, where KK is the number of loops in the graph. We also require that i\mathcal{E}_{\mathcal{L}}^{i} is the unique loop connecting 𝒱i\mathcal{V}_{\mathcal{L}}^{i} and that i\mathcal{E}_{\mathcal{L}}^{i} is a simple loop (with no repeated vertices). Note that, under these definitions, each loop must have at least 33 vertices, i.e. |𝒱i|3|\mathcal{V}_{\mathcal{L}}^{i}|\geq 3. This is necessary because our motion planner moves robots by swapping the positions of two neighbors connected by a graph edge, where we need a third position as a buffer to accommodate temporary robots (see our extended version [32] for more details). Finally, we allow two loops to overlap; however, if the iith loop and the jjth loop overlap, we require that they share exactly 22 vertices. As a result, two loops can also share a common edge (this is why we have |𝒱i𝒱j|{0,2}|\mathcal{V}_{\mathcal{L}}^{i}\cap\mathcal{V}_{\mathcal{L}}^{j}|\in\{0,2\} and |ij|{0,1}|\mathcal{E}_{\mathcal{L}}^{i}\cap\mathcal{E}_{\mathcal{L}}^{j}|\in\{0,1\}). This corresponds to Case III of Section III-B. In summary, a successful graph returned by Algorithm 1 satisfies the following conditions:

Definition 1 (Pebble Graph).

A pebble graph 𝒢\mathcal{G} is a simple, undirected, and connected graph satisfying Equation 13 and Equation 14 with K>1K>1 such that, through each group of vertices in 𝒱i\mathcal{V}_{\mathcal{L}}^{i} (i=1,,Ki=1,\cdots,K), there is a simple, closed path formed by edges in i\mathcal{E}_{\mathcal{L}}^{i}.

On such a graph, we could follow similar reasoning as [9, 11] to verify feasibility for all the MPP instances and construct the corresponding motion plans, as summarized in the following result:

Theorem 1 (Pebble-Graph Feasibility).

On a pebble-graph 𝒢\mathcal{G} with |𝒱|=M>N|\mathcal{V}|=M>N, we assume 𝐬i=𝐯i\mathbf{s}^{i}=\mathbf{v}^{i} and 𝐭i=𝐯σ(i)\mathbf{t}^{i}=\mathbf{v}^{\sigma}(i), where σ()\sigma(\bullet) is an arbitrary permutation. there exists a finite sequence of pebble or rotational motions to move robots from 𝐬i\mathbf{s}^{i} to 𝐭i\mathbf{t}^{i} for all i=1,,Ni=1,\cdots,N, and the length of the motion sequence is 𝒪(|𝒱|2)\mathcal{O}(|\mathcal{V}|^{2}).

We prove Theorem 1 constructively in our extended version [32] by converting the permutation into a sequence of pairwise position swaps between two neighboring vertices, and we use the proof to construct a planning algorithm to solve MPP instances in our extended version [32].We then show that each swap can be accomplished by a 𝒪(|𝒱|)\mathcal{O}(|\mathcal{V}|)-sequence of motions. We further show that the amortized length of motion sequence for permuting the position of two arbitrarily distant vertices is also 𝒪(|𝒱|)\mathcal{O}(|\mathcal{V}|). Therefore, the total length of motion sequence to solve the pebbling problem is 𝒪(|𝒱|2)\mathcal{O}(|\mathcal{V}|^{2}). To accomplish each position swap, we need to move the vacant vertex, which is not occupied by any robot, near the to-be-swapped vertices. We could optimize the motion plan by moving the vacant vertex along the shortest path. It is convenient to pre-compute the all-pair shortest paths, which costs 𝒪(|𝒱|3)\mathcal{O}(|\mathcal{V}|^{3}). This step dominates the complexity of computing the motion sequence.

Refer to caption
Refer to caption
Refer to caption
Refer to caption

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

Figure 7: We highlight the 44 most challenging benchmarks. (a): A rectangular workspace with 600600 robots; (b): Another obstacle setup with 710710 robots. The two benchmarks (ab) are also used in [16], where robots’ goal positions are derived by permuting their start positions. (c): A maple-shaped workspace with highly irregular boundaries and 100100 robots; (d): A rectangular workspace with irregular obstacles and 130130 large robots. For (c) and (d), robots’ start positions are in red and goal positions are in blue.
Refer to caption
Figure 8: A similar scenario to one used in [25], where robots need to give way to each other by revolving. The robots’ start and end positions are in red and blue, respectively.
Refer to caption
Figure 9: We compare the changes in success rate over 5050 random runs of our method and [16], under different robot densities. In cases of high density, our method exhibits a much higher success rate, especially with a narrow passage, as seen in Figure 7 (c).
Bench. Method Metric Precomp. Planning Total Succ. Makespan Traj. Length
Figure 7 (a)/600600 Ours 2 313 316 100% 73×\times600 178×\times600
[16] - 333 333 100% 81×\times600 171×\times600
[25] - 258 258 - - -
Figure 7 (b)/710710 Ours 2 451 453 100% 82×\times710 163×\times710
[16] - 432 432 100% 76×\times710 166×\times710
[25] - 357 357 - - -
Figure 7 (c)/170170 Ours 4 212 216 100% 33×\times170 122×\times170
[16] - 208 208 82% 28×\times170 118×\times170
[25] - 205 205 - - -
Figure 7 (d)/130130 Ours 3 128 131 100% 26×\times130 132×\times130
[16] - 122 122 100% 23×\times130 136×\times130
[25] - 107 107 - - -
TABLE I: We compare the performance of different techniques. From left to right: benchmark/robots number, algorithm name, time to construct the pebble graph (in seconds); time to compute the MPP motion plan (in seconds); total computation time (in seconds); rate of success; makespan (average makespan of each robot ×\times number of robots); trajectory length (average trajectory length of each robot ×\times number of robots). All numbers are averaged over 50 random trials. Note the makespan (measured in the number of pebble steps) is incomparable with the trajectory length (measured in the unit length traveled by each robot).

V Local Navigation

In general, robot start/goal positions do not coincide with the graph vertices and we use local navigations to move robots to/from graph vertices. To this end, we propose a heuristic method based on RVO [29] and CAPT [14]. The RVO algorithm resolves local collisions between robots, and CAPT further uses the Hungarian algorithm to solve unlabeled navigation problems by assigning robots to goal positions. Since our graph vertices do not coincide with robot start/goal positions, we use a similar technique to assign each 𝐬i/𝐭i\mathbf{s}^{i}/\mathbf{t}^{i} to some graph vertex. This assignment can be arbitrary in our method because robots can be moved to any graph vertices and permuted later, while we propose computing an as-close-as-possible assignment via optimal transport by solving the following mixed integer linear programming:

argminz𝐬ij{0,1}\displaystyle\underset{z_{\mathbf{s}}^{ij}\in\{0,1\}}{\text{argmin}}\;\; i=1Nj=1Mz𝐬ij𝐬i𝐯j\displaystyle\sum_{i=1}^{N}\sum_{j=1}^{M}z_{\mathbf{s}}^{ij}\|\mathbf{s}^{i}-\mathbf{v}^{j}\|
s.t. j=1Nz𝐬ij=1i=1Nz𝐬ij=1,\displaystyle\sum_{j=1}^{N}z_{\mathbf{s}}^{ij}=1\wedge\sum_{i=1}^{N}z_{\mathbf{s}}^{ij}=1,

where z𝐬ij=1z_{\mathbf{s}}^{ij}=1 implies assigning 𝐬i\mathbf{s}^{i} to 𝐯j\mathbf{v}^{j}. After the assignment is computed, we can move each 𝐬i\mathbf{s}^{i} to 𝐯j\mathbf{v}^{j} using RVO. An identical procedure is used to assign 𝐭i\mathbf{t}^{i} to 𝐯j\mathbf{v}^{j} with decision variables denoted as z𝐭ijz_{\mathbf{t}}^{ij}. Finally, the graph vertex permutation can be determined from z𝐬ijz_{\mathbf{s}}^{ij} and z𝐭ijz_{\mathbf{t}}^{ij}. We set σ(j)=j\sigma(j)=j^{\prime} if z𝐬ij=1z_{\mathbf{s}}^{ij}=1 and z𝐭ij=1z_{\mathbf{t}}^{ij^{\prime}}=1 for some ii.

VI Experiments

We evaluate the performance of our method on a set of 55 benchmarks. The algorithm is implemented in C++ and tested on a desktop machine with an Intel Core i7 CPU running at 3.30GHz with 16GB of RAM. We have also compared our algorithm with [16, 25], which are recently proposed methods for centralized motion planning in continuous workspaces. Our method can compute motion plans for up to 200200 robots in less than 1010 seconds shown in Figure 7 (a) and (b), where the cost of pebble-graph embedding (Algorithm 1) is marginal and the majority of computation is spent on scheduling pebble motions on the graph. The detailed timing and trajectory qualities of the three methods are summarized in Table I. These results are derived by performing 50 random trials and taking the average. For each random trial, the robots’ start positions are randomly sampled.

Our first benchmark is illustrated in Figure 7 (a), where we compare our method and prior work [16] under different robot densities. The robots’ start positions are shown in red and their goal positions are derived by randomly permuting the starts. For 100100 robots, our method takes 88 seconds to compute the motion plan (including pebble-graph construction and pebble motion planning, but not local navigation), while it takes 1010 seconds to compute the motion plan using [16]. We then increase the number of robots to 200200 in Figure 7 (a), where our algorithm still takes 88 seconds to find a motion plan, while the computational cost of [16] is 1818 seconds using a rectangular grid as the graph. We can further increase the number of robots up to 600600, resulting in robots occupying 47%47\% of |𝒲||\mathcal{W}|, and the motion plan can be computed within 313313 seconds. We have tried a similar benchmark (Figure 7 (b)) with a different obstacle setup, where the overall computation time of our method is 22 seconds for 7070 robots. We can increase the number of robots up to 710710, occupying 55%55\% of |𝒲||\mathcal{W}|, for which our method computes a motion plan within 453453 seconds. Our third benchmark in Figure 7 (c) involves a maple-shaped boundary with a narrow passage and our forth benchmark contains irregular obstacles. Both [16, 25] fail for these irregular cases. This is because the regular grid used by [16] does not fit into the narrow space and the well-separated assumption of [25] does not hold, In contrast, our method succeeds in computing a motion plan within 220220 seconds for 170170 robots in Figure 7 (c) and 130130 robots in Figure 7 (d), with a success rate of 100%100\% over all 2020 executions.

Furthermore, we implement a similar scenario to [25], but unlike their experiments, the robots in our experiments are randomly placed. As a results, some robots do not have sufficient free space to accomplish a revolving motion, which is needed in [25] to find feasible motion plans. However, our method successfully moves robots into inscribed circles via local navigation, and revolving motions can still be performed. These behaviors are illustrated in the video and the overall computation time is less than 33 seconds.

In Figure 9, we have profiled the success rate of our method and [16] under different scenarios and robot densities. Note that our method relies on a randomized, greedy Algorithm 1 to construct the pebble graph, so it is possible to improve our success rate by running Algorithm 1 multiple times using different random seeds until a solution is found, as in Line 15 to Line 17 of Algorithm 1.

VII Conclusion and Limitations

We presented a new method to bridge the gap between continuous MPP planning and discrete pebble-graph motion. We first use medial axis analysis to extract critical information from the workspace, i.e. skeleton lines and inscribed circles. Using this information, we convert the free space into a pebble-graph via embedding.

Refer to caption
Figure 10: In the extreme case, densely packed robots take up 68%68\% of 𝒲\mathcal{W}.

We show that motion planning on the pebble-graph is always feasible under mild assumptions and general MPP instances can be reduced to graph pebbling problems via local navigation. We conduct experiments using a set of 55 challenging benchmarks and achieve a 100%100\% success rate under robot densities less than 37%37\%. In Figure 10, the robots take up 68%68\% of the free space, which implies that our method can work under extreme robot densities. The major limitation of our method lies in the overly conservative conditions derived in Section III which can leave some gap regions between robots. In large open areas, regular grids can have better space coverage [16]. Our future work would consider hybrid graph embedding techniques that combine multiple space tiling patterns, and we plan to derive improved boundary conditions for neighboring inscribed circles to accommodate more robots. Another limitation is that, our Algorithm 1 only considers robots’ start positions, and ignores their goals. This works well if the goal set is derived by permuting the start positions (as in Figure 7 (ab)), but the local navigation can fail if goal sets are far from the start positions (as in Figure 7 (cd)). \AtNextBibliography

References

  • [1] Hang Ma, Jiaoyang Li, TK Kumar and Sven Koenig “Lifelong multi-agent path finding for online pickup and delivery tasks” In Proceedings of the 16th Conference on Autonomous Agents and MultiAgent Systems, 2017, pp. 837–845 International Foundation for Autonomous AgentsMultiagent Systems
  • [2] Mikayel Samvelyan et al. “The starcraft multi-agent challenge” In Proceedings of the 18th International Conference on Autonomous Agents and MultiAgent Systems, 2019, pp. 2186–2188 International Foundation for Autonomous AgentsMultiagent Systems
  • [3] Artur Malinowski et al. “Multi-agent large-scale parallel crowd simulation” In Procedia Computer Science 108 Elsevier, 2017, pp. 917–926
  • [4] J.E. Hopcroft, J.T. Schwartz and M. 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, 1984, pp. 76–88 DOI: 10.1177/027836498400300405
  • [5] Robert A. Hearn and Erik D. Demaine “PSPACE-Completeness of Sliding-Block Puzzles and Other Problems through the Nondeterministic Constraint Logic Model of Computation” In Theor. Comput. Sci. 343.1–2 GBR: Elsevier Science Publishers Ltd., 2005, pp. 72–96 DOI: 10.1016/j.tcs.2005.05.008
  • [6] Paul Spirakis and Chee K. Yap “Strong np-hardness of moving many discs” In Information Processing Letters 19.1, 1984, pp. 55–59 DOI: https://doi.org/10.1016/0020-0190(84)90130-3
  • [7] Duong Le and Erion Plaku “Cooperative Multi-Robot Sampling-Based Motion Planning with Dynamics” In Proceedings of the International Conference on Automated Planning and Scheduling 27.1, 2017, pp. 513–521 URL: https://ojs.aaai.org/index.php/ICAPS/article/view/13854
  • [8] 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
  • [9] 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
  • [10] David Moews “Pebbling graphs” In Journal of Combinatorial Theory, Series B 55.2, 1992, pp. 244–252 DOI: https://doi.org/10.1016/0095-8956(92)90043-W
  • [11] 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
  • [12] Trevor Scott Standley and Richard Korf “Complete Algorithms for Cooperative Pathfinding Problems” In Twenty-Second International Joint Conference on Artificial Intelligence, 2011
  • [13] Guni Sharon, Roni Stern, Ariel Felner and Nathan R Sturtevant “Meta-Agent Conflict-Based Search For Optimal Multi-Agent Path Finding.” In SoCS 1, 2012, pp. 39–40
  • [14] Matthew Turpin, Nathan Michael and Vijay Kumar “Concurrent assignment and planning of trajectories for large teams of interchangeable robots” In 2013 IEEE International Conference on Robotics and Automation, 2013, pp. 842–848 DOI: 10.1109/ICRA.2013.6630671
  • [15] J. Yu “Average Case Constant Factor Time and Distance Optimal Multi-Robot Path Planning in Well-Connected Environments” In Autonomous Robots, 2019
  • [16] Jingjin Yu and Daniela Rus “An effective algorithmic framework for near optimal multi-robot path planning” In Robotics research Springer, 2018, pp. 495–511
  • [17] Jingjin Yu and Steven M. LaValle “Optimal Multi-Robot Path Planning on Graphs: Structure and Computational Complexity” In ArXiv abs/1507.03289, 2015
  • [18] Kiril Solovey and Dan Halperin “k-Color multi-robot motion planning” In The International Journal of Robotics Research 33.1 SAGE Publications Sage UK: London, England, 2014, pp. 82–97
  • [19] Athanasios Krontiris et al. “Rearranging similar objects with a manipulator using pebble graphs” In 2014 IEEE-RAS International Conference on Humanoid Robots, 2014, pp. 1081–1087 IEEE
  • [20] Michael Otte and Nikolaus Correll “Dynamic teams of robots as ad hoc distributed computers: reducing the complexity of multi-robot motion planning via subspace selection” In Autonomous Robots 42.8 Springer, 2018, pp. 1691–1713
  • [21] Aviel Atias, Kiril Solovey, Oren Salzman and Dan Halperin “Effective metrics for multi-robot motion-planning” In The International Journal of Robotics Research 37.13-14 SAGE Publications Sage UK: London, England, 2018, pp. 1741–1759
  • [22] Dror Dayan, Kiril Solovey, Marco Pavone and Dan Halperin “Near-Optimal Multi-Robot Motion Planning with Finite Sampling” In IEEE International Conference on Robotics and Automation, ICRA 2021, Xi’an, China, May 30 - June 5, 2021 IEEE, 2021, pp. 9190–9196
  • [23] Rahul Shome et al. “dRRT*: Scalable and informed asymptotically-optimal multi-robot motion planning” In Autonomous Robots 44.3 Springer, 2020, pp. 443–467
  • [24] Aviv Adler, Mark De Berg, Dan Halperin and Kiril Solovey “Efficient multi-robot motion planning for unlabeled discs in simple polygons” In Algorithmic foundations of robotics XI Springer, 2015, pp. 1–17
  • [25] Israela Solomon and Dan Halperin “Motion Planning for Multiple Unit-Ball Robots in Rd” In International Workshop on the Algorithmic Foundations of Robotics, 2018, pp. 799–816 Springer
  • [26] K. Solovey, J. Yu, O. Zamir and D. Halperin “Motion planning for unlabeled discs with optimality guarantees” In Robotics: Sciences and Systems, 2015
  • [27] Sarah Tang and Vijay Kumar “A Complete Algorithm for Generating Safe Trajectories for Multi-Robot Teams” Citeseer
  • [28] Joachim Giesen, Balint Miklos and Mark Pauly “The medial axis of the union of inner Voronoi balls in the plane” In Computational Geometry 45.9 Elsevier, 2012, pp. 515–523
  • [29] Jur Van Den Berg, Stephen J Guy, Ming Lin and Dinesh Manocha “Reciprocal n-body collision avoidance” In Robotics research Springer, 2011, pp. 3–19
  • [30] 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
  • [31] Harry Blum and Roger N Nagel “Shape description using weighted symmetric axis features” In Pattern recognition 10.3 Elsevier, 1978, pp. 167–180
  • [32] 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 abs/2002.11892, 2020