Real-Time Swarm Search Method for Real-World Quadcopter Drones

This paper proposes a novel search method for a swarm of quadcopter drones. In the proposed method, inspired by the phenomena of swarms in nature, drones effectively look for the search target by investigating the evidence from the surroundings and communicating with each other. The position update mechanism is implemented using the particle swarm optimization algorithm as the swarm intelligence (a well-known swarm-based optimization algorithm), as well as a dynamic model for the drones to take the real-world environment into account. In addition, the mechanism is processed in real-time along with the movements of the drones. The effectiveness of the proposed method was verified through repeated test simulations, including a benchmark function optimization and air pollutant search problems. The results show that the proposed method is highly practical, accurate, and robust.


Introduction
The demand for autonomous aerial vehicles, commonly called drones, has largely increased in recent years due to their compactness and mobility, which enable them to carry out various tasks that are economically inefficient or potentially dangerous to humans.For example, it is not easy for humans to explore rugged mountain terrains, flooded areas, or air pollution regions without drones.Consequently, they have been extensively employed in various search applications, such as industrial building inspections [1,2], search and rescue operations [3][4][5], and post-disaster area exploration [6][7][8].
The search applications have one important factor in common: search efficiency.Previous research has focused on improving the stand-alone performance of each drone, such as localization accuracy, communication robustness, and various sensors [9].However, it is relatively expensive to employ a group of such high-end drones.Additionally, it takes a long time for a drone or a few drones to cover a broad search space.Thus, previous studies have tried to decompose the search space [10] or control a number of low-cost drones into several formation patterns [11,12].
Despite the previous research successfully demonstrating the feasibility of search-by-drones, there is still room for improvement.Most of all, considering time and cost, it is not the best strategy to thoroughly scan every available location in the search space.In other words, it is more effective for drones to conduct a brief survey first and successively progress to better locations by investigating the evidence of the surroundings and communicating with each other.We can easily find examples of this kind of strategy from nature, such as ants, bees, fish, birds, and so on.They show cooperative and intelligent behaviors to achieve complex goals, which is called swarm intelligence [13][14][15][16].In fact, in the area of multi-robot path planning in 2-D space, there have been several studies of approaches based on swarm intelligence [17,18].However, there is a crucial difference between mobile robots in 2-D space and drones in 3-D space.Whereas mobile robots can stand stably without any posture control and only need to be controlled by position feedback, the postures and positions of drones should be carefully controlled based on a certain dynamic model in order to hover stably.
Therefore, in this paper, a novel swarm search method for quadcopter drones is proposed by integrating the position update rule of the swarm intelligence algorithm and the motion controller using a dynamic model of the drones.In the proposed method, a swarm of more than 10 drones was employed for a search mission.The swarm was controlled by a position update mechanism which included the swarm intelligence inspired from a well-known swarm-based optimization algorithm.In addition, a dynamic model for the drones was applied to the mechanism since real-world drones, in contrast to the individuals in the optimization algorithm, have physical limitations such as maximum speed and maximum acceleration.Moreover, the overall mechanism was processed in real-time along with the movements of the drones.
To verify the effectiveness of the proposed method, the overall procedure was implemented as a simulation and repeatedly tested.As the test problems, Rosenbrock function optimization and air pollutant search problems were employed.The Rosenbrock function is a well-known benchmark function for numerical optimization.The air pollutant search problem was designed by modeling atmospheric dispersion though a Gaussian air pollutant dispersion equation.Additionally, the results of the proposed method were compared to those of a conventional grid search method.
This paper is organized as follows.Section 2 explains the proposed methodology in detail.In Section 3, the experimental results are demonstrated.Finally, Section 4 presents conclusions.

The Proposed Swarm Search Method
The main contribution of this paper is that a novel drone position update mechanism for the swarm search was designed to be specific enough to consider real-time control and the real-world environment.There are two important issues in the mechanism: the swarm intelligence and the dynamic model of the drones.The swarm intelligence calculates the next destinations of the drones at each iteration based on the particle swarm optimization algorithm, and the dynamic model determines how the drones approach the next destination based on the real-world environment.Note that, for simplicity, it is assumed that the drones are fully sharing their information, are able to predict the collisions between them, and can stop before the collision on their own.In other words, in the mechanism, the position commands of two or more drones can be the same at the same control period.
In this section, the drone position update mechanism is explained in detail, and then the entire search process is described step-by-step.

The Swarm Intelligence for the Mechanism
At each iteration of the proposed method, the update mechanism should calculate the next positions of the drones by obtaining the information of the current positions and sharing them with each other (i.e., swarm intelligence).To implement the swarm intelligence, as a backbone, a particle swarm optimization (PSO) scheme is employed [19,20].In the PSO scheme, each drone decides where to go by combining the information of its previous displacement, the personal best position it has ever experienced, and the global best position the entire swarm has ever found.If we denote the displacement, the personal best position, and the global best position at iteration t as v t , p x t , and g x t , respectively, then the next displacement of a drone is determined as: where w = 0.7 and c = 0.6 are constants and φ 1 and φ 2 are random real values uniformly distributed in [0, 1].Note that the random values are newly generated at each iteration for each particle.Obviously, the next destination x * t+1 is calculated as: However, drones in the real world cannot teleport to their destinations.Instead, they gradually approach their destinations following control commands based on their dynamic model.Therefore, the next position x n+1 at the (n + 1)-th control period is determined as: where ṽ represents the control output according to the input.This control loop is repeated until x t,n = x * t+1 , and then t increases by 1.

The Dynamic Model of the Drones for the Mechanism
The update mechanism should reflect the way in which the drones approach the next destination based on the real-world environment (i.e., the dynamic model).To establish the dynamic model, first, the kinematic model of a drone is necessary, as shown in Figure 1.From this kinematic model, the rotation matrix R for mapping the vector from the body frame to the inertial frame can be derived as where c φ and s φ represent cos(φ) and sin(φ), respectively.Then, from Newton's equation, the linear motion can be derived as where x is the position of the drone, g is the acceleration due to gravity, F D is the drag force, and T B is the thrust vector in the body frame.For simplicity, in this paper, the drag force is regarded as 0, and T B is calculated based on [21].Additionally, from Euler's equation, the angular motion can be derived as where w is the angular velocity vector, I is the inertia matrix, and τ is a vector of external torques.In this paper, I and τ are calculated based on [22,23].Finally, based on these motion equations, the final state space equations for the dynamic model can be derived as where x 1 is the velocity vector, x 2 is the acceleration vector, x 3 is the angular velocity vector, and x 4 is the angular acceleration vector.The model parameters used in this paper are listed in Table 1.As shown in Figure 2, the control system of the drone can be designed based on a well-known proportional-integral-derivative (PID) control scheme [24].Note that the control system is not for the low-level motor actuation control, but for the high-level control of the commands transmitted to each drone.In addition, in simulation, the sensor system and the environment can be replaced by the dynamic model derived above.First, the position error at the n-th control period is calculated.Then, the linear PID system yields the desired displacement ṽn+1 , and the next destination posture θ * n+1 can be calculated by multiplying a scaling matrix, since it is assumed that the drone is in a piecewise hovering state.Lastly, the angular PID system yields the posture displacement vector θn+1 , and the actuation system executes the corresponding throttle commands for the motors.As a result, the drone can gradually approach the next destination x * t+1 .

The Overall Procedure of the Swarm Search
The overall procedure of the proposed swarm search is summarized in Algorithm 1, and each step of the algorithm is explained in the following.
First, the swarm of the drones is initialized.For each drone in the swarm, the position is randomly initialized in the search space S, and the displacement is initially set to a zero vector.The objective functions are initially calculated for each drone, and the initial personal best position of each drone p x k 0 is set as the position of itself.Additionally, the initial global best position of the swarm g x 0 is set as p x 1 0 .Following this, the swarm of the drones is updated.For each drone in the swarm, the position is updated through the drone position update mechanism, as explained above.During the update process, the personal best positions and the global best position are also updated, and this update process is repeated until a termination condition is met.For example, a termination condition can be defined as a maximum number of iterations.

Experiment
In the experiment, first, the proposed swarm search method and, as a comparison, the conventional grid search method were implemented.Then, for each test problem, the objective function was designed and applied to both methods.Lastly, 100 simulations were run for each problem and method.Note that in the conventional method, it was assumed that the drones maintained a parallel formation and scanned every location of the search space unidirectionally along the axis in the order of x-, y-, and then z-axes.In addition, in the conventional method, since its position update process is independent of the objective function of the problem, the drones began the search mission at one corner of the search space and the goal was randomly set at each trial.To balance the different conditions of the two methods, in the comparison, one iteration for a drone was defined as one change of the searching direction instead of one visit to a point.Thus, for example, visiting all the grid points from (−50, 0, 0) to (50, 0, 0) along the x-axis direction was regarded as one iteration in the conventional method.
In this section, the detailed information about the environment settings is demonstrated, and then the experimental results and their analysis are provided.

Environment Settings
The proposed method was implemented as a software written in Python (Python software foundation, version 3.5.2) language with Numpy and Matplotlib libraries.The software was run on Linux OS (version 16.04) with Intel i7-6900K CPU, 128 GB DDR4 RAM, and NVIDIA Titan X Pascal GPU.The source code of the simulation engine was based on [25].The update period of the drone dynamics was set to 0.01 s and the control period was set to 0.015 s.
The search mission based on the Rosenbrock function was adopted as Test Problem 1.In this problem, the drones obtained the sensor data at their positions virtually according to the mathematical model which was based on the Rosenbrock function, and the final goal was the position at which the function value was globally minimum.The Rosenbrock function is a well-known benchmark function for numerical optimization because it is hard to find the global minimum in its search space [26,27].The following is the equation of the sensor data model: where x = [x 1 , ..., x N ] ∈ [−50.00,50.00).In this problem, N was set to 3 since the real world is three-dimensional, and the number of drones was set to 25.The corresponding global minimum could be found at the position of (25.00, 25.00, 25.00).For Test Problem 2, an air pollutant search problem was employed.The mission of this problem was to find the origin of the air pollutant at which the pollution concentration was globally maximum.
The air pollutant search problem was designed by modeling atmospheric dispersion through a Gaussian air pollutant dispersion equation [28,29].Figure 3 shows the visualization of the Gaussian air pollutant dispersion on xand z-axes, which was originally from [30].
from the source, u is the wind speed which defines the direction x.
y is the horizontal distance perpendicular to the wind direction, z is the vertical direction, H is the effective height of the plume (considering the additional height ∆h to which the hot gases rise above the physical height of the source h); i.e., H = h + ∆h, and σ y & σ z are the parameters of the normal distributions in y and z directions, usually called the dispersion coefficients in y and z directions respectively.A definition sketch of the plume dispersion is shown in figure (1).
In this equation, the ground is usually assumed to be a perfect reflector and its presence is represented by a mirror image source placed below ground.For a receptor at the ground surface, or a source located at the ground (z=0), the previous equation reduces to: (2) In analyzing the Gaussian plume model, the following assumptions are usually made: 1) Continuous emission and negligible diffusion in the direction of travel.
other parameters, the buoyancy flux, t speed at the stack top, and the friction v Gaussian plume models are a downwind distance, x>100 m, beca source concentration approaches Accordingly, many researchers impose on σ y (x) and σ z (x), or an upper limi source concentration.
The dispersion coefficients, σ, define the plume.As with the normal distrib the pollutant is assumed to be with centerline of the plume.Thus a p described as being approximately four The value of σ is determined by the ma turbulence in the atmosphere.The larg larger values of σ, will be observed when the atmosphere is unstable.The s and smaller values of σ, will be obse atmosphere is stable.
Measurements of σ have been m variety of atmospheric conditions.The of σ used in virtually all the mod published by Turner [20] (called Gifford coefficients") from data taken surroundings.Because of their or appropriate for dispersion estimates in but less so for urban areas.The g roughness and greater release of heat means that atmospheric conditions in u seldom as stable as in rural areas.
The measurements of the P coefficients were made over periods minutes and are strictly applicable only time periods..In order to calculate lo annual) average concentrations, it is ne into account the wind speed, d atmospheric stability over the entire pe The Gaussian air pollutant dispersion equation can be written as: where: x, y ∈ [−50.00,50.00), z ∈ [0.00, 50.00)From [29], σ y (x) and σ z (x) can be determined as: where was set to 10 −10 in this problem.
In this problem, the number of drones was set to 15.In addition, Q, u, and H were set to 10, 3, and 10, respectively.It was assumed that the atmosphere was in a neutral state, and, according to the classification of stability class proposed in [31,32], I y , J y , K y , I z , J z , and K z were set to −2.55, 1.04, −0.01, −3.19, 1.11, and −0.03, respectively.Based on these settings, the corresponding global maximum could be found at the position of (0.00, 0.00, 10.00).

Experimental Results
The results demonstrate the effectiveness of the proposed method through the following figures describing the trajectories of the drones with the proposed method, as well as the tables representing the statistical comparisons between the proposed and conventional methods.
Figure 4 shows the simulation of Test Problem 1 through the proposed method at iterations 1, 10, 50, and 1500.As shown in the figure, the drones successfully found the target position at which the Rosenbrock function had the minimum value within 150 iterations.Note that the drones were unaware of the function as well as its derivatives.Figure 5 shows the simulation of Test Problem 2 through the proposed method at iterations 1, 10, 20, and 30.As shown in the figure, the drones successfully found the target position at which the pollutant was being emitting within 30 iterations.Note that the drones had no knowledge of the dispersion model, and could simply measure the air pollution concentrations at their positions.The full simulation videos for Test Problems 1 and 2 are provided through the YouTube links "https://youtu.be/fIUmsO5B4CA"and "https://youtu.be/cdlCZQeN-Bo",respectively.The videos show that the drones could find the global minimum or maximum under non-convex or near non-convex environments.The videos also show that the drones could be controlled stably in real-time, and the dynamic model was well-applied considering the real-world environment.
Moreover, Table 2 shows the averages (AVGs) and standard deviations (STDs) of the number of iterations n for the proposed and conventional methods to satisfy the corresponding termination condition (TC) about error distance d err .Since the search space was based on a real-world environment, the unit of distance was meters.If we consider the size of commonly-used drones (approximately 1.0 m), the minimum grid size for the conventional grid search should be greater than 1.0 m.Based on this condition, we can approve that the drone is close enough to the goal if d err is less than 2.0, which is double the minimum grid size.Additionally, the AVGs and STDs of the final d err for the proposed and conventional methods with the limited number of iterations n limit are shown in Table 3. Smaller values of both n and d err are desirable, where n and d err imply the speed and the accuracy of the methods, respectively.As displayed in the tables, the proposed method could find the target more quickly and more accurately and robustly than the conventional method.Note that the proposed method showed a more powerful result in the real-world problem (e.g., Test Problem 2) than the virtual problem (e.g., Test Problem 1).

Conclusions
In this paper, a novel search method for a swarm of quadcopter drones was proposed.In the proposed method, inspired by the phenomena of swarms in nature, drones could effectively look for better locations by investigating the evidence from the surroundings and communicating with each other.The position update mechanism was implemented based on the particle swarm optimization algorithm (a well-known swarm-based optimization algorithm), as well as the dynamic model of the drones, which was used to take the real-world environment into account.In addition, the mechanism could be processed in real-time along with the movements of the drones.The experimental results showed that through the proposed method, the drones could find the target more quickly and accurately than by the conventional algorithm.Most importantly, the proposed method has high practical potential, considering that the drones were simulated in real-time and the dynamic model sufficiently reflected the real-world environment.

Figure 1 .
Figure 1.The physical model of a quadcopter drone.

Figure 2 .
Figure 2. The control system of a quadcopter drone.

1 =2σ 2 z g 2 = 3 Q
vertical dispersion with no reflections = e − (z−H) 2 vertical dispersion for reflection from the ground = e − (z+H) 2 2σ 2 z C = concentration of emissions, in g/m = source pollutant emission rate, in g/s u = horizontal wind velocity along the plume centerline, in m/s H = height of emission plume centerline above ground level, in m σ z = vertical standard deviation of the emission distribution, in m σ y = horizontal standard deviation of the emission distribution, in m.

Figure 4 .
Figure 4. Screenshots of the simulation of Test Problem 1 by the proposed method.

30 Figure 5 .
Figure 5. Screenshots of the simulation of Test Problem 2 by the proposed method.

Table 2 .
The averages (AVGs) and standard deviations (STDs) of the number of iterations n for the methods to satisfy the termination condition (TC).

Table 3 .
The AVGs and STDs of the error distance (d err ) for the methods with the limited number of iterations (n limit ).