1. Introduction
The ever-increasing development of drone technology, including courier drones, precision agro-culture “agro-drones”, military drones, and drones used in emergency situations as well as in different industrial areas, means that engineers are constantly faced with new technical challenges [
1].
By definition, the Unmanned Aerial Vehicle (UAV) is an unmanned aircraft (UA) that can fly autonomously, as opposed to the Remotely Piloted Aircraft (RPA), which is semiautonomous. The Unmanned Aerial System (UAS) is a wider term encompassing the controller on the ground, the aircraft in the air, and the communication between them, thus the whole system. The RPA can also be part of a system called Remotely Piloted Aircraft System (RPAS), where the whole system is created from RPA (see above), plus the Ground Control Station (GCS) [
2].
There are several classifications of drones. For classic UAVs, this classification can be the following: multi-rotor, fixed wing, single-rotor, fixed-wing hybrid VTOL (Vertical Take-Off and Landing), MAV (Micro Air Vehicle: <1 g), sUAS (small UAS: <25 kg), etc. More relevant to this study is the classification of “open (public) category”, or “specific-category” (drones (UAVs) over 25 kg). There is also the “game category” (drones under 120 g weight), which will be disregarded in this project.
The first two categories will be considered within this study, given their flight altitude, 120 m over the nearest point of ground, for “public category” drones. This dimension will be important in 3D map creation of the flying environment of the drone.
1.1. Brief Description of the Aims
As mentioned above, limited energy availability is one of the weak points of drone operation. This notion led to the development of the proposed trajectory planning method, which uses energy as effectively as possible, thus optimizing consumption during the flight. It requires the creation of a drone “energy map”, where the components consuming most energy are determined, so that the trajectory planning mechanism can be adjusted accordingly. Weather reports, especially wind reports of the terrain, must be available during the drone’s path planning.
The energy map creation is followed by 3D environment configuration, since this is how the drone interprets its environment. With the partitioning of the “work space” (WS), the following areas are created: “free spaces”, “occupied areas”, and “semi -occupied/-free spaces”. The occupied areas contain obstacles, while the semi-occupied ones partly contain them. Depending on the partitioning method used and based on specific resolution of partitioning, the semi-occupied areas can be further partitioned. Once the environment has been partitioned, the modelling can begin. Through the modelling, the drone represented as a point can move in the configured WS. Obstacles, the dimensions of which are increased by the radius (
R) of the sphere drawn around the drone, are called configured obstacles (see
Figure 1). In this way, the physical dimensions of the drone are considered in the WS model. Naturally, extra “safety zones” can be added based on user requirements.
1.2. Research Aspects of the Unmanned Aerial Vehicles (UAVs)
Research into UAVs can be grouped into three main areas, as outlined below.
Group 1 includes publications describing drone parts and operating conditions of drones [
3,
4,
5].
The focus of these publications is the evaluation of the energy consumed by the different drone parts, based on which energy weights can be assigned to the different path segments. The created drone “energy map” revealed that most of the energy was consumed by the drive rotors. The power of these rotors is highly dependent on velocity, ascending, descending, and the air resistance of the drone. The velocity can be controlled by an Electronic Speed Controller (ESC) or Flight Controller (FC).
Group 2 incorporates literature on 3D path planning and environment modelling methods. Space partitioning is studied, e.g., in [
6,
7,
8,
9,
10], while 3D path planning methods are presented in [
11,
12,
13,
14,
15,
16,
17].
These publications provide a good basis for designing a novel space partitioning and path planning algorithm. One of the shortcomings of the surveyed documentation is that almost none of them deal with partitioning of the WS, which may be due to two reasons, as follows: (a). Drones are equipped with environmental sensing equipment (RADAR or LIDAR sensors, cameras, vision systems, US sensors, etc.). (b). Drones fly a visible distance and are controlled via joystick or remote controllers. GPS is standard equipment in drones.
None of the examined works delved into the topic of energy used in aviation. In order to take this condition into account, several routes between the START and GOAL positions must be established, reviewed, and the optimal route requiring the least energy for execution selected. Unfortunately, this will only work in static environments, because recalculating and re-weighting the path segments takes some time, depending on the complexity of the flight control (FC) processor.
Last but not least, Group 3 discusses legal regulations of drone flight and civil aviation, with information that should be considered during the study (see [
18]).
Drone flight rules (policies) in the EU, or indeed the world, have not yet been fully developed. There are certain local provisions in place, but they are not completed. There are some drone categories (A, B, C), some flight altitudes, and required permissions for drone flights (drone driving licenses). For this study, the most significant is taken into account, namely, to maintain 120 m altitude from the nearest ground point.
2. Preliminary Studies
This section focuses on studies about the drone’s energy consumption and work space partitioning.
2.1. Studies about Drone Energy Consumption
There are different types of drones defined according to their power supply. The most common drone drives are hybrid and purely electric drives. A summary of these can be seen in
Figure 2.
In the case of hybrid systems, an Energy Management Strategy (EMS) system usually regulates and controls efficient energy consumption. These EMSs can be based on different strategies, such as: rule-based systems; intelligent-based systems (Fuzzy or NN); optimization-based; etc. Classic electric UAVs, which operate only in motorized mode (where there is no recharging of the battery) lack these systems, and energy savings have to be ensured by another approach. This is why energy-efficient path planning was examined and improved in this project.
The energy consumption of the drone can be defined in two ways:
For energy consumption calculations, the following relations must be considered as a minimum. Engine power can be calculated based on forces, torques and moments on the x/y axis. Generally, Newton’s Laws are used to calculate forces and moments. See
Figure 3 for a better understanding of the equations.
In general, the flight lift forces (
F1–
F4) and
Mx,
My moments can be calculated as follows:
where “
L” is the distance between two rotors.
The operation’s conditions are given by the following relations:
- 2.
Rise/Fall motion: Conditions for operations: mg < F1 + F2 + F3 + F4 = rise; mg > F1 + F2 + F3 + F4 = fall; and all moments = 0;
- 3.
Yaw motion: Conditions for hovering mg = F1 + F2 + F3 + F4; and all moments ≠ 0;
- 4.
Pitch/Roll motion: Conditions for hovering mg < F1 + F2 + F3 + F4; moments ≠ 0;
For the precise description of the forces and exact modelling of the drone, the rigid-body dynamical relations in a 3D environment must be known. Initially, the reference coordinate system is set up along with the related movements. Afterwards, the following effects on the drone are considered:
aerodynamic forces: friction and drag of propellers rotating in air
secondary aerodynamic effects: blade flapping, ground effect, local flow fields
inertial counter torques: gravitation, acting at the center, affect the rotation of propellers
gyroscopic effect: change in the orientation of the drone body and plane rotation of propellers
The dynamic equation can then be formulated as follows (in essence, this is rigid body dynamics extended to a 3D environment):
where
v—linear velocity (this is the origin linear velocity of the drone which will be modified by the wing velocity, see Equation (17)
vresulting,
ω—angular velocity,
α—angular acceleration,
I—moment of inertia,
a—linear acceleration,
m—mass,
F—total force,
τ—total torque. The technical terms used earlier as well as energy consumption concepts are detailed in
Figure 4.
2.2. The Energy Evaluation
Many ideas and calculations (see Equations (9)–(12)) have been applied to the energy calculations from [
20], in some cases with a slightly different interpretation. Generalizing, the drone’s energy consumption can be summarized as follows:
where
E(anything) =
P(anything)*t.
Some constant and very low energy for (
Ecommunication +
Eperipherials) is assumed. The energy consumed by the processor(s) is specified depending on control system complexity:
Furthermore, the energy consumed by motors is as follows:
where the dominant energy is the following:
This
Emove (
w,
s,
t,
ρ) is dominant and vital in different atmospheric conditions (this will be modelled later in the space model). Having completed the calculations for a particular case, the authors created the following “average energy map” of the drone, as seen in the diagram below (
Figure 5, Phantom 4 drone pro/pro+ series).
These calculations were based on a “Phantom 4 Pro” drone. For energy calculations, the simple mathematical relations were used, where voltages are known and currents were measured: P = U*I = E/t. For thrust force calculations, see Equations (1)–(3), above. The two different colors of bars represent the “Hover/Move” energy of motors, and the “Idle/Peak” energy of the “Powerful” and “Weakly” loaded processors.
3. Environment Description and Work Space Partitioning
Most of the drones are equipped with modern positioning and distance-measuring sensors. Apart from these minimum requirements, even the most modestly equipped drones contain GPS and a few range-measuring LEDs for obstacle detection. Standard drones usually include the following positioning sensors: GPS, front/rear LEDs, camera system, forward/downward/rear vision systems, infrared sensing system, barometer, etc. Drones with basic equipment, based on FC complexity, can be controlled in different flight modes.
-P-mode (positioning): works best when the GPS signal is strong. In addition to GPS, other sensors are used: stereo vision system, infra sensing system–obstacle avoiding, moving target tracking.
-S-mode (sport): maximum maneuverability. Obstacle sensing disabled.
-A-mode (altitude): only uses the barometer to sense altitude. Positioning is no longer available.
Regarding work space partitioning, the current drone flight rules must be adhered to. The most important rules include the following:
maintain an altitude of 120 m
stay at least 30 m away from other people
keep the drone in line-of-sight
From the perspective of the current study, the most crucial regulation is the first one, because it limits the volume (space) to be partitioned. On the other hand, if the drone is kept in visual line-of-sight (LoS), the WS partitioning may seem redundant, but the drone will not always be in LoS. The configuration of the WS can always be useful in the operation of unmanned aircraft, because often, if one of the sensors fails, the FC can only rely on the predefined path on the WS model.
There are numerous 3D partitioning methods, such as 4-tree (2D partitioning), 8-tree (3D partitioning, split around a point), KD-tree (partitioning along one dimension), R-tree, and the most general, Grid (cube) rasterization.
The basic concept of 4/8-tree partitioning is as follows: the area/space is divided into 4/8 subparts. Another division is made only on those squares/cubes where obstacles are located, or where parts of obstacles can be found. As a result, the resolution of the division increases, as the drone comes closer to the obstacle.
A KD-Tree is a binary tree in which each node represents a K-dimensional point (hyperspace).
R(rectangle)-Tree groups nearby objects and represents them with their minimum bounding rectangle at the next higher level of the tree [
13].
Voxel grid partitioning is the simplest, and it is also popular, yet not truly effective, because the dimensions of the blocks (cubes) remain the same, regardless of the proximity of the obstacle. On the other hand, the calculations are straightforward, explaining why this partitioning is used in the model studied in this paper.
4. Creating the Polygonal Graph over the Work Space
Following the successful division of the work space, it is easy to create the space “Occupancy Map”, where the empty cubes represent the “Free Spaces” (
FS). Based on this map, one can begin the obstacle-free route planning. A simple model of the above-mentioned method is displayed in
Figure 6. Here, the drone is set to fly between residential buildings.
The “graph-like”, i.e., topological map of the free environment is created by connecting the center-points of the neighboring blocks in such a way that the connecting line cannot touch the occupied spaces (
Figure 7, blocks marked with blue dots).
Figure 6 shows a scaled 15 × 15 × 15-units WS, represented and partitioned by cube grid, where the Centre Points of the cubes are calculated and the occupied cubes are colored blue. SW support is ensured by the
Python package, with the different tools activated and suited for the requirements. Moreover, the Centre Points represent the nodes, while the connecting lines denote the edges of the graph. When the neighboring center points are connected, this results in 22 lines, 6 of which are the lateral adjacencies (shorter lines) and the rest are diagonal adjacencies (longer lines). The mathematical formula for length calculations is simply based on the Pythagorean axiom:
, where the indices <
i,
j> are the number of nodes resp. edges.
4.1. The Weighting Mechanism of the Graph, Calculations of the Weights of Nodes and Edges
Let the graph “
G” be defined as follows:
G = 〈
n,
e〉, where
n(
i) are the nodes of the graph, and
e(
j) are the edges of the graph. The weighting of the graph is divided into two phases. In phase 1, the edges are weighted related to the length (
l(
j)) of the edge
e(
j); then, in phase 2, the energy demand of the node (
E(
i)) is calculated using the previously defined mathematical expressions. The weight calculation is illustrated in
Figure 8.
4.1.1. The Energy Demand Calculation of the Node
To evaluate the energy demand of the node, the following conditions are taken into account: the orientation of the drone (see: yaw/pitch/roll—Equations of motion (6), (7)) [
21]; altitude changing (see: rise/fall—Equations of motion (5)); air resistance and wind directions (see:
Emove—calculation, Equation (11)). Basically, in
Emotors Equation (10), all these calculations can be found. Consequently, the final energy demand of graph-node (
i) can be calculated as follows:
Description of n(1): This is the node where the drone starts from, accelerates to the desired velocity, reaches the desired altitude (rise), and changes its orientation by an angle of α(1) (rotate around x-axis). After this, the drone will cover the distance l(1) in the given orientation at the given altitude. The tailwind is considered in Emotors equation.
Description of n(2): In this node, the drone maintains its altitude, it only has to change its orientation around z-axis by an angle of α(2). In Emotors equation, a crosswind has to be considered. After this, the drone will cover the distance l(2).
Description of n(3): In this node, the drone has to change its altitude (drop to the given altitude), change the orientation by the angle α(3) around the z-axis, and the headwind (contra wind) is considered in Emotors equation.
4.1.2. The Final Weighting Calculation of the Path
There are many routes between the START and GOAL positions. Let the index of these paths be
k = {1,…,
p}. Then the final weighting of the selected (
kth) path can be calculated as follows:
The final execution path can be chosen based on the minimum cost function (
Cf(min)), where:
5. Possible Graph-Search Procedures, Survey and Comparison of the Effectiveness of Different Optimal Path Planning Methods
In mobile robot platforms, there are several methods and procedures to achieve the desired optimal path between the given points in space. Before determining the most suitable algorithm, or algorithms, for this particular case, the methods should be classified to determine which, or what combinations, might be the best solution. It is essential to differentiate between path search algorithms and trajectory optimization methods. In the case of path search, the routes are found between the START and GOAL points of the space (if such routes can be found). In most cases, this search yields the best possibilities, which means the shortest or the fastest path. In comparison, trajectory optimization methods are usually performed by choosing some optimization goal (parameter) and the optimization algorithm is run in order to approximate this goal function. The graph below displays a possible classification (
Figure 9). A detailed description of each method is provided below.
5.1. Path Search Algorithms
5.1.1. Heuristic-Based Algorithms
Heuristic-based path search algorithms are mostly based on graph search methods, such as Dijsktra, A*, LifeTime Plan A* (LPA), and dynamic A* (D*). These algorithms are fast and suitable for identifying the shortest path between the selected positions. As of 2019, these algorithms are extended for 3D environments, and improvements (mainly of the A* algorithm) can be used for variable step size and variable weights. Summary: large amount of node calculation, poor RT performance, cannot be used in dynamic environment.
5.1.2. Sample-Based Algorithms
Two famous algorithms should be mentioned here, namely the Probabilistic RoadMap (PRM) and Rapidly-exploring Random Trees (RRT). RRT is fast, but unfortunately kinematic constraints avoidance and re-planning is not available. The path identification is fast, but it is not necessarily optimal. This method has improvements such as RRT*, DDRRT, and Anytime-RRT. PRM works with randomly scattered graph nodes, which are connected to each other through some rules, and then processes a graph search in space. Summary: environmental pre-information is required, the optimal path is found randomly.
5.1.3. Potential Field (PF) Algorithms
These are typical algorithms for dynamic, or for multi-agent environments. This method usually does not find the optimal path, but it avoids moving obstacles and other agents in space. Summary: good for dynamic PPL, but can be trapped in local minima.
5.1.4. Biologically Inspired Algorithms
This is an imitation of biological behavior. During the process, the building of the complex environment model is saved and based on that, these algorithms propose a powerful search method. They usually find the optimal path, but the process is relatively slow. These algorithms can be divided into two groups: evolutionary algorithms (Ant colony, SWARM technology), and NNs. The disadvantage of these algorithms is that sometimes they suffer from the problem of premature convergence. To avoid this, the input parameters must be stated carefully, e.g., by pre-classification. Summary: dealing with unstructured constrains, long application time, wide search range, slow.
5.1.5. Algorithms Based on Fusion
These algorithms can be divided into two classes. The first class includes those that combine several PPL algorithms, integrated together, to work together to find the best path. The second class includes those that consist of several PPL algorithms, which are sequentially executed. When one algorithm completes its part, the second one starts to work immediately. As sequential execution in a 3D environment, the following sequence can be solved: 3D grid representation of the environment → using the 3D PRM (by this the obstacle-free roadmap is created) → A* algorithm to find the best path. Summary: in the case of well-chosen fusion of algorithms, the best PPL can be created.
5.2. Trajectory Optimization Methods
Regarding optimization methods, the short characteristics of the techniques are the following:
5.2.1. Minimum Trajectory Optimization
Minimum trajectory optimization only ensures that the generated trajectory is smooth and dynamic, but does not constrain the trajectory itself and is suitable for unobstructed flight between two points. Summary: obstacle avoidance is problematic, but smooth trajectory dynamics are feasible.
5.2.2. Constraint Optimization
This increases the safety constraints on flight safety. This method is split into two main categories: hard constraints that increase the boundary value and soft constraints that increase the binding force. The hard constraint method considers all safe areas to be equivalent. Its disadvantage is that some parts of the trajectory come too close to the obstacle, and when the controller cannot follow the generated path, it may cause a collision and further, the flight speed is also low. The soft constraint method applies a “push force” (using the gradient method to calculate the proximity to the obstacle) to push the trajectory away from the obstacle. Summary: hard constraint—ensuring global optimality with the convex formulation. Soft constraint—pushing the trajectory far from obstacle (safety), if there is a local minimum, the success rate and the kinematic feasibility are low.
It must be emphasized that this list is far from complete, but this study will lead to further examination and discussions regarding which of these methods, or what combination of them, proves most suitable for creating the energy-optimal path.
6. Calculation the Resulting Velocity and Energy Demand of the Drone
Figure 5 clearly shows that most of the energy is required by the driving motors of the drone’s propellers, and the other consumption is almost negligible. The power of the driving motors is closely related (directly proportional) to drone speed.
where
.
Since the forces and energies were calculated previously (see Equations (1)–(12)), now the velocities should be determined.
After obtaining the “wind map” of the environment, the resulting velocity vector can be calculated. As seen above (see Equation (16)), the velocity directly influences the drone’s energy consumption, which means determining the correct resulting velocity is vital. As indicated in Equation (12),
Ekinetic considers the wind conditions based on the following principles, seen in
Figure 10.
Figure 10a–c display that the resulting drone velocity is calculated from the signed
vector sum of the wind speed and direction, as well as the average drone speed and direction, see Equation (17) (note: in the case of scalar calculations, the resulting velocity, magnitude and direction, must be performed based on well-known trigonometric (cosine) equations, see Equations (18) and (19))
in scalar:
Theoretically (if the drone velocity remains constant), in certain cases the drone may hover in one place. The algorithm avoids this situation by making the drone change its orientation in a direction with lower resistance, and then, after travelling some distance, it turns again towards the target position. This situation is illustrated in the figures below, see
Figure 11,
Figure 12,
Figure 13 and
Figure 14. The pseudo codes of the most important functions can be found in
Appendix A and
Appendix B.
By combining Equation (16) and the power–energy relation, the following equation can be obtained:
This calculated energy is , and must be considered, and added to the final calculation of the node’s energy demand.
7. Completing the Algorithm and Flowchart of the Process
The ultimate aim underlying this study, as indicated in the abstract, was to use a drone for small package delivery to locations not easily accessible (e.g., mountain rescues) and to disabled people living in cities. To achieve this goal, a number of initial conditions must be met.
For the sake of this project, a 10 × 10 km2 territory will be assumed somewhere in a mountainous area, with an altitude of 250 m from the highest terrain point. This gives the WS origin, which has to be modelled. There are excellent SW tools capable of creating a 3D model of this environment based on the “Google map” (where the territory ought to be selected). The wind direction and wind strength sensors should be placed somewhere near (or directly within) this territory. These sensors provide data via the IoT to the “MeteoCloud” (a proxy server developed for Data Collection with Database and Data Management functions) which serves to create a so-called “Wind Map” of the environment.
The first step is to perform the configuration of the WS, which means that the obstacles need to be increased by the radius of the sphere around the drone (modelling the environment). The next step is WS partitioning, where the environment is divided into cubes; then the occupied spaces (where the obstacles are) and free spaces are designated. In conjunction with this process, the center points of the free-spaces (cubes) must be designated, and based on these, the distance calculations between the center points (edges of the graph-e(j)-) can begin. By designating the START-GOAL pair, the graph orientation can be specified. The resulting velocity of the drone can be calculated by the drone represented as a point (where the orientation and the average speed of the drone are given) and the wind conditions (the resulting velocity can speed up, or slow down the average velocity of the drone, based on the wind direction and speed). The power can be calculated (Equation (16)) from the resulting velocity, which is directly related to the battery energy (Equation (20)), through the drone’s energy consumption (Equation (9)).
As a result, the flight time over the segments (edges) of the graph is acquired, which is directly connected to the resulting velocity of the drone. If the wind increases its average speed, the flight time decreases and the energy consumption is less. Eventually, the final execution path can be selected based on cost functions (Equation (15)) of the calculated paths. The process described above is repeated following each update of data from IoT “MeteoCloud”.
8. Results and Analysis
In order to verify the theoretical results, the authors prepared the above-mentioned (outlined) work area and examined their related assumptions.
The fastest way to find the path with minimum drone energy demand is by the heuristic A* search method. In this particular case, the basic A* method is extended by the wind conditions, and the weighting of the edges and the nodes is introduced based on the energy demands of the path segments. In the first step, the modelled work space map is embedded in the system, and then the graph search is executed on the given environment.
In this project, the developed algorithm was tested for three different scenarios. In each situation, the drone and the wind velocities are constant and the wind velocity
vwind = 0.75 *
vdrone. In the final comparison, where the 3 paths are represented in one diagram (
Figure 15), to make it easier to distinguish the individual paths, different START and GOAL coordinates were established in each case. The workspace is identical in all cases and partitioned (scaled) into 15 × 15 × 15 units. The model works by reading the specified real area (see
Microsoft,
Google 3D maps supports or
Situm Technologies) and creating the
class Map by the given scaling factor.
In Scenario 1, the tailwind is acting in the direction of the velocity vector of the drone. The energy consumption of the drone is minimal, and the path faces the target position almost directly, see
Figure 12. The starting position
S1 = [0, 0, 0] and the goal position coordinates
G1 = [13, 15, 13],
vwind = 0.75 *
vdrone.
In Scenario 2, the drone’s velocity vector and the wind velocity vector were at 90 degrees. It is clear from
Figure 13 that while the drone is flying between the houses, near to ground in leeward, wind does not have much effect on the trajectory planning, but in an open field it does. The gliding effect can be partially observed. The wind vs. drone velocity ratio remains the same. The start and goal positions:
S2 = [0, 6, 0];
G2 = [13, 13, 13].
In Scenario 3, the total headwind affects the drone, and the two velocity vectors are opposite to each other. The ratio is vvind = 0.75 * vdrone. The start and goal positions are identical in both instances, S3 = [8, –2, 2]; G3 = [15, 15, 15]. The significant difference between the routes becomes apparent only in the open area, namely, the gliding effect is much more prominent, compared to the previous cases.
The model’s program features object orientation, where first, the
class Map is created and embedded into the search algorithm. It has a function called
free() that checks if a point in 3D space is occupied or free. It also has a function
heuristic() that calculates the absolute value of the distance between current and final points (x,y,z). It further calculates the weighting of the wind from given parameters. The AStarSearch
() function itself moves from point to point to check if the current point is the goal, until it actually reaches the final point. It uses the function
heursitic() to find the optimal neighbor points. The visited nodes are saved in an array and can be represented visually. The previously described algorithm (
Figure 11) considers three different paths under three different wind conditions, as illustrated in
Figure 10. The final results of the path planning processes described above can be seen in the figures below, see
Figure 12,
Figure 13,
Figure 14 and
Figure 15. The pseudocodes of the program are given in
Appendix A and
Appendix B.
9. Conclusions
In this work, the authors developed an energy-optimal trajectory planning algorithm for an emergency drone. This energy-optimal path can also save lives in case of emergency calls or assistance needed, such as in mountain tourism, when a smaller medical package must be delivered to those in trouble. To achieve this, the authors analyzed several path planning algorithms, from which the following conclusions could be drawn.
Originally, this study focused on the PPL processes using evolutionary algorithms, such as NN, and GA-based PPL processes. Unfortunately, these methods are considerably limited in the case of dynamic weighting, because they are highly dependent on the training (or new population generation) time and the update frequency of the weights. Simply put, during training, the weights can change several times, and the path selected would not be the optimal and current one. Based on these studies, the dynamic and Real-Time PPL methods seemed to be most suitable, thus the heuristic A* algorithm was opted for.
Essentially, a
modified A* algorithm was used, because in the classic algorithm the edges were weighted and the optimal path was identified based on a cost function. In this modification, not only the edges but also the nodes were weighted, and the algorithm stepped from one node to the next, selecting the branch to the next node based on the actual weight (which is calculated and evaluated) at each node. A good example can be seen in
Figure 14 (see the yellow path), where the drone flew in a headwind and “sailed” between the nodes to achieve minimum energy use. Basically, this is a highly complex system, therefore it was divided into sub-programs (procedures) and their operations were interconnected and/or interlinked. The system relied on two Databases (DBs): 1. “MeteoCloud”—where the IoT data of weather stations is uploaded. The wind map for the selected Working Space was created from this DB; 2. “PointCloud” for geographical data of the selected WS. After partitioning the WS, the points were represented by the center-points of the cubes, and these points were also the nodes of the graph (of course, only in free-spaces). These points (nodes) were in fact vectors (arrays) containing coordinates and calculated weights,
.
As
Figure 12,
Figure 13 and
Figure 14 reveal, the developed algorithm fulfilled the expectations of the authors. In the case of tailwind (
Figure 12), the trajectory was an almost straight line to the goal, while in the case of cross- and headwinds, the drone drew a trajectory resembling that of a glider aircraft.
10. Future Works
The outlined examples confirmed that the algorithms were working. However, the authors plan further developments, to make the algorithms work more efficiently. One of the issues was that a global path-planning procedure was applied, which planned the entire path between the Start-Goal positions for the specified conditions. That means, if the wind direction/speed changed during the flight, optimal energy consumption would no longer be achievable. This calls for the application of some type of dynamic path planning model, or possibly the combination of this model with some kind of deep learning method. This line of reasoning leads to path planning based on the Markov decision-making mechanism, where the next step always depends only on the previous one. Regarding this problem, the authors studied reference [
22], where the authors modelled a fixed-wing UAV and worked in plane by the 3 DoF system. More inspiring theoretical ideas originated from [
23], which offered no concrete, real solutions, but provided good theoretical proposals.
To summarize the future work, firstly, the authors will validate further existing models by specifying the existing models; secondly, they aim to develop a new strategy based on a dynamic model by combining the Markov method and the parameterizable B-spline methods.