A GPS-Free Flocking Model for Aerial Mesh Deployments in Disaster-Recovery Scenarios

In the aftermath of a large-scale emergency, Unmanned Aerial Vehicles (UAVs) can play a key role as mobile communication systems supporting rescue operations on the ground. At the same time, the deployment of autonomous UAV swarms still poses severe challenges in terms of distributed mobility, swarm connectivity and mesh networking. To this purpose, we propose ELAPSE (aErial LocAl Positioning System for Emergency), a novel, distributed framework for aerial mesh deployment that supports discovery and multi-hop connectivity among rescue personnel and emergency requesters. ELAPSE integrates components of swarm mobility, positioning and Quality-of-Service (QoS) support, while targeting UAV devices at different levels of hardware complexity. Three contributions are provided in this study. First, we present a novel, bio-inspired swarm mobility algorithm which natively addresses QoS-based aerial mesh connectivity, coverage of the ground nodes and UAV collision avoidance through the abstraction of virtual springs. Second, we investigates its implementation when geo-location capabilities are not available: to this aim, we propose local-based and cooperative-based techniques through which each UAV can estimate the position of its neighbours, and hence correctly adjust its direction and speed. Third, we analyze the feasibility of the ELAPSE framework through a twofold evaluation: i.e. a large-scale OMNeT ++ simulation showing the effectiveness of the distributed mesh formation and localization techniques, and a small-case ground robotic testbed demonstrating the impact of QoS mechanisms on the system operations.


I. INTRODUCTION
Unmanned aerial Vehicles (UAVs) are expected to play a key role in next generation mobile systems, thanks to the their integrated and advanced capabilities of perception, autonomous mobility and wireless communications.At present, the UAV market is estimated at USD 19.3 billion in 2019 and 45.6 by 2025, 1 with more than 2 million devices shipped in US in 2020 [1].Most of the existing use-cases is related to the Internet of Things (IoT) and involves the usage of a single UAV as mobile sensor or as mobile sink, i.e the UAV produces sensing measurements or gather them from wireless ground sensors.The creation and distributed The associate editor coordinating the review of this manuscript and approving it for publication was Bo Zhang .
1 Source: https://www.marketsandmarkets.com/Market-Reports/unmanned-aerial-vehicles-uav-market-662.htmlmanagement of aerial mesh and ad hoc networks (FANETs) composed of UAV swarms represent the next research challenge [2]; novel applications enabled by the distributed coordination among UAVs include aerial video-surveillance and wireless coverage of remote or hostile environments.In this paper, we investigate the usage of UAV swarms for the coverage of a disaster, infrastructure-less area, by enabling multihop connectivity among isolated, ground devices.

A. MOTIVATIONS
In the aftermath of a calamity, existing Internet providers might often be unavailable due to infrastructural damages or due to excessive traffic loads.Consequently, the usage of UAVs as mobile base stations has been proposed in order to provide emergency services and support opportunistic communications among survivors and rescue teams.Two complementary research issues have been addressed so far.On the one hand, the performance of Air to Ground (AtG) and multi-hop Air-to-Air (AtA) links has been assessed through small-case testbeds, by considering the impact of FANETspecific parameters like the 3D mobility, the antenna models, and the UAV speed [3].On the other hand, several studies have investigated topology creation and management of UAV swarms for the dynamic wireless coverage of a target area [4], [5].This latter can be considered a multi-objective optimization problem involving at least three main issues [6]: (i) connectivity, i.e. the need of preserving the wireless links among the UAVs under dynamic channel conditions and autonomous mobility; (ii) coverage, i.e. the need of maximizing the number of ground devices connected to the aerial mesh and (iii) collision avoidance, i.e. the need of ensuring a safe distance among the UAVs.Given the dynamic nature of the environment, and excluding few preliminary works on UAV-based Software Defined Networks (SDNs) [7], most of the studies on multi-UAV coverage focuses on distributed, natureinspired approach, which takes into account the three flocking components (i.e.separation, aggregation and aligment) [6].Computational swarm intelligence mechanisms, like the PSO and genetic algorithms, have been investigated among others by [8]- [10] while [11], [28] have proposed the application of well-known robotic mobility models on FANETs.At the same time, few works have taken into account the Quality of Service (QoS) of wireless links between the ground nodes and the UAVs, that is a key requirement for applications with strict requirements (e.g.multimedia communications).Similarly, another challenge is constituted by the localization: the GPS sensor is generally assumed on board of the UAVs while few studies consider the case of poor GPS coverage or the impact of noisy localization data on the swarm creation and management [4], [13].

B. CONTRIBUTIONS
In this paper, we consider a generic emergency scenario composed of isolated, mobile ground nodes (MGNs) belonging to two different categories -rescue personnel (RP) and help requesters (HR)-, and we investigate the deployment of distributed aerial mesh networks aimed to provide wireless coverage of the target area and multi-hop connectivity between RP and HR nodes.To this aim, we propose ELAPSE (aErial LocAl Positioning System for Emergency), a distributed UAV swarm architecture that addresses mobilityrelated (e.g.aerial connectivity), task-related (e.g.ground coverage) and networking-related functionalities.Differently from the literature, the ELAPSE framework takes into account the QoS on the AtA and AtG links both during the network formation and maintenance, in order to dynamically meet the application requirements of the RPs and the HRs.In addition, the ELAPSE framework does not rely on geo-localization capabilities of the aerial/ground devices; hence, it can deployed on mini-drones (not provided with the GPS sensor) or it can support aerial mesh formation and mobility on environments not covered by the GPS (e.g.indoor scenarios).More in details, three main contributions are described in this paper: • We extend the QoS-aware UAV swarm mobility model in [28] for disaster environments: the distributed algorithm aims to maximize the number of connected MGNs, while guaranteeing the quality of the AtA and AtG links.In addition, it ensures mesh connectivity and collision avoidance among the UAVs.• We validate the proposed solutions through a twofold evaluation.We consider large-scale OMNeT++ simulations of the ELAPSE framework, and measure its performance in terms of localization accuracy, and coverage under varying node density conditions.In addition, we validate the effectiveness of the QoS-aware mechanism on a small ground robotic test-bed.
The rest of the paper is structured as follows.Section II reviews the existing studies on UAV mobility algorithms and coverage techniques.Section III introduces the system model and formulates the optimization problem.Section IV describes the swarm mobility model based on the virtual spring abstraction.Section V discusses the GPS-free, distributed positioning techniques that allow the implementation of the mobility model.Section VI shows the performance of the ELAPSE framework on simulated and real-world scenarios.Finally, Section VII draws the conclusions and discusses the future works.

II. RELATED WORKS
The optimal placement of autonomous nodes for the coverage of a target area can be considered a challenging yet well investigated research area since the first works on mobile sensor networks [14].The Voronoi diagrams represents a straightforward approach to address the coverage problem with stationary nodes [15]: in [16], the authors use Voronoi diagrams to discover the coverage holes and then propose three movement-assisted protocols aimed to move sensors from densely deployed areas to sparsely deployed ones.The framework has been further improved in [17] by introducing the Laguerre geometry: the authors demonstrate that the algorithm is convergent, i.e. it produces stable allocations under variable sensor densities.Other approaches leverage adaptive, nature-inspired solutions to cope with the presence of obstacles and time-varying communication conditions: this is the case of the Virtual Force Algorithm (VFA) proposed in [18], and of the Potential Fields Algorithm (PFA) in [19].
In both cases, sensors are modeled as virtual particles subject to virtual forces, which can be attractive (e.g.towards a coverage hole) or repulsive (e.g.towards an obstacle).The FANET scenario poses severe novel challenges compared to ground autonomous networks, such as the limited autonomy of the UAVs and the impact of 3D mobility on communication and coordination aspects [2].The fundamentals of aerial mesh communication are investigated in [20], wherein the authors compute theoretical bounds for capacity, coverage and connectivity of wireless nodes in 3D spaces.Given the high number of parameters involved for the optimal topology management in FANETs, swarm computational techniques such as Genetic Algorithms (GA) and Particle Swarm Optimization (PSO) have been largely adopted in the literature.More in details, the study in [5] proposes the utilization of UAVs as aerial mobile base stations during emergency situations: GA techniques are used to compute the optimal placement of the UAVs covering a set of Point of Interests (POIs) while minimizing the number of the UAVs involved.
In [8] and [21] the authors investigate the persistent coverage problem, i.e. how to increase the service time of an aerial mesh exploiting the presence of charging stations on the ground: the optimization problem is formulated by means of distributed PSO techniques in [8] and of game theory in [21].UAV group mobility based on particle swarming is investigated also in [6], [9] and [10].The three components of the flocking behaviour (i.e.separation, aggregation and aligment) are modeled in [6].In [9], a PSO-based topology management algorithm is proposed in order to adjust the position of UAV relays, so that the FANET is always connected to Ground Control Stations (GCSs).Three PSO-based swarm mobility algorithms are proposed in [10] for UAVs performing reconnaissance missions over targets in hostile environments.Other distributed bio-inspired techniques for swarm creation and management are proposed -among others-by [22] and [23].Glowworm Swarm Optimization (GSO) is used in [22] to cluster the UAVs on the basis of luciferin levels and of their residual energy.The cluster-breathing mechanism in [23] allows an UAV swarm to be connected, by using the RSS wireless signal as metric for the steering behaviour.Beside aerial coverage, the goal of our study is to combine swarm mobility with distributed UAV localization techniques: to this purpose, the most similar works are [4], [13] and [11].In [4], the PSO technique is used to estimate the unknown positions of neighbour UAVs; the location values are then used to group the UAVs into clusters, and to select the Cluster Head (CH) nodes based on intra-and inter-cluster distances.In the Boid-based flocking model proposed in [13], the Wi-Fi RSS is used to estimate the distance among UAVs, and the information is spread among nodes via a distributed dissemination protocol.Finally, the study [11] proposes the PSO-S algorithm which sequentially applies the popular PSO and VFA techniques, and shows the benefits of the integrated framework.
Compared to the works reviewed so far, our solution introduces the following novelties: • We extend the coverage problem by considering the Quality of Service (QoS) of the communication links among UAVs and among UAVs and ground nodes; • We support swarm operations also in case the UAVs are not provided with geo-location capabilities; • We test the proposed solutions through large-scale simulations and a small-case testbed; for the latter, few experimental validations of robotic swarm algorithms have been proposed so far.Localization errors are introduced in Section V.Each help requests h i ∈ H is provided with a mobile app, through which it generates a data rate equal to D(h i ) bps; the destination of the flow originated by h i ∈ H is any r j ∈ R available in the scenario.We abstract from the specific content of the communication between h i and r j , which might include any emergency-related information e.g.current position, video, audio, etc, that might support the rescue operations.The goal of the ELAPSE framework is to enable the communication between help requesters and rescue personnel via multi-hop aerial links, by maximizing the number of data-flows which are currently served.To this aim, the optimal placement of the UAVs must be determined.We modeled the system as a complete graph G = {N , E}, where N = U ∪ G is the set of nodes and E = { n i , n j , . . .} is the set of edges.Let C k (n i , n j ) the capacity at time slot t k of the wireless AtG/AtA link between nodes n i , n j ∈ N : the value of C k (n i , n j ) depends on the wireless propagation model that is introduced later in Section III-C.By construction, C k (n i , n j ) = 0, ∀n i , n j ∈ G, i.e. no direct communication between ground nodes is possible.We model the communication network topology through the following state variables:

III. SYSTEM MODEL
• e k (n i , n j ) indicates whether nodes n i , n j ∈ N are connected by a wireless link at time slot t k , i.e.C k (n i , n j ) > 0: in such case, e k (n i , n j ) = 1, e k (n i , n j ) = 0 otherwise.
• * e k (n i , n j ) indicates whether there exists a multi-hop connection between nodes n i , n j ∈ N , i.e. ∃ path k i,j = {n 1 , n 2 , . . ., n , and e k (n q , n q+1 ) = 1, ∀q < |path k i,j |.Similarly, we introduce the following state variable in order to model the multi-hop connectivity through the aerial mesh: • l k (n i , n j , h z ) indicates whether the link between nodes n i , n j ∈ N is used to convey the traffic flow from n i to n j originated by the help requester h z ∈ H during time slot t k : in such case, l k (n i , n j , h z ) = 1, l k (n i , n j , h z ) = 0 otherwise.

B. PROBLEM FORMULATION
Based on the definitions above, the research problem can be formulated as follows: subject to the following constraints: where the constraints are assumed to be ∀t k ∈ T .
Here, constraint (4) states that the aerial mesh should connect at least one rescue personnel; constraint (5) ensures the aerial mesh connectivity, i.e. there must exist a multihop path between each couple of UAVs; constraint (6) avoids the collisions among the UAVs; constraint (7) ensures that the throughput of each wireless link (AtA or AtG) cannot exceed the current link capacity; constraint (8) ensures the consistency of the data flow through the aerial mesh, i.e. if an aerial link u i , u j carries data originated by h z ∈ H , then there is an incoming data link on UAV u i (u i is routing data for h z ); constraints ( 9) and ( 10) guarantee that there is no multipath in the mesh, namely each data flow can be sent and received by only one node, respectively; constraint (11) states that the rescue personnel is not transmitting data; constraints (12) and ( 13) ensure that any data flow labeled with h i ∈ H is generated only by h i .

C. CHANNEL MODEL
We assume a generic path loss model on the AtA/AtG links, defined as follows: where d is the node distance, α LT is a decay model depending on the Link Type (AtA or AtG) and κ is a constant value related again to the frequency and to the Link Type in use.
In this work we do not focus in the specific characterization of the AtA and AtG links.Instead, we used the generic logdistance path loss model by using different α LT parameters.
Readers can refer to [26] for an in-depth modeling of the AtG link.The values of the parameters used in the simulation study are reported in Section VI-B.The maximum capacity C k (n i , n j ) between node n i and n j placed at distance d can be derived according to the well-known Shannon law: where BW is the channel bandwidth, PT is the node transmitting power (both values are assume constant for all nodes and wireless links) and κ k noise the current noise value.In this study, we aim to monitor the per-link Quality of Service (QoS) by means of the Link Budget (LB) metric.The latter is defined as the residual capacity of link between n i (receiver) and n j (transmitter) at time t k , and it is computed as follows: where PR k (n i , n j ) is the received power at node n i and RS(n i ) is its receiving sensitivity that is specific of the wireless network interface.The LB metric measures the communication reliability and it indicates when the link is going to break.

IV. ELAPSE: SWARM MOBILITY ALGORITHM
The optimization problem presented in the previous Section requires a global knowledge of the scenario, and a fine-grained description of the system evolution at each time-slot.Given the practical limitations posed by a centralized approach, we propose here a distributed, iterative technique which continuously updates the UAV positions' with the aim of addressing the following requirements at the final deployment: (i) there is always at least one rescue personnel connected to the aerial mesh; (ii) the number of help requesters connected to the mesh is maximized; (iii) the aerial mesh is connected (i.e.no UAV clusters are created) but at the same time (iv) all the AtA and AtG links meet the QoS requirements expressed through the requested LB values.
To these purposes, we refine the the virtual spring model described in [27] and further extended in [21], [28] for channel-aware QoS support.For a comprehensive review of different deployment algorithms for UAV network, reader can refer to [29].More specifically, we assume that, at each time slot t k ∈ T , multiple virtual forces can act on each be the sum of virtual forces acting on u i , i.e.: As depicted in Figure 1, we consider three virtual Forces Types (FT), i.e.: (i) Mesh-to-Mesh (MtM) forces, acting between two UAVs, (ii) Mesh-to-Helpers (MtH) forces, acting between an UAV and a help requester on the ground and (iii) Mesh-to-Rescuers (MtR), acting between and UAV and a member of the rescue teams.The MtM forces guarantee the internal connectivity of the aerial mesh, while the MtH/MtR forces enable space exploration and connectivity toward the ground nodes.Regardless of their type, all the virtual forces are modeled according to the well known Hooke's law assuming that the force is proportional to the spring deformation [30]: where k(FT ) is the stiffness constant (assuming different values according to the force type, i.e.MtM, MtH or MtR), x u denotes the spring unit-vector direction, x denotes the spring actual length, l 0 its natural length, and δ = (x − l 0 ) defines the spring displacement.Here we assume that k(MtM ) and k(MtH ) are constant values, which must be statically configured before the system deployment; Section VI reports the values used in the experiments.Vice versa, the k(MtR) value is dynamically set by each UAV u i according to the The value LB k req (n i , n j ) of Equation ( 21) as a function of the required link load (Equation ( 22)).

Equation below:
Here, Cov R (u j , t k ) returns the number of rescue personnel connected to UAV u j at time-slot t k , while NB i denotes the list on 1-hop neighbors of UAV u i .The stiffness value is set to KT k(MtH ) in case the UAV is the only node in its neighborhood providing connectivity to a rescue personnel, and hence it should avoid breaking the link.Vice versa, the MtR virtual spring behaves like the MtH one.Like in [28], we formulate the link displacement as a function of the requested and current LB on the n i − n j link, i.e.: Here, δ k (n i , n j ) is the spring displacement, α LT is the propagation decay exponent of Equation ( 14), again assuming different values based on the AtA (MtM) or AtG (MtH and MtR) links.Let LB k req (n i , n j ) be the requested link budget on the link connecting node n i with node n j at time slot t k ; LB k req (n i , n j ) represents the per-link QoS requirement, and it is computed based on maximum number of data-flows that can be supported.This value can be derived from Equations ( 15) and ( 16) as follows: Here, LL k (n i , n j ) is the requested load on this specific link.
In order to fulfill the constraint defined in Equation ( 7), it is defined as follows: Figure 2 shows the trend of Equation ( 21) when varying the requested link load LL k (n i , n j ).As described before, the Hooke's law defines the attractive force as well as the repulsive force.However, for the AtG links the UAVs do not need to be repulsed from ground nodes and hence we activate the MtH and MtR forces only if they are attractive.
Every t dec intervals, each u i computes the resultant force F(i) on Equation 17, and moves in the direction indicated by F(i), with constant speed.In [28], we assumed that the direction could be directly derived by assuming that the UAVs are equipped with any geo-location system (like GPS, GLONASS, Galileo, etc) and that the position information is periodically exchanged among the UAVs.Here, we extend the study by removing such assumption; vice-versa, we address the case where each UAV and MGNs n i ∈ N is equipped only with Inertial Measurement Unit (IMU) sensors to estimate its actual velocity.Details on the how the UAV direction is estimated are provided in the Section below.

V. ELAPSE: POSITIONING TECHNIQUE
In this study, we do not aim at estimating the absolute position of the UAVs and the MGNs (e.g.geo-location), rather their relative positions since only this information is relevant to compute the direction of each virtual spring according to Equation 17.To this aim, let v n i ,k and p n i ,k be the real velocity and position of each node n i ∈ N at time slot t k , respectively.Also, let p (n i ,n j ),k = p n j ,k − p n i ,k be the real relative position of node n j with respect of node n i and ˙ p (n i ,n j ),k be its estimated value computed by node n i .For ease of exposition, we use the dot (˙) notation to refer to an estimated value, which might differ from the real one.
While moving, each node n i ∈ N broadcasts one HELLO n i ,k message every t broadcast time slots, by including the following information: Here ˙ v n i ,k is the instantaneous velocity of node n i at time t k , while ˙ v n i ,k − is the average velocity of node n i between time slot t k−t broadcast and t k , defined by ˙ v n i (k − t broadcast , k).The function ˙ v n i (k, k ) returns the estimated average velocity of node n i within the interval [t k ..t k ].After receiving an HELLO n j ,k message from node u j , node u i determines the Received Signal Strength (indicated as RSS n j ,k in the following) in order to estimate the distance from the sender node.We skip details on this issue, well addressed in the literature; interested readers can refer to [24] for a comprehensive survey on the topic.We just highlight that, for evaluation purposes, we assume the presence of an additive white Gaussian noise, i.e.
, where σ d is a system variable denoting the distance estimation error, whose impact on system operations has been evaluated in Section VI.
The proposed relative localization algorithm involves three blocks executed sequentially, as depicted in Figure 3: • Neighbour estimator: this module is executed by each node and it aims at estimating the relative position of its neighbours.To this purpose, two different methods are presented: a local algorithm (Section V-A) and a cooperative one (Section V-B).In both cases, the estimation exploits the RSS values and payloads of the HELLO n j ,k messages exchanged among the ELAPSE nodes.• Error filter: this module applies proper filters on the output of the previous step, in order to avoid large variations among consecutive estimations (Section V-C).To this purpose, a per-node estimation history is adopted.
• Optimizer: this module is executed only in cooperative mode and it further improves the position estimation by taking into account additional information from each neighbour node (Section V-D).

A. LOCAL NEIGHBOUR ESTIMATOR
We consider a local technique wherein each node n i estimates the position of its neighbour n j by using the information contained in the HELLO n j ,k message.At each message reception, node n i performs two, independent estimation of its distance from n j , i.e.: (i) it derives the distance from the RSS n j ,k value and (ii) by considering the average nodes' speed and the temporal interval among consecutive message receptions.By computing the intersection of the circumferences associated to the estimated distances, and under the assumption of 2D mobility (since all the UAVs are flying at the same altitude), two different solutions for the n j position at time t k are derived and inserted into a solution set P (n i ,n j ),k .After having collected a threshold number of solutions, the Z-score function is applied on P (n i ,n j ),k in order to remove the outliers; finally, the centroid is returned as the estimated position of n j .The process above is iterated by n i for all its active neighbours.This latter is defined as the set of nodes from which n i has received at least one HELLO message within a timeout interval.
More formally, at each reception of the HELLO n j ,k sent by node n j , the node n i updates the RSS-based position estimation ˙ p (n i ,n j ),k for node n j .Then it stores such value in a local list PKT i,j rcv along with the values contained in the HELLO n j ,k message, i.e.: pkt Given the dynamic nature of the aerial mesh topology, we consider dynamic update mechanisms of the data structures, i.e. node n i will remove the PKT i,j rcv list in case no packet from node n j has been received within a time threshold t timeout .We can hence define the active neighbours of node n i as: Algorithm 1 shows the pseudo-code the proposed technique.In the main loop (lines 6 -16), the solution set P (n i ,n j ),k is updated, by considering the HELLO n j , k message received  at time slot t k , with k ≤ k.We consider a coordinate system rooted at u i at time slot t k , i.e. p (n i ,n i ),k = (0, 0).The process of position estimation that is executed at each loop cycle is described in Figure 4.
At line 8, the term ˙ p (n i ,n i ), k denotes the position estimation of n i at time slot t k .The distance covered by node n j from time slot t k to t k is derived at line 10, based on its average speed in the time interval (the ˙ v j variable at line 9).Knowing the original position, and the distance covered, a second estimation of the position of node n j at time t k ( ˙ p n i →n j , k ) is derived in line 11 (the red UAV in Figure 4).Based on the positions produced so far ( p (n i ,n i ),k and ˙ p n i →n j ) k ) and distances ( ḋ ist k (n i , n j ) and ḋ ist k (n i , n j )), the CI( p1, d1, p2, d2) function (line 12) calculates the intersections between the circles with centers p1, p2 and radius d1, d2, respectively.Figure 4 shows the outputs of the circle intersection function, with two results being returned, denoted by the red UAV (correct estimation) and the grey one (wrong estimation).A single HELLO message does not allow discriminating the right solution, hence both the outputs are processed and inserted into the P (n i ,n j ),k set through the Identity function; this latter returns the arguments provided as inputs, and has been introduced only for ease of exposition, and more specifically to highlight the difference with the cooperative-based algorithm described in the next Section.Figure 5 depicts the solution set P (n i ,n j ),k computed by node n i (green UAV) regarding the position of node n j (blue UAV).Half of the estimations are clustered close to the real UAV position, while the other half is located on the circle of radius ḋ ist k (n i , n j ).In order to remove the outliers with respect to the main clusters, the Z-score index is computed at lines 17 -19; based on such metric, half Algorithm 2 The COOPERATIVE Algorithm Input: PKT i,j rcv , NB q , ∀n q ∈ NB i 1 Function ChooseCoop(n j , p 1 , p 2 ): 2 p err 1 ← 0; p err 2 ← 0; of the points are removed from the P (n i ,n j ),k set (function ZS_halve at line 20).This operation is shown in Figure 5 where the grey points are removed from the solution set.Finally, at line 21, the centroid of P (n i ,n j ),k is returned as the relative position estimation of UAV u j at time slot t k .

COMPUTATIONAL COMPLEXITY
The computational complexity CC of Algorithm 1 is determined by the main loop (lines 6-16 of Algorithm 1) where the set of possible solutions P (n i ,n j ),k is built.We assume that each node keeps only a limited number of received packets, defined by the system parameter PKT max .It is easy to notice that CC(Algorithm1) = O(PKT max ).

B. COOPERATIVE-BASED NEIGHBOUR ESTIMATOR
The local algorithm described before might introduce some errors when pruning the solution set, as depicted in Figure 5.
To this purpose, we propose an enhanced version of the algorithm, in which each node shares also its relative distance matrix with respect to its active neighbours: this is performed by extending the information contained in each HELLO n i ,k message as follows: The cooperative-based neighbour estimator is mainly based on Algorithm 1, however it introduces a new method for the solution selection at each iteration.More in details, we replace the Identity function (line 13 in Algorithm 1) with the ChooseCoop function shown in Algorithm 2).Here, we consider the neighbours of n i (i.e. the n q ∈ NB i in line 3) which are also neighbours of n j .A mean square positioning error for both the candidate solutions ( p 1 and p 2 ) is computed by considering the distance estimation between n q and n k (contained in the HELLO message), and the estimated distance between n i and n q (computed locally by n i ).The solution associated with the lowest error (i.e.better fitting with the relative distance matrix) is returned and included in the set P (n i ,n j ),k .
Figure 6 depicts the operations of the cooperative-based algorithm, by using the same notation of Figure 5: it is easy to notice that, even with more sparse position estimations, the algorithm is able to identify the correct UAV position within P (n i ,n j ),k thanks to the neighbours' relative distances information.

COMPUTATIONAL COMPLEXITY
The computational complexity of Algorithm 2 can be derived from the complexity of Algorithm 1.In addition to it, at each step of the mail loop, the ChooseCoop function is invoked; the latter iterates over the neighbour set in order to compute the localization errors for the candidate solutions p 1 and p 2 .Hence, CC(Algorithm2

C. ERROR FILTER
Both the algorithms described before attempt to estimate the relative node position of node n j by analyzing the list PKT i,j rcv of received messages at node n i .However, consecutive position estimations performed by the same node (n i ) on the same target (n j ) can incur into large variations/oscillations, due to noisy distance computations and low mobility conditions.For this reason, we included a filter mechanism that takes into account the history of the estimations produced so far and applies smoothing functions.

Algorithm 3 The Estimation Filter Algorithm
13 else 14 Algorithm 3 shows the pseudocode of the proposed error filtering mechanism.Within the main loop (lines 3 -7), we derive ˙ est k , i.e. the estimated position of node n j ∈ N based on the previous estimation calculated at time slot t k and on the average velocity till time slot t k .A weight coefficient w k quantifies the accuracy of each estimation, by considering two factors (line 5): (i) the temporal freshness of the information, since positioning errors may accumulate over time and hence too old estimations can be largely inaccurate 2 ; (ii) the trustworthiness of the estimation, reflected by an index of dispersion (i.e. the dispersion function) that is defined as dispersion = σ 2 /µ.The weighted average of the estimations produced so far, i.e. ˙ p filt , is produced at line 8. Finally, the position of node n j is built as combination between the original estimation ˙ p (n i ,n j ),k (i.e. the output of the previous algorithms) and the weighted historic average, ˙ p filt .Again, the the factor f factor ∈ ]0..1[ (lines 11 -15) works as a weighting coefficient, and it gives more trust to the historic average or to the original estimation based on the distance between ˙ p (n i ,n j ),k and ˙ p filt (we use the estimated distance as reference max distance, see line 10).

COMPUTATIONAL COMPLEXITY
Similarly to Algorithm 1, the computational complexity of Algorithm 3 is dominated by the loop over the received packets, hence: CC(Algorithm3) = O(PKT max ).

D. PSO OPTIMIZER
Finally, we further enhance the position estimations produced so far by means of a Particle Swarm Optimization (PSO).
2 f filter ∈ [0..1] is a system parameter, powered to the freshness of the information given by the time interval t k − t k .

Algorithm 4 The PSO Optimization Algorithm
Input: NB i ; NB j , ∀n j ∈ NB i 1 Function ExecPSO(): Since the latter exploits the knowledge of each node n i neighbourhood NB i , it can be used only when the cooperative technique (Section V-B) is enabled.The PSO is a heuristic computational technique which explores a solution space for the optimum search, by means of a set of candidate solutions named particles.At each iteration, the candidate solutions are updated by adjusting the particle's position and velocity with respect to a goal function.
In our scenario, the PSO particles correspond to the relative positions of each node n j ∈ NB i .The PSO technique -described in Algorithm 4-is executed by node n i each t PSO time slots, and the goal is to minimize an error/loss positioning function introduced later in this Section.
Let PA be the set of particles and pa w the w-th particle, with w ≤ N pa .Moreover, let pa pos w,j be the candidate relative position of node n j ∈ NB i with respect to node n i belonging to the w-th particle, and pa vel w,j its velocity.Here, N pa is a system variable and defines the number of used particles.The structure of each particle is shown in Figure 7.In the initialization phase (lines 2-12 of Algorithm 4), all the particles are randomly initialized, except one which corresponds to the output of the cooperative-based algorithm (line 5).The search space of the particles is defined by the variables x j min , x j max , y j min , and y j max .We define ist k (n i , n j ), while the rnd function returns a random number within the range passed as input.Similarly, the particle's velocity is randomly initialized (line 9) within the range v min and v max .The algorithm keeps track of the the best local candidate solution (visited by particle pa loc w ) and also of the best global candidate solution (visited by particle pa glob ).The space exploration is performed within the main loop which is executed for a number of ite PSO iterations (lines 14-27).At each iteration, the particle's position and velocity are updated (lines [16][17][18][19][20][21][22] and then, the best and local candidates are also updated in line 23 and line 26, respectively.Finally, the pa glob is returned as the final result (line 29).The velocity update rule is defined as in [25]: ω indicates the inertia weight factor; c loc and c glob quantifies the attraction force toward the local and global best values, respectively.The overall rationale is that each particle has its own velocity and hence its inertial force, but it is still attracted by the local and global optimal solutions discovered so far.The randomness factor enforces the space exploration; to this purpose, the checkIfOutside function ensures that the candidate positions lie within the search space defined by x j min , x j max , y j min , and y j max .The PSO loss is modeled by the L(pa z ) function, which is executed on node n i ∈ N at time slot t k and is defined as follows: Here, the second row computes the positioning error of node n j with respect to the local distance estimation ḋ ist k (n i , n j ), whereas the third line computes the positioning error with respect to the estimations produced by the other neighbours of n i .It is worth highlighting that the optimal solutions might be infinite since the loss function takes into account only the nodes' distances; hence, given an optimal solution, a new one can be produced by a simple rotation.To avoid the problem, we used as fixed anchor the previous relative position estimation of node n j (described in the first row of Equation ( 25)).

COMPUTATIONAL COMPLEXITY
The computational complexity of the PSO technique is dominated by the main loop over the particles.i.e. by lines 14-27 of Algorithm 4. Here, three additional, consecutive loops are executed for the particles' updates: the first is bound by the number of iterations ite PSO ; the second goes over all the particles; the third visits all the node neighbours, i.e.O(|N |).
Hence, we can state that CC(Algorithm4

VI. PERFORMANCE EVALUATION
In this Section, we evaluate the system performance of the ELAPSE framework by a twofold evaluation.First, in Section III, we investigate the swarm creation and management for the aerial coverage of large-scale, disaster areas by means of extensive OMNeT++ simulations.Then, we focus the attention on selected components of our framework (e.g. the QoS support), and demonstrate their effectiveness through a small-case testbed composed of autonomous ground robots.

A. OMNeT++ SIMULATIONS
We modelled the scenario characteristics and the wireless communications on the AtA and AtG links in OMNeT++, by creating new modules for the virtual-spring based swarm mobility algorithms and the positioning techniques.Similarly, we modeled the position of the Help Requesters via a Markov-Gaussian mobility model (to simulate the pedestrian mobility), and of mobility of each Rescue Personnel via a Random-direction mobility model (to simulate a search mobility around the scenario).Unless stated otherwise, we used the following parameters: In the evaluation, we keep uniform the value of LB k req (n i , n j ) = LB req = 12 dB.

1) RELATIVE POSITION ESTIMATION
The first analysis investigates the performance of the GPSfree positioning techniques proposed in Section V, and more specifically the average accuracy of each node in estimating the relative positions of its neighbours.To this aim, we compare the two methods described in Section V, i.e. the localbased and cooperative-based algorithms.Figure 8 shows the average neighbour position error when varying the number of UAVs composing the swarm.As we can notice from the plot, the two methods follow different trends, i.e. the average error increases with the number of UAVs for the local-based algorithm while it decreases for the cooperative-based one.For the local-based solution, the trend can be explained by the error accumulation; indeed, each local neighbour estimation introduces some positioning errors, which impact the computation of the resultant spring force in Equation 17 and hence the (wrong) positioning of the node.The spring direction error will clearly increase when considering more forces, i.e. when increasing the UAV density.Vice versa the cooperative-based algorithm exploits the neighborhood information in order to select the next position of each neighbour, between the speed-based and a RSS-based estimations (the ChooseCoop function of Algorithm 2).The higher is the number of neighbors, the higher becomes the probability to remove potential outliers.Figure 8 shows that the error is in the order of a tens of meters, which is still quite high in absolute way, however tolerable in relative way when compared with the average node distance which is in the order of 300 meters.
Figure 9 highlights the impact of the different building blocks of Figure 3 on the final position error of the cooperative-based algorithm.We can see that the error filter and the optimizer blocks introduce higher performance gains with low number of UAVs (e.g.N U ≤ 10), since the neighbour estimation module has more uncertainty regarding the Finally, we analyze the capability of the proposed algorithms to cope with noisy distance estimations; to this purpose, in Section V, we introduced the σ d parameter which models the error on the RSS-based distance estimator.Figure 11 shows the average position errors when varying the σ d values on the x-axis.As expected, both the single-based and the cooperative-based algorithm degrade their performance when increasing the error on the input.However, while the error for the single-based almost triple from σ d = 0 to σ d = 20, the increase is limited to few meters for the cooperative-based algorithm.This result confirms the robustness of the proposed technique also over noisy channels.

2) SCENARIO COVERAGE
In this analysis, we investigate the ability of the swarm mobility model of Section IV to provide multi-hop connectivity among the MGNs, and the impact caused by the positioning algorithms on the overall coverage.It is worth reminding that the connections among ground/aerial nodes, and the mobility of the UAVs are both governed by the abstraction of virtual spring forces.Obviously, the higher is the accuracy in estimating the nodes' positions, the higher is the ability to create a connected aerial mesh network and to discover the ground nodes.
Figure 12 shows the percentage of the help requesters covered by at least one UAV.As in the previous Section, we considered the local-based and cooperative-based algorithms, and compared them against a reference GPS-based solution where all the UAVs are equipped with a geo-localization device (also, assumed error-free).Clearly, the latter constitutes an upper bound on the system performance.It is easy to notice that the coverage percentage increases with the number of UAVs and that the cooperative-based algorithm approaches the GPS-based one.Vice versa, the local-based seems to maximize the coverage when N U ≤ 6, while its performance degrades quickly for larger values of UAVs due to the impact of the positioning errors on the configuration of the virtual springs.A better insight on this analysis is provided by Figure 13 which shows the average number of UAV isolated clusters created during the simulation.The aerial mesh connectivity is a constraint of our problem (Equation 5), and it is always met by the GPS-based and cooperative-based algorithms.Vice versa, for the local-based algorithm, isolated clusters might occur due to AtA link breakages when the number of UAVs -and hence the number of virtual forces acting on each node-is low.Clearly, multiple, independent aerial mesh networks can cover larger areas than a single swarm; this explains the higher performance of the localbased algorithm in Figure 12 for low UAV density values.At the same time, isolated clusters do not allow coordinated emergency responses that involve all the ground nodes connected, and for this reason they are considered as a goal of the ELAPSE framework.
Figure 14 shows the coverage percentage when we vary the number of help requesters N H while keeping constant the number of UAVs (N U = 12).Also in this case we can notice that the cooperative-based algorithm performs very similar to the GPS-based system, and that the performance gap reduces when increasing the number of N H .This result confirms the ability of the our solution to maximally exploit the information exchanged by an increasing number of cooperative nodes.

3) AERIAL NETWORK DEPLOYMENT
The last analysis investigates the QoS support of the aerial mesh network, and the overall multi-hop connectivity between the help requesters and the rescue teams, which is the final goal of the ELAPSE deployment in emergency scenarios.
To this purpose, we compare the ELAPSE framework against two alternative solutions for aerial mesh deployments: (i) a Fixed deployment, where the UAVs are placed according  to a connected grid formation at the center of the scenario; (ii) Static formation where again a specific grid formation is considered, however not anchored to static positions, i.e. the UAVs can continuously move over the scenario.In both cases, the grid formation is designed in order to guarantee a link budget value equal to LB ref between each couple of neighbours UAVs.
Figure 15 compares the three deployment methods in terms of coverage percentage of the help requesters.We can notice that the ELAPSE framework greatly overcomes the other two methods thanks to its flexibility, i.e. the possibility to dynamically adapt the UAV formation (also assuming irregular shapes) based on the current location of the ground nodes; vice versa the Fixed approach provides the worst performance due the limited exploration of the scenario.A visual evidence of the self-organization capabilities of the ELAPSE framework is provided by Figure 18, which shows a screenshot of the OMNeT++ simulation; we can notice the irregular formation of the self-configuring aerial mesh which is able to provide global coverage of the MGNs.
Figure 16 further analyzes the dual coverage metric, this time in terms of rescue personnel connected to the UAVs.More specifically, we plot on the y axis the percentage of time-slots in which at least one rescue personnel is connected to the aerial mesh, while on the x axis we vary the number of rescue personnel available within the scenario.We notice that

B. GROUND VEHICLE TEST-BED
We further characterized the performance of selected components of the ELAPSE framework through a small-case testbed.More in details, we consider the experimental setup depicted in Figure 19.Here we consider one help requester (on the left), one rescuer (on the right) and one autonomous Unmanned Ground Vehicle (UGV), which must move within the scenario, discover the nodes, and control its own position in order to provide QoS-aware end-to-end connectivity among the two end-points.To this purpose, the MGN nodes are constituted by two Bluetooth Low Energy (BLE) devices, periodically broadcasting HELLO messages with the payload defined in Section 20.Beside the wireless link differences in comparison with the aerial vehicles, the UGVs will be able to test the core of the ELAPSE framework, i.e. the swarm mobility algorithm and the positioning technique.
The UGV is the ground robot depicted in Figure 20, equipped with the hardware below: (i) a Raspberry PI (model 3B+) board, which embeds the overall UGV controller, including the spring algorithm, the positioning technique (in this case, the UGV attempts to estimate the position of the two BLE devices), the sensor data acquisition and the wireless communications; (ii) an IMU, model GY-88, including accelerometer, gyroscope and magnetometer sensors used for speed computation and direction estimation; (iii) a NodeMCU microcontroller, used for the sensor data acquisition; (iv) two 2.4 GHz radio interfaces (embedded within the Raspberry board) for the wireless communications, i.e.BLE to communicate with the two MGNs and Wi-Fi to communicate with a laptop used for statistics collection.We performed the tests on an outdoor scenario, with a distance of 8.5 meters between the two MGNs, assumed static.The software has been implemented using the Johnny-Five3 framework, which communicates with NodeMCU via the Firmata protocol.The software components have been dockerized and deployed on the BalenaCloud,4 a containerbased platform for IoT applications.
First, we estimated the path-loss model, which is used to calibrate the RSS-based distance estimation (from the BLE signal), and more specifically the α GtG and κ GtG parameters of Section III-C.We highlight that the goal here is slightly   different from the original problem since we are not considering aerial network deployments, hence the path loss refers to Ground-to-Ground (GtG) links.We collected a consistent set of BLE samples at different real distances, denoted as points in Figure 21.The path-loss estimation, i.e. the fitting line in the curve, is computed as follows: In Figure 22 we demonstrate the QoS support offered by the virtual spring mechanism described in Section IV.Specifically, we consider a situation where LB ref = 15 dB.On the graph we depict the LB values on the wireless links, i.e. from the help requester to the UGV (purple line) and from the rescue personnel to the UGV (green line).The UGV is initially placed at a random position of the scenario, but closer to the rescuer node.It is easy to notice that the UGV progressively adjusts its 2D position over time in order to balance the LB on both links; this corresponds more or less to the central position between the MGNs.After 300 seconds, both the LB values converge to the requested threshold, and hence the UGV achieves a stable position.
We conclude the analysis by investigating the relationship between the number of HELLO messages received by the UGV and the accuracy of the neighbour estimator.We consider the cooperative-based algorithm, executed by UGV in order to estimate the relative position of the each MGN.In the table below, the error is computed as the ratio between the average positioning error (i.e. the difference between the real position of a MGN and the estimation computed by the UGV) and the actual distance among the nodes.It is easy to notice that the error ratio decreases considerably with the number of received updates, i.e. the more the UGV moves within the scenario, the higher is the accuracy of the neighbors' knowledge acquired by the UGV.

VII. CONCLUSIONS AND FUTURE WORKS
In this paper, we investigated how to deploy autonomous swarm of UAVs with the aim of supporting ground rescue operations on large-scale emergency scenarios.To this purpose, we proposed ELAPSE, a novel, QoS-aware framework for the distributed aerial mesh deployment on coverage tasks.The framework includes a novel swarm mobility algorithm -based on a virtual spring model-which is able to maintain multi-hop connectivity on the MtM and MtG wireless links while ensuring a requested per-link QoS, expressed through the Link Budget metric.Moreover, the ELAPSE framework is designed to support rescue operations in hazardous environments where nodes cannot rely on traditional geolocalization systems (e.g. the GPS).To this purpose, we proposed a pipeline of novel techniques through which each node can estimate the relative position of its neighbours, and hence properly adjust its movement.Finally, we evaluated the performance of ELAPSE in terms of coverage, QoS support and positioning accuracy through simulations and a ground test-bed, and demonstrated the gain against other UAV mobility models.Future works include additional mechanisms to guarantee the per-link QoS among the UAVs, the design of a proper MGN discovery module in order to improve the scenario exploration and hence the ground coverage, and the validation and testing of the operations of the ELAPSE framework on a small drone fleet.

FIGURE 1 .
FIGURE 1.The scenario considered in this study and the deployed framework.

FIGURE 3 .
FIGURE 3. The building blocks of the proposed relative localization algorithm.

FIGURE 5 .
FIGURE 5. Relative position estimation.The stars define the P (i ,j ),k set.The grey stars denote the points removed after the Z-score filter is applied.

FIGURE 6 .
FIGURE 6.Relative position estimation of UAV u 2 calculated by node u 1 using the cooperative-based algorithm.

FIGURE 7 .
FIGURE 7. The w -th particle definition in the PSO algorithm.

FIGURE 8 .FIGURE 9 .
FIGURE 8. Average position estimation error when varying the number of UAVs N U .

FIGURE 10 .FIGURE 11 .
FIGURE 10.Relative angle estimation error over the number of UAVs N U .

FIGURE 12 .FIGURE 13 .
FIGURE 12. Percentage of covered help requesters when varying the number of UAVs N U .

FIGURE 14 .FIGURE 15 .
FIGURE 14. Percentage of covered help requesters when varying the number of help requester N H .

FIGURE 16 .
FIGURE 16.Percentage of time in which at least one rescue personnel is covered, when varying the number of rescue personnel N R in the scenario.

FIGURE 17 .
FIGURE 17.Average link-budget of the wireless links when varying the number of UAVs N U .

FIGURE 18 .
FIGURE 18.A screenshot of an OMNeT++ simulation, showing the ability of the ELAPSE framework to adapt its deployment to the ground mobility of the MGNs.

FIGURE 19 .
FIGURE 19.The test-bed scenario with the ground robot.

FIGURE 20 .
FIGURE 20.The UGV used in our test-bed.

FIGURE 21 .
FIGURE 21.The Path-Loss model over distance.

FIGURE 22 .
FIGURE 22.The measured Link Budget (LB) values over time on the two GtG links. 2 15. . .

TABLE 1 .
Positioning Error Ratio with respect to the number of HELLO messages received by the UGV.