# Real-Time Swarm Search Method for Real-World Quadcopter Drones
## 2 The Proposed Swarm Search Method
### The Drone Position Update Mechanism
#### 2.1.2 The Dynamic Model of the Drones for the Mechanism
## 3 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:

\[f(\mathbf{x})=\sum_{l=1}^{N-1}{[100(\frac{x_{i+1}}{25}-\frac{x_{i}^{2}}{25^{2} })^{2}+(1-\frac{x_{i}}{25})^{2}]}, \tag{8}\]

where \(\mathbf{x}=[x_{1},...,x_{N}]\in[-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. 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.