Learning Model Predictive Control For Quadrotors
Learning Model Predictive Control For Quadrotors
Authorized licensed use limited to: University of Stellenbosch. Downloaded on March 30,2023 at 13:17:10 UTC from IEEE Xplore. Restrictions apply.
aerial systems. The data collected across multiple iterations 1) Safety Set: The states and inputs for a trajectory at
incorporates elements of the nonlinear manifold SO(3). each j th iteration is defined as
h i h i
Furthermore, this aspect also makes the numerical MPC xj = xj0 , xj1 , ..., xjT j , uj = uj0 , uj1 , ..., ujT j −1 , (2)
integration substantially more complex since at each inte-
gration step it is necessary to guarantee that the obtained where T j is the time stamp when the task is completed at
elements still lie in the rotation group. Second, we relax the the j th iteration. The recorded data points from each iteration
computational complexity of the proposed approach making generate a sampled safety set
it suitable for real-time quadrotor control applications. Fi- [ [ Ti
nally, we show a specific instance of the proposed method SS j = xit , (3)
in a learning minimum time control task. Several simulation
ji∈M t=0
and experimental results show the ability of our approach j
where M is a set of indexes that represents the iterations
to successfully exploit collected data to improve system that successfully completed the task. In short, SS j is a set for
execution time performances. the j th iteration which contains the recorded state trajectories
The paper is organized as follows. In Section II, we from previous successfully completed tasks.
review the MPC and LMPC approaches. In Section III, 2) Cost Function: The cost-to-go for the state xjt at time
we specifically address the challenges and show how to t of the j th iteration in the safety set is defined as
design LMPC for quadrotors, whereas, in Section IV, we Tj
consider a particular instance of this approach employed to j j
X j j
Jt→
−T j (x t ) = h x k , uk . (4)
solve a minimum time control task. Section V presents our k=t
experimental results and Section VI concludes the paper. The cost-to-go for any state can be determined with eq. (4)
II. OVERVIEW which is needed to satisfy LMPC formulation as discussed in
Section II-B.3. Furthermore, the optimal cost of a given state
In this section, we provide a brief review of the MPC
is obtained from the minimum cost-to-go across all previous
formulation and how it transforms into LMPC.
successful iterations
i
( j
)
A. Model Predictive Control min J t →
− T i (x), if x ∈ SS
Qj (x) = (i,t)∈F j (x) , (5)
MPC is a predictive control method that finds a sequence +∞, if x 6∈ SS j
of system inputs, U = {u0 , u1 , · · · , uN −1 } with uk ∈
F j (x) = (i, t)|i ∈ [0, j], t ≥ 0 with x = xit , for xit ∈ SS j .
Rnu , within a fixed time horizon of N steps. It optimizes
a given objective function – with a running and terminal Eq. (5) assigns every state the respective minimum cost-to-go
cost h(·, ·) and Q(·) respectively – while accounting for across all iterations.
constraints and system dynamics 3) LMPC Formulation: The LMPC builds upon the gen-
NX−1 eral MPC formulation as described in Section II-A by
min h (xk , uk ) + Q (xN ) , appending a safety set constraint for the terminal state and
u0 ,u1 ,··· ,uN −1
k=0 assigning eq. (5) as the terminal cost
s.t. xk+1 = f (xk , uk ) , ∀k = 0, · · · , N − 1 (1) X−1
t+N
P C ,j j
x0 = x(t0 ), JtLM
→
− t+N t x = min h xk|t , uk|t
ut|t ,...,ut+N −1|t
k=t
g (xk , uk ) ≤ 0,
+ Qj−1 xt+N |t ,
where xk+1 = f (xk , uk ) represents the system dynamics (6a)
and xk ∈ Rnx is the system state. The optimization occurs
with initial condition x0 while respecting system dynamics s.t. xk+1|t = f xk|t , uk|t , ∀k ∈ [t, · · · , t + N − 1], (6b)
f (x, u) and additional state and input constraints g (x, u). g xk|t , uk|t ≤ 0, (6c)
B. Learning Model Predictive Control xt+N |t ∈ SS j−1 , (6d)
In this section, we review the LMPC, an iterative learning xt|t = xjt . (6e)
model predictive control method that can improve task The optimal control problem in eq. (6) computes a solution
performance over many trials [10]. The task is repeated at for the j th iteration at a given time stamp t of the task, over a
each iteration starting from the same initial state, xs . The finite horizon N . The eqs. (6b), (6c), (6e) define the system
task is considered complete when the system reaches a global dynamics, state, and input constraints, and initial condition of
terminal state, xF , without violating constraints. During each the system, respectively. The safety set constraint in eq. (6d)
task iteration, the system records the state and cost and forces the terminal state xt+N |t to visit a discrete safety set
uses the recorded data to ensure control convergence to a state in SS j−1 . In principle, this guarantees a closed-loop
locally optimal solution. We denote state and cost recorded solution that pushes the system to a final state xF .
during the j th iteration as the j th closed-loop trajectory. In
the following, we first introduce preliminary concepts for III. LMPC FOR Q UADROTORS
LMPC such as safety set and its corresponding terminal cost In this section, we address the challenges related to
function. Then we will introduce the LMPC formulation. designing LMPC for quadrotors. These systems evolve on
5880
Authorized licensed use limited to: University of Stellenbosch. Downloaded on March 30,2023 at 13:17:10 UTC from IEEE Xplore. Restrictions apply.
complex nonlinear manifold configuration spaces SO(3) ×
R3 thus making the formulation and solution of the LMPC
substantially more complex than ground vehicles studied
in [10]. This induces the need for appropriate numerical
integration techniques of the system dynamics preserving the
structure of the configuration space over time. Furthermore,
the controller should run at an acceptable rate for real-
time control of the quadrotor. The discrete property of
the safety set, SS j , makes the LMPC a Nonlinear Mixed
Integer Programming (NMIP) problem due to eq. (6d). This
formulation is computationally expensive and incompatible
with real-time applications. Hence in the following, we
propose a convex approximation approach in Section III-
C.1 in order to transfer the safety set constraints to a linear
constraint and speed up the optimization. In addition, the Fig. 2: System convention with I and B denoting inertial
Pj
size of the safety set SS j is nx × ( i=0 f˜T i ) and depends and body frames respectively.
on the size of a state nx , sample frequency f˜, and time The total thrust is the lift generated by each of the rotors
T i of completion for successful ith iteration. Based on the f = f1 +f2 +f3 +f4 along eB z . Subsequently, it is necessary
formula, we see that the size of the safety set can grow very to apply a rotation induced by q onto eIz by using
quickly across iterations. Therefore, it is beneficial to create q eIz = ReIz . (9)
a sparser safety set for computational reasons. We propose
to select a subset of SS j as a local safety set to reduce the B. Discretization and Numerical Integration
computational burden. Finally, we consider the limitation of The eqs. (7)-(8) represent the continuous system dynamics
the hardware platform. We incorporate in our formulation of a quadrotor which can be written as ẋ = f (x, u). In order
actuator constraints to guarantee the task feasibility as well to incorporate them in the discrete time LMPC formulation,
as safety of the quadrotor platform. we apply 4th order Runge-Kutta method to numerically
integrate ẋ over the sampling time dt given the state xk
A. System Dynamics and input uk as
The system overview is presented in Fig. 2. The relevant xk+1 = fRK4 (xk , uk , dt) . (10)
variables used in our paper are stated in Table I. We
The key challenge here is the numerical integration and
use two different coordinate frames with axes {eIx , eIy , eIz }
discretization techniques over SO(3) for eq. (8). Techniques
and {eB B B
x , ey , ez }, to denote the inertial frame and the
like the Runge-Kutta method do not necessarily adhere to the
quadrotor’s body frame, respectively. The relevant variables
SO(3) structure [17]. As a result, the quaternion’s norm can
for our model are defined in Table I. We consider x =
become non-unit because of round off error from numerical
[x> > > >
Q , ẋQ , q ] and u = [f, Ω> ]> the quadrotor state and
integration at each time step, which will also induce non-
input vectors, respectively. The state vector includes the
> orthogonal column vectors in the corresponding rotation ma-
quaternion q = [qw , qx , qy , qz ] to describe the quadrotor’s
trix. Extra efforts can be made to circumvent numerical drift
orientation in the I frame. We employ this orientation
by applying a unit constraint. It will add extra constraints to
parameterization instead of a rotation matrix so that we can
the optimization problem causing additional computational
reduce our state space size and consequently speed up our
complexity. Another way is to normalize the quaternion after
LMPC as mentioned in Section II.
each integration. However, this cannot be done over a horizon
The system dynamics are
in MPC because the result of any intermediate step within
d d 1
f ReIz − geIz ,
xQ = ẋQ , ẋQ = (7) the Runge-Kutta calculation is not guaranteed that the unit
dt dt mQ quaternion represents a SO(3) element. To bypass these
d 1 strategies, we employ a non-unit quaternion in eq. (8) and
q = Λ (Ω) · q, (8)
dt 2 its mapping to a rotation matrix is
where Λ (Ω) is a skew-symmetric matrix of the quadrotor Q
> R=
angular velocity [16] with Ω = [Ωx , Ωy , Ωz ] . 2, (11)
kqk2
where Q is defined in [17]. The only remaining requirement
TABLE I: Notation table. is to avoid the quaternion getting too close to the zero norm
in eq. (11). It can be shown that eq. (8), which maps angular
I, C, B inertial, camera, robot frame
mQ ∈ R mass of robot
velocity to the derivative of a unit quaternion, is a particular
xQ , ẋQ , ẍQ ∈ R3 position, velocity, acceleration of robot in I solution of the minimum-norm solution for the derivative of a
R ∈ SO(3) rotation matrix of robot with respect to I non-unit quaternion [17]. Therefore, to avoid the quaternion
Ω ∈ R3 angular velocity of robot in B magnitude getting close to 0, we can add to eq. (8) any linear
f ∈R total thrust
g∈R gravity constant combination of vectors in the nullspace of the weighting
5881
Authorized licensed use limited to: University of Stellenbosch. Downloaded on March 30,2023 at 13:17:10 UTC from IEEE Xplore. Restrictions apply.
matrix of the aforementioned minimum norm problem which
turns out to be q and tune the coefficients. Alternatively, a
one time re-scaling step can also be applied.
C. LMPC Relaxation
1) Convex Safety Set: Inspsired by [11], we approximate
the safety set SS j by taking its convex hull CS j as
CS j = Conv(SS j ) = x0 , · · · , xj λ> ,
(12)
where
λ = λ00 , λ01 , · · · , λ0T 0 , ..., λj0 , λj1 , · · · , λjT j ,
(13)
λ ≥ 0, kλk1 = 1.
Eq. (12) represents the barycentric approximation of SS j .
In this way, any state in the convex hull can be written as a
convex combination of points in the safety set. Each element
in λ corresponds to a positive weighted scalar value for each Fig. 3: Illustrative example on creating a local safety set
state in the convex hull. Similarly, an approximation of the in the X-Y position only. At time t − 1 in j th iteration,
terminal cost function can be derived. Therefore, we obtain the LMPC forecasts states over the horizon, N , including
h the terminal predicted state xN |t−1 (green × in this figure).
Q̃j (x) = Conv(Qj (x)) = min J0j→ 0 j
− T 0 (x0 ), J1→
0
− T 0 (x1 ) ,
λ≥0 The local safety set, SStj−1 , at time t (red circles with blue
outline) is made up of xN |t−1 ’s nearest neighbors in SS j−1 .
i
..., J0j→
−T j (x j
0 ), ... λ> .
(14)
Using the convex hull of the safety set transforms the NMIP
into a Quadratic Program with linear constraints defined by p ∈ [0, j−1] is an integer that determines how many previous
eq. (12) and eq. (13). iterations to consider in the safety set. All the sets K i have
It should be noted that for sake of simplicity, in eq. (12) an equal size of n. The time index in K i corresponds to the
we used the same notation to represent the weighted average n-nearest neighbor states around the predicted terminal state
operations for both the state variables in the Euclidean space from the predicted trajectory at t − 1. Fig. (3) illustrates how
and the variables in the rotation group SO(3). However, in the n-nearest neighbors are selected for the local safety set.
fact, for SO(3) elements, it cannot be achieved in the same Furthermore, using eq. (12), we approximate the subset by
way as for elements in the Euclidean space. The notion of taking the convex hull
h p p j j
i
Karcher mean [18] choosing L2-norm as metric among two CStj = Conv(SStj ) = xk1p , ..., xknp ..., xkj , ...xknj λ>
s = x.
1
rotation elements guarantees to find the convex set. However, (16)
the procedure does not have a closed-form solution and does where
not guarantee the existence of a unique mean [18], thus h
p j
i
making it difficult to incorporate it in the MPC. However kλs k1 = 1, λs = λkp , ..., λkj . (17)
1 n
in our task, the rotations are distributed around the identity Eqs. (15)-(17) create a sparse convex hull with non-negative
element of SO(3) group and we can simply compute the λs elements.
convex safety set CSxj q for the rotation part by lifting all
the sample in the tangent space since they lie in the same 3) LMPC Problem Formulation: Finally, the relaxed
parameter subgroup [19] as LMPC for quadrotor system can be fully defined as following
P
!
X
CSxj q = exp λl log (xq,l ) X−1
t+N
LM P C ,j
l=0 J˜t→t+N (xjt ) = min h(xk|t , uk|t )
λs ,ut|t ,··· ,ut+N −1|t
where the exp and log operation is defined in [16], xq refers k=t
to the quaternion vector as a subset of its corresponding state + Q̃tj−1 (xt+N |t ),
vector, and l indicates a selected state in CS j among P (18a)
number of states.
2) Local Safety Set: In order to further reduce the com- s.t. xk+1|t = fRK4 (xk|t , uk|t ), ∀k ∈ [t, t + N − 1], (18b)
putational load, we chose to reduce the size of the safety set g(xk|t , uk|t ) ≤ 0, xt|t = xjt (18c)
by choosing a subset, SStj , of SS j at each time t xt+N |t ∈ CStj−1 , kλs k1 = 1, λs ≥ 0. (18d)
j
[ [ where
SStj = xik . (15) p p
i=p k∈K
i
Q̃tj−1 (xt+N |t ) = min [Jk1p →
− T p (xk1p ), Jkpp → p
− T p (xkp ), ...
λ ≥0 2 2
s
K i = {k1i , · · · , kni } is a set of time stamps for the corre- Jkjj → (xjkj ), ...]λ>
sponding states in the ith iteration, where i ∈ {p, ..., j} and 1− T
j
1
s . (19)
5882
Authorized licensed use limited to: University of Stellenbosch. Downloaded on March 30,2023 at 13:17:10 UTC from IEEE Xplore. Restrictions apply.
Our system considers hardware limitations by constraining corridor constraint applies bounds on rn
the control inputs −δ ≤ rn ≤ δ. (26)
fmin ≤f ≤ fmax , (20) Therefore, eq. (26) is a linear constraint which matches the
Ωmin ≤Ω ≤ Ωmax , (21) form of eq. (18c) as
where fmin and fmax are the maximum and minimum bmin ≤ AxQ ≤ bmax . (27)
thrusts, whereas Ωmin and Ωmax are the maximum and
minimum angular velocity, respectively. V. E XPERIMENTS
IV. L EARNING O PTIMAL T IME C ONTROL We propose several simulations and experiments with a
In this section, we show a particular instance of the quadrotor to validate the proposed LMPC during a learning
LMPC approach to learning optimal time trajectories. This minimum time trajectory task.
approach can be leveraged for autonomous racing tasks
by naturally discovering the minimum lap time through A. Task Overview
reference-free iterations. Each task begins with a quadrotor We consider an optimal time control problem as specified
at xs which maneuvers to a predefined goal xG . A track is in Section IV. The task is successfully accomplished if the
created by setting intermediate waypoints and corridors to the quadrotor can pass through a given gate while staying within
goal. An initial safety set, SS 0 , is created by flying steadily a given track and stop after passing it. Fig. 1 illustrates an
and suboptimally through the track. The LMPC formulation example of the proposed task. This is obtained considering
in eq. (6) is relaxed as discussed in Section III and the an L-shape track, which is constructed using the approach in
following cost function Section. IV both in simulations and real-world experiments.
We first provide the quadrotor with a feasible and slow
X−1 h
t+N i
j−1 reference trajectory for the quadrotor MPC controller to
1 xk|t + u>
k|t Ru uk|t + Q̃t xt+N |t , (22)
track, like the one shown in the black color in the Figs. 4
k=t
where and 6. During the trajectory tracking, the quadrotor records
1, if xQ 6= xG
its state history to build the initial safety set. Subsequently,
1 (x) = . (23) we run the LMPC controller and repeat the same process
0, Else
by sending the quadrotor to the same start position at the
The running cost is defined by two main components. First,
end of each task iteration. The only information provided
it includes a binary cost which depends on whether the
to LMPC is the safety set and the corresponding cost-
quadrotor has reached the goal position. This cost represents
to-go over the recorded safety set. The LMPC will then
the minimum time control. Second, there is a penalty applied
start to find the optimal time trajectories that minimize the
on the inputs to minimize the control effort with Ru as
travel time while respecting the system dynamics, actuator
constant diagonal matrix to tune the penalty on the control.
constraints, and track constraints. The attached multimedia
It is important to note that lower values in Ru favor a
material provides several additional experiments as well. We
minimum-time solution, but this may yield aggressive control
solve the proposed LMPC problem in eq. (18) with cost
and with possible non-smooth control inputs. Therefore,
as eq. (22) via Sequential Quadratic Programming (SQP)
there is a trade-off between these two objectives and tuning
using ACADOS [20], [21] as a solver. For the LMPC
the weights is useful to achieving desired performances.
controller parameters, we choose the prediction time horizon
While the binary cost can be implemented in simulation,
the discretized time step dt as 0.1 s, the horizon length
it proves time consuming in real-time application. Thus,
N = 10 and corridor width δ = 0.8 m.
eq. (22) is approximated with a sigmoid function
2
xQ,k|t − xG B. Environments
h(xk|t , uk|t ) = q 2
+u>
k|t Ru uk|t . (24)
4
xQ,k|t − xG 2 + 1 1) Simulation: For simulation, we use a custom simulator
Furthermore, a track must be defined for the racing case. available in the lab developed in ROS1 with full system
This can be done with corridors that are defined between two dynamics simulated using 4th order Runge-Kutta method.
waypoints. A linear constraint is added to the LMPC formu- 2) Real World: The real-world experiments are performed
lation to guarantee the quadrotor stays within the track. The in an indoor testbed with a flying space of 10×6×4 m3 at the
position of two distinct consecutive waypoints is defined as ARPL lab at the New York University. We leverage a Vicon2
rw , rw+1 , respectively. The direction from the first waypoint motion capture system at 100 Hz for control purposes. The
to the quadrotor is defined as ri = xQ − rw . The normalized quadrotor platform setup is similar to our previous work [22].
w+1 −rw
direction between each waypoint is r̂c = krrw+1 −rw k2 . rn is
The control and estimation frameworks are developed in
the difference between ri and the projection of ri onto r̂c as ROS. The proposed LMPC method can run on-board at
100 Hz on a common laptop.
rn = I − r̂c r̂>
c (xQ − rw ) . (25)
Physically, rn represents the quadrotor’s distance to the 1 www.ros.org
5883
Authorized licensed use limited to: University of Stellenbosch. Downloaded on March 30,2023 at 13:17:10 UTC from IEEE Xplore. Restrictions apply.
Fig. 4: Iteration trajectories for the L-shaped track in simu- Fig. 6: Iteration trajectories for the L-shaped track in real-
lation. world experiments.
Fig. 5: Trajectory and velocity profiles across several itera- Fig. 7: Trajectory and velocity profiles across several itera-
tions for the L-shaped track in simulation. tions for the L-shaped track in real-world experiment.
TABLE II: The total travel time (s) of different iterations in
simulation and real-world experiments VI. C ONCLUSION
Iter Init 1 2 3 4 5 6
Real 10.0002 3.5291 3.6993 3.9895 3.6296 3.7494 3.7292 In this paper, we presented an LMPC for quadrotors.
Sim 14.1291 2.0900 2.4000 2.4300 2.4600 2.5299 2.5800 We addressed the challenges associated with the system
evolution on a nonlinear manifold configuration space which
requires careful considerations in the LMPC problem formu-
C. Results lation as well as in its forward numerical time integration. We
We show the simulation and real-world test results of a showed how to reduce its computational complexity to make
quadrotor traveling through an L-shape track with the LMPC. it compatible with the stringent requirements for real-time
The results of the simulation are shown in Figs. 4 and 5 control of quadrotors as well as its usefulness in a learning
whereas the real-world experiments in Figs. 6 and 7. The minimum time trajectory problem.
travel time for each iteration is reported in Table II. As we Future works will investigate the trade-offs between the
can observe from the plots, both in the simulation and real- incorporation of the dynamics till rotor speeds in the pro-
world experiments, the quadrotor can explore the track and posed approach to improve the system’s performance, agility,
find a locally optimal time trajectory which ends up a much and the corresponding increase in computational complexity
faster trajectory than the initial one. In Table II, we observe which may affect the system real-time performances. We
that as the iterations continue, the LMPC converges similar will leverage Bayesian machine learning techniques to refine
and stable travel time along the track. This proves that the the system dynamics incorporating unmodelled dynamical
LMPC can utilize the recorded states and costs in the past effects across multiple runs thus allowing us to further push
iteration and explore new faster trajectories for the quadrotor the system performances and agility limits. We will also con-
to accomplish the task. However, we notice that the final sider employing this method for drone racing tasks extending
lap time varies around a given value after convergence. We the proposed experiments to a full racing track. Finally, we
believe this behavior is mostly due to a mismatch between will investigate the use of different cost functions and how
real and modeled dynamics including our approximation to the availability of reference trajectories can potentially be
first-order attitude dynamics in eq. (8). exploited to improve the task performances.
5884
Authorized licensed use limited to: University of Stellenbosch. Downloaded on March 30,2023 at 13:17:10 UTC from IEEE Xplore. Restrictions apply.
R EFERENCES [12] H. Moon, J. Martinez-Carranza, T. Cieslewski, M. Faessler,
D. Falanga, A. Simovic, D. Scaramuzza, S. Li, M. Ozo, C. De Wagter,
[1] D. Falanga, P. Foehn, P. Lu, and D. Scaramuzza, “PAMPC: Perception- G. Croon, S. Hwang, S. Jung, H. Shim, H. Kim, M. Park, T.-C.
aware model predictive control for quadrotors,” in IEEE/RSJ Interna- Au, and s.-j. Kim, “Challenges and implemented technologies used
tional Conference on Intelligent Robots and Systems (IROS), 2018, pp. in autonomous drone racing,” Intelligent Service Robotics, vol. 12, 04
1–8. 2019.
[13] W. Guerra, E. Tal, V. Murali, G. Ryou, and S. Karaman, “Flightgog-
[2] D. Bicego, J. Mazzetto, M. Farina, R. Carli, and A. Franchi, “Nonlin-
gles: Photorealistic sensor simulation for perception-driven robotics
ear model predictive control with enhanced actuator model for multi-
using photogrammetry and virtual reality,” in IEEE/RSJ International
rotor aerial vehicles with generic designs,” Journal of Intelligent and
Conference on Intelligent Robots and Systems (IROS), 2019, pp. 6941–
Robotic Systems: Theory and Applications, vol. 100, p. 1213–1247,
6948.
2020.
[14] P. Foehn, D. Brescianini, E. Kaufmann, T. Cieslewski, M. Gehrig,
[3] M. Jacquet and A. Franchi, “Motor and perception constrained nmpc
M. Muglikar, and D. Scaramuzza, “AlphaPilot: Autonomous Drone
for torque-controlled generic aerial vehicles,” IEEE Robotics and
Racing,” in Proceedings of Robotics: Science and Systems, Corvalis,
Automation Letters, vol. 6, no. 2, pp. 518–525, 2021.
Oregon, USA, July 2020.
[4] G. Li∗ , A. Tunchez∗ , and G. Loianno, “PCMPC: Perception- [15] K. Mohta, M. Watterson, Y. Mulgaonkar, S. Liu, C. Qu, A. Makineni,
Constrained Model Predictive Control for Quadrotors with Suspended K. Saulnier, K. Sun, A. Zhu, J. Delmerico, K. Karydis, N. Atanasov,
Loads using a Single Camera and IMU,” in IEEE International G. Loianno, D. Scaramuzza, K. Daniilidis, C. J. Taylor, and V. Kumar,
Conference on Robotics and Automation (ICRA), 2021, pp. 2012– “Fast, autonomous flight in gps-denied and cluttered environments,”
2018. Journal of Field Robotics, vol. 35, no. 1, pp. 101–120, 2018.
[5] P. Bouffard, A. Aswani, and C. Tomlin, “Learning-based model [16] J. Solà, “Quaternion kinematics for the error-state kalman filter,”
predictive control on a quadrotor: Onboard implementation and exper- ArXiv, vol. abs/1711.02508, 2017.
imental results,” in IEEE International Conference on Robotics and [17] C. Rucker, “Integrating rotations using nonunit quaternions,” IEEE
Automation (ICRA), 2012, pp. 279–284. Robotics and Automation Letters, vol. 3, no. 4, pp. 2979–2986, 2018.
[6] G. Torrente, E. Kaufmann, P. Föhn, and D. Scaramuzza, “Data-driven [18] R. Hartley, J. Trumpf, Y. Dai, and H. Li, “Rotation averaging,”
mpc for quadrotors,” IEEE Robotics and Automation Letters, vol. 6, International Journal of Computer Vision, vol. 103, pp. 267–305,
no. 2, pp. 3769–3776, 2021. 2012.
[7] G. Williams, N. Wagener, B. Goldfain, P. Drews, J. M. Rehg, B. Boots, [19] M. Moakher, “Means and averaging in the group of rotations,” SIAM
and E. A. Theodorou, “Information theoretic mpc for model-based Journal on Matrix Analysis and Applications, vol. 24, 04 2002.
reinforcement learning,” in IEEE International Conference on Robotics [20] R. Verschueren, G. Frison, D. Kouzoupis, N. van Duijkeren, A. Zanelli,
and Automation (ICRA), 2017, pp. 1714–1721. R. Quirynen, and M. Diehl, “Towards a modular software package for
[8] D. Bristow, M. Tharayil, and A. Alleyne, “A survey of iterative embedded optimization,” in Proceedings of the IFAC Conference on
learning control,” IEEE Control Systems Magazine, vol. 26, no. 3, Nonlinear Model Predictive Control (NMPC), 2018.
pp. 96–114, 2006. [21] R. Verschueren, G. Frison, D. Kouzoupis, N. van Duijkeren, A. Zanelli,
[9] J. H. Lee and K. S. Lee, “Iterative learning control applied to B. Novoselnik, J. Frey, T. Albin, R. Quirynen, and M. Diehl, “aca-
batch processes: An overview,” Control Engineering Practice, vol. 15, dos—a modular open-source framework for fast embedded optimal
no. 10, pp. 1306–1318, 2007, special Issue - International Symposium control,” Mathematical Programming Computation, 2021.
on Advanced Control of Chemical Processes (ADCHEM). [22] G. Loianno, C. Brunner, G. McGrath, and V. Kumar, “Estimation,
[10] U. Rosolia and F. Borrelli, “Learning model predictive control for control, and planning for aggressive flight with a small quadrotor with
iterative tasks. a data-driven control framework,” IEEE Transactions a single camera and imu,” IEEE Robotics and Automation Letters,
on Automatic Control, vol. 63, no. 7, pp. 1883–1896, 2018. vol. 2, no. 2, pp. 404–411, April 2017.
[11] ——, “Learning model predictive control for iterative tasks: A compu-
tationally efficient approach for linear system,” IFAC-PapersOnLine,
vol. 50, no. 1, pp. 3142–3147, 2017, 20th IFAC World Congress.
5885
Authorized licensed use limited to: University of Stellenbosch. Downloaded on March 30,2023 at 13:17:10 UTC from IEEE Xplore. Restrictions apply.