I Introduction
Recent advances in multirotor 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 multiagent 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 headon. 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.
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 3D 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 lookup table of coverage area overlap for various velocities (section 4.4) so that collision avoidance under coverage constraints can be executed in realtime.
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 3D 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 collisionfree 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 informationgathering scenarios. A recent survey on control, planning, and design of aerial swarm robots can be found in [4].
Iia Swarm Control Strategies for Coverage Optimization
In this section, we give a brief overview of prior work on swarmbased 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 consensusbased 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 multiagent 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 2D.
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 multiagent systems is shown in [18]. Trajectory generation for hundreds of quadrotors in dense continuous environments is demonstrated in [12]. This approach generates an interrobot conflict annotated roadmap, then solves a generalized MultiAgent 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 interagent collisions in the swarm.
IiB Space Filling Curves
Multiple works have investigated applying and simplifying the implementation of spacefilling 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 spacefilling 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.
IiC VObased 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 robotrobot 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 collisionfree navigation. ORCA was extended to 3D in [29] and to include static obstacle avoidance in [1]. Breitenmoser and Martinoli [2] combine multirobot 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 cloudenabled 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.
Iiia 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.
IiiA1 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.
IiiA2 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 viewcone would depend on the altitude at which the quadrotor is flying as:
(1) 
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,
(2) 
where h is the flying altitude and K is a constant calculated as:
(3) 
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:
(4) 
IiiB 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.
IiiC 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 nonobstacle region and perform a separate search sweep in each connected nonobstacle 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 twodimensional 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 groundlevel search are possible by having agents perform a temporary change in altitude by flying over buildings.
IiiC1 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
(5) 
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 multirobot coverage problem is formally defined as follows:
Multirobot coverage problem:
Find such that , where is given by:
(6) 
and where .
IiiC2 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 twodimensions 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.
Iva 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 
IvB Optimal Reciprocal Collision Avoidance
IvB1 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,
(7) 
where is a disk centered at p with radius r which is defined as:
(8) 
In 2D, ORCA represents all agents as discs which is extended to a sphere representation in 3D. 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.
IvB2 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 collisionavoiding 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:
(9) 
where u is the vector from
to the VO boundary point and is the outward normal at point on the boundary of .Nonreactive Obstacles: The dynamic obstacles that cannot change their velocities to avoid a collision are referred to as nonreactive 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:
(10) 
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 halfplanes induced by all agent B’s. It is defined as:
(11) 
The new velocity that agent A chooses would be the one that is closest to its preferred velocity from .
(12) 
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.
IvC 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).
(13) 
We compute the Velocity Obstacle using the Minkowski sum as shown in Figure.4. We use the ORCA formulation for nonreactive 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.
IvD 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:
(14) 
This formulation helps keep the collisionfree velocity space convex, thus ensuring fast computation time. The search for appropriate velocities can be performed using acceleration velocity obstacles [28].
IvE 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,
(15) 
where,
(16)  
(17)  
(18) 
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:
(19) 
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 .
(20) 
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:
(21) 
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 timestep for each agent would be computationally expensive. We avoid the above issue using a look up table with precomputed values for overlap area as explained in the next section.
IvF 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.
IvF1 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,
(22) 
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 Zaxis as,
(23) 
where is the rotation matrix denoting a rotation by angle about Zaxis.
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 Zaxis, we again apply a rotation about the Yaxis as,
(24) 
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.
IvF2 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,
(25) 
Next, we search the LUT for such that
(26) 
where is a small positive value. All the velocities which satisfy are ranked based on their corresponding overlap area with . The Zcomponent 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:
(27) 
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 precomputed 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.
V Results and Performance
In this section, we describe our implementation and highlight the performance on different urban scenarios.
Va Implementation
LSwarm was implemented on an Intel Xeon w2123 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.
VA1 LawnMower Strategy
LSwarm can handle any arbitrary 3D models. XY 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).
VA2 Local Collision Avoidance
VB 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 HighDense 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  

ORCA  LSwarm  
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 
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 
VC Performance Evaluation
VC1 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.
VC2 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.
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 nonlinear optimization problem, we use a precomputed lookup table to compute a solution that provides guarantees on collisionfree 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.
References
 [1] D. Alejo, J. A. Cobano, G. Heredia and A. Ollero, ”Optimal Reciprocal Collision Avoidance with mobile and static obstacles for multiUAV systems,” 2014 International Conference on Unmanned Aircraft Systems (ICUAS), Orlando, FL, 2014, pp. 12591266.
 [2] Breitenmoser A., Martinoli A. (2016) On Combining Multirobot 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. 837855, 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. 28072813.
 [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. 16101616.
 [9] Galceran, E., & Carreras, M. (2013). ”A survey on coverage path planning for robotics”. Robotics and Autonomous Systems, 61, 12581276.
 [10] M. Hamer, L. Widmer and R. D’andrea, ”Fast Generation of CollisionFree Trajectories for Robot Swarms Using GPU Acceleration,” in IEEE Access, vol. 7, pp. 66796690, 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. 856869, Aug. 2018.
 [13] Julian, B. J., Angermann, M., Schwager, M., & Rus, D. (2012). ”Distributed robotic sensor networks: An informationtheoretic approach”. The International Journal of Robotics Research, 31(10), 1134–1154.
 [14] Chan Sze Kong, New Ai Peng and I. Rekleitis, ”Distributed coverage with multirobot system,” Proceedings 2006 IEEE International Conference on Robotics and Automation, 2006. ICRA 2006., Orlando, FL, 2006, pp. 24232429.
 [15] B. O. Koopman. 1956. ”The Theory of Search. II. Target Detection”. Oper. Res. 4, 5 (October 1956), 503531. DOI=http://dx.doi.org/10.1287/opre.4.5.503
 [16] Stefan Gottschalk M. C. L. Eric Larsen and D. Manocha. 1999. Proximity QueryPackage. (1999). http://gamma.cs.unc.edu/SSV/
 [17] L. MartinezGomez and T. Fraichard, ”Collision avoidance in dynamic environments: An ICSbased solution and its comparative evaluation,” 2009 IEEE International Conference on Robotics and Automation, Kobe, 2009, pp. 100105.
 [18] Mathewa, G., & Mezic, I. (2010). ”Metrics for ergodicity and design of ergodic dynamics for multiagent 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. 401405.
 [20] I. Saha, R. Ramaithitima, V. Kumar, G. J. Pappas and S. A. Seshia, ”Implan: Scalable Incremental Motion Planning for MultiRobot Systems,” 2016 ACM/IEEE 7th International Conference on CyberPhysical Systems (ICCPS), Vienna, 2016, pp. 110.
 [21] Saska, M., Vonásek, V., Chudoba, J. et al. J Intell Robot Syst (2016) 84: 469. https://doi.org/10.1007/s108460160338z
 [22] M. Schmittle et al., ”OpenUAV: A UAV Testbed for the CPS and Robotics Community,” 2018 ACM/IEEE 9th International Conference on CyberPhysical Systems (ICCPS), Porto, 2018, pp. 130139.
 [23] Schwager M., Dames P., Rus D., Kumar V. (2017) ”A Multirobot 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 spacefilling 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 nBody 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 realtime multiagent navigation,” 2008 IEEE International Conference on Robotics and Automation, Pasadena, CA, 2008, pp. 19281935.
 [28] J. van den Berg, J. Snape, S. J. Guy and D. Manocha, ”Reciprocal collision avoidance with accelerationvelocity obstacles,” 2011 IEEE International Conference on Robotics and Automation, Shanghai, 2011, pp. 34753482.
 [29] J. van der Berg, S. J. Guy, J. Snape, M. C. Lin, and D. Manocha. 2008. RVO2 Library:Reciprocal Collision Avoidance for RealTime MultiAgent Simulation. (May2008). http://gamma.cs.unc.edu/RVO2/
 [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. 46034609.
 [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, 7986. DOI: https://doi.org/10.1145/967900.967919