Next Article in Journal
Framing the Retirement Planning Behavior Model towards Sustainable Wellbeing among Youth: The Moderating Effect of Public Profiles
Next Article in Special Issue
Reactive UAV Fleet’s Mission Planning in Highly Dynamic and Unpredictable Environments
Previous Article in Journal
Characteristics Analysis of Commercial Gentrification in Seoul Focusing on the Vitalization of Streets in Residential Areas
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Cost-Minimizing System Design for Surveillance of Large, Inaccessible Agricultural Areas Using Drones of Limited Range

by
Luis Vargas Tamayo
1,
Christopher Thron
1,*,
Jean Louis Kedieng Ebongue Fendji
2,
Shauna-Kay Thomas
1 and
Anna Förster
3,*
1
Texas A&M University-Central Texas, Department of Science and Mathematics Killeen, TX 76549, USA
2
University Institute of Technology, University of Ngaoundéré, P.O. Box 454 Ngaoundéré, Cameroon
3
Sustainable Communication Networks, University of Bremen, 28359 Bremen, Germany
*
Authors to whom correspondence should be addressed.
Sustainability 2020, 12(21), 8878; https://doi.org/10.3390/su12218878
Submission received: 27 August 2020 / Revised: 14 October 2020 / Accepted: 23 October 2020 / Published: 26 October 2020

Abstract

:
Drones are used increasingly for agricultural surveillance. The limited flight range of drones poses a problem for surveillance of large, inaccessible areas. One possible solution is to place autonomous, solar-powered charging stations within the area of interest, where the drone can recharge during its mission. This paper designs and implements a software system for planning low-cost drone coverage of large areas. The software produces a feasible, cost-minimizing charging station placement, as well as a drone path specification. Multiple optimizations are required, which are formulated as integer linear programs. In extensive simulations, the resulting drone paths achieved 70–90 percent of theoretical optimal performance in terms of minimizing mission time for a given number of charging stations, for a variety of field configurations.

1. Introduction

Agricultural surveillance is an important part of ensuring optimal crop yields, by detecting problems in the growth process or during early stages so that proactive measures can be taken. Traditionally, surveillance of agricultural areas was conducted by human caretakers who personally surveyed the fields. This approach is error-prone, and limited to small size areas. To obtain better surveillance, some researchers have proposed video surveillance systems with IP cameras in a wireless network for farms or forests [1,2,3,4,5]. Although this technology can provide improved surveillance, several drawbacks remain, including the cost of the system for large area surveillance and the risk of blind spots. In addition, positioning of cameras may be difficult, and image quality may not be sufficient. To overcome those challenges, drones have been proposed as a solution to agricultural surveillance [6,7,8,9]. In the basic scenario, a drone flies over an agricultural area farm and collects image data that will be analyzed later for various applications, including weed detection and mapping [10,11,12,13]; growth monitoring [14,15,16]; crop health monitoring  [17,18,19]; irrigation management [20,21]; yield prediction [22,23,24]; crop lodging detection [25,26,27]; and vineyard monitoring [28,29]. Drones may carry cameras sensors that detect various types of radiation, including visible light (RGB), thermal, multispectral, or hyperspectral sensors. Multispectral and hyperspectral sensors yield much more information than RGB but at much higher cost. Both fixed-wind and rotary-wing drones are used, with multirotor drones being most commonly represented in the literature [30]. Until now, most deployments have been located in developed countries.
Agricultural surveillance missions with drones are generally done in automatic mode, meaning that the path the drone will follow to cover the given farm is determined beforehand. This problem is known as the Coverage Path Planning (CPP) [31]. The earliest works on CPP in agriculture were focused on ground-based robots [31,32]. In some works, field topography as well as field geometry have been taken into account [33,34]. CPP usually aims to determine an optimal path that enables a drone to complete a mission in a minimum time. Obviously, the mission completion time depends on the size and the form of the area to cover. The area studied is usually a planar polygon and is decomposed based on the Ground Sampling Distance (GSD) into smaller polygons [35]. The robots’ paths are typically based on a back-and-forth pattern referred to as “boustrophedon” or “lawn-mower”.
More recently, CPP for unmanned aerial vehicles (UAV) has also been considered [36,37,38,39]. A related active area of research is cooperative patrolling with multiple agents [40,41], in which a variety of techniques have been applied, including reinforcement learning and graph theoretic approaches, among others.
An important challenge in CPP for drones remains the limited capacity of the battery that restricts the drone to short-range missions. Several efforts have been made in the development of energy aware path planning algorithms to extend the size of the area a drone can cover. A common idea in most of the current algorithms for CPP using drones relies on the assumption that the drone requires more energy when making turns than going straight [42,43].
Although energy-aware algorithms allow the efficient use of a drone’s battery, the coverage remains limited and the drone requires more than one trip for larger areas. In a simple surveillance mission, DJI Phantom 3 professional requires around ten flights to cover an area of about four square kilometers [44]. To conduct surveillance mission in large area, charging stations (CSs) have recently been introduced to assist drones [45,46]. A CS is a platform on which a drone can land to recharge its battery when it runs out of energy. The charging can be done wirelessly [47], and the station can even move [48]. However, in most scenarios, stations are deployed at predefined locations (as in [49]), where only one drone is used with the aim of minimizing the completion time of the mission by deciding depending on the state of charge when the drone will land to recharge its battery. An alternative approach was used in [50], where a single CS installed at the center of the area was used to service a fleet of drones. In this case, the area of interest is limited to a circle with diameter equal to the traveling distance of a drone, in order to ensure that a drone can make a round trip to the CS.
Planning efficient large scale surveillance missions using drones of limited range will require one or more CSs, optimally placed in the area of interest. Relatively few works attempted to solve the placement issue of CSs in a given area of interest. Hong et al. [51] give a procedure for locating a set of CSs with a view towards maximally satisfying customer demands. In their formulation, the number of stations is known beforehand. This assumption is relaxed in [52,53], where the authors attempt to optimize the overall mission performance in terms of energy, communication, and safety.
Though CSs are necessary for large scale automatic surveillance, their use incurs high costs. For instance, the CS M2 Combo costs about USD 4000 (Price as of 23 September 2020, from https://www.heishatech.com/product/c500-m2-combo/), and is designed for the DJI Mavic 2 Pro drone whose price is 60% lower (The price for a Mavic 2 Pro equipped with an embedded Hasselblad camera with a 20MP 1” CMOS sensoron www.amazon.com was USD 1599, as of 23 September 2020.). Thus decreasing the number of CSs even by just one unit significantly reduces the cost of the architecture.
This paper addresses the coverage path planning of a single drone using multiple CSs for the surveillance of large agricultural areas. Since there is usually no grid power available in remote agricultural areas, we assume the CSs are being powered by solar energy. This work tackles the path planning from an economic perspective in which the number of CSs should be minimized first, and then the completion time of the mission. Our algorithm can be applied to general surveillance regions, and drones with arbitrary flight and range characteristics: however, to demonstrate feasibility we employ a scenario that is appropriate for applications in developing countries, in which low-cost drones are used and the area under surveillance contains irregular terrain such that only a limited number of locations are suitable for charging station installation.
The rest of the paper is organized as follows: Section 2 presents the material and methods and presents the assumptions as well as mathematical and computational details of the algorithm used to solve the problem. Section 3 presents the results, followed by discussion in Section 4. This paper ends with a conclusion and several ideas for future works.

2. Materials and Methods

2.1. Model Assumptions

Our CPP algorithm generates a drone mission path under the following assumptions:
  • It is assumed that minimizing the cost of the system is considered to be more important than all other factors. This will usually be the case in resource-poor situations. However, if the user wants to investigate alternative system configurations that give shorter mission times, (s)he may reduce the CS radius parameter (explained below), which will lead to higher-cost systems with reduced mission times.
  • The area that is to be surveilled (henceforth referred to as “the field”) is polygonal and may thus be completely specified by the vertices of the bounding polygon.
  • The drone is assumed to have a single flight mode, in which the drone’s camera runs continuously and video information is either stored onboard or is continuously transmitted back as the drone flies.
  • The drone’s height, velocity, and power consumption are assumed to be constant throughout the drone’s mission (except when recharging).
  • A start location is specified by the user, which is a point (presumably somewhere on the field’s edge) from which the drone is originally launched to conduct its mission. When launched from the start location, the drone is fully charged.
  • Possible CS locations are scattered throughout the region and are specified to the algorithm by the user. This assumption is included to accommodate the situation where some locations within the field are more favorable than others for CS installation. If all locations are equally favorable, the user can input a regular or quasirandom lattice of points that fills the entire region.

2.2. Mission Path Planning Algorithm Justification and Outline

In developing a cost- and time-minimizing mission path, we first take into account the limited range of drones, which imposes hard constraints on the set of charging stations. In particular, every point in the field must be reachable by a drone that originates its flight from a charging station and subsequently returns to a charging station. In our algorithm, we impose the condition that for every field point there is at least one charging station from which a round trip can be made to that particular field point. Since minimizing the number of CSs is our primary goal, we restrict possible solutions to those sets of CSs that both satisfy the constraint and have minimal size.
Given these possible CS solutions, our goal is to select a solution that minimizes mission time. It would be much too computationally intensive to compute mission times for a large number of possible solutions. Instead, we select a set of CSs that minimizes the maximum distance from field point to nearest charging station, where the maximum is taken over all points within the field. This criterion is motivated by the fact that field points that are far from the nearest charging station tend to produce coverage inefficiency, because reaching them requires flying multiple flyovers of closer field points (this point is explained in more detail in Section 2.9).
Once the CS have been decided based on the above criteria, the next step is to design an efficient path that takes full advantage of the characteristics that have been used to select the CS solution. As noted above, field points that are reached from a far-away CS are likely to have inefficient paths. For this reason, we assign each field point to nearest charging station. This divides the field into Voronoi regions. Our strategy is to completely cover each Voronoi region before passing on to the next. It follows that we need a spanning walk that begins and ends at the starting location.
Finally, the drone’s path for covering each Voronoi region must be specified. Our construction is based on the observation that the shortest covering path for a drone with infinite range is a “boustrophedon” or “lawn-mower” pattern, which provides single coverage throughout the field. Although a finite-range drone cannot execute a boustrophedon, nonetheless a similar pattern of nonoverlapping parallel segments can be constructed to obtain a solution that closely resembles a boustrophedon path, and is nearly as efficient. Our algorithm has a recursive structure, based on the self-similarity of boustrophedon paths within polygons.
The steps in the drone path planning algorithm may be summarized as follows:
1
Initialization of parameters for field specifications, potential CS locations and drone range specifications;
2
Create binary grid representation of the field;
3
Use iterative linear programming to find a minimal set of CSs that minimizes the maximum distance from field points to the nearest CS;
4
Decompose field into Voronoi cells based on selected CS locations;
5
Compute a closed spanning walk visiting all CSs using a modified traveling salesman algorithm;
6
Perform a triangular decomposition of each Voronoi cell;
7
Construct drone paths within each triangular region.
In the following subsections, we will describe in more detail the steps listed above. The entire algorithm was coded in Python, using several pre-existing libraries (as described below). The code is available on Github (https://github.com/LuisEVT/Optimal_Drone_Field_Coverage).

2.3. Initialization

In order to use the system, the following parameters must be supplied by the user:
  • Field of view (FOV) radius: The camera’s field of view is assumed to be circular with fixed radius. As the drone flies, it takes continuous video pictures, thus covering a strip whose width is twice the FOV radius.
  • Drone range: This is the maximum distance that a drone can reliably travel on a full charge.
  • CS radius: The CS radius is the maximum distance between any point in the field and the nearest CS. In other words, a CS located at point C services a region that lies within a circle whose radius is equal to the CS radius with center at C. The CS radius must necessarily be less than or equal to half the drone’s range. However, the user has the option of choosing a smaller CS radius. A smaller CS radius will tend to produce solutions that have more CS and shorter surveillance mission times.
  • Mesh step: For the sake of numerical computations, the coverage region is represented as a rectangular grid, whose mesh size is given by the mesh step.
  • Field vertices: The user specifies the polygonal field area by specifying the field vertices in consecutive order. In our simulations we employed three basic shapes (rectangle, square, and hexagon, as shown in Figure 1), and each shape had three different sizes corresponding to total areas 25, 50, and 100 km 2 .
  • Start location: This is the drone launching point, as explained in Section 2.1.
  • CS vector length: according to our assumptions, there will be a number of favorable locations within the field for placing the CSs. In our simulation, these favorable locations are chosen randomly. The CS vector length gives the number of randomly-generated favorable locations within the field. In our simulation, we chose the CS vector length so that there was an average of 1 favorable location per square kilometer. In practice, the user would determine favorable locations by observation and supply these locations to the algorithm.
Table 1 summarizes the values of these parameters that were used in the simulations in this paper, along with symbols used to represent them in our subsequent description of the algorithm.

2.4. Coverage Field Specification

Next, x and y mesh grid matrices are generated to discretize a rectangular region containing the field. The x values run from x m i n min n x n to x m a x max n x n and the y values run from y m i n min n y n to y m a x max n y n , both with the same mesh step s. These x and y values are used to create a list of ( x , y ) points within the rectangle, of which some are in the field and some are not, as shown in Figure 2a. The points in this list that lie in the field are extracted by inputting the field vertices into the Path class and using the contains_points() function from the matplotlib.path package in Python. The list of points that lie within the field is further reduced by removing points that are within a distance R of the start location ( ι x , ι y ) : these points are removed because they can be reached from the start location and will not need another charging station to cover them. The remaining list of ( x , y ) points form a grid that discretizes the field area that needs to be covered using charging stations, as shown in Figure 2b.

2.5. Charging Station Location Selection

The primary optimization parameter is the number of CSs, because minimizing the number of CSs minimizes the cost of the system. The optimal solution must also ensure that each grid point within the field is within a distance R of the nearest CS. We may formulate the minimization problem as a linear program as follows:
Minimize 1 T z subject to A z 1 with z k { 0 , 1 }
where:
  • K and M are the number of candidate CS and the number of points in the field discretization, respectively.
  • 1 is a K × 1 vector of all 1’s.
  • A is a M × K incidence matrix. The entry A m k is equal to 1 if the mth grid point in the field discretization is within a distance R of CS k, and 0 otherwise.
  • z is a K × 1 solution vector. Interpreted as a logical index vector: z k = 1 if CS k is in the solution, and z k = 0 otherwise.
In (1), the scalar quantity 1 T z represents the total number of CS in the solution, which is the quantity to be minimized. The condition A z 1 represents M inequalities that guarantee that each of the M grid points within the field lies within a distance R of at least one CS.
Our code uses the glpk.ilp integer linear program solver from the cvxopt convex optimization package. This solver implements the branch-and-bound algorithm. As mentioned in Section 2.2, the value of R is successively reduced from its initial value until either the number of CSs in the solution increases or no solution exists.

2.6. Creation of Voronoi Regions

Once we have selected a particular set of CS locations, the next step is to design the drone’s path. The first step in this process is to identify the ( x , y ) locations belonging to the jth charging station: that is, the points in the field which are reached following a recharge at station j.
Any finite set of J points P j , j = 1 J in the ( x , y ) plane determines a set of J Voronoi cells, where each Voronoi cell is a convex polygon that contains exactly one of the points (see Figure 3a). The Voronoi cell for point P j consists of all points in the plane that are closer to point P j than any of the J 1 other points. Thus the Voronoi cell of each CS corresponds to the region which is closest to that CS from among all CS. If we intersect the j’th Voronoi cell with the field, the result gives the region to be covered by means of drone trips between which the drone is recharged at CS j.
The Python package spatial in the library SciPy (version 1.4.1) contains the class Voronoi which return vertices of Voronoi cells, when the point ( x , y ) locations are supplied as inputs. The class only returns vertices of finite regions (see Figure 3a): thus, an additional four proxy sites located outside of the field were used to ensure that all Voronoi cells of interest were finite. The four proxy sites formed a rectangle that contained the entire field, as shown in Figure 3b. Once these finite Voronoi regions were generated, the field boundaries were used to restrict the Voronoi regions so that the resulting cells were all contained within the field. For this purpose, the Python library Shapely was used to determine the polygons obtained by intersecting the polygonal Voronoi regions with the user-specified field polygon, as shown in Figure 3c.

2.7. Charging Station Spanning Walk Construction

Once the locations of the CSs have been fixed, the next step is to specify the actual drone mission path. To cover the entire region, the drone will have to pass from Voronoi region to Voronoi region and cover each visited region by repeated trips to the region’s CS. In order to characterize the drone’s motion from CS to CS, we recast the situation in graph theoretic terms. Each CS is identified as a vertex in a graph, and two vertices are joined by an edge if the Voronoi regions of the two corresponding CSs share a common bounding edge. This path linking the different CSs may be described in graph theoretic terms as a closed spanning walk: that is, a sequence of vertices joined by edges that contains all vertices in the graph, such that the first and last vertex is the same. Note that according to this definition, both vertices and edges can be repeated in the walk: repetition may in fact be necessary to attain the spanning property, as shown in Figure 4a. In our construction of the closed spanning walk, we shall minimize the total number of edges, because extra edges may lead to duplicate coverage.
In order to pose the closed spanning walk construction as a linear programming problem, we associate the walk with a Hamiltonian cycle in a larger graph as follows. With the given vertices, we create a complete weighted graph such that between every two vertices there is an edge. The edge between two vertices is assigned a weight equal to the number of edges in the shortest path within the original graph joining the two vertices. A closed spanning walk in the original graph that minimizes edges corresponds to a Hamiltonian cycle in the new graph which minimizes the sum of edge weights. Finding a weight-minimizing Hamiltonian cycle is equivalent to the classical traveling salesman problem. The steps of the algorithm for finding the closed spanning walk that visits each CS are summarized as follows:
(a)
Create a 0–1 vertex-vertex adjacency matrix, where vertices represent CSs and adjacent vertices represent CSs with adjacent Voronoi cells.
(b)
Use Dijkstra’s algorithm to find the shortest path linking every pair of vertices in the graph described by this adjacency matrix.
(c)
Create a weight matrix for the complete graph using the weights computed in (b).
(d)
Solve for a weight-minimizing Hamiltonian cycle that includes all CSs.
(e)
Replace the edges in solution (d) with weights greater than 1 with the intermediate edges obtained by Dijkstra’s algorithm to obtain the complete walk on the original graph.
In our system, for step (b) we made use of the implementation of Dijkstra’s algorithm in the scipy class scipy.sparse.csgraph. The weight-minimizing Hamiltonian cycle in (d) was found using the following linear program:
Minimize w T e subject to M e = 2 , where e k { 0 , 1 }
where:
  • E and N denote the number of vertices and edges in the graph, respectively;
  • w is an E × 1 vector, where w j is the weight associated with the j’th edge in the complete graph;
  • M is a N × E vertex-edge incidence matrix. The entry m i j is equal to 1 if node i is an endpoint of edge j;
  • 2 is an E × 1 matrix of all 2’s.
  • e is an E × 1 solution vector, interpreted as a logical index vector: e j = 1 if edge j is in the solution, and e j = 0 otherwise.
The scalar quantity w T e gives the sum of weights of edges in the Hamiltonian cycle in the complete graph, which is equal to the number of edges in the corresponding closed spanning walk in the original graph. The condition M e 2 represents the fact that each vertex in the cycle must have an entering and leaving edge. When a solution to (2) is computed, the corresponding tour is checked for connectivity. If the cycle is not connected, then an additional constraint is added to the linear program that prevents this solution—and this process is iterated until an optimal connected cycle is contained. The minimum connecting paths found using Dijkstra’s algorithm are then used to construct the closed spanning walk on the original graph.
In the actual drone path, the drone does not fly directly from one CS to another but rather passes by way of a vertex that is shared by the coverage cells of the two CSs (see Figure 5). There are two reasons for this. First, the paths between adjacent CSs cover vertices that are far from any CS, when they do not need to be covered by long round trips to-from a single CS. Second, the straight segments of the paths between CSs lie along the edges of triangles used in the triangulations of the Voronoi regions described in the next section, so that the segments are not double-covered when the triangle interiors are covered as described below. This serves to improve the algorithm’s efficiency in terms of reducing total mission time. The algorithm is configured so that no segment of the path linking the CSs is traveled twice in a complete path traversal, as may be seen in Figure 5.

2.8. Drone Trajectories within Individual Voronoi Cells

To simplify the drone’s coverage of Voronoi cells, the cells were further divided into triangles, as shown in Figure 6. Suppose that the vertices of the j’th Voronoi region are given by ( p 1 , q 1 ) , , ( p n j , q n j ) . Then the region is divided into n j triangles, where the vertices of the i’th triangle are given by { ( u j , v j ) , ( p i , q i ) , ( p i + 1 , q i + 1 ) } , i = 1 , n j (in this expression ( p n j + 1 , q n j + 1 ) is identical to ( p 1 , q 1 ) ).
The algorithm for finding the drone path within each triangle was programmed as a subroutine. Before calling the subroutine for a given triangle, the triangle is rotated so that the longest side is parallel to the y axis and the bottom vertex of the longest side is translated to ( 0 , 0 ) , as shown in Figure 7. If possible, this vertex is chosen as the CS location, and if necessary, the triangle is reflected so that all points in the triangle lie in the first quadrant. The linear transformation applied to ( x , y ) may be expressed as:
Q x y = ± cos θ sin θ sin θ cos θ x x 0 y y 0 ,
where ( x 0 , y 0 ) is the vertex that is translated to ( 0 , 0 ) ; ( x 1 , y 1 ) is the other vertex of the longest side;
sin θ = x 1 x 0 ( x 1 x 0 ) 2 + ( y 1 y 0 ) 2 ; cos θ = y 1 y 0 ( x 1 x 0 ) 2 + ( y 1 y 0 ) 2 ; x
and the ± corresponds to whether the triangle is or is not flipped (− or + respectively).
The drone path algorithm used within the triangle is based on a “boustrophedon” (or “lawn mower”) pattern. Some double coverage is necessary, when multiple recharges are required for the drone to cover the entire triangle. The drone path that is constructed within the triangle consists of segments parallel to one the three sides, joined (if necessary) by short connecting segments. The path is constructed segment by segment, and each time a segment is constructed the remaining region to be covered remains triangular in shape but with reduced area.
The basic idea of the algorithm is as follows. Let V 0 , V 1 , V 2 be the vertices of the triangle, where V 0 is the vertex in which the CS is located, V 1 is the farthest vertex from CS, and V 2 is the remaining vertex. The algorithm will always start by traveling from V 0 to V 1 . Ideally, we want the drone to cover the area farthest away from the CS to minimize double coverage. One flight path that would accomplish this is:
  • V 0 to V 1 ;
  • V 1 to V 2 ;
  • Go back and forth parallel to V 1 V 2 ¯ until the entire region is covered.
This path is shown in Figure 8. However, the fact that the drone has limited range means that, in practice, the drone will have to break off from this pattern and return to the CS to recharge. After recharging, the algorithm will restart by having the drone travel to V 0 , as seen in Figure 9. As can seen in the figure, after each drone path segment, the remaining uncovered triangle is similar to the original triangle but successively smaller and smaller. Consequently, we can reapply the same algorithm to each smaller triangle to obtain a path that covers the entire original triangle. A flowchart for the algorithm used to generate path segments in shown in Figure 10. Pseudocodes for the algorithm and its subfunctions are shown in the Appendix B. Once the path is completed on a the transformed triangle, we apply the inverse transformation to obtain the actual path.
We illustrate the algorithm process in more detail by showing the construction of the initial path segment. We consider the case where the CS location (denoted by V 0 ) is located at ( 0 , 0 ) as shown in (see Figure 7). In this case, the initial segment is parallel to V 0 V 1 ¯ at a perpendicular distance ρ , as shown in Figure 11. The endpoints of this initial segment are denoted by V ˜ 0 ( x ˜ 0 , y ˜ 0 ) and V ˜ 1 ( x ˜ 1 , y ˜ 1 ) , as shown in the figure. Note that the point V ˜ 1 is on the segment V 1 V 2 ¯ . The mathematical expressions for V ˜ 0 and V ˜ 1 are:
V ˜ 0 = x 0 + ρ , y 0 + ρ tan ( α ) ; V ˜ 1 = x 1 + ρ , y 1 ρ tan ( β )
Since we are beginning at V 1 , we must also include the short segment from V 1 to V ˜ 1 in the path.
Once the segment from V ˜ 0 to V ˜ 2 is completed, then the remaining uncovered area is a smaller triangle with vertices { V 0 , V 1 , V 2 } where V 0 and V 1 are given by:
V 0 = x 0 + 2 ρ , y 0 + 2 ρ tan ( α ) ; V 1 = x 1 + 2 ρ , y 1 2 ρ tan ( β ) ,
as shown in Figure 11.
At this point, the algorithm has a choice. If there is still enough remaining energy, the drone will pass from V ˜ 1 to V ˜ 2 by way of point V ˜ 1 , where
V ˜ 1 = x ˜ 1 , y ˜ 1 ρ sin ( β ) ; V ˜ 2 = x 2 ρ · sin ( α ) sin ( γ ) , y 2 ρ · cos ( α ) sin ( γ ) .
Consequently, the remaining uncovered area is another smaller triangle with vertices { V 0 , V 1 , V 2 } where V 1 and V 2 are given by:
V 1 = x ˜ 1 , y ˜ 1 2 ρ sin ( β ) ; V 2 = x 2 2 ρ · sin ( α ) sin ( γ ) , y 2 2 ρ · cos ( α ) sin ( γ ) .
On the other hand, if there is not enough energy, the drone will return from V 1 to V 0 along a path that is parallel to V 0 V 1 ¯ at a distance ρ . The equations for this return segment are similar to Equation (6) except that x 1 , y 1 , x 2 , y 2 are replaced by x ˜ 1 , y ˜ 1 , x ˜ 2 , y ˜ 2 respectively.
In case the drone does travel to V 2 , the drone once again has two options: either return to recharge or travel back towards V 1 . Let us suppose the drone needs to recharge: then it will travel parallel to V 0 V 2 ¯ , and then return to the CS at V 0 to recharge. The mathematical expression for V ˜ 2 and V ˜ 0 are:
V ˜ 2 = x 2 ρ · sin ( β ) sin ( γ ) , y 2 + ρ · cos ( β ) sin ( γ ) V ˜ 0 = x 0 , y 0 + ρ sin ( α )
The remaining uncovered area is another smaller triangle with vertices { V 0 , V 1 , V 2 } where V 0 and V 2 are given by:
V 2 = x 2 2 ρ · sin ( β ) sin ( γ ) , y 2 + 2 ρ · cos ( β ) sin ( γ ) V 0 = x 0 , y 0 + 2 ρ sin ( α )
After the drone is recharged, the algorithm will start again by sending the drone to V 0 and beginning its journey to cover the remaining area of the triangle. Figure 12 shows the final drone path produced by the system for the field configuration shown in Figure 5 and Figure 6.

2.9. Performance Evaluation

The two performance parameters of practical interested are the number of CSs and the total mission time. The efficiency of the algorithm with respect to these two parameters was measured as follows.
It is known that the most efficient cover of a plane by circles is obtained by a circumscribing the hexagons in a “honeycomb” lattice [54]. This implies that regular hexagonal-shaped cells cover the maximum area with the fewest possible cells, given the cells’ radius is constrained to be less than R. To measure the CS efficiency for a configuration with CS coverage radius R, we divided the mean area per Voronoi cell by the area of a hexagon with radius R. This gives a dimensionless measure that can be compared across different field sizes and shapes.
As far as mission time, mission time may be broken up into (travel time ) + (recharge time). The travel time was computed as (travel distance) / cruise velocity. The recharge time is computed as (travel time) × (power consumption) / recharge power. It follows that the tour time is equal to:
Tour time = Tour distance cruise velocity + power consumption ( cruise velocity ) ( recharge power ) .
Equation (11) shows that tour time is proportional to tour distance. It follows that minimizing tour time is equivalent to minimizing tour distance.
We have mentioned in Section 2.2 that a maximally efficient boustrophedon path that passes over all field points exactly once is not possible for drones of limited range. Instead, a drone may need to travel multiple times over the same area, consequently increasing the total travel distance. We may derive a lower bound on the total travel distance for a complete surveillance mission using the following notations:
  • D ( r ) is the total distance that the drone flies while its distance to the nearest CS is greater than r, for 0 r R . Note that D ( R ) = 0 , while D ( 0 ) is equal to the total distance that the drone flies during its surveillance mission (denoted by D).
  • A ( r ) is the field area that lies farther than a distance r of the nearest CS, for 0 r R . Note that A ( R ) = 0 , while A ( 0 ) is the total field area (denoted by A ).
Then we have:
D D ( r ) 2 r d D , 0 r R .
The inequality in (12) expresses the fact that on each single charge, the drone can fly a total distance at most d of which at least 2 r is within radius r. We also have:
2 ρ · D ( r ) A ( r ) , 0 r R .
In (13) the left-hand side represents the total area which the drone camera’s FOV passes over while flying farther than r from the nearest CS, which must be greater than or equal to the total field area that is farther than r from the nearest CS. Combining (12) and (13) gives:
D d 2 ρ · max r A ( r ) d 2 r .
A dimensionless and scalable measure of efficiency was obtained by taking the theoretical minimum mission distance derived in (14) and dividing by the achieved mission distance. In this way, a mission efficiency of 1 represents the shortest possible mission for the given CS configuration.

2.10. Simulation Specifications

In order to evaluate the effectiveness of the algorithm, we applied it to a variety of scenarios. Parameter values used are listed in the last column of Table 1. These parameters were chosen to match the specifications of the Mavic Air drone with 2375 mAh battery [55], together with the Heisha C300 solar-powered charging pad [56]. Three different field shapes (3:1 rectangle, square, octagon) were used, as well as three different total areas (25, 50, 100 km 2 ). For each of these 9 field configurations, 100 different random CS configurations were generated, and run for 5 different initial CS coverage radii, as given in Table 1. Smaller initial radii led to solutions with more CSs and shorter mission times.
All simulations were done on a MacBook Pro with a single 8-core 2.3 GHz Intel Core i9 processor and 16 GB RAM, running Python 3.7.6 with a Spyder 4.0.1 interface. Figure 13 shows the runtimes achieved, where each single run of the algorithm is shown as a dot on the graph. Runtimes were under 100 s, even for the largest configuration, demonstrating the algorithm’s practical applicability even for large scenarios.

3. Results

Results are graphically summarized in Figure 14 and Figure 15, while Table A1 gives numerical statistics. In calculating the coverage time, the cruise speed was taken as 25 km and a charge time: flight time ratio of 2:1 was used.
The first row of graphs in Figure 14 shows the expected field per CS. For fields of size 25 km 2 , we may expect to use 1 CS for every 4 km 2 when the CS radius is 2 and about 1 CS for every 11 km 2 when the CS radius is 4. For larger areas, a much greater efficiency can be achieved; 1 CS for every 6 km 2 when the CS radius is 2 and about 1 CS for every 20 km 2 when the CS radius is 3.9. This implies that only about 1/3 as many CSs would be required if the larger CS radius is used for the design.
The second row of graphs in Figure 14 measures the CS efficiencies, which ranged from about 35% to above 70%. Greater efficiencies were observed with more regular fields (square and octagon as opposed to rectangle), larger fields, and smaller CS coverage radii.
Mission times per field area are shown in the first row of graphs in Figure 15. The similarity between the graphs for different field sizes shows that mission times are roughly proportional to total field area. For small areas the coverage radius had little effect on the total mission time, but for the largest area size total mission times were up to 40% larger for CS coverage radius equal to 4 km compared to CS coverage radius equal to 2 km. Mission efficiencies ranged from about 70% to about 90%. Greater efficiencies were observed with smaller field sizes and smaller CS coverage radii. For the smallest field size, the efficiency was roughly independent of the CS coverage radius.
The information in Figure 14 and Figure 15 is combined in Figure 16 to produce Pareto frontiers showing the tradeoff between mission time and number of charging stations. Information for all of the individual runs is plotted. There is considerable variation in the mission time per area for a given value of covered area per CS, especially for larger coverage areas. The similarity between the three graphs shows that the tradeoff is relatively independent of the field size.

4. Discussion

The results observed are reasonable from a geometric point of view. For smaller field sizes and large CS coverage radii, it is unavoidable that a large portion of the CS coverage region will lie outside of the field. This is why lower CS efficiencies were observed in Figure 14 for the 25 km 2 field sizes. As the size increases, a smaller proportion of Voronoi cells is near the field boundary, so the wasted area is less. For large cells, the increased CS efficiency comes at the cost or lower mission efficiency. This is because greater CS efficiency means larger cells, which implies more area that is far from the nearest CS which will require repeated trips that cover the same area multiple times.

5. Conclusions

We have developed a software system that generates a comprehensive drone surveillance plan for large, inaccessible agricultural or forested areas. Our results indicate feasible numbers of CSs and mission times for a variety of field shapes and sizes. We have demonstrated the adaptability of the software. Future possibilities for research include introducing more realistic conditions such as variable winds, drone’s multiple operating modes, etc.

Author Contributions

Conceptualization, A.F., J.L.K.E.F., and C.T.; methodology, C.T., L.V.T., and S.-K.T.; software, L.V.T. and S.-K.T.; validation, L.V.T. and C.T.; formal analysis, L.V.T. and C.T.; writing—original draft preparation, L.V.T.; writing—review and editing, J.L.K.E.F., C.T., and A.F.; supervision, A.F. and C.T. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A. Data Tables

Table A1. Data summary for each configuration.
Table A1. Data summary for each configuration.
ShapeAreaCS RadiusnCSTotal Distance TravelTheoretical Best DistanceTotal Mission TimeTheo. Best Mission Time
---MeanstdMeanstdMeanstdMeanstdMeanstd
Octagon2525.60.49577.683.15514.031.5269.320.3861.680.18
Octagon252.54.030.17585.35.17520.831.7570.240.6262.50.21
Octagon2532.970.17604.515.88531.424.8572.541.9163.770.58
Octagon253.52.270.45664.4142.99549.0911.5979.735.1665.891.39
Octagon253.92.010.1696.2131.01555.983.0383.543.7266.720.36
Octagon5029.290.461149.185.111032.161.75137.90.61123.860.21
Octagon502.56.360.481172.3310.321049.874.42140.681.24125.980.53
Octagon503501223.1229.131066.92.77146.773.5128.030.33
Octagon503.5401351.3755.41091.96.63162.166.65131.030.8
Octagon503.93.090.291470.2175.661138.2519.82176.439.08136.592.38
Octagon100216.360.632299.216.252070.72.9275.910.75248.480.35
Octagon1002.510.50.522345.6812.952116.36.96281.481.55253.960.83
Octagon10037.980.22520.1951.552165.868.36302.426.19259.91
Octagon1003.56.010.12945.5474.012244.1514.97353.468.88269.31.8
Octagon1003.95.020.143221.3779.582317.2222.71386.569.55278.072.73
Rectangle2526.140.57574.384.09513.081.4768.930.4961.570.18
Rectangle252.54.190.39578.66.41520.62.169.430.7762.470.25
Rectangle2533.060.24622.1618.73531.623.3974.662.2563.790.41
Rectangle253.530625.9917.08532.382.2275.122.0563.890.27
Rectangle253.92.060.24777.6741.05566.7514.493.324.9368.011.73
Rectangle50210.070.571146.145.441030.172.13137.540.65123.620.26
Rectangle502.57.110.41172.4310.291045.414.27140.691.23125.450.51
Rectangle5035.080.311269.6734.031068.525.6152.364.08128.220.67
Rectangle503.54.040.21406.6846.761092.115.06168.85.61131.050.61
Rectangle503.93.670.471502.07134.271110.7925.23180.2516.11133.33.03
Rectangle100217.460.612295.226.942066.852.58275.430.83248.020.31
Rectangle1002.511.040.492346.9514.92111.616.47281.631.79253.390.78
Rectangle10038.380.492566.0266.032160.6612.54307.927.92259.281.51
Rectangle1003.570.142860.366.662208.4313.91343.248265.011.67
Rectangle1003.95.740.583255.78172.342274.2142.62390.6920.68272.915.11
Square2525.690.53574.323.44514.231.5868.920.4161.710.19
Square252.54.020.14579.085.14521.851.4569.490.6262.620.17
Square2533.220.42621.424.66530.815.8674.572.9663.70.7
Square253.530634.0112.22533.773.9876.081.4764.050.48
Square253.92.280.45718.4553.28555.3413.4386.216.3966.641.61
Square5029.430.51146.635.221032.232.11137.60.63123.870.25
Square502.56.510.51170.5912.081049.774.8140.471.45125.970.58
Square5034.790.411244.9634.021073.8710.17149.394.08128.861.22
Square503.5401323.340.511095.395.76158.84.86131.450.69
Square503.93.970.171336.6482.511097.312.05160.49.9131.681.45
Square100216.80.72295.176.832069.553.05275.420.82248.350.37
Square1002.510.910.432351.3415.092113.645.74282.161.81253.640.69
Square10038.020.142547.1352.992167.999.08305.666.36260.161.09
Square1003.56.110.313020.3698.32244.4320.44362.4411.8269.332.45
Square1003.95.040.23354.2101.542323.7421.5402.512.18278.852.58

Appendix B. Algorithms

Algorithm A1: Triangular drone path algorithm.
Sustainability 12 08878 i0a1
Algorithm A2: Help Functions 1
Sustainability 12 08878 i0a2
Algorithm A3: Help Functions 2
Sustainability 12 08878 i0a3

References

  1. Song, L.J.; Fan, Q. The design and implementation of a video surveillance system for large scale wind farm. Adv. Mater. Res. Trans. Tech. Publ. 2012, 361, 1257–1262. [Google Scholar] [CrossRef]
  2. Lloret, J.; Garcia, M.; Bri, D.; Sendra, S. A wireless sensor network deployment for rural and forest fire detection and verification. Sensors 2009, 9, 8722–8747. [Google Scholar] [CrossRef]
  3. Lloret, J.; Bosch, I.; Sendra, S.; Serrano, A. A wireless sensor network for vineyard monitoring that uses image processing. Sensors 2011, 11, 6165–6196. [Google Scholar] [CrossRef] [Green Version]
  4. Garcia-Sanchez, A.J.; Garcia-Sanchez, F.; Garcia-Haro, J. Wireless sensor network deployment for integrating video-surveillance and data-monitoring in precision agriculture over distributed crops. Comput. Electron. Agric. 2011, 75, 288–303. [Google Scholar] [CrossRef]
  5. Garcia-Sanchez, A.J.; Garcia-Sanchez, F.; Losilla, F.; Kulakowski, P.; Garcia-Haro, J.; Rodríguez, A.; López-Bao, J.V.; Palomares, F. Wireless sensor network deployment for monitoring wildlife passages. Sensors 2010, 10, 7236–7262. [Google Scholar] [CrossRef] [Green Version]
  6. Eisenbeiss, H. A mini unmanned aerial vehicle (UAV): System overview and image acquisition. Int. Arch. Photogramm. Remote Sens. Spat. Inf. Sci. 2004, 36, 1–7. [Google Scholar]
  7. Freeman, P.K.; Freeland, R.S. Agricultural UAVs in the US: Potential, policy, and hype. Remote Sens. Appl. Soc. Environ. 2015, 2, 35–43. [Google Scholar]
  8. Herwitz, S.; Johnson, L.; Dunagan, S.; Higgins, R.; Sullivan, D.; Zheng, J.; Lobitz, B.; Leung, J.; Gallmeyer, B.; Aoyagi, M.; et al. Imaging from an unmanned aerial vehicle: Agricultural surveillance and decision support. Comput. Electron. Agric. 2004, 44, 49–61. [Google Scholar] [CrossRef]
  9. Jarman, M.; Vesey, J.; Febvre, P. Unmanned Aerial Vehicles (UAVs) for UK Agriculture: Creating an Invisible Precision Farming Technology. White Paper, 19 July 2016. [Google Scholar]
  10. Barrero, O.; Perdomo, S.A. RGB and multispectral UAV image fusion for Gramineae weed detection in rice fields. Precis. Agric. 2018, 19, 809–822. [Google Scholar] [CrossRef]
  11. Hassanein, M.; El-Sheimy, N. An efficient weed detection procedure using low-cost uav imagery system for precision agriculture applications. Int. Arch. Photogramm. Remote Sens. Spat. Inf. Sci. 2018. [Google Scholar] [CrossRef] [Green Version]
  12. Pallottino, F.; Menesatti, P.; Figorilli, S.; Antonucci, F.; Tomasone, R.; Colantoni, A.; Costa, C. Machine vision retrofit system for mechanical weed control in precision agriculture applications. Sustainability 2018, 10, 2209. [Google Scholar] [CrossRef] [Green Version]
  13. Huang, Y.; Reddy, K.N.; Fletcher, R.S.; Pennington, D. UAV low-altitude remote sensing for precision weed management. Weed Technol. 2018, 32, 2–6. [Google Scholar] [CrossRef]
  14. Shafian, S.; Rajan, N.; Schnell, R.; Bagavathiannan, M.; Valasek, J.; Shi, Y.; Olsenholler, J. Unmanned aerial systems-based remote sensing for monitoring sorghum growth and development. PLoS ONE 2018, 13, e0196605. [Google Scholar] [CrossRef] [PubMed] [Green Version]
  15. Han, L.; Yang, G.; Yang, H.; Xu, B.; Li, Z.; Yang, X. Clustering field-based maize phenotyping of plant-height growth and canopy spectral dynamics using a UAV remote-sensing approach. Front. Plant Sci. 2018, 9, 1638. [Google Scholar] [CrossRef] [PubMed] [Green Version]
  16. Iwasaki, K.; Torita, H.; Abe, T.; Uraike, T.; Touze, M.; Fukuchi, M.; Sato, H.; Iijima, T.; Imaoka, K.; Igawa, H. Spatial pattern of windbreak effects on maize growth evaluated by an unmanned aerial vehicle in Hokkaido, northern Japan. Agrofor. Syst. 2019, 93, 1133–1145. [Google Scholar] [CrossRef]
  17. Mahajan, U.; Raj, B. Drones for normalized difference vegetation index (NDVI), to estimate crop health for precision agriculture: A cheaper alternative for spatial satellite sensors. In Proceedings of the International Conference on Innovative Research in Agriculture, Food Science, Forestry, Horticulture, Aquaculture, Animal Sciences, Biodiversity, Ecological Sciences and Climate Change (AFHABEC-2016), Delhi, India, 22 October 2016; Volume 22. [Google Scholar]
  18. Albetis, J.; Jacquin, A.; Goulard, M.; Poilvé, H.; Rousseau, J.; Clenet, H.; Dedieu, G.; Duthoit, S. On the potentiality of UAV multispectral imagery to detect Flavescence dorée and Grapevine Trunk Diseases. Remote Sens. 2019, 11, 23. [Google Scholar] [CrossRef] [Green Version]
  19. Kerkech, M.; Hafiane, A.; Canals, R. Deep leaning approach with colorimetric spaces and vegetation indices for vine diseases detection in UAV images. Comput. Electron. Agric. 2018, 155, 237–243. [Google Scholar] [CrossRef]
  20. Ronchetti, G.; Mayer, A.; Facchi, A.; Ortuani, B.; Sona, G. Crop Row Detection through UAV Surveys to Optimize On-farm Irrigation Management. Remote Sens. 2020, 12, 1967. [Google Scholar] [CrossRef]
  21. Chen, A.; Orlov-Levin, V.; Meron, M. Applying high-resolution visible-channel aerial imaging of crop canopy to precision irrigation management. Agric. Water Manag. 2019, 216, 196–205. [Google Scholar] [CrossRef]
  22. Stein, M.; Bargoti, S.; Underwood, J. Image based mango fruit detection, localisation and yield estimation using multiple view geometry. Sensors 2016, 16, 1915. [Google Scholar] [CrossRef]
  23. Zhou, X.; Zheng, H.; Xu, X.; He, J.; Ge, X.; Yao, X.; Cheng, T.; Zhu, Y.; Cao, W.; Tian, Y. Predicting grain yield in rice using multi-temporal vegetation indices from UAV-based multispectral and digital imagery. ISPRS J. Photogramm. Remote Sens. 2017, 130, 246–255. [Google Scholar] [CrossRef]
  24. Yeom, J.; Jung, J.; Chang, A.; Maeda, M.; Landivar, J. Automated open cotton boll detection for yield estimation using unmanned aircraft vehicle (UAV) data. Remote Sens. 2018, 10, 1895. [Google Scholar] [CrossRef] [Green Version]
  25. Mardanisamani, S.; Maleki, F.; Hosseinzadeh Kassani, S.; Rajapaksa, S.; Duddu, H.; Wang, M.; Shirtliffe, S.; Ryu, S.; Josuttes, A.; Zhang, T.; et al. Crop lodging prediction from UAV-acquired images of wheat and canola using a DCNN augmented with handcrafted texture features. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops 2019, Long Beach, CA, USA, 16–20 June 2019. [Google Scholar]
  26. Zhang, Z.; Flores, P.; Igathinathane, C.; L Naik, D.; Kiran, R.; Ransom, J.K. Wheat Lodging Detection from UAS Imagery Using Machine Learning Algorithms. Remote Sens. 2020, 12, 1838. [Google Scholar] [CrossRef]
  27. Zhao, X.; Yuan, Y.; Song, M.; Ding, Y.; Lin, F.; Liang, D.; Zhang, D. Use of unmanned aerial vehicle imagery and deep learning unet to extract rice lodging. Sensors 2019, 19, 3859. [Google Scholar] [CrossRef] [Green Version]
  28. Pádua, L.; Marques, P.; Hruška, J.; Adão, T.; Peres, E.; Morais, R.; Sousa, J.J. Multi-temporal vineyard monitoring through UAV-based RGB imagery. Remote Sens. 2018, 10, 1907. [Google Scholar] [CrossRef] [Green Version]
  29. De Castro, A.I.; Jimenez-Brenes, F.M.; Torres-Sánchez, J.; Peña, J.M.; Borra-Serrano, I.; López-Granados, F. 3-D characterization of vineyards using a novel UAV imagery-based OBIA procedure for precision viticulture applications. Remote Sens. 2018, 10, 584. [Google Scholar] [CrossRef] [Green Version]
  30. Tsouros, D.C.; Bibi, S.; Sarigiannidis, P.G. A review on UAV-based applications for precision agriculture. Information 2019, 10, 349. [Google Scholar] [CrossRef] [Green Version]
  31. Choset, H. Coverage for robotics—A survey of recent results. Ann. Math. Artif. Intell. 2001, 31, 113–126. [Google Scholar] [CrossRef]
  32. Oksanen, T.; Visala, A. Coverage path planning algorithms for agricultural field machines. J. Field Robot. 2009, 26, 651–668. [Google Scholar] [CrossRef]
  33. Jin, J.; Tang, L. Coverage path planning on three-dimensional terrain for arable farming. J. Field Robot. 2011, 28, 424–440. [Google Scholar] [CrossRef]
  34. Hameed, I.A. Intelligent coverage path planning for agricultural robots and autonomous machines on three-dimensional terrain. J. Intell. Robot. Syst. 2014, 74, 965–983. [Google Scholar] [CrossRef] [Green Version]
  35. Kakaes, K.; Greenwood, F.; Lippincott, M.; Dosemagen, S.; Meier, P.; Wich, S. Drones and Aerial Observation: New Technologies for Property Rights. In Human Rights, and Global Development: A Primer; New America: Washington, DC, USA, 2015; pp. 514–519. [Google Scholar]
  36. Ghaddar, A.; Merei, A. Energy-Aware Grid Based Coverage Path Planning for UAVs. In Proceedings of the Thirteenth International Conference on Sensor Technologies and Applications SENSORCOMM, Nice, France, 27–31 October 2019; pp. 27–31. [Google Scholar]
  37. Vasquez-Gomez, J.I.; Herrera-Lozada, J.C.; Olguin-Carbajal, M. Coverage path planning for surveying disjoint areas. In Proceedings of the 2018 International Conference on Unmanned Aircraft Systems (ICUAS), Dallas, TX, USA, 12–15 June 2018; pp. 899–904. [Google Scholar]
  38. Coombes, M.; Chen, W.H.; Liu, C. Boustrophedon coverage path planning for UAV aerial surveys in wind. In Proceedings of the 2017 International Conference on Unmanned Aircraft Systems (ICUAS), Miami, FL, USA, 13–16 June 2017; pp. 1563–1571. [Google Scholar]
  39. Barrientos, A.; Colorado, J.; Cerro, J.D.; Martinez, A.; Rossi, C.; Sanz, D.; Valente, J. Aerial remote sensing in agriculture: A practical approach to area coverage and path planning for fleets of mini aerial robots. J. Field Robot. 2011, 28, 667–689. [Google Scholar] [CrossRef] [Green Version]
  40. Almeida, A.; Ramalho, G.; Santana, H.; Tedesco, P.; Menezes, T.; Corruble, V.; Chevaleyre, Y. Recent advances on multi-agent patrolling. In Brazilian Symposium on Artificial Intelligence; Springer: Berlin/Heidelberg, Germany, 2004; pp. 474–483. [Google Scholar]
  41. Pasqualetti, F.; Franchi, A.; Bullo, F. On cooperative patrolling: Optimal trajectories, complexity analysis, and approximation algorithms. IEEE Trans. Robot. 2012, 28, 592–606. [Google Scholar] [CrossRef] [Green Version]
  42. Huang, W.H. Optimal line-sweep-based decompositions for coverage algorithms. In Proceedings of the 2001 ICRA IEEE International Conference on Robotics and Automation (Cat. No. 01CH37164), Seoul, Korea, 21–26 May 2001; Volume 1, pp. 27–32. [Google Scholar]
  43. Galceran, E.; Carreras, M. A survey on coverage path planning for robotics. Robot. Auton. Syst. 2013, 61, 1258–1276. [Google Scholar] [CrossRef] [Green Version]
  44. Collins, M.D. Using a Drone to Search for the Ivory-billed Woodpecker (Campephilus principalis). Drones 2018, 2, 11. [Google Scholar] [CrossRef] [Green Version]
  45. Raciti, A.; Rizzo, S.A.; Susinni, G. Drone charging stations over the buildings based on a wireless power transfer system. In Proceedings of the 2018 IEEE/IAS 54th Industrial and Commercial Power Systems Technical Conference (I&CPS), Niagara Falls, ON, Canada, 7–10 May 2018; pp. 1–6. [Google Scholar]
  46. Choi, C.H.; Jang, H.J.; Lim, S.G.; Lim, H.C.; Cho, S.H.; Gaponov, I. Automatic wireless drone charging station creating essential environment for continuous drone operation. In Proceedings of the 2016 International Conference on Control, Automation and Information Sciences (ICCAIS), Ansan, Korea, 27–29 October 2016; pp. 132–136. [Google Scholar]
  47. Kim, S.J.; Lim, G.J. A hybrid battery charging approach for drone-aided border surveillance scheduling. Drones 2018, 2, 38. [Google Scholar] [CrossRef] [Green Version]
  48. Feng, Y.; Zhang, C.; Baek, S.; Rawashdeh, S.; Mohammadi, A. Autonomous landing of a UAV on a moving platform using model predictive control. Drones 2018, 2, 34. [Google Scholar] [CrossRef] [Green Version]
  49. Tseng, C.M.; Chau, C.K.; Elbassioni, K.M.; Khonji, M. Flight tour planning with recharging optimization for battery-operated autonomous drones. arXiv 2017, arXiv:1703.10049. [Google Scholar]
  50. Trotta, A.; Di Felice, M.; Montori, F.; Chowdhury, K.R.; Bononi, L. Joint coverage, connectivity, and charging strategies for distributed UAV networks. IEEE Trans. Robot. 2018, 34, 883–900. [Google Scholar] [CrossRef]
  51. Hong, I.; Kuby, M.; Murray, A.T. A range-restricted recharging station coverage model for drone delivery service planning. Transp. Res. Part C Emerg. Technol. 2018, 90, 198–212. [Google Scholar] [CrossRef]
  52. Mekikis, P.V.; Antonopoulos, A. Breaking the boundaries of aerial networks with charging stations. In Proceedings of the ICC 2019—2019 IEEE International Conference on Communications (ICC), Shanghai, China, 20–24 May 2019; pp. 1–6. [Google Scholar]
  53. Li, B.; Patankar, S.; Moridian, B.; Mahmoudian, N. Planning large-scale search and rescue using team of uavs and charging stations. In Proceedings of the 2018 IEEE International Symposium on Safety, Security and Rescue Robotics (SSRR), Philadelphia, PA, USA, 6–8 August 2018; pp. 1–8. [Google Scholar]
  54. Kershner, R. The number of circles covering a set. Am. J. Math. 1939, 61, 665–671. [Google Scholar] [CrossRef]
  55. DJI. Mavic Air User Manual (v1.2). 2018. Available online: https://dl.djicdn.com/downloads/Mavic+Air/20180525/Mavic+Air+User+Manual+v1.2.pdf (accessed on 13 July 2020).
  56. HeishaTech. C300 Drone Charging Pad. 2019. Available online: https://www.heishatech.com/charging-pad-3/ (accessed on 13 July 2020).
Figure 1. Field shapes used in simulations, with vertices marked. Vertices ( x 1 , y 1 ) are placed at the start location, which has coordinates ( 0 , 0 ) .
Figure 1. Field shapes used in simulations, with vertices marked. Vertices ( x 1 , y 1 ) are placed at the start location, which has coordinates ( 0 , 0 ) .
Sustainability 12 08878 g001
Figure 2. (a) Points in the discretized rectangular ( x , y ) meshgrid that includes field points, for a pentagonal field.The outline of the field is shown as a dashed line. (b) Remaining grid points within the field after applying contain_points() and removing points within R of the start location ( 0 , 0 ) .
Figure 2. (a) Points in the discretized rectangular ( x , y ) meshgrid that includes field points, for a pentagonal field.The outline of the field is shown as a dashed line. (b) Remaining grid points within the field after applying contain_points() and removing points within R of the start location ( 0 , 0 ) .
Sustainability 12 08878 g002
Figure 3. Calculation of Voronoi regions inside a pentagonal field. (a) Unbounded Voronoi regions for 5 CS. These are not returned by the Python class Voronoi. (b) Bounded Voronoi regions resulting when four proxy points (indicated as hollow dots) are added. The boundary of the pentagonal field is represented as a dotted line. (c) Final Voronoi regions obtained by intersecting Voronoi polygons with the pentagonal field.
Figure 3. Calculation of Voronoi regions inside a pentagonal field. (a) Unbounded Voronoi regions for 5 CS. These are not returned by the Python class Voronoi. (b) Bounded Voronoi regions resulting when four proxy points (indicated as hollow dots) are added. The boundary of the pentagonal field is represented as a dotted line. (c) Final Voronoi regions obtained by intersecting Voronoi polygons with the pentagonal field.
Sustainability 12 08878 g003
Figure 4. (a) Example of a CS adjacency graph. Each vertex represents a CS, and edges are drawn between CSs whose Voronoi regions share a common edge. Note that in order to form a closed spanning walk, vertex v 2 and edge v 1 v 2 ¯ must be repeated. (b) Complete weighted graph formed from the CS adjacency graph in (a). Edge weights correspond to the minimum number of edges in a connecting path between vertices in the original graph.
Figure 4. (a) Example of a CS adjacency graph. Each vertex represents a CS, and edges are drawn between CSs whose Voronoi regions share a common edge. Note that in order to form a closed spanning walk, vertex v 2 and edge v 1 v 2 ¯ must be repeated. (b) Complete weighted graph formed from the CS adjacency graph in (a). Edge weights correspond to the minimum number of edges in a connecting path between vertices in the original graph.
Sustainability 12 08878 g004
Figure 5. Closed spanning walk linking CS locations (blue line) within a pentagonal-shaped field. CSs are shown in red, while Voronoi regions are outlined in black. Note that drone does not fly directly from CS to CS but rather travels by way of common vertices between Voronoi regions as described in the text.
Figure 5. Closed spanning walk linking CS locations (blue line) within a pentagonal-shaped field. CSs are shown in red, while Voronoi regions are outlined in black. Note that drone does not fly directly from CS to CS but rather travels by way of common vertices between Voronoi regions as described in the text.
Sustainability 12 08878 g005
Figure 6. Triangulation of Voronoi regions for the field configuration shown in Figure 5.
Figure 6. Triangulation of Voronoi regions for the field configuration shown in Figure 5.
Sustainability 12 08878 g006
Figure 7. Transformed triangle used as input to the triangle covering path algorithm.
Figure 7. Transformed triangle used as input to the triangle covering path algorithm.
Sustainability 12 08878 g007
Figure 8. Coverage path for drone with unlimited energy.
Figure 8. Coverage path for drone with unlimited energy.
Sustainability 12 08878 g008
Figure 9. Drone path within a single triangle automatically generated by the algorithm. Different colors represent individual drone trajectories between charges. CS is located at ( 0 , 0 ) .
Figure 9. Drone path within a single triangle automatically generated by the algorithm. Different colors represent individual drone trajectories between charges. CS is located at ( 0 , 0 ) .
Sustainability 12 08878 g009
Figure 10. Flowchart for recursive function nextPath().
Figure 10. Flowchart for recursive function nextPath().
Sustainability 12 08878 g010
Figure 11. Illustration of where V 0 ˜ , V 1 ˜ , V 0 , V 1 are located within the triangle when moving parallel of V 0 V 1 ¯ .
Figure 11. Illustration of where V 0 ˜ , V 1 ˜ , V 0 , V 1 are located within the triangle when moving parallel of V 0 V 1 ¯ .
Sustainability 12 08878 g011
Figure 12. Completed drone path for entire pentagonal-shaped field, with CS radius = 2.5 km. The red dots denote CS locations, while the blue lines show the Voronoi cells. The different colored lines indicate flights made on a single charge. The spanning walk identified in Figure 5 shows as white lines.
Figure 12. Completed drone path for entire pentagonal-shaped field, with CS radius = 2.5 km. The red dots denote CS locations, while the blue lines show the Voronoi cells. The different colored lines indicate flights made on a single charge. The spanning walk identified in Figure 5 shows as white lines.
Sustainability 12 08878 g012
Figure 13. Algorithm runtimes for all simulation runs.
Figure 13. Algorithm runtimes for all simulation runs.
Sustainability 12 08878 g013
Figure 14. Comparison of algorithm coverage performance for different field configurations and CS coverage radii. Error bars correspond to the standard deviation computed from 100 runs for each field size/shape/CS radius configuration.
Figure 14. Comparison of algorithm coverage performance for different field configurations and CS coverage radii. Error bars correspond to the standard deviation computed from 100 runs for each field size/shape/CS radius configuration.
Sustainability 12 08878 g014
Figure 15. Comparison of algorithm mission time performance for different field configurations and CS coverage radii. Error bars correspond to the standard deviation computed from 100 runs for each field size/shape/CS radius configuration.
Figure 15. Comparison of algorithm mission time performance for different field configurations and CS coverage radii. Error bars correspond to the standard deviation computed from 100 runs for each field size/shape/CS radius configuration.
Sustainability 12 08878 g015
Figure 16. Pareto frontiers showing the tradeoff between minimizing mission time per area and maximizing covered area per charging station.
Figure 16. Pareto frontiers showing the tradeoff between minimizing mission time per area and maximizing covered area per charging station.
Sustainability 12 08878 g016
Table 1. Table of user-supplied parameters.
Table 1. Table of user-supplied parameters.
NameSymbolValue(s) in Simulation
FOV radius ρ 0.025  km
Drone ranged8 km
Drone velocityv25 km/h
CS radiusR2.0, 2.5, 3.0, 3.5, 3.9 km
Mesh steps 0.02  km
Field vertices ( x n , y n ) Various (see Figure 1)
Field area A 25, 50, 100
Start location ( ι x , ι y ) ( 0 , 0 )
CS vector length δ 25, 50, 100
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Vargas Tamayo, L.; Thron, C.; Fendji, J.L.K.E.; Thomas, S.-K.; Förster, A. Cost-Minimizing System Design for Surveillance of Large, Inaccessible Agricultural Areas Using Drones of Limited Range. Sustainability 2020, 12, 8878. https://doi.org/10.3390/su12218878

AMA Style

Vargas Tamayo L, Thron C, Fendji JLKE, Thomas S-K, Förster A. Cost-Minimizing System Design for Surveillance of Large, Inaccessible Agricultural Areas Using Drones of Limited Range. Sustainability. 2020; 12(21):8878. https://doi.org/10.3390/su12218878

Chicago/Turabian Style

Vargas Tamayo, Luis, Christopher Thron, Jean Louis Kedieng Ebongue Fendji, Shauna-Kay Thomas, and Anna Förster. 2020. "Cost-Minimizing System Design for Surveillance of Large, Inaccessible Agricultural Areas Using Drones of Limited Range" Sustainability 12, no. 21: 8878. https://doi.org/10.3390/su12218878

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop