Generation of Dynamically Feasible Window Traversing Quadrotor Trajectories Using Logistic Curve

This work considers dynamically feasible point-to-point trajectory generation problem for a quadrotor flying through a constrained planner region referred as window (narrow gap). A four parameter logistic (4PL) curve is investigated as a prospective candidate and closed-form conditions are derived on the 4PL design parameters to satisfy the window traversability and vehicle dynamic feasibility constraints. A hierarchical approach first computes a dynamically feasible design parameter set for decoupled trajectory components and then obtains a solution set satisfying 3-D axis-coupled window traversability conditions. Numerical examples with a comparative study are presented to validate the analytical findings that highlight the quick computation of the dynamically feasible window traversing trajectories in complex window scenarios.


Introduction
Quadrotors are widely used in constrained environment operations such as search and rescue, structure inspection, and drone racing competitions due to their agile and fast maneuverability [1][2][3][4]. Pertaining to these applications, a quadrotor often requires to fly through arbitrary tilted windows, and hence, the window traversal problem is gai-ning interest among UAV researchers [5][6][7][8][9][10][11]. From a trajectory planning perspective, vehicle dynamic and input feasibility constraints, end-point reachability in a given time, and window traversal are the key challenges that a prospective planner should address. Rapid computation of the multiple trajectories is desirable for online operation.

Literature Review
A variety of approaches have been proposed for generating point-to-point dynamically feasible quadrotor trajectories. A hierarchical spatial and temporal planning approach generates the spatial paths from the geometric curves (lines [13], polynomials [14], splines [15]) in the first step and then time parameterized them to satisfy the vehicle dynamic and input constraints. A direct optimization based approach formulates the trajectory generation problem as an optimal control problem subjected to vehicle dynamics and input constraints [16][17][18]. An explicit numerical optimization based approach for a fixed-wing UAV was proposed in [19] where obstacle avoidance is handled by using policy iteration for a Markov decision process. The numerical optimization approaches offers a natural framework for constrained path generation but suffers from computational complexity. A third approach uses differential flatness property to map the trajectory planning problem into a lower dimension curve-fitting problem where each curve represents the differentially flat quadrotor outputs: three trajectory components and a yaw angle [20][21][22]. The differential flatness approach based methods typically use time parameterized polynomial curve due to its simplicity in imposing the input feasibility constraints and pose the trajectory generation problem as a constrained optimal problem in the curve design parameter space.
Quadrotor window traversal problem from the perception and control perspective was addressed in [5]. Therein, a window traversing ballistic trajectory with constant control inputs was planned with a polynomial time approaching trajectory [22] which brings the quadrotor from its hovering position to the initial pose (position and control inputs) of the ballistic trajectory. Robust estimation, control and planning for the window traversal problem was considered in [6] wherein a collision-free orientation at a point on the window plane was imposed for generating a feasible polynomial time trajectory. A combination of deep learning and guidance theory was used in [7] for the window traversal. Therein, a robust estimate of the window center was obtained by a convolution neural network based algorithm, and quadrotor heading and roll commands were generated for flying through the window center along the line perpendicular to the window. The work of [8] used a deep network-based perception algorithm to estimate the window position and defined two waypoints such that the line connecting the waypoints passes through the window. Subsequently, the linear interpolation of all window waypoints was given as a reference path to a perception aware model predictive controller [23] for finding the feasible trajectory. An endto-end reinforcement learning approach was proposed in [9] wherein the geometric tracking controller was replaced by a neural network-based policy controller and the trajectory planning of [5] was used for generating the feasible window traversing trajectories. The works of [5][6][7][8][9] primarily focus on the perception and control approaches, and generate a feasible trajectory passing through a fixed point on the window plane. This specific window point traversal approach restricts the number of solutions and in case of arbitrary tilted windows may require complex window traversing approaches.
Quadrotor trajectory generation in a known window scenario was addressed in [24]. Therein, a sequence of controllers namely, hover control, 3-D path following, and attitude control, was used to generate a sequence of controller parameterized segments, each defined with controller gains and a goal state. The problem of window traversal for a quadrotor with a cable-suspended load was addressed in [10] wherein, orthogonal collocation based optimization method was used for generating the feasible trajectory. In [11], dynamically feasible motion primitives were generated from the time parameterized polynomial curves and window traversability was checked by taking the intersection of the ellipsoid-shaped vehicle orientation with the window. Differential flatness based motion primitives generation is computationally inexpensive [22] and in case of window traversal, can cover the whole window plane rather than a point. Motivated from the motion primitive based approaches, this work explores the possibility of generating multiple feasible trajectories quickly by reducing the design parameters space with simple closed-form dynamic feasibility and window traversal conditions.

Contributions
In contrast to the existing literature, this work investigates the four parameter logistic (4PL) curve as a prospective candidate for the window traversal problem with given initial and final positions, arbitrary oriented window, and vehicle dynamic and input constraints. The 4PL curve based smooth path planning tool was recently introduced in [25] and applied in obstacle cluttered, passages, airspace restrictions, and parallel parking scenarios [26]. The 4PL curve has shape flexibility with just four design parameters and has significant computational advantages over other smooth curves (e.g. Bézier curves, B-splines, etc.) [25].
As the major contribution, the problem of [27] is revisited for arbitrary oriented static windows and a corridor based approach is proposed to determine the window traversability of 4PL trajectories. Vehicle input feasibility conditions (respecting speed, acceleration, and jerk limits) for the 4PL trajectory are derived in closed-form and a hierarchical trajectory planning method is proposed that generates dynamically feasible trajectories passing through the window. Performance of the proposed approach is tested in simple and specific window scenarios with extreme orientations and a comparative study is carried out to highlight the fast-computation capability.
The remainder of this paper is organized as follows: The window traversal problem is described in Section 2. Basics of the 4PL trajectory are reviewed in Section 3. The proposed trajectory generation approach with input feasibility and window traversal conditions is described in Section 4. Numerical examples including a comparative study with an optimization approach [20] are presented in Section 5. Section 6 provides the concluding remarks.

Problem Description
This section discusses the relationship between quadrotor motion and time parameterized curve based dynamic feasibility trajectories and states the window traversal problem. For details on the quadrotor working principles, the interested readers are referred to [28].

Quadrotor Motion in Terms of Time Parameterized Curves
Consider a quadrotor in an inertial frame with orthogonal axes (X i , Y i , Z i ) and a body frame with origin at the quadrotor center of mass, two body axes X b and Y b in the direction of vehicle front and left side, and the third axis Z b normal to the vehicle plane as shown in Fig. 1. The quadrotor is modeled as a rigid body with six degrees of freedom where three degrees of freedom describe the linear translation motion of the quadrotor center of mass x = [x, y, z] T in the inertial frame and the remaining three describe the vehicle attitude in the body frame. Assume that the quadrotor is sufficiently agile and equipped with an autopilot such that the thrust (mass-normalized force) f and angular rates ω(ω x , ω y , ω z ) can be considered as control inputs. The rigid body quadrotor motion is governed by [22] x = Re 3 f + g (1) where R is a proper orthogonal rotation matrix that converts a body frame vector to an inertial frame vector, g = [0, 0, −g] T with g representing the gravitational acceleration, ω × is a skew-symmetric matrix of vehicle angular rates ω given as Fig. 1 A quadrotor schematic in an inertial frame (X i , Y i , Z i ) with a mass normalized thrust f along the body fixed axis Z b and angular rates ω(ω x , ω y , ω z ) in the body frame (X b , Y b , Z b ) and e 3 = [0, 0, 1] T . Using Eqs. 1 and 2, the control inputs (f, ω x , ω y , ω z ) in terms of second and third derivatives of the trajectory can be deduced as where the absence of ω z indicates that the yaw motion can be decoupled from the translation motion and hence ω z = 0 (constant yaw ψ) is considered in this work. Also, as discussed in [20], the vehicle dynamics and inputs of the quadrotor can be written in terms of four independent flat outputs x, y, z, ψ (yaw) and their derivatives. Hence, for dynamically feasible trajectory planning, typically the vehicle motion x can be decoupled in each axis separately by considering thrice differentiable time-parameterized curves in each axis, and the derivatives of curves (velocity v =ẋ, acceleration a =ẍ, and jerk j = . .. x ) are used to obtain the control inputs from Eqs. 3 and 4. Also, the bounds on the inputs (thrust and angular rates) can be considered in terms of the trajectory acceleration and jerk bounds [11].

Problem Statement
Consider a window traversal problem with given initial and a planar static window W as shown in Fig. 2. Without loss of generality, assume that the window has four vertices W 1 (x 1 , y 2 , z 4 ), W 2 (x 2 , y 1 , z 2 ), W 3 (x 3 , y 4 , z 3 ), and W 4 (x 4 , y 3 , z 1 ), such that x 1 ≤ x 2 ≤ x 3 ≤ x 4 , y 1 ≤ y 2 ≤ y 3 ≤ y 4 , and z 1 ≤ z 2 ≤ z 3 ≤ z 4 . The body of the quadrotor is bounded by a sphere with center at x and radius r (depends on the quadrotor size) which can traverse through the window. With this, the concerned window traversability problem can be formally stated as follows: Find feasible quadrotor trajectories (t) (Input feasibility) satisfy the given axis-wise bounds on velocity, acceleration and jerk (v bnd , a bnd , j bnd ), that is, for all t ∈ [t i , t f ] which represent the vehicle input constraints.

(Window traversal) passes through the window W
without colliding with the window edges, that is, The quadrotor is bounded in a sphere of radius r and the feasible trajectory (green line) connects the end points i and f while satisfying the input feasibility and window traversal constraints W B(r) represent the window plane shrunk by the quadrotor sphere radius r.
It is desirable that quadrotor holds position at f , that is, lim t→∞ (t) = f which could be considered simply as a safe terminal (basis) state in a broader receding horizon setting. Discussion on this receding horizon setting is out of the scope of this work and the interested readers are referred to [12] for details.

Basics of the 4PL Trajectory
A generic 4PL trajectory in 1-D is defined as where t i , p i , and p f represent the initial time, and initial and final values of trajectory, respectively, with t ∈ [t i , t f ]. Two design parameters, B > 3 and C > t i , that control the shift and slope of the 4PL trajectory. From Eq. 8, the 3-D 4PL trajectory components are given as Useful properties [25,27] of the 4PL trajectory are as follows: 1. End-point reachability: From Eq. 8, the 4PL trajectory starts from the p i at time t = t i and reaches p f asymptotically. For a given t f , a final position reachability with an acceptable error can be imposed as

Continuous velocity, acceleration, and jerk variations:
The first, second, and third derivatives of Eq. 8 with respect to time, give component-wise velocity, acceleration, and jerk expressions for the 4PL trajectory as (15) respectively which have continuous variations for B > 3. 3. Position hold at the final position: From Eqs. 12-15, it can be deduced that which corresponds to constant force and zero angular rates and hence, position hold at the final point for t > t f . 4. Monotonicity From Eq. 13 it can be seen thaṫ and hence, the 4PL trajectory components vary monotonically with respect to t. 5. Confinement region for the 4PL trajectories: As discussed above, the 4PL trajectory components vary monotonically with time and hence, the 4PL trajectories always confined in a rectangular box region defined as

Proposed Feasible Trajectory Generation Method
This section provides vehicle input feasibility and window traversal conditions for the 4PL trajectory, and proposes a feasible trajectory generation approach, subsequently.

Vehicle Input Constraints
This subsection derives input feasibility conditions satisfying Eqs. 5, 6, and 7, respectively for the 4PL trajectories.

Bounded Velocity
Equating Eq. 14 to zero gives Imposing the bounded velocity constraint of Eq. 5 on Eq. 19 leads to

Acceleration Constraint
Now, the two time instants corresponding to the componentwise trajectory acceleration extrema can be computed by equating Eq. 15 to zero as which from Eq. 6 gives the bounded acceleration conditions where,

Bounded Jerk Constraints
For jerk extrema, differentiating Eq. 15 with respect to t and equating to zero result in where, Three roots {k ji } 3 i=1 of Eq. 24 can be obtained by using Cardano's method [29] on the depressed cubic form of Eq. 24 which is not presented here for the sake of brevity. Substituting k j 1,2,3 in Eq. 15 gives three jerk extrema Using Eqs. 7 and 25, conditions for the bounded jerk can be obtained as wherê

Corridor-Based Window Traversal
Since the window is not assumed to be aligned with the inertial axes, the window traversibility conditions are coupled across the axes. To avoid the need for an exhaustive search through all combinations of axis-by-axis trajectories, this section proposes an approximation of the problem that admits an axis-by-axis search.
The key idea here is to define three axis-aligned rectangular cuboid corridors passing through the window and ensure trajectory traversal through at least one of them, that is, (28) where, C x , C y , and C z represent the x, y, and z corridors, respectively, which are shown by the dashed boxes in Fig. 3a. The monotonic property (given by Eq. 17) of the 4PL trajectory is used to obtain the corridor traversal conditions which also guarantees that a corridor traversing 4PL trajectory cannot loop back outside the corridor and hence traverses window without collision. Without loss of generality, traversal conditions for C x and hence, the window are derived in Proposition 1.

Proposition 1 Consider a rectangular window W and an
x−axis aligned corridor C x passing through the window as shown in Fig. 3 by the solid red line and dotted black cube, respectively. Without loss of generality assume that window has four vertices (x 1 , y 2 , z 4 ), (x 2 , y 1 , z 2 ), (x 3 , y 4 , z 3 ), and (x 4 , y 3 , z 1 ), such that where r represents the radius of the quadrotor boundary sphere. A 4PL quadrotor trajectory governed by Eq. 8 is guaranteed to pass through the corridor and through the window for C y ∈ (C wnd xy ,C wnd xy ) where Proof The corridor C x as defined by Eq. 29, has rectangular projections in the decoupled planes (X − Y and X − Z) as shown in Fig. 3 by the dotted boxes. Corridor traversal is achieved by ensuring the traversal of rectangle projections by the respective 2-D 4PL trajectory components. These 2-D 4PL trajectory components are obtained by using Eq. 8 of the 4PL trajectory that leads to an inverted expression Equating the inverted expressions of the two 4PL trajectory components, one trajectory component can be reparameterized with respect to the second one. Accordingly, from Eqs. 9, 10, 11, and 36, the X − Y and X − Z 4PL trajectory components can be written as The traversal of the y(x) and z(x) in the X − Y and X−Z corridor projections, respectively, guarantees window traversal as shown in Fig. 3 by the solid green lines. Due to the monotonic property of the 4PL curve, the 2-D trajectory components have monotonic variations in the decoupled  Table 1) and hence, only two conditions (the blue arrows in Fig. 3c and d) need to be imposed for each plane projection to ensure the traversal. Using Eq. 37, Similarly, using Eq. 38, the traversal conditions for the X − Z corridor projection are obtained as A set of design parameter satisfying above equations corresponds to the corridor traversing 4PL trajectories. As shown in Table 1, both 2-D trajectory components have monotonic variations and hence a corridor traversing trajectory cannot loop back outside the corridor which guarantees window traversal.
Remarks on window traversal using the corridor approach are as follows: 1. Based on i and f values, and respective monotonic variations as discussed in Table 1, the traversal conditions for C x are listed in Table 2. 2. Similar conditions can be imposed for C y and C z and check independently for the window traversal, where C y and C z are defined as

Computation of Solution Design Parameter Set
A hierarchical method for computing feasible solution set is described in Algorithm 3 and its block diagram is shown in Fig. 4. Here, the first stage considers final point reachability and input feasibility (Algorithm 1) followed by the window traversal (Algorithm 2). Details of the algorithms are given as follows:

Input Feasibility and Final Point Reachability
Algorithm 1 provides a design parameter set satisfying input feasibility and end-point reachability constraints for a 4PL trajectory component.
Step 2 and 3 in Algorithm 1, sample a B ∈ (3, ∞) and compute a lower bound on C such that a 4PL trajectory component generated with the sample B and a C greater than the lower bound satisfy all input feasibility conditions altogether. This lower bound is given as  (Step 6). This procedure is shown in Fig. 4 by the light blue box which is repeated for generating the desired number of samples. Typically sample B is in a range of a few points increasing from 3. However, to minimize computation, it is possible to pick just a single value of B and still find many solutions. This trade will be explored further in the comparative study in Section 5.4. Algorithm 1 is used independently on the x, y, and z axis components to obtain the feasible sets f v , f a , and f j are the right hand side terms of Eqs. 20, 21, and 26, respectively

Feasible Window Traversing Set
For sake of simplicity, Algorithm 2 only considers the window traversal through C x corridor for x i < x f , y i < y f , and z i < z f which is shown in Fig. 4 by the light cyan box. Window traversal through C y and C z corridors can be checked by changing the order of the input set in Algorithm 2. Also, any initial and final position conditions can be addressed by imposing respective corridor traversability conditions from Tables 1 and 2.
In step 2 to 5, Algorithm 2 selects three samples (B x , C x ,C x ) ∈ S dyn x , (B y , C y ,C y ) ∈ S dyn y , and (B z , C z ,C z ) ∈ S dyn z which correspond to multiple 4PL trajectories satisfying input feasibility and end-point reachability constraints for all C x ∈ [C x ,C x ], C y ∈ [C y ,C y ], and C z ∈ [C z ,C z ]. Steps 6 and 7 of Algorithm 2 check if the X − Y 4PL trajectory passes through the projection of the corridor into the X-Y plane and provides window traversing limits for C y . Step 8 and 9 do the same for the X − Z plane. In summary, all 4PL trajectories with (B x , C x , B y , C y , B z , C z ) where C y ∈ (C wnd xy ,C wnd xy ) and C z ∈ (C wnd xz ,C wnd xz ) pass the window through the corridor C x . However, these window traversing sets do not guarantee the input feasibility and end-point reachability in y and z axis.
In steps 10 to 12, the window traversal limits are combined, by intersection, with the respective dynamic feasibility limits [C y ,C y ] and [C z ,C z ]. If any feasible trajectories remain (Step 13), meaning a set of parameters satisfying input feasibility, end-point reachability, and window constraints. The corresponding parameter set is added to the set of feasible solutions S f es in Step 14. At the very end Steps 21 to 25 convert the set of intervals to set of 6−tuple parameter options by grid-based sampling.

Proposed Hierarchical Approach
In the first stage, Algorithm 3 initiates Algorithm 1 to compute the feasible design parameter sets S dyn x , S dyn y , and S dyn z in the decoupled axis (steps 1 to 3) that correspond to 4PL trajectory components satisfying component-wise input feasibility and final point reachability constraints. In steps 4 to 6, these sets are given to Algorithm 2 for corridors C x , C y , and C z with rearranged order that provides the feasible window traversing sets S x , S y , and S z , respectively. The last stage gives the solution set S by taking the union of all window-traversing sets (step 7). All design parameter pairs in S satisfy the end-point reachability, input feasibility, and window traversal constraints and hence multiple dynamically feasible window traversing trajectories can be generated simultaneously using Eqs. 9, 10, and 11 by choosing samples from S.

Numerical Examples
This section tests the performance of the proposed approach in three cases and provides a comparative study. The initial and final positions are at i(0, 0, 0) and f (5,3,3) which are shown in Fig. 5 by the blue and red "+" markers, respectively, and t ∈ [0, 10]. The dynamic feasibility constraints of |v bnd | = 5 m/s, |a bnd | = 10 m/s 2 , and |j bnd | = 20 m/s 3 are considered. Window and computation data for each case is provided in Table 3. for C x ∈ (C x ,C x ) do

4:
for (B y , C y ,C y ) ∈ S dyn y do 5: for (B z , C z ,C z ) ∈ S dyn z do 6:

Case 1: Trivial Window Passing Scenario
A simple scenario with a large window is considered such that the all trajectory satisfying the final position reachability and input constraints satisfy the window traversal conditions. The window data is provided in Table 3 and plotted by the solid red rectangle in Fig. 5a. As the window is parallel to the Y −Z plane, only C x corridor exists for the given case which is plotted by the dashed black box in Fig. 5a. The proposed approach takes average 25 ms to provide the dynamically feasible design parameter set and provides 11540 solutions in total 104 ms. Ten such window traversing solutions are plotted by the solid green lines in Fig. 5a. Figure 5b shows that all trajectory components reach their final points within the = 0.01 error band at the desired time t f = 10 and hence satisfy the final point reachability constraint. The continuous bounded velocity, acceleration, and jerk profiles of the trajectory components are plotted in Fig. 5c, d, and e, respectively that satisfy the vehicle input constraints. The same setup is tested for t f = 5 s where the proposed approach reports no solutions in 15 ms due to the vehicle input infeasibility.

Case 2: Limited Solution Scenario
For exhaustive window traversal search, a window slightly bigger than the quadrotor is considered. Due to the narrow window size, the number of solutions reduced to six solutions and the proposed approach took 81 ms to find them. One such window traversing trajectory is plotted in Fig. 6a by the solid green line. The trajectory points are expanded by a sphere of r = 0.045 m radius and plotted by the green spheres in Fig. 6a which demonstrates that a finite dimension quadrotor can traverse the window collision-free. As shown in Fig. 6b, all trajectory components reach the end points in the given final time. Also, the generated trajectory has smooth and bounded velocity, acceleration and jerk variations as plotted in Figs. 6c, d, e, respectively.

Case 3: General Window Scenarios
Three scenarios (Case 3a, 3b, and 3C) with three arbitrary oriented windows are considered to test the viability of the proposed approach in a general window scenario. All three windows are shown by the solid red rectangles in Fig. 7a and their data is provided in Table 3. The proposed approach results 518, 1060, and 2858 solutions in 91, 93, and 104 ms, for Case 3a, 3b, and 3C, respectively. Corresponding dynamically feasible window-traversing trajectories are plotted by the green, cyan, and gray lines, respectively in the Fig. 7. Figure 7a, b, and c show that the generated trajectories satisfy the end-point reachability constraint. Also, the velocity (Fig. 7e, f, and g), acceleration (Fig. 7h, i, and j) and jerk (Fig. 7k, l, and m) profiles of the generated trajectories have continuous bounded variation that satisfy the vehicle input feasibility. As shown in Fig. 8, all subcase trajectories maintenance a minimum distance grater than r = 0.045 m from window edges that validate window traversal without collision.

Comparative Study
The proposed approach is compared with a polynomial trajectory based approach [20] in randomly generated 1000 scenarios. The initial and final positions for each scenario are sampled such that x i ∈ [0, 1], y i ∈ [0, 1], z i ∈ [0, 1], x f ∈ [4,5], y f ∈ [2,3], and z f ∈ [2,3]. Final position reachability with = 0.2 and zero velocity and acceleration at both ends are imposed. For windows traversal, random X−corridors with centroids at (i + f )/2 and dimensions between 0 to 1 m are generated. Integral of square trajectory snap is considered as a cost and feasible solutions are generated using both approaches. For the polynomial trajectory approach, one corridor constraint is imposed at both corridor ends (for more details, please see [20]) for corridor traversal. Time to compute a solution with respect to minimum cost is plotted in Fig. 9 by the red "+" markers for the polynomial approach in all scenarios which shows that the polynomial approach finds solutions for 997 scenarios in at least 5 ms per scenario. For the proposed 4PL approach, the sample set B = {4, 5, 6, 7} is considered first and using the empirical knowledge on the relation between 4PL jerk peak and snap value, a feasible trajectory with minimum peak jerk value is chosen from the obtained 4PL solutions. The cost of the chosen trajectory is computed numerically (MATLAB trapz function) for comparison. As shown in Fig. 9 by the green "+" markers, the proposed 4PL approach finds cost solutions in the approximate half time of polynomial approach with 172 fails and only a modest loss of minimum cost.
As discussed in Section 4.3.1, to exploit the minimum computation capability of the proposed approach, a sample set with only one B (B = {7}) value is considered. In this case, the computation time reduces significantly with comparable minimum cost and 352 fails, as shown in Fig. 9 by the blue "+" markers. The trade-off between solution existence and computational efficiency can be observed from Fig. 9 where the polynomial approach provides solutions in the maximum number of scenarios and the proposed approach generates solutions quickly with a modest loss of path quality. Comparative study: Trade-off between solution existence and fast computation. The proposed is tested in 1000 randomly generated scenarios where it finds solutions in less time as compared to the polynomial approach [20], with a modest loss of path quality and existence

Conclusions
This work derived the closed-form input feasibility and window traversability conditions for the 4PL trajectory and proposed a hierarchical quadrotor trajectory planning method for the window traversal problem. The input feasibility conditions are decoupled in each axis and the window traversal conditions are coupled in 2-D planes which targets a window region rather than a specific point. Using these simple conditions, the proposed hierarchical approach initializes with only three design parameters and reduces the search space after each step that decreases the computation cost. Numerical examples demonstrate that the proposed 4PL approach is capable of providing thousands of solutions in a fraction of second for an arbitrary oriented window. The detailed comparative study provides the tradeoff between the solution existence and fast computations, and highlights computational efficiency of the proposed approach in terms of fast computations for only modest loss of path quality.
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons. org/licenses/by/4.0/.