Next Article in Journal
DEDG: Cluster-Based Delay and Energy-Aware Data Gathering in 3D-UWSN with Optimal Movement of Multi-AUV
Previous Article in Journal
Understanding Spray Attributes of Commercial UAAS as Impacted by Operational and Design Parameters
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Routing in Solar-Powered UAV Delivery System

Computer Science Department, University of Texas at Dallas, Richardson, TX 75080, USA
*
Authors to whom correspondence should be addressed.
Drones 2022, 6(10), 282; https://doi.org/10.3390/drones6100282
Submission received: 3 September 2022 / Revised: 26 September 2022 / Accepted: 26 September 2022 / Published: 30 September 2022

Abstract

:
As interest grows in unmanned aerial vehicle (UAV) systems, UAVs have been proposed to take on increasingly more tasks that were previously assigned to humans. One such task is the delivery of goods within urban cities using UAVs, which would otherwise be delivered by terrestrial means. However, the limited endurance of UAVs due to limited onboard energy storage makes it challenging to practically employ UAV technology for deliveries across long routes. Furthermore, the relatively high cost of building UAV charging stations prevents the dense deployment of charging facilities. Solar-powered UAVs can ease this problem, as they do not require charging stations and can harvest solar power in the daytime. This paper introduces a solar-powered UAV goods delivery system to plan delivery missions with solar-powered UAVs (SPUs). In this study, when the SPUs run out of power, they charge themselves on landing places provided by customers instead of charging stations. Some advanced path planning algorithms are proposed to minimize the overall mission time in the statically charging efficiency environment. We further consider routing in the dynamically charging efficiency environment and propose some mission arrangement protocols to manage different missions in the system. The simulation results demonstrate that the algorithms proposed in our work perform significantly better than existing UAV path planning algorithms in solar-powered UAV systems.

1. Introduction

As unmanned aerial vehicles (UAVs) become increasingly popular, their applications for drones/UAVs (drones and UAVs can be used interchangeably, although many professionals in the industry believe UAVs need to have autonomous flight capabilities, whereas drones do not; in this study, we only talk about UAVs in the form of quadcopters) are developed and expanded to many civilian or military areas. Soon, UAVs are predicted to play a significant role in the intellectualization of urban cities. However, the limited battery capacity makes it difficult for UAVs to finish long-distance/long-term missions without any power charging on the way.
In some UAV delivery systems, the solution is to build many charging stations along the way, so that UAVs can carry out longer missions. For example, in [1,2,3], charging stations were built for UAV power supply. Unfortunately, it is costly and sometimes illegal to build charging stations on rooftops or personal property in urban cities. Although some hosts are willing to have charging stations on their property, other issues arise, such as the power, the safety of the station and potential UAV-caused accidents. It is, therefore, challenging to build UAV charging infrastructures in both public and personal places.
Solar-powered UAVs can harvest sunlight power anywhere in the daytime given suitable weather. As a result, to achieve more extended distance/time missions by UAVs without building many charging infrastructures, we propose an autonomous solar-powered UAV delivery system to take over the traditional delivery work in urban cities. In our proposed system, places such as roofs of buildings (the study in [4] presented potential solar energy stations on rooftops in modern cities that can be easily discovered by UAVs), high grounds in parks and small places in people’s gardens are identified as possible charging places on city maps. It is much cheaper and more efficient to simply utilize such places as they are rather than building charging infrastructures there instead. In the proposed system, hundreds of solar-powered UAVs are prepared in stores with thousands of charging places determined throughout a city. When the system receives a delivery mission, it automatically finds the proper UAV that takes the least amount of time to finish the task. Since the UAVs can run out of power during the mission, the system helps with UAV path planning and determines how much time they need to stay on each passed landing place for solar power charging. In previous studies, authors paid more attention to path planning for solar-powered UAVs to harvest more energy during the flight (for fixed-wing UAVs), and no path planning methods were proposed for solar-powered UAV delivery systems. Thus, we believe it is necessary to comprehensively analyze the routing problem in solar-powered UAV delivery systems.
This study discusses the path planning problem by considering both the distance and the energy charging efficiency, since SPUs are applied here. The charging rates (efficiency) (the charging rate here represents the charging speed of a solar panel in a landing place in units of energy per minute, depending on the illumination/radiation level of the landing place) of different charging places differ in our scheme. Sequentially, we perform a trade-off between the distance and energy charging efficiency in this problem. The charging efficiency can either be static or dynamic in UAV systems. If the charging efficiency is considered static, it means the energy price in the normal UAV delivery system or the charging rate in the solar-powered UAV system is considered constant for each landing place. At the beginning of our study, both the optimal charging time assignment (CTA) algorithm and the globally optimal path planning algorithm (GOA) with pruning strategies are proposed to solve the path planning problem in the statically charging efficiency environment. As described in the solar radiation model proposed in [5], we also consider a dynamically charging efficiency in our study. It is much more efficient to charge the UAV in the period close to noon than in earlier or later daytime. Hence, the path planning problem became more complicated here. To solve the routing problem in the dynamically charging efficiency environment, we also propose a dynamically greedy CTA algorithm to further reduce the charging time on a known path. In addition, a heuristic path planning algorithm based on the dynamically greedy CTA algorithm is proposed to reduce the path finding time. Finally, some protocols are proposed to optimize the global UAV delivery works in the whole system.
The main contributions in this paper include the following:
  • We propose globally optimal CTA and path planning algorithms for UAV delivery problems in a statically charging efficiency environment. Previous studies have not proposed such globally optimal algorithms.
  • We propose a greedy CTA algorithm and a heuristic path planning algorithm for the solar-powered UAV delivery problem in a dynamically charging efficiency environment, which has never been proposed before.
  • We are the first to propose a SPU delivery system with a prototype, system design, and protocols to operate different missions.
The rest of this paper is organized as follows: Section 2 compares our study with related works. Section 3 proposes the path planning problems we encounter in the SPU delivery system. Section 4 proposes the CTA algorithm and globally optimal path planning algorithm for a single SPU mission in a statically charging efficiency environment. Section 5 proposes a dynamically greedy CTA algorithm and heuristic SPU path planning algorithm to solve the SPU routing problem in the dynamically charging efficiency environment. Section 6 proposes the mission arrangement protocols to solve the system-level problems. Section 7 proves the feasibility of applying SPUs in delivery works. Section 8 presents the simulation results for our proposed algorithms. The last section concludes the paper and suggests future work.

2. Related Studies

The subject of this paper was to solve the path planning problem in solar-powered UAV delivery systems, whereas no other studies explored the same topic as our study. Most papers about solar-powered UAV path planning have focused on fixed-wing solar-powered UAV path planning, which plans the optimal path to create wings with solar panels that can harvest the most power during the flight, such as [6,7]. However, since we aimed to work on the UAV delivery problems, it was not practical to apply fixed-wing solar-powered UAVs in this study. (Fixed-wing UAVs require runways to take off and land on, and it is not practical to build a lot of runways in modern cities. In addition, in our study, the optimization of charging time on a series of landing places was considered, whereas in fixed-wing solar-powered UAV path planning problems, the optimization of continuous charging efficiency on different flight paths is generally considered. Thus, we did not compare our proposed algorithms with any algorithms applied to fixed-wing UAVs.) As a result, we focused on the path planning problem for solar-powered quadcopters, which are more practical for delivery missions.
Some other studies discussed that the path planning problems of UAVs were related to obstacle avoidance, such as [8,9]. In our study, we ignored this kind of problem because we assumed that UAVs would fly to a safe altitude where no obstacles needed to be considered. Consequently, we focused on finding the best route for UAVs to finish a delivery mission with several landing times. Thus, we did not compare our algorithms with such kinds of studies.
Hence, we compared our study with papers related to quadcopter path planning problems and UAV delivery problems. As described in [10], since UAV path planning problems are always treated as being NP-hard (nondeterministic polynomial-time hardness) problems, the time complexity and complexity of the problems increase in complex terrains. They pointed out all the challenges for solar-powered UAV implementations, but did not give a particular solution to the UAV delivery path planning problem. In addition, different from fixed-wing UAVs, solar-powered quadcopter path planning problems are mainly affected by distance and solar power factors. Thus, in our study, we focused on the trade-off between energy charging and flying distance to find the best route. The authors of [11] concluded that in UAV routing problems, which require the finding of a set of locations as paths, authors are always trying to find a path that minimizes the operational cost. Accordingly, in our study, this cost stood in for the mission time, since no money was deducted during the solar-powered UAV delivery missions.
For UAV delivery research, such as [12,13,14], authors proposed routing algorithms for UAV delivery problems with the help of ground vehicles. Solar-powered UAVs are not appropriate for these delivery systems, because it takes more area to charge them than normal UAVs and requires a safe charging environment, while, in [15,16], the authors studied the path planning algorithm for the coverage plan of delivery customers. The UAV delivery system was discussed in some studies before, such as [17,18,19]. For example, in [17], the authors focused on the optimization of mission scheduling, while in our study, we focused on the optimization of path planning. Thus, the algorithms proposed in such kinds of studies cannot be compared with our study as well.
Studies from [1,2,3,20,21] were quite like our study. All these studies talked about path planning algorithms in UAV delivery systems with charging stations deployed. However, authors of [1,3,20] proposed heuristic algorithms to solve the path planning problems in UAV delivery systems, whereas authors of [2,10] proposed Dijkstra-based algorithms to solve the path planning problems. Since we are the first to propose path planning algorithms in solar-powered UAV delivery systems, it is quite difficult to compare our proposed algorithms with existing heuristic algorithms. The existing heuristic algorithms for UAV delivery path planning did not consider the factor of dynamically charging efficiency, which is very important in solar-powered UAV delivery routing problems. Additionally, in our study, we completed a comprehensive study of the optimization of solar-powered UAV routing problems, which has never been performed before. However, it is difficult to compare our proposed algorithms with existing heuristic algorithms, since the weights of factors were different.
On the other hand, when compared to Dijkstra-based algorithms, our proposed algorithm was much better, because of the introduction of charging time assignment algorithms. In Dijkstra-based algorithms, authors assume that UAVs always charge themselves to a full battery state without considering CTA plans (in Dijkstra-based algorithms, the cost between nodes should be constant, and if UAVs are allowed to be partially charged in a charging station/landing place, the cost between nodes becomes a variable when the paths change). As a result, the Dijkstra-based algorithms cannot obtain globally optimal solutions in any scenarios where UAVs can be partially charged. More specifically, we proposed different CTA algorithms that modified the linear greedy algorithm proposed in [21] for vehicle recharging in the UAV delivery system. In a statically charging efficiency environment, our proposed CTA algorithm had an advantage compared with the linear greedy algorithm in SPU problems, because we could prune the path if any node was assigned 0 charging time by the linear greedy algorithm and reduce the total mission time in some cases. In a dynamically charging efficiency environment, our proposed dynamically greedy CTA algorithm further optimized the linear greedy algorithm with a local minimization operation and increased its efficiency when dealing with SPU path planning problems. With the great advantage brought by our proposed CTA algorithms for solar-powered UAV delivery systems, our proposed path planning algorithms showed obvious improvements compared to Dijkstra-based algorithms.

3. The Proposed Model of SPU Delivery System

3.1. SPU Delivery System

To replace the human work in delivery systems in urban cities, we proposed a system with solar-powered UAVs, which allowed for energy charging on landing places during their missions. There are two kinds of solar-powered UAVs, fixed-wing SPUs and multirotor SPUs. We chose multirotor solar-powered UAVs, because it is difficult for fixed-wing SPUs to lift and land in urban cities. In addition, it can be inefficient, and unsafe for multirotor SPUs to fly with their wings expanded during delivery missions when they are expected to carry heavy payloads. Thus, we preferred the transformable multirotor SPUs from [22], because, during the flight, the solar panels can be folded and unfolded again when landing to charge. The feasibility study of such an SPU is discussed in Section 7. Each UAV could only carry one package at a time, since the payload of a single UAV is limited.
Therefore, the solar-powered UAV delivery system could be built with three elements: delivery stores, solar-powered UAVs and landing places. The packages were stored at delivery stores, and these were the start nodes of the delivery missions. The solar-powered UAVs that carried out the delivery missions charged themselves on landing places. The landing places could either be intermediate nodes or the destination of the delivery missions, and in some emergency or the return voyages, they could be the start nodes as well.
In the proposed system, we assumed that the system would operate during the daytime, with optimal weather conditions for flight and solar power charging. As the energy required for flying was larger than the capacity of the battery, the UAVs periodically needed to land and stay grounded until having accumulated enough energy to continue their mission (this is reminiscent of the way that flying bugs travel, such as flies or bees, where these bugs periodically land to rejuvenate); we referred to such times as charging times. The charging rates at different locations were typically different and were assumed to be known (or approximately predictable) to the path planning facility. The goal of the proposed algorithms was to minimize the sum of total flying times and charging times, (see Equation (1) below). Thus, the proposed algorithm determined the path the UAV should follow, and how much time the solar-powered UAV should stay at each passed landing place. Note that for any UAV delivery mission, the path with the shortest distance may not be the path with the shortest total mission time. In other words, we determined a trade-off between flying distance and energy charging efficiency. In practice, the solar-powered UAV path planning problem was more complicated, since our path planning algorithm was proposed for solar-powered UAVs and the charging rate in any landing place varied in the daytime; we also needed to find the best path planning algorithm in a dynamically charging efficiency environment. Finally, after finding the best path planning algorithm for each SPU delivery mission, the arrangement protocol for hundreds of missions was needed.

3.2. SPU Routing Problem Definition (Statically Charging Efficiency)

Before we optimized the whole SPU delivery system, we needed to solve the SPU routing problem for a single UAV. The ultimate objective of this path planning problem, called the single SPU problem, was to find a path that minimized the total mission time. The following diagram shows an example of a single SPU problem in our proposed system.
In Figure 1, the single SPU problem was designed to find a path from node 1 to node 10 with minimized mission time. Path 1-3-8-10 was a candidate optimal solution to this problem. The UAV started at node 1 then landed on nodes 3 and 8 to charge itself, and then arrived at node 10 if the system assigned this routing plan to it.
To simplify the routing problem, we ignored the lifting and landing time and energy costs in this routing problem, since they were negligible when we considered a long-term journey by the UAVs. However, it was still not simply a problem of finding the shortest path, since there was a trade-off between distance and energy charging for any path. For example, even if the length of a path was short, the total mission time would still be long because the charging efficiencies of the nodes along this path were low, and it would take much more time for the UAV to charge along this path. To deal with this issue, we simplified the path planning problem with Assumptions 3.2.1–3.2.3, discussed below.
The path planning problem was equivalent to a mission time minimization problem:
min T total = min ( T total flight + T total charge )
where T total flight represents the total flying time and T total charge represents the total charging time during the mission. T total is the total mission time that we wanted to minimize. Further, we assumed that the charging efficiency at node x, defined as the fraction of the maximum charging rate of the UAV’s energy storage, was ρ x . If node x had the maximal possible charging rate (i.e., sufficiently large radiation that allowed for the maximal charging rate of the UAV energy storage), ρ x = 1 , then, in general, 0 < ρ x 1 .
We defined the problem formally as follows: given a geographical (local) map with marked n locations (called nodes): V local = { v 1 , v 2 , ,   v n } ,   where v 1 = v S   is the start node and v n = v D is the destination, and v 2 ,   ,   v n 1 are possible landing places on the geographical map. At first, a graph was generated to describe the reachability relation between the nodes G = ( V local , E reachable ) . E reachable = { e 1 , e 2 , ,   e m } represents all the edges that follow l e i d max , where l e i is the length of edge e i , and d max is the maximum one nonstop flying distance of the UAV with its energy storage maximally charged. Then, the SPU path planning problem could be described as the mission time minimization problem with Equation (1) when graph G and distance d max were chosen.
Let l S D denote the straight-line cross node v S and node v D . Additionally, let e ij denote the edge between nodes v i and v j .
Assumption 3.2.1.G is a graph as defined above for all the edges in E r e a c h a b l e . Line l S D needs to be the parallel line of the X-coordinate in the local city map. The coordinate of node v S is (0, Y S ) and the coordinate of node v D is ( X D , Y S ). For any edge in E r e a c h a b l e as e i j , assume the coordinate of node v i is ( X i , Y i ) and the coordinate of node v j is ( X j , Y j ), always keeping X j X i .
This assumption ensured that the UAV did not fly significantly “back” to nodes away from the destination. Additionally, circulations in paths were also eliminated with this assumption.
For any given path P k = [ v S , v k 1 , v k 2   v k j ,   v D ] , where v k 1 ,   ,   v k j were possible landing places along the path, T total flight was fixed, because the speed of the UAV and the distance between any two nodes were fixed in G. As a result, Equation (1) could be written as:
min T total = T total flight + min ( T total charge )
Assuming that the number of nodes in P k is L , T total flight = q = 0 L 2 T flight ( max ) × d k q k q + 1 d max , where T flight ( max ) is the maximum flying time for a fully charged UAV, d max is the maximum distance a UAV could fly with a fully charged energy storage, d k q k q + 1 represents the distance between node v k q and node v k q + 1 ( v k q is the ( q + 1 ) th node in P k ), and the start node v S v k 0 on path P k . T total charge = i = 1 L 2 T charge ( k i ) , where T charge ( k i ) is the charging time in node k i . Subsequently, if the path is known as P k , the total mission time along path P k can be calculated as:
T total = q = 0 L 2 T flight ( max ) × d k q k q + 1 d max + i = 1 L 2 T charge est ( k i ) ρ k i
where T charge est ( k i ) represents the estimated charging time at node k I when ρ k i = 1 . Then, the actual charging time for any node k I could be obtained with T charge ( k i ) = T charge est ( k i ) ρ k i . T total charge depended on the charging time assignment plans along a path P k ; e.g., one possible scheme was that we assumed that the UAV was charged only to the level needed to reach the next node on the path. In general, the approximate range of T total charge could be found with the following formula:
T charge ( max ) ρ max × T total flight T flight ( max ) T flight ( max ) T total charge T charge ( max ) ρ min × T total flight T flight ( max ) T flight ( max )
where ρ min represents the minimum charging efficiency for all charging places on a local city map, ρ max = 1 represents the maximum charging efficiency for all charging places and T charge ( max ) ρ represents the total time to charge the battery from empty to a fully charged state when the charging efficiency was ρ .   T charge ( max ) ρ max = ρ min T charge ( max ) ρ min .
Assuming that E p was the remaining power in the UAV when the UAV reached the ( p + 1 ) th node on path P k , R p represented the charging time to charge the UAV battery to E p when charging efficiency was ρ max . Assumption 3.2.2 was created to simplify the derivation:
Assumption 3.2.2. R 1 = R S = T c h a r g e ( m a x ) ρ m a x ; if T t o t a l f l i g h t > T f l i g h t ( m a x ) , R L = R D = 0 .
Assumption 3.2.2 supposes that we always had a fully charged UAV at the beginning of a mission. If the UAV could not fly from node S to D without recharging, meaning that T total flight > T flight ( max ) , we assumed that when the UAV reached the destination it had no remaining power. On the other hand, if T total flight T flight ( max ) , we did not need to consider the energy charging time of any path, because we did not need to charge the UAV during its mission.
We also ignored the landing and lifting-off times, as those are typically negligible relative to the flight time between two nodes on a path:
Assumption 3.2.3.
The lifting-off times and the landing times of each mission were assumed to be negligible.
Besides the assumptions above, we needed to claim that, in this study, the energy charging time and distance between nodes were the only two factors we took into consideration. Here, we assumed a fixed flying speed for all solar-powered UAVs in this problem to simplify the path planning problem, since energy and distance are more crucial for solar-powered path planning problems.
In addition, to finding an optimal charging time assignment plan for any path P k , we recorded the sets of reachable nodes for every node v I   in V local as U i = { U 1 ,   U 2 ,   ,   U n } . Any node v j in reachable set U I should follow d i j d max and X j X i . For example, in Figure 2, for the start node v s , which was node one, nodes two, three and four were in the blue circle with the center as node one and the radius as d max . Consequently, the reachable set of node one was U 1 = { 2 ,   3 ,   5 } .
The routing solution in the statically charging efficiency environment, as described by Equations (1) and (3), was solved in Section 4.

3.3. SPU Routing Problem Definition (Dynamically Charging Efficiency)

In our SPU path planning problem discussed above, we considered the charging efficiency ρ k i   of the node k i as a fixed value. However, in practice, the charging efficiency is a variable and varies during the daytime; thus, it is time dependent: ρ k i   ( t ) . Solar radiation/illumination prediction is of great importance for many applications in a modern city [5], and we could see from [5] that the solar radiation in a place can be approximately represented by a curve.
In our study, we adopted the time-dependent solar radiation model called the S. Kaplanis’s model from [5], shown in Figure 3 (the Y-axis label was replaced with charging efficiency, as defined in this paper):
ρ k i   ( t ) = ( a 1 ( k i   ) + a 2 ( k i   ) cos π ( t t peak ) t end )
where t 0 = 0 represents the time of 6:00 a.m., t peak = 360 is the peak time of radiation, which was noon, and t end = 720 represents the end of the daytime, which was 6:00 p.m. (since the unit of time in our study was minutes). Taking the example from [23], where the mean annual solar radiation in the state of Hawaii was shown, we could say that in different places in the same city, radiations are different, so the prediction factors a 1 and a 2 in Equation (5) were location dependent.
Thus, based on the radiation data collected in any potential landing place, we could generate the radiation prediction formula per Equation (5) with a simulation of the detrending model in [5]. Then, the total mission time along path P k could be expressed with Equation (6):
T total = q = 0 L 2 T flight ( max ) × d k q k q + 1 d max + i = 1 L 2 T charge est ( k i ) ( t i 1 t i 0 ) t i 0 t i 1 ρ k i ( t ) · dt
where t i 0 represents the time that the UAV arrived at node k i and t i 1 represents the time the UAV left node k i at. When t i 0 and t i 1 for each node were determined, we could find the value of T total with Equation (6). To solve the total mission time minimization problem described by Equation (6), we studied how these variables affected the total mission time and tried to find the corresponding algorithm for the dynamically charging efficiency environment in Section 5.

3.4. Mission Arrangement of Problems Definition

The final problem of our study was to plan a UAV delivery system with multiple UAVs operating at the same time. There could be a large number of possible landing places on a city map. We assumed to have a multitude of C missions M = { m 1 , m 2 ,     ,   m C }   to perform every day, and there was a set of UAVs (with B UAVs prepared) UAV { UAV 1 , UAV 2 ,     ,   UAV B } that could be used to execute these missions.
Considering the coordination of the missions in the whole city, the problem described by Equation (1) was changed to:
min T total mission = i = 1 c T total i
where T total i   is the total time of the i th mission, all the missions had to be completed and the total mission time T total mission   had to be minimized.
In Figure 4, the ten stores were marked with red circles and one hundred possible landing places were marked with blue crosses. The mission destinations were some of the landing places.
In the whole proposed SPU delivery system, we needed to consider the following problems:
  • Whether the space in each landing place was limited.
  • Whether the local city map needed to be updated from time to time.
  • Whether the system should be able to handle emergencies caused by bad weather.
Section 6 further addresses the above problems by our proposed protocols.

4. Proposed Routing Algorithms (Statically Charging Efficiency)

In Section 2, we mentioned that the algorithm in [2,3] did not yield a globally optimal solution. Their CTA plan was not optimal for any given path because, in their assumption, the UAVs always charged their battery to a full battery state. For example, in Figure 5, on the 1-5-9-10 path, let us say that the charging efficiency on node eight was much larger than on node three. When we reached node three, as opposed to fully charging the battery, we only needed to charge enough to reach node eight. This plan was more efficient than plans determined by [2,3]. When we considered both the total flying distance and energy charging efficiency in the path planning problem, even though the path found by the Dijkstra algorithm had a minimized distance (the distance for the Dijkstra algorithm here was from a drone navigation and charging station (DNCS) [2], which was calculated with the summation of flying time and charging time under the scenario of UAVs always charging themselves to a full battery capacity in any station/landing place [3]) of a mission, the path found by this Dijkstra algorithm may not have been the optimal one. For example, in Figure 5, assume that the Dijkstra algorithm found an optimal path 1-5-9-10 for the following graph. However, node nine had a much higher charging efficiency than nodes along path 1-5-9-10. Thus, if we charged the UAV on node nine on path 1-4-5-9-10, the total mission time T total could be smaller than that on path 1-5-9-10 obtained with Dijkstra’s algorithm. Thus, to find a globally optimal path planning solution for the SPU delivery mission, we needed a principle to traverse all the possible paths and to find the optimal charging time assignment along each such path.
The algorithm proposed in this section found a globally optimal solution of the SPU path planning problem in a statically charging efficiency environment with an acceptable running time complexity (our proposed algorithms worked on local city maps with at most hundreds of nodes).

4.1. Changing Time Assignment Algorithm

The algorithm presented in this section was a simple globally optimal algorithm (GOA) for solving the problem described in Section 3.2. Namely, the solution to this problem was just a combination of the path traverse algorithm with a depth first search (DFS) and the charging time assignment (CTA) algorithm. The CTA algorithm was necessary in the case that a UAV was unable to reach the destination and needed to find the next landing place for charging before completing the mission.
If a UAV could not fly without recharging to the destination from the current node (including the start node), it needed to find the next landing place for energy charging. This was where the CTA algorithm was necessary.
Assuming the UAV at the time was in the w th node on path P k ( w   1 ), it could reach the next h nodes along path P k (which meant the distances between the w th node and its next h nodes were smaller than d max ) and the flight time to reach the current w th node was T flight total ( w ) . For any w th   node on path P k , assume that the reachable set for the w th   node was U   P k ( w ) , and the set u   P k ( w )   ( u   P k ( w ) = P k U   P k ( w ) ); i.e., u   P k ( w )   contained only the nodes that were both in P k and U   P k ( w ) . Let set Z   P k ( w ) = ρ k ( w 1 ) denote the charging efficiency of the w th node on path P k and P X Y denote the part of the path from the X th node to the Y th node.
Theorem 4.1.
If there exists o   ( o > 1 )  such that the  ( w + o ) t h   node on the path P k  has a larger charging efficiency than all the other nodes in  u   P k ( w ) , path P k   cannot be an optimal path.
Proof of Theorem 4.1:
Assume the ( w + o ) th node ( o > 1 )   has a larger charging efficiency than all the other nodes in u   P k ( w ) . Additionally, assume two charging plans A and B. Plan A included all the nodes on the path in P k , and in plan B, we skipped the nodes between the w th node and the ( w + o ) th node. Then, T total flight ( planB ) T total flight ( planA ) , because the distance of the straight line between the w th and ( w + o ) th nodes in P k was never larger than any other path between the nodes that went through other nodes. In fact, T total charge ( planB ) < T total charge ( planA ) , because we did not waste time to charge the UAV on nodes between the w th node and the ( w + o ) th node, of which the charging efficiencies were lower than the ( w + o ) th node. Thus, T total ( planB ) < T total ( planA ) . Accordingly, plan A with path P k could not be an optimal path. □
Lemma 4.1.
Assume we are currently in w t h ( w > 1 ) node in P k . If any Y node before the w t h node along the path P k can reach the w t h node, and node Y has a larger charging efficiency than any other node along the part of P k from w to Y , P k should be pruned.
Remark 4.1. With the linear greedy algorithm in [21], if we pruned all the paths that satisfied Lemma 4.1, then we would have the following equation to calculate the total charging time on the ( w + 1 ) t h node in P k :
If   max { Z ( w + 1 ) } < ρ k ( w ) , T charge total ( w + 1 ) = T charge total ( w ) + T charge ( max ) ρ max ρ k ( w )
If   max { Z ( w + 1 ) } ρ k ( w 1 ) or   w = L 2 ,   T charge total ( w + 1 ) = T charge total ( w ) + ( T charge ( max ) ρ max × d k w k w + 1 d max   R w ) ρ k ( w )  
where { Z ( w + 1 ) } represents the set of charging efficiencies of nodes in u   P k ( w + 1 ) . If we charged the UAV to full capacity in the w th node, R w + 1 = T charge ( max ) ρ max T charge ( max ) ρ max × d k w 1 k w d max ; otherwise, R w + 1 = 0 .
It was shown in [21] that if there existed an optimal solution, the greedy algorithm of Equation (8) could discover it.
We, hereby, present Algorithm 1 to find an optimal CTA on path P k :
Algorithm 1: CTA algorithm.
Input: Path P k , graph G, charging efficiency Z for all the nodes in V local , reachable set U
Output: Minimized total charging time T charge total along P k and charging time on each node k i , which is T charge ( k i )
Variables: w ,   v
1.    For w = 1 : L − 1
2.    For v = w -1: 1
3.        If the ( w + 1 ) th node is in u   P k ( w )     and   Z   P k ( w + 1 ) is larger than any other node
          along P v ( w + 1 ) , path P k is dropped (by Lemma 4.1)
4.          Break
5.        End//drop nonoptimal paths
6.    End
7.    If P k is kept, the next node is the next landing place. Additionally, in this ( w + 1 ) th
      node, the UAV is charged and allowed to have enough power to reach the ( w + 2 ) th
      node. Update T charge total ( w + 1 ) with Equation (8)
8.    End//assign charging time according to Equation (8)
9. End
10.  Return T charge total ( L ) and T charge ( k i )
Algorithm 1 was applied to find the optimal charging time assignment plan in any statically charging efficiency environment and could be tested by comparing the total charging time it found with what the other algorithms found. Since the CTA algorithm took O ( n 2 ) and time path generation algorithm took O ( n 2 ), the total running time was O ( n 4 ) if we just processed the CTA algorithm on all the possible paths and then found the optimal path.
Reference [21] proposed a related algorithm for vehicle refueling policies. In their study, cars needed to find a reachable refueling place with the lowest price at each stop. However, in UAV path planning problems, if we wanted to skip a node along a path, it would not be necessary to pass this node, and we could just fly straight to the next node. As a result, in our SPU path planning problem, the path was changed when we decided to skip a node along the path. In addition, our proposed Algorithm 1 was different from the linear greedy algorithm in [21]. For example, assume we had two nodes A and B on path P, and there were some nodes between A and B on path P. In the scenario from [21], to decide if A could reach B, the total distance along A to B on path P should be smaller than d max . However, in our SPU routing problems, A reaching B meant that the cartesian distance between A and B was smaller than d max .

4.2. Globally Optimal Routing Algorithm

As discussed above, nonoptimal paths were dropped during the CTA algorithm. However, it was more efficient to prune these nonoptimal paths during the path generation process instead of the CTA process. As Lemma 4.1 claims, in each branch generated with the DFS algorithm, for each new generated node v i along path P, if any node along path P before v i could reach v i and all the nodes between them had lower charging efficiencies than v i , path P should be pruned. Therefore, we skipped node v i and found the next node to generate a new path. If there was no path allowing the UAV to finish the delivery mission, the system reported a failure.
Another pruning strategy was to use the result of the Dijkstra algorithm as a guide to evaluate if a generated path could be a candidate for a globally optimal path. Combining this with the strategy based on the CTA, the complete GOA with a pruning strategy for SPU is depicted in Figure 6.
The result of the Dijkstra algorithm represented an upper bound for the total mission time, and at the beginning of the GOA algorithm processing, the result of the Dijkstra algorithm was set as the maximal estimated flying time (MEFT), T total ( MEFT ) : T total ( MEFT ) = T total ( dijkstra ) . With this bound in mind, we calculated the total mission time for the current path, T total ( candidate ) , with the iterative application of Remark 4.1 and general Equation (3).
Algorithm 2 shows the detailed process for GOA with pruning.
Algorithm 2: GOA with pruning.
Input: Graph G, T total ( MEFT ) = T total ( dijkstra ) , charging efficiency Z for all nodes in V local , reachable set U
Output: Minimized total mission time T total and the optimal path P optimal
Variables: L ,   w ,   v
1. While all the possible unpruned paths are generated,
2.    Process the DFS path to find the algorithm and initialize the current generated path to
        P k = [ v S , v k 1 , v k 2   v k L 1 ] , and assume to now be in the w th node in P k which is v k j   and
       the next node of P k is v k j + 1 . Additionally, the total mission time arriving node v k j is
         T total ( candidate ) . //Path generation
3.    For v = w −1: 1,
4.       If the ( w + 1 ) th node is in u   P k ( w )   and   Z   P k ( w + 1 ) is larger than any other node
          along P v ( w + 1 ) , path P k is pruned and any path starting with P k is pruned as well
5.          Break//pruning strategy by Lemma 4.1
6.       End
7.    End
8.    If P k is unpruned by Lemma 4.1, add v k j + 1 to P k and calculate T total ( candidate ) when v k L is added
9.       If T total ( candidate ) > T total ( MEFT ) ,
10.           P k is pruned and any path starting with P k is pruned as well
11.       Else, if T total ( candidate ) T total ( MEFT ) and v k L = v D
12.           T total ( MEFT ) = T total ( candidate ) and P optimal = P k
13.       Else, if T total ( candidate ) T total ( MEFT ) and v k L v D
14.           Back to step 1
15.       End//find candidate optimal path by comparing
16.    End
17. Return T total ( MEFT ) and P optimal
Algorithm 2 was applied to find the optimal path for the SPU delivery problem in the statically charging efficiency environment and could be tested by comparing the total mission time it found with what other algorithms found. The running time of the unpruned GOA was O ( n 4 ) . However, since we only processed the CTA on unpruned paths, we only needed to calculate the total mission time with Equation (8) on these paths. Consequently, the running time of the pruned GOA could save time exponentially, according to the experiment in Section 8.1. Additionally, the great improvement by the GOA in the experiment also showed that it was necessary to carry this out, because we could significantly save customer time with the GOA. (The GOA could also be applied in other kinds of UAV path planning problems, where the charging efficiency is static. For example, in the path planning problem from [2], when the cost coefficient of time and money was fixed, the charging (cost) efficiency became a fixed value, which was related to the price of energy in different nodes. In such kinds of problems, the GOA could be applied and an optimal solution could be obtained as well.)

5. Proposed Routing Algorithms (Dynamically Charging Efficiency)

As described in Section 3.3, the charging efficiency for any landing place varied with time throughout the day, as shown by Equation (5). Given path P k = [ v S , v k 1 , v k 2   v k j ,   v D ] , the estimated total mission time could be calculated with Equation (6). However, there were different kinds of variables in Equation (6), such as T charge est ( k I ) , t i 0 and t i 1 , which caused it to be difficult to find a minimized solution of the total mission time. Thus, in this section, we further analyzed this minimization problem and proposed SPU path planning algorithms regarding the dynamically charging efficiency.

5.1. Advanced Routing Problem Analysis (Dynamical Charging Efficiency)

In any known path P k = [ v S , v k 1 , v k 2   v k j ,   v D ] in graph G = ( V local , E reachable ) , represented in Figure 7, the total mission time was calculated in Equation (6), when the charging efficiency was dynamic.
Since, in Equation (5), we could not compare the real-time charging efficiency of two different landing places when we did not know the time t the UAV would arrive at these charging places, the pruning strategy by Lemma 4.1 in Section 4.1 could not be applied in the SPU path planning problem with dynamically charging efficiency. It was also difficult to compare the total mission time of two paths unless we found a proper charging time assignment algorithm for each path, as well as there being too many variables in Equation (6). Please note that, in Equation (6), the total flying time for a UAV mission, which was T total flight =   q = 0 L 2 T flight ( max ) × d k q k q + 1 d max , was only determined with path P k ; the total mission time minimization problem, therefore, was only determined by the total charging time, which was T total charge = i = 1 L 2 T charge est ( k i ) ( t i 1 t i 0 ) t i 0 t i 1 ρ k i ( t ) · dt . Hence, if we found the minimized total charging time with a CTA plan and then compared the total mission time for all possible paths from node S to node D, the mission time minimization problem could be solved.
Firstly, Equation (6) needed to be further analyzed to find a more general description of the total mission time minimization problem. Thus, in this section, we tried to simplify the variables in Equation (6). We started by studying the relationship between T charge est ( k i ) and t i 0 , t i 1 . In any intermediate node (nodes except for the start node and destination) k i on path P k , the exact charging time T charge ( k i ) could be calculated with Equation (9):
T charge ( k i ) = T charge est ( k i ) ( t i 1 t i 0 ) t i 0 t i 1 ρ k i ( t ) d t
where t i 0 t i 1 ρ k i ( t ) d t ( t i 1 t i 0 ) represents the averaged charging efficiency on node k i between times t i 0 and t i 1 . Moreover, T charge ( k i ) could also be calculated with T charge ( k i ) = t i 1 t i 0 . Thus, we had the following equation:
T charge est ( k i ) ( t i 1 t i 0 ) t i 0 t i 1 ρ k i ( t ) d t = t i 1 t i 0
t i 0 t i 1 ρ k i ( t ) d t = T charge est ( k i )
If we wanted to charge the UAV from an empty to full battery state, T charge est ( k i ) = T charge ( max ) ρ max . (In addition, with dynamically charging efficiency, we always had T charge ( k i ) > T charge est ( k I ) , since ρ k i ( t ) 1 and t i 0 t i 1 ρ k i ( t ) d t t i 1 t i 0 < 1 ).
With Equation (5) and Figure 3, we could find the relations between a 1 ( k i ) and a 2 ( k i ) :
(1)
a 1 ( k i ) = 0 ; with Figure 3, when t= t 0 = 0 , we had ρ k i ( t ) = 0 . Thus, ( a 1 ( k i   ) + a 2 ( k i   ) cos π ( t 360 ) 720 ) = a 1 ( k i   ) = ρ k i ( t ) = 0 ;
(2)
Assuming the peak charging efficiency for node k i   was ρ k i   ( peak ) , we always had a 2 ( k i ) = ρ k i   ( peak ) . With Figure 3, when t = t peak = 360 , ρ k i ( t ) = ρ k i   ( peak ) . Thus, a 2 ( k i ) cos π ( t peak 360 ) 720 ) = ρ k i   ( peak ) , and then we had a 2 ( k i ) = ρ k i   ( peak ) . ρ k i   ( peak ) could be estimated with the used data collected in different landing places.
Thus, Equation (10) was changed to Equation (11):
t i 0 t i 1 ρ k i   ( peak ) cos π ( t 360 ) 720 d t = T charge est ( k i )
ρ k i   ( peak ) 720 π sin π ( t i 1 360 ) 720 ρ k i   ( peak ) 720 π sin π ( t i 0 360 ) 720 = T charge est ( k i )
If T charge est ( k i ) and t i 0 were known, we could solve the equation above with Equation (12):
t i 1 = 720 π sin 1 ( π 720 ρ k i   ( peak ) ( T charge est ( k i ) + ρ k i   ( peak ) 720 π sin π ( t i 0 360 ) 720 ) ) + 360
where t i 0 could be obtained with Equation (13):
t i 0 = t ( i 1 ) 1 + T flight ( max ) × d ( k i 1 ) ( k i ) d max
where t ( i 1 ) 1 represents the time the UAV left node k i 1   and T flight ( max ) × d ( k i 1 ) ( k i ) d max represents the total flying time from node k i 1   to node k i   . It is obvious that Equation (13) is an iterative equation, where each t i 0 and t i 1 in node k i   are determined not only by the time the UAV leaves the previous node k i 1 , but also by the estimated charging time T charge est ( k i ) for node k i   . However, if the T charge est ( k i ) for any node k i was known in this problem and t 01 = 0 , it was possible to calculate the total mission time with Equations (6), (12) and (13), since there were no other variables in Equations (12) and (13).
We defined T charge est ( k i ) in Section 3.2 to denote the required charging time on node k i if ρ k i   ( t ) 1 . There was a constraint in regard to the total estimated charging time i = 1 L 2 T charge est ( k i ) in this problem. It claimed that the total energy charged during the mission should be the same as the total energy cost during the mission minus the initial energy the UAV took when the mission started:
i = 1 L 2 T charge est ( k i ) = i = 1 L 2 ( ρ k i   ( peak ) .   720 π sin π ( t i 1 360 ) 720 ρ k i   ( peak ) .   720 π sin π ( t i 0 360 ) 720 ) = T charge ( max ) ρ max × d total d max d max
where T charge ( max ) ρ max × d total d max d max shows a constant that shows the total energy needed for charging if a UAV were to fly along path P k . Array [ T charge est ( k 1 ) ,   T charge est ( k 2 ) ,   ,   T charge est ( k L 2 ) ] represents the estimated charging time sequence in path P k . Additionally, assume all the missions started from t=0, and when the UAVs arrived at the destination, their batteries were always empty (except in the situation where we did not need to charge the UAV during the voyage, where T charge ( max ) ρ max × d total d max d max 0 , where i = 1 L 2 T charge est ( k i ) = 0 ). The total mission time when the UAV left node k i was defined as T total ( i ) ( i [ 0 , L 1 ] ). T total flight ( i ) describes the total flying time when the UAV left node k i and T total charge ( i ) describes the total charging time when the UAV left node k i .
Besides Equation (14), we had another constraint which described the range of the estimated charging time on each node:
max [ ( T charge ( max ) ρ max d ( k w ) ( k w + 1 ) d max R w ) , 0 ] T charge est ( k w ) T charge ( max ) ρ max
where R w = i = 1 w T charge est ( k i ) T flight total ( w ) T flight ( max ) T flight ( max ) T charge ( max ) ρ max shows the remaining energy when the UAV arrived at nodes k w in P k . R w was in minutes, which meant it represented how much time we needed to charge the UAV to the current remaining energy if ρ k i   ( t ) 1 . To make sure we had enough charged energy to reach node k w + 1 , T charge est ( k w ) needed to be larger than Max[ ( T charge ( max ) ρ max d ( k w ) ( k w + 1 ) d max R w ) , 0 ]. T total ( w ) represents the total mission time when the UAV arrived at node k w .
Let [ X 1 ,   X 2 ,   ,   X L 2 ] denote [ T charge est ( k 1 ) ,   T charge est ( k 2 ) ,   ,   T charge est ( k L 2 ) ] , [ Y 1 ,   Y 2 ,   ,   Y L 2 ] denote [ T total ( 1 ) ,   T total ( 2 ) ,   ,   T total ( L 2 ) ] , [ ρ 1 ,   ρ 2 ,   ,   ρ L 2 ] denote [ ρ k 1   ( peak ) ,   ρ k 2   ( peak ) ,   ,   ρ k L 2   ( peak ) ]   ] and [ d 1 ,   d 2 ,   ,   d L 1 ] denote [ d ( k 0 ) ( k 1 ) ,   d ( k 1 ) ( k 2 ) ,   , d ( k L 2 ) ( k L 1 ) ] . T cm = T charge ( max ) ρ max , D m = d max , F m = T flight ( max ) and F i = T flight ( max ) d i D m .
Then, the minimization problem for the total charging time along path P k could be described as:
min [ X 1 ,   X 2 ,   ,   X L 2 ]   [ 0 , T cm ] Y L 1 ,   s . t .   Y L 1 = Y L 2 + F L 1 ;   Y L 2 = ( 720 π sin 1 ( π 720 ρ L 2 ( x L 2 +   ρ L 2 720 π sin π ( Y L 3 + F L 2 360 ) 720 ) ) + 360 )
where for any X i and X j , i = 1 L 2 X i = T cm i = 1 L 1 d i D m D m and Max [ ( T cm d j D m R j ) , 0 ] X j T cm .
This was a multivariable minimization problem with an iterative expression. Hence, it was quite difficult to find a globally optimal solution for the total mission time minimization problem with dynamic charging efficiency in any P k path (in [3], such a path planning problem was proved to be an NP-hard problem). Even if we simplified the problem by assigning [ Y 1 ,   Y 2 ,   ,   Y L 2 ] to be integers, the problem became an integer factorization problem, which could not be solved in polynomial time. Thus, in Section 5.2, we found a locally optimal solution for Equation (16) instead; then, we proposed a dynamically greedy algorithm to solve the mission time minimization problem.

5.2. Locally Optimal CTA

If we only focused on one single iteration of Equation (16), the problem would become much simpler (the total time for one iteration of Equation (16) could be presented as Y w = ( 720 π sin 1 ( π 720 ρ w ( X w +   ρ w 720 π sin π ( Y w 1 + F w 360 ) 720 ) ) + 360 ) ; in such a problem, the iterative expression was removed). In other words, we considered a locally optimal problem to assign the charging time among two adjacent nodes k i and k i + 1 in path P k . Assume that when the UAV arrived at node k i , it stored R i energy, while when it left node k i , it stored R i energy. Let R i max denote the maximum value that R i could be, and let R i min denote the minimum value that R i could be ( R i min = T cm d j + 1 D m when R i < T cm d j + 1 D m while R i min = R i when R i T cm d j + 1 D m ). Let t i 1 ( min ) denote the time that the UAV achieves R i min stored energy on node k i , t i 1 denote the actual time the UAV leaves node k i and t i 1 ( max ) denote the time that the UAV achieves R i max stored energy on node k i . Let T total ( i , ( i + 1 ) ) denote the time that the UAV achieves the required additional energy R i store = R i max R i min on node k i + 1 , where R i max [ 0 ,   T charge ( max ) ρ max ) and R i min [ 0 ,   R i max ] .
To calculate the total mission time T total ( i , ( i + 1 ) ) for this local CTA problem, we used t i 1 as the variable instead of X i , because it described the locally optimal problem more precisely. Equation (17) shows the way to calculate T total ( i , ( i + 1 ) ) with t i 1 (obtained by using Equations (11) and (16)):
R i R i min = ρ i 720 π sin π ( t i 1 360 ) 720 ρ i 720 π sin π ( t i 1 ( min ) 360 ) 720
T total ( i , ( i + 1 ) ) = 720 π sin 1 ( π 720 ρ i + 1 ( R i store   ) ρ i ρ i + 1 sin π ( t i 1 360 ) 720 ρ i ρ i + 1 sin π ( t i 1 ( min ) 360 ) 720 + sin π ( t i 1 + F i + 1 360 ) 720 ) + 360
where R i store ( R i R i min ) represents the estimated charging time on node k i + 1 .
Therefore, the locally mission time minimization problem could be described with the following formula using variable t i 1 :
min t i 1 [ t i 1 ( min ) , t i 1 ( max ) ] T total ( i , ( i + 1 ) ) ,  s . t .  T total ( i , ( i + 1 ) ) = 720 π sin 1 ( π 720 ρ i + 1 ( R i stone ) ρ i ρ i + 1 sin π ( t i 1 360 ) 720 ρ i ρ i + 1 sin π ( t i 1 ( min ) 360 ) 720 + sin π ( t i 1 + F i + 1 360 ) 720 ) + 360
where max [ 0 , ( T cm F i F m R i ) ] ρ i 720 π sin π ( t i 1 360 ) 720 ρ i 720 π sin π ( t i 1 ( min ) 360 ) 720 ( R i max R i min ) . t i 1 ( max ) = ( 720 π sin 1 ( π 720 ρ i ( ( R i max R i ) +  ρ i 720 π sin π ( t i 0 360 ) 720 ) ) + 360 ) = ( 720 π sin 1 ( π 720 ρ i ( ( R i max R i min ) +  ρ i 720 π sin π ( t i 1 ( min ) 360 ) 720 ) ) + 360 ) . (When R i < T cm F i F max , t i 1 ( min ) > t i 0 , otherwise, t i 1 ( min ) = t i 0 ,).
After processing a derivation on Equation (17), we had:
T total ( i , ( i + 1 ) ) d t i 1 = cos π ( t i 1 + F i + 1 360 ) 720 ρ i ρ i + 1 cos π ( t i 1 360 ) 720 cos ( π 720 ρ i + 1 X i ρ i ρ i + 1 sin π ( t i 1 360 ) 720 ρ i ρ i + 1 sin π ( t i 1 ( min ) 360 ) 720 + sin π ( t i 1 + F i + 1 360 ) 720 )
In Equation (19), we were able to find that three singular points could possibly be the candidate t i 1 to minimize the total charging time between nodes k i and k i + 1 : t i 1 ( min ) , t i 1 ( max ) and the singular point calculated with the following equation with t i 1 as the variable:
ρ i ρ i + 1 cos π ( t i 1 360 ) 720 cos π ( t i 1 + F i + 1 360 ) 720 = 0
The singular point calculated with Equation (20) was:
t i 1 ( sin gular ) = 720 π tan 1 cos ( π ( F i + 1 ) 720 ρ i ρ i + 1 ) sin π ( F i + 1 ) 720 + 360
Conclusion 5.1.In the locally optimal problem described in Equation(18), when the solution of Equation(21) t i 1 ( s i n g u l a r ) was in [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], T t o t a l ( i , ( i + 1 ) ) had three candidate extreme points, which were t i 1 ( s i n g u l a r ) , t i 1 ( m i n ) and t i 1 ( m a x ) ; when the solution of Equation(21) was not in [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], T t o t a l ( i , ( i + 1 ) ) had two extreme points, which were t i 1 ( m i n ) and t i 1 ( m a x ) .
However, we could not make sure which of the candidate extreme points resulted in T total ( i , ( i + 1 ) ) being minimized by the formulas above. Thus, we needed to divide the problem into different situations from 5.1 to 5.3, and further analyze the locally optimal problem.

5.2.1. Situation 5.1 ρ i > ρ i + 1

x 1 = t i 1 ( min ) is the time the UAV needed to charge to have enough energy to reach node k i + 1 ; x 2 = t i 1 is the exact time that the UAV left node k i ; x 3 = x 2 + F i + 1 is the time the UAV arrived at node k i + 1 ; x 4 is the time the UAV charged for to have enough energy for the stored energy of R i store to be achieved after a charging process on node k i + 1 and x 4 = T total ( i , ( i + 1 ) ) . Thus, using Equation (11), the estimated charging time for the UAV to charge itself from R i min stored energy to R i energy on node k i could be calculated with the following equation:
R i R i min = x 1 x 2 ρ k i ( t ) d t
Additionally, the estimated charging time for the UAV to charge itself with enough stored energy to R i max on node k i + 1 could be calculated with Equation (23):
R i store ( R i R i min ) = ( R i max R i min ) ( R i R i min ) = ( R i max R i ) = x 3 x 4 ρ k i + 1 ( t ) d t
where R i store ( R i R i min ) represents how much energy was still needed to charge on node k i + 1 to achieve the estimated stored energy R i store .
Combining Equations (22) and (23), we had:
R i store = ( R i max R i min ) = x 1 x 2 ρ k i ( t ) d t + x 3 x 4 ρ k i + 1 ( t ) d t
Assume in plan A that the UAV leaves node k i   at time x 2 , and then plan B where the UAV leaves node k i   at time x 2 * . In plan B, x 3 * = x 2 * + F i + 1 is the time the UAV arrives at node k i + 1 and x 4 * is the time the UAV takes to charge to have enough stored energy of R i store . x 2 * x 2 = x 3 * x 3 , since we had x 3 = x 2 + F i + 1 and x 3 * = x 2 * + F i + 1 .
Remark 5.1. In Figure 8, if ρ i > ρ i + 1 , x 2 < 360 and x 3 < 360 , and t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ]. We assumed in plan A that x 2 = t i 2 ( s i n g u l a r ) . Then, in plan B, when 360 x 2 * t i 1 ( s i n g u l a r ) , we could conclude that x 4 * < x 4 .
Proof of Remark 5.1.
( ρ i cos π ( x 360 ) 720 ) d x = π ρ i 720 sin π ( x 360 ) 720 , ( ρ i + 1 cos π ( x + F i + 1 360 ) 720 ) d x = π ρ i + 1 720 sin π ( x + F i + 1 360 ) 720 , x + F i + 1 < 360   and ρ i > ρ i + 1 . Then, ( ρ i cos π ( x 360 ) 720 ) d x > ( ρ i + 1 cos π ( x + F i + 1 360 ) 720 ) d x could be concluded easily. In Figure 8, assume that x 2 * is quite close to x 2 ; then, x 3 * is quite close to x 3 * as well. To make x 4 d x 2 = 0 , we had x 4 = x 4 * . Then, to make x 4 = x 4 * , the bar area formed by four points ( x 2 ,0), ( x 2 * , 0 ) , ( x 2 , ρ k i ( x 2 ) ), ( x 2 * , ρ k i ( x 2 * ) ) , which can be represented as x 2 x 2 * ρ k i ( t ) d t and the bar area formed by four points ( x 3 ,0), ( x 3 * , 0 ) , ( x 3 , ρ k i + 1 ( x 3 ) ), ( x 3 * , ρ k i + 1 ( x 3 * ) ) , which can be represented as x 3 x 3 * ρ k i + 1 ( t ) d t , should have the same area. Thus, if x 2 = t i 1 ( sin gular ) , we had x 2 x 2 * ρ k i ( t ) d t = x 3 x 3 * ρ k i + 1 ( t ) d t when x 2 * was quite close to x 2 . It is obvious that only when ρ k i ( x 2 ) = ρ k i + 1 ( x 3 ) did x 2 = t i 1 ( sin gular ) hold. Hence, if x 2 = t i 1 ( sin gular ) , ρ k i ( x 2 ) = ρ k i + 1 ( x 3 ) . □
The following equation shows the relationship between plan A and plan B:
x 1 x 2 ρ k i ( t ) d t + x 3 x 4 ρ k i + 1 ( t ) d t = x 1 x 2 ρ k i ( t ) d t + x 2 x 2 * ρ k i ( t ) d t + ( x 3 x 4 ρ k i + 1 ( t ) d t   x 3 x 3 * ρ k i + 1 ( t ) d t ) + x 4 x 4 * ρ k i + 1 ( t ) d t
With Equation (25), we could conclude that if x 2 x 2 * ρ k i ( t ) d t > x 3 x 3 * ρ k i + 1 ( t ) d t , then x 4 * < x 4 .
Then, if we compared x 2 x 2 * ρ k i ( t ) d t and x 3 x 3 * ρ k i + 1 ( t ) d t , since ρ k i ( x 2 ) = ρ k i + 1 ( x 3 ) and ( ρ i cos π ( x 2 * 360 ) 720 ) d x 2 * > ( ρ i + 1 cos π ( x 2 * + F i 360 ) 720 ) d x 2 * , we could conclude that x 2 x 2 * ρ k i ( t ) d t > x 3 x 3 * ρ k i + 1 ( t ) d t when ( x 2 * x 2 ) was not a quite small value.
Remark 5.2. If ρ i > ρ i + 1 , x 2 < 360 and x 3 < 360 , and t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ]. Assume that x 2 = t i 1 ( s i n g u l a r ) and x 2 * < x 2 ; similarly, x 2 * x 2 ρ k i ( t ) d t > x 3 * x 3 ρ k i + 1 ( t ) d t . Thus, x 4 * < x 4 . (The proof is like Remark 5.1.)
Remark 5.3. If ρ i > ρ i + 1 , x 2 < 360 and x 3 < 360 , and t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], T t o t a l ( i , ( i + 1 ) ) is a convex function in range [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ] due to Remarks 5.1 and 5.2. Thus, T t o t a l ( i , ( i + 1 ) ) should be compared when t i 1 = t i 1 ( m i n ) and t i 1 = t i 1 ( m a x ) and find the result with the minimum total charging time.
Proof of Remark 5.3.
If ρ i > ρ i + 1 , x 2 < 360 and x 3 < 360 , when x 2 = t i 1 ( sin gular ) and t i 1 ( sin gular ) [ t i 1 ( min ) ,   t i 1 ( max ) ], we always had x 4 * < x 4 . Thus, the result of x 4 * obtained a maximum value in plan A. Using Remarks 5.1 and 5.2, x 4 * d x 2 * > 0 , when x 2 * < x 2 ; x 4 * d x 2 * < 0 , when x 2 * > x 2 . ( x 4 * had only one singular point, where x 4 * d x 2 * = 0 ,   and it decreased either when x 2 * < x 2 or x 2 * > x 2 ). □
Remark 5.4. If ρ i > ρ i + 1 , x 2 < 360 and x 3 < 360 , and t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], t i 1 ( s i n g u l a r ) must be less than t i 1 ( m i n ) or larger than t i 1 ( m a x ) . If t i 1 ( s i n g u l a r ) > t i 1 ( m a x ) , assume x 2 = t i 1 ( m a x ) , since ( ρ i cos π ( x 360 ) 720 ) d x > ( ρ i + 1 cos π ( x + F i + 1 360 ) 720 ) d x , ρ k i ( x 2 ) < ρ k i + 1 ( x 3 ) . Additionally, since t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], x 4 * is a monotonic function by x 2 * . Then, also by ( ρ i cos π ( x 360 ) 720 ) d x > ( ρ i + 1 cos π ( x + F i + 1 360 ) 720 ) d x ,   t i 1 = t i 1 ( m i n ) obtains a minimum x 4 * . Moreover, if t i 1 ( s i n g u l a r ) < t i 1 ( m i n ) , assume x 2 = t i 1 ( m i n ) , since ( ρ i cos π ( x 360 ) 720 ) d x > ( ρ i + 1 cos π ( x + F i 360 ) 720 ) d x , ρ k i ( x 2 ) > ρ k i + 1 ( x 3 ) . Additionally, since t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], x 4 * is a monotonic function by x 2 * . Then, also by ( ρ i cos π ( x 360 ) 720 ) d x > ( ρ i + 1 cos π ( x + F i + 1 360 ) 720 ) d x ,   x 2 * = t i 1 = t i 1 ( m a x ) obtains a minimum x 4 * .
Proof of Remark 5.4.
Additionally, in Figure 8, if we assumed t i 1 ( sin gular ) > t i 1 ( max ) and x 2 = t i 1 ( max ) , then we had x 2 * < x 2 , ρ k i ( x 2 ) < ρ k i + 1 ( x 3 ) and ( ρ i cos π ( x 360 ) 720 ) d x > ( ρ i + 1 cos π ( x + F i + 1 360 ) 720 ) d x . Thus, x 2 * x 2 ρ k i ( t ) d t < x 3 * x 3 ρ k i + 1 ( t ) d t ; then, we had x 1 x 2 ρ k i ( t ) d t + x 3 x 4 ρ k i + 1 ( t ) d t < x 1 x 2 * ρ k i ( t ) d t + x 3 * x 4 ρ k i + 1 ( t ) d t (if we still charged the UAV on node k i + 1 till x 4 and we changed the time the UAV left node k i from x 2 to x 2 * , x 2 * < x 2 , the stored energy could extend R i store . Thus, it would take less time than x 4 to charge the UAV to R i store ). Hence, x 4 * < x 4 . Since x 4 * is a monotonic function by x 2 * , x 4 * obtains a minimized value on x 2 * = t i 1 ( min ) . Similarly, if t i 1 ( sin gular ) < t i 1 ( min ) , when x 2 * = t i 1 = t i 1 ( max ) , x 4 * would obtain a minimized value. □
Remark 5.5. Similarly toFigure 8, if ρ i > ρ i + 1 , x 3 360 , x 2 < 360 , we would have a similar conclusion to Remarks 5.3 and 5.4: when ρ i > ρ i + 1 , if t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], the result of should be compared when t i 1 = t i 1 ( m i n ) and t i 1 = t i 1 ( m a x ) , and the result with the minimum total charging time should be found, while if t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], when t i 1 ( s i n g u l a r ) > t i 1 ( m a x )   t i 1 = t i 1 ( m i n ) has the minimum total charging time, and when t i 1 ( s i n g u l a r ) < t i 1 ( m i n ) , t i 1 = t i 1 ( m a x ) has the minimum total charging time. (It can be easily proved with the same steps as those in Remarks 5.1.–5.4).
Remark 5.6. In situation 5.1, if x 2 > 360 , t i 1 ( s i n g u l a r ) could not be larger than 360 when ρ i > ρ i + 1 . Thus, it is obvious t i 1 = t i 1 ( m a x ) was the solution of Equation (17) under this situation.
Proof of Remark 5.6 ρ k i ( x 2 ) > ρ k i + 1 ( x 2 ) , ρ k i + 1 ( x 2 ) > ρ k i + 1 ( x 3 ) , thus ρ k i ( x 2 ) > ρ k i + 1 ( x 3 ) , similarly, ρ k i ( x 2 * ) > ρ k i + 1 ( x 3 * ) . Thus, x 2 x 2 * ρ k i ( t ) d t > x 3 x 3 * ρ k i + 1 ( t ) d t . Hence, x 4 * < x 4 , and the more we charged the UAV on node   k i , the less total charging time we obtained.
Operation 5.1. When ρ i > ρ i + 1 , if t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], we compared T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m i n ) and T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m a x )   and chose the CTA plan with a smaller T t o t a l ( i , ( i + 1 ) ) . If t i 1 ( s i n g u l a r ) > t i 1 ( m a x ) , we chose t i 1 = t i 1 ( m i n ) to minimize T t o t a l ( i , ( i + 1 ) ) , while if t i 1 ( s i n g u l a r ) < t i 1 ( m i n ) , we chose t i 1 = t i 1 ( m a x ) to minimize T t o t a l ( i , ( i + 1 ) ) .

5.2.2. Situation 5.2 ρ i = ρ i + 1

Remark 5.7. When ρ i = ρ i + 1 , if t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], 360 t i 1 ( s i n g u l a r ) = F i + 1 2 . Assume x 2 = t i 1 ( s i n g u l a r ) , when x 2 * < x 2 , we had x 4 * < x 4 . When x 2 * > x 2 , we also had x 4 * < x 4 . Thus, T t o t a l ( i , ( i + 1 ) ) is a convex function in range [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], the same as situation 5.1. Hence, if we compared T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m i n )   a n d   T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m a x ) , we found the minimized T t o t a l ( i , ( i + 1 ) ) . (The proof is like Remarks 5.1.–5.3).
Remark 5.8. When ρ i = ρ i + 1 , if t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], and if t i 1 ( m a x ) < t i 1 ( s i n g u l a r ) , T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m i n ) resulted in a minimized value of T t o t a l ( i , ( i + 1 ) ) ; if t i 1 ( m i n ) > t i 1 ( s i n g u l a r ) , T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m a x ) resulted in a minimized value of T t o t a l ( i , ( i + 1 ) ) . (The proof is like Remark 5.4.)
Operation 5.2. When ρ i = ρ i + 1 , if t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], we compared T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m i n ) and T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m a x )   and chose the CTA plan with a smaller T t o t a l ( i , ( i + 1 ) ) . If t i 1 ( s i n g u l a r ) > t i 1 ( m a x ) , we chose t i 1 = t i 1 ( m i n ) to minimize T t o t a l ( i , ( i + 1 ) ) , while if t i 1 ( s i n g u l a r ) < t i 1 ( m i n ) , we chose t i 1 = t i 1 ( m a x ) to minimize T t o t a l ( i , ( i + 1 ) ) .

5.2.3. Situation 5.3 ρ i < ρ i + 1

Remark 5.9. Like Remark 5.6, if ρ i < ρ i + 1 and x 3 < 360 , then t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ]. Since x 2 x 2 * ρ k i ( t ) d t < x 3 x 3 * ρ k i + 1 ( t ) d t , t i 1 = t i 1 ( m i n ) resulted in a minimized total charging time T t o t a l ( i , ( i + 1 ) ) .
Remark 5.10. If ρ i < ρ i + 1 and x 2 > 360 , assume x 2 = t i 1 ( s i n g u l a r ) , t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], T t o t a l ( i , ( i + 1 ) ) is a convex function in range [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ]. Thus, if we compared T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m i n )   a n d   T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m a x ) , we found the minimized T t o t a l ( i , ( i + 1 ) ) . If t i 1 ( m a x ) < t i 1 ( s i n g u l a r ) , T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m i n ) resulted in a minimized value of T t o t a l ( i , ( i + 1 ) ) ; if t i 1 ( m i n ) > t i 1 ( s i n g u l a r ) , T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m a x ) resulted in a minimized value of T t o t a l ( i , ( i + 1 ) ) .
Remark 5.11. In remark 5.10, if x 2 < 360 and x 3 > 360 , we obtained the same conclusion as Remark 5.10. In conclusion, when x 3 > 360 , if t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], and if we compared T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m i n )   a n d   T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m a x ) , we could find the minimized T t o t a l ( i , ( i + 1 ) ) . If t i 1 ( m a x ) < t i 1 ( s i n g u l a r ) , T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m i n ) resulted in a minimized value of T t o t a l ( i , ( i + 1 ) ) ; if t i 1 ( m i n ) > t i 1 ( s i n g u l a r ) , T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m a x ) resulted in a minimized value of T t o t a l ( i , ( i + 1 ) ) .
Operation 5.3.When ρ i < ρ i + 1 , if t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], we compared T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m i n ) and T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m a x )   and chose the CTA plan with a smaller T t o t a l ( i , ( i + 1 ) ) . If t i 1 ( s i n g u l a r ) > t i 1 ( m a x ) , we chose t i 1 = t i 1 ( m i n ) to minimize T t o t a l ( i , ( i + 1 ) ) , while if t i 1 ( s i n g u l a r ) < t i 1 ( m i n ) , we chose t i 1 = t i 1 ( m a x ) to minimize T t o t a l ( i , ( i + 1 ) ) .
Operation 5.4. In different situations, if t i 1 ( s i n g u l a r ) [ t i 1 ( m i n ) ,   t i 1 ( m a x ) ], we compared T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m i n ) and T t o t a l ( i , ( i + 1 ) ) | t i 1 = t i 1 ( m a x )   and chose the CTA plan with a smaller T t o t a l ( i , ( i + 1 ) ) . If t i 1 ( s i n g u l a r ) > t i 1 ( m a x ) , we chose t i 1 = t i 1 ( m i n ) to minimize T t o t a l ( i , ( i + 1 ) ) , while if t i 1 ( s i n g u l a r ) < t i 1 ( m i n ) , we chose t i 1 = t i 1 ( m a x ) to minimize T t o t a l ( i , ( i + 1 ) ) .

5.3. Dynamically Greedy CTA Algorithm

Section 5.2 shows all the situations we were met with in the locally optimal CTA problem described by Equation (18). t i 1 ( min ) could be calculated in any known path P. However, t i 1 ( max ) was not determined in the locally optimal problem. If we applied the CTA algorithm to this problem and used the peak charging efficiency in each node as the statically charging efficiency, we could predict a proper t i 1 ( max ) .
[ T charge est ( k 1 ) ,   T charge est ( k 2 ) ,   ,   T charge est ( k L 2 ) ] (shown in Figure 9) could describe different charging time assignment plans obtained in this problem, as follows in the image shown.
The grey bar means we only charged enough power on the current node to reach the next node, while the black bar means we charged the UAV to a full battery state. If we only modified the two adjacent CTAs T charge est ( k i ) and T charge est ( k i + 1 ) , and kept T charge est ( k i ) + T charge est ( k i + 1 ) unchanged, the CTA problem among node k i and k i + 1 became a locally optimal problem, as discussed in Section 5.2. Combining Algorithm 1 and Operation 5.4, we proposed a dynamically greedy CTA(DG-CTA) algorithm as an advanced greedy algorithm. The DG-CTA algorithm focuses on CTA problems with dynamically charging efficiency. Please note that if the two adjacent nodes were both assigned charging times to charge the UAV to a full battery state, or both to charge the UAV only enough power to reach the next node, we could not apply any changes, since there was only one CTA plan for the current T charge est ( k i ) + T charge est ( k i + 1 ) .
Algorithm 3 shows the DG-CTA algorithm which improved Algorithm 1 regarding its dynamically charging efficiency. Assume t i 1 is the new operated time that the UAV left node k i at.
Algorithm 3: DG-CTA algorithm.
Input: Path P k , graph G, peak charging efficiency ρ i for all the nodes in V local
Output: Total charging time along P k and the arrival time/leaving time for each node
Perform Algorithm 1 and find all stayed nodes in path P k as a new path P k (L—length ( P k )), while all the possible unpruned paths are generated
1. For i = 1:L-2,
2.    If ρ i < ρ i + 1 , //Situation 5.2.3 is solved with Operation 5.4
3.         If t i 1 ( sin gular ) [ t i 1 ( min ) ,   t i 1 ( max ) ] and
          T total ( i , ( i + 1 ) ) | t i 1 = t i 1 ( min ) >   T total ( i , ( i + 1 ) ) | t i 1 = t i 1 ( min ) >
4.             t i 1 = t i 1 ( max ) .
5.         Else, if t i 1 ( sin gular ) < t i 1 ( min ) t i 1 = t i 1 ( max ) .
6.             t i 1 = t i 1 ( max )
7.         Else, if t i 1 ( sin gular ) > t i 1 ( max )
8.             t i 1 = t i 1 ( min )
9.         End
10.    Else, if ρ i > ρ i + 1 , //Situation 5.2.3 is solved with Operation 5.4
11.         If t i 1 ( sin gular ) [ t i 1 ( min ) ,   t i 1 ( max ) and
            T total ( i , ( i + 1 ) ) | t i 1 = t i 1 ( min ) < T total ( i , ( i + 1 ) ) | t i 1 = t i 1 ( max )
12.             t i 1 = t i 1 ( min )
13.         Else, if t i 1 ( sin gular ) < t i 1 ( min )
14.             t i 1 = t i 1 ( max )
15.         Else, if t i 1 ( sin gular ) > t i 1 ( max )
16.             t i 1 = t i 1 ( min )
17.         End
18.    Else //Situation 5.2.2 is solved with Operation 5.4
19.         If t i 1 ( sin gular ) [ t i 1 ( min ) ,   t i 1 ( max ) and
            T total ( i , ( i + 1 ) ) | t i 1 = t i 1 ( min ) >   T total ( i , ( i + 1 ) ) | t i 1 = t i 1 ( max )
20.             t i 1 = t i 1 ( max )
21.         Else, if t i 1 ( sin gular ) < t i 1 ( min )
22.             t i 1 = t i 1 ( max )
23.         Else, if t i 1 ( sin gular ) > t i 1 ( max )
24.             t i 1 = t i 1 ( min )
25.         End
26.    End
27. Return [ t 10 ,   t 20 ,   ,   t ( L 2 ) 0 ] ,   [ t 11 ,   t 21 ,   ,   t ( L 2 ) 1 ]
Algorithm 3 was applied to find the optimal charging time assignment plan in any dynamically charging efficiency environment and could be tested by comparing the total charging time it found with what the other algorithms found. Algorithm 3 was in O ( n ) . However, since the result of Algorithm 1 was required in Algorithm 3, the actual running time of Algorithm 3 was in O ( n 2 ) .

5.4. Heuristic Algorithm Based on DG-CTA

Although Algorithm 3 did not take too much time compared with the discrete enumerate algorithm (which enumerated the minute assignment plan for the CTA and could not be solved in polynomial time), the traversal of paths using the DFS algorithm combined with the CTA algorithms was still time-consuming, because Lemma 4.1 could not be applied in this scheme. To further reduce the total running time of the algorithm, we proposed a heuristic algorithm for the SPU path planning problem with dynamically charging efficiency. The purpose of this heuristic algorithm was to quickly find candidate optimal paths with smaller distances and larger averaged charging efficiencies in the early path generation process. The first NOP max paths with the smallest cost among all possible paths were chosen to be put in the candidate path set. The best path we found with the heuristic algorithm was the one with a minimum total mission time among all the paths in the candidate path set.
The cost function of the heuristic algorithm was:
h ( a ) = 2 ( γ 1 T total flight ( est ) + γ 2 T charge ( max ) ρ max T total flight ( est ) T flight ( max ) ρ a ( k ) T flight ( max ) )
where ρ a ( k ) is the averaged charging efficiency on path P k . γ 1 and γ 2 are the weight factors for the heuristic cost function and γ 1 + γ 2 = 1 .
Algorithm 4 shows the detail of this heuristic algorithm:
Algorithm 4: DG-CTA-based heuristic path planning algorithm.
Input: Path P k , graph G, peak charging efficiency ρ k i ( peak ) for all nodes in V local   T total ( MEFT ) = T total ( Dijkstra ) , NOP max which represents the number of candidate paths
Output: Minimized total mission time T total and optimal path P optimal
Variables: a, P k , i
1. Run DFS path generation algorithm on path P k , calculate the cost for each path using Equation (26)
2. Sort all possible paths by the cost and find the first NOP max paths as the candidate path set
3. //Build the candidate path set
4. For i = 1 : NOP max
5. Calculate T total ( a ) for i th path in the candidate path set using Algorithm 3
6.        If T total ( a ) > T total ( MEFT ) ,
7.            P k is pruned.
8.        Else,
9.            T total ( MEFT ) = T total ( a ) and P optimal = P k
10.            End
11.         End
12. End//calculate mission time for paths
13. Return T total ( MEFT ) and P optimal
Algorithm 4 was applied to find the optimal path for the SPU delivery problem in the dynamically charging efficiency environment, and could be tested by comparing the total mission time it found with what other algorithms found. Since Equation (26) required a running time in O ( n ) , the cost and path generation process required a running time of O ( n 3 ) . Thus, let the sorting process take O ( n 2 ) , so the total time cost for the candidate path set building process is in O ( n 3 ) . To find the path with a minimized mission time, it required a running time of O ( NOP max × n 2 ) . Since NOP max was a constant in this problem, the total running time of Algorithm 4 was in O ( n 3 ) . As shown in Section 8.2, the performance of our proposed algorithm was much better than any other existing algorithms (Algorithms 3 and 4 can only be used in solar-powered UAV systems, since the optimization analysis in this section was performed on a solar-powered UAV path planning model).

6. UAV Delivery Mission Arrangement for Urban City

Finally, with the single SPU path planning problem solved, we optimized the problem described in Equation (7). In our study, the city map was divided into different local city maps based on the service area of the stores. Thus, we did not find nearby UAVs as [2] was able to.
However, in practical UAV delivery systems, the landing places on a city map may not always be available for the following reasons:
  • The landing spaces may be fully occupied.
  • The landing space may not be open at certain times.
  • Bad weather may be forecasted.
To manage more than one UAV delivery mission, we needed to consider the factors above. Aiming at the first reason, we needed to give the UAV missions different ranks to determine which UAV was chosen to take the limited space in each crowded landing place. Alongside the problems above, we also needed to update the city map and rerun the path planning algorithm in special cases.

6.1. UAV Mission Arrangement Protocol to Solve Space Limitation

We proposed a rank-based protocol in our SPU delivery system to solve the space limitation problem in landing places. Before introducing the algorithms and protocols, we needed to initialize the landing places’ occupation status SO ( city ) = { SO 1 , SO 2 ,   ,   SO n } and the UAV mission rank status SM ( city ) = { SM 1 , SM 2 ,   ,   SM m } . n is the number of nodes in the local city map and m is the number of missions for the current daytime. SO i L SO , where L SO is the maximum number of UAVs that could stay in a landing place (the existing technique from [21] allowed UAVs to recognize different landing points where different specific landing points were drawn in different shapes or colors). The SO ( city ) is a real-time function sequence, such as SO ( city ) = { SO 1 ( t ) , SO 2 ( t ) ,   ,   SO n ( t ) } .   SO i ( t ) = 0 means that there were no UAV missions that decided to land on it. SM j represents the current rank of mission j. Assuming we had an initialized estimated arriving time for all missions of T MP ( initial ) = { T MP 1 , T MP 2 ,   ,   T MP m } , and at the end of each stop of any UAV, we updated a new estimated arriving time to be T MP ( realtime ) = { T MP ( realtime ) 1 , T MP ( realtime ) 2 ,   ,   T MP ( realtime ) m } , SM i ( initial ) = T MP 1 . The rank of the mission was calculated using Equation (27):
SM i ( update ) = τ 1 T MP 1 + τ 2 ( T MP 1 T MP ( realtime ) 1 )
where τ 1 and τ 2   are parameters which balanced the contributions for ranks with the estimated total mission time and the customers’ additional waiting time, τ 1 + τ 2 = 1 . Missions with a higher rank had higher weight to charge on a crowded landing place.
Then, we proposed the following delivery mission arrangement protocol to deal with the space limitation problem in landing places:
Delivery mission arrangement protocol:
1.
First, we applied Algorithm 4 to each mission and built a database of SO ( city ) = { SO 1 ( t ) , SO 2 ( t ) ,   ,   SO n ( t ) } , T MP ( initial ) = { T MP 1 , T MP 2 ,   ,   T MP m } and the path information P MP ( initial ) = { P MP 1 , P MP 2 ,   ,   P MP m } .
2.
For any occupation function of SO i ( t ) , if in any SO i ( t ) we had SO i ( t ) > C , C was the capacity of the landing place. Then, we needed to arrange the missions that would arrive at the node i. We then had to find missions C that had the highest weight and kept their fight mission plan unchanged. Assume SO i ( t ) = K .
3.
For missions with lower weights, other than the first C missions, we ordered them by their mission weights. Choosing missions from a higher weight to lower weight, we reran Algorithm 4 and pruned the current path P MP j , then found other paths until a path did not pass node I, or when during the landing time of a newly generated path, node i was not fully occupied.
4.
Once the path plan for mission j was updated, we updated SM j , SO i ( t ) ,   T MP ( realtime ) j . If no possible path could be found for mission j, T MP 1 = T MP 1 + 720 (minutes), and it was delayed to the next day.
5.
We returned back to step three and changed the mission path plan for the next mission.
6.
After we ensured SO i ( t ) C at all times of day, we went back to step two and changed the mission path plans for the mission in the next node.
With the rank of the mission introduced, the spaces for landing places could be well scheduled without any conflicts.

6.2. Local City Maps Updating Protocol

The algorithms we proposed before was aimed at local city maps, which are different from the integrated city map. While initializing the integrated city map and the local city maps, we considered each partitioned region (local city map) to be the same as the service region for stores by their delivery companies. However, in the following cases, we needed to update the region partition for stores in a city:
  • Some nodes in a local city map could not be reached by the store in charge of that region.
  • It always took less time to reach a node from other stores than the store serving the node’s region.
  • Some nodes were not available, and the owners reported the situations.
Hence, we proposed the following strategy as a protocol to update the local city map:
  • When a mission could not be completed because a landing place could not be reached, we calculated whether stores from the adjacent service regions could reach that landing place, and then updated the local city map of the current store and the store that could reach that node with a minimized time.
  • A simulation program wan run to calculate the mission time for each node to fulfil the delivery from a store in the current local city map and other adjacent local city maps. Suppose that node a is currently in a region with service covered by store A, and store B has a shortest mission time to reach the node compared with all other adjacent stores; in that case, this node should be removed from the local city map for store A and added to the local city map for store B.
  • When any unavailability of landing places was reported, the local city map temporarily removed it and added it back when it was available again.

6.3. Real-Time Rerouting Protocol

In our proposed SPU delivery system, when a bad weather prediction report was received, the missions related to the corresponding region needed to be rerouted to avoid accidents or to reduce the total mission time.
A bad weather report included the following three conditions:
  • The cloudy level exceeds the threshold of the UAV charging process taking a much longer time.
  • It is raining in this region and the UAVs are not able to fly.
  • The wind speed level exceeds the threshold that UAVs can fly safely with payloads.
When these bad weather reports were received, the related UAVs were rerouted. The landing places these UAVs currently stayed on or the next landing places they would have arrived at could be the start node of a new routing problem. In emergency cases, we applied Algorithm 4 with a smaller N O P m a x to quickly reroute the UAVs.
With the proposed protocols in this section, the delivery missions in the city map were well organized and the problems we were met with in the system could be solved.

7. SPU Delivery Feasibility Study

Before we started the experiments to test the path planning algorithms proposed in this study, the feasibility of solar-powered UAV delivery work needed to be discussed. Since the subject of this paper was the path planning algorithms proposed for solar-powered UAV delivery systems, we did not expand on how to implement solar-powered UAVs for delivery, we just showed the prototype and proof that it is feasible in modern techniques.
As we discussed before, we chose a transformable solar-powered UAV [22] with solar panels because of the following reasons: (1) it is not possible to build runways for fixed-wing UAVs to take off or land on in crowded cities [24] and (2) it is not practical to use solar-powered UAVs with the solar panel expanded [25] to perform delivery works, since the large area taken over by solar panels must highly reduce the flying speed and safety.
However, the transformable solar-powered UAV from [22] was not practical, since it was not proven to be safe if such types of solar-powered UAVs with payloads were processing a transformation in the sky. In addition, it is difficult for a transformable solar-powered UAV in the fixed-wing state to adjust its flying direction. As a result, this kind of UAV is not quite practical for UAV delivery missions, since the purpose of our solar-powered UAV system was to deliver accurately and on time. Hence, we preferred a new type of transformable solar-powered UAV that only harvested solar energy during the landing time with the solar panel expanded. Additionally, when lifting-off and flying in the sky, the solar panel should be folded to guarantee the speed and safety of the flight. This new prototype of solar-powered UAVs was called transformable delivery solar-powered UAVs (TDSPUs). As a result, the energy consuming model of TDSPUs was like that of normal quadcopters [26], and the energy harvesting model was like that of the solar-powered quadcopter from [27].
At the beginning of the feasibility study of TDSPUs, we needed to make sure solar-powered UAVs could take payloads. From [27], we knew that 88 pieces of SunPower C60 solar cells, each with dimensions of 12.5 × 12.5   cm 2 , required an area of 13.75   m 2 and provided 293.92 W of power in standard test conditions. Such solar panels required a payload of 1.2 kg and an extra 1.13 kg due to the construction constraints.
When looking at the most advanced quadcopter designed to carry payloads this year [28], the total mass of the quadcopter was 10.3 kg, and the payload was 5 kg. With the solar panels installed, the additional payload of this quadcopter was still more than 2.5 kg. Despite innovations in solar panel efficiency in recent years, it would be feasible for TDSPUs to take payloads with a maximum mass of 2.5 kg.
Secondly, we needed to find a proper flight duration for TDSPUs, so that we could perform experiments to test our proposed algorithms. The flight duration of the quadcopter needed to be reduced due to the change of structure, and the full payload it took. Thus, let us assume it was reduced from 55 min to 25 min.
Then, based on [28], the advanced quadcopter used a lithium polymer battery, which has a capacity of 2 × 21,000   mAh = 42,000   mAh . Assume that the battery charging efficiency is 90%, the MPPT efficiency is also 90% (in [29], the battery charging efficiency and MPPT efficiency for lithium polymer batteries charged by SunPower C60 solar cells were both 90%, whereas the other two efficiency parameters in [29] were only used for fixed-wing types of UAVs, so we did not consider them here), so the power harvested by the battery from the 88 pieces of SunPower C60 solar cells can be calculated as 293.92 × 90% × 90% = 238.08 W and the battery voltage is 22.2 V. Then, the total energy that could be generated from this battery was 42 × 22.2 × 3600 = 3,356,640   J . Then, the estimated charging time to charge the UAV from 0 to a full battery state was T charge ( max ) ρ max =   3,356,640 ÷ 238.08 = 234.99   min .
Finally, to improve the safety of the delivery mission, we assumed that the UAVs had a speed of 1m/s [4], so that d max = 1 × 25 × 60 = 1.5   km . Then, we showed an instance of how a UAV finished a delivery mission during the daytime.
Assume our SPU system could assign a UAV with a mission from node one to node four, and the UAV is able to harvest solar power on node two and node three. The distance between these nodes was: d 1 2 = 1 ; d 2 3 = 0.6 ;   d 3 4 = 1.2 . The UAV started its mission at 6:00 am and charged itself on landing places as much as the system assigned.
At time t 10 = t 0 + 1 1.5 × 25 = 16.67   , the UAV would arrive at node two. Then, assume the peak charging efficiency on node two was 0.6, and the system assigned the UAV to charge on node two to obtain only enough energy to reach the next node. Using Equation (12), t 11 = 720 π sin 1 ( π 720 × 0.6 ( 234.99 × 0.1 1.5 + 0.6 × 720 π sin   π ( 16.67 360 ) 720 ) ) + 360 = 111.76 . Then, with Equation (13), t 20 = t 11 + 0.6 1.5 × 25 = 121.76 . Assume the peak charging efficiency in node three was 0.9, still using Equation (12), t 21 = 720 π sin 1 ( π 720 × 0.9 ( 234.99 × 1.2 1.5 + 0.9 × 720 π sin   π ( 121.76 360 ) 720 ) ) + 360 = 371.29 . Then, finally, the time the UAV arrives at the destination node four is t 30 = t 21 + 1.2 1.5 × 25 = 391.29 . In other words, the UAV could finish its mission at 12:31 pm.
As a result, TDSPUs were feasible under today’s techniques to finish delivery missions. Additionally, we believe that with the development of UAV technology and solar panel technology, such kinds of solar-powered UAVs are likely to become more and more utilitarian in our daily lives.

8. Experimental Results

The experiments in this section were performed on MATLAB. We simulated the process of UAV delivery missions on a local city map built with landing places and stores. For each delivery mission, we recorded the total time cost for any single delivery mission using our proposed algorithms and other existing algorithms. The parameters were chosen from Section 7.

8.1. Simulation of Proposed Algorithms (Statically Charging Efficiency)

As discussed in Section 2, previous studies about UAV delivery path planning problems could be classified as Dijkstra-based algorithms and heuristic algorithms. Since it is difficult to determine the parameters in previously proposed heuristic algorithms for SPU path planning problems in a dynamically charging efficiency environment, we only compared our proposed algorithms with Dijkstra-based UAV path planning algorithms.
The GOA was compared with the following two kinds of Dijkstra-based UAV path planning algorithms according to the total mission time:
1.
Distance-based Dijkstra algorithm which did not apply our optimal CTA algorithm (D-Dij)
(Distance-based Dijkstra means the cost function in the Dijkstra algorithm only concerns flying time, which was mentioned in [8]. A Dijkstra algorithm that did not apply the optimal CTA algorithm meant that the UAVs always charged themselves to a full battery state. In addition, to make the comparison fairer, if the UAV arrived at a node that could reach the destination on path P, the UAV only charged enough power to reach the destination instead of to a full battery state. This operation exhausted the UAV’s battery when it arrived at the destination, just like what we assumed in Section 4).
2.
Weight-based Dijkstra algorithm which did not apply the optimal CTA algorithm (W-Dij)
(Weight-based Dijkstra means the cost function in the Dijkstra algorithm was calculated through the summation of the flying time to reach the next node and the charging time on the next node to compensate for the energy consumed during this flight [8].)
Each time running a case, we generated an H × H   km 2 local city map. The density of landing places varied from 40 to 60 and 80 per 49   km 2 , with a uniform distribution.
Assuming that T total ( GOA ) represents the averaged total mission time for the pruned GOA (Algorithm 2), and T total ( Dij ) represents the Dijkstra algorithm applied in [2], the percentage of time saved by the GOA algorithm was:
            Ef GOA = T total ( Dij ) T total ( GOA ) T total ( Dij )
The following diagrams describe when H was fixed, the minimum charging efficiency (MCE) in the local city map ranged from 0.1 to 0.9 (nine points total) and the percentage of time saved by the GOA algorithm compared with different kinds of Dijkstra algorithms. The improvement was measured using Equation (28), and we only showed the maximum improvement.
Based on Figure 10, we could conclude that our GOA algorithm showed a remarkable improvement compared with the Dijkstra algorithms. As the MCE increased, the improvement by the GOA compared with D-Dij dropped linearly, while the improvement by the GOA compared with W-Dij would not decrease so quickly when the MCE moved closer to one.
These great improvements happened in special cases, where the following situations occurred:
  • None of the paths found by the Dijkstra algorithm were the optimal path.
  • The CTA plan by the Dijkstra algorithm was not optimal.
  • The variance of charging efficiency along the candidate optimal paths was large.
The improvement by the CTA algorithm contributed more to the experiment results for special cases. In some paths, if we used the CTA plan of the Dijkstra algorithms, UAVs would always charge themselves to a full battery state. However, if the charging efficiency of landing places in the early trip was low, and the charging efficiency of landing places in the later trip was high, our CTA algorithm charged the UAV less early in the trip, and then charged more time later in the trip; then, the total charging efficiency for the mission was improved. If the charging efficiencies for nodes on such paths had a large difference, the optimal CTA plan chosen by our CTA algorithm could obtain a large percentage of improvements when compared with the Dijkstra-based CTA plans. The different path planning results between the GOA and Dijkstra algorithms also contributed to the improvement, since the paths found by the Dijkstra algorithms were sometimes not the optimal path (proved in Section 4). As a result, in the situation that nodes in the candidate optimal paths had large differences (or, in other words, the variance of charging efficiency along the candidate optimal paths was large), the GOA could achieve great improvements when compared with the Dijkstra algorithms. For example, in Figure 10a, the GOA (Algorithm 2) could save 80% mission time compared with Dijkstra-based algorithms when the MCE was 0.1 on a local city map. Let T running ( pruned ) represent the total running time for the GOA with pruning, and T running ( unpruned ) represent the GOA without pruning; therefore, the ratio of T running ( unpruned ) to T running ( pruned ) would be:
        ER pruning = T running ( unpruned ) T running ( pruned )
Then, the ER pruning using the GOA with pruning compared with the unpruned GOA is shown in the following diagram:
The result from Figure 11 shows that the pruning strategy could exponentially reduce the running time of the GOA when the number of nodes in the local city map increased.

8.2. Simulations of Proposed Algorithms (Dynamically Charging Efficiency)

For the experiment in the dynamically charging efficiency scheme, our proposed DG-CTA algorithm was compared with the CTA plan proposed by the Dijkstra algorithms (always charging the UAV to a full battery state) and the CTA algorithm using Algorithm 1, which we proposed in Section 4. Since this was a comparison between CTA algorithms, the paths needed to be fixed. We chose every ten paths that had the minimized total Dijkstra distance in each topology and applied different CTA algorithms.
The heuristic algorithm combined with the DG-CTA algorithm was compared with W-Dij in this experiment as well.
These special cases from Figure 12 described by the red curve happened when Algorithm 1 had an opposite local CTA plan to Algorithm 3. For example, if the charging efficiency in the first landing place was a little higher than the second node, then Algorithm 1 assigned the UAV to charge to a full battery state. However, since it was early in the morning, the charging efficiency on all the nodes was low. Then, our DG-CTA algorithm assigned the UAV to charge only long enough to have enough energy to reach the next node, because the charging efficiency increased dramatically in the morning, and it was more efficient to charge on the next node. As a result, based on Operation 5.4, in the case of when the UAVs arrived at nodes with higher charging efficiencies in the morning or the late afternoon, the DG-CTA algorithm had different results compared with Algorithm 1; then, the improvement by the DG-CTA was obvious.
Described by the blue curve, the special cases where the DG-CTA had a great improvement compared with the weighted Dijkstra-based CTA plans happened when the DG-CTA had a remarkable improvement compared with Algorithm 1 and the variances of charging efficiency along the paths were large.
The special cases described by the green curve that our heuristic algorithm had a great improvement compared with the weighted Dijkstra algorithm happened when the DG-CTA algorithm already had a great improvement and there was a better path chosen by the heuristic algorithm compared with the Dijkstra algorithms.
In conclusion, although our DG-CTA-based heuristic algorithm was not the globally optimal solution, it could still achieve a large amount of improvement compared with existing CTA algorithms. Moreover, our proposed heuristic algorithm could achieve a great improvement compared to the existing Dijkstra algorithm in dynamically charging efficiency schemes with an acceptable running time. For example, in Figure 12a, Algorithm 4 could save 70% of the mission time compared with the Dijkstra-based algorithms when the MCE was 0.1 on a local city map.

9. Conclusions

In this paper, a solar-powered UAV delivery system was proposed to extend the endurance of UAVs for delivery missions. To find the globally optimal solution to the UAV path planning problem in the statically charging efficiency scheme, we proposed a very efficient pruning-based globally optimal algorithm. When considering the routing solution according to the dynamically charging efficiency environment, we also proposed a DG-CTA-based heuristic algorithm. Finally, we designed mission arrangement protocols to manage the UAV delivery missions and solve system-level issues in the SPU delivery system. Simulation results showed that our proposed algorithms had significant improvements compared with previous algorithms when applied in the SPU schemes.
For future research, it is suggested that solar-powered UAVs should be able to automatically find the landing places during voyages by themselves. In addition, we plan to study the path planning problem and the system model in UAV delivery systems with more dense landing places deployed.

Author Contributions

Conceptualization, Z.J.H. and Z.T.; methodology, Z.T.; software, Z.T.; validation, Z.J.H., Z.T. and S.S.; formal analysis, Z.T.; investigation, Z.T.; resources, Z.J.H.; data curation, Z.T.; writing—original draft preparation, Z.T. and S.S.; writing—review and editing, Z.T., Z.J.H. and S.S.; visualization, Z.T.; supervision, Z.J.H.; project administration, Z.J.H. and Z.T.; funding acquisition, Z.J.H. All authors have read and agreed to the published version of the manuscript.

Funding

This research was funded in part by the U.S. National Science Foundation grant numbers CNS-1763627 and DGE-1820640.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

Data sharing not applicable.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Chawla, L. UAV Delivery System. Int. J. Sci. Res. Eng. Manag. (IJSREM) 2021, 5. [Google Scholar]
  2. Al-Kabi, H.; Mazinani, S.M. DNCS: New UAV navigation with considering the no-fly zone and efficient selection of the charging station. Ain Shams Eng. J. 2021, 12, 3669–3676. [Google Scholar] [CrossRef]
  3. Kim, J.; Kim, S.; Jeong, J.; Kim, H.; Park, J.-S.; Kim, T. CBDN: Cloud-based drone navigation for efficient battery charging in drone networks. IEEE 2018, 20, 4174–4191. [Google Scholar] [CrossRef]
  4. Wubben, J.; Fabra, F.; Calafate, C.T.; Krzeszowski, T.; Marquez-Barja, J.M.; Cano, J.-C.; Manzoni, P. Accurate landing of unmanned aerial vehicles using ground pattern recognition. Electronics 2019, 8, 1532. [Google Scholar] [CrossRef]
  5. Ji, W.; Chee, K.C. Prediction of hourly solar radiation using a novel hybrid model of ARMA and TDNN. Sol. Energy 2011, 85, 808–817. [Google Scholar] [CrossRef]
  6. Wirth, L.; Oettershagen, P.; Ambühl, J.; Siegwart, R. Meteorological path planning using dynamic programming for a solar-powered UAV. In Proceedings of the IEEE Aerospace Conference, Big Sky, MT, USA, 7–14 March 2015; pp. 1–11. [Google Scholar] [CrossRef]
  7. Wu, J.; Wang, H.; Li, N.; Yao, P.; Huang, Y.; Yang, H. Path planning for solar-powered UAV in urban environment. Neurocomputing 2018, 275, 2055–2065. [Google Scholar] [CrossRef]
  8. Fu, Z.; Yu, J.; Xie, G.; Chen, Y.; Mao, Y. A heuristic evolutionary algorithm of UAV path planning. Wirel. Commun. Mob. Compu-Ting 2018, 2018, 1–11. [Google Scholar] [CrossRef]
  9. Xia, L.; Jun, X.; Manyi, C.; Ming, X.; Zhike, W. Path planning for UAV based on improved heuristic A∗ algorithm. In Proceedings of the 2009 9th International Conference on Electronic Measurement & Instruments, Beijing, China, 16–19 August 2009. [Google Scholar]
  10. Bekhti, M.; Achir, N.; Boussetta, K.; Abdennebi, M. Drone Package Delivery: A Heuristic approach for UAVs path planning and tracking. EAI Endorsed Trans. Internet Things 2017, 3, e1. [Google Scholar] [CrossRef]
  11. Otto, A.; Agatz, N.; Campbell, J.; Golden, B.; Pesch, E. Optimization approaches for civil applications of unmanned aerial vehicles (UAVs) or aerial drones: A survey. Networks 2018, 72, 411–458. [Google Scholar] [CrossRef]
  12. Gjorshevski, H.; Trivodaliev, K.; Kosovic, I.N.; Kalajdziski, S.; Stojkoska, B.R. Dynamic programming approach for drone routes planning. In Proceedings of the 2018 26th Telecommunications Forum (TELFOR), Belgrade, Serbia, 20–21 November 2018. [Google Scholar]
  13. Li, J.; Sun, T.; Huang, X.; Ma, L.; Lin, Q.; Chen, J.; Leung, V.C.M. A memetic path planning algorithm for unmanned air/ground vehicle cooperative detection systems. IEEE Trans. Autom. Sci. Eng. 2021, 1–14. [Google Scholar] [CrossRef]
  14. Deng, X.; Guan, M.; Ma, Y.; Yang, X.; Xiang, T. Vehicle-Assisted UAV Delivery Scheme Considering Energy Consumption for Instant Delivery. Sensors 2022, 22, 2045. [Google Scholar] [CrossRef] [PubMed]
  15. Chiang, W.-C.; Li, Y.; Shang, J.; Urban, T.L. Impact of drone delivery on sustainability and cost: Realising the UAV potential through vehicle routing optimization. Appl. Energy 2019, 242, 1164–1175. [Google Scholar] [CrossRef]
  16. 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]
  17. Zhang, H.; Wei, S.; Yu, W.; Blasch, E.; Chen, G.; Shen, D.; Pham, K. Scheduling methods for unmanned aerial vehicle based delivery systems. In Proceedings of the 2014 IEEE/AIAA 33rd Digital Avionics Systems Conference (DASC), Colorado Springs, CO, USA, 5–9 October 2014. [Google Scholar]
  18. Krakowczyk, D.; Wolff, J.; Ciobanu, A.; Meyer, D.J.; Hrabia, C.-E. Developing a Distributed Drone Delivery System with a Hybrid Behavior Planning System; Springer: Berlin/Heidelberg, Germany, 2018. [Google Scholar]
  19. Grippa, P. Decision making in a UAV-based delivery system with impatient customers. In Proceedings of the 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Daejeon, Korea, 9–14 October 2016. [Google Scholar]
  20. Song, B.D.; Park, K.; Kim, J. Persistent UAV delivery logistics: MILP formulation and efficient heuristic. Comput. Ind. Eng. 2018, 120, 418–428. [Google Scholar] [CrossRef]
  21. Lin, S.H.; Nate, G.; Jennifer, R.R. A linear-time algorithm for finding optimal vehicle refueling poli-cies. Oper. Res. Lett. 2007, 35, 3290–3296. [Google Scholar]
  22. D’Sa, R.; Jenson, D.; Henderson, T.; Kilian, J.; Schulz, B.; Calvert, M.; Heller, T.; Papanikolopoulos, N. SUAV: Q-An improved design for a transformable solar-powered UAV. In Proceedings of the 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Daejeon, Korea, 9–14 October 2016. [Google Scholar]
  23. Richard, B.; Losada, C.I.; Andrew, K.; Mathias, H.B.; Billy, R.; Martinez-Anido, C.B. Consequences of neglecting the interannual variability of the solar resource: A case study of photovol-taic power among the Hawaiian Islands. Sol. Energy 2018, 167, 61–75. [Google Scholar]
  24. Morton, S.; Ruben, D.; Nikolaos, P. Solar powered UAV: Design and experiments. In Proceedings of the 2015 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Hamburg, Germany, 28 September–2 October 2015. [Google Scholar]
  25. Goh, C.S.; Kuan, J.R.; Yeo, J.H.; Teo, B.S.; Danner, A. A fully solar-powered quadcopter able to achieve controlled flight out of the ground effect. Prog. Photovolt. Res. Appl. 2019, 27, 869–878. [Google Scholar] [CrossRef]
  26. Abeywickrama, H.V.; Jayawickrama, B.A.; He, Y.; Dutkiewicz, E. Comprehensive energy consumption model for unmanned aerial vehicles, based on empirical studies of battery performance. IEEE 2018, 6, 58383–58394. [Google Scholar] [CrossRef]
  27. Kingry, N.; Towers, L.; Liu, Y.-C.; Zu, Y.; Wang, Y.; Staheli, B.; Katagiri, Y.; Cook, S.; Dai, R. Design, modelling and control of a solar-powered quadcopter. In Proceedings of the 2018 IEEE International Conference on Robotics and Automation (ICRA), Brisbane, QLD, Australia, 21–25 May 2018. [Google Scholar]
  28. UAV Systems International Link for Aurelia X6 Pro Drone. Available online: https://uavsystemsinternational.com/products/aurelia-x6-pro (accessed on 2 September 2022).
  29. Sri, K.R.B.; Aneesh, P.; Bhanu, K.; Natarajan, M. Design analysis of solar-powered unmanned aerial vehicle. J. Aerosp. Technol. Manag. 2016, 8, 397–407. [Google Scholar] [CrossRef]
Figure 1. Example of a single SPU problem.
Figure 1. Example of a single SPU problem.
Drones 06 00282 g001
Figure 2. Reachable nodes of a node in the local city map.
Figure 2. Reachable nodes of a node in the local city map.
Drones 06 00282 g002
Figure 3. S. Kaplanis’s charging efficiency prediction from [5].
Figure 3. S. Kaplanis’s charging efficiency prediction from [5].
Drones 06 00282 g003
Figure 4. City map with landing places (nodes) and stores.
Figure 4. City map with landing places (nodes) and stores.
Drones 06 00282 g004
Figure 5. An example of a ten-node local city map.
Figure 5. An example of a ten-node local city map.
Drones 06 00282 g005
Figure 6. The GOA algorithm with pruning strategy.
Figure 6. The GOA algorithm with pruning strategy.
Drones 06 00282 g006
Figure 7. Path P k , which contains nodes [ v S , v k 1 , v k 2   v k j ,   v D ] .
Figure 7. Path P k , which contains nodes [ v S , v k 1 , v k 2   v k j ,   v D ] .
Drones 06 00282 g007
Figure 8. Example when ρ i > ρ i + 1 , x 2 < 360 and x 3 < 360 ( ρ i = 1 ,   ρ i + 1 = 0.75 ,   F i + 1 = 23 ).
Figure 8. Example when ρ i > ρ i + 1 , x 2 < 360 and x 3 < 360 ( ρ i = 1 ,   ρ i + 1 = 0.75 ,   F i + 1 = 23 ).
Drones 06 00282 g008
Figure 9. Charging time assignment example using Algorithm 1.
Figure 9. Charging time assignment example using Algorithm 1.
Drones 06 00282 g009
Figure 10. (ac) Maximum improvement by the GOA, where the number of nodes were 40, 60, and 80 (in Figure 10, max. improvement represents the maximum improvement an algorithm could achieve, and min. charging efficiency represents the minimum possible charging efficiency in the city map).
Figure 10. (ac) Maximum improvement by the GOA, where the number of nodes were 40, 60, and 80 (in Figure 10, max. improvement represents the maximum improvement an algorithm could achieve, and min. charging efficiency represents the minimum possible charging efficiency in the city map).
Drones 06 00282 g010aDrones 06 00282 g010b
Figure 11. Ratio of time (unpruned GOA: pruned GOA).
Figure 11. Ratio of time (unpruned GOA: pruned GOA).
Drones 06 00282 g011
Figure 12. (ac) Maximum improvements by Algorithms 3 and 4, where the number of nodes were 40, 60, and 80 (in Figure 12, DG-CTA represents Algorithm 3, and heuristic represents Algorithm 4; CTA represents Algorithm 1, and Dij represents the scheme where UAVs always charged themselves to a full battery state on each passed node).
Figure 12. (ac) Maximum improvements by Algorithms 3 and 4, where the number of nodes were 40, 60, and 80 (in Figure 12, DG-CTA represents Algorithm 3, and heuristic represents Algorithm 4; CTA represents Algorithm 1, and Dij represents the scheme where UAVs always charged themselves to a full battery state on each passed node).
Drones 06 00282 g012
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Tian, Z.; Haas, Z.J.; Shinde, S. Routing in Solar-Powered UAV Delivery System. Drones 2022, 6, 282. https://doi.org/10.3390/drones6100282

AMA Style

Tian Z, Haas ZJ, Shinde S. Routing in Solar-Powered UAV Delivery System. Drones. 2022; 6(10):282. https://doi.org/10.3390/drones6100282

Chicago/Turabian Style

Tian, Zijing, Zygmunt J. Haas, and Shatavari Shinde. 2022. "Routing in Solar-Powered UAV Delivery System" Drones 6, no. 10: 282. https://doi.org/10.3390/drones6100282

Article Metrics

Back to TopTop