Unmanned aerial vehicles (UAVs), commonly known as drones, are currently being used in many domains and are expected to play a significant role in future technologies. UAVs have application in emergency-response, search and rescue, transportation, border patrolling, agriculture, topographical surveys and inspection, and even in the entertainment industry. Moreover, in today’s highly connected world, it is very realistic to employ UAVs as mobile sensors and actuators, becoming an essential part of the Internet of Things (IoT) and playing a crucial role in our daily lives. Each UAV application has its specific challenges, but they all share one severe restriction, namely, energy constraints that limit their use to relatively small-scale applications. For instance, the economically feasible coverage area for a topographical survey application is now limited to areas less than . This and similar scenarios call for transition from single UAV/single operator approaches to autonomous multi-UAV/single operator solutions. This is a highly challenging task as coordination of multiple interacting UAVs involves many subtleties, from solving computationally intractable problems, e.g., the vehicle routing problem (VRP)  to dealing with fault-tolerance and physical disturbances.
Multi-UAV path planning has been studied from different perspectives. Solutions to the distributed VRP [2, 3] are typically concerned with finding optimal routes in the presence of a static or dynamic set of clients and demands. These efforts essentially abstract away the impact of physical disturbances on the cost of vehicle routes. However, in reality, physical disturbances such as weather conditions can have profound impact on the local and global energy efficiency of a network of vehicles. Furthermore, to our knowledge, approaches that deal with environment stimuli (e.g., ) are limited to control-theoretic techniques for single-UAV applications and it is unclear how they can be extended to a multi-UAV setting.
With this motivation, in this paper, we introduce a disturbance-aware decentralized and online path planning technique for a network of autonomous UAVs. Our problem setting consists of a network of quadrotor UAVs with peer-to-peer communication capability that are required to collaboratively travel to and visit a designated set of goals scattered in a 2-dimensional area. All UAVs have a consistent map of the area that includes a fixed set of goals and obstacles (see Fig. 1). That is, goals and obstacles do not move and new obstacles or goals do not appear or disappear from the area. Each UAV will have to spend energy to travel to and visit these goals. Due to unforeseen disturbances, the required energy may vary over time and does not necessarily conform with the initial forecast and/or pre-computed paths. Thus, our goal is to design an algorithm that minimizes the global energy consumption among all UAVs to travel to and visit all designated goals. In order to solve this optimization problem, one has to deal with two fundamental and interrelated subproblems to find the global optimum at each point of time: (1) energy consumption prediction and online path planning based on disturbances, and (2) distributed agreement among all UAVs to divide the remaining goals based on their positions.
Our proposed solution works as follows. Each UAV in the network runs the same local algorithm, which consists of four main components (see Fig. 2):
A synchronous distributed algorithm, called , periodically divides the remaining set of goals among all the UAVs based on their current positions and energy requirements. This algorithm results in the set of nodes that the UAV sets as its goals.
For each node , a local (i.e., UAV-level) -based algorithm  computes the desirable path from the current location of the UAV to by dividing the map into a set of adjacent hexagons (see Fig. 1). This algorithm assumes that the current wind disturbance will continue for the foreseeable future while predicting energy costs.
Finally, a local planner determines (1) the next goal to visit (i.e., ), which is given to the UAV flight controller, (2) the next replanning period , and (3) whether the current location of the UAV obtained by GPS is at the intended goal.
We validate our proposed solution through a rigorous set of simulations. First, we show that our technique saves energy on average, as compared to a greedy algorithm, where each idle UAV chooses to visit the closest unvisited goal on the flight map. We believe that given the current battery technology of UAVs, this is a significant improvement. Then, we analyze the effectiveness of different components of our algorithm and their roles in achieving energy savings in different scenarios. We show that in scenarios with a small number of goals and UAVs, the PID controller plays a crucial role in choosing goals and dealing with disturbances. On the contrary, for scenarios with larger areas, number of goals, and UAVs, periodic invocation of
will result in larger energy savings. Our results are consistent among simulations with different number of goals and UAVs as well as different wind patterns. For all of our simulations, we demonstrate statistical significance by ensuring at least 95% confidence interval.
The rest of the paper is organized as follows. In Section II, we formally state the problem. Section III presents system model dynamics of UAVs. Section IV presents the overall idea of our technique, while Section V elaborates on the details. Simulation results are explained in Section VI. Related work is discussed in Section VII. Finally, we make concluding remarks and discuss future work in Section VIII.
Ii Problem Statement
We first introduce some notation. Throughout the paper, we use bold lower and upper case italic letters to denote vectors and matrices, respectively (e.g., and ). We consider discrete time, where means the time at index () and is its successor with sampling time , i.e., . We represent a set of UAVs by . Let be a set of nodes and be the depot set, such that initially there is a one-to-one mapping from to , i.e., each depot hosts at most one UAV and each UAV is initially assigned to a depot. Thus, for a depot , by , we mean the depot assigned to UAV .
We assume that each node has a 2-dimensional coordinate on the -plane. The current position of a UAV is represented by
We note that throughout the paper, we will abstract away the third dimension . That is, our path planning problem is only on the -plane. We introduce the wind disturbance at the time on the -plane, such that
where the and is the wind speed in - and -directions, respectively.
Informally, our goal is to design an online decentralized and energy-efficient algorithm, where a set of UAVs travel to the set of nodes in the presence of wind disturbances and complete a task at each node. In this paper, we take traveling energy cost into consideration. That is before visiting a node , a UAV must travel from to . This movement requires energy to defy gravity and time-variant wind disturbance .
We now state our optimization problem formally. Given a set of UAVs, a set of nodes on the -plane and the time-variant wind disturbance , our goal is to find a path plan such that (1) each UAV at every time instance chooses the next node to visit, (2) each node is visited only once, (3) all the nodes in are visited, and (4) the path eventually terminates. These constraints are formally the following:
where denotes the set of natural numbers, represents the situation that does not return an unservided node, and is the time index that plan terminates, i.e.,
Now, let denote the set of nodes chosen by for vehicle , i.e.,
Our objective is to minimize the energy needed by :
where is the piece-wise traveling energy cost from time to by UAV to node under disturbance .
Iii System Model Dynamics
Throughout this paper, we focus on quadrotor UAVs.
Iii-a Quadrotor Model
Thrust and moment
A quadrotor has four propellers with two of them rotating clockwise while the other two rotating counter-clockwise. The rotational speed of a propeller (denoted , where ) generate thrust (denoted ) and magnitude of moment (denoted ) in quadratic proportion :
where and are the thrust and moments proportionality constants, respectively.
Let be the length of the arms of the quadrotor which is a constant value. The net thrust and moments on the quadrotor, which we consider as the inputs to the system are given by:
where is the net thrust and , , and are the -, -, and -direction moments on the quadrotor, respectively. Then, for each UAV , we write its inputs as
Near maximum thrust is generated when all four propellers approximately operate in maximum rotational speed . Hence, from (3), we obtain:
State of quadrotor
Iii-B Quadrotor Dynamics & Disturbance Model
We consider the wind as the only external disturbance. We assume that, at any time index , the wind disturbance is modeled as (2). We assume that a function at time index takes the state of a UAV, its input , and wind disturbance , and gives the new state at time index as follows:
We assume constraints on the wind disturbance, namely, maximum wind disturbance and minimum wind disturbance . Thus, the magnitude of the wind speed is in the range for some . Then, the can be defined as and the direction of and are opposite to each other, where is the -norm of a vector, where for vector , we have:
Similarly, the can be defined as and the direction of and are the same with each other .
Iii-C Energy Cost of Traveling
The main source of power consumption in a UAV is the motors of propellers, which is equal to
for . Thus, the total power consumption is given by:
Furthermore, the UAV has to defy wind disturbances when it is traveling to a node. We now compute the power needed to deal with wind disturbances during traveling. Given the mass of a UAV , the force needed to defy gravity is . Let denote the drag force  of wind given by:
where is the drag coefficient, is the air density, is the projected area faced by the wind which is assumed to be constant for a UAV. As can be seen, the drag force generated by wind on a UAV is proportional to their relative speed.
The ground velocity of a UAV can be calculated as , where is the velocity relative to wind. Let be the angle between the direction of the wind and direction from current location to the destination location , where . In order to maintain the direction of UAV under wind disturbance, we must have:
If we let the UAV fly with maximum ground speed to achieve minimum traveling time, it must generate the maximum thrust force, such that:
Finally, the total energy needed by a UAV is to travel from to can be computed as follows:
where is the power of the UAV when it is traveling to a node. It is not hard to prove that reaches maximum if and which means the direction of maximum speed wind is opposite to the direction the UAV will travel to. Thus, in Equation (9), we denote this kind of wind at time index with . The impact of minimum wind can be explained analogously.
Iv The Overall Idea
We assume that the -plane is given as a hexagon grid to all the UAVs.
Figure 1 shows a flight area, where the set of nodes to be visited
is , solid black hexagons represent obstacles, and
three UAVs are in the red, green, and blue depots. The reason we choose hexagon
grids is that the distance between the center of a hexagon to the center of any
of its neighboring hexagons is the same and, hence, the direction of traveling
alone does not change the energy cost. For simplicity, we assume that each node
(including the depots) is located at the center of a hexagon. The
main components of the algorithm are as follows (see also
Node division. Our main decentralized path planning
technique is shown in Algorithm 1. Each UAV runs the
same algorithm. The main steps of the algorithm are as follows. In
Line 1, the UAVs create and agree on a partition of nodes through
communicating with each other by invoking . This results in a
goal set for each UAV (denoted ) from the current set of
unvisited nodes (denoted ). This is a synchronous step, meaning that
all UAVs proceed to
Line 2 simultaneously and is described in detail in Section V-A. For example, in Fig. 1, the goal set of
the leftmost red UAV is .
Computing desirable path. In Line 2, for each , we create a path that starts at (i.e., the current position of ) and ends at . The path goes through a sequence of adjacent hexagon centers (i.e., 2D positions, called waypoints) by using an -based algorithm . This algorithm (described in Section V-B) returns a sequence of desirable states at each time index, such that:
where is the time index at current location of , and
is the desirable traveling time
following the path generated by the algorithm.
Predicting energy consumption. We employ a PID controller to predict the energy cost of the desirable path computed in Line 2. Thus, we apply (Line 3) to to compute a sequence of predicted inputs of the UAV which will be used to obtain the predicted traveling energy cost (see Section V-C for details). The predicted energy cost of traveling to node from the current location of is the sum of piece-wise traveling energy cost in each sampling time interval during the entire path:
Recall from Section II that is the
piece-wise traveling energy cost from time to by UAV
towards node under disturbance , as prescribed by
Equation (14) and based on . As a matter of fact,
at time index , the UAV cannot get the future wind disturbance.
Thus, we let , for all .
Likewise, and can be computed by replacing
with and , respectively.
Let the node that has minimum predicted traveling energy cost among all the
nodes in be the new goal to travel to and visit
(Line 5). For example, in Fig. 1, for the leftmost red
UAV, in the first iteration of the algorithm. Observe that the
union of sequences of nodes for each UAV essentially establishes plan
as described in Section II.
Replanning. Next, for each node , except , from the total predicted traveling energy cost and the maximum/minimum traveling energy costs, we compute a risk value (Line 6) and select the maximum among them () to compute the time interval before the next planning procedure (Line 7) by calling (described in Section V-D). At this point, the UAV has its goal node. If the UAV’s current location is the same as the location of its goal node (Lines 8 – 11), then (i) has visited its goal, (ii) removes from , and (iii) jumps back to Line 2. Otherwise, the UAV starts executing two concurrent threads (Line 12): (1) the UAV starts traveling to , and (2) jumps back to Line 2 after time units to dynamically reevaluate its current course. Concurrent to the above steps, each UAV periodically communicates a message to other UAVs every time units to share the set of nodes that it has visited since the last communication. Finally, the UAVs may periodically invoke to dynamically reorganize their goal sets. In Fig. 1, iterative execution of the algorithm results in red, green, and blue paths.
V Detailed Description of the Algorithm
V-a Online Node Division
In our decentralized multi-UAV path planning algorithm, each UAV initially
chooses a group of nodes as potential goals to travel to and visit. In
order to avoid overlaps between UAVs, we propose a distributed synchronous111In a synchronous distributed algorithm , each
process sends a message to all processes and waits until it receives a message
from all processes, including itself. When it receives all the messages, it
continues with some local computation. Each send-receive-compute sequence is
called a round. Synchronous algorithms typically execute multiple rounds
before they terminate. node division technique (see
Algorithm 2) that partitions the nodes in .
Algorithm sketch. The general idea of the algorithm is the following:
First, each UAV chooses a set of nodes whose traveling require significantly less energy than other UAVs based on its distance to the nodes. Then, it broadcasts to all others and receives similar messages, acquiring knowledge of for all , i.e., .
Next, each UAV attempts to add the remaining nodes (i.e., nodes not in ) to . To this end, for each such node, say , it computes the extra energy needed to cover by computing the average TSP distance of these nodes. It then broadcasts a message containing the extra energy needed to cover each and receives similar messages from other UAVs.
Finally, from the set of remaining nodes, each UAV chooses the nodes that requires the least extra energy, as compared to other UAVs.
We note that one can run periodically to archive better load
balancing. We will study the impact of frequent node division in
Detailed description. The detailed steps of for each UAV are listed in Algorithm 2. Let denote the set of unvisited nodes. Each element of may be later added to (initially empty) for visiting. First, the UAV starts choosing nodes without communicating with the other UAVs (Lines 2 – 6). In each iteration, a node that is the closest to the UAV is considered (Line 3) and we test if the traveling energy cost to by is significantly less than all other UAVs (Line 4). To this end, we check that the minimum traveling energy needed from , for any , to is greater than the maximum energy needed to travel roundtrip from to , for all . If the above condition is satisfied, we add to (Line 4). When all the nodes in are considered, the UAV broadcasts its goal set (Line 7) and receives similar messages from all the UAVs. After receiving all messages, each UAV has full knowledge of the current set of goals of all other UAV and attempts to add the remaining nodes (i.e., nodes not in ) to . To this end, we identify the circumcircle of the nodes in plus the current position of the UAV and compute its area . The nearest neighbor algorithm approximates the expected TSP tour length  through all these nodes to:
where is a constant and is the number of these nodes. Particularly, if , then and if , then the straight line between the two nodes is the diameter of the circumcircle. In our problem, . Observe that as computed in Lines 9 – 10 characterizes the expected total traveling energy cost for all the nodes in . Next, we compute the extra energy needed for each remaining node (Line 12) and include all these values in , which is sent to all other UAVs (Line 17), and again, receives messages with similar information (Line 18). For each unchosen node (Line 19), we check if the extra energy needed is minimum among that for all other UAVs (Line 20). If so, the UAV adds this node to its own potential goal set (Line 21). To resolve the situation that more than one UAV has minimum , we can break the tie by choosing the UAV with minimum (not shown in the algorithm).
V-B Online Desirable Path Planning
For each node (as computed by Algorithm 2) on the -plane with the hexagon grid, we compute a desirable traveling path from to , based on the well-known algorithm . We also consider both wind disturbance and obstacle bypass. We denote the set of all the hexagons by and the set of hexagons containing obstacles by , where . For a node , the hexagon whose center is is denoted by . We also denote the 2D center position of a hexagon with . As for the UAV movement, each UAV moves along a sequence of centers of neighboring hexagons to reach a node from its current location:
where and . Let
be the prediction function, where represents the predicted traveling energy cost from to through a sequence of hexagons and is the predicted traveling energy cost from to through a straight path. is the total predicted traveling energy cost from to via hexagon . The estimated wind disturbance is modeled as , for all , where is the time index at the current position of .
We compute in the following way: assuming that UAV starts traveling from a hexagon to another hexagon at time index , by Equation (14), we obtain both the time index when reaches , such that
where is the desirable traveling time from to , and the traveling energy cost from to , i.e., under wind disturbance :
To compute , we assume that wind disturbance is . By using Equation (14), traveling energy cost will be
The detailed steps of our path planning algorithm are shown in Algorithm 3. In Lines 1 – 3, we first create two functions and . We also define an auxiliary function , where the parent of a hexagon on a path is its predecessor. We initialize the parent hexagon of all the hexagons to . We also initialize an empty open set and closed set for basic algorithm where they both can contain a set of hexagons (Line 4). After initialization, we add into , update and , and set to current time index (Line 5).
Next, we enter the while loop (Line 6). In each iteration, we first select a hexagon with minimum value for consideration, such as (Line 7) and check if is the hexagon associate with node (Line 8). If true, our search algorithm reaches the goal and exits the while-loop. Otherwise, we remove this node from and add it to (Lines 11 – 12). Then, we start to explore its six neighboring hexagons one by one (denoted by in Line 13). If one of them contains obstacles or is in the , we skip it (Lines 14 – 16). Or, we add this hexagon to the (Line 17). Next, we compute the new traveling energy cost from to , where (Line 18). If this new value is larger than its existed value, then we skip it, since this is not a better path (Line 19). On the contrary, we have found a path that cost less traveling energy to than its previous one. We set the parent hexagon of to (Line 22), set to Newgl (Line 23), compute its new (Line 24) and the predicted time index when the UAV reaches (Line 25). Once , we leave the while-loop and generate waypoints from to (Line 28).
Finally, we generate the desirable states of the UAV at each time index from to by using the polynomial motion planning method [11, 12, 13]. At each time index, the desirable position, velocity and acceleration of a UAV are generated by polynomial fitting functions. The desirable Eular angles and angular velocities are all . The result is shown as:
The above equation is has the same meaning as (15), since and .
V-C Online PID-based Energy Prediction
In the previous subsection, for each UAV , we obtained a sequence of desirable states through all the waypoints from to , for each . Now, we are going to generate the predicted input from each pair of neighboring desirable states in based on the wind disturbance at current time index. Then, we can compute the predicted traveling energy cost with all the inputs. Since the dynamics of quadrotors is nonlinear, and the position control (i.e. thrust force) and attitude control (i.e. moments in three dimensions) are coupled with each other, it is difficult to use a PID controller directly. However, one can decouple these two control designs using the technique in  and linearize each controller design. For example, assuming that is the desirable position and is the current position, in order to design the position control, we can build the position closed-loop equation as follows:
where ; and are first and second order derivatives of , respectively, and and are both positive definite matrices. Since is related to the UAV thrust force directly, Equation (19) can be expanded as:
The attitude control design is similar to position control design as above.
We utilize the results in  as follows. Let be the current state which is the same as . We generate from and by using the decoupled PID control prediction. Besides, we obtain predicted states from and . Typically, there is some difference between and . We continue this step from desirable states to . Finally, we obtain a sequence of predicted inputs as follows:
Next, we compute the predicted traveling energy cost from the above input sequence. For each predicted input vector , we first convert it into rotational speed of the four propellers by (3), then we obtain the piece-wise traveling energy cost by Equation (14) with being the sampling time . Next, we summarize all the piece-wise traveling energy cost together to get the predicted traveling energy cost from to by UAV . Each UAV computes for all the nodes in . Besides computing for each node in , UAV also computes the maximum and minimum traveling energy cost with the same path, such that and with the wind disturbance being and , respectively. Finally, the UAV chooses the node , such that , as the goal to travel to and service, as described in Algorithm 1.
V-D Online Replanning
In order to achieve more accurate path planning and energy prediction in the presence of time variant and un-predictable disturbances, we apply periodic replanning. To this end, for each node in except , we use a risk number to represent the risk that this node could become the one that has minimum . The risk number is defined as follows:
We choose the maximum which is denoted by to compute the replanning interval defined as:
where is the minimum replanning interval and is a proper positive nature number. Then, the next planning time will be
In order to analyze the performance of Algorithm 1, we have conducted a rigorous set of simulations.
Vi-a Experimental Settings
We have implemented all the algorithms in MATLAB. In our simulations, we consider the following parameters:
The size of the flight area ranges over , , and squared meters. We fix the size of hexagons with side lengths of .
The number of nodes in the area varies between 10 – 50.
The number of UAVs ranges over 1 – 8.
The wind disturbance is or to represent low and high winds, respectively. For the duration of experiments, wind blows for within time intervals randomly in one of the north, south, east, and west directions. There is no wind between any two consecutive wind events (see Fig. 3). Note that given the direction of wind, angle in Equation (14) can be computed from the direction of a UAV.
The arm length of all UAVs are and their mass is .
The PID sampling period is fixed at .
We distinguish four cases based on enabling and disabling node redivision (denoted ) and online replanning (denoted ). The four cases are denoted by , , , and . In cases with , all the UAVs do a one-time node division in the beginning (i.e., ). And, for the cases with , node division is applied with different time periods – seconds.
Our sole metric for measurement is the actual global traveling energy consumption in Joules. To gain statistical confidence, for each experiment, we generate 100 different random data sets, where the positions of the nodes and the UAVs are independent and identically scattered in the flight area. This will ensure confidence interval. We calculate the average energy consumption of all the experiments.
Vi-B Analysis of Results
Vi-B1 Comparing Algorithm 1 with a greedy algorithm
We first focus on comparing the performance of our algorithm with a best-effort algorithm, where each idle UAV chooses to visit the closest unvisited node. We fix the number of UAVs to 4 and wind to .
Fixed area/variable number of nodes
Here, we compare two strategies: the greedy algorithm and Algorithm 1 with node redivision interval of , i.e., function is invoked every . The flight area is fixed at . Figure 3(a) shows the performance for 30, 40, and 50 nodes. As can be seen, Algorithm 1 clearly outperforms the greedy algorithm by almost energy savings on average. The main reason is that in our approach a UAV can keep a set of nodes in its close vicinity and other UAVs that are in relatively longer distances will not travel to one of those nodes. Observe that the performance drops a little bit as the number nodes grow. This is because the area becomes more dense and the assignment of nodes to UAVs in both algorithms become less crucial.
Fixed number of nodes/variable area
Here, we compare the greedy algorithm with Algorithm 1 by fixing the number of nodes to 30 and changing the size of flight area. The rest of the parameters are identical to those of the previous section. We consider area sizes , , and . The performance is shown in Figure 3(b). Our Algorithm 1 always has about energy saving when compared with the greedy algorithm.
Vi-B2 The Impact of Node Redivision
We now focus on the impact of function and the interval of its invocation on the performance of Algorithm 1. Here, all experiments are in area.
Node redivision period
Now, we test the impact of the time interval of node redivision. We fix the number of nodes to 30, the number of UAVs to 4, the disturbance to the low wind, and increase the node redivision period from to . In Fig. 4(a), the average traveling energy cost grows as the the node redivision interval increases. The reason is that function utilizes TSP-length estimation which may be less accurate than the actual UAV path. Thus, adjusting the estimation periodically is beneficial. In addition, if we continue increasing the node redivision interval, the average traveling energy cost will approach to that with only one-time node division at the beginning. It can be seen that period is more efficient than interval.
Now, we change the wind disturbance by fixing 30 nodes with four UAVs. We also distinguish four cases based on enabling and . Figure 4(b) shows the simulation results. As can be seen, high wind will increase the overall traveling energy cost. Enabling does not show performance benefits as compared to node redivision in low wind. In high wind, the effect is hard to predict. Sometimes, it can reduce the overall traveling energy cost, but sometimes it makes the results even worse. Online replanning tends to choose the node with minimum predicted traveling energy as the goal to travel to, but the local optimum choice does not always lead to global optimality. Also, although online replanning may change the goal node once in a while, its impact in cases with large number of nodes and UAVs is almost negligible. This is, however, not the case for smaller number of nodes and UAVs. We will discuss this in Section VI-B3. On the contrary, node redivision always give better average results.
Number of nodes in flight area
Figure 4(c) shows our results for 10 – 50 nodes. We fix four UAVs and low wind. As can be seen, the performance of node redivision improves as the number of nodes grow. On the contrary, with a small number of nodes, node redivision usually gives similar results to one-time node division, as the nodes that are assigned to each UAV is small. Moreover, since we apply random distribution of nodes in the area, the average distance between nodes is large when the number of nodes is small. When a UAV moves closer to its goal, its distance to other nodes may grow and other UAVs have less chance to choose this node.
The number of UAVs
Figure 4(d) shows our results for 1 – 8 UAVs while fixing 30 nodes and low wind. As can be seen, when the number of UAVs is small, node redivision has little effect, which is expected. As the number of UAVs grow, the performance of the node redivision improves. However, when there are too many UAVs, the effect of node redivision again fades away, which is also expected. Thus, there is a sweet spot in choosing the number of UAVs proportional to the area size and the number of nodes in the area.
Vi-B3 The Impact of Online Replanning
There exist cases, where online replanning results in better performance. Figures 5(a) and 5(b) show the flight paths of two UAVs located at Node 1 and Node 2. There is only a one-time initial node division. As we can be seen, the overall traveling energy cost with disabling and enabling online replanning is about and , respectively. When UAV 1 leaves its depot, there is a wind from north to south. If we enable online replanning, the UAV changes its goal to Node 4 instead of Node 6 and the overall traveling energy cost will decrease. This result is consistent with the technique in , where online replanning is applied for single UAV scenarios.
Vii Related Work
The vehicle routing problem (VRP)  is generally concerned with the optimal design of routes by a fleet of vehicles to service a set of customers by minimizing the overall cost, usually the travel distance for the whole set of routes. To our knowledge, the body of work on distributed VRP is limited to the work in , where the authors propose partitioning policies for adaptive vehicle routing in a dynamic environment, where travel and service costs can change. In distributed vehicle routing approximation , the authors propose a distributed approximation algorithm to solve VRP. The DRONA framework 17] generates new search steps by learning from current and historical best solutions with fast convergence. Ant colony optimization (ACO)  employs a pheromone model, which builds an initial feasible solution for VRP and then a tabo search is used to improve the current solution to local optimal. In these approaches, there is no notion of physical disturbances.
UAV flight and control have been widely explored. In , the authors survey the dynamics of quadrotors under physical constraints. The work in  studies disturbance-aware online path planning. In their model, a single UAV needs to visit multiple nodes. They employ model-predictive control (MPC) to predict the traveling energy cost to each node under current wind disturbance and choose the node with minimum predicted traveling energy cost to travel. Since wind is time variant, the algorithm runs MPC prediction at a relatively high rate to adjust the node choice. The paper uses an online self-triggered scheduling technique to dynamically reschedule the next replanning time based on the latest MPC prediction result.
Viii Conclusion and Future Work
We introduced a decentralized and online path planning technique for a network of quadrotor UAVs in the presence of weather disturbances, where the vehicles are expected to collaboratively visit a set of nodes scattered in a 2D area. Each UAV will have to spend energy to reach these nodes and defy environment disturbances. Our approach consists of four main components (i) a distributed algorithm that periodically divides the remaining unvisited nodes among the UAVs, (ii) a local (i.e., UAV-level) -based algorithm that computes the desirable path for each UAV to reach the nodes assigned to it, (iii) a local PID controller that predicts the UAV inputs, and (iv) a planner that computes the predicted energy and replanning time period. We showed that our techniques results in significant energy savings as compared to an intuitive best-effort algorithm.
We are currently implementing our technique in a real network of UAVs on the px4 flight stack. There are many interesting research avenues to explore on top of our results. A natural extension is to consider a 3D model, where obstacles can be circumvented by flying around or over them. These choices have different energy consumption profiles. Another problem is to consider environments with dynamic obstacles, vehicles, and goals. One may also take other environmental disturbances such as the heat into account.
We would like to thank Huawei Zhu for sharing her insights on PID controller decoupling techniques.
-  G. B. Dantzig and J. H. Ramser, “The truck dispatching problem,” Management science, vol. 6, no. 1, pp. 80–91, 1959.
-  A. Krishnan, M. Markov, and B. Bonakdarpour, “Distributed vehicle routing approximation,” in Proceedings of the 31st IEEE International Parallel and Distributed Processing Symposium (IPDPS), 2017, pp. 503–512.
-  M. Pavone, E. Frazzoli, and F. Bullo, “Adaptive and distributed algorithms for vehicle routing in a stochastic and dynamic environment,” IEEE Transactions on Automation and Control, vol. 56, no. 6, pp. 1259–1274, 2011.
-  N. Bezzo, K. Mohta, C. Nowzari, I. Lee, V. Kumar, and G. Pappas, “Online planning for energy-efficient and disturbance-aware uav operations,” in Proceedings of the IEEE International Conference on Intelligent Robots and Systems (IROS), 2016, pp. 5027–5033.
-  P. E. Hart, N. J. Nilsson, and B. Raphael, “A formal basis for the heuristic determination of minimum cost paths,” IEEE Transactions on Systems Science and Cybernetics, vol. 4, no. 2, pp. 100–107, July 1968.
-  N. Michael, D. Mellinger, Q. Lindsey, and V. Kumar, “The GRASP multiple micro-uav testbed,” IEEE Robotics and Automation Magazine, vol. 17, no. 3, pp. 56–65, 2010.
-  T. Hamel, R. Mahony, R. Lozano, and J. Ostrowski, “Dynamic modeling and configuration stabilization for an x4-flyer,” IFAC Proceedings Volumes, vol. 35, no. 1, pp. 217 – 222, 2002.
-  G. Falkovich, Fluid Mechanics: A Short Course for Physicists. Cambridge University Press, 2011.
-  N. Lynch, Distributed Algorithms. San Mateo, CA: Morgan Kaufmann Publishers, 1996.