CPP Approach |
Decomposition Method |
Algorithm Processing |
Reference |
Boustrophedon |
Exact cellular |
Online |
[16] |
Spanning Tree Coverage |
Approximate cellular |
Online |
[55] |
Neural network-based |
Approximate cellular |
Online |
[54,56,57] |
Graph-based and Boundary |
Approximate cellular |
Offline |
[58] |
3.15. Multi-UAV CPP Methods
The number of applications where UAVs can be used is increasing as remote-sensing technology is developed. In the literature, there are a lot of multi-UAV CPP methods using different coverage algorithms with heterogeneous or homogeneous UAVs that were used in a variety of applications, such as agriculture [
59], surveillance [
60], mapping [
61], and search and rescue missions [
62].
Table 3 at the end of this section summarizes the multi-UAV CPP strategies and presents the CPP approach, the type of UAVs, the algorithm processing, the evaluation metrics, and the corresponding reference.
3.16. Multi-UAV Coverage
In the agricultural sector, Barrientos et al. [
13] proposed a method for area coverage using a fleet of mini aerial robots. Their method divides the area of interest in k non-overlapping subtasks and assigns them in k UAVs. A decentralized method for surveillance missions using homogeneous UAVs was proposed by Acevedo et al. [
63]. This method’s primary goal is to minimize latency, which means a short sharing time of information between the UAVs. In a later work, Acevedo et al. [
64] developed a method for surveillance in urban environments with heterogeneous UAVs that fly at low altitudes and avoid obstacles. Finally, in their most recent work, Acevedo et al. [
65] developed a method based on grid-shape area partition, which can readjust the area shape and UAVs’ capacity.
A terrain coverage method using a fleet of heterogeneous UAVs was presented by Maza and Ollero [
61]. Their method divides the irregular-shaped area of interest per each UAV capability, such as total flight time. Each partition is assigned to a UAV that plans a zig-zag covering pattern according to the area’s characteristics to minimize the number of turns. The method was validated in simulation.
A coverage algorithm for fixed-wing UAVs with the ability for obstacle and previously scanned regions avoidance was presented by Xu et al. [
23,
66]. Their method uses boustrophedon cellular decomposition [
33], an exact cellular decomposition, and presents better accuracy than trapezoidal decomposition. The method can be classified as online in the phase of region scanning and offline in the coverage phase.
3.17. Back-and-Forth
Maza and Ollero [
61] present a cooperative technique using heterogeneous UAVs in a convex polygonal area. A ground control station divides the area into sub-regions and assigns them to every UAV by the capability and starting position. Every UAV calculates back-and-forth patterns according to the camera footprint to reduce the number of turns.
3.18. Spiral
Balampanis et al. [
67,
68] present a spiral CPP algorithm using multiple heterogeneous UAVs. The area of interest is divided according to UAVs sensing capabilities using a constrained Delaunay triangulation (CDT) [
69]. The CDT generates triangle cells that match almost exactly the shape of the area of interest. To make the triangles more uniform, they applied Lloyd optimization [
70]. Then, a spiral algorithm generates the coverage pattern for each sub-area. This method can generate smoother trajectories considering avoiding no-fly zones and the shape of the coverage area. However, it generates more extensive coverage paths and a higher number of turns than classical grid decomposition and motion methods [
71,
72].
3.19. Multi-Objective Path Planning (MOPP) with Genetic Algorithm (GA)
Hayat et al. [
73] propose multi-objective path planning (MOPP) with a genetic algorithm (GA) for search and rescue missions using multiple UAVs. The mission is divided into two phases: search and response. The search phase monitors an event to guarantee the total coverage in a given area, and the response phase spreads detection updates on the network. The MOPP algorithm performs the planning task during the search, while the GA minimizes the mission completion time. As a result, the method can be classified as offline in the search phase and online in the response phase.
3.20. Genetic Algorithm (GA) with Flood Fill Algorithm
Based on the Trujillo et al. [
74] approach, Darrah et al. [
75] present a CPP method for missions over more extensive areas using multi-UAVs. The method produces equitable sub-areas of the area of interest to cover by multi-UAVs or several flights performed by a single UAV. The flood fill algorithm integrated with game theory was applied to partition the area of interest. Each UAV is a player and has a starting position. According to a predefined pattern in a diamond shape, the UAVs take turns flooding the neighbor cells. The UAVs cannot fly over building cells or cells previously occupied by other UAVs. The partitioning method guarantees an approximate amount of work for each assigned UAV by balancing the tasks. An improved version of the approach proposed by Trujillo et al. [
74] was used for each sub-area’s coverage trajectories. The method can be classified initially as offline and then as online.
Table 3. Multi-UAV CPP strategies.
CPP Approach |
Type of UAVs |
Algorithm Processing |
Evaluation Metrics |
Reference |
Sub-perimeter method |
Homogeneous |
Online |
Minimize latency |
[63] |
Back-and-Forth |
Homogeneous |
Online/Offline |
Total path length Time coverage |
[23,66] |
Back-and-Forth |
Heterogeneous |
Offline |
Number of turns |
[61] |
Spiral |
Heterogeneous |
Offline |
Coverage path, Number of turns |
[67,68] |
Multi-Objective Path Planning with GA |
Homogeneous |
Offline/Online |
Mission Completion Time |
[73] |
GA with flood fill algorithm |
Homogeneous |
Offline/Online |
Path length |
[74,75] |
3.21. Energy-Saving CPP Algorithms
In the literature, there are a lot of CPP strategies for energy saving. One method for energy saving proposed by Lawrance and Sukkarieh [
25] is the energy exploitation of the wind using a small gliding UAV. The authors present an algorithm that generates energy gain paths according to the UAV’s constraints, the field’s wind conditions, and static and dynamic soaring. One of the limitations of this method is the requirement for prior knowledge of the field’s wind conditions. In future research, an online stochastic wind estimation and planning method using current wind conditions of the field should be developed.
Another method for minimizing the power consumption of a UAV is reducing the number of turns of the CPP. Torres et al. [
76] present an algorithm that reduces the number of turns and the total flying path to minimize battery consumption.
The effect of wind direction and intensity on the time of mission completion was presented by Coombes et al. [
77]. The authors used a fixed-wing UAV and the boustrophedon method to cover the area of interest. Their simulated experiments used a constant direction of the wind and six different speeds, and for the coverage path used different directions of the fixed-wing UAV motion from 0 to 360 degrees in increments of 10 degrees. The results showed that the direction of the coverage path should be 90 degrees to the wind direction to minimize the coverage time. Furthermore, the direction of the turns is directly affected by the vertical component of the wind. In a later work, Coombes et al. [
78] presented the flight time in wind (FTIW) function, which computes the total flight time for a total coverage of the area of interest. The flight time needed for the total coverage of the area is less than the previous methods. Their approach was validated after simulations and real flights.
An energy-efficient back and forth CPP algorithm proposed by Di Franco and Buttazzo [
18] computes the best motion trajectory and the maximum altitude according to the ground sample distance (image resolution) to minimize the number of turns. Another approach for energy efficiency is to find an optimal constant speed according to the coverage path. An energy-aware spiral CPP algorithm uses wider angle turns to minimize the acceleration and deceleration to maintain an optimal constant speed Cabreira et al. [
79]. After simulated and real flights, the most energy-efficient CPP method between energy-efficient back and forth CPP [
18] and the energy-aware spiral CPP approach proposed by Cabreira et al. [
79] for a convex area was the energy-aware spiral CPP method which adopted the energy model proposed by Di Franco and Buttazo [
80].
Another energy-aware CPP algorithm for UAVs was proposed by Li et al. [
81], where the algorithm has three stages. In the first stage, the algorithm builds a 3D terrain model. In the second stage, constant power consumption is computed by total take-off weight, flight speed, and air friction. In the third stage, a genetic algorithm generates an energy-optimal coverage path, which represents the amount of energy consumption in every part of the path.
Another problem concerning UAV energy consumption is the deceleration and acceleration at every turn of a conventional trajectory such as boustrophedon. Artemenko et al. [
82] present an algorithm that modifies conventional trajectories using Bézier curves, smoothing the turns on a given path to minimize deceleration and acceleration before and after the turning point. The authors concluded that their algorithm could reduce energy spending compared to conventional algorithms. Restrictions, such as the UAV motion and camera’s location, can be overcome using integer linear programming. Ahmadzadeh et al. [
83] present a cooperative coverage technique with critical time for rectangular areas utilizing several fixed-wing heterogeneous UAVs, some carrying a frontal camera, flying circular paths and some of them carrying a camera on the left side, flying straight lines with left turn paths. Their proposed method uses four fixed-wing UAVs covering 100% of the area of interest instead of the simple methods covering 80%. The proposal was validated in simulation tests and real flights.
Araujo et al. [
84] propose an algorithm where the workspace is divided into sub-areas assigned to each UAV according to its relative capability. According to the kinematics constraints of the UAVs, the algorithm generates an optimal number of stripes to minimize the number of stripes and eventually the number of turns, which means less energy consumption.
Majeed and Lee [
85] present a CPP method for UAV low-altitude navigation in three-dimensional urban areas with fixed convex obstacles based on footprint sweeps fitting and a sparse waypoint graph. The primary goals of the proposed approach are to reduce computational time, the number of turns, and path overlapping while minimizing the total coverage path of the area of interest. The suggested method outperforms the similarly related CPP approaches according to simulation findings.
In a later work, Majeed and Hwang [
86] present a CPP algorithm for UAV navigation to cover areas of interest (AOIs) surrounded by obstacles in three-dimensional urban areas with fixed obstacles. The proposed method is applicable in a wide range of practical applications that involve computing a low-cost coverage for spatially distributed AOIs in an urban environment. However, the proposed algorithm has not incorporated and tested for constraints and limitations, such as image resolution and UAV battery.
Cheng et al. [
87] present a bio-inspired method for cooperative coverage. This method represents the trajectory of each UAV as the B-spline curve containing control points. This optimization problem aims to maximize the desirability of a path by combining four variables: path distance, minimum turning angle, maximum pitch rate, and superposition of the actual trajectory over different UAV trajectories. According to the authors, the beginning and last control points are at the area’s borders because the UAV always travels from left to right. The ant colony optimization (ACO) algorithm was adapted for coverage with multiple UAVs by Kuiper and Nadjm-Tehrani [
88]. The
y-axis in the intermediate control points is optimized using the ACO algorithm to maximize the coverage. Several ants are launched during the algorithm repetitions, passing through the starting, intermediate, and endpoints.
Table 4 summarizes the energy-saving CPP methods reviewed in this paper according to the method used for energy saving. The table presents the CPP method, the energy-saving factor, the type of UAV, and the corresponding reference.
Table 4. CPP energy-aware methods.
CPP Method |
Energy-Saving Approach |
Type of UAV |
Reference |
Energy gain path |
Energy exploitation of the wind |
Fixed-wing |
[25] |
Back and Forth |
Reducing the number of turns and the total flying path |
Rotorcraft |
[76] |
Boustrophedon |
The direction of the UAV path and the turns according to the wind direction |
Fixed-wing |
[77] |
Back and Forth |
Altitude maximization according to the Ground Sample Distance to reduce the number of turns |
Rotorcraft |
[18] |
Spiral |
Wider angle turns to minimize the acceleration and deceleration |
Rotorcraft |
[79] |
Three stages energy optimal path |
An energy-aware algorithm computes the take-off weight, flight speed, and air friction to generate an energy-optimal path |
Rotorcraft |
[81] |
Smoothing turns |
Smoothing the turns on a given path to minimize deceleration and acceleration before and after the turning point |
Rotorcraft/Fixed-wing |
[82] |
Circular and straight lines with left turns paths |
Cooperative coverage algorithm with critical time |
Multiple Fixed-wing |
[83] |
Back and Forth |
Minimizing the number of stripes and eventually the number of turns |
Multiple Fixed-wing |
[84] |
Back and Forth |
Reduce computational time, the number of turns, and path overlapping while minimizing the total coverage path |
Rotorcraft |
[85] |
Back and Forth |
Reducing the computational time and path length for the inter-regional path, the number of turning maneuvers, and path overlapping |
Rotorcraft |
[86] |
ACO with Gaussian distribution functions |
Path length, rotation angle, and area overlapping rate |
Rotorcraft/Fixed-wing |
[87] |
4. Discussion
The CPP problem using UAVs in areas of interest with different shapes and environmental conditions has been studied by several authors. Standard-shaped areas of interest, such as polygons and rectangles, do not require decomposition and can be covered by boustrophedon and spiral patterns. Generally, no decomposition methods, such as back-and-forth, require low computational cost to find the path trajectory. The main issue of these patterns is not considering that the UAVs are directly aerodynamically affected by the environmental conditions, which means the actual trajectory of the flight in most cases is not close to that planned.
In more complex and irregular areas of interest, a cellular decomposition method may be applied to split the area of interest into subregions. The subregions can be covered by different CPP methods to obtain the optimum path to minimize the total path and the total coverage flight time. Multi-UAV cooperative strategies are also being studied using the decomposition method according to the capabilities of the UAVs.
When the vehicle used for the proposed CPP algorithms is a UAV, there is the limitation of the motion constraints, such as the feasible trajectory of fixed-wing UAVs. However, the CPP methods plan the coverage path according to a performance metric. These approaches do not consider the UAVs’ environmental factors and aerodynamic and flight limitations.
A further study is necessary for the area of CPP methods using UAVs. The coverage algorithms should consider the constraints of the aerial vehicles, such as the actual path trajectory rather than that planned. Moreover, the environmental factors in the area of interest that affect the path, the time, and the actual flight path should also be considered. According to all these mutable factors, an offline CPP method will not achieve optimal path planning, but an online CPP method considering all these factors and re-planning the trajectory will achieve the optimal coverage path within minimum time.
In recent years, many new CPP algorithms have been developed for energy-efficiency and awareness. The approach using a glider UAV for soaring limits early knowledge of the field’s wind conditions. Otherwise, the method is less effective in a situation where the knowledge of wind conditions is limited [
25]. In approaches where engine-driven UAVs are used, there are some methods or combinations for energy saving. A method for power saving in non-complex areas is reducing the number of turns in the UAV’s trajectory to minimize the total path and the acceleration’s power consumption after every turn, and eventually the total coverage time of the area of interest [
20,
76]. In approaches for energy saving, considering the direction and intensity of the wind was validated as the UAV’s path should be vertical in the wind direction, and the turning maneuvers against the wind direction [
77,
78]. This approach can be combined with the previous method for greater energy saving.
Two more approaches that can be used in combination with the previous methods for further energy saving include minimizing the UAV’s turns according to the GSD [
18]. A spiral CPP algorithm uses wider angle turns to maintain a constant speed [
67] or an algorithm for a conventional trajectory that modifies the turns for smoother motion [
70] to minimize the deceleration and acceleration before and after the turning point. Another energy-aware algorithm computes the take-off weight, flight speed, and air friction to generate an energy-optimal path [
81].
In convex areas, there are approaches using multiple UAVs to divide into sub-areas and assign each sub-area according to the UAV’s capability, such as motion, sensors onboard, and total endurance flight time [
83,
84].
The proposed energy-efficient UAV CPP methods aim to minimize the total flight time and the coverage path length to save energy. However, the performance metrics are based on the path trajectory without considering other constraints, such as UAV aerodynamics and environmental conditions. For example, in a convex area, a CPP method with a performance metric for minimum path trajectory may produce very sharp turns. Meanwhile, it is infeasible for a fixed-wing UAV to obtain the planned trajectory due to its aerodynamics constraints. Another variable affecting the UAV’s actual trajectory is the wind’s direction and intensity. The UAV will consume more energy than a more extensive path length with smoother turns considering all these limitations.
A further study is necessary to combine all of the above constraints to develop new energy-efficient UAV CPP methods that consider variables, such as the vehicle kinematics and environmental conditions offline and online. A research direction to develop UAV CPP methods to maximize energy-saving should combine machine learning or deep learning and IoT onboard sensors in order to develop a CPP approach that will plan offline and adapt online the coverage path trajectory according to the main performance metrics, such as UAV kinematics constraints, and the information retrieved from onboard sensors such as wind conditions.