Keywords

1 Introduction

In recent days we observe the proliferation of Unmanned Aerial Vehicles (UAVs) due to the miniaturization and cost reduction of this kind of devices. Many applications have been proposed that make use of autonomous UAVs: from video surveillance to target recognition, from static area coverage to goods delivering, from public safety systems to disaster recovery management. In most cases, UAVs are deployed in swarms: a fleet of autonomous UAVs that self-organize themselves in order to accomplish the target task. In such systems, the main challenge is the creation of a wireless communication network that enables the cooperation among the UAVs. In literature these kind of network are called Flying Ad-Hoc Networks (FANETs) [9] and they differ from the legacy Mobile Ad-Hoc Networks (MANETs) because of the flying nature of the devices involved. The challenge of using a fleet of UAVs, instead of a single one, is that vehicles need to coordinate themselves through a network that can be difficult to maintain. A key issue in most of the mentioned applications is the self-organizing capability of the flying vehicles in order to meet the Quality of Service (QoS) requirements of the user applications [5].

One of the most prominent application for self-organizing UAVs networks is the search and rescue during emergency operations [15]. In this case a fleet of UAVs is in charge of searching for survivors in the aftermath of a natural/man-made disaster and then to provide wireless connectivity to the rescue team in order to cooperate during the rescue operations. During these emergency operations, a temporary wireless communication network is created by the swarm of UAVs. The main goal of such network is to maintain the network connectivity among the whole network while guaranteeing the QoS requested by the rescue operations, e.g. end-to-end data rate to support audio/video streaming. Guaranteeing end-to-end communication QoS in a multi-hop wireless network is, in fact, still an issue for self-organizing FANETs.

Solutions for this kind of problem can use two different approaches: (i) at communication level by designing specific protocols that are able to deal with the fast movement of a UAVs network, and (ii) at mobility control level by designing a mobility control system that is able to exploit the autonomous controlled mobility of UAVs for improving the network performance. While the former approach can only adapt its parameter to the dynamics of the network, the latter approach is able to directly change the topology of the system, one of the most impact factor for the performance of a wireless communication network.

This paper focuses on the definition of a communication aware mobility control system that is able to both guaranteeing the QoS at the physical layer, i.e. guaranteeing the network connectivity among the whole network, and to enhance the QoS at higher communication layers in order to meet the end-to-end QoS. For these issues, we rely on the well known nature-inspired algorithm of the virtual spring forces that will enable the scenario exploration while maintaining the mesh connectivity. We first describe the algorithm that is capable of guaranteeing the network connectivity and then we improve this method to enhance the performance for the end-to-end communications.

The rest of the paper is structured as follows. In Sect. 2 we review the related literature in emergency communications and in the field of communication aware mobility systems. In Sect. 3 we introduce the system model and we describe the system we use for guaranteeing the QoS at both physical layer and higher layer. In Sect. 4, we analyze the proposed system through extensive simulations. Finally, in Sect. 5, we draw the conclusions.

2 Related Works

The use of UAVs have gained the attention of the public safety systems due to self-capability and the fast deployment especially for emergency and dangerous scenarios [10]. These vehicles, in fact, can drastically reduce the human risk by avoiding the direct participation of human operators. Due to the 3-dimensional nature of their movement and the possibility of line-of-sight link connections inside the aerial network, the UAVs wireless communication networks has become a hot research topic for temporary and emergency communication networks [15].

However, given the complexity of the UAVs movement and the high velocity that these vehicles can reach, different issues must be addressed in order to further exploit the capability of these kind of networks [9]. One key issue of a UAVs wireless network is to maintain and guarantee the connectivity of the network, i.e., trying to keep all the UAVs connected. In order to achieve this goal, there exist two main possibilities: using a mobility-aware communication protocol or a communication-aware mobility control system. The aim of the first strategy is to use network protocols that are able to foresee/react to the nodes movement, and so to a possible change of the network topology. Instead, the second strategy aims to control the motion of the nodes in order to preserve the network constraints.

In the first case, to cope with the frequent variability of the network topology, several solutions consider the possibility to redefine the routing tables by including directly inside the routing algorithms some kind of mobility-aware information. For instance, authors of [13] present P-OLSR, an enhanced version of the OLSR routing protocol [2], where the link-state index also takes into account the nodes position and their speed. Another approach, proposed in [17], considers long term link-stability indexes, since nodes disseminate their link stability and load indexes through the network. In the context of reactive routing protocols, the idea is to exploit Route Request (RREQ) message in the route creation operations, in order to avoid routes that are considered less stable [1].

In the second case, the UAVs mobility control system deals with the communication constraints. Typically, in these research works, the network communication ability of UAV is modeled with a fixed radius disk area. Communication between two nodes exists if and only if the two vehicles involved are respectively in the communication radius of each others. Several solutions have been deployed to guarantee the communication between nodes by guiding their movements, like for instance [16], where vehicles act as repelling and attractive forces, i.e., keeping a minimum safe-distance to avoid collision, and not going beyond a maximum distance to avoid disconnections. Of course, this strategy can be made more accurate if the communication ability is modeled keeping into account also some communication metrics, like the link budget [15], or the Signal-to-Noise-and-Interference-Ratio (SNIR) [4], or the bit-error-ratio, instead of considering only fixed and constant values for the vehicles inter-distances.

Another important aspect in the design of UAV networks is the possibility to guarantee service differentiation with Quality of Service (QoS), i.e., that particular set of features that lets the system manage multiple kinds of communication flows while enabling the deployment of reliable services. Also in this case, in order to implement the QoS, multiple solutions have been deployed through the modification or the adaptation of the communication protocols involved. For instance, a specific network transport layer introduced by [14] is used by a robust routing protocol to provide a minimum amount of data to each node.

Dealing with high mobility in an unmanned vehicles network, an efficient routing architecture is required in order to face the frequent topology change of the network. For this reason, geographical routing can be considered a good solution, since it can define route paths basing on the positions of the destination nodes. Hence, there is no need for the network to maintain all the route information. Of course, it requires a good accuracy and reliability of the positions information, whose knowledge and management cannot be considered a trivial problem [8]. One of the most common scenario where QoS is required in a UAVs network is the video streaming application, like in the case of monitoring or surveillance. Despite the huge number of works in the video streaming use case, only few works focus in the video streaming aspects in an autonomous unmanned vehicles network, especially concerning also the Quality of Experience (QoE) of the video. Some adaptive video streaming techniques have been designed basing on the transmission quality estimation [7]. This is computed taking into account the amount and the delay of the acknowledgments received for the video frames transmitted. Instead, in [12] a different approach based on the routing level is presented. In particular, the authors designed a cross-layer protocol that enhances the video transmission flows by using a geographical routing protocol combined with a path quality estimator. This lets the protocol foresee the quality deterioration and react by creating a new path before the link expires and so avoiding a video stop during the streaming.

In this paper we extend the work done in [15] by introducing a new method to improve the emergency wireless communication links and, hence, giving the rescue team a reliable and more effective communications network during the emergency operations.

3 System Model

In this Section we introduce the system model and the terminology we use throughout the paper. Let \(U = \{u_1, u_2, \dots , u_{N_{UAV}}\}\) be the set of the available UAVs. Each UAV \(u_i \in U\) has, at each time instant, a specific position \(p_i = \langle x_i, y_i \rangle \) defined in Euclidean space. We assume a limited scenario of dimension \(S_{maxX} \times S_{maxY}\). During an emergency, all the UAVs \(u_i \in U\) are deployed into the scenario by the public safety organizations. Let PS be the static wireless point managed by the public safety team. The UAVs are then released in the emergency scenario starting from the station PS. All the UAVs have the capability of adjusting their position and moving autonomously in the scenario. Without loss of generality, we assume a connected communication network among the UAVs during the deployment operations. We assume that each UAV is equipped with a GPS sensor and an on-board camera that is able to generate a video streaming of the emergency scenario. The generated video streaming is then sent toward the public safety station PS through the UAVs multi-hop wireless network. The UAVs organize themselves in a multi-hop mesh network where an UAV \(u_j \in Neigh(u_i)\) if there is a 1-hop direct connection between UAV \(u_i\) and UAV \(u_j\).

The objective of this paper is to formulate a distributed mobility model that is able to maintain the connectivity of the UAVs mesh network during the whole network lifetime and provide a QoS on the end-to-end network performance.

3.1 Distributed Mobility Model

In this Section we describe the distributed mobility model used by each UAV for the autonomous movements. At each time instant, on each UAV \(u_i\), \(n_i = |Neigh(u_i)|\) multiple forces act on it, i.e. \(\overrightarrow{F}_{i,1}\), \(\overrightarrow{F}_{i,2}\), \(\dots \), \(\overrightarrow{F}_{i,n_i}\), where the sum of these forces defines the next position that the UAV \(u_i\) will try to reach. More formally, the total force \(\overrightarrow{F}_i\) that is acting on the UAV \(u_i\) is given by the sum of all the acting forces:

$$\begin{aligned} \overrightarrow{F}_i = \sum _{u_j \in Neigh(u_i)} \overrightarrow{F}_{i \leftarrow j} \end{aligned}$$
(1)

We modeled the acting forces \(\overrightarrow{F}_{i \leftarrow j}\) as virtual spring forces, i.e. forces that act as springs. We use the well know Hooke’s law as force definition:

$$\begin{aligned} \overrightarrow{F} = - k \cdot \overrightarrow{x} \end{aligned}$$
(2)

where \(\overrightarrow{x}\) is the displacement of the virtual spring from its relaxed position \(l_0\). The constant k defines the stiffness of the spring, i.e. the responsiveness at the spring displacement. We keep the value of k as a constant system parameter; we plan to further investigate such parameter as future work. We modeled the relaxed position \(l_0\) with two different methods:

  • \(Algo_{low}\): \(l_0 = l_{0, low}\). Here, \(l_{0, low}\) is a system variable that is in charge of guaranteeing the network connectivity among the UAVs network. In \(Algo_{low}\) we let \(l_0\) be equal for all the forces \(\overrightarrow{F}_{i \leftarrow j} \doteq \overrightarrow{F}^{low}_{i \leftarrow j}\), \(\forall u_i, u_j \in U\) (described in Sect. 3.2).

  • \(Algo_{high}\): here \(l_0\) is no more constant among all the forces \(\overrightarrow{F}_{i \leftarrow j} \doteq \overrightarrow{F}^{high}_{i \leftarrow j}\), but it is a function of \(l_{0, low}\) and of the communication network conditions. In this case the spring relaxed position will modify each communication link in order to meet the higher levels QoS (described in Sect. 3.3).

3.2 Physical Layer Quality of Service

We introduced the spring forces to enable the UAVs network to maximize the coverage of the scenario while maintaining the UAVs communication network connected. In this Section we describe in more details the \(Algo_{low}\) where the relaxed position of each virtual spring force is: \(l_0 = l_{0, low}\).

We derived this technique from [3, 15], where the virtual spring force acting on the UAVs \(u_i\) and generated from the UAV \(u_j\), located respectively in positions \(p_i\) and \(p_j\), is defines as follow:

$$\begin{aligned} \overrightarrow{F}_{i \leftarrow j}^{low} = - k \cdot \varDelta l_{i \leftarrow j}(l_{0, low}) \cdot \frac{\overrightarrow{(p_j - p_i)}}{|\overrightarrow{(p_j - p_i)}|} \end{aligned}$$
(3)

where k is the stiffness characterizing the spring forces and \(\varDelta l_{i \leftarrow j}(l_0)\) is the spring displacement between the actual length of the spring, \(l_{i \leftarrow j}\), and the relaxed, or natural, length of the spring \(l_0\), that is defined by \(l_{0,low}\) in \(Algo_{low}\).

For the definition of the \(\overrightarrow{F}_{i \leftarrow j}^{low}\) spring force length we used the link budget (LB) index that UAV \(u_i\) receive from the UAV \(u_j\). The LB index, or fading margin [11], captures the physical layer QoS because it defines the reliability of the communication link and indicates whether it is going to break or not. Here, \(l_0 = l_{0, low}\) is the user defined parameter that indicates the requested QoS at physical layer and \(l_{i \leftarrow j}\) defines the actual value of the LB index. The \(l_{i \leftarrow j}\) index is evaluated on UAV \(u_i\) after receiving a message from UAV \(u_j\) and is calculated as follow:

$$\begin{aligned} l_{i \leftarrow j} = P_{i \leftarrow j}^{rx} - R_{i}^{thr} \end{aligned}$$
(4)

Here, \(P_{i \leftarrow j}^{rx}\) is the power received by UAV \(u_i\) from a message sent by UAV \(u_j\), while \(R_{i}^{thr}\) is the radio receiver threshold that indicated the minimum amount of energy that a receiver device needs in order to be able to properly receive a message. Without loss of generality, we assume homogeneous characteristic of the radio receiver, i.e. \(\forall u_i \in U\), \(R_{i}^{thr} = R^{thr}\). Finally, the spring displacement \(\varDelta l_{i \leftarrow j}(l_0)\) is calculated as follow:

$$\begin{aligned} \varDelta l_{i \leftarrow j}(l_0) = {\left\{ \begin{array}{ll} 1 - \root \alpha \of {\frac{l_0}{l_{i \leftarrow j}}} &{} \text {if } l_{i \leftarrow j} < l_0 \\ \root \alpha \of {\frac{l_{i \leftarrow j}}{l_0}} - 1 &{} \text {if } l_{i \leftarrow j} > l_0 \\ 0 &{} \text {otherwise} \end{array}\right. } \end{aligned}$$
(5)

where \(\alpha \) is the propagation decay exponent that describes the propagation characteristic of the environment. Figure 1 shows the \(\varDelta l_{i \leftarrow j}(l_0)\) value for different environment characteristics.

Fig. 1.
figure 1

The displacement \(\varDelta l_{i \leftarrow j}\) for different values of \(\alpha \) as a function of \(l_{i \leftarrow j}\). Here, \(l_0\) is set to 15 dBm.

We can notice from Eqs. 3 and 5 that the force \(\overrightarrow{F}_{i \leftarrow j}^{low}\) is repulsive against the UAV \(u_j\) when the received message is too strong (\(l_{i \leftarrow j} > l_0\)) and is attractive if the calculated LB index is too low (\(l_{i \leftarrow j} < l_0\)).

In order to execute the \(Algo_{low}\) method, each UAV \(u_i \in U\), every \(t_{beacon}\) seconds, broadcasts a \(BEACON_{low}\) message to inform the neighborhood of its position. The beacon message sent by the UAV \(u_i\) is formed as follow:

$$\begin{aligned} BEACON_{low} = \langle ID_i, p_i \rangle \end{aligned}$$
(6)

where \(ID_i\) is the identifier of the UAV \(u_i\).

3.3 Higher Layer Quality of Service

The forces defined in \(Algo_{low}\) and introduced in the previous Sect. 3.2 are able to guarantee only a low level of QoS, i.e. they are able to maintain the UAV network connected and to keep a user-defined LB value on each communication link. However, these forces are not able to guarantee any application layer QoS, like throughput, packet delivery ratio (PDR), end-to-end delay, etc. For this reason, in this paper, we propose a model that is able to exploit the autonomous vehicle mobility to improve the aforementioned QoS indexes.

We saw in previous Sect. 3.2 that in \(Algo_{low}\), the value of the reference link budget used as natural spring length \(l_0\) is constant and defined by the system variable \(l_{0, low}\). This method, however, manages all the communication links in the same way, without taking in consideration of the network condition of each particular link. In this Section we describe the \(Algo_{high}\) that is capable of exploit the difference between each communication link improving the network performance. The calculus of the spring forces is similar to the Eq. 3:

$$\begin{aligned} \overrightarrow{F}_{i \leftarrow j}^{high} = - k \cdot \varDelta l_{i \leftarrow j}(l^{i \leftarrow j}_{0, high}) \cdot \frac{\overrightarrow{(p_j - p_i)}}{|\overrightarrow{(p_j - p_i)}|} \end{aligned}$$
(7)

with the only difference in the definition of the spring relaxed position that is no more the constant \(l_{0,low}\), but the value \(l^{i \leftarrow j}_{0,high}\) that is different for each link \(i \leftarrow j\). Before defining the \(l^{i \leftarrow j}_{0,high}\) value, we need to describe the network variables used in this context. In Eq. 4 we saw how an UAV \(u_i\) is able to easily calculate the link budget \(l_{i \leftarrow j}\) of the link \(i \leftarrow j\). We can also assume that the UAV \(u_i\) is able to estimate the packet error rate (PER) \(per_{i \leftarrow j}\) on the link \(i \leftarrow j\) [6]. While the link budget is useful for the connectivity issue since it indicates if a specific link is going to break, the PER index gives more information about the link state specifying the error probability on the link.

Moreover, we modify the beacon message by including more network information. More specifically the \(BEACON_{high}\) message is formed as follow:

$$\begin{aligned} BEACON_{high} = \langle ID_i, p_i, list_i(\langle u_k, data_{k \leftarrow i} \rangle ) \rangle \end{aligned}$$
(8)

where \(list_i(\langle u_k, data_{k \leftarrow i} \rangle )\), with \(u_k \in Neigh(u_i)\), is the list of the \(u_i\)’s neighbors toward which the node \(u_i\) is generating data at \(data_{k \leftarrow i} [MB/s]\). Here \(u_k\) is not the destination node of the packets, but the next-hop node in a multi-hop routing algorithm. Furthermore, the generated \(data_{k \leftarrow i}\) includes both the packet generated by \(u_i\) and the data that the node \(u_i\) is forwarding in the multi-hop communication network. We assume that the UAV \(u_i\) will include its neighbor \(u_k\) in the \(list_i\) only if \(data_{k \leftarrow i} > 0\).

Let \(data_{Neigh(u_i)\setminus \{k\} \leftarrow i}\) be the sum of all the generating data that the UAV \(u_i\) has to send to its neighbors except for the UAV \(u_k\). We can now define the \(l^{i \leftarrow j}_{0, high}\). For each UAV \(u_j \in Neigh(u_i)\) we have:

$$\begin{aligned} l^{i \leftarrow j}_{0, high} = {\left\{ \begin{array}{ll} inc^{i \leftarrow j}_{LB} &{} \text {if } data_{i \leftarrow j}> 0\; \text { OR }\; data_{j \leftarrow i}> 0 \\ dec^{i \leftarrow j}_{LB} &{} \text {if } data_{Neigh(u_j)\setminus \{i\} \leftarrow j}> 0\; \text { AND }\; data_{Neigh(u_i)\setminus \{j\} \leftarrow i} > 0 \\ l_{0, low} &{} \text {otherwise} \end{array}\right. } \end{aligned}$$
(9)

Essentially, the \(Algo_{high}\) will increase the reference link budget if \(u_i\) is transmitting data towards \(u_j\), or vice versa, while it will decrease the reference link budget if \(u_i\) and \(u_j\) is transmitting data towards any other UAV. If both \(u_i\) and \(u_j\) are not transmitting the \(Algo_{high}\) will behave like \(Algo_{low}\). The functions \(inc^{i \leftarrow j}_{LB}\) and \(dec^{i \leftarrow j}_{LB}\) are defined as follow:

$$\begin{aligned} inc^{i \leftarrow j}_{LB} = \left( \left( l^{max}_{0, high} - l_{0, low} \right) \cdot \left( 1 - \frac{1}{e^{data_{i \leftrightarrow j} \cdot per_{i \leftarrow j}}} \right) \right) + l_{0, low} \end{aligned}$$
(10)
$$\begin{aligned} dec^{i \leftarrow j}_{LB} = \left( \left( l_{0, high} - l^{min}_{0, low} \right) \cdot \frac{1}{e^{data_{i \nleftrightarrow j} \cdot per_{i \leftarrow j}}} \right) + l^{min}_{0, high} \end{aligned}$$
(11)

where \(l^{min}_{0, low}\) and \(l^{max}_{0, high}\) are user defined variable, such that \(l^{min}_{0, low} \le l_{0, low} \le l^{max}_{0, high}\). Furthermore, we need to define \(data_{i \leftrightarrow j} = max(data_{i \leftarrow j}, data_{j \leftarrow i})\) and \(data_{i \nleftrightarrow j} = max (data_{Neigh(u_j)\setminus \{i\} \leftarrow j}, data_{Neigh(u_i)\setminus \{j\} \leftarrow i})\). In Fig. 2(a) and (b) we draw the \(inc^{i \leftarrow j}_{LB}\) and \(dec^{i \leftarrow j}_{LB}\) functions, respectively. In Fig. 2(a) we see that the value increases asymptotically till the value of \(l^{max}_{0, high}\). We notice also the effect of the \(per_{i \leftarrow j}\) index on the resulting reference link budget: the less the \(per_{i \leftarrow j}\) is, the faster the reference link budget increase. In this way a poor quality link will be recovered faster due to an higher reference link budget. On the other side, if the link has already a good quality, there is no need for increasing the reference link budget. In Fig. 2(b) is shown the \(dec^{i \leftarrow j}_{LB}\) function. In this case the UAVs \(u_i\) and \(u_j\) have data to transmit, but no data packet for each other and hence we need to reduce the interference among them. In order to do this, we reduce the reference link budget that will distance the two UAVs. Also in this case, if the link quality index is poor (high \(per_{i \leftarrow j}\)), we move the UAVs farther away to reduce the interference.

Fig. 2.
figure 2

Example of \(inc^{i \leftarrow j}_{LB}\) (a) and \(dec^{i \leftarrow j}_{LB}\) (b) with \(l_{0, low} = 12\,\mathrm{dBm}\), \(l^{min}_{0, low} = 4\,\mathrm{dBm}\) and \(l^{max}_{0, high}=20\,\mathrm{dBm}\) for different value of \(per_{i \leftarrow j}\).

Fig. 3.
figure 3

Example of \(Algo_{high}\) in action. In this scenario UAVs \(u_1\) and \(u_4\) are streaming the video toward the station PS.

In Fig. 3 we show a possible scenario with \(N_{UAV} = 8\). In this example scenario we have that the UAV \(u_1\) and \(u_4\) are generating the streaming video for the PS station. The data flow generated by \(u_1\) is passed through \(u_2\) and \(u_3\), while the data flow generated by \(u_4\) is passed through \(u_5\). Here we can appreciate how the \(Algo_{high}\) works: since there is a flow along the path \(u_1 \rightarrow u_2 \rightarrow u_3 \rightarrow PS\), the communication link belonging to this path becomes shorter due to the increment of the reference link budget (see Eq. 9). The same happen to the path \(u_4 \rightarrow u_5 \rightarrow PS\). On the other side, the links between these two data flow paths (\(u_1 \leftrightarrow u_4\), \(u_2 \leftrightarrow u_4\), \(u_2 \leftrightarrow u_5\), \(u_3 \leftrightarrow u_5\)), become longer to reduce the interference among the them. The UAVs \(u_6, u_7, u_8\) are not affected by these data flows and their links length remain constant.

4 Simulation Results

In this Section we evaluate the system model presented previously through a simulation study. To this purpose, we modeled in OMNeT++ the scenario introduced in Sect. 3. We considered \(1000m \times 1000m\) map where we placed the public safety wireless point station PS at the center of this scenario. Unless specified otherwise, we use these values for the system parameters: \(l_{0, low} = 12\,\mathrm{dBm}\), \(l^{min}_{0, low} = 4\,\mathrm{dBm}\), \(l^{max}_{0, low} = 20\,\mathrm{dBm}\), \(k = 50\), \(N_{UAV} = 14\) and \(t_{beacon} = 0.5\,\mathrm{s}\).

We analyze the throughput and the end-to-end delay indexes for the simulated scenarios. These indexes, in fact, reveal if the system is capable of supporting the video streaming on a multi-hop UAVs wireless network. We compare both the algorithms described in Sect. 3:

  • \(Algo_{low}\) where the natural spring length of the forces \(l_0\) is constant and set to \(l_{0,low}\);

  • \(Algo_{high}\) where the natural spring length of the forces \(l_0\) is parametric to the wireless link characteristic between each pair of UAVs \(u_i\), \(u_j\).

At the beginning of each simulation test, we release the set U of UAVs close to the station PS, assuring an initial connectivity of the wireless mesh. During the initialization phase of 60 s, we let the UAVs move without generating any video stream. In this way, the UAVs will cover the emergency scenario forming the wireless covering mesh. After this initialization phase, each UAV, with probability \(p_S\), will generate a video streaming flow of 400 kB/s toward the station PS.

Fig. 4.
figure 4

The throughput (a) and the end-to-end delay (b) indexes comparing \(Algo_{high}\) and \(Algo_{low}\).

In Fig. 4(a) we can notice the improvement that \(Algo_{high}\) has over the \(Algo_{low}\). Here we set \(p_S = 0.75\), i.e. each node is transmitting the video stream with probability 0.75. We can notice how, in the first part of the graph (simulation time 70 s to 100 s), the two algorithms behave almost the same. However, as soon as the UAVs using the \(Algo_{high}\) activate the adaptive value of \(l_0\), the performance of the system improve meaningfully. On the other side, the throughput index for the \(Algo_{low}\) method, remains almost stable during the time. Figure 4(b) shows the average end-to-end delay index of the network varying the transmitting probability \(p_S\) of the UAVs. We can notice that at low traffic load, the difference between the two algorithms is neglectable. However, when more UAVs start the video streaming, the \(Algo_{low}\) is no more able to support the streaming. On the other side, we have that the \(Algo_{high}\) that is capable of halving the end-to-end delay, giving hence more support for real-time video streaming. In Fig. 5(a) and (b) we show the network performance changing the number of deployed UAVs. As we can see, the \(Algo_{high}\) outperforms always \(Algo_{low}\) in both the throughput and the end-to-end delay indexes. In Fig. 5(a) we have that the throughput decrease while increasing \(N_{UAV}\) because of the multiple generation of streaming data and hence the number of packet collisions in the wireless channel. In Fig. 5(b) we notice that in \(Algo_{high}\) the end-to-end delay remains approximately half of the \(Algo_{low}\).

Fig. 5.
figure 5

The throughput (Fig. 4(a)) and the end-to-end delay (Fig. 4(b)) indexes comparing \(Algo_{high}\) and \(Algo_{low}\) varying the number of UAVs.

Fig. 6.
figure 6

The throughput and the end-to-end delay indexes comparing \(Algo_{high}\) and \(Algo_{low}\) using GPSR as routing protocol.

We want to point out that the proposed mobility algorithm \(Alogo_{high}\) is agnostic on the routing protocol that is being used, because the only thing that the algorithm needs to know is the next-hop node in the multi-hop wireless network. In the previous settings we used AODV as routing protocol. In Fig. 6 we changed the routing algorithm with the GPSR protocol. As we can see from the figure, also in this case there is a significant improvement in both the throughput and the end-to-end delay performance indexes.

5 Conclusions

In this paper, we addressed the problem of improving the end-to-end QoS in a flying ad-hoc network using a distributed mobility control system that is able to exploit the autonomous mobility in order to increase the UAVs network performance. We proposed nature-inspired distributed algorithm that addresses two different issues: (i) it guarantees the flying communication network connectivity by using virtual spring forces based on the communication links quality, and (ii) it improves the end-to-end QoS by adapting the virtual spring forces to the actual characteristics of the wireless link.

We deployed the fleet of UAVs in an emergency scenario in which the vehicles are able to stream the video recorded directly from the field towards the public safety team.

We showed through extensive simulation the QoS improvement that the network gains by using the proposed method. The results pointed out that maintaining the network connectivity is not enough to support the rescue operation during an emergency scenario. The communication network, in fact, needs of additional improvement to be capable of supporting the emergency operations, especially for real-time data streams. Our work goes exactly in this direction by exploiting the self-organizing capability of the UAVs network.