As autonomous robots, such as unmanned aerial vehicles (UAVs), wheeled vehicles, legged robots and mobile manipulators, are more substantially utilized in tasks including manufacturing, transportation, mapping , and inspection , they are required, even in the event of disturbances, to exhibit high-performance and safe behavior.
One potentially successful approach to ensure this safe behaviour is to enhance robustness to disturbances by prioritizing closeness to a desired geometric path. In path-following, in contrast to trajectory tracking, the reference is a geometric path exempt from any preassigned time-dependency. Path-following overcomes a limitation of trajectory tracking which is that, if the robot loses track of the reference, it may discourse from the path in an attempt to align with the time-dependent reference and as such potentially collide with surrounding obstacles, reach saturation limits or exhibit some other unsatisfactory behaviour .
Another potentially successful approach to ensure this safe behaviour is to enhance performance by predicting ahead in order to prepare for changes in the path. Model predictive control (MPC) has demonstrated high-performance  by optimizing over a prediction horizon while still explicitly adhering to constraints on the states and inputs of the system .
Considering these approaches, the aim of this paper is to design and implement a controller that predicts ahead to accurately and robustly follow a curved path while adhering to key system constraints. In particular, we consider predictive control with a path-based cost, which, when making use of the differential flatness property of many robotic systems, is subject to only linear models as demonstrated in Fig. 1. In order to do this, we now consider literature in three areas: path-following, MPC and differentially flat systems.
Many path-following approaches are not easily integrated into the optimal control problem (OCP) of a model predictive framework because their objective is to modify existing trajectory tracking control or to stabilize a set of trajectories. One such approach, from the early work on path-following, considers converting an existing tracking controller into a path-following controller by re-weighting the relative importance of spatial convergence to time convergence . Another more recent approach considers transverse feedback linearization to stabilize the path-following manifold or the set of trajectories that allow convergence to the path . Consideration of state and input constraints is difficult in both approaches.
Two path-following approaches have been used in a model predictive framework. In the first approach , the kinematic model of a unicycle vehicle is rewritten in terms of a spatial and orientation error model defined with respect to a path-attached frame. The rotation rate of the vehicle is controlled using static feedback linearization of this error model. This approach has been extended to work within Nonlinear Model Predictive Control (NMPC)  for visual teach and repeat (VT&R) . However, to avoid a singularity in the error model, the vehicle needs to be closer to the path than a distance of one over the maximum path curvature.
To avoid this restriction, we consider an alternative approach where a separate path dynamic is proposed . Specifically, the desired geometric path is parametrized in terms of a path variable whose dynamics describe the motion of a virtual vehicle along the path. Moreover, the path-following problem is separated into a geometric task, where the system is required to converge to the path, and a secondary dynamic task, where the system is required to satisfy a dynamic specification, such as a speed assignment, along the path. This path-following approach is combined with NMPC by extending the nonlinear system dynamics with the introduced path dynamic , . Fundamentally, in the NMPC the evolution of the path state, and correspondingly the reference on the path, is optimized alongside the system state. This describes the predictive path-following problem.
A drawback of this predictive path-following problem, highlighted in simulation for a crane in  and quadrotor in , is that the resulting optimal control problem is subject to two nonlinear models and system constraints making efficient implementation online in a high-frequency feedback control loop difficult.
We investigate differential flatness, which in conjunction with linearization techniques, can be used to reduce the complexity of the control design. Many physical systems, including cranes, cars with trailers and quadrotors, can be described by nonlinear models exhibiting the property known as differential flatness , . Intuitively, differential flatness allows us to separate the nonlinear model into a linear dynamics component and a nonlinear transformation.
This property has been utilized in both feedback and feedforward linearization approaches wherein a linear controller is designed based on the linear dynamics term and an inverse term is then used to correct for the nonlinearity in the model , . Feedforward linearization differs fundamentally from feedback linearization in that the desired flat state instead of the measured flat state of the system is used in the inverse term. Feedforward linearization aims to overcome the robustness issue of feedback linearization. Specifically, this robustness issue is a result of a potential parametric uncertainty of the model leading to inexact pole-zero cancellation . Given the computational and robustness advantages of feedforward linearization, our approach incorporates this idea to solve the predictive path-following problem.
The contributions of this paper are then three-fold. Our first contribution is to introduce a Flatness Approach to Predictive Path-following (FAPP) which provides novelty in two aspects. Firstly, in contrast to related approaches in Section IV, it combines MPC and feedforward linearization in a novel way. Secondly, it provides novelty in demonstrating that by incorporating a key result from exact path-following in Section III-C, we can reduce the predictive path-following problem to solving a quadratic program (QP) at each iteration. The second contribution is to detail how such an approach can be applied to a quadrotor in Section VI. In the final contribution, we demonstrate the value of FAPP in terms of robustness and accuracy over a conventional trajectory tracking controller on a quadrotor.
Ii Problem Statement
Consider a continuous-time, nonlinear system model of the form:
with , , and a smooth function. Given a path , described by a map that projects the real interval to the state space,
we consider the path-following problem given in Problem 1.
Design a controller that achieves the following:
P1 (Geometric Convergence) The path error vanishes asymptotically:
P2 (Dynamic Specification) The system (1) achieves some dynamic specification, such as a desired speed, that moves it forward along the path.
P3 (Constraint Satisfaction) The state constraints, , and input constraints, , are adhered to for all time.
Subsequently, we assume that (1) is differentially flat, see Section III-A, and propose a scheme for model predictive path-following control to solve the considered problem. We treat the path parameter as an additional state variable in an expanded predictive setup and obtain its evolution and the real system input by solving an open-loop optimal control problem.
Iii-a Differential Flatness
We recall the formal definition of differential flatness.
A nonlinear system model (1) is differentially flat if there exists , whose components are differentially independent, such that the following holds :
where , and are smooth functions, and are the maximum orders of the derivatives of and needed to describe the system and is called the flat output.
Iii-B Feedforward Linearization
We briefly highlight a key result in feedforward linearization that demonstrates how we can rewrite the nonlinear model (1) as an equivalent linear one. As explained in , every differentially flat system (1) can be represented by a Brunovský state (or flat state):
Note that is the maximum derivative of found in (5) . Using the state-transformation between the flat state and state , obtained by differentiation of (3) and using (4), we can transform (1) into the normal form:
where , , is a smooth function obtained as a result of the transformation. Note is the maximum derivative of after times differentiating in (3). We define the flat input as:
Using the definitions in (6) and (8) , we rewrite (7) as:
where . We term (9a) the linear flat model. By substituting the definitions in (6) and (8) , we can rewrite (5) as .
From : Consider a desired trajectory in the flat output , including a corresponding desired flat state (obtained by substituting for in (6) ) and desired flat input (obtained by substituting for in (7) and (8)). Given , if we apply the nominal control:
to a differentially flat system (1) , provided that , this results in an equivalent, by change of coordinates, linear system as given in (9a) .
Theorem 1 allows trajectory generators, as in Fig. 2, or controllers, as in our proposed approach in Fig. 1, to only consider the equivalent linear flat model. The output of the trajectory generator or controller, i.e. the desired flat state and flat input, can then be fed through the inverse transformation (10) to correct for the nonlinear part (9b) in the system.
Iii-C Exact Path-Following
We emphasize a key result from exact path-following (which is a subset of path-following problems that assumes an exact model of the system that starts precisely on the path). In , the feedforward linearization is used to determine an optimal feedforward control that moves a differentially flat system forward along a path. Sufficient conditions for guaranteeing a path in the flat output is exactly followable by a constrained differentially flat model are given. Consider a regular parametrized path, , described in the flat output space.
From : Given a nonlinear differentially flat system (1) and a path provided that , i.e., it is -times differentiable and the derivative is continuous, where , and , i.e., it starts on the path and at the beginning of the path, then the dynamics of (1) under the feedforward control are equivalent to a linear single-input system in normal form:
where , , and contains in the upper right hand corner.
Theorem 2 reduces the dynamics of a path-attached differentially flat system to a linear single-input model. We use this to represent the dynamics of our path-attached virtual vehicle, thereby giving it the same dynamic model that our differentially flat system exactly following the path would have.
Iv Related Work
Feedforward linearization has been coupled with prediction or path-following before, but not with both. We showed a path-following problem that included feedforward linearization in Section III-C. We now briefly describe related work that couples feedforward linearization and the result from Theorem 1 with prediction. Flatness-Based Predictive Control (FBPC), suggested in  and further developed in  for trajectory generation, attempts to couple prediction with feedforward linearization. As highlighted in Fig. 2, the work in  and  considers using the linear flat model (9a) for trajectory generation and then combines the feedforward term (10) with a PID controller. In , , the differential flatness of the standard quadrotor model is utilized to generate minimum snap and jerk trajectories. In , see Fig. 3, the authors use the inverse of the nonlinear model (from input to output ), a combination of the feedforward term (10) and a term that maps the output to the flat state and flat input. They then only consider a linear filter model in the MPC. A simple simulation for a SISO flat model demonstrates the potential computational benefit of the combined MPC and feedforward linearization over NMPC. We use a similar idea in Section V to reduce the computational burden of MPC in predictive path-following for nonlinear systems.
V-a Overall Architecture
We term our presented method Flatness Approach to Predictive Path-following (FAPP) because the differential flatness of the system model is pertinent to the proposed architectural design in Fig. 1. We propose this design for two main reasons. Unlike related works in Fig. 2 and Fig. 3, our novel combination of feedforward linearization and MPC can easily be extended to include a path dynamic for path-following. Within this design, we can significantly simplify the problem statement in Section II by utilizing the result from Theorem 2. The proposed architecture is comprised of three key components (see Sections V-B - V-D):
Feedforward Linearization: Utilizing feedforward linearization of the differentially flat system (1), we reduce our model to an equivalent linear flat model (9a). We use this linear flat model in our MPC. We feed the output of the MPC through an inverse term (10).
Path-following: We consider a path-attached virtual vehicle, with an associated path dynamic model, with , the path-attached virtual vehicle state , the path-attached virtual vehicle input and a smooth function, attached to a parametrized geometric path in the flat output space:
We use Theorem 2 for differentially flat system (1), to reduce this path dynamic model to a linear single-input model (11).
Predictive Control: To solve the path-following problem a sampled data MPC strategy is considered. At each sampling time, we solve an open-loop OCP, by minimizing the cost function: which is dependent on both the sequence of predicted system states and inputs and the sequence of predicted path-attached vehicle states and inputs . This is subject to both the linear flat model of the system (9a) and the linear path dynamic model (11). We also include additional linear constraints. To ensure the system stays close to the defined geometric path and is robust to disturbances, the cost function weights the error between the system and path dynamic with an additional dynamic specification, such as a speed assignment. In other words, it tries to enforce that the system behaves as closely as it can to the path-attached vehicle while secondarily trying to achieve a particular dynamic specification/speed. We show that for a straight line the resulting optimization reduces to a QP. For more complex curves, we propose using one iteration of a Gauss-Newton approach to obtain a QP specifically noting that the nonlinearity is only due to the nonlinear curve. For detailed assumptions necessary for a stability proof, please see .
V-B Feedforward Linearization
The proposed coupling of feedforward linearization and MPC, as seen in Fig. 1, uses the linear flat model (9a) in a feedback MPC. The MPC outputs and which are then fed through the inverse term (10). Note that in this approach we ensure adherence to the initial condition requirement of feedforward linearization in Theorem 1 by feeding back our measured flat state into the MPC where we re-optimize for our updated desired trajectory, and .
V-C Path Following
We define our path (2) in Problem 1 in the flat output space as in (12) and address geometric convergence by minimizing the difference between our system flat output and a path-attached virtual vehicle’s flat output. This can be done because from (4) and (5) , the state and input of the nonlinear system (1) can be written directly in terms of the flat output and a finite number of its derivatives. As such defining a trajectory in the flat output corresponds directly to an associated trajectory in and . We now demonstrate how the reference flat state, in Fig. 1, attached to a geometric path can be simultaneously determined online with the vehicle’s next desired flat state and flat input .
Path Dynamics: Considering Theorem 2, we use (11) to represent the dynamics of a virtual vehicle attached to the path. We do this because we want our virtual vehicle to be representative of the actual vehicle’s motion capabilities, including necessary constraints, while being constrained to the defined geometric path. In (11), we term the path state and the path input.
Path Parametrization: Although any suitable path parametrization can be used, we consider Bézier curves,
for their smoothness properties . Differentiation of (13) allows us to obtain a reference flat state parametrized in terms of the path state and path parameters :
For a straight line, i.e., , (14) reduces to:
where and are constant matrices containing a combination of path parameters and .
V-D Predictive Control
Given a system that can be represented by a differentially flat nonlinear model (1) and a geometric path to be followed (12), design the flat input and path-attached virtual vehicle input such that the following is satisfied: At every time step k, solve the OCP:
where we consider the sequence of predicted flat states , flat inputs , path states and path inputs . This OCP is subject to the equivalent linear flat model in (9a), the linear path dynamic model in (11) (which gives a corresponding reference flat state, , through path parameterization (14)) and linear constraints on the optimization variables (the flat inputs and path inputs).
We propose an objective function, in (16), of the form:
where the first term weights the positional error , at timestep , between the vehicle’s and reference’s flat outputs (geometric convergence in Problem 1):
while the second term tries to propel the vehicle forward with a certain velocity (dynamic specification in Problem 1):
where in (13) and , , are positive semi-definite. Note is some designed desired speed. Notice that for the straight line case is a constant. The last two terms in the objective function ensure regularization of the inputs.
As mentioned, the proposed FAPP scheme is an extended MPC scheme. The open-loop OCP is expanded by the virtual state and by the virtual input . Essentially, controls the path parameter evolution. Considering the FAPP scheme, path convergence can be weighted to be more important than speed. Note that preceding work on NMPC for path following,  and , placed the velocity command on the virtual vehicle instead of on the actual vehicle. When the velocity command is placed on the virtual vehicle, in the event that the actual vehicle is disturbed, the virtual vehicle continues to try and reach the command velocity while pushing the actual vehicle to its saturation limits. Instead, we place the velocity command on the actual vehicle such that in the event of such a disturbance, the virtual vehicle tries to remain as close to the actual vehicle as possible, thus allowing better recovery from disturbances and mitigating potential saturation.
We can demonstrate that following a straight line, parametrized as a linear Bézier curve, reduces the OCP (16)-(17) to a QP. By using that is a component in , we can rewrite the first term in (17): where , , is a diagonal matrix with and , . We similarly rewrite the second term in (17): where is a diagonal matrix with and , , and in (14). We then discretize the linear flat model (9a):
We also discretize the linear path model (11):
Given a current measured flat state, , and a current path state, , we write lifted forms, for prediction steps, of our discretized models:
And in a similar manner,
We also define the expanded forms of our weight matrices: where and similarly for , and . Further, we define: , and . We rewrite (17) using: ; ; ; .
Substituting in our expanded models for and , we can simplify our objective function to a quadratic form where subject to linear optimization constraints.
For higher-order Bézier curves, we initialize and consider one iteration of a Gauss-Newton approach to solve the nonlinear least squares problem. The Gauss-Newton step fits a quadratic to the curve locally and reduces the problem to a QP at each step. This approach has been used in NMPC , . Notice that in our case, however, the nonlinearity is only as a result of a nonlinear curve while all models used are linear.
Vi Application to Quadrotors
We describe how the presented methodology in Section V can be applied to a quadrotor. We refer to the standard quadrotor model, , ,  with state and input where are the linear position; are the linear velocity; is the rotation of the quadrotor body frame with respect to an inertial frame; are the body frame rotation rates, is the body thrust and are the respective body torques. We also include a standard model of the dynamics of an inner loop controller (tuned by control parameter ) which takes inputs , where is a commanded velocity in z, and are commanded roll and pitch angles and is a commanded yaw velocity in the body frame, and outputs . The detailed equations are found in the supplementary material .
Vi-B Differential Flatness
The differential flatness of the quadrotor model is demonstrated in  for flat outputs . The flat state (6) and flat input (8) are shown to be and respectively.
Detailed mathematical derivations are necessary to show that the quadrotor with inner loop control dynamics does not change the differential flatness property of the original nonlinear quadrotor model (see supplementary material  for details). We can show that we have the same resulting linear flat model (9a) as , however, the inverse term (10) changes to account for the inner loop controller. We highlight the high-level approach in derivation below. To show differential flatness we need to satisfy condition (3)-(5).
First, notice that given that the flat outputs are comprised of some terms of state , condition (3) is shown by definition. Similarly, condition (4) holds for the translational states of by definition of the flat outputs. We are then left to derive and in terms of the flat state. We begin by writing
in terms of its column vectors and considering the translational acceleration in the standard quadrotor model. We derivein terms of the flat state by taking the derivative of acceleration and using our results for . We have shown that condition (4) holds.
Finally, we demonstrate condition (5) by showing as a function of the flat outputs and their derivatives (see  for details).
Vi-C Path Dynamics and Constraints
Considering (obtained from the flatness derivation in Section VI-B), the linear path dynamic model for a virtual quadrotor vehicle is given by (11) with .
We consider two sets of constraints on the quadrotor: the first is a constraint on the body rates and the second is a constraint on the total thrust. We consider these constraints because they establish a fairly representative set of feasible quadrotor maneuvers while being bounded by convex functions, thereby still allowing a convex optimization problem.
As in , we consider the constraint on the body rates as a constraint on the jerk of the quadrotor: where and are the minimum and maximum jerk, respectively. Given that this jerk constraint is affine in the flat state and we have a linear flat model (9a), the resulting constraint is linear in the optimization variables .
Our second constraint on the maximum thrust  is given as: where is the maximum total thrust that the quadrotor can produce. The discretized version of the constraint can be put in lifted form (18) resulting in an inequality that is quadratic in . We make the assumption that the quadratic coefficient is small based on the fact that it contains squares of relatively small values in , obtained through discretization of the linear flat model (9a). We, therefore, reduce the maximum thrust constraint to a linear constraint on the optimization variables .
The experiments are conducted on a Parrot AR.Drone quadrotor with an overhead motion capture system estimating the state of the quadrotor. We interface with the quadrotor using the open-source Robot Operating System (ROS). The state estimator in Fig. 1 determines the flat stateat 200 Hz.
The control architecture consists of two loops: an off-board outer loop running at 70 Hz and an on-board inner loop running at 200 Hz. In the experiments we compare two outer loop controllers: the first uses our proposed FAPP architecture, see Fig. 1, and the second uses a baseline nonlinear trajectory tracking controller. The baseline nonlinear trajectory tracking controller computes the desired and accelerations using PD control and then determines the associated pitch and roll commands using standard feedback linearization. The z-velocity and yaw-velocity commands are computed using P control. In the FAPP controller, the MPC considers a look ahead time of where the prediction horizon is . We consider the following weights in our objective function (16): , , , . In terms of constraints, we consider , and .
We perform the experiments on a petal shaped path (the grey geometric path in Fig. 4) parametrized in terms of a cubic Bézier curve with: , , , . We start the reference virtual vehicle on the path at (i.e., ). We investigate three cases: (i) the quadrotor starts within 0.1 m of the reference virtual vehicle and is then required to fly the geometric path (in red in Fig. 4); (ii) the quadrotor starts more than 1.0 m from the reference virtual vehicle and is then required to converge to and fly the geometric path (in blue in Fig. 4); (iii) the quadrotor starts within 0.1 m of the reference virtual vehicle but is then disturbed by wind during its flight (in green in Fig. 6). We first fly case (i) with the FAPP controller which simultaneously computes the timed reference during the flight. We then use this generated trajectory as our nominal trajectory for the baseline trajectory tracking controller. All subsequent flights, cases (i) - (iii), with the trajectory tracking controller use this nominal trajectory.
Case (i): In this case, as depicted in red in Fig. 4, FAPP reduces the root mean square (RMS) error between the quadrotor position and reference position by 90.92%. Under nominal conditions with small initial position error, the primary advantage of FAPP is that it can predict ahead, adjust the speed of the quadrotor accordingly (speeding up on straight sections of the path), and compute an input to the vehicle that accounts for upcoming turns. As demonstrated in Fig. 5, because the baseline trajectory tracking controller does not predict ahead, the quadrotor does not accelerate fast enough in the first 2 s and therefore falls behind resulting in a final position that is 1.26 m behind the reference in Fig. 4.
Case (ii): When the quadrotor has significant initial offset, the main advantage of FAPP as demonstrated in Fig. 4 is that it simultaneously adapts the reference trajectory in the optimization problem. As shown in Fig. 5, in the first 1 s both the quadrotor and reference speed up where the quadrotor tries to quickly converge to the path. At about 1.5 s, the quadrotor is close enough to the path but needs to change direction, correspondingly the reference waits for it to do so before both speed up once again. At about 3 s, the quadrotor begins to slow down as it makes the turn, which it completes at about 7 s. Although at about 7.2 s there is a small communication delay with the quadrotor, seen as a slight drift in Fig. 4, the quadrotor manages to quickly recover to speed up for the final segment of the path.
Case (iii): We demonstrate the robustness of FAPP by adding a wind disturbance. As seen in Fig. 6 and Fig. 7, FAPP (green solid path) enhances disturbance recovery by slowing down the reference such that it waits for the disturbed quadrotor.
In this paper, we presented a Flatness Approach to Predictive Path-following (FAPP), which combined feedforward linearization, model predictive control and path-following. This combination has the following advantages:
Its predictive capabilities allow high-accuracy tracking around curved paths while allowing us to consider key constraints within the control design.
By simultaneously adapting the path reference, without significant additional computation, we are able to enhance robustness to disturbances.
We simplify the optimal control problem to solving one quadratic program by utilizing the differential flatness property to reduce both our nonlinear path and system models to equivalent linear ones.
Furthermore, we demonstrate these advantages in experiment by implementing the presented control architecture on a quadrotor.
-  M. Warren, M. Paton, K. MacTavish, A.P. Schoellig and T.D. Barfoot,“Visual Breadcrumbs: Towards Visual Teach & Repeat for Emergency Return of a Fixed-Wing UAV,” Accepted at Conference on Field and Service Robotics (FSR), 2017.
-  M. Hutter, R. Diethelm, S. Bachmann, P. Fankhauser, C. Gehring, V. Tsounis, A. Lauber, F. Guenther, M. Bjelonic, L. Isler, H. Kolvenbach, K. Meyer and M. Hoepflinger, “Towards a Generic Solution for Inspection of Industrial Sites,” Accepted at Conference on Field and Service Robotics (FSR), 2017.
-  R. Skjetne, T.I. Fossen, and P. Kokotović, “Robust output maneuvering for a class of nonlinear systems,” Automatica, vol. 40, no. 3, pp 373-383, 2004.
-  M. Bangura and R. Mahony, “Real-time model predictive control for quadrotors,” IFAC Proceedings Volumes, vol. 47, no. 3, pp 11773-11780, 2014.
-  M.W. Mueller and R. D’ Andrea, “A model predictive controller for quadrocopter state interception,” in Proc. European Control Conference (ECC), 2013, pp. 1383-1389.
-  J. Hauser and R. Hindman, “Maneuver regulation from trajectory tracking: feedback linearizable systems,” in Proc. IFAC Symp. Nonlinear Control Systems Design, 1995, pp. 595-600.
-  A. Roza and M. Maggiore, “Path following controller for a quadrotor helicopter,” in Proc. American Control Conference (ACC), 2012, pp. 4655-4660.
-  C. Canudas de Wit, H. Khennouf, C. Samson and O. Sordalen, “Nonlinear control design for mobile robots,” in Recent Trends in Mobile Robots, Y. F. Zheng ed., pp. 121-156, World Scientific, 1993.
-  C.J. Ostafew, A.P. Schoellig, T.D. Barfoot, and J. Collier, “Learning-based nonlinear model predictive control to improve vision-based mobile robot path tracking,” Journal of Field Robotics, vol. 33, no. 1, pp. 133-152, 2016.
-  C. J. Ostafew, A.P. Schoellig and T.D. Barfoot, “Visual teach and repeat, repeat, repeat: Iterative Learning Control to improve mobile robot path tracking in challenging outdoor environments,” in Proc. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2013, pp. 176-181.
-  T. Faulwasser, B. Kern, and R. Findeisen, “Model predictive path-following for constrained nonlinear systems,” in Proc. IEEE Conference on Decision and Control (CDC), 2009, pp. 8642-8647.
-  T. Faulwasser, J. Matschek, P. Zometa, and R. Findeisen, “Predictive path-following control: Concept and implementation for an industrial robot,” in Proc. IEEE International Conference on Control Applications (CCA), 2013, pp. 128-133.
-  M. Böck and A. Kugi, “Real-time nonlinear model predictive path-following control of a laboratory tower crane,” IEEE Transactions on Control Systems Technology, vol. 22, no. 4, pp. 1461-1473, 2014.
-  P. Niermeyer, V.S. Akkinapalli, M. Pak, F. Holzapfel and B. Lohmann, “Geometric path following control for multirotor vehicles using nonlinear model predictive control and 3D spline paths,” in Proc. International Conference on Unmanned Aircraft Systems (ICUAS), 2016, pp. 126-134.
-  D. Mellinger and V. Kumar, “Minimum Snap Trajectory Generation and Control for Quadrotors,” in Proc. IEEE International Conference on Robotics and Automation (ICRA), 2011, pp. 2520-2525.
-  M. Fliess, J. Lévine, P. Martin and P. Rouchon, “Flatness and defect of non-linear systems: introductory theory and examples,” International Journal of Control, vol. 61, no. 6, pp. 1327-1361, 1995.
-  V. Hagenmeyer and E. Delaleau, “Exact feedforward linearization based on differential flatness,” International Journal of Control, vol. 76, no. 6, pp. 537-556, 2003.
-  S. Formentin and M. Lovera. “Flatness-based control of a quadrotor helicopter via feedforward linearization,” in Proc. 50th IEEE Conference on Decision and Control and European Control Conference (CDC-ECC), 2011, pp. 6171-6176.
-  V. Hagenmeyer and E. Delaleau, “Robustness analysis of exact feedforward linearization based on differential flatness,” Automatica, vol. 39, no. 11, pp. 1941-1946, 2003.
-  T. Faulwasser and V. Hagenmeyer, and R. Findeisen, “Optimal exact path-following for constrained differentially flat systems,” IFAC Proceedings Volumes, vol. 44, no. 1, pp. 9875-9880, 2011.
-  M. Fliess and R. Marquez, “Continuous-time linear predictive control and flatness: a module-theoretic setting with examples,” International Journal of Control, vol. 73, no. 7, pp. 606-623, 2000.
-  V. Hagenmeyer and E. Delaleau, “Continuous-time non-linear flatness-based predictive control: an exact feedforward linearisation setting with an induction drive example,” International Journal of Control, vol. 81, no. 10, pp. 1645-1663, 2008.
-  C. Kandler, S.X. Ding, T. Koenings, N. Weinhold and M. Schultalbers, “A differential flatness based model predictive control approach,” in Proc. IEEE International Conference on Control Applications (CCA), 2012, pp. 1411-1416.
-  Supplementary Material: https://goo.gl/xd7zk4