1. Introduction
Unmanned Aerial Vehicles (UAVs), commonly known as drones, will replace most human labor, especially in dangerous places and tedious tasks. The world’s largest drone companies (e.g., DJI, Parrot, and 3DR) have already launched commercial drone service in various fields such as agriculture, mapping, and infrastructure inspection. Unfortunately, at the current level of service, there is a limit to the number of drones to be performed simultaneously because a skilled human operator must intervene in the entire process of the operation. However, to overcome the small payload capacity and short operating range of a single drone, it is essential to deploy multiple drones at industrial sites and increase autonomy. Researchers also have increased interest in the autonomous operation of drones using artificial intelligence, but it is still difficult to apply them to a single drone. For these reasons, research on autonomous missions using multiple drones is still in its early stages.
Otto et al. [
1] classified the autonomous missions that can be performed by UAVs into area coverage [
2], search [
3], routing [
4,
5], data collection, and communication relay: the area coverage mission applies to building inspection and pesticide spraying; the search mission applies to rescue service and wildfire suppression; the routing mission applies to transport and parcel delivery. The main difference between the area coverage and search missions is whether the environment in which the mission is performed is previously known or not. The area coverage mission first defines a finite area and then makes UAVs thoroughly monitor that area with equipped sensors. On the other hand, the search mission aims to detect particular targets in an unknown environment. Therefore, a different strategy with the coverage mission is needed to accurately estimate the target location and expand the search area in a minimal amount of time. Note that the methodologies proposed for the area coverage mission can be the simplest solution for the search mission. When the area coverage method applies to the search mission, UAVs gradually scan the entire area regardless of time and eventually encounter the target. For that reason, this study takes the area coverage mission as a starting point. In the following, we will review recent research related to the area coverage mission.
Most of the previous research carrying out the coverage mission has focused on generating a coverage pattern for exploring the given area with a single drone. Typical geometric patterns to explore the given area are divided into the back-and-forth movement [
2], spiral pattern [
6], and grid-based method [
7]. Among several coverage patterns, the back-and-forth movement can be considered the most energy-efficient [
1]. The reason is that when the UAV changes its flight direction by making a sharp turn, it needs to slow down, rotate, and then speed up again. Thus, as the number of turning maneuvers increases, the UAV consumes more energy [
8].
On the other hand, only a few studies have performed the area coverage mission using multiple vehicles. Most of them have adopted a two-step procedure consisting of (i) area partitioning and (ii) subarea assignment. Peterson et al. developed a multi-robot system of UAV and UGV to localize radioactive materials by covering a given area [
9]. Barrientos et al. presented a multi-UAV system for aerial imaging applied to precision agriculture and conducted extensive field tests [
10]. In their works, after the preprocessing of dividing a given area into several smaller subareas and assigning the divided subareas to unmanned vehicles, each unmanned vehicle performs coverage path planning to explore the allocated subareas. However, a considerable effort is required to decompose the given area into subareas reasonably and then effectively assigns the subarea to each UAV, considering the capability of UAVs. In contrast, Avellar et al. proposed a novel approach that allows multiple UAVs to achieve cooperative area coverage by increasing the vehicle’s decision-making autonomy without dividing the area in advance [
2]. To be more specific, a given area could be transformed into a list of waypoints by applying the back-and-forth movement. As UAVs have to visit the list of waypoints, the area coverage mission can eventually be modeled as the multiple Traveling Salesman Problem (TSP). Aevellar et al. used Mixed Integer Linear Programming (MILP) to solve the TSP. Various optimization methods such as metaheuristics [
11] and hybrid methods [
12] allow us to calculate the optimal solutions of the TSP.
It is also important to configure the entire hardware and software system from operator input to motor command. However, relatively few studies have been devoted to the construction of the entire mission execution framework. Valente et al. proposed taking aerial images and building a map through image stitching for precision agriculture [
13]. In their system, the mission area is sampled with a grid of constant size, and then a path is generated to perform full coverage with the minimum number of turns without revisiting the grid. However, their work was limited in that only one UAV participated in the mission, and that area information to perform coverage was provided to the UAV in advance. Garzon et al. presented a multi-robot system including software, hardware, and communication architecture for a signal search mission [
14]. However, their system applied to Unmanned Ground Vehicles (UGVs), not UAVs, and thus focused on comparing two different approaches to coverage path planning techniques (i.e., the back-and-forth movement and the spiral pattern). Besides, few studies have conducted field tests to verify the performance of the mission system. Nedjati et al. presented a new multi-tour coverage for a post-earthquake response system that collects images at the earthquake site and builds a map to extract useful information [
15]. Yao et al. proposed inspecting urban buildings by assigning buildings to UAVs and generating optimal spherical coverage patterns around the buildings [
16]. However, both previous studies presented only the results of numerical simulations without performing experiments using real hardware. Acevedo et al. studied a more practical coverage algorithm in which subareas are assigned to heterogeneous aerial robots, taking into account their various sensing and motion capabilities [
17]. Mansouri et al. developed a more sophisticated coverage method that considers the camera movement and acquired the stitched image by collecting image streams during the coverage mission [
18]. However, these previous studies are still unfortunate as indoor flight tests have been conducted in limited space because most practical applications of the area coverage mission run outdoors. In other words, indoor experiments cannot be sufficient validation because there is no wind and no GPS errors (thanks to motion capture system), which might be critical and challenging issues in a real implementation.
The primary purpose of this study is to provide the entire mission system configuration for the area coverage mission using multiple UAVs and to design the optimization problem for task assignment. More exactly, the autonomous area coverage mission begins when the operator enters parameters to define the mission through the Ground Control Station (GCS). This study designs an optimization problem to assign optimal waypoint lists to UAVs based on MILP. The optimization problem takes into account the back-and-forth movement and is intended to completely fill the given area with the footprint of multiple UAVs. When each UAV receives an optimal list of waypoints, it takes off from the ground and visits a series of waypoints in order. During the mission, the waypoint status is monitored in the proposed task management algorithm. The entire mission ends with all UAVs flying through this process and then landing. Accordingly, the following assumptions are considered in this study. First, we assume that the area covered by multiple UAVs exists in a two-dimensional space and is always convex. Second, the given area is small enough to allow the UAV to complete the mission with one full charge, and therefore we do not consider returning to the depot to recharge the battery. Third, it is assumed that all UAVs participating in the mission have the same capability (i.e., the maximum travel distance). Forth, we consider the centralized task assignment scheme performed on GCS, so the assignment results are unilaterally transferred once to UAVs waiting on the ground. In addition, we assume that the communication range and the amount of data required for the communication between the UAV and GCS is unlimited. Lastly, we envision that the mission environment is static and clean without obstacles. It means that there are no significant problems with UAVs following the assigned waypoints, so no additional strategies are required to respond to environments with static obstacles or dynamic environments.
The contributions of this study are threefold. First, this study presents a mission execution framework ranging from operator input to motor command to perform the area coverage mission. Second, by comparison with the motivational research [
2], this study expands to multiple areas and lightens the computational complexity of optimization. Third, this study addresses various simulations and flight tests in outdoor environments to verify the proposed system’s performance. To the best of our knowledge, we provide the first multiple areas optimal coverage with multiple drones verified through outdoor experiments.
The rest of this study is organized as follows.
Section 2 defines each subsystem constituting the entire system and the interactions between subsystems.
Section 3 explains the graph building process for the task assignment subsystem in detail and provides the MILP formulation, including objective function and constraints. In
Section 4, the proposed system’s performance is verified through various simulations performing single area coverage missions with different types of polygons and different numbers of UAVs.
Section 5 presents the results of the outdoor experiment in which two hexacopters cover multiple areas designated by the operator.
Section 6 describes this study’s conclusions and discusses possible directions for future research.
2. Problem Description
Figure 1 shows the hardware and software architecture of the entire mission system from operator input to motor command. As shown in
Figure 1, the primary components of the hardware are multiple UAV platforms and one laptop computer that acts as a ground-based GCS hardware system. In terms of the software, the entire mission system consists of five subsystems; GCS software for task definition and task monitoring, task assignment, task management, path planning, and flight control subsystems. All of these subsystems work under the Robot Operating System (ROS) framework [
19]. Note that GCS software and task assignment subsystems work on the laptop computer. On the other hand, task management, path planning, and flight control subsystems operate on an on-board computer mounted on each UAV platform. The subsections below describe each subsystem’s operations; however, the description of the flight control subsystem is omitted because the PX4 firmware [
20], which is an open-source autopilot software, is used as the flight control subsystem.
2.1. GCS Software
In this study, the GCS software is developed based on QGroundControl [
21], which is an open-source GCS working with various vehicle types supported by the PX4 firmware. In the original QGroundControl, the operator enters several parameters to define the survey, such as a polygonal area, the angle between waypoints, the spacing between waypoints, and the altitude to perform the mission. Then, QGroundControl creates a set of waypoints based on the operator inputs. Note that the waypoints generated by the original QGroundControl are (i) highly operator dependent, (ii) not optimized, and (iii) not for multiple UAVs.
The following four features are newly added to the original QGroundControl for the optimal area coverage mission using multiple UAVs aimed in this study. First, QGroundControl is modified to be able to publish and subscribe to ROS messages. For QGroundControl to work in the ROS environment, a WebSocket connection is selected to design the client structure. The rosbridge interface [
22] is implemented to communicate with other subsystems. Therefore, the operator inputs through QGroundControl are transferred to other subsystems as ROS messages. In addition, the results calculated by other subsystems are sent as ROS messages so that the operator can monitor the progress of the mission. Second, QGroundControl is expanded to perform missions using multiple UAVs. To do this, the operator needs to enter two additional inputs: the number of UAVs and the origin of the inertial coordinate. In addition, the position of each UAV in the GNSS coordinate is sent to the modified QGroundControl. After that, the relative coordinates between the inertial coordinate and the body-fixed coordinate of each UAV are defined, and the coordinate transformations are performed. For that reason, despite the operator defining the mission areas in the inertial coordinate, each UAV can transform the waypoints assigned to it in its body-fixed coordinate. Third, even if the operator does not specify the direction of the back-and-forth movement (i.e., the angle between waypoints), the proposed task assignment subsystem determines the optimal direction to cover the polygonal area. Therefore, although the operator enters fewer parameters to define the mission than the original QGroundControl, the operator can be provided with optimal mission planning. Namely, the modified QGroundControl in this study attempts to determine the optimal waypoints for multiple UAVs rather than simply flying along waypoints entered by the operator.
In summary, the primary operations of GCS software are (i) task definition determining which waypoints UAVs should visit to perform the mission and (ii) task monitoring to see the progress of the mission. The GCS software interacts with the operator and other subsystems at 1 Hz as follows. The inputs entered by the operator are the vertices of the polygonal areas, the mission altitude, the number of UAV, the spacing of waypoints, and the origin of the inertial coordinate. In addition, the GCS software needs the longitude and latitude of each UAV obtained from the GPS sensor mounted on each UAV. As the outputs for the operator, the GCS software displays the list of optimal waypoints determined by the task assignment subsystem and the status of each waypoint provided by the task management subsystem on the map. The outputs to other subsystems are the operator inputs and the relative coordinates between the inertial and the body-fixed coordinates.
2.2. Task Assignment
The primary function of the task assignment subsystem is to allocate waypoints to each UAV in order to perform the mission given by the operator optimally. The inputs required for the task assignment subsystem are the vertices of the polygonal areas, the number of UAV, and the initial position of UAV in the inertial coordinate. The outputs of the task assignment subsystem are the set of waypoints assigned to each UAV and are provided at the end of solving the optimization problem. As has been mentioned in the previous section, task reassignment is not considered in this study. However, if task reassignment is required, this subsystem needs additional inputs from the task management subsystem to solve the task reassignment problem. For example, the task reassignment problem requires additional information, such as which UAV is failed to reach the given waypoint and the residual list of waypoints. The task assignment subsystem will be discussed in detail in
Section 3.
2.3. Task Management
Task management identifies the target waypoint that a UAV should currently head to in the list of waypoints and checks whether the UAV reaches the target waypoint or not. The optimal waypoint list is subscribed from the task assignment subsystem. Because this study considers two-dimensional area coverage, the altitude of the waypoints is equal to the mission altitude defined by the operator. It is necessary to prevent collisions with other UAVs in the process of starting from the depot and moving to the mission area, moving between different polygon areas, and returning to the depot after completing the mission. Therefore, in this study, the transition altitude concept is newly introduced, where each UAV is assigned a unique transition altitude. Inside the polygonal area, a lateral safety separation is ensured due to the spacing of the waypoints. Outside of the polygonal area, a longitudinal safety separation is possible thanks to the transition altitude. In other words, as shown in
Figure 2, we consider virtual waypoints in addition to the waypoints for the coverage mission to ensure safe separation between UAVs.
When a UAV enters within a certain radius of the target waypoint, it is considered that the UAV reached the target waypoint. Although the task reassignment problem is beyond this study’s scope, the following strategy can be envisioned when a UAV fails to reach the target waypoint. First of all, the task management subsystem can retry the same task (i.e., visiting the target waypoint) a certain number of times. Nevertheless, if the retrial fails, the task management subsystem decides that the remaining mission should be reassigned and transfers the decision with additional information required to solve the reassignment problem to the task assignment subsystem.
In short, the inputs of the task management subsystem are the optimal waypoint list assigned for each UAV. The outputs of the task management subsystem are the status of each waypoint and information related to the task reassignment problem. Note that the task management subsystem operates at 5 Hz.
2.4. Path Planning
The role of path planning is to generate a guidance command at 50 Hz that allows a UAV to navigate to the target waypoint designated by the task management subsystem. In this study, linear velocity command
to the X-Y-Z axis of the body-fixed coordinate is considered as the guidance command to be transferred to the flight control subsystem. Therefore, the position error between the target waypoint
and the UAV’s position
is defined in the body-fixed coordinate. In order to make the position error converge to zero, the linear velocity command can be derived based on a proportional controller as follows:
where
K denotes the proportional gain matrix. In addition, the predefined maximum speed
is set for stable flight. The velocity command
is limited to ensure proper waypoint followings without exceeding the maximum speed
as follows.
5. Experiments
In this section, we present the outdoor experiment in which two hexacopters perform the coverage mission when the operator enters the mission through GCS. The most crucial parts of this outdoor experiment are the operator inputs through GCS, coverage mission for multiple areas, and real hardware implementation. The experiment was performed in an open space without any obstacles. Similar to the simulations performed in
Section 4, we built two custom hexacopters with the DJI F550 frame, as shown in
Figure 11. We used a Pixhawk4 running PX4 firmware (v1.9.0) as a Flight Control Computer (FCC). The FCC was responsible for calculating the motor inputs and controlling the hexacopter’s motion by estimating the states such as position, velocity, and attitude. Additionally, each hexacopter was equipped with an NVIDIA Xavier NX, as a companion onboard computer. The onboard computer was connected to the FCC to receive the list of waypoints, perform task management and path planning, and transfer the desired position, velocity, yaw, and yaw rate to the FCC. The laptop computer used as GCS hardware and two onboard computers mounted on hexacopters were connected to a single network over WiFi. All the hardware details are listed in
Table 3.
Figure 12 shows the outdoor experiment scenario where the operator defined the coverage mission for three polygonal areas. As shown in
Figure 12, the latitude and longitude of the origin of the inertial coordinate were set to 36.379720 deg and 127.364620 deg, respectively. The launch positions of two hexacopters were (36.379795 deg, 127.364639 deg) and (36.379852 deg, 127.364654 deg) in the GNSS coordinate, respectively. In addition, the spacing between waypoints was set to 5 m. Considering the GPS positional error, the mission altitude was set to 5 m, and the transition altitudes of two hexacopters were set to 8 m and 11 m, respectively.
Figure 13 and
Figure 14 show the visualization functions of GCS for the operator to monitor the mission.
Figure 13 shows the optimization results received by the task assignment subsystem. It can be seen from Figure.
Figure 13 that the back-and-forth movement could be generated in a direction parallel to the longest boundary line even if the operator did not enter the angle to generate the detailed waypoints within the polygon. Furthermore, the operator could identify the waypoint list assigned to each hexacopter before the flight starts and could confirm the progress of the mission.
Figure 14 shows the status of each waypoint provided by the task management subsystem. As shown in
Figure 14, three different colors were used to indicate the three types of the waypoint status; (1) gray waypoints that the hexacopter has already been reached, (2) green waypoints that the hexacopter is currently being followed (i.e., the target waypoint), and (3) default color waypoints that the hexacopter have not yet been reached. The waypoint status could also be checked with the green icons on the right panel, as shown in
Figure 14.
Figure 15 shows the task assignment results and the flight trajectories of hexacopters recorded after the flight test was completed. As shown in
Figure 15, 28 nodes were generated by the proposed graph building method to perform the coverage mission for three polygonal areas. Specifically, the waypoint lists assigned to the first and the second hexacopters were 1–14–13–11–12–10–9–7–8–6–5–3–4–1 and 2–27–28–26–25–23–24–22–21–19–20–18–17–15–16–2, respectively. Therefore, the travel distance of UAV1 and UAV2 calculated from the task assignment problem are 306.96 m and 306.43 m, respectively. Additionally, the objective function of the optimization problem was 613.65 m; the maximum flight distance was 306.96 m and the average flight distance was 306.69 m. The computation time required to solve the optimization problem was 4.61 s.
Figure 16 shows the time histories of each UAV’s states, including position, velocity, attitude, and angular rate recorded in the outdoor experiment. The total distance traveled by UAV1 and UAV2 were 337.64 m and 359.95 m, respectively. Since the virtual waypoints were added in the task management subsystem for safe separation, there was a slight difference between the distance the hexacopter actually traveled and the distance calculated in the task assignment subsystem. From these results, it can be concluded that the proposed system can perform area coverage missions more autonomously with multiple UAVs and is sufficiently applicable even in outdoor environments through real hardware implementation.
6. Conclusions
This study has attempted to establish a complete mission execution framework, from operator input to drone motor command for the autonomous and optimal area coverage mission using multiple Unmanned Aerial Vehicles (UAVs). In one communication network, the hardware system consisted of a laptop computer acting as a Ground Control Station (GCS) and several UAVs performing the mission. The software system was made up of five subsystems: (i) GCS to define the mission and monitor the whole progress of the mission, (ii) task assignment to allocate waypoints to each UAV, (iii) task management to check the waypoint status, (iv) path planning to generate a feasible path to the target waypoint, and (v) flight control to make a UAV fly to the desired path. In the task assignment subsystem, the proposed graph building method could lighten the computational complexity of the optimization problem determining the optimal pair between waypoints and UAVs while effectively generate the back-and-forth movement as well as prevent overlapping of flight areas between UAVs. The performance of the proposed system was verified through two simulations; one is through MATLAB simulation focusing on the validation of the task assignment subsystem and the other is MATLAB and Gazebo cosimulation for final validation before actual flight testing. Finally, outdoor experiments with real hardware implementations confirmed that multiple UAVs more autonomously cover multiple areas designated by the operator in the field.
For future work, this study will be expanded to following directions. First, in terms of task assignment, this study was limited in that all UAVs participating in the mission have the same capabilities. However, more research is needed to optimally distribute tasks between heterogeneous UAVs when each UAV has different maximum travel distances or different sensor specifications. Second, although this study did not consider cases where UAVs fail to reach the assigned waypoints, considerable work needs to be done to determine when mission replanning is necessary and how to resolve the replanning problem. Third, further research should be conducted on path planning strategies for carrying out the area coverage mission in a dynamic environment with obstacles previously unrecognized or moving obstacles. Lastly, although the UAV only visits the list of assigned waypoints in sequence in this study, future studies can be undertaken to perform detailed tasks at the waypoint (such as taking pictures or acquiring point cloud data). The final output of the area coverage mission will be 3D maps or 3D models that are increasingly available in agriculture, construction, mining, inspection, surveying, and public safety.