Keywords

1 Introduction

As applications of unmanned aerial vehicles (UAVs) have been increasing, more fields are trying to use UAVs. A few examples are search and rescue operations, surveillance systems, crop dusting, and performances using multiple UAVs [14].

When a single UAV is used, it can take a long time to accomplish tasks, or even fail. This problem can be resolved using multiple UAVs. However, to operate multiple UAVs in a ground control system, it is necessary to apply a collision avoidance technique to the system.

In this paper, we propose a path planning method for collision avoidance of multiple UAVs based on recorded UAV flight data. A geometric arithmetic algorithm is used to plan the flight paths for multiple UAVs, predict possible collisions before operation, and prevent collisions [6]. While traditional geometric arithmetic algorithms use the velocity information of UAVs, the proposed method computes the differences in recorded UAV flight data. Because the method uses the recorded UAV flight data to plan the paths, it can consider the collision issues less than traditional algorithms.

The rest of this paper is organized as follows: In Sect. 2, we propose a path planning method for multiple UAVs. In Sect. 3, the implementation of the proposed method is described, the operations are verified, and the conclusions are provided.

2 Multiple UAV Control for Collision Avoidance

The method for generating collision avoidance paths is described in Fig. 1. In the first stage, i.e., the flight record correction stage, a user records UAV flight data while controlling the UAV with a controller. In the second stage, i.e., the flight record revision stage, a path revision algorithm is used to revise the paths recorded in the first stage. Finally, in the third stage, i.e., the avoidance path planning stage, the system generates the paths in which no collisions between UAVs would occur.

Fig. 1.
figure 1

This figure shows a diagram of the three stages to obtain results from the proposed algorithm. The first stage is flight record collection through the control of a UAV by a user, using a controller, the second stage is the path revision stage, and the last stage is the avoidance path planning stage.

2.1 UAV Flight Data Records

The hourly states of the nth UAV record are defined as the collected state set, Sn, as shown in Eq. (1). The collected state, Sn,i, indicates the ith collected state of the collected state set, Sn. Then, the collected state, Sn,i, is described in terms of four components, xn,i, yn,i, zn,i, and tn,i, which represent the GPS latitude, the GPS longitude, the absolute altitude, and the flight time from departure, respectively. Finally, the collected states, Sn,i, are added to the collected state set, Sn,i, to record.

$$ \varvec{S}_{n} = \left[ {S_{n,1} ,S_{n,2} , \cdots ,S_{n,i} , \cdots } \right] $$
(1)
$$ S_{n,i} = \left[ {x_{n,i} ,y_{n,i} ,z_{n,i} ,t_{n,i} } \right] $$
(2)

2.2 Path Revision Computations

To revise the collected flight data, the Douglas–Peucker algorithm is applied [5]. This algorithm suggests a path revision method in two-dimensional space (f:pn,i → Rn,j) and advances the method to a three-dimensional path revision method. This method is not included in this paper.

The collected state set, Sn, is revised to make the revised state set, Rn, as shown in Eq. (3). The revised state, Rn,j, is the jth revised state in the revised state set, Rn, and is defined by Eq. (4). The element in the revised state set, Rn, uses the element of the collected state set, Sn, to define the collected state, Sn,i, which contains the \( \left[ {x_{n,i} ,y_{n,i} ,z_{n,i} } \right] \) elements that are outside the error tolerance, as the revised state, Rn,j.

$$ \varvec{R}_{n} = \left[ {R_{n,1} ,R_{n,2} , \cdots ,R_{n,j} , \cdots } \right] $$
(3)
$$ R_{n,j} = \left[ {x_{n,j} ,y_{n,j} ,z_{n,j} ,t_{n,j} } \right] $$
(4)

2.3 Collision Avoidance Path Planning

The avoidance state set, An, is defined by Eq. (5). The avoidance state, An,k, is defined as the kth avoidance state, and is shown in Eq. (6). The state-difference set, Dn, is defined by Eq. (7). The state-difference, Dn,j, is the jth element of the state-difference set, Dn, and is shown in Eq. (8). The avoidance point set, Pn, is defined by Eq. (9). The avoidance point, Pn,k, is the kth element of the avoidance point set, Pn, and is shown in Eq. (10). Finally, the direction pointing to the avoidance point, Pn,j, is defined as \( {\text{U}}_{{{\text{n}},{\text{j}}}} = \left[ {x_{n,j} ,y_{n,j} ,z_{n,j} } \right] \).

$$ \varvec{A}_{n} = \left[ {A_{n,1} ,A_{n,2} , \cdots ,A_{n,k} , \cdots } \right] $$
(5)
$$ A_{n,k} = \left[ {x_{n,k} ,y_{n,k} ,z_{n,k} ,t_{n,k} } \right] $$
(6)
$$ \varvec{D}_{n} = \left[ {D_{n,1} ,D_{n,2} , \cdots ,D_{n,j} , \cdots } \right] $$
(7)
$$ D_{n,j} = \left[ {x_{n,j} ,y_{n,j} ,z_{n,j} ,t_{n,j} } \right] $$
(8)
$$ \varvec{P}_{n} = \left[ {P_{n,1} ,P_{n,2} , \cdots ,P_{n,k} , \cdots } \right] $$
(9)
$$ P_{n,k} = \left[ {x_{n,k} ,y_{n,k} ,z_{n,k} } \right] $$
(10)

The computational time, \( {\text{t}}_{\text{n,m}}^{{\prime }} \), is defined as the mth element of the computational time set, \( T_{n}^{{\prime }} = \left\{ {0, 1, \cdots ,t_{n,\left| R \right| - 1} \,of\, R_{n} - t_{n,1} \,of\, R_{n} - 1, t_{n,\left| R \right|} \,of\, R_{n} - t_{n,1} \,of\, R_{n} } \right\} \), where n! = MAX(n). \( {\text{h}}\left( {n1, n2,m} \right) \) is \( \mathop { \hbox{max} }\limits_{j} \)(\( t_{n1,j} \,of\, R_{n1} - t_{n,1} \,of\, R_{n1} \)) where \( t_{n1,j} \, of\, R_{n1} - t_{n1,1} \, of\, R_{n1} < t_{n2,m}^{{\prime }} \).

There are nine steps in the generation procedure. First, the values of n1 and n2 that satisfy the condition n1 < n2 need to be determined, and m is set to be 1. If the values of n1 and n2 cannot be determined, then the generation of the collision avoidance path is terminated.

Second, if \( A_{n} \ne \emptyset \), then each element of the avoidance state set, An, is added to the revised state set, Rn, in order, and the avoidance state set, An, and the state-difference set, Dn, are set to be null sets.

Third, the state-difference set, Dn, is computed using the revised state set, Rn. Each element of the state-difference set, Dn, is calculated as shown in Eq. (11); it is the difference between the adjacent elements of the revised states in the revised state set, Rn.

$$ \begin{array}{*{20}l} {x_{n,j} = x_{n,j + 1} - x_{n,j} , y_{n,j} = y_{n,j + 1} - y_{n,j} } \hfill \\ {z_{n,j} = z_{n,j + 1} - z_{n,j} ,t_{n,j} = t_{n,j + 1} - t_{n,j} } \hfill \\ \end{array} , $$
(11)

Fourth, the indices j1 and j2 are determined. Set \( {\text{j}}1 = h(n1,n1,m) \) and \( {\text{j}}2 = h(n2,n1,m) \).

Fifth, the revised states, Rn1,j1 and Rn2,j2, are added to the avoidance state sets, An1 and An2, respectively, using Eq. (12).

$$ A_{n} = A_{n} \mathop \cup \nolimits \{ R_{n,j} \} $$
(12)

Sixth, using the geometric arithmetic algorithm and the state-differences, Dn1,j1 and Dn2,j2, the time for reaching the collision prediction point, \( {\text{t}}^{{\prime \prime }} \), and the directions pointing to the avoidance point, Un1,j1 and Un2,j2, are computed, where \( {\text{g}}:{\text{D}}_{{{\text{n1}},{\text{j1}},}} {\text{D}}_{{{\text{n2}},{\text{j2}}}} \to \left[ {{\text{t}}^{{\prime \prime }} ,{\text{ U}}_{{{\text{n1}},{\text{j1}},}} {\text{U}}_{{{\text{n2}},{\text{j2}}}} } \right] \) [6]. If \( {\text{t}}^{{\prime \prime }} \le 0 \) or j1 = |Rn1|, the system skips to the ninth step without performing the seventh and the eighth steps, because the collision cannot be predicted under those conditions. Otherwise, the system performs the remaining steps in order.

Seventh, the avoidance point is generated using the directions pointing to the avoidance point, Un1,j1 and Un2,j2. Un1,j1 is always generated, while Un2,j2 is not. Therefore, when Un2,j2 is not generated, Un1,j1 is computed using Eq. (13) to generate the avoidance point, Pn1,j1.

$$ \begin{aligned} x_{n,j} = & x_{n,j} \,of\, R_{n} + t_{n}^{{\prime \prime }} \times x_{n,j} \,of \,D_{n} + \left( {x_{n,j + 1} \,of\, R_{n} - x_{n,j} \,of\, R_{n} } \right) \times t^{{\prime \prime }} \times x_{n,j} \,of\,U_{n,j} , \\ y_{n,j} = & y_{n,j} \, of\, R_{n} + t_{n}^{{\prime \prime }} \times y_{n,j} \,of \,D_{n} + \left( {y_{n,j + 1} \,of\, R_{n} - y_{n,j} \,of\, R_{n} } \right) \times t^{{\prime \prime }} \times y_{n,j} \,of \,U_{n,j} , \\ z_{n,j} = & z_{n,j} \,of \,R_{n} + t_{n}^{{\prime \prime }} \times z_{n,j} \,of\, D_{n} + \left( {z_{n,j + 1} \,of\, R_{n} - z_{n,j} \,of \,R_{n} } \right) \times t^{{\prime \prime }} \times z_{n,j} \,of\,U_{n,j} \\ \end{aligned} $$
(13)

Eighth, the generated avoidance point, Pn,j, is added as the last element of the avoidance state set, An. For example, the possible flight time is predicted when the avoidance point, Pn1,j1, is generated, and added as the last element of the avoidance state, An, using Eq. (14).

$$ A_{n} = A_{n} \mathop \cup \nolimits \;\{ [P_{n,j} , t_{n,m}^{{\prime }} + t^{{\prime \prime }} ]\} $$
(14)

Ninth, if \( {\text{t}}_{\text{n,m}}^{{\prime }} \) is not the last element of \( {\text{T}}_{\text{n}}^{{\prime }} \), then m is increased by 1 and the procedure is repeated starting from the fourth step. If \( {\text{t}}_{\text{n,m}}^{{\prime }} \) is the last element of \( {\text{T}}_{\text{n}}^{{\prime }} \), then the procedure is repeated starting from the first step.

3 Experiments

3.1 Three-Dimensional Experiments Scenario and UAV Flight Data Record

In this study, we conducted experiments to verify the proposed method for the path planning based on the collected UAV flight data and for avoiding collisions between the UAVs. The proposed method was verified using a scenario that we designed. The flight record in this scenario includes external disturbances, such as wind and an inexperienced pilot, and internal disturbances, such as GPS position error. The unstable records are shown in Fig. 2.

Fig. 2.
figure 2

UAV flight data collected from two different UAVs. The graphs are linear but noisy and unstable.

3.2 Path Revision Computation

In this study, the path was revised in three-dimensional space. The results are shown in Fig. 3. By correcting the collected flight data, the graphs became considerably stable and therefore, it is expected that the UAVs would not stop during autonomous flight.

Fig. 3.
figure 3

The corrected path of the collected flight data, S. Dogulas–Peucker algorithm was applied in three-dimensional space.

3.3 Experiments for the Generation of the Collision Avoidance Path

In this study, a three-dimensional collision avoidance algorithm was applied [6]. The path generated through collision avoidance is shown in Fig. 4.

Fig. 4.
figure 4

A generated path, A, by predicting collisions at different time intervals, and generating and adding the avoidance points.

In the experiments, two collision points were predicted and these were reflected in the system such that the UAV could change its path along the Z-axis to avoid collision. Finally, the two collision points, (65.00504, 49.98345, 0.50015, 3.5) and (34.98355, 50.02151, 1.500367, 6.5), were added to the avoidance state set, A1.

3.4 Conclusion

In this paper, we propose a method to collect and revise UAV flight data through a user with a UAV controller, and path adjusting and planning techniques for collision avoidance of UAVs. When multiple UAVs are controlled by a ground control system using the proposed method, the UAVs have less likelihood to be in a close encounter with obstacles and other UAVs. Therefore, the system would have less burden to consider the collision issues than traditional algorithms.