1. Introduction
In the not-too-distant future, unmanned aerial vehicles (UAVs) will be a common element in airspace. Their use in recent years has increased exponentially, and this is mainly due to cost savings, their autonomy, and consequently the absence of risk from the human factor. Technological advances such as navigation, dynamics, sensors, and communications make it possible to use them for different applications—not only military but also civilian uses. Among the services offered by these UAVs are the delivery of parcels, precision agriculture, fire detection and fighting, maritime surveillance, transport of medical equipment, etc.
Although the growth in the use of UAVs in civil applications is relatively new, guidelines or requirements have already been developed to regulate the use of these vehicles in airspace. However, it should be added that there is no global regulation and depending on each country there are a number of restrictions such as weather conditions, maximum and minimum flight height, prohibited flight zones, and compulsory use of onboard “Sense and Avoid” systems.
The increase in the use of these vehicles for various applications has made the scientific community not only focus on their aerodynamics or the materials or chipsets of which they are composed, but a new challenge arises that is of greater interest—the design of collision-free path/trajectory planning mechanisms, especially in future crowded airspaces [
1]. Therefore, a prerequisite arises for these multi-UAV systems to be able to succeed in the new applications they face—the ability to avoid collision. This capacity must be incorporated to comply with the regulations concerning autonomous UAVs.
In likely future scenarios, with hundreds or thousands of UAVs offering different types of services and sharing the same airspace, it is not feasible to develop a centralized path planning strategy that ensures the absence of collisions between all these UAVs. Therefore, a decentralized (or coordinated) collision avoidance strategy must be put in place, so that UAVs can dynamically detect and resolve these situations.
This paper therefore focuses on real-time collision avoidance in multi-UAV systems. As a starting point, it should be added that there are a number of characteristics that make the resolution of this problem complex: obstacles are dynamic and their velocity and direction may dynamically vary, entities using real-time decision-making and information with consequent delays, etc.
Existing collision avoidance proposals include, among others, the use of potential field methods, evolutionary algorithms, graph-based techniques, search in the state space, geometric relations, forces, or velocities. In this work we propose a decentralized mechanism that slightly modifies the route followed by the UAVs involved in the conflict. The mechanism uses a box delimitation algorithm according to the well-known velocity obstacle method. The use of this strategy significantly reduces the algorithmic complexity and computational cost of traditional proposals. At the same time, as we will see, its efficiency is high.
The rest of this work is structured as follows. Next,
Section 2 presents a general taxonomy of collision avoidance mechanisms suitable for the multi-UAV scenario, focusing on velocity obstacle-based techniques. Then,
Section 3 details the behavior of a new collision-free navigation technique for UAVs, referred to as Bounding Box Collision Avoidance (BBCA). After that,
Section 4 presents the results of a comparative study of our proposal. Finally,
Section 5 presents some conclusions and future works.
2. State of the Art
Collision (or obstacle) avoidance is a widely explored problem in the field of robotics (e.g., [
2,
3,
4] for robotic arms and [
5,
6,
7,
8] for mobile robots). In this context, many solutions have been proposed, mainly relying on different robot sensors, such as GPS, cameras, and LiDAR, and considering 2D environments. Unlike “traditional” terrestrial robots, UAVs evolve in a three-dimensional scenario. Some of the obstacles to avoid will be static. This is the case of elevations in the terrain, buildings, or flying areas not allowed for this type of aircraft. On the other hand, there will also be obstacles of a dynamic type, such as birds or other UAVs with which the airspace is shared. As already mentioned, in this paper we will focus on the avoidance of collisions between multiple UAVs.
Collision avoidance between aircrafts is a problem that has been widely explored in the traditional Air Traffic Management (ATM) context, where the “conflict detection and resolution” expression (also CDR or CD&R) is commonly used [
9,
10]. In this context, a collision (or “conflict”) refers to an event in which two or more (manned) aircraft experience a loss of minimum separation. The minimum separation between two aircraft is established by aviation authorities, such as the International Civil Aviation Organization (ICAO) [
11]. However, in the case of multi-UAV systems, there is not a standard minimum separation, although there may be particular regulations establishing it and, in some research, work specific values are assumed [
12]. In this context, we no longer speak of ATM, but UTM (Unmanned aircraft system Traffic Management) [
13].
It should be noted that in the field of multi-UAV systems, in addition to the “collision avoidance” and “conflict detection and resolution” expressions, numerous works refer to the same problem by using the “Sense, Detect and Avoidance” expression (or its initials, SDA, SAA, S&A, DAA, etc.). SDA systems include two main functions: a “sense” function, that allows the acquisition of information from the environment, and an “avoidance” function that assesses the risk of a possible collision, taking the appropriate action, either by warning the pilot or by autonomously taking some avoidance measure (such as an evasive maneuver) [
14].
Without wishing to be exhaustive, next we present a general taxonomy of collision avoidance approaches for the multi-UAV scenario considered, and then we describe in a little more detail some popular techniques. Most of these techniques have been borrowed from the field of multi-agent systems and some of them constitute the basis of our proposal. The interested reader can find two complete and up-to-date reviews of collision avoidance mechanisms for these scenarios in [
15] and [
16].
In general, there are three different ways of addressing the collision avoidance problem (CD&R) in the UTM context [
17,
18]. They are non-exclusive strategies and could therefore coexist, for example, for reasons of redundancy. Firstly, there exists the possibility of defining a set of collision-free trajectories for all UAVs before their mission starts. These strategies are referred to as “pre-flight CDR methods”. This centralized solution has two major drawbacks: its predictable computational cost and the additional complexity derived from the fact that all these UAVs may be operated by different service providers.
As a second approach, there are CDR methods that detect the conflict between the UAVs during the flight. These are referred to as “in-flight CDR methods”. Within this category, we have centralized and distributed (or decentralized) methods. In the first case, the method must recalculate a new set of trajectories centrally. Again, we find solutions with a high computational cost. On the other hand, distributed methods usually involve cooperative communication between UAVs; for example, to exchange their position, velocity, and heading. Traditionally, these strategies have been considered the most appropriate in this context, and therefore this is the type of strategy we will focus on.
The third and final approach to collision avoidance is what is known in the literature as “Sense and Avoid” and is based on the use of video processing techniques and other sensors onboard the UAV.
In terms of specific techniques, the literature is extremely wide, but a group of geometric techniques, based on the concepts of collision cones (CCs) and velocity obstacles (VOs), stand out for their popularity [
19,
20]. Basically, a VO represents the set of all velocity vectors of a moving agent which will result in a collision with a moving obstacle at some future point in time. The VO region can be derived from the current position, velocity and heading of both moving agents and the radius of the protected zone around each agent. Different proposals have been developed on the basis of these concepts (VO, RVO, HRVO, etc.) [
21,
22,
23], with the Optimal Reciprocal Collision Avoidance (ORCA) [
24] mechanism being the most referenced one. In fact, recently ORCA has been proposed as a technique for CDR in civil aviation [
25].
The CC method has been widely used for the detection and avoidance of collisions between agents in motion and with unknown trajectories. In this approach, initially proposed by Chakravarthy and Ghose [
20], the probability of collision between two moving agents is established according to their velocities. The improvements made on this method make its application to environments possible with several agents by using a heuristic cost function to determine the safety of the positions of each agent. The CC is computed and used to determine whether two agents will collide, with the two-agent system being handled as it was a single-agent system and a static obstacle. The main drawback of this method is its efficiency in medium-low density environments, which restricts its use to sparsely populated scenarios. In addition, a high computational cost is paid as the scenario increases. An in-depth study of this method is given in [
26].
ORCA is a velocity-based obstacle avoidance method. Basically, this method consists of choosing the optimal velocity from a set of valid ones. Each agent uses the current velocity of nearby agents to predict their future positions and, under this assumption, establishes its new velocity according to some optimization criterion. Velocity-based methods offer a generally better computational performance and behavior than the force-based methods that we will introduce later. The particularity of ORCA is the inclusion of reciprocity, where each virtual agent tries to avoid colliding with the other. In this way, agents perform softer movements, although other problems may appear, such as bottlenecks and deadlocks. ORCA assumes that there is no exchange of information between UAVs. Each UAV is continuously in a cycle of detection and action, so every action it takes will be based on local observations. The observed velocities are basically used to estimate the future positions of the obstacles. From this information, a VO, including the velocities prohibited for one agent from another, is computed. Once the VO has been established, half-planes are generated that allow the defining of collision-free velocities. To select the optimal velocity towards its destination from those collision-free velocities, the agent uses the linear programming optimization technique. ORCA guarantees collision-free navigation for non-dense scenarios [
24], otherwise there may not be a velocity that meets the collision avoidance requirement. In this case, ORCA selects the safest valid velocity that minimally violates this requirement. For this reason, when the scenario is dense, three-dimensional linear programming is used for the computation of the velocity where a collision-free situation cannot be guaranteed [
27]. An important issue of the ORCA algorithm is its medium-high computational cost, due to the use of linear programming for velocity computation. Additionally, as said, it cannot guarantee a collision-free scenario.
Other groups of collision avoidance techniques proposed for the multi-UAV scenario are those based on forces. They model groups of virtual agents as particle systems. Then, each particle exerts a force on the nearest particles, and the laws of physics are used to determine its motion. These methods are included within the so-called potential methods for trajectory planning. A popular example is the Artificial Potential Field (APF) [
28] technique, based on the idea that Khatib introduced in 1986, where the agent moves drawn into a force field towards his final destination and the rest of the agents behave as obstacles with repulsive forces [
29]. The main problem with these methods is the existence of local minima that do not allow agents to advance towards their goal, in addition to the high cost of computing the solution.
Other techniques, such as Particle Swarm Optimization (PSO) [
30] and Ant Colony Optimization (ACO) [
31], are known as swarm intelligence methods, and have also been used for trajectory planning in multi-agent systems. These types of algorithms are inspired by the behavior of fish shoals or flocks of birds, where a group of agents (known again as particles) work together to obtain an optimal solution to the problem.
In PSO, obtaining the optimal solution is based on a problem of continuous optimization, where the distance of each agent to its destination is computed and shared with the rest of agents. This algorithm iterates over generations to obtain the optimal solution for the entire swarm. An extensive study of PSO applications can be found in [
32]. Because of the computational cost required by path planning methods, such as the PSO algorithm, they are not good candidates for real-time applications with multiple agents.
Apart from the ones just mentioned, other evolutionary algorithms, such as genetic algorithms, have been also proposed to solve the problem of trajectory planning with collision avoidance in multi-UAV systems [
33,
34]. Finally, there is a group of techniques based on game theory, such as the conflict resolution algorithm for multi-UAV systems recently presented in [
35]. The use of Dubins Paths [
36] has been also proposed as a solution to this problem [
37].
3. Bounding Box Collision Avoidance
After studying different collision avoidance methods proposed in the literature, we decided to focus on those based on velocities because of their computational cost and efficiency. These algorithms dynamically modify routes in real time, as needed. In addition, our algorithm should rely on local observations and avoid the information exchange between the UAVs in the neighborhood.
In this section, after presenting a simple conflict detection criterion, we detail the algorithmic behavior of our proposal and exemplify it through a case study.
3.1. Conflict Detection Mechanism
In this work, we assume that all UAV flights are at the same altitude. Consequently, we afford the collision avoidance problem in the 2D plane. Let
be the set of UAVs flying over the study area considered at any given time. Each element
represents the status vector of a UAV, where
,
, and
are, respectively, its current position, current velocity, and destination. Additionally,
is the safety radius, that is, the radius of the UAV’s protected zone.
Figure 1 shows an example.
Then, we say that there is a conflict between two UAVs,
and
, when their respective protected zones overlap. The procedure proposed in this work covers situations in which different UAVs have different safety radii. However, for the sake of simplicity, in the evaluation section we apply the same safety radius to all UAVs. Therefore, the above condition is equivalent to say that the distance between
and
is less than
.
Table 1 shows the conflict detection boolean function (the
symbol refers to the vector components not used).
3.2. Computation of the Valid Velocity Space
The algorithm proposed in this work is referred to as the bounding box collision avoidance (BBCA) algorithm and may be considered as a simplified velocity obstacle (VO) technique. As we have seen, methods such as ORCA come with restrictions to movement. These restrictions can be represented as a convex polygon, on which a search can be applied later, by means of linear N-dimensional programming. As indicated, this entails a high computational cost. On the contrary, BBCA maintains those restrictions confined to a rectangle, so that the search process is trivialized, by avoiding the application of linear programming techniques.
Table 2 presents the complete BBCA algorithm. Let
be the maximum operating velocity and
the execution interval of the navigation algorithm. These values are common for all UAVs in the flying area.
The algorithm firstly breaks down the UAV status vector into its components (line 01). Then, the valid velocity space is initialized as a rectangle (graphically denoted by a green box) where the north, south, east, and west sides are located at a distance equal to the maximum accepted velocity (02).
As an illustrative example,
Figure 2 shows a scenario with
and
m. Apart from the 2D location of all nodes (UAVs), the figure shows the velocity space corresponding to node 1. In the origin of coordinates, we can see the initial situation of the green box, assuming
m/s.
For each UAV in the neighborhood (line 03 in
Table 2), after decomposing it (04), the circular VO that it represents is obtained (05). This VO is then transformed into a quarter-plane (half a half-plane), denoted by a red box (06).
Figure 3 shows the circular VO produced by node 3 in node 1, assuming
s, and its transformation into a quarter-plane whose north and east ends are located in the infinite. In the figure, the quarter-plane is shown as a red rectangle.
The transformation process applied in (06) is encapsulated in the function detailed in
Table 3. This function initially decomposes the circular VO into a position and a radius (14) and obtains the square that inscribes it (15). Then, the vertical and horizontal sides furthest from the center of this square are extended to the infinite (16–25). The function returns the resulting quarter-plane (26).
Once the quarter-plane has been computed, the red box is translated in function of the current velocity of the neighbor node (line 07 in
Table 2). Next, the BBCA algorithm acquires the distance from the velocity vector to the respective quarter-plane sides (08). In this calculation, a negative value would indicate the amount of penetration into it. After that, the quarter-plane is extended to obtain a (vertical or horizontal) half-plane (09).
Figure 4 shows the scenario in
Figure 3, except that the nodes have already moved towards their destination (which is indicated by a black trace). In addition, the green box shows the velocity vector used by node 1 in the previous iteration. We can see the extension to a half-plane experienced by the quarter-plane.
Table 4 details the way in which a quarter-plane is transformed into a half-plane. First, the distances from the current velocity to the respective sides of the quarter-plane are obtained (27). Next, the side whose distance is greater is chosen (28) and the rest of sides are extended to the infinite (29–36).
Once the half-plane has been obtained, the BBCA algorithm extends it up to half the distance that separates it from the current velocity of the UAV that is running the algorithm (line 10 in
Table 2). In this way, both nodes will equally share the responsibility of maneuvering to avoid each other. This allows, among other things, two nodes to fly side by side maintaining the minimum safety distance, instead of repelling each other.
Figure 5 shows this operation in the half-plane of
Figure 4, although for this example the result is practically imperceptible.
The process carried out by the BBCA algorithm on each UAV in the neighborhood concludes by truncating or trimming the green box (representing the valid velocity space) according to the resulting VO (line 11 in
Table 2).
Figure 6 shows the result after applying this operation in the situation shown in
Figure 5.
Table 5 details this operation. Since the half-plane is implemented with a rectangle with three sides at infinity, the process determines the finite side (41) and truncates the opposite side if needed (42–49).
3.3. Selection of the Final Velocity
Once all these tasks have been performed on all the UAVs in the neighborhood, the final green box representing the valid velocity space for the node running the BBCA algorithm is available. The next action to take will be to determine a specific velocity from among the possible ones and apply it during the following time interval
(line 13 in
Table 2).
Table 6 details this procedure.
Before handling the general case, the procedure deals with two particular cases. Firstly, a null final velocity vector is set (51). The first case corresponds to the situation in which the UAV has reached its destination (52), in which case the procedure concludes (53). At this point, a descent and landing maneuver would be initiated independently of the navigation algorithm. Otherwise, the green box (55) is broken down for analysis. The second particular case may occur in very dense traffic situations, where velocity obstacle-based navigation algorithms get a negative valid velocity space (56). This situation could be visually interpreted as if the green box were folded over itself. Then, there is not a velocity vector guaranteeing the absence of conflict. This problem is minimized by selecting a velocity equidistant from the respective edges (57) and the procedure concludes (58). If none of the particular cases described are in place, the general case has been reached. In this case, the procedure obtains the remaining trajectory vector (60) and uses it to determine the optimal direct velocity to the destination (61). If this velocity is valid, it is found inside the green box (62), then it is set as the final velocity (63) and the process concludes (64).
Figure 7 shows an example.
If a direct velocity is not permissible, then we need to determine a vector that is. To do this, we analyze 12 points resulting from geometrically comparing the maximum velocity circle (hereinafter referred to as “the circle”) and the green box representing the valid velocity space (hereinafter referred to as “the box”). First, we would determine the cut points between the circle and the box, both vertically (66) and horizontally (67). In each direction it may be that the circle does not intersect the box but the extension of its sides, in which case (68) it is eliminated as a candidate (69). Visually, this fact means that the candidate point is outside the bounds of the box.
Table 7 shows the function that performs this check. If, on the other hand, the intersection is real, this can be a single tangential intersection, or unfolded at two intersections (denoted as positive and negative, respectively). Both situations are handled according to the second option, in which both points would match. We also consider the four vertices of the box (71) as candidates if they are inside the circle (72), discarding them otherwise (73). Note that of the 12 points checked, only 4 to 8 will be maintained, as for each accepted vertex two intersections will be discarded.
Figure 8 shows two examples with the twelve candidate points.
Starting from the set of candidate points, the procedure selects the most suitable one. For each candidate velocity vector (75), drift is determined from the ideal vector (76) and it is compared to the best option so far. In case of providing a higher net velocity or, at equal velocity, a better direction towards the destination (77), then it will be considered the best option (78 to 79). This criterion allows other UAVs to be surrounded, instead of colliding with them.
Figure 9 shows two examples of choosing the best point among the possible ones.
3.4. Robustness and Safety Margins
In the previous sections, it has been assumed that the UAVs will follow (without margin of error) the paths provided by the navigation system. In this section, we analyze the robustness of the algorithm to possible errors due to “external” factors, such as the presence of gusty winds. Other “internal” factors, such as calculation errors (or excessive latencies) in the geolocation process, or even in the path tracking process itself, should be addressed from a different perspective.
The airspace manager is responsible for estimating the magnitude of these external disturbances and adjusting the algorithm parameters to establish a safety margin, which is determined by the expression . The difference between the conflict detection radius and the distance a UAV can travel during an iteration determines the safety margin. In the next iteration, the navigation system will detect the error and will provide an updated trajectory.
Additionally, the BBCA algorithm is a memoryless process. In this way, it does not assume the correct follow-up of the instructions provided in previous iterations. On the contrary, each node recalculates its trajectory from its current location, the destination location, and the location of the neighboring nodes. Consequently, the algorithm is highly robust. If the nodes suffer unexpected translations, BBCA continues navigating towards the destination, without collapsing or trying to recover the lost trajectory.
5. Conclusions and Future Work
In recent years, the use of UAVs in civil applications has grown exponentially in both quantity and versatility. As technical problems are overcome, current aviation legislation is being adapted to allow these uses at a commercial and private level. One of the challenges in this regard is autonomous navigation and, in particular, the real-time management of conflicts (potential collisions) between UAVs.
This paper presents a detailed description and evaluation of an autonomous navigation algorithm with conflict management called BBCA (bounding box collision avoidance). This proposal can be categorized as a simplified version of the popular velocity obstacle method. The simplification consists of limiting the set of generic polygons used to determine the immediate valid region to rectangles in the velocity vector space.
The evaluation results show that, in situations of low traffic density, the mechanism has an excellent performance, correctly managing more than 95% of collisions produced, with an assumable cost, both in distance travelled and in the time required by the UAVs in reaching their destination. By forcing the mechanism into unreal situations of extreme traffic density (in which each UAV is involved in an average of four conflicts along its route), it behaves reasonably well, eliminating 88% of the conflicts generated.
In future work, we plan to incorporate into the BBCA mechanism some control over the velocity vector module of the UAVs (not only over their direction). This would allow them to accelerate, slow down, or even stop in the air (in case of multicopters) if necessary, in order to correctly manage all the conflicts generated, regardless of the air traffic density.