Online Path Generation and Navigation for Swarms of UAVs

Online Path Generation and Navigation for Swarms of UAVs

Abstract

With the growing popularity of \glspluav for consumer applications, the number of accidents involving \glspluav is also increasing rapidly. Therefore, motion safety of \glspluav has become a prime concern for \glsuav operators. For a swarm of \glspluav, a safe operation can not be guaranteed without preventing the \glspluav from colliding with one another and with static and dynamically appearing, moving obstacles in the flying zone. In this paper, we present an online, collision-free path generation and navigation system for swarms of \glspluav. The proposed system uses geographical locations of the \glspluav and of the successfully detected, static and moving obstacles to predict and avoid: (1) \glsuav-to-\glsuav collisions, (2) \glsuav-to-static-obstacle collisions, and (3) \glsuav-to-moving-obstacle collisions. Our collision prediction approach leverages efficient runtime monitoring and \glscep to make timely predictions. A distinctive feature of the proposed system is its ability to foresee potential collisions and proactively find best ways to avoid predicted collisions in order to ensure safety of the entire swarm. We also present a simulation-based implementation of the proposed system along with an experimental evaluation involving a series of experiments and compare our results with the results of four existing approaches. The results show that the proposed system successfully predicts and avoids all three kinds of collisions in an online manner. Moreover, it generates safe and efficient \glsuav routes, efficiently scales to large-sized problem instances, and is suitable for cluttered flying zones and for scenarios involving high risks of \glsuav collisions.

\glsdisablehyper\newacronym

uavUAVUnmanned Aerial Vehicle \newacronymcepCEPComplex Event Processing \newacronymfaaFAAFederal Aviation Administration \newacronymeplEPLEvent Processing Language \newacronymsqlSQLStructured Query Language \newacronympojoPOJOPlain Old Java Object \newacronymu2udU2UDUAV-to-UAV Detections \newacronymsodSODStatic Obstacle Detections \newacronymmodMODMoving Obstacle Detections \newacronymu2ucU2UCUAV-to-UAV Collisions \newacronymsocSOCStatic Obstacle Collisions \newacronymmocMOCMoving Obstcale Collisions \newacronymahcAHCAverage Hovering Count \newacronymabcABCAverage Backtracking Count \newacronymcatCATCollision Avoidance Time \newacronympsoPSOParticle Swarm Optimization \newacronymgaGAGenetic Algorithm \newacronymsrSRSafety Requirement \newacronymrrtRRTRapidly-Exploring Random Trees \newacronymarlARLAverage Route Length \newacronymllrLLRLength of the Longest Route \newacronymncNCNumber of Collisions \newacronymtTComputation Time \makeglossaries

Keywords: Collision avoidance, complex event processing, drone, path planning

\glsresetall

1 Introduction

An \glsuav or drone is a semi-autonomous aircraft that can be controlled and operated remotely by using a computer along with a radio-link [4]. \Glspluav can be classified into different types based on their design, size, and flying mechanism. Among the existing types, the quadrotors or quadrocopters are particularly popular because of their simple design, small size, low cost, greater maneuverability, and the ability to hover-in-place. A quadrotor uses two pairs of identical, vertically oriented propellers of which one pair spins clockwise and the other spins counterclockwise. Commercially-available quadrotors are increasingly been used in a variety of applications such as monitoring and surveillance, search and rescue operations, geographic mapping, photography and filming, wildlife research and management, media coverage of public events, remote sensing for agricultural applications, and aerial package delivery [2, 9, 12, 21]. Efficient and scalable solutions for these applications require an online path generation and navigation system for multiple \glspluav.

\Glspl

uav are becoming increasing popular. In the United States, the \glsfaa has projected that the number of small hobbyist drones is set to increase from an estimated 1.1 million in 2017 to 2.4 million by 20221. With the growing popularity and use of \glspluav for consumer applications, the number of accidents involving drones is also increasing dramatically. The \glsfaa receives more than 100 reports every month of unauthorized and potentially hazardous \glsuav activity reported by pilots, citizens, and law enforcement2. In a recent incident3 that took place in the United Kingdom, the runway at the London Gatwick Airport was shutdown for more than a day because two drones were spotted flying repeatedly over the airfield. The disruption affected about 110,000 passengers on 760 flights as no flights were able to take off or land. Such incidents on one hand show the importance of educational and training programmes for drone operators and stricter legislation for offenders, but on the other hand they also motivate the need for a collision-free path generation and navigation system for \glspluav. Ensuring a hazard-free, safe \glsuav flight is also equally important for indoor applications. Therefore, motion safety of \glspluav has become a prime concern for \glsuav operators. It refers to the ability of the \glspluav to detect and avoid collisions with static and moving obstacles in the environment. The static obstacles include buildings, trees, and other similar stationary items, while movable items (for example birds) are considered as moving obstacles.

Some of the commercially-available quadrotors are capable of detecting and avoiding some obstacles. For example, DJI’s Phantom 4 Pro4 uses five-directional sensors to provide obstacle detection or sensing in five directions with a front and rear sensing range of up to 30 meters and up to 7 meters for left and right side. However, its obstacle avoidance mechanism does not work in all kinds of scenarios. In this work, we assume that each \glsuav is equipped with an adequate obstacle detection capability and can successfully detect all static and dynamically appearing, moving obstacles in its surroundings. Therefore, the emphasis of this work is not on obstacle detection. Instead, we focus on collision prediction and avoidance.

Multiple \glspluav working in a cooperative manner can be used to provide powerful capabilities that a single \glsuav can not offer [9]. Therefore, for larger and highly complex applications and tasks which are either beyond the capabilities of a single \glsuav or can not be performed efficiently if only a single \glsuav is used, multiple \glspluav can be used together in the form of a swarm or a fleet. In such scenarios, a safe operation can not be guaranteed without preventing the \glspluav from colliding with one another and with static and dynamically appearing, moving obstacles in the flying zone. Therefore, in the context of \glsuav swarms, ensuring motion safety entails devising and implementing an online motion path planning, coordination, and navigation system for multiple \glspluav with an integrated support for collision prediction and avoidance.

The problem of motion safety of \glspluav is currently attracting significant research attention. Some comprehensive literature reviews on motion planning algorithms for \glspluav can be found in [11, 14]. The main focus of these approaches is on an off-line motion planning phase to plan and produce \glsuav paths or trajectories before the start of the mission. Augugliaro et al. [3] also presented a planned approach that generates feasible paths ahead of time. LaValle [15] and Karaman and Frazzoli [13] presented sampling-based path planning algorithms. Silva Arantes et al. [24] proposed a path planning approach for critical situations requiring an emergency landing of a \glsuav. Dong et al. [9] presented a software platform for cooperative control of multiple \glspluav. Bürkle et al.[6] proposed a multi-agent system architecture for team collaboration in a swarm of drones. Ivanovas et al. [12] proposed an obstacle detection approach for \glspluav. Olivieri [7] and Olivieri and Endler [8] presented an approach for movement coordination of swarms of drones using smart phones and mobile communication networks. Their work focuses on the internal communication of the swarm and does not provide a solution for collision-free path generation.

In this paper, we present an online, collision-free path generation and navigation system for swarms of \glspluav. The proposed system uses geographical locations of the \glspluav and of the successfully detected, static and dynamically appearing, moving obstacles to predict and avoid: (1) \glsuav-to-\glsuav collisions, (2) \glsuav-to-static-obstacle collisions, and (3) \glsuav-to-moving-obstacle collisions. It comprises three main components: (1) a \glscep and collision prediction module, (2) a mutually-exclusive locking mechanism, and (3) a collision avoidance mechanism. The \glscep and collision prediction module leverages efficient runtime monitoring and \glscep to make timely predictions. The mutually-exclusive locking mechanism prevents multiple \glspluav from attempting to fly to the same location at the same time. The collision avoidance mechanism tries to find best ways to prevent the \glspluav from colliding into one another and with the successfully detected static and moving obstacles in the flying zone. A distinctive feature of the proposed system is its ability to foresee potential collisions and proactively find best ways to avoid the predicted collisions in order to ensure safety of the entire swarm. In contrast to the existing works [11, 14, 3, 7, 8, 24, 19, 18, 9, 6, 12, 13, 15], our proposed system does not depend on a planning phase and produces efficient, collision-free paths in an online manner. We focus on collision prediction and avoidance and online path generation and navigation for swarms of \glspluav.

We also present a simulation-based implementation of the proposed system along with an experimental evaluation involving a series of experiments and compare our results with the results of four existing approaches [13, 15, 25, 24]. The results show that the proposed system successfully predicts and avoids all three kinds of collisions in an online manner. Moreover, it generates safe and efficient \glsuav routes, efficiently scales to large-sized problem instances, and is suitable for cluttered flying zones and for scenarios involving high risks of \glsuav collisions. Our proposed navigation system, its implementation, experiments, and results are not based on or limited to a particular application of \glsuav swarms. Instead, they are generic enough to be applicable to a wide range of applications. The work presented in this paper extends our preliminary approach and results reported in [2].

We proceed as follows. Section 2 sets up the terminology and context. The proposed online, collision-free path generation and navigation system for \glsuav swarms is presented in Section 3. In Section 4, we illustrate the main steps of our proposed approach on a small example. Section 5 presents some important implementation details along with the experimental evaluation. Section 6 reviews important related works. Finally, we present our conclusions in Section 7.

2 Preliminaries

The proposed system not only provides support for online collision prediction and avoidance, it also generates complete routes for all \glspluav in the swarm. Unlike traditional motion path planning approaches that require that all obstacles and their precise locations must be known before the start of the mission, the proposed approach does not assume any a priori knowledge of the obstacles. In other words, we assume that the terrain of the flying zone is not known beforehand. Therefore, the proposed system does not make any assumptions on the number and locations of the static and dynamically appearing, moving obstacles. It does not require a preliminary, off-line motion planning phase to produce efficient routes for the \glspluav. In our approach, the drones takeoff from their start locations and fly uninterruptedly towards their destinations until the proposed system predicts a collision and triggers our collision avoidance mechanism to prevent the predicted collision. Since the proposed system uses geographical locations of the \glspluav to generate their paths and predict and avoid collisions, it requires correct and precise location information of all \glspluav in the fleet. Imprecise and incorrect information can result in longer paths and in the worst case some \glspluav can collide with other \glspluav or with some static or moving obstacles.

Let the mission flying zone be represented by a finite set of locations , where each location is represented as a point in a three-dimensional space . In an outdoor mission, the dimensions may correspond to latitude, longitude, and altitude or elevation. To ensure a suitable formation of the swarm, it is assumed that the distance between any two consecutive locations in is less than or equal to the sensing range of the \glspluav and greater than or equal to the safe distance for the \glspluav. For example, the front and rear sensing range of Phantom 4 Pro \glsuav is up to 30 meters. Therefore, if the swarm comprises Phantom 4 Pro \glspluav, the maximum distance between any two consecutive locations should be less than or equal to 30 meters. The safe distance for \glspluav depends on their maximum speed , obstacle detection and processing time , and wireless communication latency  [7]. For example, if two \glspluav are found heading towards each other at a maximum speed of 5 meter per second each and with an obstacle detection and processing time of 0.5 seconds and a wireless communication latency of 0.2 seconds, the safe distance can be estimated as

(1)

which yields 9 meters. Therefore, in this example, the minimum distance between any two consecutive locations should be greater than or equal to 9 meters. As a simplification to the problem, we assume that all consecutive locations in are a uniform, fixed distance apart from one another denoted as , such that . Hence, the flying zone can be viewed as a three-dimensional grid. This simplification allows faster generation, comparison, and evaluation of solutions or \glsuav paths. For clarity, important terminology and notation used in this paper are summarized in Table 1.

Notation Description
Three-dimensional flying zone
Wireless communication latency
Distance between two consecutive \glspluav
Safe distance for the \glspluav
Swarm of drones
Final or destination location of a \glsuav
A location in
Initial or start location of a \glsuav
Set of moving obstacles
Obstacle detection and processing time
A \glsuav route
Sensing range of the \glspluav
Maximum speed of the \glspluav
Set of static obstacles
Table 1: Terminology and notation

Furthermore, let be a set of drones or \glspluav in the swarm. The static obstacles are denoted as . Similarly the dynamically appearing, moving obstacles are represented by the set . Each drone occupies a certain location in . The drones takeoff from their start locations and fly towards their destination locations. A drone route or path is a sequence of locations from drone’s start location to drone’s destination location. For a drone , such that and where is the initial or start location and is the final or destination location of . Similarly, each static and moving obstacle occupies a certain location in . Moreover, the moving obstacles keep on moving arbitrarily until they leave the flying zone.

We formulate three basic \glsplsr for a swarm of drones:

\glssr1:

, does not collide with .

\glssr2:

, and do not collide with each other.

\glssr3:

, does not collide with .

Since the proposed system does not assume any a priori knowledge on the numbers and locations of the static and moving obstacles and does not depend on a preliminary, off-line motion planning phase, none of the \glsplsr can be verified before the start of the mission. For \glssr1 which concerns static obstacles, it is necessary that the drones do not fly into a location where a static obstacle is situated. Our proposed system helps the drones to avoid all successfully detected static obstacles in an online manner by providing efficient collision prediction and collision avoidance mechanisms. Similarly, for \glssr2 which concerns collisions with other drones, it is required that at any given time each location is occupied by at most one drone. The proposed system stops the drones from flying into other drones in the vicinity. The proposed mutually-exclusive locking and collision avoidance mechanisms prevent the drones from flying into any locations occupied by other drones at time . For \glssr3 which concerns collisions with dynamically appearing, moving obstacles, the proposed system provides a similar approach as for \glssr1 that helps the drones to avoid all successfully detected moving obstacles in an online manner.

3 Collision-Free Path Generation and Navigation

Figure 1 presents a high-level system architecture and overview of the proposed online, collision-free path generation and navigation system for swarms of \glspluav. The main components of the proposed system include: (1) a \glscep and collision prediction module, (2) a mutually-exclusive locking mechanism, and (3) a collision avoidance mechanism. The inputs to the system are the \glsuav location updates, static obstacle detections, and moving obstacle detections. Based on these three inputs, the \glscep and collision prediction module predicts: (1) \glsuav-to-\glsuav collisions, (2) \glsuav-to-static-obstacle collisions, and (3) \glsuav-to-moving-obstacle collisions. Our collision avoidance mechanism tries to find best ways to avoid or bypass collisions and computes collision-free routes for \glspluav in an online manner. In a densely populated and cluttered flying zone, it might not be possible to immediately compute a bypass route for all drones. In such scenarios, the proposed system might put some of the drones into the hover-in-place mode until the situation improves and the routes clear. Additionally, it may also let some \glspluav to temporarily retreat or backtrack to find more suitable, collision-free routes.

Figure 1: Overview of the proposed online, collision-free path generation and navigation system for swarms of \glsentrytextuavs

The proposed system implements a safety-first approach. Therefore, a hazard-free, safe operation of the swarm takes precedence over all of the other objectives including lengths of the \glsuav routes, timely arrival of the \glspluav to their destinations, and achievement of any other mission-specific goals. As a consequence, we do not formulate the problem as an optimization problem. Instead, we implement a stochastic, greedy approach that tries to find safe and efficient routes. The \glspluav takeoff from their start locations and fly uninterruptedly towards their destinations until the \glscep and collision prediction module predicts a collision, in which case our collision avoidance mechanism is invoked to avoid the collision. In addition, our mutually-exclusive locking mechanism prevents multiple \glspluav from attempting to fly to the same location at the same time. At each step, the proposed approach makes a stochastic, greedy decision for each \glsuav. It tries to find a next location for each \glsuav which is not only safe but also reduces the distance from the destination. The main components of the proposed system are described in the following subsections.

3.1 Complex Event Processing and Collision Prediction

Complex Event Processing (CEP) is a technique for realtime, fast processing of a large number of events from one or more event streams to derive and identify important complex events and patterns in the event streams. \Glscep has been successfully used in a variety of business domains including retail management, health-care, and cloud computing [26, 20]. For example in retail management, \glscep can be used to detect shoplifting and out-of-stock events. The basic or primitive events in \glscep are processed into complex or composite events by means of event processing queries, which are written in a \glssql-like language. Therefore, \glscep provides a similar functionality for realtime event streams that a relational database management system provides for persistent data.

One of the most widely used \glscep tools is the Esper \glscep engine5, in which the event processing queries are written in the \glsepl. There are three main steps for using Esper \glscep engine:

  1. In the first step, event types and sources of events are registered with the \glscep engine. An event class in Esper is written as a \glspojo.

  2. The second step requires event processing queries to be written in \glsepl.

  3. Finally, in the third step, event sinks are implemented which can be used to perform some suitable control and repair actions.

The \glscep and collision prediction module in our proposed system uses a \glscep engine to monitor and keep track of the current location of the \glspluav and of the successfully detected static and moving obstacles. Table 2 presents the three types of events from the proposed system along with their properties. The \glspluav generate and send location update events on regular intervals, for example every 50 milliseconds. A drone location event (DroneLocEvent) contains drone name of the concerned drone , drone location in the three-dimensional flying zone , and the event time . The \glscep engine receives and processes these events to predict possible \glsuav-to-\glsuav collisions in the swarm. Similarly, for each successfully detected static obstacle, a static obstacle event (SObsEvent) is generated and sent to the \glscep engine. A static obstacle detection event contains obstacle name of the static obstacle and the location of the static obstacle. The \glscep engine processes all \glsuav location update events and static obstacle detection events to predict \glsuav-to-static-obstacle collisions. Finally, for successfully detected moving obstacles, moving obstacle events (MObsEvents) are generated and sent to the \glscep engine. A moving obstacle detection event contains obstacle name of the moving obstacle , the location of the moving obstacle, and the event time . The \glscep engine processes \glsuav location update events and moving obstacle detection events to predict \glsuav-to-moving-obstacle collisions.

Event type Properties
DroneLocEvent Drone name , drone location , event time
SObsEvent Static obstacle name , obstacle location
MObsEvent Moving obstacle name , obstacle location , event time
Table 2: Three types of CEP events from the proposed system

The proposed system implements three \glsepl queries to process the three types of events and determine if a drone is flying in a close proximity of another drone or a static or moving obstacle. Listing 1 presents the first query. It uses DroneLocEvents to check if two drones are in a close proximity of each other. If a match is found, the \glscep engine triggers the concerned event sink, which may predict a \glsuav-to-\glsuav collision and then invoke the collision avoidance mechanism to prevent the \glspluav from colliding into each other.

select A.droneName as aName, A.x as aX, A.y as aY, A.z as aZ,
B.droneName as bName, B.x as bX, B.y as bY, B.z as bZ, from
DroneLocEvent.win:time(1 sec) A, DroneLocEvent.win:time(1 sec)
B where A.droneName != B.droneName and A.x in [B.x-2:B.x+2]
and A.y in [B.y-2:B.y+2] and A.z in [B.z-2:B.z+2]
and (A.x = B.x or A.y = B.y or A.z = B.z)
Listing 1: EPL query to determine if two drones are in a close proximity of each other

The second query in Listing 2 uses DroneLocEvents and SObsEvents to determine if a drone is in close proximity of a static obstacle. Similarly, the third query in Listing 3 uses DroneLocEvents and MObsEvents to determine if a drone is in close proximity of a moving obstacle. In each case, the relevant event sink is triggered, which may predict a collision and invoke the collision avoidance mechanism.

select A.droneName as aName, A.x as aX, A.y as aY, A.z as aZ,
O.obstacleName as oName, O.x as oX, O.y as oY, O.z as oZ, from
DroneLocEvent.win:time(1 sec) A, SObsEvent.win:time(1 hour) O
where A.x in [O.x-1:O.x+1] and A.y in [O.y-1:O.y+1] and A.z in
[O.z-1:O.z+1] and (A.x = O.x or A.y = O.y or A.z = O.z)
Listing 2: EPL query to determine if a drone is in close proximity of a static obstacle
select A.droneName as aName, A.x as aX, A.y as aY, A.z as aZ,
O.obstacleName as oName, O.x as oX, O.y as oY, O.z as oZ, from
DroneLocEvent.win:time(1 sec) A, MObsEvent.win:time(1 sec) O
where A.x in [O.x-2:O.x+2] and A.y in [O.y-2:O.y+2] and A.z in
[O.z-2:O.z+2] and (A.x = O.x or A.y = O.y or A.z = O.z)
Listing 3: EPL query to determine if a drone is in close proximity of a moving obstacle

To predict the three different kinds of collisions, the event sinks use various parameters and rules. The parameters include the (current) locations of the drones and of the static and moving obstacles and the desired next locations of the drones. The collision prediction rules are presented in Algorithm 1. Rule 1 states that a \glsuav-to-\glsuav collision is predicted when the desired next location of a drone is same as the current or the desired next location of another drone . Similarly, Rule 2 is used for predicting \glsuav-to-static-obstacle collisions, which can occur if a drone attempts to fly to a location occupied by a static obstacle . Finally, Rule 3 states that a \glsuav-to-moving-obstacle collision is predicted when the desired next location of a drone is same as the current location of a moving obstacle .

1:  {Rule 1}
2:  , let be the current and the desired next locations of and similarly be the current and the desired next locations of
3:  if   then
4:     predict a \glsuav-to-\glsuav collision
5:  end if
6:  {Rule 2}
7:  , let be the desired next location of and be the location of
8:  if  then
9:     predict a \glsuav-to-static-obstacle collision
10:  end if
11:  {Rule 3}
12:  , let be the desired next location of and be the current location of
13:  if  then
14:     predict a \glsuav-to-moving-obstacle collision
15:  end if
Algorithm 1 Collision prediction rules

3.2 Mutually-Exclusive Locking Mechanism

The \glscep and collision prediction module described in the previous section covers most of the scenarios that can lead to a \glsuav collision. However, since the \glspluav may move fast and arbitrarily, some failures and collisions can still occur. For instance, during a mission, a location is free and two \glspluav concurrently decide to move to . If the \glscep and collision prediction module takes slightly longer to predict the \glsuav-to-\glsuav collision, the collision avoidance mechanism might not be left with enough time to prevent the collision. However, if the \glscep and collision prediction module quickly and correctly predicts the collision, the collision avoidance module can save the \glspluav by allowing only one of them to continue flying to . The other \glsuav will either be redirected to another location or will fail to move in the current iteration. To prevent such scenarios and failures, we augment our collision prediction approach with a mutually-exclusive locking mechanism.

The proposed system uses mutually-exclusive locks on the current and the immediate next locations of \glspluav to prevent multiple \glspluav from attempting to move to the same location at the same time. The lock state of each location can be either locked or unlocked. The current location of each \glsuav is always considered locked for all other \glspluav. Moreover, as soon as a \glsuav decides its next move, the system puts a mutually-exclusive lock on the immediate next location of the \glsuav so that the other \glspluav do not attempt to move to the same location. Similarly, while deciding about their next moves, the \glspluav first check the lock state of the possible next locations and only attempt to move to some of the unlocked locations. Moreover, if multiple \glspluav concurrently attempt to lock the same location, only one of them acquires the lock. For scenarios involving very short time intervals, the mutually-exclusive locks may be acquired in one time interval and the moves may be performed in the next time interval. The \glspluav release the locks of their previous locations as soon as they fly to their next locations.

Figure 2 illustrates the proposed locking mechanism. It shows that a \glsuav always keeps a mutually-exclusive lock for its current location. Moreover, when deciding about a next move, it first checks the lock state of all possible next locations. It then attempts to lock one of the unlocked locations. After successful locking of the next location, it moves to the next location. Finally, it releases the lock of the previous location. In this way, two or more \glspluav never attempt to move to the same location at the same time.

Figure 2: The mutually-exclusive locking mechanism

3.3 Collision Avoidance Mechanism

Whenever the \glscep and collision prediction module predicts a collision, it invokes our collision avoidance mechanism which tries to find best ways to avoid the predicted collisions and computes collision-free routes for \glspluav in an online manner. Based on the severity of the predicted collision, its surroundings, and the overall situation of the and of the successfully detected static and moving obstacles ( and ) in , our collision avoidance mechanism uses one of the three collision avoidance techniques in the following order: (1) redirecting the \glsuav into another direction, (2) putting the \glsuav into the hover-in-place mode until the route is cleared, and (3) temporarily retreating or backtracking the \glsuav to explore some alternate collision-free routes. The pseudocode of the proposed collision avoidance mechanism is given as Algorithm 2. Our backtracking approach is described in the following section.

1:  redirect the \glsuav into another direction
2:  if not successful then
3:     activate the hover-in-place mode until the \glsuav route is cleared
4:  end if
5:  if the \glsuav hovers for too long or if it takes too long to find a suitable collision-free route then
6:     temporarily backtrack the \glsuav to explore some alternate collision-free routes
7:  end if
Algorithm 2 Collision avoidance mechanism

The first collision avoidance technique namely redirecting the \glsuav into another direction means changing the flying direction of the \glsuav. For example, if a \glsuav is flying in the dimension of , but the \glscep and collision prediction module predicts a collision due to the presence of an obstacle or another \glsuav on the path, then the \glsuav can not continue a hazard-free flight in the dimension any more. Therefore, the collision avoidance mechanism redirects the \glsuav to fly in the or dimension so the \glsuav may be able to avoid the collision. However, in a densely populated and cluttered flying zone, the collision avoidance mechanism might not be able to immediately compute a bypass route for all drones. Therefore, in such scenarios, the proposed collision avoidance mechanism activates the hover-in-place mode for some of the \glspluav until the situation improves and the routes clear. Additionally and as a last resort, it temporarily backtracks some \glspluav to explore some alternate collision-free routes. It should be noted that all three collision avoidance techniques incur some overhead, which might extend the routes and increase the flight durations for some of the \glspluav. However, as explained previously, this is inevitable for a safety-first approach.

3.4 Backtracking Approach

The proposed backtracking approach temporarily retreats or backtracks a \glsuav so it may explore some alternate collision-free routes. As shown in Algorithm 2, the proposed backtracking algorithm is triggered in two situations: (1) if a \glsuav hovers for too long or (2) if a \glsuav keeps on moving but it does not find a suitable collision-free route to reach to its destination. In densely populated, cluttered flying zones, such situations are not unprecedented. Sometimes, a \glsuav keeps on hovering or moving near its destination, but it does not find a collision-free route to reach to the destination because some other \glspluav or obstacles reside between the \glsuav and its destination location and thus obstructs the \glsuav’s routes. In such situations, it is important to allow the \glsuav to temporarily retreat or backtrack so it may be able to explore some alternate routes to reach to its destination.

The pseudocode of the proposed backtracking algorithm is presented as Algorithm 3. The algorithm iterates until the required number of backtrack steps is successfully completed or the maximum number of backtrack attempts is reached (line 9). In each iteration, it attempts to move the \glsuav in the opposite direction of the \glsuav’s destination. It randomly chooses one of the three dimensions and tries to move the \glsuav so that the distance from the destination is increased. The backtrack algorithm does not disable the \glscep and collision prediction module and the mutually-exclusive locking mechanism. Thus, in each iteration, the \glsuav either backtracks one step or if a collision-hazard is found or the \glsuav fails to lock the required location then it hovers at its current location. When the \glsuav returns to the normal flight mode (line 10), it explores some alternate collision-free routes to reach to its destination.

1:  while the \glsuav is in the backtrack mode do
2:     randomly choose one of the three dimensions
3:     attempt to move the \glsuav in the opposite direction of its destination
4:     if a collision-hazard is found or the required location is locked by another \glsuav then
5:        hover-in-place
6:     else
7:        backtrack the \glsuav by moving it one step away from its destination
8:     end if
9:     if the required number of backtrack steps is successfully completed or the maximum number of backtrack attempts is reached then
10:        deactivate the backtrack mode and return to the normal flight mode
11:     end if
12:  end while
Algorithm 3 Backtracking

4 An Illustrative Example

In this section, we present a small example to illustrate the main components and steps of the proposed online, collision-free path generation and navigation system. Although the proposed system works for a realistic, three-dimensional flying zone, it is difficult to illustrate and demonstrate a three-dimensional flying zone on a paper. Therefore, we use a two-dimensional flying zone for a simpler illustration.

Figure 3 presents an illustrative example with four \glspluav, two static obstacles, and four moving obstacles in a two-dimensional flying zone. The flying zone in our example is shown as a 7x7 grid, where all consecutive locations are a uniform, fixed distance apart from one another. The start and destination locations of each drone are also highlighted. The goal is to route the drones from their start locations to their destination locations while avoiding collisions with static and moving obstacles and with the other drones in the swarm.

(a) Before the start of the mission
(b) After five time intervals
(c) After the completion of the mission
(d)
Figure 3: A simple illustrative example with four \glsentrytextuavs, two static obstacles, and four moving obstacles in a two-dimensional flying zone

It should be noted that the knowledge of the precise locations of the obstacles in this example is only for illustration purposes. As described previously, the proposed system does not make any assumptions on the number and locations of the static and moving obstacles in the flying zone. Similarly, although Figure (a)a shows that all moving obstacles are present in the flying zone before the start of the mission, in a realistic scenario some moving obstacles (for example birds) may dynamically appear in the flying zone during the execution of the mission.

Figure (b)b presents a snapshot of the flying zone after five time intervals have elapsed since the start of the mission. It shows that each \glsuav started flying from its start location and flew towards its destination location while randomly choosing to fly in the horizontal or vertical dimension in each time interval. Figure (b)b also shows that the left most moving obstacle from Figure (a)a left the flying zone during the execution of the mission and that the remaining moving obstacles moved to some new arbitrary locations within the flying zone. Although the moving obstacles moved in an arbitrary fashion either horizontally or vertically, in five time intervals each moving obstacle moved only one step, that is, only to a next consecutive location in the flying zone. Therefore, the moving obstacles moved slower than the drones. This is a reasonable assumption because if the moving obstacles move faster than the drones, even the most advanced and fastest collision detection, prediction, and avoidance mechanisms will not be able to avoid \glsuav-to-moving-obstacle collisions.

The labelled, directional edges in Figure (b)b show the collision-free \glsuav routes generated by the proposed system in an online manner. For example, in the top left corner of Figure (b)b, the first downward edge labelled 1 means that \glsuav 1 flew in the downward direction. Similarly, the next edge in the same direction labelled 1,2 shows that \glsuav 1 and 2 used the same edge. However, two \glspluav using the same edge does not mean a \glsuav-to-\glsuav collision. A \glsuav-to-\glsuav collision on an edge can happen when two \glspluav fly at the same edge at the same time. In this example, \glsuav 1 and \glsuav 2 flew on the same edge, but in different time intervals. \Glsuav 1 left the edge before \glsuav 2 arrived there and hence there was no collision-hazard between the two \glspluav. Figure (b)b also shows the current locations of the \glspluav after five time intervals. It can be seen that all \glspluav except \glsuav 3 flew five steps. \Glsuav 3 flew four steps and then hovered in the fifth time interval because the system could not find a collision-free move for \glsuav 3.

The \glspluav in Figure 3 used the proposed mutually-exclusive locking mechanism at each step. As described in Section 3.2, each \glsuav first attempted to lock one of the unlocked next locations. After successful locking of their next locations, the \glspluav moved to their next locations and released the locks of their previous locations. Therefore, at any time, two or more \glspluav did not attempt to move to the same location in the flying zone.

\Gls

uav 1 in Figure (b)b started flying vertically in the downward direction and continued towards its destination until it detected a static obstacle. At this stage, our \glscep and collision prediction module predicted a \glsuav-to-static-obstacle collision and invoked our collision avoidance mechanism, which redirected the \glsuav into the horizontal, rightward direction so the drone could continue flying towards its destination. However, in the same time interval, \glsuav 3 tried to fly into the same location where \glsuav 1 was headed. The two \glspluav detected each other and the \glscep and collision prediction module predicted a \glsuav-to-\glsuav collision. As a result, our collision avoidance mechanism was invoked, which tried to redirect \glsuav 3 in the vertical, upward direction, but the \glsuav detected a moving obstacle at that location and the \glscep and collision prediction module predicted a \glsuav-to-moving-obstacle collision. Therefore, the collision avoidance mechanism activated the hover-in-place mode for \glsuav 3, but let \glsuav 1 to lock and then move to the next location. Hence, \glsuav 3 flew only four steps in five time intervals. In this example, \glsuav 2 and 4 did not encounter a collision-hazard and flew normally towards their destinations. Moreover, none of the \glspluav hovered for too long or took too long to find a suitable, collision-free route. Therefore, our backtracking algorithm was not invoked.

Figure (c)c shows a snapshot of the flying zone after the completion of the mission. It shows that how each drone found its way to its destination while avoiding obstacles and other drones on its way. Once again, the remaining three moving obstacles moved to some new arbitrary locations within the flying zone. In the sixth time interval, \glsuav 1 was redirected in the downward direction to avoid a collision with \glsuav 3. Similarly, after flying downwards for two time intervals, \glsuav 1 reached the end of the flying zone and was once again redirected to the horizontal, rightward direction. Finally, after flying for a few more intervals in the rightward direction, \glsuav 1 reached its destination. As can be seen in Figure (c)c, all other \glspluav found their ways in similar ways.

5 Implementation and Experimental Evaluation

To demonstrate and evaluate our proposed system, we have developed a software simulator. This section briefly describes some important implementation details along with an experimental evaluation involving a series of experiments. We also compare our results with the results of the following four approaches:

  1. \Gls

    pso based approach: Sujit and Beard [25]’s \glspso based path planning approach generates paths for a swarm of drones.

  2. Greedy heuristics and \glsplga approach: Silva Arantes et al. [24]’s approach uses greedy heuristics and \glsplga to generate and optimize paths for a \glsuav under critical situations.

  3. \Gls

    rrt: A sampling-based path planning algorithm proposed by LaValle [15].

  4. \Gls

    rrt*: An extension of \glsrrt developed by Karaman and Frazzoli [13] to plan optimal paths.

5.1 Implementation Details

The implementation of the first main component of the proposed system called the \glscep and collision prediction module is based on the Esper \glscep engine and Algorithm 1. The second component, called the mutually-exclusive locking mechanism, implements the proposed locking mechanism presented in Figure 2. Similarly, the collision avoidance component implements Algorithm 2 and 3.

We have implemented a simple, controlled simulation platform that does not take into account complex physical phenomena and uncontrolled environment variables such as gravity and wind. The objective is to test and evaluate the proposed system in an ideal scenario while ignoring and minimizing the effects of external uncontrolled factors. Therefore, it is easier to analyze and interpret the results. The implementation assumes that all drones fly at the same speed and that there were no internal drone failures during the execution of the mission. We also assume that at least one feasible path exists for each \glsuav.

5.2 Experiment Design and Setup

Table 3 presents the experiment design. The experimental evaluation comprises four experiments. In each experiment, we ran our proposed approach, Sujit and Beard [25]’s \glspso based approach, Silva Arantes et al. [24]’s greedy heuristics and \glsga based approach, LaValle [15]’s \glsrrt algorithm, and Karaman and Frazzoli [13]’s \glsrrt* algorithm 10 times and used a random seed every time. All results reported in this section are averaged over 10 runs. The experiments were run on an Intel Core i7-4790 processor with 16 gigabytes of memory. The length of the time interval used in the software simulator was 50 milliseconds. We measured the following dependent variables:

  • \Gls

    arl: the average \glsuav route length measured as the number of \glsuav moves in the discretized flying zone. A \glsuav route is a sequence of moves or steps from \glsuav’s start location to \glsuav’s destination location. To be minimized to generate shorter routes.

  • \Gls

    llr: the total number of steps in the longest generated route. To be minimized to generate shorter routes.

  • \Gls

    nc: the number of \glsuav collisions. To be minimized to generate safer routes.

  • \Gls

    t: computation time of the algorithm in milliseconds (ms). It is the time that the algorithm takes to run and produce the results. To be minimized to reduce the computation overhead.

Experiment 1 2 3 4
Experiment type Small Large Cluttered flying zone High risk of \glsuav collisions
Flying zone 10x10x10 20x20x20 10x10x10 20x20x20
Number of \glspluav 20 50 20 100
Static obstacles 20 50 40 50
Moving obstacles 20 50 40 50
Table 3: Experiment design

Experiment 1 was designed to simulate a small problem instance. The main objective was to evaluate the collision prediction and avoidance capabilities of the proposed system in a simpler scenario. The experiment used a 10x10x10 flying zone with 20 drones, 20 static obstacles, and 20 moving obstacles. Experiment 2 used a large problem instance involving a larger flying zone and a higher number of drones and obstacles and was designed to evaluate the proposed system for a larger problem instance. The experiment used a 20x20x20 flying zone with 50 drones, 50 static obstacles, and 50 moving obstacles.

The third experiment evaluated the proposed system for a densely populated, cluttered environment involving a large number of static and moving obstacles. Experiment 3 used a similar experiment design as Experiment 1, but with twice as many static and moving obstacles. Finally, the objective of Experiment 4 was to evaluate the proposed system in a scenario involving high risks of drone collisions. The experiment used a similar experiment design as Experiment 2, but with twice as many drones.

All drones and obstacles were placed randomly. However, to ensure that the drones do not collide during takeoff, unique start locations were used and no obstacles were placed at the drone start locations. Similarly, the destination locations for the drones were also chosen randomly, but it was ensured that all destination locations are unique and that no obstacles were present at the destination locations.

5.3 Results and Analysis

The results are presented in Table 4. The best results in the table are highlighted in bold font. The results in the \glsarl and \glsllr columns show that the \glsrrt* algorithm [13] produced the shortest drone routes in all experiments, while \glsrrt [15] generated the second shortest routes. The \glsnc column shows that the proposed approach produced the safest routes in all experiments, while the greedy heuristics and \glsga based approach [24] produced the second safest routes. In terms of \glst, \glsrrt performed the best, while the proposed approach performed second best in Experiment 2 and 3, and the greedy and \glsga based approach performed second best in Experiment 1 and 4. The \glspso based approach [25] did not perform best or second best with respect to any dependent variable.

In the first experiment, the \glsarl for the proposed, \glspso based, greedy and \glsga based, \glsrrt, and \glsrrt* algorithms was 17, 25, 26, 16, and 15, respectively. Similarly, the \glsllr for the proposed, \glspso based, greedy and \glsga based, \glsrrt, and \glsrrt* algorithms was 36, 49, 47, 36, and 29, respectively. The five approaches also produced similar results in Experiment 2 to 4. Therefore, the \glsrrt* algorithm produced the shortest routes in all experiments.

Although the proposed approach did not produce the shortest routes, it produced the safest routes in all four experiments. The \glsnc column in Table 4 shows the number of collisions or crashes for the proposed, \glspso based, greedy and \glsga based, \glsrrt, and \glsrrt* algorithms. The total number of crashes in all experiments was 0, 14, 9, 18, and 29, respectively. As stated in Section 3, the proposed system provides a safety-first approach in which a hazard-free, safe operation of the \glsuav swarm takes precedence over any other objectives including the route length. This safety-first aspect of the proposed approach is evident in all experiments. The proposed approach generated slightly longer routes by trading route length for \glsuav safety. As a result, all \glsuav-to-\glsuav, \glsuav-to-static-obstacle, and \glsuav-to-moving-obstacle collisions were avoided and all drones successfully completed their maneuvers.

The last column in Table 4 shows the \glst results of the five algorithms in milliseconds. The results show that the \glsrrt algorithm took the least amount of time to run and produce the results in all experiments, while the proposed approach performed second fastest in Experiment 2 and 3, and the greedy and \glsga based algorithm performed second fastest in Experiment 1 and 4. Therefore, the results show that the proposed algorithm has a low computation overhead and it generates safe and efficient routes in a reasonable amount of time.

Experiment 1 results show that the proposed system is suitable for smaller problem instances. The performance and scalability of the proposed system are further demonstrated in the results of Experiment 2 which produced drone routes for a larger problem instance. In Experiment 3, the drones encountered more obstacles on their ways because the flying zone was cluttered with static and moving obstacles. It forced them to take longer routes to their destinations, but the proposed approach managed to successfully avoid all obstacles and collisions and routed all drones to their destinations. It shows that the proposed system is also suitable for densely populated, cluttered flying zones. Finally, Experiment 4 results show that the proposed approach is also suitable for complex problem instances involving high risks of drone collisions.

Approach Experiment \glsentrytextarl \glsentrytextllr \glsentrytextnc \glsentrytextt(ms)
Proposed 1 17 36 0 670
2 34 62 0 683
3 20 47 0 642
4 36 97 0 637
PSO Based 1 25 49 3 949
2 54 71 1 894
3 35 53 5 932
4 34 91 5 793
Greedy and GA 1 26 47 1 600
2 53 69 0 715
3 36 56 4 714
4 34 94 4 627
\Glsrrt 1 16 36 2 481
2 29 58 4 598
3 20 44 7 610
4 34 86 5 599
\Glsrrt* 1 15 29 3 612
2 27 58 4 721
3 18 37 9 738
4 30 89 13 688
Table 4: Comparison of the results with a \glsentrytextpso based approach [25], a greedy heuristics and \glsentrytextga based approach [24], and two sampling-based path planning algorithms called \glsentrytextrrt [15] and \glsentrytextrrt* [13]

6 Related Work

The problem of motion safety of semi-autonomous robotic systems is currently attracting significant research attention. A comprehensive overview of the problems associated with autonomous mobile robots is given in [23]. The analysis carried out in [10] shows that the most prominent routing schemes do not guarantee motion safety. Our approach resolves this issue and ensures not only safety but also provides efficient, online routing.

Macek et al. [17] proposed a layered architectural solution for robot navigation. They focused on the problem of safe navigation of a vehicle in an urban environment. They also distinguished between global route planning and collision avoidance control. However, in their work, they focused on the safety issues associated with the navigation of a single vehicle and did not consider the problem of collision-free path generation and navigation in the context of fleets or swarms of robots. Aniculaesei et al. [1] presented a formal approach that employs formal verification to ensure motion safety. They used UPPAAL model checker6 to verify that a moving robot engages brakes and safely stops upon detection of an obstacle. Since our proposed system does not assume any a priori knowledge on the numbers and locations of the static and moving obstacles and does not depend on a preliminary, off-line motion planning phase, the safety requirements can not be verified before the start of the mission. Therefore, we did not employ formal verification. The solution proposed in our work is fast and flexible as it dynamically generates and recomputes the drone routes in an online manner and avoids unnecessary stopping of the drones.

Petti and Fraichard [22] proposed an approach that relies on partial motion planning to ensure safety. They state that calculation of an entire route is such a complex and compute-intensive problem that the only viable solution is a computation of the next safe states and navigation within them. Their solution supports navigation of a single vehicle. In our work, we have discretized the flying zone and have developed a highly efficient system that computes the next safe states for an entire swarm and provides a mechanism for online path generation and collision avoidance.

A comprehensive literature review on motion planning algorithms for \glspluav can be found in [11]. The approaches reviewed in [11] are applicable to a preliminary, off-line motion planning phase to plan and produce an efficient path or trajectory for a \glsuav before the start of the mission. Our proposed system does not depend on a planning phase and produces efficient, collision-free paths for an entire swarm in an online manner. A more recent survey on motion planning of \glspluav can be found in [14].

Augugliaro et al. [3] presented an algorithm for generating collision-free trajectories for a quadrotor fleet. They focused on a planned approach that generates feasible paths ahead of time. LaValle [15] and Karaman and Frazzoli [13] presented sampling-based path planning algorithms called \glsrrt and \glsrrt*, respectively. \Glsrrt was designed to efficiently explore high-dimensional spaces by incrementally building a tree. \Glsrrt* is an extension of \glsrrt. It was designed to plan optimal paths.

Majd et al. [19, 18] proposed a path planning and navigation approach for swarms of drones. They combined offline path planning with an online navigation approach and used machine learning and evolutionary algorithms to generate efficient paths while maximizing safety of the drones in the swarm. They also used collision prediction and drone reflexes to prevent collisions with unforeseen obstacles. In comparison, this paper presents an online, collision-free path generation and navigation approach, which does not need offline path planning.

Dong et al. [9] presented a software platform for online cooperative control of multiple \glspluav. Their work focuses on monitoring and control of multiple \glspluav from a ground control station. The approach does not generate paths for the \glspluav. Instead, the complete flight information (including the \glspluav paths) are provided to the ground control station that sends control commands to the \glsuav fleet. Olivieri [7] and Olivieri and Endler [8] presented an approach for movement coordination of swarms of drones using smart phones and mobile communication networks. They used \glscep, but only to analyze and evaluate the formation accuracy of the swarm. Moreover, their work focuses on the internal communication of the swarm and does not provide a solution for collision-free path generation. Bürkle et al.[6] proposed a multi-agent system architecture for team collaboration in a swarm of drones. They also developed a simulation platform for patrolling or surveillance drones which monitor a protected area against potential intrusions. However, they did not address path planning and collision avoidance for the swarm.

Ivanovas et al. [12] proposed an obstacle detection and avoidance approach for a \glsuav. Their approach uses computer vision techniques for detecting static obstacles in stereo camera images. The main focus of their approach is on how some block matching algorithms can be used for obstacle detection. They did not present a path planning and collision avoidance approach for multiple \glspluav. Barry and Tedrake [5] proposed an obstacle detection algorithm for \glspluav that allows to detect and avoid collisions in an online manner. Similarly, Lin [16] presented an online path planner for \glspluav that detects and avoids moving obstacles. These approaches are only applicable for individual \glspluav and do not provide support for a swarm of \glspluav. In our work, we assumed that each \glsuav is equipped with an adequate obstacle sensing and detection capability and does not require any additional support for obstacle detection. Therefore, we focused on collision prediction and avoidance and online path generation and navigation for swarms of \glspluav.

Sujit and Beard [25] proposed a \glspso based path planning algorithm for swarms of drones. In their approach, whenever a drone detects a moving obstacle, the \glspso based algorithm generates a new path for the drone depending on the time allowed to compute a new path before the collision can occur. Silva Arantes et al. [24] presented a \glsuav path planning approach for critical situations requiring an emergency landing of the \glsuav. Their approach uses greedy heuristics and \glsplga to generate and optimize feasible paths under different types of critical situations caused by equipment failures.

In Section 5, we have presented a comparison of the results of our proposed approach with Sujit and Beard [25]’s \glspso based approach, Silva Arantes et al. [24]’s greedy heuristics and \glsga based approach, LaValle [15]’s \glsrrt algorithm, and Karaman and Frazzoli [13]’s \glsrrt* algorithm. The results show that our proposed approach produced the safest routes in all four experiments. Therefore, the proposed approach outperformed the \glspso based, greedy heuristics and \glsga based, \glsrrt, and \glsrrt* approaches with respect to drone safety.

\glsresetall

7 Conclusions

In this paper, we presented an online, collision-free path generation and navigation system for swarms of \glspluav. The proposed system uses geographical locations of the \glspluav and of the successfully detected, static and dynamically appearing, moving obstacles to predict and avoid: (1) \glsuav-to-\glsuav collisions, (2) \glsuav-to-static-obstacle collisions, and (3) \glsuav-to-moving-obstacle collisions. It comprises three main components: (1) a \glscep and collision prediction module, (2) a mutually-exclusive locking mechanism, and (3) a collision avoidance mechanism. The \glscep and collision prediction module leverages efficient runtime monitoring and \glscep to make timely predictions. The mutually-exclusive locking mechanism prevents multiple \glspluav from attempting to fly to the same location at the same time. The collision avoidance mechanism tries to find best ways to prevent the \glspluav from colliding into one another and with the successfully detected static and moving obstacles in the flying zone. Therefore, a distinctive feature of the proposed system is its ability to foresee risks of collisions in an online manner and proactively find best ways to avoid the predicted collisions in order to ensure safety of the entire swarm.

We also presented a simulation-based implementation of the proposed system along with an experimental evaluation involving a series of experiments and compared our results with the results of four existing approaches. The results showed that the proposed system successfully predicts and avoids all three kinds of collisions in an online manner. Moreover, it generates safe and efficient \glsuav routes, efficiently scales to large-sized problem instances involving dozens of \glspluav and obstacles, and is suitable for densely populated, cluttered flying zones and for scenarios involving high risks of \glsuav collisions.

As part of our future work, we plan to implement the proposed system in a more realistic simulation environment that allows to take into account complex physical phenomena and uncontrolled environment variables. Moreover, we want to test and evaluate our system for heterogeneous drones that may have diverse capabilities and fly at different speeds. Finally, an adequate support and online mechanisms to handle and control the situations arising from imprecise information of \glsuav locations and internal drone failures during mission execution are also planned as future works.

Acknowledgments

The work was supported by the Academy of Finland projects OpenCPS: Open Integrated Framework for Accelerating Development of Resilient CPS and CoRA: Continuous Resilience Assurance of Complex Software-Intensive Systems.

Footnotes

  1. https://www.faa.gov/news/updates/?newsId=89870
  2. https://www.faa.gov/uas/resources/public_records/uas_sightings_report/
  3. https://www.bbc.com/news/uk-england-sussex-46623754
  4. https://www.dji.com/phantom-4-pro
  5. http://www.espertech.com/esper/
  6. http://www.uppaal.org/

References

  1. A. Aniculaesei, D. Arnsberger, F. Howar, and A. Rausch. Towards the verification of safety-critical autonomous systems in dynamic environments. In Proceedings of the The First Workshop on Verification and Validation of Cyber-Physical Systems, pages 79–90, 2016.
  2. A. Ashraf, A. Majd, and E. Troubitsyna. Towards a realtime, collision-free motion coordination and navigation system for a UAV fleet. In Proceedings of the Fifth European Conference on the Engineering of Computer-Based Systems, ECBS ’17, pages 11:1–11:9. ACM, 2017.
  3. F. Augugliaro, A. P. Schoellig, and R. D’Andrea. Generation of collision-free trajectories for a quadrocopter fleet: A sequential convex programming approach. 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems, pages 1917–1922, 2012.
  4. R. Austin. Unmanned Aircraft Systems: UAVS Design, Development and Deployment. Aerospace Series. Wiley, 2010.
  5. A. J. Barry and R. Tedrake. Pushbroom stereo for high-speed navigation in cluttered environments. In 2015 IEEE International Conference on Robotics and Automation (ICRA), pages 3046–3052, 2015.
  6. A. Bürkle, F. Segor, and M. Kollmann. Towards autonomous micro UAV swarms. Journal of Intelligent & Robotic Systems, 61(1):339–353, Jan 2011.
  7. B. J. O. de Souza. An approach for movement coordination of swarms of unmanned aerial vehicles using mobile networks. Master’s thesis, Pontifical Catholic University of Rio de Janeiro, 2015.
  8. B. J. O. de Souza and M. Endler. Coordinating movement within swarms of UAVs through mobile networks. In 2015 IEEE International Conference on Pervasive Computing and Communication Workshops (PerCom Workshops), pages 154–159, 2015.
  9. X. Dong, B. M. Chen, G. Cai, H. Lin, and T. H. Lee. Development of a comprehensive software system for implementing cooperative control of multiple unmanned aerial vehicles. In IEEE International Conference on Control and Automation, pages 1629–1634, 2009.
  10. T. Fraichard. A short paper about motion safety. In Proceedings 2007 IEEE International Conference on Robotics and Automation, pages 1140–1145, 2007.
  11. C. Goerzen, Z. Kong, and B. Mettler. A survey of motion planning algorithms from the perspective of autonomous uav guidance. Journal of Intelligent and Robotic Systems, 57(1):65, 2009.
  12. A. Ivanovas, A. Ostreika, R. Maskeliūnas, R. Damaševičius, D. Połap, and M. Woźniak. Block matching based obstacle avoidance for unmanned aerial vehicle. In L. Rutkowski, R. Scherer, M. Korytkowski, W. Pedrycz, R. Tadeusiewicz, and J. M. Zurada, editors, Artificial Intelligence and Soft Computing, pages 58–69. Springer International Publishing, 2018.
  13. S. Karaman and E. Frazzoli. Sampling-based algorithms for optimal motion planning. The International Journal of Robotics Research, 30(7):846–894, 2011.
  14. F. Kendoul. Survey of advances in guidance, navigation, and control of unmanned rotorcraft systems. Journal of Field Robotics, 29(2):315–378, 2012.
  15. S. M. LaValle. Rapidly-exploring random trees: A new tool for path planning. Technical Report TR 98-11, Computer Science Deptartment, Iowa State University, 1998.
  16. Y. Lin. Moving Obstacle Avoidance for Unmanned Aerial Vehicles. PhD thesis, Arizona State University, 2015.
  17. K. Macek, D. Vasquez, T. Fraichard, and R. Siegwart. Safe vehicle navigation in dynamic urban scenarios. In 2008 11th International IEEE Conference on Intelligent Transportation Systems, pages 482–489, 2008.
  18. A. Majd, A. Ashraf, E. Troubitsyna, and M. Daneshtalab. Integrating learning, optimization, and prediction for efficient navigation of swarms of drones. In 2018 26th Euromicro International Conference on Parallel, Distributed and Network-based Processing (PDP), pages 101–108, March 2018.
  19. A. Majd, A. Ashraf, E. Troubitsyna, and M. Daneshtalab. Using optimization, learning, and drone reflexes to maximize safety of swarms of drones. In 2018 IEEE Congress on Evolutionary Computation (CEC), 2018.
  20. A. Mdhaffar, R. B. Halima, M. Jmaiel, and B. Freisleben. Reactive performance monitoring of cloud computing environments. Cluster Computing, 20(3):2465–2477, Sep 2017.
  21. G. Pajares. Overview and current status of remote sensing applications based on unmanned aerial vehicles (UAVs). Photogrammetric Engineering and Remote Sensing, 81(4):281 – 329, 2015.
  22. S. Petti and T. Fraichard. Partial motion planning framework for reactive planning within dynamic environments. In Proceedings of the IFAC/AAAI International Conference on Informatics in Control, Automation and Robotics, 2005.
  23. R. Siegwart, I. R. Nourbakhsh, and D. Scaramuzza. Introduction to Autonomous Mobile Robots. Intelligent robotics and autonomous agents. MIT Press, 2011.
  24. J. d. Silva Arantes, M. d. Silva Arantes, C. F. Motta Toledo, O. T. Júnior, and B. C. Williams. Heuristic and genetic algorithm approaches for UAV path planning under critical situation. International Journal on Artificial Intelligence Tools, 26(01):1760008, 2017.
  25. P. B. Sujit and R. Beard. Multiple UAV path planning using anytime algorithms. In 2009 American Control Conference, pages 2978–2983, June 2009.
  26. E. Wu, Y. Diao, and S. Rizvi. High-performance complex event processing over streams. In Proceedings of the 2006 ACM SIGMOD International Conference on Management of Data, SIGMOD ’06, pages 407–418, New York, NY, USA, 2006. ACM.
Comments 0
Request Comment
You are adding the first comment!
How to quickly get a good reply:
  • Give credit where it’s due by listing out the positive aspects of a paper before getting into which changes should be made.
  • Be specific in your critique, and provide supporting evidence with appropriate references to substantiate general statements.
  • Your comment should inspire ideas to flow and help the author improves the paper.

The better we are at sharing our knowledge with each other, the faster we move forward.
""
The feedback must be of minimum 40 characters and the title a minimum of 5 characters
   
Add comment
Cancel
Loading ...
402595
This is a comment super asjknd jkasnjk adsnkj
Upvote
Downvote
""
The feedback must be of minumum 40 characters
The feedback must be of minumum 40 characters
Submit
Cancel

You are asking your first question!
How to quickly get a good answer:
  • Keep your question short and to the point
  • Check for grammar or spelling errors.
  • Phrase it like a question
Test
Test description