Next Article in Journal
Product Demand Prediction with Spatial Graph Neural Networks
Next Article in Special Issue
Research on Ecological Lawn Regulation and Storage System in Flight Area Based on Sponge Airport
Previous Article in Journal
Design of Exergaming Platform for Upper Limb Rehabilitation Using Surface Electromyography
Previous Article in Special Issue
Advancing Aircraft Safety through CAx-Enhanced Digitalization and Thermal Stress Testing Methodologies: A Comprehensive Approach
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Energy-Optimized 3D Path Planning for Unmanned Aerial Vehicles

Bánki Donát Faculty of Mechanical and Safety Engineering, Óbuda University, Bécsi 96/b, H-1034 Budapest, Hungary
*
Author to whom correspondence should be addressed.
Appl. Sci. 2024, 14(16), 6988; https://doi.org/10.3390/app14166988
Submission received: 1 July 2024 / Revised: 5 August 2024 / Accepted: 6 August 2024 / Published: 9 August 2024

Abstract

:
Drone technology has undoubtedly become an integral part of our everyday life in recent years. The business and industrial use of unmanned aerial vehicles (UAVs) can provide advantageous solutions in many areas of life, and they are also optimal for emergency situations and for accessing hard-to-reach places. However, their application poses numerous technological and regulatory challenges to be overcome. One of the weak links in the operation of UAVs is the limited availability of energy. In order to address this issue, the authors developed a novel trajectory planning method for UAVs to optimize energy consumption during flight. First, an “energy map” was created, which was the basis for trajectory planning, i.e., determining the energy consumption of the individual components. This was followed by configuring the 3D environment including partitioning of the work space (WS), i.e., defining the free spaces, occupied spaces (obstacles), and semi-occupied/free spaces. Then, the corresponding graph-like path(s) were generated on the basis of the partitioned space, where a graph search-based heuristic trajectory planning was initiated, taking into account the most important wind conditions including velocity and direction. Finally, in order to test the theoretical results, some sample environments were created to test and analyze the proposed path generations. The method eventually proposed was able to determine the optimal path in terms of energy consumption.

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:
  • Practically: by direct measuring of the amps consumed by various parts of the drone.
  • Theoretically: with calculations of the energy consumption of the various parts.
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 (F1F4) and Mx, My moments can be calculated as follows:
F i = k f × ω i 2
M x = F 3 F 4 × L
M y = ( F 1 F 2 ) × L
where “L” is the distance between two rotors.
The operation’s conditions are given by the following relations:
  • Hovering motion: Equilibrium conditions for hovering: mg = F1 + F2 + F3 + F4; and all moments = 0;
Equation of motion:
m = F1 + F2 + F3 + F4mg; m = 0
2.
Rise/Fall motion: Conditions for operations: mg < F1 + F2 + F3 + F4 = rise; mg > F1 + F2 + F3 + F4 = fall; and all moments = 0;
Equation of motion:
m = F1 + F2 + F3 + F4mg; m > 0
3.
Yaw motion: Conditions for hovering mg = F1 + F2 + F3 + F4; and all moments ≠ 0;
Equation of motion:
(mass * linear acceleration) m * a = F1 + F2 + F3 + F4mg;
(IZZ * angular acceleration around “Z”) IZZ * αZ = M1 + M2 + M3 + M4
4.
Pitch/Roll motion: Conditions for hovering mg < F1 + F2 + F3 + F4; moments ≠ 0;
Equation of motion:
(mass * linear acceleration) m * a = F1 + F2 + F3 + F4mg;
(IXX * angular acceleration around “X”) IXX * αX = (F3F4) × L
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):
F τ = m 3 0 3 0 3 I 3 a + ω × m v ω × I 3 ω
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:
Etotal = Eprocessors + Emotors + Ecommunication + Eperipherials
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:
E p r o c e s s o r s = i = 1 n r . o f p r o c . t 0 t 1 P p r o c e s s o r i ( t ) d t
Furthermore, the energy consumed by motors is as follows:
Emotors = Etakeoff (a, w) + Ehover (a, w, t) + Emove (w, s, t, ρ)
where the dominant energy is the following:
Emove (w, s, t, ρ) = Edrag (d, ρ, kdrag, Seff) + Ekinetic (w, s)
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: l e n g t h   e j = ( x i + 1 x i ) 2 + ( y i + 1 y i ) 2 + ( z i + 1 z i ) 2 , 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:
E ( i ) = E m o t o r s + f y a w ,   p i t c h ,   r o l l + f r i s e ,   f a l l ,   h o v e r
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:
s u m E ( k ) = i = 1 n E ( i ) + j = 1 m l j
The final execution path can be chosen based on the minimum cost function (Cf(min)), where:
Cfmin = min(sumEk)

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.
P = F i v ;
where P = E j t .
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))
v r e s u l t i n g + v d r o n e + v w i n d
in scalar:
v r e s u l t i n g ( a m p l i t u d e ) = ( v d r o n e 2 + v w i n d 2 2 v d r o n e . w w i n d . c o s α ) 1 2 ;
v r e s u l t i n g o r i e n t a t i o n β 0 = a r c c o s v w i n d 2 v d r o n e 2 + v r e s u l t 2 2 . v r e s u l t v w i n d ;
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:
E t = F v                           E = F v t
This calculated energy is E k i n e t i c , 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, n ( i ) = x , y , z , w ( i ) .
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.

Author Contributions

Conceptualization, I.N. and E.L.; methodology, I.N.; software, I.N. and E.L.; formal analysis, I.N.; investigation, I.N and E.L.; resources, I.N.; writing—original draft preparation, I.N. and E.L.; writing—review and editing, I.N. and E.L.; supervision I.N. and E.L. All authors have read and agreed to the published version of the manuscript.

Funding

The research was funded by the Óbuda University Open Access Publication Support Foundation.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

The data presented in this study are available on request from the corresponding author. The data are not publicly available due to this being an ongoing study.

Acknowledgments

This work was supported by the Fuzzy Systems Scientific Group at the Bánki Donát Faculty of Mechanical and Safety Engineering of Óbuda University.

Conflicts of Interest

The authors declare no conflicts of interest.

Appendix A

The pseudocode of the modified heuristic A* algorithm.
Algorithm A1 isFree (for obstacles)
1: if x >= obstacle[0] and x <= obstacle[1] and y >= obstacle[2] and y <= obstacle[3] and z >= obstacle[4] and z <= obstacle[5]
2:   return False
3: end if
4: return True
Algorithm A2 heuristic(x1, y1, z1, x2, y2, z2, wind_speed, wind_direction)
1: # Calculate the heuristic cost between two points
2: distance = abs(x1 − x2) + abs(y1 − y2) + abs(z1 − z2)
3: # Calculate the angle between the direction of the wind and the line connecting the two points
4: wind_angle = arctan(y2 − y1, x2 − x1) − wind_direction
5: # Calculate the component of the wind speed in the direction of the line connecting the two points
6: wind_component = wind_speed * cos(wind_angle)
7: # Return the total heuristic cost, taking into account the wind speed and direction
8: return distance + wind_component
Algorithm A3 aStarSearch(map, start, goal, wind_speed, wind_direction)
1: # Create a list to store the visited nodes
2: visited = []
3: # Create a list of the remaining nodes to be explored
4: remaining = [start]
5: # Keep looping until there are no more nodes to explore
6: while remaining
7:   # Sort the remaining nodes by their heuristic cost
8:   remaining.sort(key=lambda x: map.heuristic(x[0], x[1], x[2], goal[0], goal[1], goal[2], wind_speed, wind_direction))
9:   # Get the node with the lowest heuristic cost
10:  current = remaining.pop(0)
11:  print(current)
12:  # Check if we have reached the goal
13:  if current == goal
14:    # Return the list of visited nodes if the goal is reached
15:    return visited
16:  end if
16: end while
17: # Check the neighboring nodes of the current node
18: for x in [current[0] − 1, current[0] + 1]
19:  for y in [current[1] − 1, current[1] + 1]
20:   for z in [current[2] − 1, current[2] + 1]
21:     # Check if the neighboring node is free of obstacles and has not been visited
22:     if map.isFree(x, y, z) and (x, y, z) not in visited
23:       # Add the node to the list of remaining nodes to be explored
24:        remaining.append((x, y, z))
25:     end if
26:   for end
27:  for end
28: for end
29:  Add the current node to the list of visited nodes
30: visited.append(current)
31: # Return an empty list if the goal could not be reached
32: return []
33: # Define the start and goal coordinates
34: start = (0, 0, 0)
35: start2 = (0, 6, 0)
36: start3 = (8, −2, 2)
37: goal = (13, 15, 13)
38: goal2 = (13, 13, 13)
39: goal3 = (15, 15, 15)
40: # Define the wind speed and direction
41: wind_speed1 = 0
42: wind_direction1 = math.pi / 2
43: wind_speed2 = 2
44: wind_direction2 = math.pi / 3
45: # Perform the A* search, taking into account the wind speed and direction
46: visited = aStarSearch(map, start, goal, wind_speed1, wind_direction1)
47: visited2 = aStarSearch(map, start2, goal2, wind_speed1, wind_direction2)
48: visited3 = aStarSearch(map, start3, goal3, wind_speed2, wind_direction2)
49: # Plot the visited nodes
50: ax.plot([x[0] for x in visited], [x[1] for x in visited], [x[2] for x in visited], "ro-")
51: ax.plot([x[0] for x in visited2], [x[1] for x in visited2], [x[2] for x in visited2], "go-")
52: ax.plot([x[0] for x in visited3], [x[1] for x in visited3], [x[2] for x in visited3], "yo-")

Appendix B

The generalized pseudocode of the whole process.
Algorithm A4 Generalized Process
1:  # Creating the configured area
2:  read (envMAP);
3:  nmax ← number of obstacles;
4:  n = 1;
5:  while nnmax
6:    Dimension = Calculate the dimension of obstacle
7:    ConfigObstacle = Dimension + R
8:    n = n + 1
9:  while end
10: make the configured map of WS (confMAP);
11: fig (confMAP);
12: # Partitioning the WS
13: read (confMAP);
14: select resolution (D)
15: For x/y/z = 0/0/0 To xmax/ymax/zmax Step “D
16:  make scaling
17:  print x/y/z
18:  next x/y/z
19: for end
20: fig (partMAP);
21: # Separating the free-spaces, creating the pointCloud (voxelMAP)
22: var
23:  (voxelMAP) – array of n(i) vectors;
24:  n(i)-vector (x,y,z,w(i));
25: read (partMAP);
26: Calculate the center points of cubes
27: Select the center points in obstacles, sign “1”
28: Select the center points on free-spaces, sign “0”
29: Numbering the center points of free spaces n(i)
30: Store the n(i) coordinates in cloud (voxelMAP)← n(i)
31: fig (voxelMAP);
32: # Calculate the distances between n(i) nodes, make the weighting of edges
33: var
34:  n(i)-vector (x,y,z,w(i));
35: read (voxelMAP)
36: repeat
37:    d ( j ) = n ( i + 1 ) 2 n ( i ) 2 ;      {calculate the length of edges}
38:  w(j)d(j);
39:  I = I + 1;
40: until Iimax;
41: # Making the graph oriented
42: read (VoxelMap);
43: select START (x,y,z); j←1
44: select GOAL (x,y,z); jjgoal
45: for START(x,y,z) = 1 To GOAL(x,y,z) = jgoal Step “j”
46:   if j < jgoal assign “→” end if
47:   next “j”
48: end for
49: # Making the weighting of the nodes
50: var
51:   WindData ← vector (x,y,z,winddirection, windstrength);
52: read (voxelMAP);
53: repeat
54:  read (MeteoCloud);
55:  # create WindData
56:  WinData ← MeteoCloud
57:  voxelMAPWindData
58:   v r e s u l t i n g ( i ) + v d r o n e ( i ) + v w i n d ( i )
59:  I = I + 1;
60: until Iimax;
61: # Making the heuristic A* algorithm by the improved weighting
62: var
63:   Open ← vector of nodes between START and GOAL positions
64:  Close ← vector of nodes fixed by the lowest weighting
65:  open ← all the nodes between START and GOAL positions
66: while open ≠ 0
67:  calculation the cost function between the actual and next possible nodes
    f ( n i ) = d ( j ) + v ( i ) + h ( n ) ( i ) g ( n i )
68:  comparison of the calculated cost functions f n i f ( n i + 1 ) ;
69:  selecting the smallest
70:  Closen(i)
71:  plot d(j):[ f(n(i))small];
72:  path← plot d(j)
73:  I = I + 1;
74: while end
75: fig(path);

References

  1. Gušavac, B.A.; Martić, M.; Popović, M.; Savić, G. Agricultural Route Efficiencies, based on Data Envelopment Analysis (DEA). Acta Polytech. Hung. 2024, 20, 73–88. [Google Scholar] [CrossRef]
  2. Anatomy of a Drone—What’s Inside a DJI Phantom Drone. Available online: https://www.dronefly.com/the-anatomy-of-a-drone (accessed on 4 November 2022).
  3. Drone Design—Calculations and Assumptions. Available online: https://tytorobotics.com (accessed on 22 October 2022).
  4. Working Principle and Components of Drone. Available online: https://cfdflowengineering.com/working-principle-and-components-of-drone/ (accessed on 22 October 2022).
  5. Pandya, G. Basics of Unmanned Aerial Vehicles: Time to Start Working on Drone Technology; Notion Press: Mylapore, India, 2021; ISBN 978-1-63745-387-2. [Google Scholar]
  6. Gomes, A.J.; Voiculescu, I.; Jorge, J.; Wyvill, B.; Galbraith, C. Spatial Partitioning Methods. In Implicit Curves and Surfaces: Mathematics, Data Structures and Algorithms; Springer: London, UK, 2009; pp. 187–225. [Google Scholar] [CrossRef]
  7. Sabry, F. Exploring Binary Space Partitioning: Foundations and Applications in Computer Vision. In Binary Space Partitioning; One Billion Knowledgeable: Dubai, United Arab Emirates, 2024. [Google Scholar]
  8. Jaillet, F.; Lobos, C. Fast Quadtree/Octree adaptive meshing and re-meshing with linear mixed elements. Eng. Comput. 2021, 38, 3399–3416. [Google Scholar] [CrossRef]
  9. MathWorks, Octree—Partitioning 3D Points into Spatial Subvolumes. Available online: https://www.mathworks.com/matlabcentral/fileexchange/40732-octree-partitioning-3d-points-into-spatial-subvolumes (accessed on 4 November 2022).
  10. MathWorks, exportOccupancyMap3D. Available online: https://www.mathworks.com/help/nav/ref/exportoccupancymap3d.html (accessed on 4 November 2022).
  11. Sanches-Lopez, J.L.; Wang, M.; Olivares-Mendez, M.A.; Molina, M.; Voos, H. A Real-Time 3D Path Planning Solution for Collision-Free Navigation of Multirotor Aerial Robots in Dynamic Environments. J. Intell. Robot. Syst. 2018, 93, 33–53. [Google Scholar] [CrossRef]
  12. Lifen, L.; Ruoxin, B.S.; Shuandao, C.L.; Jiang, D.W. Path planning for UAVS Based on Improved Artificial Potential Field Method through Changing the Repulsive Potential Function. In Proceedings of the 2016 IEEE Chinese Guidance, Navigation and Control Conference, Nanjing, China, 12–14 August 2016; pp. 2011–2015. [Google Scholar] [CrossRef]
  13. Chen, X.; Zhang, J. The Three-dimension Path Planning of UAV Based on Improved Artificial Potential Field in Dynamic Environment. In Proceedings of the 2013 Fifth International Conference on Intelligent Human-Machine Systems and Cybernetics, Hangzhou, China, 26–27 August 2013; pp. 144–147. [Google Scholar] [CrossRef]
  14. Zhou, B.; Gao, F.; Pan, J.; Shen, S. Robust Real-time UAV Replanning Using Guided Gradient-based Optimization and Topological Paths. In Proceeding of the 2020 IEEE International Conference on Robotics and Automation (ICRA), Paris, France, 31 May–31 August 2020; pp. 1208–1214. [Google Scholar] [CrossRef]
  15. Samaniego, F.; Sanchis, J.; Garcia-Nieto, S.; Simarro, R. Smooth 3D Path Planning by Means of Multiobjective Optimization for Fixed-Wing UAVs. Electronics 2019, 9, 51. [Google Scholar] [CrossRef]
  16. Colas, F.; Mahesh, S.; Pomerleau, F.; Liu, M.; Siegwart, R. 3D path planning and execution for search and rescue ground robots. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Tokyo, Japan, 3–7 November 2013; pp. 722–727. [Google Scholar] [CrossRef]
  17. Ahmed, G.; Sheltami, T.; Mahmoud, A.; Yasar, A. Energy-Efficient UAVs Coverage Path Planning Approach. CMES 2023, 136, 3239–3263. [Google Scholar] [CrossRef]
  18. EASA. Drone Regulatory System. Understanding European Drone Regulations and the Aviation Regulatory System, EU and MS Regulatory Governance. Available online: https://www.easa.europa.eu/en/domains/drones-air-mobility/drones-air-mobility-landscape/Understanding-European-Drone-Regulations-and-the-Aviation-Regulatory-System (accessed on 16 June 2024).
  19. Kirschstein, T. Comparison of energy demands of drone-based and ground-based parcel delivery services. Transp. Res. Part D Transp. Environ. 2020, 78, 102209. [Google Scholar] [CrossRef]
  20. Çabuk, U.C.; Tosun, M.; Jacobsen, R.H.; Dagdeviren, O. A Holistic Energy Model for Drones. In Proceedings of the 2020 28th Signal Processing and Communications Applications Conference (SIU), Gaziantep, Turkey, 5–7 October 2020; pp. 1–4. [Google Scholar] [CrossRef]
  21. Al-sudany, H.N.; Lantos, B. Extended Linear Regression and Interior Point Optimization for Identification of Model Parameters of Fixed Wing UAVs. Acta Polytech. Hung. 2024, 21, 69–88. [Google Scholar] [CrossRef]
  22. Al-Sabban, W.H.; Gonzales, L.F.; Smith, R.N. Wind-energy Based Path Planning for Unmanned Aerial Vehicles Using Markov Decision Processes. In Proceedings of the 2013 International Conference in Robotics and Automation, Karlsruhe, Germany, 6–10 May 2013; pp. 784–789. [Google Scholar] [CrossRef]
  23. Gugan, G.; Haque, A. Path Planning for Autonomous Drones: Challenges and Future Directions. Drones 2023, 7, 169. [Google Scholar] [CrossRef]
Figure 1. The process of the creation of point representation. (a) The drone and the sphere around the drone by “R” radius; (b) the drone represented as a point by its coordinates and orientation; (c) the drone represented as a point by its orientation (this will figure in the environment model).
Figure 1. The process of the creation of point representation. (a) The drone and the sphere around the drone by “R” radius; (b) the drone represented as a point by its coordinates and orientation; (c) the drone represented as a point by its orientation (this will figure in the environment model).
Applsci 14 06988 g001
Figure 2. Classification of drones according to power supply (the energy supply of the actual drone used in the article is colored in red).
Figure 2. Classification of drones according to power supply (the energy supply of the actual drone used in the article is colored in red).
Applsci 14 06988 g002
Figure 3. Forces, moments and torques used in drone flights (Equations (1)–(7)), with the drone coordinate system, and roll, pitch, yaw movements adopted from [4].
Figure 3. Forces, moments and torques used in drone flights (Equations (1)–(7)), with the drone coordinate system, and roll, pitch, yaw movements adopted from [4].
Applsci 14 06988 g003
Figure 4. The idealized UAV flight pattern, where C1 and C2 areas denote energy consumption, while S area is the energy saving region [19].
Figure 4. The idealized UAV flight pattern, where C1 and C2 areas denote energy consumption, while S area is the energy saving region [19].
Applsci 14 06988 g004
Figure 5. The generalized energy consumption of the drone (hover—blue, move—orange, idle—blue, peak—orange).
Figure 5. The generalized energy consumption of the drone (hover—blue, move—orange, idle—blue, peak—orange).
Applsci 14 06988 g005
Figure 6. The scaled partitioned sample WS, with occupied blocks (blue dots) and Free Spaces (FSs).
Figure 6. The scaled partitioned sample WS, with occupied blocks (blue dots) and Free Spaces (FSs).
Applsci 14 06988 g006
Figure 7. Creation of the graph-like (topological) map of the space, where the center points of the FS blocks are connected. Where the connecting line crosses (or touches) an occupied block (see red line), the connection is not possible.
Figure 7. Creation of the graph-like (topological) map of the space, where the center points of the FS blocks are connected. Where the connecting line crosses (or touches) an occupied block (see red line), the connection is not possible.
Applsci 14 06988 g007
Figure 8. Illustration of weight calculations along the path in three different situations, see nodes n(i). The drone is represented as a point and orientation, see the blue full arrow line. The wind direction is represented with dashed arrow line.
Figure 8. Illustration of weight calculations along the path in three different situations, see nodes n(i). The drone is represented as a point and orientation, see the blue full arrow line. The wind direction is represented with dashed arrow line.
Applsci 14 06988 g008
Figure 9. UAVs path planning classification.
Figure 9. UAVs path planning classification.
Applsci 14 06988 g009
Figure 10. The resulting velocity calculation of the drone. (a) Tailwind; (b) crosswind; (c) headwind. The wind direction is represented by the dashed-arrow lines; the resulting (calculated) velocity vector of the drone is represented by red full-arrow line; the initial velocity and orientation of the drone is represented by blue full-arrow line.
Figure 10. The resulting velocity calculation of the drone. (a) Tailwind; (b) crosswind; (c) headwind. The wind direction is represented by the dashed-arrow lines; the resulting (calculated) velocity vector of the drone is represented by red full-arrow line; the initial velocity and orientation of the drone is represented by blue full-arrow line.
Applsci 14 06988 g010
Figure 11. The flow-chart of the entire process.
Figure 11. The flow-chart of the entire process.
Applsci 14 06988 g011
Figure 12. The calculated optimal trajectory from the START (left bottom corner) to the GOAL positions in a tailwind situation. The start and goal coordinates are identical in both cases, S1 = [0, 0, 0]; G1 = [13, 15, 13]. Due to better visualization (where the obstacles are neglected) and better highlighting of features of the path, the axis data has been modified by the program.
Figure 12. The calculated optimal trajectory from the START (left bottom corner) to the GOAL positions in a tailwind situation. The start and goal coordinates are identical in both cases, S1 = [0, 0, 0]; G1 = [13, 15, 13]. Due to better visualization (where the obstacles are neglected) and better highlighting of features of the path, the axis data has been modified by the program.
Applsci 14 06988 g012
Figure 13. The calculated optimal trajectory from the START (left bottom corner) to the GOAL positions in a crosswind situation. The start and goal coordinates: S2 = [0, 6, 0]; G2 = [13, 13, 13].
Figure 13. The calculated optimal trajectory from the START (left bottom corner) to the GOAL positions in a crosswind situation. The start and goal coordinates: S2 = [0, 6, 0]; G2 = [13, 13, 13].
Applsci 14 06988 g013
Figure 14. The calculated optimal trajectory from the START (left bottom corner) to the GOAL positions in a headwind situation. The start and goal coordinates: S3 = [8, –2, 2]; G3 = [15, 15, 15].
Figure 14. The calculated optimal trajectory from the START (left bottom corner) to the GOAL positions in a headwind situation. The start and goal coordinates: S3 = [8, –2, 2]; G3 = [15, 15, 15].
Applsci 14 06988 g014
Figure 15. The sum of calculated optimal trajectories from the START (left bottom corner) to the GOAL positions.
Figure 15. The sum of calculated optimal trajectories from the START (left bottom corner) to the GOAL positions.
Applsci 14 06988 g015
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Nagy, I.; Laufer, E. Energy-Optimized 3D Path Planning for Unmanned Aerial Vehicles. Appl. Sci. 2024, 14, 6988. https://doi.org/10.3390/app14166988

AMA Style

Nagy I, Laufer E. Energy-Optimized 3D Path Planning for Unmanned Aerial Vehicles. Applied Sciences. 2024; 14(16):6988. https://doi.org/10.3390/app14166988

Chicago/Turabian Style

Nagy, Istvan, and Edit Laufer. 2024. "Energy-Optimized 3D Path Planning for Unmanned Aerial Vehicles" Applied Sciences 14, no. 16: 6988. https://doi.org/10.3390/app14166988

APA Style

Nagy, I., & Laufer, E. (2024). Energy-Optimized 3D Path Planning for Unmanned Aerial Vehicles. Applied Sciences, 14(16), 6988. https://doi.org/10.3390/app14166988

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

Article Metrics

Back to TopTop