Next Article in Journal
Signal Quality Assessment of a Novel ECG Electrode for Motion Artifact Reduction
Next Article in Special Issue
Quadcopter UAVs Extended States/Disturbance Observer-Based Nonlinear Robust Backstepping Control
Previous Article in Journal
SERS Gas Sensors Based on Multiple Polymer Films with High Design Flexibility for Gas Recognition
Previous Article in Special Issue
Deep Reinforcement Learning for End-to-End Local Motion Planning of Autonomous Aerial Robots in Unknown Outdoor Environments: Real-Time Flight Experiments
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Optimal Motion Planning in GPS-Denied Environments Using Nonlinear Model Predictive Horizon

Department of Mechanical Engineering, University of Alberta, Edmonton, AB T6G 1H9, Canada
*
Author to whom correspondence should be addressed.
Sensors 2021, 21(16), 5547; https://doi.org/10.3390/s21165547
Submission received: 29 June 2021 / Revised: 30 July 2021 / Accepted: 16 August 2021 / Published: 18 August 2021

Abstract

:
Navigating robotic systems autonomously through unknown, dynamic and GPS-denied environments is a challenging task. One requirement of this is a path planner which provides safe trajectories in real-world conditions such as nonlinear vehicle dynamics, real-time computation requirements, complex 3D environments, and moving obstacles. This paper presents a methodological motion planning approach which integrates a novel local path planning approach with a graph-based planner to enable an autonomous vehicle (here a drone) to navigate through GPS-denied subterranean environments. The local path planning approach is based on a recently proposed method by the authors called Nonlinear Model Predictive Horizon (NMPH). The NMPH formulation employs a copy of the plant dynamics model (here a nonlinear system model of the drone) plus a feedback linearization control law to generate feasible, optimal, smooth and collision-free paths while respecting the dynamics of the vehicle, supporting dynamic obstacles and operating in real time. This design is augmented with computationally efficient algorithms for global path planning and dynamic obstacle mapping and avoidance. The overall design is tested in several simulations and a preliminary real flight test in unexplored GPS-denied environments to demonstrate its capabilities and evaluate its performance.

1. Introduction

Throughout the last century, injuries and fatalities in subterranean environments have remained a major concern around the world. For example, mine workers are vulnerable to hazards such as cave-ins, underground flooding, and gas explosions. Unmanned vehicles can play a key role in performing both tedious and dangerous tasks, for instance air quality sampling, tunnel inspections, and search-and-rescue missions. A flying drone is a particularly attractive platform for underground operations due to its abilities to move quickly, traverse any terrain, navigate through tight spaces, and capture data from any angle. Recent advances in robotics have motivated research into designing novel path planning approaches, allowing the vehicle to plan safe paths and navigate through previously unknown environments.
Path planning is a computational problem to generate and follow a collision-free trajectory from one point to another [1]. It has many applications, such as robotic surgery [2], driverless cars [3], automation [4], and mining [5]. An extensive amount of research has been conducted in the field of path planning for autonomous vehicles [3,6]. However, most of the presented approaches provide non- or sub-optimal solutions and do not account for the dynamics of the vehicle, instead treating it as a kinematic model with velocity inputs [1], for instance a unicycle or kinematic car [7]. Moreover, navigating through dynamic and unknown environments is a challenging task as it requires safe navigation around both static and dynamic obstacles, which adds computational load for the onboard computer of the autonomous vehicle. Nonlinear Model Predictive Control (NMPC [8]) is an attractive methodology to address the above-named challenges, since it is capable of predicting optimal trajectories, accounts for the dynamics of the plant, and supports hard state constraints which can be used to model either static or dynamic obstacles.
The goals of this paper are twofold. The first goal is presenting the design of a local path planning approach and applying it to a multi-rotor drone. The nonlinear dynamics of a drone makes it an excellent test candidate for this work. The path planning approach is based on recent work by the authors [9]. It combines a variant of NMPC, named Nonlinear Model Predictive Horizon (NMPH), which employs the Feedback Linearization (FBL) technique [10,11] to reduce the non-convexity of the optimization problem and thus provide faster solutions for the path planning problem. NMPH provides feasible solutions, generates smooth and collision-free paths, supports moving obstacles, is able to run in real-time, and reduces battery draw by minimizing abrupt drone motions. The second goal is developing a global motion planner for the drone to explore a subterranean environment. This operates by building a map of the environment and guiding the vehicle to unexplored areas within this map using a graph-based planner. The global motion planner is a design that integrates the local path planner design from the first goal with a graph-based planner named GBPlanner [5]. We propose a choice of computationally efficient algorithms for obstacle mapping and avoidance, plus robust path guidance. A block diagram of the proposed global motion planner design is shown in Figure 1.
The contributions of this work are as follows:
  • A recently proposed trajectory generation algorithm (NMPH) is used for local path planning of the drone. The NMPH is integrated inside the global motion planner and produces optimal local trajectories for the drone vehicle in real-time.
  • A methodological two-layer global motion planner design is proposed. The first layer utilizes a graph-based planner to generate terminal setpoints for the second layer, which uses the NMPH design to generate continuous optimal paths from the vehicle’s current pose to the terminal setpoint in real time.
  • Efficient algorithms for obstacle mapping and avoidance are proposed which produce models of static and dynamic obstacles used by the NMPH to generate safe and collision-free paths in a dynamically changing environment.
  • A robust path guidance algorithm is implemented to avoid the risk of NMPH getting trapped into a local minima.
  • The overall design is implemented using quadcopter and hexacopter drone dynamics, enabling navigation through unknown, dynamic and GPS-denied environments.
  • Several simulation results and a preliminary experiment are presented in this work to validate the proposed approach.
The remainder of this paper is organised as follows. Section 2 surveys literature related to our work. Section 3 presents the problem formulation of NMPH and its integration with feedback linearization. The two-layer global motion planner design and choices of algorithms to provide robust path planning and obstacle avoidance are discussed in Section 4. System dynamic models of and implementation of our design on rotary-wing drones are presented in Section 5. In Section 6, various simulation and experimental results are presented to evaluate and validate the proposed approach. Finally, concluding remarks are given in Section 7.

2. Related Work

Path planning for an autonomous robot in an unknown, GPS-denied and dynamically changing environment is a challenging task, since the robot needs to plan trajectories that consider the vehicle’s relative motion with respect to the surrounding obstacles. The path planning problem itself has been thoroughly studied in the literature and can be classified into three main categories: search-based, sampling-based, and optimization-based methods.
The search-based methods, a.k.a. grid-based, discretize the environment map into a graph of grids and use a search algorithm to find a collision-free path through these grids [6]. The two fundamental graph search algorithms are Breadth-First Search (BFS) and Depth-First Search (DFS) [12]. BFS is based on a first-in-first-out queue and can produce an optimal solution if the graph is uniformly weighted. Meanwhile, a last-in-first-out stack is used in DFS until the goal is reached, but no optimality is guaranteed.
One of the most widely used optimal searching algorithms for quickly finding the shortest path is the Dijkstra algorithm [13]. It directs the search towards unvisited nodes, then calculates and updates the shortest distances to the neighbor nodes from the root node. It keeps doing this until all the nodes are visited. Meanwhile, A* [14] is a commonly used algorithm for path planning. A* is an extension to Dijkstra algorithm, where it combines the cost search with heuristics that guide the search towards the goal point to achieve quicker searching performance. Many extensions of A* have been proposed, for instance Lifelong Planning A* (LPA*) [15] was developed to support changes in the environment without recalculating the entire graph, D* Lite [16] extends LPA* to re-plan the path while the robot is moving, Anytime Repairing A* (ARA*) [17] improves the optimality of the path by reusing suboptimal solutions from previous executions, and Hybrid-state A* [18] generates the graph based on the robot dynamics and thus searches for a dynamically feasible path.
The sampling-based methods are considered one of the main motion planning methods for robots with a high number of Degrees-Of-Freedom (DOF) [19]. In these methods, feasible robot poses are randomly sampled to form admissible paths. Probabilistic Road-Map (PRM) [20] and Rapidly-Exploring Random Tree (RRT) [21] are the fundamental sampling-based methods for motion planning. In PRM, a graph is built from random configurations and connected using a local planner (for instance Dijkstra’s searching algorithm for the shortest path between two configuration). PRM is complete but does not necessarily provide an optimal path solution. The RRT method is designed to randomly build a space-filling tree of vertices and edges inside a complex environment to find a feasible path to the goal node. However, the RRT-generated paths are not optimal [22]. Asymptotic optimality of paths can be achieved by employing various extensions of RRT, such as RRT* and Rapidly-Exploring Random Graph (RRG) methods [22]. RRG constructs a graph by connecting new samples with all nodes within a specified distance, then finding the shortest path using a local planner such as the Dijkstra algorithm. Meanwhile, RRT* searches the local nodes and finds the shortest path from the start to end nodes.
In general, there are three main limitations of the search- and sampling-based motion planning approaches. First, they do not account for the constraints imposed by the robot dynamics, even if some support kinematic and/or dynamic constraints (e.g., velocity and/or acceleration limits, respectively) [23]. A second limitation is consistency, since for several executions the algorithms may not produce identical trajectories between a start and goal configuration in the very same environment. Third, the computational load of these methods generally prevents them from being able to actively regenerate paths while moving between the start and goal configuration, which makes motion planning a difficult task in dynamic environments. However, some optimization-based methods can overcome these limitations, and the present work is directed at using optimization for planning safe, consistent, and time-efficient paths which also respect the dynamics of the vehicle. This last feature allows generating smooth trajectories for the robot vehicle, avoding the jerky motions and rapidly changing trajectories often generated by other planning methods [1].
The optimization-based approaches solve a constrained non-convex optimization problem to smooth the trajectory generated by other methods. Some optimization-based methods use cost-gradient information of a trajectory’s waypoints for refinement purposes, for instance CHOMP [24], Trajopt [25], and STOMP [26]. Other optimization-based methods are more closely related to optimal control, which focuses on system dynamics more than collision prevention. Examples include dynamic programming [27], LQR-based [28], and Model Predictive Control (MPC) [29].
One of the challenges of using an optimization-based path planning approach is accounting for obstacle constraints at each time instant the optimization problem is solved, especially for real-time implementations [30]. For a small number of obstacles, it has been demonstrated that finding local optimal trajectories is possible with MPC in outdoor environments [31]. Conversely, increasing the number of obstacles and considering 3D and dynamic environments makes the optimization problem much more computationally expensive to find feasible paths in real-time.
Our proposed formulation addresses the above challenges in two ways. First, it reduces the non-convexity of the optimization problem by combining the nonlinear plant model with a feedback linearization. Second, it maps obstacles as possibly moving volumes, and adaptively introduces state constraints modeling them in order to efficiently find local solutions. Our proposed design is integrated with a graph-based exploration planner [5] in order to provide global motion planning capabilities.

3. Nonlinear Model Predictive Horizon for Path Planning

The Nonlinear Model Predictive Horizon is a recently proposed methodology by the authors [9]. The purpose of NMPH is to generate optimal reference trajectories for closed-loop systems, and it will be implemented here for path planning. An overview of the NMPH algorithm is presented next.

3.1. NMPH Algorithm for Optimal Trajectory Generation

NMPH is an optimization-based reference trajectory generation technique for nonlinear closed-loop systems. Using a model of the nonlinear plant dynamics plus a feedback linearization control law, the NMPH creates optimal reference trajectories for a closed-loop system as shown in Figure 2. The generated trajectory is continuously updated by accounting for the current state of the system and path constraints within the optimization problem.
The purpose of the nonlinear control law within the NMPH is to reduce the nonlinearity of the system model, and consequently the non-convexity of the optimization problem. This leads to better performance in terms of reduced computational time and better convergence properties, enabling motion planning to be repeatedly computed in real time.
Consider a continuous-time nonlinear system controlled by a nonlinear control law,
x ˙ = f x , u
ξ = h x
u = g ( x , ξ r e f )
where x X R n x are the system states, u U R n u are the system inputs, and  ξ Ξ R n ξ are the system outputs (here 3D position and heading, such that Ξ X ). The reference trajectory is denoted by ξ r e f Ξ . The map f : X × U X represents the system dynamics and g : X × Ξ U is the control law that is used to make the system output follow the reference trajectory.
The optimization within NMPH uses Equations (1)–() plus assigned constraints to solve for the predicted system state trajectory x ˜ (which for us includes the predicted output trajectory ξ ˜ as a subset) and the estimated reference trajectory for the closed-loop system ξ ^ r e f , all while x ˜ converges to a desired stabilization setpoint x s s . The optimization calculations are summarized in Algorithm 1.
Within Algorithm 1, the optimization problem is solved over the finite time horizon τ [ t n , t n + T ] . The cost function is chosen to penalize the deviation of the predicted system state trajectory from the stabilization setpoint x s s , as well as the deviation of the predicted output trajectory ξ ˜ from the estimated reference trajectory ξ ^ r e f . The weighting matrices W x , W ξ , and  W T are chosen by the user to balance the effects of the optimization. The cost function consists of the stage cost function L x ˜ τ , ξ ^ r e f τ , which represents the cost of the problem over the time horizon, and the terminal cost function E x ˜ t n + T , which represents the cost of steady-state error. X X , U U , and  Z X are the state, control, and trajectory constraint sets, respectively. The inequality constraint O i x ˜ 0 is used to model p dynamic obstacles in the environment.
In Algorithm 1, the current system state x t n of the actual system is first measured or estimated, then a prediction of the reference trajectory ξ ^ r e f for an admissible control is obtained by minimizing the cost function over the prediction horizon while respecting the system model, control law, and other constraints. Finally, the predicted reference trajectory is sent to the closed-loop system for tracking, and the above process is repeated at the next sampling time instant, possibly with an updated terminal setpoint x s s .
Algorithm 1 (NMPH algorithm with stabilizing terminal condition x s s ).
1: Let t n , n = 0 , 1 , 2 , represent successive sampling times; set n = 0
2: while x s s x ( t n ) δ do
min x ˜ , ξ ^ r e f t n t n + T L x ˜ τ , ξ ^ r e f τ d τ + E x ˜ t n + T = min x ˜ , ξ ^ r e f ( t n t n + T x ˜ τ x s s W x 2 + ξ ˜ τ ξ ^ r e f τ W ξ 2 d τ + x ˜ t n + T x s s W T 2 )
(5) subject to x ˜ ( t n ) = x t n , (6) x ˜ ˙ τ = f x ˜ τ , u ˜ τ , (7) u ˜ τ = g x ˜ τ , ξ ^ r e f τ , (8) x ˜ τ X , u ˜ τ U , ξ ^ r e f τ Z , (9) O i x ˜ 0 , i = 1 , 2 , , p .
         if  x ˜ x s s  then (estimated trajectory converging towards terminal setpoint)
                n n + 1 ;
         else
               break;
In this paper, ξ ˜ is defined as the predicted output trajectory which in our case (drone’s position and yaw angle) represents a subset of the predicted state trajectory x ˜ , while ξ ^ r e f is the estimated reference trajectory which is computed by minimizing the cost function Equation (4) within the NMPH. ξ ^ r e f is used as the reference trajectory for the actual closed-loop system, providing smooth trajectories which respect the dynamics of the vehicle. Please note that ξ r e f ( n ) in Equation () is taken as ξ ^ r e f , where the latter is actively updated by the NMPH algorithm in response to events such as new dynamic obstacles. Also, please note that ξ ^ r e f and ξ ˜ converge to each other, and both can be used as a reference trajectory for the actual closed-loop system (here the drone). Further details about the NMPH algorithm can be found in the authors’ recent work [9].

3.2. Feedback Linearization Control Law

This section reviews the feedback linearization (FBL) control law used within the NMPH structure to improve the prediction performance of the reference trajectory. In this work, a Multi-Input Multi-Output (MIMO) control-affine system (here a drone) is used. The FBL design for this class of systems is summarized below.
Consider a MIMO nonlinear control-affine system of the form,
x ˙ = f x + i = 1 n u g i x u i f x + G x u
where f, g 1 , , g n u are smooth vector fields in R n x . G x is a n x × n u matrix with rank G ( 0 ) = n u .
The objective of FBL is to transform the nonlinear system (10) into a linear canonical form with a non-singular state feedback [11], which is defined as
u = β x + D x 1 v
where β x is a smooth function, and  β 0 = 0 . D x 1 is the inverse of a non-singular n u × n u matrix. D x and the non-singular state feedback transformation are
D x = d φ 1 , a d f r 1 1 g 1 d φ 1 , a d f r 1 1 g n u d φ n u , a d f r n u 1 g 1 d φ n u , a d f r n u 1 g n u
v = L f r 1 φ 1 L f r n u φ n u + L g 1 L f r 1 1 φ 1 L g n u L f r 1 1 φ 1 L g 1 L f r n u 1 φ n u L g n u L f r n u 1 φ n u u , z = φ 1 L f r 1 1 φ 1 φ n u L f r n u 1 φ n u
where { φ i x : d φ i , G r i 2 = 0 , j i , i = 1 , , n u } are smooth functions that form the non-singular matrix D x . r i are the controllability indices and G is a distribution of vector fields. L f φ = d φ , f is the Lie derivative, L f r means the Lie derivative is applied r times, and  a d f r g = [ f , a d f r 1 g ] is the Lie bracket between the vector fields f and g . Further details about the non-singular state feedback transformation for MIMO control-affine systems can be found in Theorem 2.7.3 of reference [11].

4. Motion Planning in GPS-Denied Environments

4.1. Motion Planner Architecture

Our proposed motion planning design aims to produce optimal vehicle paths while navigating in unexplored, dynamic and GPS-denied environments. We combine a graph-based exploration technique with a Nonlinear Model Predictive Horizon-based approach based on optimization which respects the vehicle’s dynamics and supports dynamic obstacles. This integration yields feasible, optimal, and robust paths while exploring challenging environments.
Figure 3 describes the overall architecture of our motion planner. The design is composed of three successive stages. The first stage acquires sensor data to build a physical representation of the environment which contains both static and dynamic objects in it. Volumetric mapping is used for this stage since it is computationally efficient, easy to visualize, can be incrementally constructed and reconstructed online, and provides the voxel grid structure needed for the next stage. Details about the volumetric mapping and its layers will be discussed in Section 4.2.
Section 4.3 discusses the second stage of the motion planner, which is built around a graph-based planning approach. It consists of the sampling-based RRG algorithm, which builds a connected roadmap graph, and the Dijkstra searching algorithm to extract the best path from within the graph. The main purpose of the graph-based approach is to guide the vehicle towards unexplored areas within the environment and provide terminal vertices, a.k.a. stabilization or terminal setpoints, to the local path planner.
The third stage of the motion planner uses the NMPH-FBL local path planning method. Fusing this method with the earlier stages improves the robustness of generating optimal paths and avoiding static and dynamic obstacles. The considerations involved in finding a feasible path are shown in Figure 3. Further details are provided in Section 4.4.
The reference trajectory computed by the path planner is fed to the control system of the vehicle for tracking purposes. As the drone vehicle moves, the NMPH continues to update its reference trajectory in response to feedback of the vehicle’s state and new obstacles. Once the vehicle reaches a setpoint, the motion planning process is repeated, which continues until the environment is fully explored or the mission is interrupted by the operator.

4.2. Volumetric Mapping

Volumetric mapping is the foundation of motion planning and navigation strategies in 3D environments. The volumetric mapping algorithm named Voxblox [32] is used in our work. In this technique, the map of the environment is represented volumetrically using the signed distance field to distinguish between known, unknown, free, and occupied spaces [33]. The grid consists of voxels with a corresponding type. Groups of occupied voxels represent surfaces of an object, walls, and so on. The main advantage of volumetric mapping is its real-time capability for incrementally representing unstructured and unexplored environments, which makes it a suitable solution for online planning and exploration. The Truncated Signed Distance Field (TSDF [34]) is one of the most efficient methods of representing volumetric maps. TSDF is an implicit surface representation that consists of a 3D voxel array. Each voxel is indexed by the distance of the ray between the sensor and the surface, and is truncated near the surface to decrease the errors that are caused by sensor noise. TSDFs are computationally efficient and can be constructed online. Also, they are capable of filtering out sensor noise and create meshes with voxel resolution for visualization purposes.
In contrast to TSDF, the Euclidean Signed Distance Field (ESDF) uses the Euclidean distance to the nearest occupied cell in labeling the voxel grid [32]. ESDFs are directly built out of existing TSDFs to make use of the distance information in determining the obstacle surface location for planning purposes. In other words, TSDF is for mapping and ESDF for planning, and the main difference between them is the way that distances are computed [35].
As presented in Figure 3, the volumetric mapping process consists of three layers. The sensor data is processed to build the TSDF layer, then the voxels are integrated into the ESDF and mesh layers as presented in [32]. The ESDF voxels and mesh blocks are updated incrementally allowing real-time map generation for planning and online visualization of the environment. To reduce the complexity of calculating the layers data, a voxel hashing approach [36] is used to store the information of each layer in a hash table, which results in O ( 1 ) complexity for adding or retrieving the data.

4.3. Graph-Based Path Planning

In this section, we summarize the graph-based planner presented in [5], which is used to help the vehicle navigate through unknown GPS-denied environments.
Assume that M G is a global 3D voxel-based map, which consists of voxels m M G . The map is incrementally built by a depth sensor S plus the vehicle’s pose estimation using the volumetric mapping approach previously discussed in Section 4.2. The map is categorized into three spaces, free space M G f , occupied space M G o , and unknown space M G u . The map has a global volume V G and is incrementally constructed within a local map sub-space M L of volume V L centered around the current vehicle’s output (here 3D position and heading) ξ 0 = x 0 y 0 z 0 ψ 0 T .
The graph-based planner [5] performs a local search towards unknown areas of M G . It is based on the sampling-based RRG algorithm [37] which builds a connected roadmap graph G G composed of collision-free vertices ν and edges e stored in vertex set V and edge set E , respectively. The edges are straight paths connecting the vertices using the nearest neighbor search [38]. The global graph G G is continuously constructed from the undirected local graph G L within the local space M L . The local search within the bounded volume V L considers the physical size of the vehicle V R and bounds it within a sub-space M R . Collision detection is performed to ensure collision-free paths σ L , where M R M G f for all randomly generated vertices and edges.
The set of all shortest paths Σ L , starting from the initial or current vertex ξ 0 to all destination vertices ξ ν , is found using the Dijkstra algorithm [12]. After that, the best path is evaluated by calculating the Volumetric Gain V for each vertex. The Volumetric Gain of a vertex is a measure of the unmapped volume based on the depth reading around that vertex. The weight functions related to distance and direction combined with V are used to compute the Exploration Gain E ( σ i ) for all σ i Σ L , i = 1 , , n . The vertices of these paths are ν j i , j = 1 , , m i , and  ν 0 i is the initial vertex along path σ i . The Exploration Gain for a path is calculated as [5]
E ( σ i ) = e λ S S ( σ i , σ s p ) j = 1 m i V ν j i e λ D D ( ν 0 i , ν j i )
where S ( σ i , σ s p ) is a distance factor between a path σ i and its corresponding straight path σ s p which has the same length along the estimated exploration direction. This factor prevents the vehicle from sudden changes in its exploration direction which might happen in branched environments within M L . D ( σ i , σ s p ) is the distance between ν j i and ν 0 i of the path σ i , which penalizes longer paths for a higher exploration rate. The tunable gains λ S and λ D are positive gains.
Subsequently, the best path σ b e s t that maximizes the Exploration Gain is selected and sent to the NMPH-FBL local motion planner to find the optimal path that the vehicle will follow. The whole procedure is repeated once the vehicle reaches the destination vertex. The detailed algorithm for building the map and planning the best path is presented in Algorithm 2.
If all vertices within G L are explored, the search will be expanded to the unexplored vertices of G G . This will guide the vehicle to another location on the global map and continue the exploration mission. For the return-to-home feature, the Dijkstra algorithm is also used to find the shortest path between the vehicle’s current output ξ 0 and the homing vertex on G G . This feature can be invoked once the exploration mission is completed, the battery level is low, or by intervention from the operator.
Algorithm 2 Graph-based Planner.
1:
ξ 0 CurrentMeasurement ( ) ;
2:
M G VolumetricMapping ( S ) ;
3:
V { ξ 0 } ; E ; G L = ( V , E ) ;
4:
M L LocalBoundSpace ( ξ 0 , M G ) ;
5:
for i = 1 , , n do                          ▹ RRG to build the local graph G L
6:
     ξ r a n d SampleFree i ( M L ) ;
7:
     ξ n e a r e s t NearestVertex ( G L , ξ r a n d ) ;
8:
    if  CollisionFree ( ξ r a n d , ξ n e a r e s t ) then
9:
         V V { ξ r a n d } ;
10:
         E E { ξ r a n d , ξ n e a r e s t } ;
11:
         N n e a r NearVertices ( G L , ξ r a n d ) ;
12:
        for  each ξ n e a r e s t N n e a r do
13:
           if  CollisionFree ( ξ r a n d , ξ n e a r ) then
14:
                E E { ξ r a n d , ξ n e a r } ;
15:
            end if
16:
         end for
17:
     end if
18:
end for
19:
Σ L DijkstraAlgorithm ( G L , ξ ν ) ;                     ▹ Find the shortest paths
20:
σ b e s t ; E b e s t 0 ;
21:
for each σ Σ L do                               ▹ Find the best path
22:
     E σ ExplorationGain ( σ , VolumetricGain ( V ) ) ;
23:
    if  E σ > E b e s t then
24:
         σ b e s t σ ; E b e s t E σ ;
25:
     end if
26:
end for
27:
G G G G G L ;                               ▹ Update the global graph
28:
if R e t u r n H o m e = t r u e then
29:
     σ b e s t DijkstraAlgorithm ( G G , ξ h o m e ) ;             ▹ Find the shortest path to home
30:
end if

4.4. Nmph for Local Path Planning

The graph-based planner in Section 4.3 generates non-optimal or sub-optimal paths because the vertices are created randomly within V L . In addition, the straight edges connecting vertices cause jerky motions for a drone following the path. Finally, the path generated by the graph-based planner does not respect the vehicle’s dynamics. The NMPH-equipped path planning approach presented in Algorithm 3 overcomes these issues by generating a path which respects the system’s dynamics and provides a smooth and optimal path which also avoids obstacles. From Figure 3, the NMPH path planning stage includes
  • Dynamic Local Obstacle Mapping (c.f. Section 4.4.1), a technique which utilizes the continously updated volumetric map of the environment to generate a dynamically changing map of obstacles which are used as constraints for the optimization within the NMPH algorithm.
  • Obstacle Avoidance (c.f. Section 4.4.2), an algorithm which allows the optimization problem solver to select constraints which correspond to obstacles in the path of the vehicle.
  • Path Guidance (c.f. Section 4.4.3), an algorithm which enhances the robustness of path generation to infeasible situations by making use of all the vertices of the graph-based planner-generated path, not just the terminal vertex. This allows the generation of multiple consecutive and feasible paths, leading to an overall path to the terminal vertex.
Algorithm 3 Local Optimal Path Planning using NMPH.
1:
σ b e s t GraphBasedPlanner ( ξ 0 , M G ) ;
2:
ν t e r m ExtractVertex t e r m i n a l ( σ b e s t ) ;
3:
M o b s LocalObstacleBound ( ξ 0 , M G ) ;                             ▹ Consider certain voxels around ξ 0
4:
for i = k , , n do                                              ▹ Remove extra voxels
5:
    for  j = i k , , i do
6:
        if  m i m j < δ then
7:
            M o b s M o b s m i ;                                     ▹ Remove ν i from the obstacles map
8:
         end if
9:
     end for
10:
end for
11:
C L ObstacleConstraint ( ν t e r m , ξ 0 , M o b s ) ;                            ▹ Find the obstacles constraints
12:
σ o p t NMPH _ Planning ( ν t e r m , ξ 0 , C L ) ;
13:
if σ o p t not f e a s i b l e then
14:
    for  i = 1 , , n do                                          ▹ Path Guidance Algorithm
15:
         ν i ExtractVertex i ( σ b e s t ) ;
16:
         σ o p t NMPH _ Planning ( ν i , ξ 0 , C L ) ;
17:
     end for
18:
    if  σ o p t not f e a s i b l e then
19:
         σ o p t = σ b e s t ;
20:
     end if
21:
end if
22:
PathFollowing ( σ o p t ) ;                                          ▹ Follow the optimal path

4.4.1. Dynamic Local Obstacle Mapping

Transforming physical obstacles within the volumetric map to optimization constraints is a challenging task. These obstacles need to be represented by a cluster of constraints while respecting the limitations of the optimization process, specifically a limit on the number of inequality constraints that the optimization problem can handle.
In this Section, we will present a strategy that maps obstacles in the environment into a dynamically moving space around the vehicle. This facilitates representing the obstacles as inequality constraints for optimization. This mapping technique, called Dynamic Local Obstacle Mapping (DLOM), generates a continuously changing map M o b s .
Based on the occupied voxel in M G o , the DLOM strategy generates virtual spheres centered on occupied voxels within a certain space surrounding the vehicle (e.g., a box of dimensions D o b s ). These virtual spheres have a radius which ensures a safe clearance between the vehicle sides and the occupied voxel. Figure 4 shows the volumetric map without and with DLOM. One advantage of using a sphere is for modeling the obstacle as a state constraint. This inequality constraint requires r o b s i , the distance between the vehicle and the center of the i th sphere, to be larger than a specific threshold r t h l d representing the radius of the virtual sphere as r o b s i r t h l d . The solution of the optimization problem within NMPH will thus generate a path that doesn’t pass through the virtual spheres and hence avoids the obstacles in the environment.
Modeling all occupied voxels in D o b s as obstacles would result in an excessively large computational burden to continuously generate M o b s and solve the optimization problem. Instead, any voxels inside the ith sphere are excluded from M o b s . Lines (3–10) of Algorithm 3 employ a simple running window strategy to remove extra voxels, and those remaining are represented as virtual spheres which provide constraints to the optimization problem. Figure 5 shows how the extra spheres are removed to reduce the computational load involved in producing the obstacles map. The exact time needed to build the dynamic obstacles map depends on the number of occupied voxels within D o b s . Experimentally, we found that the time required to build such a map on a desktop-class machine with a modern GPU (detailed specifications are given in Section 6.1) takes approximately 3 ms .

4.4.2. Obstacle Avoidance Algorithm

As soon as the obstacle map is created, the NMPH creates an optimal local path respecting the constraints acquired from M o b s . The optimization solver is limited in the number of inequality constraints it can handle, making it impossible to include all the mapped obstacles in M o b s within the optimization problem. Hence, a dynamic method for selecting a specific number of constraints is described next and included in Algorithm 4.
Algorithm 4 Obstacle Constraints.
1:
functionObstacleConstraint( ν t e r m , ξ 0 , M o b s )
2:
     σ o p t NMPH _ Planning ( ν t e r m , ξ 0 ) ;
3:
     k = 1 ;
4:
     C D ; C T k ;               ▹ Dynamic and Temporary Constraint Arrays
5:
    for  j = 1 , , N do                 ▹N is the number of the horizon points
6:
        for  i = 1 , , n o b s do                  ▹ n o b s is the number of obstacles
7:
           if  r o b s , ν j i < r t h l d then
8:
                C D s i j ;               ▹ Store ith obstacle position which is indexed by j
9:
                C T k s i ;             ▹ Store ith obstacle position in the kth temp constraint
10:
                k = k + 1 ;
11:
               if  k is n T  then
12:
                    k = 1 ;
13:
                end if
13:
           
14:
            end if
14:
        
15:
         end for
15:
    
16:
     end for
17:
     C L = ( C D , C T k ) ;
18:
return C L
Our chosen solver provides a solution to the optimization problem every ∼4 ms (running on the computer described in Section 6.1), which makes it possible to solve the problem several times before sending the optimum reference path to the vehicle’s flight control system. The Obstacle Avoidance algorithm takes advantage of this by first solving the optimization problem without considering obstacle constraints, then running a collision check on the generated path to find whether it crosses any virtual spheres in M o b s . It is important to mention that the collision check is performed over the entire optimization horizon [ t n , t n + T ] in Algorithm 1, which is discretized into N points for numerical computation.
If a collision is detected at some points within the optimization horizon, a Dynamic Constraint Array registers the center of a sphere s R 3 that contains these collision points, and passes them to the solver as inequalities used to compute a new solution which avoids them. The Dynamic Constraint Array has dimensions of N × 3 and can register up to N different inequality constraints for the next run of the optimization problem. For example, assume that a collision is detected on horizon points 3, 4 and 5, and each of the collision points are located within the 40th virtual sphere. In this case, the coordinates of the center of this sphere are registered in the Dynamic Constraint Array at indices 3, 4 and 5, while the rest of the array entries are kept Null. In the next iteration of the solver, a new constraint representing the cloned entries of the Dynamic Constraint Array will yield a path which avoids the region where the collisions previously occured.
To enhance the reliability of the Obstacle Avoidance algorithm while the vehicle is in motion, a specific number of Temporary Constraint Arrays (labeled by k in Algorithm 4) store the information from the Dynamic Constraint Array and are used in the optimization solution as well. The Temporary Constraint Arrays are static, which means that each registers only one virtual sphere over all its N indices.

4.4.3. Robust Path Guidance Algorithm

The initial state of the vehicle, the nature of the environment (e.g., branched narrow passages), and the terminal condition location may all affect the feasibility of the optimization problem solution. Figure 6 depicts two different path planning scenarios. In Figure 6a, the obstacle is small and NMPH can easily find a feasible solution. In Figure 6b, the obstacles almost block the way to the destination point. In this situation, the NMPH solver risks producing infeasible solutions by getting trapped in local minima.
As mentioned in Section 4.3, the graph-based path planning yields multiple vertices, which are used by the NMPH approach to generate multiple feasible paths, ranging from the nearest to the most distal (terminal) vertex. The small obstacle depicted in Figure 6a does not cause any issues for the NMPH in generating a feasible path directly to the terminal vertex. However, Figure 6b illustrates how the NMPH algorithm uses multiple consecutive paths (gray lines) generated to the intermediate vertices of the path generated by the graph-based planner (green line) to eventually find the resulting optimal path (blue line). Lines 12–21 in Algorithm 3 demonstrate the Path Guidance algorithm that adds robustness to the NMPH approach in finding a feasible solution. Note in case the Path Guidance algorithm is unable to help NMPH find a feasible path to the terminal vertex, the system can still use the path generated by the graph-based planner.

5. Application of Motion Planner to A Drone

5.1. System Model

In this section, both a quadcopter and a hexacopter system are modeled as rigid bodies with lumped force and torque inputs at each rotor. For simplicity, drag forces, rotor gyroscopic effects, and propeller dynamics are not included in the models. The rigid-body dynamics are formulated using the Newton-Euler equations [39].
A fixed navigation frame N and a moving body-fixed frame B are the two reference frames used in this work and their basis are selected to follow the North, East, and Down (NED) aerospace convention. Schematics of the drones with their body-fixed reference frames and basis are depicted in Figure 7.
The dynamics of a rigid body moving through 3D space is represented by rigid-body kinematics and the Newton-Euler equations as shown below [39],
p ˙ n = v n m v ˙ n = u ¯ R n 3 + g n 3 R ˙ = R S ( ω b ) J ω ˙ b = S ( ω b ) J ω b + τ b
where p n R 3 is the vehicle’s position and v n R 3 is its velocity, both in coordinates of the inertial navigation frame N . The mass moment of inertia matrix J is assumed to be diagonal as J = diag ( [ J 1 , J 2 , J 3 ] ) , and m is the total mass of the drone. ω b , ω ˙ b are the angular velocity and acceleration vectors, respectively, in coordinates of the body-fixed frame. The rotation matrix of B with respect to N is R = R n b SO ( 3 ) . S ( · ) R 3 × 3 is a skew-symmetric matrix such that S ( x ) y = x × y , x , y R 3 . The system input vector is [ u ¯ , τ b ] T , where u ¯ > 0 is the net thrust from all rotors in the direction of b 3 , and τ b = [ τ b 1 , τ b 2 , τ b 3 ] T are the torques created by the rotors about the three body frame axes.
It is important to mention that each of the vehicle configurations (quadcopter and hexacopter) transforms the rotors’ thrusts and torques to the system input vector [ u ¯ , τ b ] T differently. These transformations are assumed to be performed in the onboard flight controller, and consequently both configurations are represented by the same dynamics Equation (15). Hence, the proposed algorithm development is the same for both configurations.

5.2. Development of NMPH on a Drone Vehicle

The state and input vectors of the rigid-body dynamics presented in Equation (10) are
x = ( p n ) T , ( v n ) T , ( η ) T , ( ω b ) T T R 12 , u = u ¯ , ( τ b ) T T R 4 .
Using the roll-pitch-yaw ( ϕ , θ , ψ ) Euler angle parameterization of R S O ( 3 ) , the nonlinear control-affine representation of Equation (10) can be expressed as
x ˙ = f x + i = 1 4 g i x u i f x + G x u
where
f x = x 4 x 5 x 6 0 0 g x 10 + s x 7 t x 8 x 11 + c x 7 t x 8 x 12 c x 7 x 11 s x 7 x 12 s x 7 c x 8 x 11 + c x 7 c x 8 x 12 J 2 J 3 J 1 x 11 x 12 J 3 J 1 J 2 x 10 x 12 J 1 J 2 J 3 x 10 x 11 , G x = 0 0 0 0 0 0 0 0 0 0 0 0 1 m c x 7 s x 8 c x 9 + s x 7 s x 9 0 0 0 1 m c x 7 s x 8 s x 9 s x 7 c x 9 0 0 0 1 m c x 7 c x 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 J 1 0 0 0 0 1 J 2 0 0 0 0 1 J 3
where s ( · ) = sin ( · ) , c ( · ) = cos ( · ) , and t ( · ) = tan ( · ) .
In order to make the system in Equation (17) state feedback linearizable, the state vector is augmented with two additional states, which are the thrust x 13 = u ¯ and its rate x 14 = u ¯ ˙ , and the thrust is replaced by u ¯ ¨ in the input vector [9]. Moreover, integral states ζ are added to the system dynamics to compensate for unmodeled external disturbances which affect the control system and NMPH performances. The proposed extension of the system is presented in Equations (18) and (19).
x = ( p 3 × 1 n ) T , ( v 3 × 1 n ) T , ( η 3 × 1 ) T , ( ω 3 × 1 b ) T , u ¯ , u ¯ ˙ , ( ζ 3 × 1 p n ) T , ζ ψ T R 18 u = u ¯ ¨ , ( τ 3 × 1 b ) T T R 4
x ˙ = f ¯ x + G ¯ x u
where,
f ¯ x = x 4 x 5 x 6 1 m c x 7 s x 8 c x 9 + s x 7 s x 9 x 13 1 m c x 7 s x 8 s x 9 s x 7 c x 9 x 13 g 1 m c x 7 c x 8 x 13 x 10 + s x 7 t x 8 x 11 + c x 7 t x 8 x 12 c x 7 x 11 s x 7 x 12 s x 7 c x 8 x 11 + c x 7 c x 8 x 12 J 2 J 3 J 1 x 11 x 12 J 3 J 1 J 2 x 10 x 12 J 1 J 2 J 3 x 10 x 11 x 14 0 x 1 x 2 x 3 x 9 , G ¯ x = 0 9 × 4 0 1 J 1 0 0 0 0 1 J 2 0 0 0 0 1 J 3 0 0 0 0 1 0 0 0 0 4 × 4
Based on the transformation presented in Section 3.2, the four smooth functions, which represent the linearizing outputs, are { φ 1 x = x 1 , φ 2 x = x 2 , φ 3 x = x 3 , φ 4 x = x 9 } , and the system transformation into linear canonical form can be written as
z ˙ = A c z + B c v , z R 18 , v R 4 ξ = C c z , ξ R 4
where,
z = φ 1 , , L f r 1 1 φ 1 , , φ m , , L f r m 1 φ m T = x 15 , x 1 , x 4 , x ˙ 4 , x ¨ 4 , x 16 , x 2 , x 5 , x ˙ 5 , x ¨ 5 , x 17 , x 3 , x 6 , x ˙ 6 , x ¨ 6 , x 18 , x 9 , x ˙ 9 T z ˙ = z 2 , z 3 , z 4 , z 5 , v 1 , z 7 , z 8 , z 9 , z 10 , v 2 , z 12 , z 13 , z 14 , z 15 , v 3 , z 17 , z 18 , v 4 T
The domain for a non-singular solution is { u ¯ 0 , π 2 < ϕ < π 2 , π 2 < θ < π 2 } , which is found by the determinant of matrix D x being det D ( x ) = u ¯ 2 cos ϕ m 3 J 1 J 2 J 3 cos θ . The domain limits shown above are included within the constraints of the optimization problem in NMPH ().
Finally, the feedback linearization control inputs are found using Equation (13), which are
u ¯ ¨ = m c x 9 s x 7 v 2 m s x 7 s x 9 v 1 m c x 7 s x 8 c x 9 v 1 + s x 8 s x 9 v 2 + c x 8 v 3 + x 13 x 10 2 + x 11 2 τ b 1 = m J 1 x 13 s x 7 s x 8 c x 9 v 1 + s x 8 s x 9 v 2 + c x 8 v 3 + m J 1 x 13 c x 7 c x 9 v 2 s x 9 v 1 J 2 J 3 x 12 x 11 + J 1 x 13 x 11 x 12 x 13 2 x 10 x 14 τ b 2 = m J 2 x 13 c x 8 c x 9 v 1 + s x 9 v 2 + m J 2 x 13 s x 8 v 3 J 2 x 13 x 10 x 12 x 13 + 2 x 11 x 14 + J 1 J 3 x 12 x 10 τ b 3 = 1 c x 7 c x 8 x 13 [ 2 J 3 2 x 12 x 11 c x 7 2 + s x 7 x 11 2 x 12 2 c x 7 x 12 x 11 x 13 s x 8 + J 1 J 2 + J 3 x 10 x 11 x 13 c x 7 + J 3 s x 7 m s x 8 v 3 2 x 10 x 12 x 13 2 x 11 x 14 c x 8 J 3 m s x 7 c x 9 v 1 + s x 9 v 2 + x 13 v 4 c x 8 2 ]
where the feedback inputs are selected as follows,
v : = v 4 = i = 16 18 k i e z i , v j = i = 5 j 4 5 j k i e z i : j = 1 , 2 , 3
and the error e z i is defined as the difference between the desired and the actual feedback state e z i = z i r e f z i , i = 1 , , n .
As presented in Equations (15) and (21), the drone’s behavior is described by its nonlinear system dynamics and the feedback linearization control. The optimization within NMPH exploits their integration to enhance the performance of generating the reference trajectory. The continuous-time NMPH presented in Algorithm 1 is solved using a multiple shooting optimization technique. The solver used in our work, ACADO [40], discretizes the system dynamics, control law, and inequality constraints over the prediction horizon at each time instant t n . Figure 8 shows the optimization process from the problem formulation to the trajectory generation.
The integration of the feedback linearization within the NMPH aims to reduce the non-convexity of the optimization problem. A perfect model of the system dynamics would allow the closed-loop form to be represented by a linear canonical form as shown in Equation (20), for which the feasibility and stability of the optimized solution are guaranteed and the computational power needed to solve the optimization problem is greatly reduced over the non-convex case. However, even an imperfect model still reduces the non-convexity of the optimization problem as compared to working directly with the (nonlinear) plant dynamics as in standard NMPC.

6. Experimental Results

In this section, simulation and a preliminary real-time hardware flight test are presented to evaluate and validate the proposed design on quadcopter and hexacopter vehicles while operating in GPS-denied environments.
The algorithms are implemented within the Robot Operating System (ROS) [43], a Linux-based system that handles communication between the individual subsystems and the vehicle. The ACADO Toolkit [40] is used for optimization. The optimization problem is programmed in a self-contained C++ environment within this toolkit, then a real-time nonlinear solver is generated to run the optimizations online. The resulting code can be compiled and run within ROS, which also handles the communication between the solver and the vehicle, either simulated or real [44]. The NMPH optimization problem (4)–() was written in C++ code using ACADO, then automatically converted into a highly efficient C code that is able to solve the optimization problem in real-time.

6.1. Simulation Results

In order to test the proposed approach before implementing it on a real drone, the quadcopter drone vehicle is simulated within AirSim [45]. AirSim is an open-source simulator that provides photo-realistic environments plus a physics engine to enable performing lifelike simulations.
All frameworks and the AirSim simulator are run in ROS on an Intel Core i7-10750H CPU @ 2.60–5.00 GHz equipped with the Nvidia GeForce RTX 2080 Super Max-Q GPU. The prediction horizon for NMPH was set to T = 8 s using a sampling time of 0.2 s, which was found satisfactory for trajectory generation. The cost function weights W x , W ξ , and W T were adjusted heuristically to ensure a balanced trajectory generation performance towards the terminal setpoint.
The drone’s measured pose and pointcloud information are obtained from the AirSim simulator and sent to the motion planner. The global graph-based and local NMPH planners generate reference trajectories for the vehicle, which are forwarded to AirSim for trajectory tracking purposes. RViz, the 3D visualization tool for ROS, is used to monitor and visualize the simulation process. Figure 9 shows the ROS network architecture of the nodes and topics employed in performing our simulation.
Different simulation results are now presented to evaluate the performance of the proposed approach on a quadcopter drone navigating autonomously through a previously unexplored, GPS-denied underground environment available within the AirSim simulator. The motion planner design illustrated in Figure 3 is implemented for this purpose. Within AirSim, the virtual quadcopter is equipped with a customized 32-channel 360 scanning Lidar sensor with a 45 vertical field of view, 10 Hz rotation rate, and 50 m range. The pointcloud data plus the vehicle pose are acquired and used to build a volumetric map of the environment and locate the vehicle within it.
As discussed in Section 4.3, the graph-based planning algorithm guides the vehicle towards unexplored areas within the map and provides vertices as terminal setpoints x s s for the NMPH local path planner. The design’s robustness is increased by implementing the Obstacle Avoidance and Path Guidance algorithms proposed in Section 4.4.2 and Section 4.4.3, respectively. Finally, the generated reference path from the motion planner is sent to the AirSim quadcopter for tracking. The NMPH continues updating the path during the vehicle’s movement toward a setpoint. This allows to avoid dynamic obstacles and improves the tracking performance. Once the vehicle reaches a setpoint, the planning process is repeated until the environment is fully explored or the mission is interrupted by the operator.
Figure 10 shows the paths generated by the graph-based and the NMPH path planners. The NMPH is seen to provide a smooth and optimal path as compared to the sharp-corner path generated by the graph-based planner. Moreover, the NMPH keeps updating the path dynamically from the start to the terminal point at a rate of up to 100 Hz, while the graph-based planner generates only one path between the two points. To reduce computational load, the NMPH algorithm rate is set to 5 Hz, which was found to be suitable in generating continuous and smooth paths in the environment. This rate of path regeneration also provides good path following performance in the presence of static and dynamic obstacles.
A portion of the overall tracked trajectory between multiple vertices using the NMPH algorithm can be seen in Figure 11. Respecting the system dynamics provides smooth flight paths and thus reduces power consumption caused by abrupt changes in the trajectory.
The DLOM generates a continuously changing obstacle map modeled by virtual spheres as depicted in Figure 12. As discussed in Section 4.4.1 and Section 4.4.2, mapped obstacles are represented by (continuously updated) inequality constraints within the optimization problem. The Obstacle Avoidance Algorithm helps in creating and updating a path that avoids the obstacles as shown in Figure 12.
In the next simulation test, the quadcopter autonomously navigates an unexplored GPS-denied environment. Figure 13 shows the exploration mission performed by the quadcopter. The drone travels a total distance of 774.5 m while following smooth trajectories generated by our proposed algorithm. Meanwhile, the graph-based planner generated paths with a total length of 993.1 m for the same exploration mission. Table 1 and Figure 14 offer a mission performance comparison between using the graph-based planner solo versus using the graph-based planner integrated with our NMPH approach in terms of exploration time, average computation time of the generated paths, path lengths between terminal vertices, and average and total length of the generated paths. This comparison shows the impact of using the NMPH algorithm for reducing power consumption, total mission time, and unwanted abrupt motions while following the generated reference paths.
In the final simulation test, obstacle avoidance for a moving object is tested while the drone navigates through the environment. This is shown in Figure 15, where the continuous regeneration of the path by the NMPH algorithm enables the drone to safely navigate to the stabilization point.

6.2. Preliminary Real-Time Flight Test Results

For real-time hardware testing, a FlameWheel F550 hexacopter (DJI Technology, Shenzhen, China) was used. The vehicle is equipped with a Pixhawk 2.1 autopilot control board running the PX4 flight control software [46], and an onboard Jetson TX2 (NVidia, Santa Clara, CA, USA) computer running ROS. The communication between ROS and PX4 is established through MAVLink. A RealSense T265 stereo camera and a RealSense L515 LiDAR camera (Intel, Santa Clara, CA, USA) are mounted on the hexacopter to provide pose and RGB-D pointcloud data, respectively.
The preliminary flight test evaluates the path generation performance of NMPH running onboard a real drone, whose Jetson TX2 has lower computational power than the computer used in simulation. Also, local trajectory tracking and the functionality of the motion planner are tested in this experiment, as shown in Figure 16. Note that hardware flights in large-scale areas will be performed and evaluated in future work.
In the current setup, the optimization solver within NMPH was able to provide continuous regeneration of the reference trajectories at rates approaching 70 Hz. This rate was reduced to 5 Hz to minimize the computational load on the onboard system. The graph-based motion planner was also tested by generating terminal points for NMPH. The latter sent the predicted reference trajectories to the onboard PX4, and the hexacopter was able to follow them. Figure 17 shows the hexacopter following a continuously regenerated reference path to a terminal vertex.

7. Conclusions

This paper presented a methodological motion planning approach for drone exploration in GPS-denied environments, which integrates our recently proposed NMPH path planning approach with a graph-based planner. The NMPH formulation employs the nonlinear system dynamics model with feedback linearization control inside an online optimization-based process to generate feasible, optimal and smooth reference trajectories for the vehicle. The performance of the overall motion planner is increased by introducing methods for robust path generation and dynamic obstacle mapping and avoidance.
The developed motion planner was evaluated through a series of simulation flights as well as a real-time hardware flight test to validate the performance of the proposed design on quadcopter and hexacopter drones navigating the environment. The results show the ability our algorithm to improve motion planning performance over conventional techniques and generate smooth and safe flight trajectories in a computationally efficient way.
Future work will include testing the proposed motion planning methodology inside large-scale GPS-denied environments such as subterranean mines.

Author Contributions

Conceptualization, Y.A.Y. and M.B.; methodology, Y.A.Y.; software, Y.A.Y.; validation, Y.A.Y.; formal analysis, Y.A.Y.; investigation, Y.A.Y.; resources, M.B.; data curation, Y.A.Y.; writing—original draft preparation, Y.A.Y.; writing—review and editing, M.B.; visualization, Y.A.Y.; supervision, M.B.; project administration, M.B.; funding acquisition, M.B. Both authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by NSERC Alliance-AI Advance Program grant number 202102595. The APC was funded by NSERC.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

Data sharing not applicable.

Acknowledgments

The authors wish to thank Selina Leveugle and Ali Muneer for their extensive work on the hardware drone platform.

Conflicts of Interest

The authors declare no conflict of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript, or in the decision to publish the results.

References

  1. LaValle, S.M. Planning Algorithms; Cambridge University Press: New York, USA, 2006. [Google Scholar]
  2. Sozzi, A.; Bonfè, M.; Farsoni, S.; De Rossi, G.; Muradore, R. Dynamic motion planning for autonomous assistive surgical robots. Electronics 2019, 8, 957. [Google Scholar] [CrossRef] [Green Version]
  3. Paden, B.; Čáp, M.; Yong, S.Z.; Yershov, D.; Frazzoli, E. A survey of motion planning and control techniques for self-driving urban vehicles. IEEE Trans. Intell. Veh. 2016, 1, 33–55. [Google Scholar] [CrossRef] [Green Version]
  4. Ahmed, S.M.; Tan, Y.Z.; Lee, G.H.; Chew, C.M.; Pang, C.K. Object detection and motion planning for automated welding of tubular joints. In Proceedings of the 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Daejeon, Korea, 9–14 October 2016; pp. 2610–2615. [Google Scholar]
  5. Dang, T.; Mascarich, F.; Khattak, S.; Papachristos, C.; Alexis, K. Graph-based path planning for autonomous robotic exploration in subterranean environments. In Proceedings of the 2019 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Macau, China, 4–8 November 2019; pp. 3105–3112. [Google Scholar]
  6. Quan, L.; Han, L.; Zhou, B.; Shen, S.; Gao, F. Survey of UAV motion planning. IET Cyber Syst. Robot. 2020, 2, 14–21. [Google Scholar] [CrossRef]
  7. Corke, P. Robotics, Vision and Control: Fundamental Algorithms in MATLAB, 2nd ed.; Springer Tracts in Advanced Robotics; Springer: Cham, Switzerland, 2017; Volume 118. [Google Scholar]
  8. Grüne, L.; Pannek, J. Nonlinear Model Predictive Control: Theory and Algorithms; Springer: London, UK, 2017. [Google Scholar]
  9. Al Younes, Y.; Barczyk, M. Nonlinear Model Predictive Horizon for Optimal Trajectory Generation. Robotics 2021, 10, 90. [Google Scholar] [CrossRef]
  10. Isidori, A. Nonlinear Control Systems, 3rd ed.; Springer: London, UK, 1995. [Google Scholar]
  11. Marino, R.; Tomei, P. Nonlinear Control Design: Geometric, Adaptive, and Robust; Prentice Hall: London, UK, 1995. [Google Scholar]
  12. Cormen, T.H.; Leiserson, C.E.; Rivest, R.L.; Stein, C. Introduction to Algorithms, 3rd ed.; MIT Press: Cambridge, MA, USA, 2009. [Google Scholar]
  13. Dijkstra, E.W. A note on two problems in connexion with graphs. Numer. Math. 1959, 1, 269–271. [Google Scholar] [CrossRef] [Green Version]
  14. Hart, P.E.; Nilsson, N.J.; Raphael, B. A formal basis for the heuristic determination of minimum cost paths. IEEE Trans. Syst. Sci. Cybern. 1968, 4, 100–107. [Google Scholar] [CrossRef]
  15. Koenig, S.; Likhachev, M. Fast replanning for navigation in unknown terrain. IEEE Trans. Robot. 2005, 21, 354–363. [Google Scholar] [CrossRef]
  16. Al-Mutib, K.; AlSulaiman, M.; Emaduddin, M.; Ramdane, H.; Mattar, E. D* lite based real-time multi-agent path planning in dynamic environments. In Proceedings of the Third International Conference on Computational Intelligence, Modelling & Simulation, Langkawi, Malaysia, 20–22 September 2011; pp. 170–174. [Google Scholar]
  17. Likhachev, M.; Gordon, G.J.; Thrun, S. ARA*: Anytime A* with provable bounds on sub-optimality. In Proceedings of the 16th International Conference on Neural Information Processing Systems, Whistler, BC, Canada, 9–11 December 2003; pp. 767–774. [Google Scholar]
  18. Dolgov, D.; Thrun, S.; Montemerlo, M.; Diebel, J. Path planning for autonomous vehicles in unknown semi-structured environments. Int. J. Robot. Res. 2010, 29, 485–501. [Google Scholar] [CrossRef]
  19. Yang, Y.; Pan, J.; Wan, W. Survey of optimal motion planning. IET Cyber-Syst. Robot. 2019, 1, 13–19. [Google Scholar] [CrossRef]
  20. Siméon, T.; Laumond, J.P.; Nissoux, C. Visibility-based probabilistic roadmaps for motion planning. Adv. Robot. 2000, 14, 477–493. [Google Scholar] [CrossRef] [Green Version]
  21. LaValle, S.M.; Kuffner, J.J. Rapidly-exploring random trees: Progress and Prospects. In Algorithmic and Computational Robotics: New Directions; Donald, B.R., Lynch, K.M., Rus, D., Eds.; CRC Press: Boca Raton, FL, USA, 2001; pp. 293–308. [Google Scholar]
  22. Karaman, S.; Frazzoli, E. Sampling-based algorithms for optimal motion planning. Int. J. Robot. Res. 2011, 30, 846–894. [Google Scholar] [CrossRef]
  23. Canny, J.; Rege, A.; Reif, J. An exact algorithm for kinodynamic planning in the plane. Discret. Comput. Geom. 1991, 6, 461–484. [Google Scholar] [CrossRef] [Green Version]
  24. Ratliff, N.; Zucker, M.; Bagnell, J.A.; Srinivasa, S. CHOMP: Gradient optimization techniques for efficient motion planning. In Proceedings of the 2009 IEEE International Conference on Robotics and Automation, Kobe, Japan, 12–17 May 2009; pp. 489–494. [Google Scholar]
  25. Schulman, J.; Duan, Y.; Ho, J.; Lee, A.; Awwal, I.; Bradlow, H.; Pan, J.; Patil, S.; Goldberg, K.; Abbeel, P. Motion planning with sequential convex optimization and convex collision checking. Int. J. Robot. Res. 2014, 33, 1251–1270. [Google Scholar] [CrossRef] [Green Version]
  26. Kalakrishnan, M.; Chitta, S.; Theodorou, E.; Pastor, P.; Schaal, S. STOMP: Stochastic trajectory optimization for motion planning. In Proceedings of the 2011 IEEE International Conference on Robotics and Automation, Shanghai, China, 9–13 May 2011; pp. 4569–4574. [Google Scholar]
  27. Atkeson, C.G. Using local trajectory optimizers to speed up global optimization in dynamic programming. In Proceedings of the 6th International Conference on Neural Information Processing Systems, Denver, CO, USA, 29 November–2 December 1993; pp. 663–670. [Google Scholar]
  28. Perez, A.; Platt, R.; Konidaris, G.; Kaelbling, L.; Lozano-Perez, T. LQR-RRT*: Optimal sampling-based motion planning with automatically derived extension heuristics. In Proceedings of the 2012 IEEE International Conference on Robotics and Automation (ICRA), Saint Paul, MN, USA, 14–18 May 2012; pp. 2537–2542. [Google Scholar]
  29. Nolte, M.; Rose, M.; Stolte, T.; Maurer, M. Model predictive control based trajectory generation for autonomous vehicles—An architectural approach. In Proceedings of the 2017 IEEE Intelligent Vehicles Symposium (IV), Redondo Beach, CA, USA, 11–14 June 2017; pp. 798–805. [Google Scholar]
  30. Andersson, O.; Ljungqvist, O.; Tiger, M.; Axehill, D.; Heintz, F. Receding-horizon lattice-based motion planning with dynamic obstacle avoidance. In Proceedings of the 2018 IEEE Conference on Decision and Control (CDC), Miami Beach, FL, USA, 17–19 December 2018; pp. 4467–4474. [Google Scholar]
  31. Andersson, O.; Wzorek, M.; Rudol, P.; Doherty, P. Model-predictive control with stochastic collision avoidance using bayesian policy optimization. In Proceedings of the 2016 IEEE International Conference on Robotics and Automation (ICRA), Stockholm, Sweden, 16–21 May 2016; pp. 4597–4604. [Google Scholar]
  32. Oleynikova, H.; Taylor, Z.; Fehr, M.; Siegwart, R.; Nieto, J. Voxblox: Incremental 3D euclidean signed distance fields for on-board mav planning. In Proceedings of the 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Vancouver, BC, Canada, 24–28 September 2017; pp. 1366–1373. [Google Scholar]
  33. Steinbrücker, F.; Sturm, J.; Cremers, D. Volumetric 3D mapping in real-time on a CPU. In Proceedings of the 2014 IEEE International Conference on Robotics and Automation (ICRA), Hong Kong, China, 31 May–7 June 2014; pp. 2021–2028. [Google Scholar]
  34. Curless, B.; Levoy, M. A volumetric method for building complex models from range images. In Proceedings of the 23rd Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH), New Orleans, LA, USA, 4–9 August 1996; pp. 303–312. [Google Scholar]
  35. Oleynikova, H.; Millane, A.; Taylor, Z.; Galceran, E.; Nieto, J.; Siegwart, R. Signed distance fields: A natural representation for both mapping and planning. In Proceedings of the RSS 2016 Workshop: Geometry and Beyond-Representations, Physics, and Scene Understanding for Robotics, Ann Arbor, MI, USA, 19 June 2016. [Google Scholar]
  36. Nießner, M.; Zollhöfer, M.; Izadi, S.; Stamminger, M. Real-time 3D reconstruction at scale using voxel hashing. ACM Trans. Graph. 2013, 32, 169. [Google Scholar] [CrossRef]
  37. Karaman, S.; Frazzoli, E. Sampling-based motion planning with deterministic μ-calculus specifications. In Proceedings of the Joint 48th IEEE Conference on Decision and Control and 28th Chinese Control Conference, Shanghai, China, 16–18 December 2009; pp. 2222–2229. [Google Scholar]
  38. Moore, A.W. An Introductory Tutorial on kd-Trees. 1991. Available online: https://www.ri.cmu.edu/pub_files/pub1/moore_andrew_1991_1/moore_andrew_1991_1.pdf (accessed on 17 August 2021).
  39. Murray, R.M.; Li, Z.; Sastry, S.S.; Sastry, S.S. A Mathematical Introduction to Robotic Manipulation; CRC Press: Boca Raton, FL, USA, 1994. [Google Scholar]
  40. Houska, B.; Ferreau, H.; Diehl, M. ACADO Toolkit – An Open Source Framework for Automatic Control and Dynamic Optimization. Optim. Control Appl. Methods 2011, 32, 298–312. [Google Scholar] [CrossRef]
  41. Boggs, P.T.; Tolle, J.W. Sequential quadratic programming. Acta Numer. 1995, 4, 1–51. [Google Scholar] [CrossRef] [Green Version]
  42. Ferreau, H.; Kirches, C.; Potschka, A.; Bock, H.; Diehl, M. qpOASES: A parametric active-set algorithm for quadratic programming. Math. Program. Comput. 2014, 6, 327–363. [Google Scholar] [CrossRef]
  43. Quigley, M.; Conley, K.; Gerkey, B.; Faust, J.; Foote, T.; Leibs, J.; Wheeler, R.; Ng, A.Y. ROS: An open-source Robot Operating System. In Proceedings of the ICRA Workshop on Open Source Software, Kobe, Japan, 12–17 May 2009. [Google Scholar]
  44. Kamel, M.; Stastny, T.; Alexis, K.; Siegwart, R. Model predictive control for trajectory tracking of unmanned aerial vehicles using robot operating system. In Robot Operating System (ROS); Springer: Cham, Switzerland, 2017; pp. 3–39. [Google Scholar]
  45. Shah, S.; Dey, D.; Lovett, C.; Kapoor, A. AirSim: High-Fidelity Visual and Physical Simulation for Autonomous Vehicles. In Field and Service Robotics; Hutter, M., Siegwart, R., Eds.; Springer: Cham, Switzerland, 2018; pp. 621–635. [Google Scholar]
  46. Meier, L.; Honegger, D.; Pollefeys, M. PX4: A node-based multithreaded open source robotics framework for deeply embedded platforms. In Proceedings of the 2015 IEEE International Conference on Robotics and Automation (ICRA), Seattle, WA, USA, 26–30 May 2015; pp. 6235–6240. [Google Scholar]
Figure 1. Block diagram of the proposed global motion planner.
Figure 1. Block diagram of the proposed global motion planner.
Sensors 21 05547 g001
Figure 2. NMPH architecture. A model of the nonlinear system dynamics is used to perform the optimization process within NMPH (gray box). The resulting optimized reference trajectory is passed to the actual closed-loop system (blue box) for tracking purposes.
Figure 2. NMPH architecture. A model of the nonlinear system dynamics is used to perform the optimization process within NMPH (gray box). The resulting optimized reference trajectory is passed to the actual closed-loop system (blue box) for tracking purposes.
Sensors 21 05547 g002
Figure 3. Motion Planner Architecture.
Figure 3. Motion Planner Architecture.
Sensors 21 05547 g003
Figure 4. Dynamic Local Obstacle Mapping (DLOM).
Figure 4. Dynamic Local Obstacle Mapping (DLOM).
Sensors 21 05547 g004
Figure 5. Dynamic Local Obstacle Mapping. (a) All voxels are used to map the obstacle’s surface. (b) A subset of voxels (highlighted in red) is selected to represent the obstacle’s surface, and their neighbouring voxels are excluded.
Figure 5. Dynamic Local Obstacle Mapping. (a) All voxels are used to map the obstacle’s surface. (b) A subset of voxels (highlighted in red) is selected to represent the obstacle’s surface, and their neighbouring voxels are excluded.
Sensors 21 05547 g005
Figure 6. Graph-based vs NMPH path planning. (a) The terminal vertex of the green path (from graph-based planner) is sufficient to generate the optimum blue path by NMPH. (b) All the vertices of the green path are used successively to guide the solutions of NMPH to the final optimal trajectory (blue path).
Figure 6. Graph-based vs NMPH path planning. (a) The terminal vertex of the green path (from graph-based planner) is sufficient to generate the optimum blue path by NMPH. (b) All the vertices of the green path are used successively to guide the solutions of NMPH to the final optimal trajectory (blue path).
Sensors 21 05547 g006
Figure 7. Schematics of (a) quadcopter and (b) hexacopter vehicles.
Figure 7. Schematics of (a) quadcopter and (b) hexacopter vehicles.
Sensors 21 05547 g007
Figure 8. NMPH Optimization Process. The non-convex optimization problem can be solved iteratively using Sequential Quadratic Programming (SQP) [41]. In SQP, the problem is divided into a sequence of subproblems, each of which solves a quadratic objective function subject to linearized constraints [42].
Figure 8. NMPH Optimization Process. The non-convex optimization problem can be solved iteratively using Sequential Quadratic Programming (SQP) [41]. In SQP, the problem is divided into a sequence of subproblems, each of which solves a quadratic objective function subject to linearized constraints [42].
Sensors 21 05547 g008
Figure 9. Simulation Architecture.
Figure 9. Simulation Architecture.
Sensors 21 05547 g009
Figure 10. Motion Planner. (a) Path planning using graph-based approach (pink) and NMPH algorithm (red). (b) Optimal path using NMPH algorithm.
Figure 10. Motion Planner. (a) Path planning using graph-based approach (pink) and NMPH algorithm (red). (b) Optimal path using NMPH algorithm.
Sensors 21 05547 g010
Figure 11. Illustration of trajectory generation and tracking. The green path is the trajectory of the vehicle, and the red path is the future reference path.
Figure 11. Illustration of trajectory generation and tracking. The green path is the trajectory of the vehicle, and the red path is the future reference path.
Sensors 21 05547 g011
Figure 12. Dynamic Local Obstacle Mapping and Avoidance. In (a) the DLOM is made visible while in (b) it is hidden.
Figure 12. Dynamic Local Obstacle Mapping and Avoidance. In (a) the DLOM is made visible while in (b) it is hidden.
Sensors 21 05547 g012
Figure 13. Autonomous navigation and exploration in GPS-denied environment. The vehicle travelled a total distance of 774.5 m in about 1035 s . (a) Overhead visualization of exploration path through environment. (b) Plot of vehicle positions (x,y,z) versus time.
Figure 13. Autonomous navigation and exploration in GPS-denied environment. The vehicle travelled a total distance of 774.5 m in about 1035 s . (a) Overhead visualization of exploration path through environment. (b) Plot of vehicle positions (x,y,z) versus time.
Sensors 21 05547 g013
Figure 14. Comparison of path lengths between graph-based planner and our proposed NMPH path planner. (a) Path length between stabilization points. (b) Total length of generated paths.
Figure 14. Comparison of path lengths between graph-based planner and our proposed NMPH path planner. (a) Path length between stabilization points. (b) Total length of generated paths.
Sensors 21 05547 g014
Figure 15. Obstacle avoidance for a moving object. The object (sphere) is moving to the left. The NMPH regenerates the red path continuously to avoid the object. The blue curve represents the flight trajectory of the drone.
Figure 15. Obstacle avoidance for a moving object. The object (sphere) is moving to the left. The NMPH regenerates the red path continuously to avoid the object. The blue curve represents the flight trajectory of the drone.
Sensors 21 05547 g015
Figure 16. Preliminary flight test.
Figure 16. Preliminary flight test.
Sensors 21 05547 g016
Figure 17. Hardware flight testing: successive captures of screen (ac) displaying sensed environment (blocks) and planned path (red line) of drone.
Figure 17. Hardware flight testing: successive captures of screen (ac) displaying sensed environment (blocks) and planned path (red line) of drone.
Sensors 21 05547 g017
Table 1. Comparison between Graph-based and Graph-based-plus-NMPH approaches to path planning.
Table 1. Comparison between Graph-based and Graph-based-plus-NMPH approaches to path planning.
Total Length of the
Generated Paths
Average Path
Length (between
Terminal Points)
Average Path
Computation Time
Exploration
Time
Continuous Path
Generation
Graph-based 993.1 m 8.79 m 733 ms 1327 s No
Graph-based-
plus-NMPH
774.5 m 6.86 m 4.34 ms 1035 s Yes
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Younes, Y.A.; Barczyk, M. Optimal Motion Planning in GPS-Denied Environments Using Nonlinear Model Predictive Horizon. Sensors 2021, 21, 5547. https://doi.org/10.3390/s21165547

AMA Style

Younes YA, Barczyk M. Optimal Motion Planning in GPS-Denied Environments Using Nonlinear Model Predictive Horizon. Sensors. 2021; 21(16):5547. https://doi.org/10.3390/s21165547

Chicago/Turabian Style

Younes, Younes Al, and Martin Barczyk. 2021. "Optimal Motion Planning in GPS-Denied Environments Using Nonlinear Model Predictive Horizon" Sensors 21, no. 16: 5547. https://doi.org/10.3390/s21165547

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