# A Location and Velocity Prediction-Assisted FANET Networking Scheme for Highly Mobile Scenarios
## 3 Location and Velocity Prediction
### Initialization and Modeling of Node Movement  
First, we generate several stochastically distributed nodes with high mobility based on the Gaussian mixture distribution. Specifically, we set a number of cluster \(K(t_{0})\) at the initial simulation time \(t_{0}\). For the \(i\)-th node belonging to the \(k\)-th cluster, marked as \(n_{k,l}\) in brief, we assume that the corresponding location obeys the three-dimensional (3-D) Gaussian distribution, i.e., \(\mathbf{p}(n_{k,l})\sim\mathcal{N}(\mathbf{n}_{k},\mathbf{\Sigma}_{k})\), where \(\mathbf{\mu}_{k}\) and \(\mathbf{\Sigma}_{k}\) represent the average location matrix and the covariance matrix, respectively. Regarding the initial movement speed \(\mathbf{v}(t_{0})\), it is assumed that all nodes proceed in a direction with the same speed \(v_{0}\) at the initial simulation time \(t_{0}\). During the proceeding process, nodes are expected to travel along the pre-defined trajectories. However, they may be influenced by external obstacles, winds and other airflow interferences, etc., presenting stochastic mobility processes consequently. To depict this feature of all network nodes, we adopt the Gauss-Markov mobility model (GMMM), which can be adapted to various levels of randomness by tuning a single parameter [8]. However, when applying this model in a network with a bunch of nodes, it assumes every node is completely independent of another. Hence, it fails to model those nodes' mobility behaviors that move together or in groups. Therefore, we combine the GMMM with a group mobility model, namely the reference point group mobility (RPGM) model [17]. Specifically, our proposal mainly contains two phases, i.e.,  
1. Generate group center nodes and model their movements based on GMMM. First, initialize the center nodes with given positions, velocities, and moving directions at the initialization time \(t_{0}\). Then, update these three parameters based on the following three equations, which are \[v(t_{k})=\alpha v(t_{k-1})+(1-\alpha)\overline{v}+\sqrt{(1-\alpha^{2})}v_{x_{k -1}},\] (1) \[\theta(t_{k})=\alpha\theta(t_{k-1})+(1-\alpha)\overline{\theta}+ \sqrt{(1-\alpha^{2})}\theta_{x_{k-1}},\] (2)  
Figure 2: The flowchart of the proposed algorithm. \[\phi(t_{k})=\alpha\phi(t_{k-1})+(1-\alpha)\overline{\phi}+\sqrt{(1-\alpha^{2})}\phi _{x_{k-1}}, \tag{3}\]  
where \(v(t_{k})\) means the moving speed at time \(t_{k}\), \(\overline{v}\) is a constant, which denotes the average speed and \(v_{x_{k-1}}\) is a random variable following the Gaussian distribution. \(\alpha\) is a parameter that controls the movement randomness. Specifically, the case of \(\alpha=0\) represents a totally random process, i.e., the Brownian motion, whereas the case of \(\alpha=1\) means a completely deterministic process. Since flying nodes are moving in 3-D Euclidean space, we use two angular variables to depict the movement direction. Variables \(\theta\) and \(\phi\) denote the elevation and azimuth angles of the speed vector, respectively. The meanings of variables \(\overline{\theta}\), \(\overline{\phi}\), \(\theta_{x_{k-1}}\), and \(\phi_{x_{k-1}}\) are similar to those of Equation (1). Finally, the location at time \(t_{k}\) can be obtained based on the previous location, speed and moving direction at time \(t_{k-1}\), which are  
\[ \begin{pmatrix}p_{x}(t_{k})\\ p_{y}(t_{k})\\ p_{z}(t_{k})\end{pmatrix} = \begin{pmatrix}p_{x}(t_{k-1})\\ p_{y}(t_{k-1})\\ p_{z}(t_{k-1})\end{pmatrix} + \begin{pmatrix}\cos\phi(t_{k-1})\sin\theta(t_{k-1}) \\ \sin\phi(t_{k-1})\sin\theta(t_{k-1})\\ \cos\theta(t_{k-1})\end{pmatrix} v(t_{k-1})\Delta t, \tag{4}\]  
where \(\Delta t\) is the updation time interval. Note that \(p_{x}\), \(p_{y}\), and \(p_{z}\) are the corresponding \(x\), \(y\) and \(z\) coordinates of the node's position, respectively. 2. As for each group center, generate some nodes around the center randomly, of which locations are assumed to obey the Gaussian distribution, and their centers are set as the mean values. Their locations and velocities are derived based on the corresponding centers.