LSwarm: Efficient Collision Avoidance for Large Swarms with Coverage Constraints in Complex Urban Scenes

by   Senthil Hariharan Arul, et al.

In this paper, we address the problem of collision avoidance for a swarm of UAVs used for continuous surveillance of an urban environment. Our method, LSwarm, efficiently avoids collisions with static obstacles, dynamic obstacles and other agents in 3-D urban environments while considering coverage constraints. LSwarm computes collision avoiding velocities that (i) maximize the conformity of an agent to an optimal path given by a global coverage strategy and (ii) ensure sufficient resolution of the coverage data collected by each agent. Our algorithm is formulated based on ORCA (Optimal Reciprocal Collision Avoidance) and is scalable with respect to the size of the swarm. We evaluate the coverage performance of LSwarm in realistic simulations of a swarm of quadrotors in complex urban models. In practice, our approach can generate global trajectories in a few seconds and can compute collision avoiding velocities for a swarm composed of tens to hundreds of agents in a few milliseconds on dense urban scenes consisting of tens of buildings.


page 1

page 4

page 6

page 8

page 10


V-RVO: Decentralized Multi-Agent Collision Avoidance using Voronoi Diagrams and Reciprocal Velocity Obstacles

We present a decentralized collision avoidance method for dense environm...

Stigmergy-based collision-avoidance algorithm for self-organising swarms

Real-time multi-agent collision-avoidance algorithms comprise a key enab...

Multi-Agent Coverage in Urban Environments

We study multi-agent coverage algorithms for autonomous monitoring and p...

Development of global optimal coverage control using multiple aerial robots

Coverage control has been widely used for constructing mobile sensor net...

Learning-to-Fly: Learning-based Collision Avoidance for Scalable Urban Air Mobility

With increasing urban population, there is global interest in Urban Air ...

On the Effects of Collision Avoidance on Emergent Swarm Behavior

Swarms of autonomous agents, through their decentralized and robust natu...

Distributed Swarm Collision Avoidance Based on Angular Calculations

Collision avoidance is one of the most important topics in the robotics ...

I Introduction

Recent advances in multi-rotor UAVs have created new areas of application, including surveillance, search and rescue, and monitoring. Continuous surveillance involves gathering sensory data (such as from a camera) from all regions in an area or volume of interest by traversing a path optimized for maximum coverage while accounting for static and dynamic obstacles [9]. For applications like surveillance, using a single UAV/agent may not be effective, when time, battery capacity, reliability, and coverage performance are considered.

An obvious solution to this problem is to use a swarm of agents and have each agent follow an optimal path provided by a global coverage strategy that maximizes the covered area or the information gathered from the environment. We use ”optimal coverage path” or ”global coverage path” to refer to this global path in this paper. Many techniques have been proposed that have formulated this optimal coverage path for multi-agent systems [13, 20, 21, 25, 30].

However, some of the existing swarm algorithms ignore collisions between the swarm agents and dynamic obstacles in the environment [13, 21], while others do not provide solutions that can be scaled to hundreds of agents. In addition, making an agent hover to avoid collision would not work when multiple dynamic obstacles approach head-on. When an agent encounters large numbers of dynamic obstacles, a haphazard maneuver to avoid collisions will again lead to loss of valuable data on the ground. In addition, the resolution of the data gathered is important to ensure its usefulness and it is an important factor to consider while performing collision avoidance maneuvers.

Fig. 1: Simulation of quadrotors surveying our High-Dense urban environment.

Objective: In this paper, we address the complex problem of collision avoidance in a swarm of quadrotors during continuous surveillance of an urban environment. We impose constraints on coverage area and data resolution such that the quadrotors lose minimal ground coverage information while deviating to avoid collisions.

Main Contributions: We present LSwarm, a local collision avoidance method for a swarm of quadrotors operating in large, complex 3-D urban environments. Our method builds on ORCA [26] (a Velocity Obstacle based collision avoidance method), and provides collision avoidance with static obstacles, reactive swarm agents (other quadrotors) and unreactive dynamic obstacles (such as birds) in the environment while also satisfying certain coverage constraints.

Our coverage constraints consider the following:

(i) Each agent conforms maximally to an optimal path given by a global coverage strategy during collision avoidance. In other words, the calculated collision avoidance velocities for each agent also minimizes the coverage area loss (defined in section 3.1)

(ii) The coverage data obtained by the agents’ sensors have sufficient resolution (defined by Ground Sampling Distance (GSD)).

LSwarm employs a precomputed look-up table of coverage area overlap for various velocities (section 4.4) so that collision avoidance under coverage constraints can be executed in real-time.

Our collision avoidance method is compatible with any global coverage strategy that provides waypoints. We use a simple lawn mower strategy to provide the global coverage path in this paper.

We evaluate LSwarm’s performance with respect to ORCA in urban environments which contains a plethora of static obstacles such as buildings of various heights, and dynamic obstacles in the form of birds, helicopters and other swarm agents. We perform accurate simulations of the quadrotor swarm in four different 3-D urban scenes. Depending on the model, the number of buildings vary between to , and the height of buildings vary between to meters. Our algorithm takes milliseconds to compute collision-free velocities for 50 quadrotor agents on eight cores. We observe that LSwarm provides an improvement up to nearly a factor of two in coverage areas over the use of ORCA, as the number of dynamic obstacles increases.

We first survey the previous work in coverage strategies and collision avoidance in Section 2. We formally define our coverage constraints and give a description of the global lawnmower strategy in Section 3 and present our local collision avoidance algorithm in Section 4. Section 5 presents the experiments and results of our implementation. Section 6 summarizes the paper and suggests possible directions for future work.

Ii Previous Work

Swarm agents such as UAVs have been an active area of research, due to their flexibility and a wide range of applicability in surveillance, search and rescue operations, and other information-gathering scenarios. A recent survey on control, planning, and design of aerial swarm robots can be found in [4].

Ii-a Swarm Control Strategies for Coverage Optimization

In this section, we give a brief overview of prior work on swarm-based coverage optimization, and collision avoidance strategies.

Coverage Optimization: Urban area surveillance with added localization constraints during trajectory generation and optimization of the final swarm distribution to cover high priority surveillance regions is presented in [21]. Julian et al. present a scalable consensus-based approximation method to generate trajectories to maximize the information gathered by a swarm in [13]. Similarly, [23] uses the analytical gradient of mutual information to formulate a multi-agent controller for hazardous environments. This method is extended to a decentralized formulation in [5]. Velagapudi et al. [30] present a distributed planner to explore moderately constrained environments that also accounts for communication constraints in large swarms in 2-D.

Collision Avoidance through precomputed trajectories:
Saha et al. [20] demonstrate a scalable incremental motion planning method to find the order in which the robots are dispatched to their destination in constricted environments. Although this approach is useful for planning in narrow spaces in an urban setting, the time taken to precompute trajectories is high for even a group of tens of robots. Turpin et al. [25] present a centralized trajectory generation algorithm with optimality guarantees along with a scalable decentralized case. However, they assume the absence of static obstacles. A centralized feedback control law for uniform and ergodic domain coverage using multi-agent systems is shown in [18]. Trajectory generation for hundreds of quadrotors in dense continuous environments is demonstrated in [12]. This approach generates an inter-robot conflict annotated roadmap, then solves a generalized Multi-Agent Path Finding (MAPF) problem to avoid conflicts in the roadmap, while continuously smoothening the trajectory. A parallelization formulation for centralized trajectory generation methods for swarms is shown in [10].

In contrast to previous work, our method combines a global coverage strategy (based on the lawnmower strategy) with a local collision avoidance scheme (based on Velocity Obstacle) which avoids collisions on the fly. The global coverage strategy in our case accounts only for avoiding static obstacles and not the inter-agent collisions in the swarm.

Ii-B Space Filling Curves

Multiple works have investigated applying and simplifying the implementation of space-filling curves such as the lawnmower and Hilbert curves for global coverage. The first formal work on sweep search that used a probabilistic lawnmower sweep method is presented in [15]. In [3], the boustrophedon cellular decomposition of the free space is discussed. This work drastically simplifies the number of cellular decompositions compared to previous methods and allows a robot to cover each cell with back and forth lawnmower motions. Kong et al. [14] build on this work by allocating multiple cooperating and communicating robots to cover different areas in the environment in a distributed fashion. Vincent and Rubin [31] present a cooperative search using a swarm of UAVs that follows lawnmower trajectories to detect an evading target. The use of Hilbert space-filling curves for a geographic search using robot swarms is explored in [24]. Our method adopts the lawnmower strategy [3] to plan for optimal coverage paths, which are then used as a constraint for performing local collision avoidance that minimizes deviation from the optimal coverage using a team of aerial robots.

Ii-C VO-based collision avoidance

Collision avoidance with dynamic obstacles has been investigated extensively in [6, 8, 11, 17]

. These approaches estimate the future positions of obstacles using their observed velocities. Velocity Obstacle (VO)

[7] methods transform the collision avoidance problem in the workspace to an equivalent formulation in the velocity space. Reciprocal Velocity Obstacles (RVO) [27] improved on VO to tackle robot-robot collision avoidance, where each agent chooses its own velocity based on the velocity of other agents. Optimal Reciprocal Collision Avoidance (ORCA) [26] further built upon RVO by providing a sufficient condition for multiple robots to avoid collisions among one another, thus guaranteeing collision-free navigation. ORCA was extended to 3-D in [29] and to include static obstacle avoidance in [1]. Breitenmoser and Martinoli [2] combine multi-robot coverage and reciprocal collision avoidance and evaluated its benefit in several scenarios.

Simulation: OpenUAV, the state of the art in UAV simulation is presented in [22]. It is a cloud-enabled testbed for UAVs using ROS, Gazebo and PX4 simulation packages. Since the simulation is run on the cloud, only a few (around 10) realistic UAV models can be simulated in real time.

While constraints to avoid collisions between swarm members and static obstacles are included in most trajectory generation methods, either the absence of dynamic obstacle avoidance, ability to adapt to changing scenes or issues in scalability are still prevalent in most of these methods. ORCA is insufficient for collision avoidance in urban scenarios since ORCA doesn’t consider static obstacles by itself. LSwarm overcomes such disadvantages of ORCA and retains its advantages such as scalability and compatibility with global planners.

Iii Swarm Coverage in Urban Scenes

In this section, we formally define our constraints on coverage loss and resolution of the collected data. We state the assumptions we make for each swarm agent and then describe the global lawnmower strategy that provides the optimal coverage path.

Iii-a Coverage Constraint Definition

As stated earlier, LSwarm’s coverage constraints ensure that collision avoidance velocities are calculated such that coverage area loss is minimized and the resolution of collected data is satisfactory.

Iii-A1 Coverage Area Loss

Each swarm agent’s primary objective is to follow the optimal coverage path as closely as possible. The optimal coverage path provides the maximum coverage of the environment, and any deviation from this path would result in loss of coverage area. The following definitions apply to each quadrotor in the swarm.

Let be the preferred area that would have been covered if a quadrotor followed the optimal coverage path perfectly for a given period of time. Let be the actual area covered by the quadrotor. When the quadrotor does not face any obstacle while on the optimal coverage path, . In cases where the quadrotor faces obstacles, . Let denote the overlap area between and . Then,

The overlap ratio is given by,

The coverage loss is then defined as . When , (optimal path is perfectly followed), the coverage loss is 0.

Iii-A2 Sensor Resolution

We assume that each quadrotor or the agent in our swarm has a sensor (a camera in our case) to gather information from the environment. The sensor is modeled to have a conical view of the environment with a fixed apex angle. The radius of the base circle of this view-cone would depend on the altitude at which the quadrotor is flying as:


where is half of the apex angle of the cone.

This means that the sensor covers more area when the quadrotor is flying at a higher altitude, but the resolution of the sensor output at this higher altitude may not be satisfactory. In some collision avoidance scenarios, the quadrotor might change its altitude which again could result in loss of resolution.

To ensure that there are no detrimental effects to resolution, we use a measure called Ground Sampling Distance (GSD) and use it in our coverage constraints. GSD is the length on the ground denoted by one pixel on the image. GSD increases with altitude and the greater the value of GSD, the poorer the resolution (see Fig. 2). GSD is chosen as a metric for resolution because it provides a linear relationship between the flying altitude of the quadrotor and the features that can easily be covered on the ground from that altitude. For example, if our objective is to view the people on the ground, we can calculate the optimal height at which the quadrotor has to fly to make at least two pixels represent a person. Since GSD is calculated for a rectangular image, we take the largest area square within the base circle of the sensor cone for our calculation of GSD. The area of this square (of side s) is considered to be the area covered by a quadrotor at one instant of time. The GSD for a rectangular image is generally calculated as,


where h is the flying altitude and K is a constant calculated as:


Where the sensor height and sensor weight are the dimensions of the camera lens and f is the focal length of the lens. The relationship between the side of the largest area base square and the altitude from is given as:

Fig. 2: Change in area of the coverage grid for different flying altitudes of the quadrotor is shown. and are a measure of the height and width of the pixels in the coverage grid. As the grid becomes larger, the finer details on the ground are missed.

Iii-B Assumptions on Swarm Agents

We assume that the sensor attached to the agent always faces downwards irrespective of the orientation of the agent. This can be achieved by say attaching the sensor to a gimbal. We also assume that each agent knows its own position and velocity accurately, and can sense the positions and velocities of other agents around it.

Iii-C Global Coverage Strategy

We use a simple lawnmower sweep to generate our optimal coverage path. Lawn mower sweep, which is also known as Boustrophedon coverage, is a simple yet widely used strategy that guarantees 100% coverage of a search space [3, 19]. Some implementations [3] segregate the obstacle and the non-obstacle region and perform a separate search sweep in each connected non-obstacle region. Similar ideas have also been used in unknown terrain; for example, [19] uses a combination of boustrophedon and A* to, respectively, (a) perform a search sweep in unknown terrain, and (b) optimally traverse the known terrain.

Using lawn mower sweep in urban environments provides a unique set of challenges. Covering occluded areas where buildings are densely constructed is one challenge that is not typically addressed by the standard two-dimensional implementations of the approach. The occlusion problem can be mitigated by having agents adjust their height to fly over the buildings that create such occlusion. In other words, connections between different regions of ground-level search are possible by having agents perform a temporary change in altitude by flying over buildings.

Fig. 3: Top-down view of Lawnmower waypoints over a city block. The white part represents the buildings (obstacles) and the black regions represent obstacle-free space. A part of lawn mower sweep is shown in green and red colors. Green color represents the optimal height of operation while the red color represents an elevated path to avoid buildings.

Iii-C1 Lawn mower sweep: formalization and problem statement

This subsection will formulate Lawn Mower algorithm mathematically.

Given, a space . Defining and , as obstacle space and free space respectively, such that , . A path is a function which maps the path to a point in the free space. Therefore we can define


where is number of agents. Now let be the search space such that . Assuming agent’s camera sensor always facing downwards, the volume of space that is sensed by the sensor forms a conical shape below the agent. Let is the set of points in a downward facing camera at and extended below till forming a 3D conical space. Here might be inferred as the valid sensing distance. The multi-robot coverage problem is formally defined as follows:

Multi-robot coverage problem:
Find such that , where is given by:


and where .

Iii-C2 Global Solution

Our global lawnmower solution experiments take the quadrotors’ sensor model and a resolution measure for the sensor output into account and precompute the waypoints (as seen in Figure.3) over the environment. We use a simple approach that extends a standard lawn mower sweep from two-dimensions to three dimensions by determining the optimal flying altitude to obtain a good resolution in the output and the necessary altitude changes to avoid collisions with building along the sweep path, and then augmenting the height components of the path accordingly. It is possible to use more sophisticated methods, which calculate a sweep path that minimizes the number of altitude changes required over the entire search. We choose a simple method so that we can easily compute such waypoints for complex urban scenes with a large number of buildings.

Iv Local Collision Avoidance With Coverage Constraints

In this section, we provide a brief introduction to ORCA and then define our local collision avoidance method with coverage constraints.

Iv-a Symbols and Notations

A list of symbols and their definitions used in the formulation of ORCA [26] is shown in Table 1. A brief explanation for ORCA using these symbols is provided in Section IV.B.

Symbol Meaning
Velocity of Agent A directed towards goal position in the absence of obstacles
New Velocity chosen by Agent A
Optimal velocity for agent A
Velocity Obstacle induced by B on A for time
Disc centered at p and radius r
Minkowski sum of sets X and Y
Current Position of Agent A
Next Waypoint for Agent A
Previous Waypoint for Agent A
Closest Point on line segment from current position of Agent A
Optimized collision avoiding velocity set for A induced by B during time
TABLE I: Definition of Symbols used in ORCA formulation

Iv-B Optimal Reciprocal Collision Avoidance

Iv-B1 Velocity Obstacles

Consider a pair of agents A and B. The velocity obstacle (VO) for the pair is defined as the set of all relative velocities of A with respect to B that will result in a collision between A and B before time . It is formally defined as,


where is a disk centered at p with radius r which is defined as:


In 2-D, ORCA represents all agents as discs which is extended to a sphere representation in 3-D. The velocity obstacle for such a case can be geometrically interpreted as a truncated cone with its apex at the origin of the velocity space and its legs tangent to the disc of radius + , centered at . We can infer from the formulation of VO that for any velocity , if , then A and B are guaranteed to avoid collision for at least time . The ORCA algorithm calculates optimal collision avoidance velocity sets from which new and can be chosen.

Iv-B2 Optimizing the Velocity Computation

ORCA tries to optimize the new chosen velocities to be close to the agents’ optimal velocities. An agent’s optimal velocity can be one of three values: zero, preferred velocity or the agent’s current velocity. The objective is to calculate the velocity sets for A and for B. These sets contain more velocities close to and , respectively, than any other pair of sets of reciprocally collision-avoiding velocities.

If suppose , then the two agents may collide before time . To achieve collision avoidance with the least amount of effort, ORCA finds a relative velocity on the boundary of that is closest to .

Reactive Obstacles: ORCA lets each agent take half of the responsibility for changing their velocities such that their relative velocity lies outside . Based on this formulation, the ORCA velocity set for A is given as:


where u is the vector from

to the VO boundary point and is the outward normal at point on the boundary of .

Non-reactive Obstacles: The dynamic obstacles that cannot change their velocities to avoid a collision are referred to as non-reactive dynamic obstacles. Since such obstacles take no responsibility to avoid a collision, the ORCA velocity set for an agent in such cases is given by:


The same expression also applies to static obstacles.

As an extension for a swarm of n agents, the permitted velocity set for agent A denoted as is the intersection of all half-planes induced by all agent B’s. It is defined as:


The new velocity that agent A chooses would be the one that is closest to its preferred velocity from .


The new velocity is computed using linear programming. ORCA is a simple algorithm with low computational overhead. Therefore, it can be run online on each agent and thus is highly scalable to a large number of swarm agents. With its potential to be implemented on a large swarm, ORCA needs to be augmented with additional constraints to handle the coverage loss that arises from agents encountering a large number of dynamic obstacles.

Iv-C Collision Avoidance with Static Obstacles

The lawn mower strategy computes the global coverage path while accounting for the static obstacles in the environment. In dense urban scenarios, the quadrotors might be required to maneuver close to buildings and any deviation from the global path during collision avoidance may cause them to collide with the buildings (scenario represented in Fig. 5). To prevent such collisions, our method accounts for the static obstacles in the ORCA formulation (described in section IV.B) using proximity queries as suggest in [1]. Each quadrotor continuously monitors its surroundings and computes its proximity to static obstacles ( in Figure 4), like the buildings in an urban scene. The quadrotor’s collision model is taken as a sphere with radius r. The closest point on the static obstacle is considered as a point obstacle and the Minkowski sum is calculated considering a small positive value for the radius of the closest point and the quadrotor sphere’s radius (r).


We compute the Velocity Obstacle using the Minkowski sum as shown in Figure.4. We use the ORCA formulation for non-reactive obstacles as described in Section IV.B to select a new velocity for the agent that is closest to the its optimal velocity and lies outside the VO. Since this method considers only the closest obstacle point, it can be easily incorporated in a physical quadrotor system using simple depth sensors.

Selecting Preferred Velocity: In ORCA, the Agent’s preferred velocity is directed towards the next waypoint. In certain cases, with the deviation caused by collision avoidance, this can be directed through the buildings. The static obstacle avoidance described above will prevent collision with the buildings but since we consider only closest points as obstacles, it may reach a deadlock trying to follow this path to the next waypoint. To solve the above problems, we update the as being directed to the closest point along the line segment connecting previous waypoint and next waypoint, when the quadrotor is displaced from the optimal coverage path.

Fig. 4: The Velocity Obstacle (truncated cone) constructed by a quadrotor when encountering static obstacles. The sphere with radius R is the set denoting the Minkowski sum of the quadrotor radius (r) and the obstacle point radius ()
Fig. 5: In the scenario above both agents have a collision free global path but dynamic obstacle avoidance deviates the path towards the building. (Top) LSwarm avoids the static obstacle while (Bottom) ORCA suffers Collision. Color intensity increases with time-step

Iv-D Dynamics Constraints

ORCA assumes agents can modify their velocity instantaneously. Hence, some fundamental dynamics constraints need to be considered before calculating new velocities for quadrotors. These dynamics constraints can be limits on maximum velocity and acceleration, which in turn translate to constraints on the roll, pitch and yaw angles. Quadrotors in the swarm may destabilize when there is a large change in their velocities, which results in large pitch or roll angles that might topple the quadrotors. To prevent such scenarios, we fix the maximum acceleration of the quadrotors and eliminate any velocity that does not obey the following constraint:


This formulation helps keep the collision-free velocity space convex, thus ensuring fast computation time. The search for appropriate velocities can be performed using acceleration velocity obstacles [28].

Iv-E Dynamic Collision Avoidance with Coverage Constraints

We first derive an objective function that needs to be maximized based on the overlap area that was described in section III.A.

In the absence of dynamic obstacles, all quadrotors would fly between one waypoint to the next with their preferred velocities at the optimal altitude computed by the lawnmower strategy. As mentioned previously, we consider that each quadrotor covers a square area at any instant of time. Therefore, the area covered by a quadrotor for time can be given as,




and is the initial height at which the quadrotor was flying at the start of the time interval .

The area covered over a time horizon for which the velocity will be constant can be computed as:


We sample the time horizon into smaller time steps t and forward simulate the velocity to calculate the area that would be covered if is chosen as the new velocity.

When dynamic obstacles are present, the quadrotors chooses a new velocity according to , and and in equation would be with respect to .


The above equation is obtained as follows. The X and Y coordinates of the center of coverage squares are obtained from the product of the X and Y components of and t. The product of and t gives us the change in the flying height or altitude of the quadrotor.

The conformity to the global optimal coverage path automatically results in minimizing the loss of the coverage area. Conformity increases with increase in overlap between the areas in equations and , while also limiting the GSD below an upper threshold.

Therefore, our objective function becomes:


A collision avoidance scenario is shown in Fig. 6, and the corresponding coverage area for different states of the quadrotor are shown in Fig. 7.

Overlap area can be computed by methods such as clipping, but performing clipping in each time-step for each agent would be computationally expensive. We avoid the above issue using a look up table with pre-computed values for overlap area as explained in the next section.

Fig. 6: Quadrotor deviating downward when avoiding a dynamic obstacle (a bird). The translucent quadrotors represent the path that would have been taken in the absence of the dynamic obstacle, when v = . The curve with the opaque quadrotors represents the path taken to avoid the obstacle when v = and is computed by ORCA. The different states of the quadrotor are numbered. We highlight the coverage for these positions in Fig. 7.
Fig. 7: The coverage areas for the numbered stated in Fig. 6 for different locations of the agent. We observe lowest coverage at location 7 and maximum coverage at locations 1 and 5. [Top] The preferred coverage , when is the velocity of the quadrotor. [Middle] The new coverage , when is chosen as the velocity of the quadrotor. [Bottom] The overlap area (shown in dark green) between and when computed continuously for time . This overlap area need to be maximized.

Iv-F LSwarm Acceleration

The formulation of as a function of and GSD is required to maximize it given a preferred velocity . Such a function depends on the square of the flying altitude and sinusoids of vector’s angles with the Y and Z axes (we take X, Y and Z axes as the Roll, Pitch and Yaw axes respectively). The function cannot be solved for a that maximizes it in realtime using simple optimization algorithms (e.g., linear programming). Therefore, we use a Look Up Table (LUT) that contains precomputed values for the overlap area for various new velocities. At runtime, we select a new velocity based on its corresponding overlap area from this LUT and on certain conditions. The construction of the LUT and velocity selection are discussed in the following sections.

Iv-F1 Constructing the Look Up Table

Let us consider the unit vector and call it . This unit vector corresponds to the forward direction for the quadrotor in the quadrotor’s frame of reference and can be transformed to any preferred velocity vector by using a simple rotational transformation as,


For a time horizon , we calculate corresponding to as given in Eqn. 15. We rotate (about Y and Z axes) in all possible forward directions to evaluate how such rotations affect the overlap area with .

We first apply a rotation to about the Z-axis as,


where is the rotation matrix denoting a rotation by angle about Z-axis.

is the angle which governs whether the quadrotor will move right or left. We limit to the range . For each angle of rotation about the Z-axis, we again apply a rotation about the Y-axis as,


where is the angle which governs whether the quadrotor will move upward or downward and .
Let us denote the coverage area for over time as . The rotation of is continued until all values of , and within their ranges are reached by increments of 1 , and and the overlap between and are recorded into the LUT. The fully constructed LUT has 32,761 entries.

Iv-F2 Selecting New Velocity from LUT

When the quadrotor has to change its velocity to avoid an obstacle, we first use ORCA to compute a new velocity as given in (12). The difference between and is given as,


Next, we search the LUT for such that


where is a small positive value. All the velocities which satisfy are ranked based on their corresponding overlap area with . The Z-component of is used to compute the altitude change in the time horizon, and the velocities whose altitude change fail the GSD constraint are neglected. The rotation is applied to each shortlisted to transform it correspond to the preferred velocity orientation. Let us denote the transformed velocity as . It is computed as:


Note that there will always be a velocity that is equal to or closest to given by ORCA in the list of . We check if each which is the ORCA set for the quadrotor for time . The transformed velocity with the highest rank that belongs to the ORCA set is guaranteed to avoid collisions and such a may or may not be equal to the new velocity given by ORCA. Thus, the coverage area resulting from choosing this velocity will always be greater than or equal to the coverage area resulting from the velocity given by ORCA.

Computed Behaviour: ORCA computes a collision avoiding velocity for an agent considering the position and velocity of its neighbors. The collision avoiding velocity thus computed is the closest distance away from the preferred velocity. In contrast, LSwarm replaces the closest distance constraint in order to identify a velocity that gives better coverage overlap from the collision free velocity region. The LUT provides a pre-computed sample of all velocities and their coverage overlap to facilitate choosing the new velocity quickly rather than performing the overlap area computation in each iteration.

1:procedure LSwarm
2:     for all quadrotors do
3:         Get position and velocity of Agent A
4:         Compute nearest neighbors set NN for A
5:         for all agent B in NN do
6:              Get position and velocity for B
7:              Compute Velocity Obstacle
8:              Construct ORCA Planes          
9:         Construct Collision Free Velocity Space
10:         if A lies in the optimal path = True then
12:         else
14:         Compute using ORCA
15:         Search LUT for velocities
16:         remove velocities with with fail GSD constraint
17:         for every velocity V in FV do
18:              if V satisfies ORCA planes then
20:         Publish Velocity to Agent      
Algorithm 1 LSwarm

V Results and Performance

In this section, we describe our implementation and highlight the performance on different urban scenarios.

Fig. 8: Variation of Lawnmower Computation time with Model Area. Since the computation time is linear, we conclude that the lawnmower strategy is scalable.
(a) High Sparse: Sparsely populated urban model with 16 skyscrapers
(b) Low Dense: Sparsely populated model with 23 small buildings
(c) Low Dense: Densely packed model with 79 buildings of low height
Fig. 9: Benchmark urban environments

V-a Implementation

LSwarm was implemented on an Intel Xeon w-2123 octacore processor at GHz with GB memory and GeForce GTX 1080 GPU. For simulating the swarm of quadrotors, we use ROS Kinetic, Gazebo 7.14.0, along with the PX4 Software In The Loop firmware.

V-A1 LawnMower Strategy

LSwarm can handle any arbitrary 3D models. X-Y values of the global waypoints are computed using an occupancy grid constructed from the 2D footprint of the environment, while the Z values vary based on the building heights (Section III.C).

V-A2 Local Collision Avoidance

ORCA is implemented using the RVO2-3D [29] library. The RVO2-3D library makes use of multiple cores for decentralized collision avoidance among multiple agents. The Euclidean separation distance for static collision avoidance is computed using the Proximity Query Package (PQP) library [16].

V-B Benchmarks

Table 2 shows the dimensions and complexity of the different urban models used to evaluate our method, and the time taken to compute the global lawnmower waypoints. Three urban models are shown in Fig. 9. Figure 1 shows the High-Dense urban model. The first word in the name of the models corresponds to the average height of the buildings (high or low) and the second word in the name signifies the density of buildings in the model.

The 4 benchmarks with varying building heights and building densities (buildings/sq.m) capture the real world scenarios that the aerial surveillance system may face. For example, the High Dense model (0.022 buildings/ meter.sq) represents the dense metropolitan scenario, and the Low Sparse model (0.003 buildings/meter.sq) represents rural or suburban situations.

Environment Model Dimension (in meters) Number of Buildings Global Path Calculation Time (ms) Collisions with buildings
High Dense 50.96 x 39.33 x 29.50 27 753 4 nil
High Sparse 56.25 x 53.03 x 14.25 16 1027 2 nil
Low Dense 64.26 x 53.80 x 12.5 79 1186 nil nil
Low Sparse 96.67 x 62.92 x 7.2 23 2585 nil nil
TABLE II: We present the complexity of different urban models used to evaluate our algorithm. Moveover, we highlight the time taken to compute the lawnmower waypoints and the number of collision with buildings when using ORCA and LSwarm.
Number of Dynamic Obstacles ORCA LSwarm
Overlap Ratio (with required Resolution) 1m Coverage Radius Overlap Ratio (with required Resolution) 3m Coverage Radius Overlap Ratio (with required Resolution) 1m Coverage Radius Overlap Ratio (with required Resolution) 3m Coverage Radius
Approaching from all directions
10 0.7210 0.9235 0.8977 0.9355
25 0.6594 0.7040 0.8715 0.9197
40 0.5916 0.6331 0.6084 0.8875
Approaching from Left to Right
10 0.7762 0.8879 0.9308 0.9448
20 0.3201 0.5374 0.8923 0.9379
TABLE III: We present the complexity of different urban models used to evaluate our algorithm. Moreover, we highlight the time taken to compute the lawnmower waypoints using our global solution.

V-C Performance Evaluation

V-C1 Lawnmower Path Generation

The time taken to compute waypoints is proportional to the model size (i.e. area). For a model of area , the lawnmower strategy took seconds to generate the waypoints. From Fig. 8, we infer that the lawnmower strategy can easily be scaled to larger urban scenes. In our implementation, the lawnmower strategy just acts as a placeholder. Any global coverage strategy that provides a set of waypoints and has similar computation time to the lawnmower strategy can be used instead.

V-C2 Local Collision Avoidance

We evaluated the combined strategy in the 4 benchmark models, using 20 quadrotors and 20 dynamic obstacles. From Table II, we observe that with higher building density and taller buildings a portion of the quadrotor fleet collided with the buildings when ORCA was used. In contrast, LSwarm was effective in avoiding collisions with buildings.

For coverage performance, we tested LSwarm by making the quadrotor cover a 20m straight line with obstacles approaching from different directions. We tested for scenarios when obstacles approach from all directions (circular scenario), approach perpendicular to the path direction, and approach from various heights. We observe that the improvement provided by LSwarm is prominent when the camera’s coverage radius is small. For ensuring required resolution, we try to avoid increasing the quadrotor altitude by over 1.5 meters. Table III summarizes the overlap ratio (considering constraints on resolution) for both ORCA and LSwarm.

The coverage performance of LSwarm with respect to ORCA for a varying number of dynamic obstacles is shown in Fig. 11. For a small number of dynamic obstacles, there is little difference between the two methods. But as the number of dynamic obstacles increases, ORCA computes new velocities that may lead to coverage data with poor, unusable resolutions that cannot be considered. LSwarm consistently produces velocities that lead to nearly optimal coverage with useful resolutions.

The nearly linear relationship between time for velocity calculation in LSwarm and the number of swarm agents is shown in Fig. 10. We infer that LSwarm can be scaled up with respect to the number of swarm agents.

Fig. 10: A graph showing how the running time of our collision avoidance algorithm scales with the number of swarm agents on a multi CPU-core. We observe nearly linear growth.
Fig. 11: This graph shows the ratio of overlap area with the preferred area vs the number of dynamic obstacles while considering GSD constraints. LSwarm provides a better overlap for a large number of dynamic obstacles over ORCA.

Vi Conclusion, Limitations, and Future Work

We present an efficient method for local collision avoidance under coverage constraints for a large number of agents in a swarm. We pose the problem using an optimization formulation based on coverage constraints. In order to solve the non-linear optimization problem, we use a precomputed lookup table to compute a solution that provides guarantees on collision-free trajectories as well as the coverage area. The running time of our method scales linearly with the number of swarm agents and takes a few milliseconds for tens of swarms covering a large urban scene.

Our approach has some limitations. Currently, we assume that the exact position and velocity of other swarm agents is known and we do not take into account uncertainty in these measurements. Furthermore, the lawnmower algorithm assumes an exact representation of the urban environment. Our solution to the optimization formulation is approximate and does not provide guarantees with respect to global optimality.

There are many avenues for future work. In addition to addressing these limitations, we would like to further evaluate our approach on complex urban models by coupling with other coverage strategies. It would be useful to develop robust methods that can handle noise in the sensor measurements and account for uncertainty. Finally, we would like to accurately model the dynamics constraints of swarm agents (e.g. quadrotors).

References are important to the reader; therefore, each citation must be complete and correct. If at all possible, references should be commonly available publications.


  • [1] D. Alejo, J. A. Cobano, G. Heredia and A. Ollero, ”Optimal Reciprocal Collision Avoidance with mobile and static obstacles for multi-UAV systems,” 2014 International Conference on Unmanned Aircraft Systems (ICUAS), Orlando, FL, 2014, pp. 1259-1266.
  • [2] Breitenmoser A., Martinoli A. (2016) On Combining Multi-robot Coverage and Reciprocal Collision Avoidance. In: Chong NY., Cho YJ. (eds) Distributed Autonomous Robotic Systems. Springer Tracts in Advanced Robotics, vol 112. Springer, Tokyo.
  • [3] Choset H., Pignon P. (1998) Coverage Path Planning: The Boustrophedon Cellular Decomposition. In: Zelinsky A. (eds) Field and Service Robotics. Springer, London.
  • [4] S. Chung, A. A. Paranjape, P. Dames, S. Shen and V. Kumar, ”A Survey on Aerial Swarm Robotics,” in IEEE Transactions on Robotics, vol. 34, no. 4, pp. 837-855, Aug. 2018.
  • [5] P. Dames, M. Schwager, V. Kumar and D. Rus, ”A decentralized control policy for adaptive information gathering in hazardous environments,” 2012 IEEE 51st IEEE Conference on Decision and Control (CDC), Maui, HI, 2012, pp. 2807-2813.
  • [6] de Lamadrid, J. G. (1994) ”Avoidance of Obstacles With Unknown Trajectories: Locally Optimal Paths and Periodic Sensor Readings”, The International Journal of Robotics Research, 13(6), pp. 496–507.
  • [7] Fiorini, P., & Shiller, Z. (1998). ”Motion Planning in Dynamic Environments Using Velocity Obstacles”. The International Journal of Robotics Research, 17(7), 760–772.
  • [8] C. Fulgenzi, A. Spalanzani and C. Laugier, ”Dynamic Obstacle Avoidance in uncertain environment combining PVOs and Occupancy Grid,” Proceedings 2007 IEEE International Conference on Robotics and Automation, Roma, 2007, pp. 1610-1616.
  • [9] Galceran, E., & Carreras, M. (2013). ”A survey on coverage path planning for robotics”. Robotics and Autonomous Systems, 61, 1258-1276.
  • [10] M. Hamer, L. Widmer and R. D’andrea, ”Fast Generation of Collision-Free Trajectories for Robot Swarms Using GPU Acceleration,” in IEEE Access, vol. 7, pp. 6679-6690, 2019.
  • [11] Hsu, D., Kindel, R., Latombe, J.-C., & Rock, S. (2002). ”Randomized Kinodynamic Motion Planning with Moving Obstacles”. The International Journal of Robotics Research, 21(3), 233–255.
  • [12] W. Hönig, J. A. Preiss, T. K. S. Kumar, G. S. Sukhatme and N. Ayanian, ”Trajectory Planning for Quadrotor Swarms,” in IEEE Transactions on Robotics, vol. 34, no. 4, pp. 856-869, Aug. 2018.
  • [13] Julian, B. J., Angermann, M., Schwager, M., & Rus, D. (2012). ”Distributed robotic sensor networks: An information-theoretic approach”. The International Journal of Robotics Research, 31(10), 1134–1154.
  • [14] Chan Sze Kong, New Ai Peng and I. Rekleitis, ”Distributed coverage with multi-robot system,” Proceedings 2006 IEEE International Conference on Robotics and Automation, 2006. ICRA 2006., Orlando, FL, 2006, pp. 2423-2429.
  • [15] B. O. Koopman. 1956. ”The Theory of Search. II. Target Detection”. Oper. Res. 4, 5 (October 1956), 503-531. DOI=
  • [16] Stefan Gottschalk M. C. L. Eric Larsen and D. Manocha. 1999. Proximity QueryPackage. (1999).
  • [17] L. Martinez-Gomez and T. Fraichard, ”Collision avoidance in dynamic environments: An ICS-based solution and its comparative evaluation,” 2009 IEEE International Conference on Robotics and Automation, Kobe, 2009, pp. 100-105.
  • [18] Mathewa, G., & Mezic, I. (2010). ”Metrics for ergodicity and design of ergodic dynamics for multi-agent systems”.
  • [19] A. Ntawumenyikizaba, Hoang Huu Viet and TaeChoong Chung, ”An online complete coverage algorithm for cleaning robots based on boustrophedon motions and A* search,” 2012 8th International Conference on Information Science and Digital Content Technology (ICIDT2012), Jeju, 2012, pp. 401-405.
  • [20] I. Saha, R. Ramaithitima, V. Kumar, G. J. Pappas and S. A. Seshia, ”Implan: Scalable Incremental Motion Planning for Multi-Robot Systems,” 2016 ACM/IEEE 7th International Conference on Cyber-Physical Systems (ICCPS), Vienna, 2016, pp. 1-10.
  • [21] Saska, M., Vonásek, V., Chudoba, J. et al. J Intell Robot Syst (2016) 84: 469.
  • [22] M. Schmittle et al., ”OpenUAV: A UAV Testbed for the CPS and Robotics Community,” 2018 ACM/IEEE 9th International Conference on Cyber-Physical Systems (ICCPS), Porto, 2018, pp. 130-139.
  • [23] Schwager M., Dames P., Rus D., Kumar V. (2017) ”A Multi-robot Control Policy for Information Gathering in the Presence of Unknown Hazards”. In: Christensen H., Khatib O. (eds) Robotics Research. Springer Tracts in Advanced Robotics, vol 100. Springer, Cham
  • [24]

    Spires S.V., Goldsmith S.Y. (1998) Exhaustive geographic search with mobile robots along space-filling curves. In: Drogoul A., Tambe M., Fukuda T. (eds) Collective Robotics. CRW 1998. Lecture Notes in Computer Science (Lecture Notes in Artificial Intelligence), vol 1456. Springer, Berlin, Heidelberg

  • [25] Turpin, M., Michael, N., & Kumar, V. (2014). ”Capt: Concurrent assignment and planning of trajectories for multiple robots”. The International Journal of Robotics Research, 33(1), 98–112.
  • [26] van den Berg J., Guy S.J., Lin M., Manocha D. (2011) Reciprocal n-Body Collision Avoidance. In: Pradalier C., Siegwart R., Hirzinger G. (eds) Robotics Research. Springer Tracts in Advanced Robotics, vol 70. Springer, Berlin, Heidelberg
  • [27] J. van den Berg, Ming Lin and D. Manocha, ”Reciprocal Velocity Obstacles for real-time multi-agent navigation,” 2008 IEEE International Conference on Robotics and Automation, Pasadena, CA, 2008, pp. 1928-1935.
  • [28] J. van den Berg, J. Snape, S. J. Guy and D. Manocha, ”Reciprocal collision avoidance with acceleration-velocity obstacles,” 2011 IEEE International Conference on Robotics and Automation, Shanghai, 2011, pp. 3475-3482.
  • [29] J. van der Berg, S. J. Guy, J. Snape, M. C. Lin, and D. Manocha. 2008. RVO2 Library:Reciprocal Collision Avoidance for Real-Time Multi-Agent Simulation. (May2008).
  • [30] P. Velagapudi, K. Sycara and P. Scerri, ”Decentralized prioritized planning in large multirobot teams,” 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems, Taipei, 2010, pp. 4603-4609.
  • [31] Patrick Vincent and Izhak Rubin. 2004. A framework and analysis for cooperative search using UAV swarms. In Proceedings of the 2004 ACM symposium on Applied computing (SAC ’04). ACM, New York, NY, USA, 79-86. DOI: