Multiple UAV Systems: A Survey

Nowadays, Unmanned Aerial Vehicles (UAVs) are used in many di ﬀ erent applications. Using systems of multiple UAVs is the next obvious step in the process of applying this technology for variety of tasks. There are few research works that cover the applications of these systems and they are all highly specialized. The goal of this survey is to ﬁ ll this gap by providing a generic review on di ﬀ erent applications of multiple UAV systems that have been developed in recent years. We also present a nomenclature and architecture taxonomy for these systems. In the end, a discussion on current trends and challenges is provided.


Introduction
Unmanned aerial vehicles (UAVs) have a wide range of applications such as surveying and mapping [1], search and rescue [2], reconnaissance [3], and many others [4][5][6][7][8]. Recently, using several UAVs became a hot topic, since these systems have several advantages comparing to systems containing only one vehicle. Some of the advantages are discussed in [9,10], but after having analyzed a set of papers about multiple UAVs, we can extend the advantages to the following: . Time efficiency: The missions operational times can be significantly reduced with the use of multiple UAVs. The most drastic effect can be found in tasks such as target search, exploration, etc. One of the examples is [7] addressing urgent detection of nuclear radiation in a disaster and building a contour map in a cooperative manner before deploying the salvage. For another quantitative example, we could imagine a 50 ha field which is covered by a single UAV in up to 15 mins and a natural park of 13,000 ha. To cover the area of this park with only one UAV, it would require up to 64 h. Introducing a team of 20 UAVs for this task would significantly reduce that time to only 3 h excluding the time spent on recharging. . Cost: Sometimes, having a single operating UAV could be an expensive solution, when having several UAVs could be much cheaper and reduce the costs related to, for example, power consumption. One could imagine a use case with goods deliveries. Having a team of small UAVs will be a cheaper alternative to using a heavy (> 25 kg) UAV due to the fact that to use this type of UAVs one has to go through long and costly administrative procedures with the final price being magnitudes higher. . Simultaneous actions: A team of UAVs can accomplish tasks in different geographical locations at the same exact time contrary to a single UAV. This can be used when it is necessary to collect information from the points that cannot be reached by a single UAV. This is the case for the problems related to continuous coverage. . Complementarity: In a team of UAVs, each member can have a specific set of sensors. All the sets would be complementary to each other. This separation could be done when all the payload could not be physically located on a single UAV. Or when the mission goals demand different types of sensors to be located in different areas. This, for example, was done in one of the experiments discussed in [11] where one UAV was equipped with a fire detector, and the second one with an infrared camera. . Fault tolerance: In case of a single UAV, the loss of it means a termination of the mission. But when there are multiple operating UAVs, in some cases, the loss of a UAV could be mitigated by the algorithm managing the flight by assigning additional tasks to other UAVs. For example, in [12] one of the challenges for their system's architecture was to be fault tolerant. A search and rescue mission cannot be cancelled if one of the UAVs in a team malfunctions. . Flexibility: Single UAV can perform one task at a time, while a group of UAVs could be dynamically allocated to different tasks at the same time and rearranged if necessary. As an example, one could imagine a case of a group of UAVs performing an observation on a crowd of a people. If at some point there is a subgroup of people that separates from the main group, and it is required to track their movement, the flexible task allocating system would be able to rearrange the tasks and send one or more UAVs for tracking that subgroup.
However, among others, we found that a system consisting of several operating UAVs also has several disadvantages . Legal restrictions: Using several UAVs at the same time may be not permitted in some jurisdictions. For example, [13] reports that in the United States, using swarms of autonomous UAVs for commercial applications is not allowed by the Federal Aviation Administration. . Piloting complexity: The more UAVs a system has, the more difficult it becomes to manage it. For a single pilot to operate several UAVs becomes an uneasy task, hence there is a need for having systems facilitating the process of operating multiple UAVs. . Safety issues: Introducing several UAVs presents several issues related to safety. One of them is collision-avoidance which is also related to piloting problem. With several vehicles in the air, it is necessary that they do not go into each others' buffer zones, otherwise they can collide and crash on the ground. Also, since several UAVs cover a larger area than one vehicle, it becomes more difficult to avoid them in the air. There are many other things to consider regarding safety such as no-fly zones, flying in dense urban areas, malfunctioning, and possibility of hacking. The more complex the system is, the more difficult it is to account for all possible system failures.
Basically, a multiple UAV system is a subset of multiple robot system. The only restriction i s that each robot is a UAV. To the best of our knowledge, there are no publications that characterize multiple UAV systems in the context of distributed robotics systems but it is clear that these systems exhibit the same basic features. There are not many surveys that touch usage of multiple UAVs. Authors in [10] discuss swarms robotics. They focus mainly on the state-of-the-art algorithms for communication, tasks allocation, planning trajectories, and flight coordination. Things as adversarial control, distributed sensing, monitoring and mapping are also discussed in the context of aerial swarms. Another paper that is not technically a survey but a classification and discussion on different architectures of multiple UAV systems is [9]. There they present different architectures used in other works and discuss issues related to UAVs cooperation. To the best of our knowledge, there are no more papers surveying usage of multiple UAVs.
The goal of this survey is to discuss advances in multiple UAV systems with an accent on those works where real-life applications are discussed. Papers about multiple UAVs systems use also words, such as swarms, automation and flight plan, with different meanings. This lack of homogeneity in the nomenclature makes it difficult to understand the range of the contributions. Thus, we also propose a nomenclature for such systems, as well as a taxonomy, and discuss the gaps and possible future work that could be done in this area.
A total number of 87 papers discussing multiple UAVs was covered, from which we took 55 for our analysis. Those were the papers where multiple UAV systems were presented with enough details to be classified according to proposed taxonomy. Several research topics were discussed as robotics and vehicular technologies, networks and communications, remote sensing, AI, and others. For the list of all the covered papers and their topics, see Table 1. From Fig. 1, showing those initial 87 publications, it can be seen that the number of papers discussing multiple UAVs started growing from the year 2013. It can be also seen that the number of publications that report on performing experiments is roughly the same as the number of publications with simulations.  [10,86] The structure of the paper is as follows. In Sec. 2, we discuss the history of multiple UAV systems. In Sec. 3, we provide the nomenclature that we will use in this work. Section 4 provides a list of various applications where systems of multiple UAVs have been used. In Sec. 5, we present an analysis of multiple UAV systems and propose a taxonomy. In Sec. 6, details on data processing of the analysed papers are discussed. Section 7 talks on different communication technologies used or considered in multiple UAV systems. Finally, in Sec. 8, we discuss the future trends and current gaps in such systems.

History
As it quite often happens with new technologies, using multiple UAVs was first originated in the domain of military applications. Multiple UAVs in a context of a single mission were initially used and developed for reconnaissance. It was expected that having several unmanned vehicles will reduce both the loss of human lives, and the cost of equipment in battle [87]. For example, one of the earliest papers discussing multiple UAVs was [88], a paper from 1993. The authors discuss different levels of autonomy for a single and multiple UAVs missions, and present a simulation with two UAVs with the goal to reach some target when there is a possibility to be destroyed by enemy surface-to-air missiles. The tactics of avoiding the enemy was to use one UAV as a decoy, and proceed the second UAV to the target.
The first papers on swarming techniques appeared in the 90s and were also related to military programs. This is covered in details in a baseline study of swarming UAVs [89]. There they discuss and give references for such swarms' problems as collision avoidance, path planning, search algorithms, as well as "ultraswarms"teams of UAVs that combine their computing power for solving different problems.
Starting from the years around 2002, papers on nonmilitary usage start to emerge. For Search and Rescue the earliest work we could find was [90] where they discuss cooperative search for stationary targets. Their approach was tested by Monte Carlo simulation runs to evaluate their strategy comparing to the optimal plan and strategy without cooperation. In 2002, one of the first papers [91] discussing simulation of multiple UAVs was published. The goal of the work was to present a simulation of a system of multiple UAVs with cooperative control in performance of task such as surveillance, search, reconnaissance, decoy, jamming, formation, or target attack. The simulation software allows for a hierarchical block diagrams representation, and allows for replacement of components, for example, control schemes or vehicles.
One of the first papers discussing swarms not in a military context was [92]. There the authors performed research in the control of a team of UAVs. Control strategies were discussed with an inspiration from social behaviour of insects.
The further we go, the more and more papers started to emerge with more diverse and complex applications. In 2005, for example, two different research groups published papers on fire fighting using multiple UAVs [62,93]. In such application, there are many things to consider such as fire spread models, imagery collection and analysing, communication problems, etc.
The usage of multiple UAVs is still on its early stage, and we still can expect more different applications to come. As a reference for a prognosis of the UAV market one can refer to an outlook study of 2016 [94].

Nomenclature
Two distinct concepts must be explained before going into classification of multiple UAV systems and how UAVs interact with each other and the environment. These are coordination and cooperation. The goal of coordination, when speaking about UAVs, is to share an operative space with other flying units in a safe manner [95,96]. For cooperation, [97] gives the following definition: "joint collaborative behavior that is directed toward some goal in which there is a common interest or reward". Even though coordination between UAVs often plays an important role in missions that use several UAVs, we will mainly focus on the cooperation of multiple UAVs instead. For a deeper discussion on both of these terms, one can refer to [9].
Normally, the flight of a UAV could be divided into three parts: take-off, cruise and landing. We noticed that there is a small subset of papers where the cruise part could be split into several parts. For example, in [20], defending against malicious UAVs with UAV defense swarms is Applications of Multiple UAV Systems: A Survey 151 discussed. The cruise part of the flight consists of the following parts: (1) deployment, (2) clustering, (3) formation, (4) chase, (5) escort. There are also some papers where the flight could have virtually infinite number of stages. This is the case in [19] discussing a tracking system. There, we can see three primary cruise stages: (1) UAV is directed manually to the center of the field, (2) UAV starts tracking the target, (3) upon the battery being close to run out, first UAV sends a signal to GCS and another UAV flies to replace it. The last phase can be repeated as many times as necessary.
Based on this, we propose the following definitions in order to aid with further classifications: Mission: An operation performed by a multiple UAV system starting with the first UAV take-off and finishing with the last UAV landing.
Mission stage: Part of a mission which is distinct from other parts by its goal. For example, in search and rescue, there could be two following stages: searching for a target, and directing it to some specific location. Although take-offs and landings can be considered as mission stages, we will not take them into account in the further analysis.

Applications of Multiple UAV Systems
A big variety of possible applications exists where multiple UAV systems could be used. Figure 2 shows applications of these systems in the publications that we have analyzed. It can be seen that those applications that use cameras or other types of remote sensing equipment are the most prominent, such as photogrammetry, video surveillance, traffic monitoring, search and rescue, etc. Applications as loads carrying and networks also get lots of attention. The "None" column in Fig. 2 is for those works where no specific applications are mentioned. For example, some papers were doing research on architecture, swarm models, algorithms for task allocations, and others.
In the following sections, we will go through applications according to Fig. 2. Also, from now on, when discussing the publications on multiple UAV systems, we will refer to those 55 papers that were chosen from the initial number of 87.

Video surveillance
Several works are dedicated to video surveillance or use it as an example application in experiments [36,48,49,55,76]. One of them [36] describes a novel system of cameramounted UAVs that can provide a coverage of multiple oriented targets. Ground control station with a master camera decides on the position of UAVs to cover the targets. Although the main application of the system is surveillance and crowd monitoring, it could be also used in other areas: infrastructure inspections, cinematography, and military applications. One of the contributions of this work was a model called Oriented Line Segment Coverage Problem (OLSC) developed to capture identified targets with their size and orientation. In [48], development of a ground control station for a multiple UAV surveillance system is discussed. An experiment was performed with two Pelicans where user approved the plan proposed by the system or created his own, and the UAVs performed the surveillance task and sent images back to the GCS. In paper [76], a multiple UAV system with stitching of video frames is presented. Their system achieves a shorter stitching time than any other existing methods with GPU acceleration. More details on this work will be given in Sec. 6. Authors of another work [65] discussed using a swarm of quadcopters for object localization and tracking. UAVs are proposed to perform patrolling and area exploration, and to localize and track suspicious objects. Two experiments were performed with a static and dynamic targets. The system control was based on a modified Particle Swarm Optimization algorithm.

Photogrammetry
Photogrammetry is the process of extracting quantitative information from photographs, especially recovering the exact positions of specific points on the surface. For photogrammetry, there are several papers that had our attention [18,19,75,77]. In Lakeside Labs, a there were several works with multiple UAVs performing imagery collection. For example, paper [75] introduces a system for registration of low-altitude visual and thermal aerial images. In the experiments an operator specified areas for observation, and the system generated accordingly the flight plans. Final mosaicing was performed on the ground.
A master thesis about the STAMP project [77] presents a method to automate the ground control point collection process. The idea behind the STAMP is that the human land surveyor will be replaced by a set of six to eleven small UAVs. The time for the field survey is supposed to be reduced to just a few minutes. The role of the UAVs would be to land on the location specified by the operator and remain in the same position on the ground during the photogrammetric flight of a "master" UAV which would take the images of the lying "slave" UAVs.
Most photogrammetry applications are based on the detection and matching of key points in different images of the same scene. Examples of key points extractors which are traditionally used include the scale-invariant feature transform (SIFT) [98], the speeded up robust features (SURF) [99], and Harris operator or Harris corner detector [100]. These algorithms are used in different tasks such as object recognition, classification, image stitching, mosaicing, video tracking, motion detection, 3D reconstruction, robotic mapping and navigation, and others. Authors of [75] also proposed their own algorithm called Rough Features Along Edges (RFAE) that was tailored specifically for their usecase of having images from different sensors.

Networks
There are several proposals to use multiple UAV systems to cover areas to improve the connection when there are disturbances in the cellular networks, which can happen during large scale events such as concerts, natural disasters, terrorist attacks, and others. Some papers discuss possible ways to create this type of system. For example, in [40], authors discuss the problem of minimizing the number of UAVs required for a continuous coverage of a given area, given the recharging requirement. In [101], authors address the problem of optimizing two criteria for a group of UAVs: maximizing the area coverage, and preserving network connectivity. Other papers like [72] discuss optimal deployment approach, [73] studied the problem of UAVs 3D placement, as well as minimizing the total transmit power, and satisfying the required data rate for the users.
The works on networks discuss either solutions for the UAVs positioning problems or the problem of their optimal movement. In the first case sometimes the problem is reduced to Circle Packing [102] or Particle Swarm Optimization [103]. The problem of movement, for example, in [40] was reduced to the Traveling Salesman Problem [104] where the salesman has limited energy capacity. Ant colony optimization algorithms [105] are used often for solving this problem as well.

Traffic monitoring
Road traffic monitoring with UAVs is a very promising field, but still very far from being used in real systems. Paper [6] describes using a system of multiple UAVs for traffic monitoring. There they present a low-complex solution for behavior analysis of drivers along with models for collaborative formation and vehicle tracing. Proposed system would allow to eliminate road site units and replace them by UAVs which could be used for multiple missions simultaneously and not bound to act as road site units at all time. This proposed system's focus is in irregular behavior detection system that can regulate road traffic and force cautious driving. Authors of [68] discuss multiple UAVaided networks, in which UAV aerial networks are incorporated directly into the ground vehicular networks to facilitate different applications. Different scenarios of these networks are discussed along with challenges and state of the art. Also, a prototype of the multi-UAV-aided vehicular networks is introduced. Another publication [69] discusses intelligent transportation systems for smart cities with the help of UAVs. There they also study applications, as well as security and privacy challenges in intelligent transportation systems scenarios.
Basically, the algorithms used in traffic monitoring for the positioning of the UAVs are the same as in the networks application discussed earlier. Apart from the problem of the most optimal location, problems such as vehicle detection, are also discussed. For example, in [6], authors referenced a work [106] that proposed a patch-gap model to deal with probabilistic identification of diseased trees, and applied it for identification of vehicles on road segments.

Loads carrying
There are several works that discuss loads carrying using multiple UAVs. Most of them mainly propose their own algorithms to deal with specific loads as, for example, suspended cables in [23]. Authors of [24] introduced a method for carrying a flexible payload and performed an experiment where six UAVs were carrying a thin flexible ring. Mellinger et al. [25] address the problem of controlling multiple quadrotors for grasping, manipulating, and transporting loads in three dimensions. Authors of [28] performed both simulations and experiments with three UAVs transporting an object by hanging cables.

SLAM
Simultaneous Localization and Mapping (SLAM) is the construction or updating a map of an unknown environment by a robot moving in it. It may be both an application and a tool assisting in order to achieve some other goals. While there are many papers discussing SLAM for a single UAV, we found only two papers that discuss using several UAVs and perform experiments with real UAVs. Paper [8] proposes an architecture for collaborative keyframe-based SLAM following a centralized paradigm. The idea is that the visual odometry is ran on board of small UAVs independently, and the central server collects all the acquired data and merges the maps. The server provides the agents with the optimized data so that they could operate based on this new information. The proposed system allows collaboration not only in mapping workspace of the UAVs but in perceiving it as well. In this particular paper, authors used ORB-SLAM2 system [107] both for tests and as an inspiration for some parts of their own system. In turn, bundle adjustment was employed using Levenberg-Marquardt g2o implementation [108].
In another paper, [30] authors proposed SLAM using an uncertainty-aware expectation maximization (EM) approach. This method incorporated uncertainty to identify inlier and outlier multi-robot data associations. Experiments were performed in three indoor and outdoor environments with two-three quadrotors equipped with 2D laser scanners. Each UAV was estimating its trajectory using the laser and an inertial 3D SLAM framework. Since individual SLAM instances running on each UAV did not perform loop closure, an EM algorithm was introduced to address the trajectory drift.
There were also several works that did not perform experiments with real UAVs but only simulations. For example, in [17], authors presented a collaborative localization framework for a team of micro aerial vehicles equipped with forward-facing monocular cameras, and tested it within Microsoft AirSim. Or [16] where authors tested collaborative relative pose estimation for two UAVs using both simulated and real publicly available datasets.
There is a number of popular SLAM algorithms used in robotics that could be potentially used in multiple UAV systems as well, such as Google Cartographer, Gmapping, Hector SLAM, and others [109]. But to the best of our knowledge, there are no works that have implemented them.

Search and rescue
Using UAVs for search and rescue operations is not a new concept but using systems of several UAVs is still not fully explored, and there are very few works discussing it. In paper [12], authors discuss a design of a UAV system for search and rescue with real-time video streaming for one or several ground control stations. The main contribution was the use of the autonomous system that could be adjusted to different levels of autonomy. UAVs could also join or leave the search making the system expandable and robust to unit failures. The system was tested in an outdoor mission with four UAVs: AscTec Pelican and AscTec Firefly, two of each type. The first ones had Bluefox color cameras, and the seconds had C920 WebCams. Authors do not detail what detection algorithms exactly were used in their work.
In another work, [43] authors discussed a concept of dynamic path planning in search and rescue missions using two teams of UAVs: fixed-wing search robots and rotorcraft rescue robots. The idea was that search robots take images to be analysed and rescue robots come to areas of interest to receive more details with cameras of higher resolution. The system was tested in two simulations of real-life scenarios, Ajka alumina sludge spill and 2010 Haiti earthquake. Authors proposed a method for homogeneous Multi-Robot Task Allocation (MRTA) and its extension Uncertain Multi-Robot Task Allocation (UMRTA). Planning was performed using hindsight optimization (HOP) [110].

Others
Apart from the aforementioned works, there were several applications that had scarce research works exploring them. Next, we list some of those applications.
A novel application of UAVs in cinematography is discussed in paper [4]. The authors propose an architecture for cooperative planning in cinematography applications as, for example, sports events filming. The system should be able to reproduce typical shots from cinematography rules autonomously, shooting both static and mobile targets. The system should also ensure smooth transitions along the shots, implementing collision avoidance and being aware of no-fly zones. Security and emergency situations would be also considered. The system should also take into account the limited resources of the UAVs, for example, the battery life. There was no experiment performed yet.
In [5], a concept of using UAVs for monitoring floods in the desert is discussed. The idea is that UAVs drop Lagrangian sensors that are not fixed in a position and move with the water, and inform about the water levels of the flood. The final goal is to cooperatively create a map of the flood, but no details of how this would be done are given.
There are several papers discussing reconnaissance with multiple agents, but most of them are abstract works reporting only on mathematical models. We could find just one paper that presents a specific application for multiple UAV system. Paper [35] is about research on cooperative area reconnaissance using multiple UAVs. The main contribution was in presenting and verifying higher effectiveness of new models for area reconnaissance with multiple UAVs in complex dynamic environments. The goal was to obtain optimum efficiency but ensure real-time processing. Mathematical model and optimization framework were established, and multi-thread technology was applied for simulations to verify validity of proposed methods. Particle swarm optimization based simulated annealing [111] (SAPSO) was used in order to find efficient online cooperative routes planning method.
Firefighting is one of the first applications where it was considered to use multiple UAVs. In the book chapter [11], authors summarize some of the works and describe an architecture of a cooperative unmanned aerial system in forest firefighting. Several experiments were performed. In one, two helicopters were used to detect and confirm the fire. One helicopter was gathering information with its fire detector, and when an alarm was detected, the central station would replace the helicopter by another one carrying an infrared camera to take images of the area where alarm was detected. In another experiment a helicopter detected fire with an infrared camera as well, and the second UAV deployed droppable sensor nodes. In order to detect fire on recorded videos, a learning method from paper [112] was adopted that used color histograms and motion information for detection.
Apart from imagery collection, there are also several works where collecting information was performed using different types of sensors. For example, in [7], the use of several low-cost UAVs for detecting nuclear radiation in a disaster was addressed. The UAVs flew in circles or squares and built contour maps in a cooperative manner.
While there are several works on meteorology with a single UAV usage, only one project can be found where multiple UAVs are intended to be used. Paper [37] is a description of a simulation system for a fleet of UAVs with a task of probing clouds. A system level simulation infrastructure is presented that should help with the integration of different software managing a fleet of UAVs. The idea behind the system architecture is as follows. User will define goals to gather information in some volume, UAVs are allocated to corresponding goals, get measurements and send them back to GCS. Information obtained by GCS is then used to define trajectories so that flying time will be maximized. Unfortunately, no real-life experiments were performed. In this paper, authors used a macroscopic parametrized model of the cloud [113]. The approach uses a Gaussian Processes Regression framework to build a dense model of wind fields from sparse data. The obtained local map is then exploited by a trajectory planner based on a stochastic optimization algorithm.
Security concerns regarding misuse of UAVs are already emerging and going to draw even more attention in the future. One of the papers that discusses using multiple UAVs in the area of protection against malicious UAVs is [20]. The idea presented in the paper is to use a swarm of UAVs to chase and escort a malicious UAV out of restricted area. There was no real experiment performed, but only a simulation proving the idea to be viable. The idea of the system is as follows. A system gets a signal that there is a malicious UAV approaching a restricted zone. A team of UAVs are deployed, form a 3D cluster in the shape of a semisphere. When the cluster intercepts the UAV, the UAVs of the team get closer to each other and enclose the malicious UAV inside the sphere. Further, the team will move it away from the restricted area according to the assumption that the malicious UAV will try to avoid collision with other UAVs, hence the team can direct its trajectory. K-hop clustering algorithm (KHOPCA) [114] was used in this work for such reasons as simple leader election, and suitability for highly-dynamic networks.
Another work related to security is [64] where authors discuss using a team of UAVs to perform secure location verification of devices' positions by means of received power. There was no experiment performed but only a simulation showing that a swarm of only three UAVs could detect more than 99% of false reported location attacks.
Although not reported in scientific papers, UAVs are also used in entertainment. From time to time large events happen like Intel light show, where they used 2018 UAVs, and beat the world record for the biggest number of UAVs used in one show. b Another example is a show from EHang company. c They performed a formation light show with one thousand UAVs at the Guangzhou city center for celebrating the Chinese traditional Lantern Festival. Publications for this type of application are almost non-existent apart from regular articles on the internet. There is a report [115] discussing safety and reliability concerns, as well as current solutions for UAV systems used in the entertainment. There is also a master thesis [21] discussing possible flying displays of multiple UAVs. Unfortunately, the experiments were performed only with one UAV. There was also a work [66] that discussed using a swarm of four UAVs to perform cooperative construction work for an architecture installation.
It is also worth to mention that there are some works discussing competitions using teams of UAVs as, for example, in [29] where several teams competed in a tag game of 25 UAVs in each swarm, or [32] where teams of UAVs were navigating through a room full of obstacles.
Next, we will provide a taxonomy of multiple UAV systems based on those works that were covered in this section and elaborate more on data processing and communication.

Taxonomy
In this section, we will work a full classification of the multiple UAV systems. There are several different ways in which these systems can be classified. For example, they could be classified by the number of vehicles, the type of their flight formation, the way the user interacts with the system, etc. Having analyzed publications on multiple UAV systems we extracted a taxonomy from the most relevant features of multiple UAV systems. The developed taxonomy is summarized in Fig. 3 and fully presented in the following sections.
All the classifications of the taxonomy are fully orthogonal with the rest, like in a multi-dimensions volume, except for the last three, which have interdependencies between them. This means that a classification in one of the taxonomy axis can be combined with any classification of the other axis. Note that, in case of a mission with a number of different mission stages, each stage could reach different classifications. In order to make the proposal clear, we will refer to the context of single-stage missions.

Collective organization
In [116], where taxonomy for multi-agent robotics is discussed, there is the following classification of the robots' collective by the size: To classify a multiple UAV system, we do not require the first type of having a single robot. Moreover, we do not see the need of having both types for a pair of robots, and for a group of a limited number of robots. The type of a pair of robots is redundant and we will not include it in our classification. The swarm survey [10] also has a classification of multiple UAV systems. They classify a group of UAVs to teams, formations, or swarms. Teams are said to have less than ten vehicles with each agent optimizing individual objectives. Formations usually have tens of agents and each agent typically has a specific task. The biggest ones are swarms, having "dispensable" agents. We find this classification not very precise. We would also like to note that there are some discrepancies in how swarm is defined in the literature. For example, in [9], it is said that specific feature of swarms is decentralized control. It does not say anything on the number of UAVs. But, for example, taking a paper [14], they discuss both centralized and decentralized control. Moreover, we noticed that some papers do not describe their system of UAVs as a swarm though they could be described as swarms. Hence, in our classifications we will not use the term swarm for its ambiguity.
The number of UAVs used in experiments was analyzed. Figure 4 shows how many UAVs were used in experiments. It can be seen that in some cases experiments were performed only with one UAV. For example, in [49], there was an experiment with five UAVs where four of them were simulated and only one was real. In [77], where it was necessary to place multiple UAVs on the field as Ground Control Points, metal dummies were used instead. In other works, single UAVs were used due to the early stage of the projects. The most popular option was to have tests with We have performed an analysis of number of papers on what the maximum number of UAVs presented systems could possibly have. In most of the cases, around 95% (52 papers), the maximum number of UAVs is not specified explicitly. The rest of the cases reported explicit limitation on number of possible UAVs. For example, in a paper [76], that discussed a surveillance system performing real-time video stitching from several sources, there could not be more than 12 UAVs due to some internal limitations of the system. And in another work [16], it was specifically described about having just two UAVs for a relative pose estimation with overlapping field of view.
Our proposal is to classify multiple UAVs by their numbers in a similar manner as it is done in the Air Force. A flight, the smallest official unit, is an ambiguous term. Hence, we will replace it by a team as in [10]. Team will consist usually of less than ten UAVs. One squadron consists of more than one team. The differences between teams in a squadron are usually in their functionality. All squadrons form together a group. Further, in Sec. 5.5 a classification of teams by tasks will be given.

Spatial relations
When having several UAVs in the air, we can speak about spatial architecturethe way UAVs fly relatively to each other. To the best of our knowledge, there are no papers discussing different types of spatial architecture. The closest we could find was a classification from [9] with the following categories: (i) Physical coupling: When several UAVs are connected to each other. This is the case for the missions involving loads transportation, as, for example, in [25] where transportation of rigid bodies in a cooperative manner was considered. (ii) Formation: UAVs maintain constant distances between each other. This is similar to physical coupling but without the actual physical link between UAVs. This would be the case for [76] where UAVs have to move in parallel for stitching the videos. (iii) Swarms: Teams of multiple UAVs that move without relative constraints. They have collective behavior. For example, in [20] swarm of UAVs pursues a malicious UAV, converts to surrounding it formation and escorts it out of the restricted zone. In [52], it is said: "Swarm intelligent systems generally exhibit decentralized control achieved through simple agent behaviors and interactions developing a self-organization that is considered an emergence of order from the system". Readers interested in applications of UAV swarms could address to [52]. (iv) Intentional cooperation: A team of UAVs where each UAV has its own individual task. This would be the case, for example, for one of the experiments described in [11] where one UAV was detecting fire with infrared camera, and the second UAV was dropping special sensor to read data from the ground.
We classified the analyzed papers accordingly. Results can be found in Fig. 5. It can be seen that the largest number of papers discuss mostly swarms and intentional cooperation, while having restricted movement was not an extended choice. Most of the papers about swarms are research proposals in the field of robotics. While the first two types contain information about spatial relations between UAVs, the last two imply other features as well. Our proposal is to remove all irrelevant information from that classification and leave only three types of spatial architecture: . Physical coupling: UAVs connected by physical links. . Virtual coupling: the same as term "Formation" in [9], when UAVs move on fixed distances from each other.

Temporal relations
We noticed that in some of the papers it was stated that they worked with multiple UAVs but in fact not more than one UAV was in the air during the course of the missions. Hence, we decided to come up with a way to classify the flights where UAVs could fly in different time intervals. Not considering the take-off and landing, we classify flights to . Simultaneous: When at any moment of mission execution time all the fleet is in the air. This is the most frequent type of flights. . Asynchronous: When during the mission including multiple UAVs there are moments when not all the UAVs from the fleet are in the air.
Further, we classify asynchronous flights to . Sequential flights: When during all the time of a mission execution there is never more than one UAV in the air. For example, in STAMP project [77] UAVs would be placed sequentially on the ground and final master UAV would fly over the field and take photos. . Stand-in: This scenario can happen, for example, when there is one active UAV but when its battery is running out, it sends a signal to the base, another UAV takes off, flies to the same spot and when it is ready to take control, the first UAV goes back to its base. This, for example, was implemented in [19].
. Call-in: One or more UAVs operate and when some condition is encountered they call "for help" other UAVs. For example, in [70], they consider a scenario with a highlevel swarm of fixed-wing UAVs detecting an area of interest and sending a swarm of low-level rotorcraft fleet to perform a surveillance of that area.
As it was already said, simultaneous flights were the most popular type with around 95% of the papers describing it. We could find only three papers discussing asynchronous types. All the examples are provided above.

UAV similarity
In paper [116] that discusses taxonomy for multi-agent robotics, the following classification by collective composition is provided for ensembles of robots: . Identical: the collective consists of homogeneous units in both form and function . Homogeneous: the collective consists of units with the same physical characteristics . Heterogeneous: the collective consists of units different from each other by physical characteristics.
We adopted this classification for a group of UAVs as follows. We will call it as a classification by homogeneity: . Identical UAVs: All UAVs are of the same type (rotorcraft, blimp, fixed-wing), of the same model and having the same type of payload. All swarm-related works would fit as an example here. . Similar UAVs: UAVs of the same type but could be of different models with slightly different characteristics, and possibly with different payload. . Heterogeneous UAVs: UAVs of different types, for example, rotorcraft and fixed-wing. For example, in [12], they say that ideally, in their system for Search and Rescue, they could have heterogeneous UAVs.
We analyzed the types of UAVs homogeneity discussed in the papers. Results are presented in Fig. 6. Only in around 50% (27 papers), it was explicitly stated which type of UAVs would be used in a general case. In 12 cases, it was said that UAVs can be of similar type, in 9 identical, and heterogeneous in 6 cases.

Task separation
The classification from [9] that was discussed in Sec. 5.2 differentiates the intentional cooperation from other types as having separate tasks for different UAVs. Accordingly, we think that it is important to introduce a classification for Fig. 5. Multiple UAV architectures according to the classification given in [9]. NAdata are not available.
tasks separation. Our proposal is to divide multiple UAV systems in two types: functional and cross-functional.
. Functional: When all UAVs perform the same task. This is the case in [37] where a team of UAVs measure different characteristics of a cloud. . Cross-functional: When all UAVs have different tasks.
For example, in one of the experiments in paper [11] there were two UAVs with different goals. The goal of one UAV was to detect a fire, and the second one to drop sensors in the area nearby.
Almost all analyzed papers discuss UAVs sharing the same tasks. There are some papers like [69] discussing transportation systems for smart cities that talk about possibilities of having such systems in the future where UAVs would have different tasks. But nowadays research works with UAVs having different tasks almost non-existent. Rare examples are [11] having one UAV detecting fire with a thermal camera, and the second one dropping sensors, and [77] with separation to slave UAVs and a master UAV that perform different tasks.

Mission control
Classification by control centralization was discussed multiple times in the literature, both related and unrelated to multiple UAV systems. For example, in [14], it is discussed which type of control of a swarm is more optimal, centralized or decentralized. Here, we present a simple classification by control centralization . Centralized control: GCS manages the flight parameters of all UAVs. This is the case, for example, in [36] where they presented a system that provides a coverage of targets using UAVs with cameras. There is a central module that uses input from a stationary camera and localizes UAVs. . Decentralized control: Where each UAV determines its flight parameters by itself. This is not encountered too often. Moreover, most of the works with decentralized control stay in the area of theory and simulations. For example, one such paper is [20] where clustering is performed by performing calculations on each UAV. . Mixed: Both GCS and UAVs determine flight parameters. This is the case for the Crazyswarm from [39] where GCS sends complete trajectory descriptions to the vehicles.
Not many papers report on which type of control centralization was used in the proposed multiple UAV systems. We counted only 14 works with decentralized systems, five with centralized, and three with mixed.

User interaction
The more UAVs are in the system, the more it is difficult to operate them. One of the ways to manage such systems is to introduce more pilots. In seven out of 36 papers that explicitly mention about human's role, it is discussed that there could be any number of operators or users of the system. In 11 papers, it is described that there will be only one pilot managing the system. Rest of the papers do not discuss the matter of single vs. multiple users.
Operating the system usually consists of specifying areas to be observed on a digital map [60,75], no-flight zones [35], or using specially designed mission intent languages [4,34,37,49,50]. Both ways actually have the same underlying implementation as the information about checkpoints on the map gets translated to those languages. Different level of details can be specified depending on the mission requirements. For example, in [75], apart from specifying area to be observed user can specify quality parameters for each area: the spatial and temporal resolution of the generated overview image; or on the other hand in [48] only simple tasks are considered. Having analyzed a number of papers, we noticed that most of the works (> 70%) that state clear the means of interaction with the system report digital maps as the chosen tool.
With more and more works emerging that discuss multiple UAVs, it is clear that new methods of controlling them are needed along with methods to display necessary information in order to facilitate with control. There are several papers that discuss this matter. For example, in [82], new control mode by means of the throttle and stick is discussed to facilitate control of multiple UAVs. Different designs of the visual representation were discussed as well. Authors performed tests that showed that using the new control method, times were decreased for tracks construction. For the details of the way how the functionality of the stick and throttle controllers was remapped, see the full paper.
Several works exist on pre-planning of the mission by user with the aid of mission intent languages. One of the papers worth to mention is [34]. There they discuss generation of flight intent from mission intent for multiple UAV systems. They reference Flight Intent Description Language (FIDL) and Aircraft Intent Description Language (AIDL), both were defined by Boeing Research & Technology Europe.
We can classify user interaction to (i) Real-time user interaction: In this case, user interacts with a system in real-time. Here again, the example could be the [19] where operator flies the UAV to a specific location and only after that the system becomes fully automated. (ii) Pre-planning: User specifies the plan for the mission stage in advance. This is the case for [4] where they develop a system for cinematography planning. (iii) No user interaction: System manages everything without interference from a user. We could not find any real-life experiments or systems that would exhibit such qualities, but only theoretical works abstracted from human operators.
More than 70% of the papers report having full missions or single mission stages with pre-planning. There are no works where full mission would be completed without user interaction. Around 30% of the papers have mission stages where operator has to be in full control of the vehicles operating in real-time.

Automatic planning
By automatic planning, we mean the way the multiple UAV system is planning trajectory and building the mission plan. Planning can be performed by UAVs, by GCS, or by both in a collaborative manner. We classify automatic planning to: (i) No algorithm assignment: Simplest case of when the system is not assisting in constructing trajectories or building the plan of the mission. This is the case, for example, for the first mission stage in [19] where operator flies the UAV to the center of the field from where it starts automated flight. (ii) Fixed algorithm assignment: System plans the course of the mission stage in advance. Knowing initial coordinates of the UAV and time elapsed since the beginning of the mission stage we can say where the UAV is located and what actions related to the mission it is performing at any moment to some level of certainty. This could be the case, for example, for flying digital displays, as presented in [21]. (iii) Dynamic algorithm assignment: During the course of the mission stage, system actively analyzes information obtained from sensors or other sources and decides where to go and what to do on the go. This is the most frequently encountered class, and for example, it is the case in Search and Rescue missions, like in [12].
The last two classes could be also associated with levels of freedom of the system. For fixed algorithm assignment, the system is restricted to operate only within some boundaries, and for the dynamic algorithms assignment, the system is more free to choose the appropriate course of action.
Though we expect that all dynamic multiple UAV systems actually to have some levels of restrictions. For example, there can be no-flight zones or some zones simply would be physically unreachable for these UAVs. An example of a multiple UAV operation with no-flight zones is [35] where UAVs perform area reconnaissance and trying to avoid enemies.
Analysis of a set of papers showed that currently there is more interest in applications where systems have dynamic algorithms assignment. Namely, less than 35% of the papers that we analyzed, discussed having only fixed algorithms planning.

System autonomy
The problem of classification of a system's autonomy is not new. One of the first works that tried to classify it was [117]. Their classification is presented in Fig. 7. While it tried to outline basic features of system autonomy, it doesn't have necessary quantitative definitions that we would require to classify multiple UAV systems.
In [118], the following classification of levels of autonomy was provided: When speaking particularly about multiple UAV system autonomy, by the time when the current paper was written, to the best of our knowledge, there were no systems that would exceed level 5 of the presented classification. Hence, we find that classification pretty extensive for our purposes and search for more concise one. In [83], different levels of autonomy in application to imagery collection are discussed. Those are as follows: (i) Teleoperation: Operator manages UAVs. UAVs have only navigational autonomy (maintaining speed, altitude, etc.) (ii) Waypoints: Geo-locations are specified by operator.
UAVs have more advanced navigational autonomy (adjusting speed, altitude, obstacle avoidance) (iii) Region scanning: User specifies area. Multi-agent coordination algorithm determines the plan. In other words, the system has a path-planning autonomy. (iv) Flexible coordination: System can decide dynamically reallocate the order of performed tasks based on their priorities.
We can adapt this classification for a broader class of multiple UAV missions, and we can limit it to only three broad classes of system autonomy. When speaking about a system autonomy of a single UAV, we will consider the following classes: (i) Low-level autonomy: The trajectory and the actions related to the mission are defined mostly by operator. This is, for example, the case for [76] where UAVs follow a pre-planned route. (ii) Medium-level autonomy: Both operator and system manage the flight. Here, we cannot be sure about the UAV state in advance as the system also necessarily takes decisions about altering trajectories and performing actions related to missions' tasks. Different ways of managing the flight from both of them will be discussed later. As an example, in [75], operator first specifies areas to be observed and defines quality parameters. Then, based on the input the system generates, a plan for each UAV to cover those areas. (iii) High-level autonomy: There is absolutely no interference from the operators during the course of the mission stage or during the pre-planning. The system determines its set of actions completely by itself. Currently, these systems do not exist but there are many works that discuss possibilities of having such systems, for example, as in [69], when discusses UAV-enabled intelligent transportation systems for the smart city.

Proposed autonomy levels
Most of the aforementioned classifications do not have any connections between themselves. But there are some cases though when one type of the multiple UAV system cannot have both properties from two different classifications at the same time. For example, when there is physical or virtual coupling, flight cannot be asynchronous. Or if UAVs have physical link, it would be unreasonable if they performed different tasks. Also, if the system does not perform automatic planning, then there is no sense in specifying if control is centralized or decentralized. There is a strong connection between user interaction and automatic planning. Multiple UAV system cannot have real-time interaction with user and fixed algorithm assignment at the same time because in this case there is a conflict of interests, and it does not have much sense to have the mission stage pre-planned by the system and then having user intervene during that stage. But if this happens, then it will make sense to split that mission stage into several stages: one before user intervention, and the second one, where user interacts with the system. Note that it is still possible to have dynamic automatic planning and real-time user interaction, as, for example, the UAV system could get advises from the user during the course of the mission stage. Also, it is impossible to have both no user interaction, and no algorithms assignment, as in this case the UAV Fig. 7. Task entropy vs Degree of Automation [117].
Applications of Multiple UAV Systems: A Survey 161 system would be without any control. To sum up all the connections between user-planning, automatic planning, and system autonomy levels, we present Fig. 8. Alternatively, we grouped these classifications in Table 2. Only seven different classes were derived comparing to ten provided by [118]. Some items of our classification correlate with those 10 levels. The comparison is included in the table. A number of papers were analyzed to see which levels of autonomy are present in their systems. The results can be seen in Fig. 9.
There were not many papers that we could classify, as the majority of works did not provide enough details on their multiple UAV systems. But from those publications that we could classify, it can be seen that the most popular level of autonomy is level five where user predefines a set of rules for the mission stage and the system dynamically decides what to do during the course how to achieve the mission goals. This is, for example, the case for [12] where user predefines an area to search for a target and UAV system takes decisions on how to do it efficiently by itself. Also, it can be seen that there are no papers with level one where system does not offer any assistance. We assume that it is because it is difficult to control a multiple UAV system only by means of human operators. There were no papers that would exhibit features of the highest level seven as well. And there was only one paper with level six, this is [48] where in the experiment the system can propose the plan for the mission and the user can approve it. We understand that it is arguable that there is no pre-planning from the user's side in this case, but approving or disapproving the plan does not give any information to the system so that it would plan the mission course based on that information.

Data Processing
This section focuses on payload data processing, which can be of two types: real-time processing when UAVs, GCS, or a remote server get the raw data from the sensors and perform necessary actions to retrieve useful information from it during the flight; or post-processing when the data are collected completely and users perform necessary actions to retrieve useful information from the raw data after the flight is over.
Sensor data processing details are given in Fig. 10. It can be seen that 37 papers did not report any processing. This is due to the fact that most of them discussed system architecture, algorithms, etc. or did not provide enough details on data processing. Just two papers reported post-processing: [75] with its registration of visual and thermal images, and the STAMP project [77], while 16 papers discussed real-time processing. Such difference is due to many reasons. First of all, in some applications, getting processed real data are of utmost importance. In some cases, it would not be affordable to have to wait until the data get processed on the ground. This is the case, for example, for firefighting [11] or search and rescue missions [12]. In other cases, it could be due to the willingness of the users to get data as soon as possible and not to wait for it to be processed. Post-processing, on the other hand, can be done when there is no practical difference about when the processed data should be obtained, during the flight or after it, or when high computational resources are required.
Data processing can be also divided into the following three types as in Sec. 5.6: centralized, decentralized, and mixed architecture. Centralized architecture implies that all the computing happens on one machine, usually on GCS. In a decentralized architecture, computations are distributed among members of the system, and there is no postprocessing of the data obtained from the UAVs. In mixed architecture, there is both processing on board and processing at GCS.
For a centralized real-time sensor data processing, we found only one paper [37] where they were probing clouds with a fleet of fixed-wing UAVs. There was no experiment performed in this paper, but only a simulation. In the simulation, UAVs acquired wind measurements and sent them back to GCS which was performing mapping. Authors mentioned in conclusions that in the future they would consider performing mapping on-board to remove a permanent communication link with GCS. In other words, they considered central processing to have a drawback, and chose to switch in the future to decentralized or mixed.
Most of the works that describe decentralized processing work with image processing. Most of them do not report on performing a real-life experiment. Some authors, for example, work with prerecorded videos as in [16] that presented a work on relative pose estimation of a pair of UAVs that have overlapping fields of view, or, as in [17], working on monocular vision-based collaborative localization where their algorithm was tested offline on a pre-recorded data. In a paper [18] where the authors developed a framework for multiple UAV cooperative mapping and control with image based visual servoing, a map full of feature points was simulated.
There was a real experiment performed in [12]. Detection algorithm was running on all UAVs searching for patterns or specific features. All the processing tools of the system were embedded by OpenCV. No specific details were given on the image processing algorithms.
Another example of a work with a performed experiment is [36]. It was reported that the system used a centralized flight control but a decentralized processing of videos with each UAV running facial detection algorithms on board.
An example of a paper where processing was both on GCS and UAVs was a SkyStitch project [76]. In order to improve speed and quality of the stitching of the videos, they incorporated distributed feature extraction for reducing a workload of a GCS, using hints from flight controllers for improving stitching efficiency and a state estimation model based on a Kalman filter to mitigate jerkiness. Two experiments were performed with different ground scenarios: rich in features, grass field covered by leaves, and a running track with few features. OpenCV was chosen as a benchmark for comparison of stitching algorithms. Results showed that the algorithm implemented in this paper Fig. 9. Distribution of autonomy levels in analyzed papers according to Table 2. NAdata are not available. There were not many examples of experimental works with post-processing. One of them was [75], the work on registration of low-altitude visual and thermal aerial images. The main contribution of the paper is the introduction of a feature descriptor method for identifying corresponding image regions which appeared to be superior to standard methods. They also discussed registration of mosaics and depth maps. Both registration of images on board and at GCS were tested mosaicing performed on the ground. While registration on board was twice slower, it was still enough for their test case, where one image was taken each 10 seconds.
We also analyzed papers on the presence of information about the payload and its price. Only around 40% (23) of the papers talk about payload. Most of them speak about low-cost sensors and just three of the papers speak about high-tech payload. Those are [75] speaking about thermal imaging, [55] having LiDaR simulated in their works, and [35] speaking about cooperative area reconnaissance using lasers. No experiments were performed in those works, but only simulations. So, in total, just one paper [75] had multiple UAVs carrying high-tech payload which consisted of thermal cameras.

Communication Technologies
An unmanned aerial system (UAS) is defined as the set of three elements: the UAV, the GCS, and the communication link. The communication link is usually named as command and control (C2 or C&C). Most UAS communication links inherited the frequency bands reserved for radio-controlled aircraft used for hobby. Some expensive UAS, able to fly beyond radio line of sight, such as NASA and military UAS, extend their communications C2 capabilities using also satellite communication links. Still, to send data related with the UAS payload, a new channel is proposed, sometimes combined with the C2 and then named C3 or CCC (command, control and communication). In the case of a multiple UAV system, a number of new channels appear that extend the communication link between vehicle and ground station.
In a multiple UAV system, there could be different channels of communications. The most basic channel is V2Gvehicle-to-ground. Here, UAV could send or obtain flight and mission-related data from GCS. Another type which is encountered in many multiple UAV systems is a V2Vvehicle-to-vehicle. This channel could be used, for example, in cases when some UAVs are far away from GCS and information has to be passed in a chain, from one UAV to another. V2Ivehicle-to-infrastructure, could be used for connecting UAVs to cellular networks. S2Vsensor-tovehicle, useful in applications where UAVs communicate with sensors on the ground. G2Iground-to-infrastructure -connection between GCS and the rest of the world, for example, internet. All the types of communication are shown in Fig. 11.
A number of papers were analyzed to see what technologies were used for networking in multiple UAV systems. Results are shown in Fig. 12. It can be seen that there are very little number of papers that report what technologies were used due to the fact that the main topics of those works were not related to communications. It can also be seen that the most popular technologies were WiFi and XBee-Pro. Both have different types of usage. While the first one is mostly used for sending images or video from UAV to GCS, the second one is mostly used for sending telemetry data. The ranges of both of them are similar -several hundred meters, but can be extended using high gain antennas or other extending devices. All the analyzed works reported having Radio Frequency and none of them had LTE, 4G or 5G. Fig. 11. Possible connection types in a multiple UAV system. Fig. 12. Number of papers that discussed possible or used technologies for communications. NAthose papers that did not report on the communication.
Paper [5] was the only work that discussed link between droppable sensors and UAVs. They chose XBee Pro 802.15.4 transceiver to pass ID codes of the sensors. Some challenges that were encountered were: UAV has to fly on very low altitudes due to the source's power; the rate of sending ID codes should not be high, as with many sensors there would be too much data coming in to UAV. In [48], where the authors developed a GCS for multiple UAV surveillance system, they used WLAN Router to connect UAVs and GCS, and Xbee radio link was used for sending telemetry data. The same idea of using 802.11a WiFi standard for data and XBee for telemetry was also discussed in, [68]. But in their case they would also use it for both V2V and V2G channels.
In the SkyStich project, [76] they used 802.11abng standard WiFi to pass video from UAVs for further stitching. Another work that discussed passing images from cameras was [12], but the standard of WiFi was chosen to be 802.11s which is used for mesh networks. The same standard was also considered in [69], as well as DSRC and 4GLTE.

Future Challenges and Trends
Multiple UAV systems is a growing topic. Not many applications using these systems exist to this moment. We have discussed those applications in Sec. 4, but it is expected that there will be more applications emerging in the future that will use these systems due to their advantages. But, as using multiple UAVs is a relatively new topic, still there are multiple challenges that wait to be addressedstarting from algorithms and architectures, ending with legislation and safety regulations.
Currently, there are a large number of theoretical works touching the multi-agent problems, but not many works discuss real-world applications. By analyzing research works discussing applications, it can be seen that just around half of them report on performing real-life experiments including several UAVs (55%). There are a number of papers that report on performing only simulations (42%), and just one paper discussing a concept (3%). Figure 13 shows the distribution of the papers that reported on performing experiments or simulations. The only paper that was included in our analysis but did not have neither experiments nor simulations was [4] discussing a multiple UAV system for cinematography. Their application description has enough details to be classified, hence it was included in the survey. It is worthy to note that several analyzed papers discuss generic futuristic ideas, but the experiments reported there do not match the presented ideas.
The problem of developing different kinds of models for multiple UAV systems recently got more attention. In [51], authors report that there is a need for development of multiple UAV systems architecture assessment models. In their work, they presented their assessment model and mentioned that their work is just a starting point and still more work is needed in this area. In an other paper [38], it is also said that having multiple UAVs in a system poses a challenge in developing an appropriate mission model. There they propose a methodology to develop it and analyze different techniques. Authors of [55] reported that there is a need in modern multiple UAV systems simulators. According to them, payload modeling is a very important problem. There they discussed this type of simulator, and tested it on an area coverage mission experiment.
Another problem of utmost importance that has to be solved before multiple UAV systems become widely used is the problem of path planning and logistics. There are several works discussing algorithms planning [41]. The problem of balancing automation and human control is also being addressed [119]. Paper [10] describes a problem of logistics and power management. They give an example of a work where from 60 minutes only 10 minutes all UAVs were in the air, and the rest of the time was spent on safe landing and taking off. Having multiple charging pads is also a problem.
Finally, another important problem to be addressed relates to safety and legislation issues. Currently, there are not many works regarding these topics. Only [84,85] discussing safety issues of UAVs has a brief cover of multiple UAV systems safety-related problems. Indeed, more work should be done in this area in order to enable multiple UAV systems to be used extensively in everyday life. And when all these problems are resolved, we shall see more applications of multiple UAV systems used in real life, such as goods delivery, flying unmanned taxis, and others.

Conclusions
In this work, we presented different applications of multiple UAV systems developed in recent years. Based on those works, we proposed a nomenclature and taxonomy for these systems. Payload data processing and network technologies were covered, as well as future challenges for multiple UAV systems.