2.1. Area Mapping Method Using UAVs Flying on Regular Polygons
A 2D surface is intended to be covered with points equidistantly distributed using regular polygons. The surface can be covered in this way with points grouped into equilateral triangles or squares (
Figure 1).
A new method for UAV network analysis and evaluation based on experimental preliminary flight tests is proposed, as shown in the flowchart from
Figure 2. The experimental preliminary flight test of the UAV performed under different environmental conditions allows estimation of the UAV performance under real conditions. The results are used as input parameters of simulation for different DTN algorithms.
An environment map is essential for both UAV flight control and in simultaneous localization and mission tasks. There are three map types, as was mentioned in [
41], metric, topological, and hybrid maps. A metric map is represented as a grid, geometric, or feature map [
37]. Topological maps are represented by graphs comprised of nodes and edges, where nodes represent places, and edges represent the path between nodes [
37,
41]. A hybrid map consists of small metric map places in nodes, connected by edges that are the paths between metric maps [
37]. In this work, a topological type map was proposed.
To cover a surface, a hexagonal cell comprising three operational equilateral triangles is considered (
Figure 3). Each operational cell is covered by a UAV. All the UAVs that operate in the proposed network cells have a specific mission profile. In the middle of each cell, a battery charging/changing station is placed. Thus, in a hexagonal cell, three UAVs share the same battery charging/swapping dock.
Each flight mission profile consists of several phases or steps. A general flight mission profile of the UAV consists of the following main steps: engine start, take-off, climb to the cruise altitude, cruise, hovering and data exchange, descent, landing, and engine shut-down. The next step consists of charging or swapping the UAV battery followed by a new flight mission. The triangular-shaped flight mission profile of the UAV contains three cruise segments (
Figure 4). Each cruise segment is followed by hovering and data exchange steps.
2.2. Algorithms for DTNs with UAVs
A DTN network is modeled with a graph. Graph nodes are of two types: fixed and mobile. There are no connections between the fixed nodes, so there is no possibility of data transmission, considering that the distance between the nearest two nodes is 4000 m. Network connections are provided by mobile nodes (UAVs), but their condition is not always the same; they have periods when they are active and periods when they are inactive. This means that there is not always an end-to-end path available between any two nodes in the graph.
Five well-known routing algorithms for DTN networks (Epidemic, Spray and Wait, PRoPHET, MaxProp, and MaxDelivery [
42]) and the new TD-UAV Dijkstra approach were tested on the triangle-shaped from
Figure 5. Tests by choosing random sources and random destinations, which can be located on any node (marked as gray circle or grey rectangle), were performed. It was considered that the UAVs work every day from 7:00 AM to 6:00 PM. The messages can leave a source node between 7:00 AM. and 5:00 PM. A total of 1000 messages randomly sent in this interval of time were considered.
Epidemic is the basic form of a flood-based routing protocol: when two nodes meet, they identify the packages that the other node has and it does not have so that at the end of the process, the two nodes have the same content in the buffer. This process is repeated each time two nodes come into contact. When a node has a copy of a message, it waits to meet the destination. In this case, the resource consumption is high, but in a high mobility network, the delay of the message transmission is short. In the current network configuration, the algorithm produces poor results due to the low number of contacts between nodes.
Spray and Wait is an algorithm with two phases: one for sending messages (spray) and the other waiting for the contact with the destination node (wait). This algorithm circulates in a couple of variants: a standard one and a binary one, depending on the number of spread copies of the message. It acts similar to Epidemic, with an important difference: the number of spread copies is constant. The spray phase of the standard approach consists of spraying L copies of the message by the source node itself. The spray phase of the binary approach consists of spraying half of the number of copies to a meeting node. In this case, not only the source sprays messages, but also every node that has more than one copy does the same. The nodes that have only one copy enter the waiting phase. This algorithm has the disadvantage that nodes must keep track of movements of other nodes, but the advantage is that the level of flooding is limited.
PRoPHET is similar to Epidemic, too, except that it uses information from the buffer of the other node to update its predictability vector. Each node calculates the predictability of the message delivery and sends the message further only if the contact node has higher predictability than its own. The problem of this approach is the relationship between the overhead ratio and the number of nodes—as the number of nodes increases, the overhead ratio increases [
16]. This protocol is known for its complexity of the forwarding strategy. Thus, it consumes a lot of resources to process and store historical values. It is feasible for networks with high computation and infrastructure capabilities.
MaxProp is an algorithm based on prioritizing packet transmission and discarding. The packets in the queue are divided into two categories: those below the “n” hop threshold (up to that point) and those above this threshold. Newer packages that have not traveled too far are considered a priority, and the guarantee that they will reach their destination is considered to be high. In this algorithm, there is a need for high computation and infrastructure capabilities. This protocol has low performance when nodes have small buffer sizes because of the adaptive threshold calculation, but it gives better performance with a larger buffer size. It has a so-called slow start problem, because, in the case of a large network, it may take a very long time before each node receives the delivery predictability of other nodes because of the disconnecting nature of the networks, as shown in [
21].
MaxDelivery [
42] is an algorithm based on prioritizing message delivery, using an appropriate buffer management strategy, consisting of forwarding, dropping, and buffer cleaning mechanisms.
The Dijkstra algorithm is a method used to find the shortest path connecting two nodes in a network [
43]. Our routing problem can be modeled using a time-dependent oriented network [
44]. For the triangle drone network, an algorithm named TD-UAV Dijkstra (
Figure 6) is proposed to find a route and its distance dist(d) in seconds from the source s to the destination d starting at the moment “ts”. In this network, the nodes (from the set denoted V) are the vertices of the triangles, and the arcs (from the set denoted E) are the connections between these points assured by drones. The length of each arc a = (u, v) is in seconds, is different in time, and depends on the arrival moments of the drone at node v. In the flowchart in
Figure 6, f(a, t) denotes the moment of arrival at node v if node u is left at moment t on the arc a = (u, v). The arrival moments of drones for all arcs are pre-calculated (once before starting to use the algorithm) since an exact schedule for drones is known based on each drone’s starting second in a day, the travel on each arc, data transfer at nodes, and wireless charge/battery change time for each drone.
In
Table 2, the characteristics of each of the above six algorithms used for simulation are summarized.
Delivery protocols of each file that has to be delivered were proposed. Thus, a “json” file is attached that keeps all the information needed to transfer the data file from the source to the destination: delivery type (Dijkstra, Spray and Wait, etc.), file information (name, size), and route information (node ids: stations and UAVs). A “json” file for a Dijkstra-type delivery of a data file named “filename121.txt” is shown in
Figure 7. As a convention, in the above example, the stations are encoded starting with “s” followed by the numerical id of the station. Similarly, the UAVs are encoded with “d” followed by the numerical id of the UAV. Of course, each route starts and ends with a station id, each station id (except for destination) is followed by an UAV id, and after each UAV id, a station id is next.
The json file that keeps information for the algorithms implemented in the ONE environment is presented in
Figure 8.
The transfer between the UAV and station is initiated when the UAV is approaching it. All the files that have that station id in the attached json file are transferred, from the UAV to the exchange point. In the case of the Dijkstra algorithm, if the station’s code is the last one in the route enumeration, it means that the file reached the destination. After the UAV transfer to the station is completed, the station transfers to the drone all the files that have the drone’s id in the attached json.
2.3. Performance Evaluation by Simulation of the UAV Network
2.3.1. UAV Characteristics and Experimental Flight Tests
A rotary-wing micro-UAV of a quadcopter [
45] type was considered in this study. Thus, a DJI Mavic 2 Pro (DJI, Shenzhen, China) UAV was used. The main UAV’s characteristics are presented in
Table 3 [
46]. A flight altitude of 30 m was chosen based on the literature survey of the micro-UAV missions [
47].
The UAVs can be operated remotely or in a pre-programmed way. The proposed UAV network is operated in a pre-programmed way and communicates with data exchange points (with each other) via wireless links. The DJI Mavic 2 Pro quadcopter uses eight high-resolution and two infrared sensors that allow omnidirectional obstacle sensing that determines the relative speed and distance between the UAV and the object and assures good stability in forward and hovering flight. Omnidirectional obstacle sensing includes left, right, up, down, forward, and backward obstacle sensing.
The average charging time of a UAV battery is around 90 min. During this time, the UAV is locked in a UAV charging station. There are some techniques used to allow the battery-based UAVs to increase endurance [
48], such as swapping the battery, laser-beam in-flight recharging, solar cells, wireless recharging, and tethered UAVs. An automated way of wire charging of the battery can be performed using a charging platform installed on the ground and one UAV retrofit-kit mounted on the UAV [
49,
50]. The electricity needed at each station can be provided by a solar panel that charges a battery located at the station. The landing gear of the UAV can be electrically connected by touch with the charging platform after the UAV landing, and charging starts automatically. The main disadvantage of this system consists of locking the UAV on the ground during the battery charging.
A battery swapping and recharging system in an automatic way was proposed to be used for the UAVs, similar to the one from [
51]. The battery is automatically recharged after it is swapped at the station. Swapping time depends on the efficiency of the swapping mechanism having values of 15 s [
51] to 60 s [
52]. A maximum swapping time before the UAV is ready to take off of 60 s is considered.
Usually, in practice, a minimum of 3–5 tests in the design of experiments are considered statistically relevant. Five preliminary flight tests were performed for the triangular-shaped flight mission in the Brasov area in Romania. The results of the flight tests were statistically analyzed, and the average values were used in the simulation of the UAV networks. Experimental flight times for each segment of the UAV flight mission were measured and used in the simulation of the UAV network. A Samsung S8 smartphone device with DJI Go 4 app software (DJI, Shenzhen, China) installed on it, connected to a DJI remote controller (
Figure 9), was used to remotely control the UAV.
The preliminary tests were performed at 2 °C temperature, 69% humidity, and 3.5 km/h wind speed. The programming of the flight mission segments for preliminary flight tests was performed within the DJI Go 4 app software.
The transfer between UAVs and stations is assured by a WiFi Arduino development board NodeMCU Lua WiFi, V3, ESP-12E, CP2102 (Espressif Systems, Shanghai, China) [
53],
Figure 10. ESP-12E offers a complete and self-contained Wi-Fi networking solution. The data (files) are stored on a micro SD card. Both components, the WiFi board, and micro SD card module, are very lightweight, weighing 8 and 5 g, respectively.
The Wi-Fi boards were programmed in Arduino code. The Arduino software allows the writing of programs and uploading them to the Wi-Fi board. The range of the Wi-Fi boards was tested. The connection between them and file transfer was done at a distance of up to 85 m with no obstacles in between. In our model, when transferring files, the UAV was hovering over the station at a height of 30 m which is much less than the maximum distance obtained in range tests. The transfer speed, including writing and reading on/from an SD card, was also tested at a distance of 30 m. An average of 5.81 Mbps was obtained, which makes possible the transfer of a file of 10 MB in 13.77 s.
Housing for the communication module (
Figure 11b) was designed using SolidWorks version 2016 software (Dassault Systèmes, MA, USA) to mount and protect the Wi-Fi boards on the UAV. The additive manufacturing machine used for case manufacturing was a BCN3D Sigma R19 (BCN3D Technologies, Barcelona, Spain) using fused filament fabrication (FFF) technology. The material used for case manufacturing was a PLA polylactic acid (BCN3D Technologies, Barcelona, Spain) filament 2.85 mm thick. The Wi-Fi board, micro SD module, SD card, and connection wires together weighed 21.4 g. This load was added to the weight of the UAV, increasing the total weight of the UAV by 2.36%.
2.3.2. Simulation of the UAV Network
When a pandemic (for instance, due to the new COVID-19) occurs, a zone is very likely to be rapidly allocated away from the cities in an isolated area, where ill people are moved. This area, being away from civilization, it is very likely not to have access to any communication systems. In this area, buildings are located with a safe distance between them. In this scenario, each building can be a house where patients are isolated, a warehouse with food or drugs, a laboratory where medical tests are performed for patients, a location where doctors are working (isolated from patients), etc. Data packages (medical images, tests, results, prescriptions from doctors, etc.) must be sent between these buildings. The communication between these buildings can be assured by UAVs organized in a triangular-shaped network. The drone network is kept active until the quarantined area is no longer needed. Of course, when/if direct communication becomes available, the drones could be stopped. The network could be adapted for other purposes such as parcel delivery.
To validate the proposed method, simulations were performed using the UAV network maps as collections of hexagons. Most of the simulations were performed using the Java-based simulator ONE [
54,
55]. The routing protocols used for the simulation within the ONE simulator are Epidemic, Spray and Wait, PRoPHET, MaxProp, and MaxDelivery.
Based on the characteristics in
Table 2, the performance of each of the six considered algorithms was influenced more or less by the parameters in
Table 4. For instance, it is clear that the number of fixed transfer points had a greater effect on the algorithms with a limited number of hops, or the average cruise speed and data transmission speed had a greater effect on the algorithms with a short TTL (time to leave for files).
All the simulations were performed on an ASUS ROG GL752VW-T4015D laptop with an Intel® Core™ i7-6700HQ 2.60GHz processor and 8 GB of RAM. The main steps within the ONE simulator were as follows:
The proposed Dijkstra time-dependent variant was implemented in Visual C++ 2017 programming language. The application has about 1100 lines of C++ source code. The C++ application was executed for each of the two considered situations: triangles with battery charging, and triangles with battery changing. For each case, the same 1000 route simulations from ONE were executed. The graphical interface presenting the results (calculated delivery rate and latency) is shown in
Figure 13.
The delivery rate and latency metrics are used to measure the performance of all six routing protocols analyzed in this paper. The delivery rate is determined as a ratio between the number of successfully delivered messages and the number of created ones. The latency is the average time needed for a message to reach the destination starting from the source (departure node).