Ensuring Progress for Multiple Mobile Robots via Space Partitioning, Motion Rules, and Adaptively Centralized Conflict Resolution
EEnsuring Progress for Multiple Mobile Robots via Space Partitioning,Motion Rules, and Adaptively Centralized Conflict Resolution
Claire Liang , ∗ Wil Thomason , ∗ Elizabeth A. Ricci Soham Sankaran , Abstract — In environments where multiple robots must co-ordinate in a shared space, decentralized approaches allow fordecoupled planning at the cost of global guarantees, whilecentralized approaches make the opposite trade-off. Thesesolutions make a range of assumptions — commonly, thatall the robots share the same planning strategies. In thiswork, we present a framework that ensures progress for allrobots without assumptions on any robot’s planning strategyby (1) generating a partition of the environment into “flow”,“open”, and “passage” regions and (2) imposing a set of rulesfor robot motion in these regions. These rules for robot motionprevent deadlock through an adaptively centralized protocolfor resolving spatial conflicts between robots. Our proposedframework ensures progress for all robots without a grid-like discretization of the environment or strong requirementson robot communication, coordination, or cooperation. Eachrobot can freely choose how to plan and coordinate for itself,without being vulnerable to other robots or groups of robotsblocking them from their goals, as long as they follow the ruleswhen necessary. We describe our space partition and motionrules, prove that the motion rules suffice to guarantee progressin partitioned environments, and demonstrate several cases insimulated polygonal environments. This work strikes a balancebetween each robot’s planning independence and a guaranteethat each robot can always reach any goal in finite time.
I. I
NTRODUCTION
Some of the most successful real-world applications ofrobotics, including deployments in warehouses and industrialsettings, require coordinating multiple mobile robots in ashared space to avoid conflicts. Most approaches to multi-robot coordination in these settings assume that all robotsshare the same planning strategies. While this assumptionmay hold in real-world spaces today, in the future weexpect that mobile robots controlled by different entitiesand equipped with different planning strategies will have tocoexist safely in spaces such as shared warehouses, docks,and offices such that each robot is able to access sharedresources and make progress.In this paper, we introduce the concept of a motion pact ,which lays out a set of rules for motion in a shared spaceindependent of any particular planning strategy and providescertain guarantees if all robots in the space follow thoserules. We propose one such motion pact which guaranteesprogress for all robots while imposing relatively lightweightrestrictions on each robot’s space of planning choices, ensur-ing that each robot can largely plan, coordinate, and moveindependently from other robots in a decentralized fashion : Department of Computer Science, Cornell University, Ithaca, NY14850, USA { cliang,wbthomason,ericci } @cs.cornell.edu : Pashi Corp., [email protected] ∗ These authors contributed equally to this work. as long as it obeys the rules when necessary. The motionpact achieves this by (1) dividing up the shared environmentinto regions (Section IV), and (2) installing a set of motionrules (Section V) that consist of guided motion in certainregions and an online adaptive centralization mechanism for resolving spatial conflicts (Section V-C) We prove thatprogress is guaranteed for all robots if they all honor themotion rules (Section VI) — in particular, that at any instant,any robot is able to access any location in finite time— and demonstrate this practically via a proof-of-conceptsimulation implementation (Section VII).II. R
ELATED W ORK
Multi-robot path planning and coordination has been stud-ied extensively [2–4, 6, 8–13, 15, 18, 20, 23–29, 31, 32].Much of this work can be characterized by its degree of centralization : fully centralized methods [1, 2, 20, 26] tend tooffer guarantees around progress (i.e. ensuring that all robotsreach their goals) and optimality with regards to path length,but are typically computationally expensive and limited intheir scalability. At the other end of this spectrum, fullydecentralized methods [11, 17, 25, 28] most often take theopposite trade-off: high scalability, but weaker guaranteesof progress and optimal performance. Many approaches,including ours, lie between these extremes; we call these semi-centralized [6, 16, 22, 29].Our approach permits robots to remain fully decentral-ized and decoupled until a conflict arises during execution,at which time a subset of the robots must coordinate. Itcombines and builds on work in semi-centralized planningand space partitioning to offer guaranteed progress withoutmaking strong assumptions on robot planning methods. Ourspace partition prevents deadlock in narrow passageways,ensuring that every point in the workspace will always besafely reachable in finite time. We resolve conflicts in tightly-packed space with a protocol that builds on priority-basedplanning [28] and local conflict resolution [6, 13, 14, 21].We also guarantee progress and are complete; we do notprovide any guarantee on path length optimality.Van den Berg et al. [26] is similar to our approach in thatit performs maximally decoupled centralized planning fora set of robots by computing optimal partitions of robots tocentrally coordinate. Their algorithm runs offline and createssequentially executed plans among the partitioned subsets ofrobots. In contrast, our approach is designed to work online:we do not explicitly partition robots, and instead induce animplicit partition on-the-fly, selecting robots as-needed tocoordinate to resolve a given conflict. a r X i v : . [ c s . R O ] F e b inally, most existing automated warehouse systems usefully centralized methods with all robots operating under asingle unified planner [7, 30]. Our proposed approach hasparticular benefits for shared warehouses and other spacesin which multiple distinct entities (e.g. companies) have dis-tinct, independently-operated teams of robots operating in asingle shared space. Unlike existing multi-robot coordinationmethods, our proposed approach can accommodate theseentities using their own, separate planners for their robots,requiring only that the robots coordinate when conflictsarise, while ensuring that each robot can access every sharedresource in finite time infinitely many times.III. P ROBLEM S ETUP
Let R be a finite set of omnidirectional robots in atwo-dimensional polygonal environment E consisting of freespace F and polygonal obstacles O . Assume each robot r i ∈ R is modeled as a disc with the same fixed radius ρ , and that each r i ∈ R (1) has a maximum speed boundedby V ∈ R + and (2) uses a local safety controller to neveroverlap with any obstacle in O or other robot r j ∈ R , i (cid:54) = j .Finally, let each robot be independently controlled, with itsown navigation strategy and goals, and initialize the r i ∈ R to unique, non-overlapping positions in E at timestep t = 0 .We wish to guarantee that all r i ∈ R can safely navigateto their goals in finite time.IV. S PACE P ARTITIONING : R
EGIONS
We partition the free space of an environment into threeclasses of space: flow space , open space , and passage space according to the algorithm described in Appendix II. Theseclasses are composed of, respectively, flow regions , openregions , and passage regions . In the following, a “spot” refers to a B ( ρ ) ⊆ F , an exactly robot-shaped disc in the freespace of E . As disc-modeled robots in arbitrary environmentscan become stuck when the space is too densely occupied,we impose a global density cap: Assumption: Global Density Cap
Let N be the total number of open, flow, and pas-sage regions in F for some environment E . Let themaximal sphere packing a of a space be M Then theglobal cap on the number of robots allowed in E is M - N . In other words, there is always N spots’worth of unoccupied space. a Sphere packing is difficult and well-studied [19]. Similarsphere-modeled multi-agent robotics work assumes conservativeestimates of density, often in the range − [5] or lower.Identifying M , the upper bound, in practice is non-trivial, butdetermining a number below M that generously upholds thedensity assumption while outperforming the density of isachievable. In open space, robots can move freely; in flow space,there is an associated directional constraint on robot motion;passage regions help robots move between flow regions.We define the following: given a bounded environment E with free space F and robots of radius ρ , we partition F into sets Ω (the open space), Φ (the flow space), and Ψ (thepassage regions) such that:1) Φ contains a minimally one-robot-wide corridor aroundevery obstacle in E and the interior of E ’s perimeter.2) Every point in F that can be reached by a robot withoutfollowing any rules can be reached by a robot followingour proposed motion rules in Section V in Ω , Φ , or Ψ .3) Every point in Φ constrains robot motion to move ina particular direction (clockwise or counter-clockwise)around the perimeter and each obstacle in E , and thatthese directions are compatible with each other — thatis, that there are no two adjacent points directing a robotto move in opposing directions.4) Ψ is composed of passage regions P , where eachpassage region is a spot (a robot-shaped disc) thatconnects adjacent flow regions.V. R ULES OF M OTION
At any time, a robot is exclusive either in an open, flow,or passage region, or is transitioning between two regions.These conditions are disjoint — a robot may not be intwo types of region at the same time without transitioning.To transition between regions, a robot must use the “spacerequest” mechanism defined in Section V-F. In the following,let r i ∈ R be a robot, r i ( t ) its position at time t , and (cid:126)v i ( t ) its velocity vector at time t . We identify r i with its geometry,i.e. saying “all of r i is contained by a region” means thatthe ρ -radius disc representing r i is contained by the region. A. Determining a robot’s region and transition state
We determine whether r i is transitioning between regionsor in a particular region type at time t by the followingsequence of checks:1) If r i ( t ) ∩ P (cid:54) = ∅ for a passage region P ∈ Ψ , r i is in apassage region.2) Else, if r i ( t ) is completely contained in a flow region F ⊂ Φ , r i is in a flow region.3) Else, if r i ( t ) is completely contained by an open region O ⊂ Ω (i.e. B ρ ( r i ( t )) ⊆ O ), r i is in an open region.4) Otherwise, if none of the other conditions hold, r i istransitioning between regions. B. Constraints on robot motion If r i ( t ) is in a flow region, its velocity (cid:126)v i ( t ) must satisfy (cid:126)v i ( t ) · (cid:126)d c i ≥ , for c i the centroid of r i ( t ) and (cid:126)d c i the flowdirection at c i . In any region type, the pushing rules definedin Section V-F apply and may constrain the motion of r i . If r i is transitioning between regions, it must abide by all ofthe motion constraints for the region types it is transitioningbetween (e.g. a robot moving into a flow region cannot moveagainst the direction of flow at its transition point). C. Space Requests
Space requests are the core of our adaptive centralizationmechanism. Robots use space requests to (1) transition be-tween regions and (2) resolve spatial conflicts (i.e. conflicting ig. 1: An example of an environment partitioned into open regions(white), flow regions (periwinkle and lilac), and passage regions(green circles) with arrows indicating direction of motion. attempts to occupy a space). Space requests are tuples ( S, d, T ) comprising: The primary spot S : The primary spot represents the goalspace, if any, that the robot wishes to access. S is a radius ρ ball lying entirely in one region if the robot has a goal,or null otherwise. The duration d : A real number representing the amount oftime the robot would like to spend in the primary spot.
The transition spot T : The transition spot represents thespace, if any, that the robot may need to access to movebetween two regions. T is a radius ρ ball in a regionadjacent to the robot’s current location if the robot ismoving between regions, or null otherwise.To use space requests, each robot r i maintains the following: Priority:
A tuple L i = ( τ i , (cid:96) i ) where τ i is a timestampand (cid:96) i ∈ N is a unique label assigned to r i . “Timestamppriority” refers to τ i alone. If r i does not have an activespace request at some time t , then τ i = ∞ . Personal space request: SR p i = ( S p i , d p i , T p i ) , a spacerequest used for the robot’s unforced goals and transitions,as in Section V-D. Forced space request: SR f i = ( S f i , d f i , T f i ) , a space re-quest used for the robot’s forced goals and transitions, asin Section V-E. d f is always zero. Pusher identity: I p , a record of the robot (if any) whichoriginally initiated the pushing “network” containing r i .If r i is not being pushed, I p = (cid:96) i . D. Moving with personal space requests
Space requests for voluntary movement are a way ofreserving access to a desired space. A robot r i communicatesits intent to move into a space by submitting a space request,the request is checked to ensure that it is valid and won’tcause a collision, and then, once granted access to therequested space, r i can safely move in. There are three stagesto using a personal space request ( S p i , d p i , T p i ) : (1) making Or, in the case of a goal in or transition through a passage region, theconvex hull of two adjacent radius ρ balls (note 1). Fig. 2: An example of multiple robots (green, gray, and brown)satisfying their space requests (green with polka dots, empty graycircle, and brown with polka dots) at the same time. the request, (2) moving into the request once it is granted,and (3) completing the request.
Making a space request:
A robot r i can make a new spacerequest if S p i , the primary spot of its personal space request,is currently null . To do so, r i sets S p i to the spot itwishes to move into, sets d p i to the duration it wishes tospend in S p i , and communicates SR p i to the space requestarbiter χ (Section V-F). r i then waits for the arbiter to notifyit that its request has been granted and set its timestamppriority to the time of approval. While it waits, r i cannotmove unless forced (per Section V-E). r i can cancel itspersonal space request at any time by setting S p i to null and communicating SR p i to χ . Moving into a granted space request:
Once SR p i isgranted, r i must move into S p i as quickly as possible,following the shortest collision-free path to the requestedspace (abiding by motion rules). If this path crosses betweenregions, r i must use the transition spot T p i from SR p i , bysetting T p i to a spot (1) tangent to r i and (2) completely inthe region r i wants to enter, and communicating the modified SR p i to χ for approval of the transition per the above. Once r i changes regions, the transition spot is reset to null . Completing a space request:
Once r i has moved into S p i (i.e. r i and S p i align) for d p i seconds, the space request iscompleted and SR p i is reset to ( null , . , null ) . E. Forced space requests and pushing
To guarantee progress for all robots, we sometimes needto make one or more robots move out of the space anotherrobot wants to occupy. We do so by introducing a notionof “pushing”: a mechanism by which a high priority robotcan clear its path. At a high level, pushing is triggered whena higher priority robot encounters a lower priority robot inits way. If that lower priority robot can move out of thehigher priority robot’s path, it must; otherwise, if its own pathis blocked, it transitively pushes out, borrowing the higherpriority to do so. This iterative pushing, combined with atotal ordering of robot priorities, ensures that the originalhigher priority robot will be able to proceed toward its goal infinite time (proving this is the primary focus of Section VI).In more detail: a robot r i can (in different circumstances)both push and be pushed . Each of these processes uses eachrobot’s priority L i and forced space request SR f i . Comparing priorities:
We impose a total order on robotpriorities by saying that, for i (cid:54) = j , L i < L j iff τ i is laterthan τ j or τ i = τ j and (cid:96) i < (cid:96) j . This order ensures that earlierrequests have higher priority, and thus that a space request’spriority monotonically increases until it is completed. ig. 3: An example of how pushing occurs when TR (gray) ismoving to granted space request (gray circle), the desired motionis shown as a red arrow. Each pushed robot’s direction is indicatedby an arrow (in particular, observe that the purple robot overlapsthe requested spot, so it must move forward in the flow to get outof the way). Pushing:
When a robot r i is moving to complete its spacerequest (personal or forced) and comes tangent to a robot r j with lower timestamp priority, then r i pushes r j . r j first sets I p j = I p i and adopts the pusher’s ( r i ) timestamp priority forits forced space request SR f j . We then define a “pushingvector” recursively to derive how r j has to move from r i ’spushing vector. If r i is not being pushed (i.e. it’s the pushee),then its pushing vector is the vector from r i ( t ) to r j ( t ) . If r i is in a flow region, then its pushing vector is the flowdirection. Otherwise, r i ’s pushing vector also abides by thefollowing recursive definition. When r i pushes robot r j , r j selects a unit vector p θ with an angle ( θ ) within π/ of r i ’spushing vector ( p i ) and averages p θ and p i to generate p j . Being pushed:
A robot r j is pushed when it comes tangentto a robot r i with equal or higher priority. There is onenotable exception: to ensure that no robot can transitivelypush itself, if the timestamp priorities of r j and r i areequal, but I p i = (cid:96) j (i.e. r j originated the pushing networkcontaining r i ), then r j is not considered pushed. When r j is pushed, it sets T p j = null (cancelling any pending requeststo transition between regions for voluntary movement), andadopts r i ’s timestamp priority. r j must immediately attemptto move away from r i into a spot adjacent to its currentlocation within ± π radians of r i ’s pushing vector. If thereexists an unoccupied adjacent spot within the allowed anglerange, r j must move into it. If r j needs to place a spacerequest to move (i.e. there are no unoccupied adjacent spotswithin the allowed angle range), then it makes and completesa forced space request using SR f j in the angle range,following the same process as for personal space requestswith r i ’s timestamp priority for the request. A forced spacerequest is immediately canceled if the robot is no longerbeing pushed or transitioning to satisfy the pushed request. r j updates its pushing vector as described above.When equal priority robots push each other and neitheroriginated the pushing network, their pushing vectors areaveraged, ensuring a consistent overall pushing direction.Pushing is re-evaluated every timestep, so pre-establishedredundant forced space requests are automatically canceled.Pushing is covered in more detail in Appendix I. Note that this does not imply physical contact between robots; ρ canbe chosen to provide a buffer of space around each robot. The Passage Region Exception
Space requests work differently when a robot r i wants to occupy a passage region P .1) The primary or transition spot (depending onwhy r i wants to occupy P ) becomes a capsule region defined by P (cid:83) B EXIT , where B EXIT is a radius ρ ball adjacent to P in the flow region r i wishes to exit into.2) A robot pushed by r i can pass through the capsule to fulfill pushing, though it must clearthe capsule as quickly as possible.This allows robots to “escape” packed flow regionsto allow r i in and prevents deadlock caused by r i blocking other robots from moving out of its way(see Fig. 4). F. Global Space Request Arbiter
The global space request arbiter χ is in charge of spacerequests. We refer to χ as an adaptive centralization mech-anism because it coordinates precisely the set of robotswhich must be moved for a given robot to make progressand determines this set online. In practice, the arbiter couldbe implemented as a centralized entity or through localcommunication directly between robots. The arbiter has aninitial role of randomly assigning a unique ID (cid:96) i to eachrobot r i . It may reassign (cid:96) i for all robots at fixed intervalsto provide better overall fairness in access to resources (as (cid:96) i breaks ties when comparing priorities). However, thearbiter’s main job is to keep track of space requests andtheir priorities. Every time a robot makes a space request,it is submitted to the global arbiter with the timestamp τ when it was placed. The arbiter keeps track of the priorities ( τ i , (cid:96) i ) of all robots that have made a space request, removescancelled requests, and uses this information to send pushinginformation to the robots and grant requests. χ must approve all primary and transition spots for allspace requests. The approval process first checks that therequested spot is valid (i.e. that it is contained in the freespace). The arbiter immediately grants space requests thathave valid spots and do not require transitioning into aflow or passage region. Requests to transition into a flow orpassage region are approved once the requested spot is clear(i.e. does not contain any robots). When a request is made totransition into a flow or passage region, the arbiter informsnearby robots; robots with lower timestamp priorities muststay clear of the spot or exit it if they are currently occupyingit. If two conflicting requests (i.e. the requested spots overlap)with the same timestamp priority are ready to be granted, χ grants the request with the higher-priority value of (cid:96) .VI. A NALYSIS
We will now show that following the rules defined in Sec-tion V in an environment partitioned according to Section IVsuffices to guarantee progress for every robot in the sharedspace. heorem 1 (Progress) . For any valid environment E withrobots R , pick (without loss of generality) some r i ∈ R witha valid space request SR . Then r i will reach satisfy SR within finite time. We build our proof of Theorem 1 by first showing thatour motion rules result in progress in a series of simplifiedenvironment types, then compose these results together toguarantee progress for all valid environments. For space, weprovide sketches of the full proofs.
Lemma 1.
Assume any space request is satisfied in finitetime. Then every space request will eventually have thehighest priority.Proof Sketch.
Each robot can have at most one personalspace request and one forced space request a time. Theglobal space request arbiter processes space requests in orderof submission. Thus, there are a finite number of requests,processed in order of arrival, and (by assumption) each iscompleted in finite time. Further, by the ordering defined onrequest priorities, a request’s priority (1) is monotonicallyincreasing and (2) increases whenever a previously submittedrequest is completed. Therefore, every space request willeventually have the highest priority.We introduce the following symbols for proof sketchbrevity. Let γ be a finite set of transitively adjacent open,passage, and flow regions in an environment E , and let Γ ⊆ E be the set of all possible γ given environment E . Finally, letTR signify the robot r i with current global highest priority. Lemma 2.
Let Γ (cid:48) be a single infinite obstacle-free openregion, and note that |R| is finite. Let the current TR berobot r i , and let r i be a finite distance away from its grantedspace request SR . Both r i and SR lie in Γ (cid:48) . Then r i willcomplete SR in finite time.Proof Sketch. Assume Γ (cid:48) and r i as given. We will show that r i will satisfy its request in finite time by induction on |R| . Base case:
Let |R| = 2 , containing TR r i and one other robot r j . There can be at most one robot blocking the straight linepath from r i ( t ) to its goal. By the rules for being pushed,and since r i is TR, the obstructing robot r j will move awayfrom r i immediately if there is an adjacent open spot. Byconstruction of Γ (cid:48) , there must be an empty spot adjacent to r j . Therefore, r j will always clear r i ’s path in finite timeand thus r i will always complete SR in finite time. Inductive Hypothesis:
Let |R| ≤ k for k ∈ N . Then TR r i will complete SR in finite time. Inductive Step:
Let |R| = k + 1 . There are at most k robotsthat lie within the straight line path from r i to SR . Robots onthis path may have their movement blocked by at most k − robots. Since Γ (cid:48) is infinite, there always exists an empty spottransitively adjacent to every r ∈ R . By the pushing rules,the blocking robots directly adjacent to said empty spot mustimmediately move into it. Thus, combining this motion withthe inductive hypothesis, each robot obstructing r i ’s path isable to and will in finite time move out of the way. NOTE:
As described in the pushing rules the pushing vectorof the n th robot in a pushing chain is defined as p n = p n − + p θ , where p n − is the pushing vector of the robot thatpushed p n . This sequence of vectors’ angles in the globalframe is bounded above by the original top robot’s pushingvector angle ± π/ . This ensures that no chain of pushedrobots will ever circle back towards the original pusher (TR)and close a cycle with the original TR (which would precludeprogress). This process is also described in Appendix I. Lemma 3.
Let Γ (cid:48) be the subset of Γ such that each γ ∈ Γ (cid:48) consists of only a single flow network — a maximal subsetof Φ (cid:83) Ψ for which all regions are adjacent to at least oneother region in the subset. Let r i be TR with space request SR through a passage region P to exit into a flow region F . r i will complete SR in finite time.Proof Sketch. Note that (per the passage region exception in note 1) space requests in passage regions reserve a capsule region C instead of a radius ρ ball. The capsule overlapsboth the passage region P and an open spot in the exit flowregion adjacent to the capsule. We will call this open spot B exit and the flow region it belongs to F exit . F exit flowsin one direction by construction, moving away from P . Theproof proceeds by cases: Case 1:
C is already clear. r i can move into its requestedpassage region and exit region immediately. Case 2:
There are a finite set of robots ordered in proximityto P { r , r , ..., r j , ..., r k } in such that { r , ..., r j } lie in B exit (cid:83) C where i ≤ k . A capsule can intersect at most3 robots at once, so there must be at least j robots worth ofunoccupied space in γ ∈ Γ (cid:48) because of assumption 1.If the flow region has j unoccupied robot’s worth of space,robots { r j +1 , ..., r k } moving forward in the flow will causethe j unoccupied robot’s worth of space to move behind r i +1 and thus provide enough room for { r , ..., r j } to empty C . If the flow region does not have j unoccupied robot’sworth of space, then j robots need to exit F exit to anotherflow region through a passage region. If the adjacent flowregions have j unoccupied robot’s worth of space, each robotleaving F exit will use TR’s priority to reserve the passageregion and transition into the adjacent flow regions and likethe prior argument there will be enough room made for the j robots to clear C . In the worst case, pushing loops back to r i ,meaning that a robot (cid:54)∈ { r , ..., r j } must pass through C toallow { r , ..., r j } to clear the capsule-adjacent spot. By thepassage region exception (note 1), this can and will happen.This is important for scenarios like that shown in Fig. 4. Lemma 4.
Let Γ (cid:48) be the same as in Lemma 3. Let the currentTR be r i in Γ (cid:48) with space request z ∈ Γ (cid:48) . r i will reach SR in finite time without exiting Γ .Proof Sketch. A flow network can be represented as a net-work graph where nodes are unique flow regions and directededges are transition directions across boundaries through pas-sage regions. By construction, all flow regions are connectedtransitively to all other flow regions. Thus, flow networks are ig. 4: An example of a figure-eight environment where the toprobot (orange) needs to clear the capsule space (outlined in gray)that overlaps the passage region (green). The flow region the capsulespace overlaps is full of robots, so the last robot must pass throughthe capsule to enter the adjacent flow region (dashed arrow). strongly connected graphs. Lemma 3 establishes that passageregions can always be used in finite time, so robots can movebetween any two flow regions in finite time. By the flowmotion rules, robots also move through each flow region infinite time. Therefore, r i can reach SR without leaving Γ (cid:48) ,in finite time. Lemma 5.
Let Γ (cid:48) be the subset of Γ such that each γ ∈ Γ (cid:48) is a flow region network and a single open region adjacentto the flow region network. Then TR r i will reach its grantedspace request SR ∈ Γ (cid:48) in finite time, without exiting Γ (cid:48) .Proof Sketch. Sub-Lemma 1: Region transitions take fi-nite time
Claim: If r j is TR or is being pushed by TR r i , r j can always transition regions in finite time. There are threecases to consider, by transition type: (Flow → Flow):
Lemma 3 makes the claim hold for r j moving between flow regions via a passage region. (Flow → Open):
If there is not enough room for r j ∈ Φ to move into an adjacent spot in Ω , it will push outwardinto Ω . If there is sufficient unoccupied space in Ω , then thispushing will cause robots to occupy as much of this spaceas possible – gathering together into a more densely packedgroup– to try to clear a spot for r j in finite time. Otherwise,the pushing network will propagate until a robot is pushedinto Φ , clearing a spot for r j in finite time. These cases areexhaustive by assumption 1. (Open → Flow):
If the flow network is not full, Lemma 4means that r j can use a space request to transition in finitetime. If the network is full, assumption 1 implies that thereis a free spot in the open region. Thus a robot can exit thefull flow network to make room for r j to enter; by the rulesfor pushing (which causes robots in the flow network to pushout into open space), this will happen in finite time. Case 1: SR is in the open region O . ( r i in O ): We use the same inductive structure as Lemma 2with a different base case. An unoccupied spot somewherein γ is guaranteed by assumption 1. Either this unoccupiedspot is in O and pushing ensures the space request will becompleted in finite time (by condensing the robots in O ), orthe spot is in the adjacent flow network and pushing ensuresan obstructing robot will be pushed into the flow networkallowing the space request to be completed in finite time. ( r i in F ): If r i is in the flow network and its space request isin O , r i can reach a spot adjacent to O by Lemma 4. Then, by sub-lemma 1, it can enter O in finite time. Case 2: SR is in a flow region F . ( r i in F ): By Lemma 4, r i can reach its request. ( r i in O ): r i can make it to a spot adjacent to the flownetwork via Case 1, and then transition across the boundaryby sub-lemma 1. r i can then follow the flow network motionas per Lemma 4 to make it to its space request. Corollary 1.
Let Γ (cid:48) be the subset of Γ such that each γ ∈ Γ (cid:48) is a finite number of transitively adjacent flow regionnetworks and transitively adjacent open regions. The TR r i will reach its requested spot in finite time.Proof Sketch. Observation 1: Full Flow Region
In a packedflow network, the pushing rules imply that all robots willjoin r i ’s pushing network until one can exit into an adjacentregion. Observation 2: Full Open Region
In a packed open region,a robot originating a pushing network will push all robots onone side of the plane orthogonal to the robot’s pushing vectoruntil a robot is able to exit into an adjacent flow region.At this stage, it is not known if the whole open region ispacked. If the pushing network pushes back into the sameopen region, all robots in the region will be included in thepushing network and the region is known to be full. Thisfollows because the initial pushing vector and the pushingvectors re-entering the open region will have an angle of lessthan or equal to π radians between them, creating “pushingplanes” that cover the open region.Lemma 5 ensures that if there is an unoccupied spot ina region adjacent to the TR, pushing can and will use thisspot for r i to achieve its goal. assumption 1 ensures thereare N unoccupied spots in the space but does not guaranteethey are — at any given time — in a region adjacent tothe TR. However, in a γ with more than one flow networkadjacent to an open space, we need to prove that as pushingpropagates, the unoccupied space guaranteed by assumption1 will not move in cycles between regions without ever beingmoved to the region where SR lies. By construction of γ ,all regions are transitively adjacent to all other regions in γ .A pushing network will push into any adjacent unoccupiedspots, or expand the pushing network to encompass anyadjacent robots. Therefore, observation 1 and observation 2mean that pushing will always grow to cover larger subsets ofthe environment and find any possible unoccupied spots. Proof Sketch.
Proving Theorem 1 (Progress)
From Corol-lary 1 we know that any TR will reach its space request infinite time. From Lemma 1 we know if all space requests aresatisfied in finite time, all robots with a space request becomeTR in finite time. Thus, space requests will be satisfied infinite time, and progress for all robots is guaranteed.VII. E
VALUATION
We have implemented a proof-of-concept simulation ofour proposed approach, as shown in Figs. 1 to 3. In oursupplementary material, we include a video demonstratinghow robots move, resolve contention for space, and pushn packed environments when abiding by our motion rules.Each robot in our simulation creates and follows their ownplan without knowledge of other robots’ planning details. Weshow examples of several possible polygonal environmentspartitioned as per Section IV.VIII. C
ONCLUSION
In this work we present a method for ensuring progress forevery robot in a shared multi-robot space via a motion pact .Our motion pact is comprised of a partitioning of the environ-ment freespace along with a set of motion rules that allowrobots to plan independently and flexibly, with protectionfrom being blocked (either intentionally or inadvertently) byother robots’ behavior. We prove that the rules guaranteeprogress for every robot, and demonstrate a proof-of-conceptimplementation of our system.This work assumes that all robots are holonomic andcapable of instantaneous bounded acceleration. Beyond re-laxing this assumption, this work leaves several exciting openquestions. For example, one could consider re-imagining theform of goals to encompass team-based tasks, where multiplerobots must collaborate to satisfy their objectives rather thanindividually reach a location. With such an expansion, robotscan work in teams, or even switch between teams, to moreflexibly move and work in a shared space.A
PPENDIX
A: P
USHING L OGIC
We now describe, in Algorithm 1, the logic for computingthe pushing angles and velocity vectors for each robot in theset R at a timestep t . Algorithm 1 depends on the followingsubroutines: • activeSR( r i ) : Returns the first non-null space re-quest for r i , in the order T f , S f , T p , S p . • adoptpriority( r j , r i ) : Copies the timestamp τ from r i ’s priority and the identity r p of the originalpushing robot for r i to r j . • arc( push i ) : Returns the set of angles within ± π radians of push i . • overlaps( d , d ) : Returns true iff the discs d and d intersect. If called with robots r i , r j as arguments, d and d are the B ρ -sized discs centered at the positionsof r i and r j , respectively.At a high level, Algorithm 1 iterates through each pairof robots r i , r j ∈ R checking for each r j that is closeenough to a higher-priority r i , or the active space requestof a higher-priority r i , for pushing to engage. We computethe angle between the velocity vector push i of r i and thevector pointing from r i (or its active space request) to r j (Line 10), and, if this angle is within the acceptable ± π range of the original pushing vector, propagate the pushingpriority of r i to r j and set r j ’s velocity vector to move out ofthe way. This process repeats until no robot’s velocity vectorchanges, at which time the robots in R move accordingly.A PPENDIX
B: R
EGION G ENERATION
As described in Section IV, our approach requires parti-tioning the free space F of a bounded environment E into Algorithm 1:
Computing pushing vectors while any r i ∈ R ’s velocity changes do for r i , r j ∈ R × R do if L i < L j or I p i = (cid:96) j then continue else if priority ( r i ) = priority ( r j ) and ( r j ( t ) − r i ( t )) ∈ arc ( push j ) then push j = push i + push j continue if overlaps ( r i ( t ) , r j ( t )) then p = r i ( t ) if overlaps(activeSR( r i ), r i ) and overlaps(activeSR( r i ), r j ( t ) ) then p = centroid ( activeSR ( r i )) Θ = cos − ( push i · ( r j ( t ) − p ) (cid:107) push i (cid:107)(cid:107) r j ( t ) − p (cid:107) ) if Θ ∈ arc ( push i ) then adoptpriority ( r j , r i ) if r j ∈ Φ then v j = d r j ( t ) else v j = r j ( t ) − r i ( t ) three sets: the open space Ω , the flow space Φ , and the pas-sage region space Ψ . In this section, we describe constructingsuch a partition. We will refer to the set of all obstacles andthe internal perimeter of the environment as flow generatingobjects . Our algorithm proceeds through the following high-level steps (with further detail in corresponding subsections):1) Construct initial flow regions around each flow generat-ing object to capture a space wide enough for a line ofrobots around each object’s perimeter (Appendix II-A).2) Separately construct inflated flow regions around eachflow generating object (Appendix II-A). These regionscapture subsets of the free space too narrow to holdthree robots side by side.a) In areas where two inflated flow regions overlap, splitthe region lengthwise between corresponding flowgenerating objects.3) Construct single-lane regions from areas where twoinitial flow regions overlap (Appendix II-C) to captureflow space areas too narrow for two robots side by side.4) Place passage regions (Appendix II-D) to connect dif-ferent flow regions in Φ .5) Smooth the perimeter of open space (Appendix II-E).6) Assign directions to each flow region (Appendix II-F).7) Return the flow regions as Φ , the passage regions as Ψ ,and the remainder of the free space as Ω . A. Initial Flow Regions:
The initial flow regions are con-structed by taking the Minkowski sum of each object O i anda B ρ -sized disc. Each flow region is f i = ( O i ⊕ B ρ ) \ O i .If any f i intersects itself or a flow generating object, theenvironment is invalid and we return an error. B. Inflated Flow Regions:
The inflated flow regions areconstructed the same as the initial flow regions, but usinga . ∗ B ρ -sized disc. If two inflated flow regions overlap,generating initial flow regions without modification creates asubset of Ω too narrow to hold a robot. Instead, we split theinflated region overlaps along their central axis and add eachivided-up area onto their corresponding initial flow regions. C. Single-lane Regions:
Anywhere that two initial flowregions overlap is a subset of the flow space too narrowto hold two robots: both initial flow regions cannot exist inthe same space. We construct single-lane regions by joiningthe two generating objects at the ends of each overlap andcreating a new flow region between these bounds.
D. Passage Regions:
We place a passage region (per Sec-tion IV) on both ends of each single-lane region and at eachpoint where three or more flow regions meet. This (1) ensuresthat transitioning for single-lane regions is controlled byspace requests and (2) covers “sharp corners” in flow regions.
E. Smoothing:
Convolve a B ρ -sized disc with the innerperimeter of the open space (i.e. F \ Φ ). Anywhere that thisdisc is in contact with the inner perimeter at two points, weexpand the corresponding flow regions out to meet the disc.Smoothing ensures that no reachable point in F is madeunreachable by the flow/open space partition. F. Direction Assignment:
We assign directions to eachflow region by winding either clockwise or counterclockwisearound the centroid of its generating object (for single-laneregions, we arbitrarily choose one of the generating objects).We then return the flow, single-lane, and passage regions.R
EFERENCES [1] Tamio Arai and Jun Ota. “Motion Planning of MultipleMobile Robots”. In:
IEEE/RSJ IROS . Vol. 3. 1992.[2] Max Barer, Guni Sharon, Roni Stern, and Ariel Felner.“Suboptimal Variants of the Conflict-Based Search Algo-rithm for the Multi-Agent Pathfinding Problem”. In:
ECAI .2014.[3] Maren Bennewitz, Wolfram Burgard, and Sebastian Thrun.“Finding and Optimizing Solvable Priority Schemes forDecoupled Path Planning Techniques for Teams of MobileRobots”. In:
Robotics and Autonomous Systems
IEEE ICRA . May 1989, 322–326 vol.1.[5] Rupesh Chinta, Shuai D Han, and Jingjin Yu. “Coordinatingthe Motion of Labeled Discs with Optimality Guaranteesunder Extreme Density”. In: (2018).[6] C.M. Clark, S.M. Rock, and J.-C. Latombe. “Motion Plan-ning for Multiple Mobile Robots Using Dynamic Net-works”. In:
IEEE ICRA . Vol. 3. Sept. 2003, pp. 4222–4227.[7] Raffaello D’Andrea. “Guest Editorial: A Revolution in theWarehouse: A Retrospective on Kiva Systems and the GrandChallenges Ahead”. In:
IEEE TASE
IEEE ICRA . Vol. 3. Apr. 1986, pp. 1419–1424.[9] Georgios E. Fainekos, Antoine Girard, Hadas Kress-Gazit,and George J. Pappas. “Temporal Logic Motion Planningfor Dynamic Robots”. In:
Automatica
IEEE RA-L
IEEE/RSJ IROS . Vol. 3. Oct. 2001,pp. 1213–1219.
DOI : .[12] S. Kato, S. Nishiyama, and J. Takeno. “Coordinating MobileRobots By Applying Traffic Rules”. In: IEEE/RSJ IROS .Vol. 3. July 1992, pp. 1535–1541.
DOI : . [13] K. Madhava Krishna, Henry Hexmoor, and Srinivas Chel-lappa. “Reactive Navigation of Multiple Moving Agentsby Collaborative Resolution of Conflicts”. In: Journal ofRobotic Systems
IEEE ICRA . Vol. 3. Sept. 2003.[15] Ryan Luna and Kostas E. Bekris. “Efficient and Com-plete Centralized Multi-Robot Path Planning”. In:
IEEE/RSJIROS . Sept. 2011, pp. 3268–3275.
DOI : .[16] Jun-Han Oh, Joo-Ho Park, and Jong-Tae Lim. “CentralizedDecoupled Path Planning Algorithm for Multiple RobotsUsing the Temporary Goal Configurations”. In: ModellingSimulation 2011 3rd CIIS . Sept. 2011, pp. 206–209.[17] Lucia Pallottino, Vincenzo G. Scordio, Antonio Bicchi,and Emilio Frazzoli. “Decentralized Cooperative Policy forConflict Resolution in Multivehicle Systems”. In:
IEEE T-RO
DOI : .[18] Mitul Saha and Pekka Isto. “Multi-Robot Motion Planningby Incremental Coordination”. In: IEEE/RSJ IROS . Oct.2006.[19] GD Scott and DM Kilgour. “The density of random closepacking of spheres”. In:
Journal of Physics D: AppliedPhysics
AAAI . 2012.[21] David Silver. “Cooperative Pathfinding.” In:
Aiide
AAAI/IAAI . 2000, pp. 852–858.[23] Petr ˇSvestka and Mark H. Overmars. “Coordinated PathPlanning for Multiple Robots”. In:
Robotics and Au-tonomous Systems .Edmonton, Alta., Canada: IEEE, 2005, pp. 430–435.[25] Jur van den Berg, Ming Lin, and Dinesh Manocha. “Recip-rocal Velocity Obstacles for Real-Time Multi-Agent Navi-gation”. In:
IEEE ICRA . 2008.
DOI : .[26] Jur van den Berg, J. Snoeyink, M. Lin, and D. Manocha.“Centralized Path Planning for Multiple Robots: OptimalDecoupling into Sequential Plans”. In: RSS . June 28, 2009.[27] Kyle Vedder and Joydeep Biswas. “X*: anytime multiagentpath planning with bounded search”. In:
Autonomous Agentsand Multiagent Systems (2019).[28] Prasanna Velagapudi, Katia Sycara, and Paul Scerri. “Decen-tralized Prioritized Planning in Large Multirobot Teams”. In:
IEEE/RSJ IROS . Oct. 2010, pp. 4603–4609.[29] Glenn Wagner and Howie Choset. “M*: A Complete Multi-robot Path Planning Algorithm with Performance Bounds”.In:
IEEE/RSJ IROS . Sept. 2011, pp. 3260–3267.[30] Peter R Wurman, Raffaello D’Andrea, and Mick Mountz.“Coordinating Hundreds of Cooperative, Autonomous Vehi-cles in Warehouses”. In:
AI magazine
IJARS