2. Materials and Methods
The path planner proposed in this work is based on the T-RRT* algorithm by Devaurs, Simeon and Cortés [
4]. The pseudocode of this algorithm can be found in Algorithm 1. This algorithm combines the well-known RRT* algorithm with filtering of the randomly sampled configuration by the relative cost with respect to the nearest configuration. It was chosen due to the stated benefits in complex cost spaces in [
4].
The configuration space is modeled as with three spacial coordinates in the UTM frame and three Euler angles. The UTM frame is chosen to have a Cartesian coordinate system, which also supports the data sources described below. The roll and pitch angles are limited to account for the flight performance of the UAV. The course angle is defined in the mathematical positive direction from the x-axis, against the standard definition in aviation. It is also defined in the interval between and .
For path planning, the UAV is considered to be a point of mass. Therefore, all obstacles have to be expanded in size to account for the Flight Geography (FG), Contingency Volume (CV) and Ground Risk Buffer (GRB). This is discussed in more detail during the data pre-processing.
Additionally, the UAV is modeled to be quasi-stationary. In order to abstract the algorithm proposed from any platform, the algorithm does not account for most dynamic behaviors. For example, it is assumed that the UAV has the same true airspeed, no matter the maneuver. In curved flights, it is assumed that the UAV instantly acquires the necessary bank angle. For changes to the path angle, a constant angular velocity with an instantaneous increase or decrease in the load factor as a cause is assumed. These assumptions may not reflect the nature of the UAV perfectly but are considered useful for simple and vehicle-independent path planning.
According to the SORA process, SAIL 3 operations are only possible for a Ground-Risk Class (GRC) below or equal to 4 and residual Air-Risk Class (ARC) below or equal to b. Since ARC-a is not reasonable, the operation has to take place below 500 ft above ground level (AGL) in uncontrolled airspace over rural airspace. Depending on the encountered population density, ground risk mitigations (e.g., M1 and usage of a parachute for M2) need to be applied. The threshold for that is 300 inhabitants per square kilometer or a cluster of residential buildings. This, however, is just an interpretation of the regulation. Actual decisions of the competent authority may differ.
Another aspect considered to assess the risk imposed to the ground area is the ground infrastructure. While it may be considered relatively risk-free to fly over agricultural land, flights over power plants, prisons or biosafety level 4 laboratories have to be avoided. Aided by a list of different infrastructure types relevant to risk mitigation by the Federal Ministry for Digital and Transport (BMDV) of Germany [
9], a set of areas deemed too risky for operations is set up. Collisions are determined based on the horizontal coordinates alone. Flying beneath or above airspaces is not supported in this work.
The cost function is set up as an integral of the cost, as in [
4]. Four cost factors will be considered: height, number of overflown people, load on the propulsion system and flight over specific ground areas. This encourages paths at reasonable heights over sparsely populated regions with the least possible power draw, while also minimizing the flight over certain ground infrastructure types. The path cost function
and configuration cost function
are defined as follows (see [
4]). Here,
L represents the length of path
.
In order for the T-RRT* algorithm to work, the path cost function has to be linear on the path. Otherwise, adding the costs of two path segments would not represent the cost of the joined path. Furthermore, to effectively and comprehensibly weigh the different path factors, they should scale similarly with the path length and should be normalizable. The following configuration cost functions are chosen.
Here, is the proposed flight height, is the width of the operational volume, is the population density, is the flight path angle, is the aerodynamic efficiency, and is 1 inside of penalized areas (e.g., motorways, railways, power lines, nature reserves) and otherwise 0. The propulsion system cost function is derived from linearized power consumption, yielding proportionality to the thrust required.
Normalization is achieved with the following values, restricting the normalized cost functions to
.
Without hyper-parameter optimization the following weights are chosen:
The definition of the configuration cost function is analogous to [
5], especially with the normalization carried out.
As shown above, three different types of data are required: terrestrial surface data, population density data and infrastructure data. The data were gathered specifically for the study case explained in
Section 3.
For the surface data as ground elevation measurements, the digital surface model (’Digitales Oberflächenmodell’ (DOM)) is used. It is provided by each state separately [
10,
11]. The DOM data for Thuringia and Saxony–Anhalt gives grid-based information of surface elevation (elevation of vegetation, buildings, terrain, etc.) for a certain area in UTM coordinates (zone UTM32U). Since the UAV may deviate from the planned path to the extent of operational volume, the ground elevation of that area has to be considered for ground collision avoidance. In order to do so with reasonable computation time, a pre-processing step with respect to the width of the operational volume
is executed. For a given set of coordinates, the processed elevation is equal to the maximal elevation in a circle with radius of
around that coordinate. This ensures staying well-clear of the ground even when deviating from the path inside of the operational volume. In order to reduce the size of the elevation data, the grid resolution of processed data is set to 20 m.
For the population density data, the 2019 European Commission global human settlement layer is used [
12]. Here, data from 2015 in a grid of 250 m are used. For each square, the number of inhabitants in that 0.125 square kilometer area is given and has to be converted to inhabitants per square kilometer. Since the georeference is given in latitude and longitude, it has to be converted into UTM32U coordinates. To account for the width of the FG, CV and GRB in the obstacle calculation, the processed population number for each 250 m by 250 m square is set to be the highest of the neighboring squares reachable with half of the width of the FG, CV and GRB, as shown in
Figure 1. The orange squares are used together with the green square to calculate the processed population density of the green square. This results in an over-estimate of the overflown population and thus is conservative.
The ground infrastructure and type of ground area is derived from the Web Map Service (WMS) of the ‘Digitale Plattform Unbemannte Luftfahrt (dipul)’ by the Federal Ministry of Digital and Transport of Germany. The WMS enables generation of the image of a map showing the areas covered by the relevant infrastructure and ground areas. For both sets of infrastructure, an image is generated and is interpreted as grid data referenced in latitude and longitude. These images are converted to 2D Boolean arrays indicating the presence of an infrastructure element at the given grid point based on a color comparison with the background color. After converting the georeference to UTM32U, similar processing like the height processing is executed. Here, a grid point is considered covered if any grid point in the vicinity is covered. The vicinity for the obstacles includes both the operational volume and the GRB; for the risk calculation, only the operational volume is considered.
The connector function is set up such that the path between two configurations consists of three parts: an arc with constant bank angle and constant change in the path angle, a straight line in 3D space, and another arc like the first. The boundary conditions are the path and the bank and course angles of the start and end configurations. Since the initial and goal configuration of the planning problem are set to have zero bank, the first arc is not possible (either just not defined or because the problem would become underdefined).
Figure 2 shows the horizontal path components of both cases.
In contrast to other RRT or RRT* algorithms, the goal configuration is a specific configuration rather than an arbitrary configuration inside of a goal region. Since the configuration space may be rather big, this ensures that a goal configuration at a given location is found. Relying on chance may result in no configuration being sampled in the vicinity (horizontal position error smaller than 50 m) of the specified goal configuration.
Collision detection relies on checking configurations on a path piece-by-piece since the underlying data are given in a grid format rather than a shape file. Cost calculation is done in the same fashion. To reduce the computation time, both cost calculation of a path segment and collision detection are executed at once. Therefore, in contrast to the suggestion in [
4], no additional collision check function is needed.
To accelerate the collision check and path cost calculation, grid data are reduced to the segment needed based on a rectangular boundary around the query points. Therefore, the nearest neighbor interpolation only uses data points relevant to the calculation at hand.
The path planning problem is considered to be a mostly horizontal problem. This is due to the size of each dimension of the configuration space. Because of the stated problem of long-distance flights of multiple kilometers and the small altitude spectrum, horizontal position and course are the main variables of the path planning problem, and all other variables either describe dynamics of the path or are used to optimize the horizontal path in the vertical domain. Therefore, the nearest neighbor (see Algorithm 1) is calculated regarding the horizontal position and the course angle. For calculation of the set of near configurations (see Algorithm 1), the three-dimensional position and the course angle are used.
Algorithm 1 Transition-based RRT* (T-RRT*) [4] |
while do if then for do if then end if end for end if end while return
|
As explained by Devaurs, Simeon and Cortès, a spatial search radius in the form of a ball is assumed for determining the set of near nodes. Due to its shrinking, problems for the expansion of the tree arise. From a certain number of generated nodes, the ball used has a smaller radius than the distance
used for the expansion. Therefore, a new node at a distance of
to the nearest node cannot be connected to the tree. To address this issue, the parameter
is adjusted over the run time as follows, with the initial maximal step size
, a parameter
as defined in [
4], the number of generated nodes
n, and the number of dimensions used for the ball
d (here: 3).
Another difference from the original algorithm is the reduction of inspected nearby nodes for the rewiring. If no feasible path from a near configuration to a new configuration exists, it is assumed that the path from to is also not feasible. This is meant to improve the execution time of the algorithm.
Due to the random nature of the algorithm, three inefficiencies emerge from the algorithm, which we try to remove. The first two are depicted in
Figure 3 and deal with the combination of the sampled course and bank angle. In
Figure 3a, one can see that the bank angle is in the wrong direction for the most efficient turn. In
Figure 3b, the turn can be made without flying a full circle first. Both inefficiencies are solved by placing a new node at the red point and using this instead if the new path is valid. Invalidity can arise from violations of the maximum path angle or changes to the path angle.
The third inefficiency can be seen in
Figure 4, where the path angle is suboptimal. This optimization is only applied as post-processing of the final path.