acados – a modular open-source framework for fast embedded optimal control. (English) Zbl 07507324

Summary: This paper presents the acados software package, a collection of solvers for fast embedded optimization intended for fast embedded applications. Its interfaces to higher-level languages make it useful for quickly designing an optimization-based control algorithm by putting together different algorithmic components that can be readily connected and interchanged. Since the core of acados is written on top of a high-performance linear algebra library, we do not sacrifice computational performance. Thus, we aim to provide both flexibility and performance through modularity, without the need to rely on automatic code generation, which facilitates maintainability and extensibility. The main features of acados are: efficient optimal control algorithms targeting embedded devices implemented in C, linear algebra based on the high-performance BLASFEO Frison (ACM Transactions on Mathematical Software (TOMS) 44: 1–30, 2018) library, user-friendly interfaces to Matlab and Python, and compatibility with the modeling language of CasADi Andersson (Mathematical Programming Computation 11: 136, 2019). acados is free and open-source software released under the permissive BSD 2-Clause license.


68-XX Computer science
Full Text: DOI


[1] Albersmeyer, J.: Adjoint-based algorithms and numerical methods for sensitivity generation and optimization of large scale dynamic systems. University of Heidelberg, NY (2010). (Ph.D. thesis) · Zbl 1210.65003
[2] Albersmeyer, J.; Diehl, M., The lifted Newton method and its application in optimization, SIAM J. Optim., 20, 3, 1655-1684 (2010) · Zbl 1198.90396
[3] Albin, T., Ritter, D., Liberda, N., Quirynen, R., Diehl, M.: In-vehicle realization of nonlinear MPC for gasoline two-stage turbocharging airpath control. IEEE Transactions on Control Systems Technology , 1-13 (2017)
[4] Andersson, JAE; Gillis, J.; Horn, G.; Rawlings, JB; Diehl, M., CasADi—a software framework for nonlinear optimization and optimal control, Math. Programm. Comput., 11, 1, 1-36 (2019) · Zbl 1411.90004
[5] Andersson, J.A.E., Rawlings, J.B.: Sensitivity analysis for nonlinear programming in casadi. In: Proceedings of the IFAC Conference on Nonlinear Model Predictive Control (NMPC) (2018)
[6] Axehill, D., Controlling the level of sparsity in MPC, Syst. Control Lett., 76, 1-7 (2015) · Zbl 1307.93151
[7] Bailly, F.; Ceglia, A.; Michaud, B.; Rouleau, DM; Begon, M., Real-time and dynamically consistent estimation of muscle forces using a moving horizon emg-marker tracking algorithm-application to upper limb biomechanics, Front. Bioeng. Biotechnol., 9, 112 (2021)
[8] Bemporad, A.: Hybrid Toolbox for Matlab (2003)
[9] Bemporad, A., Borrelli, F., Morari, M.: In: The explicit solution of constrained LP-based receding horizon control. In: Proceedings of the IEEE Conference on Decision and Control (CDC) , Sydney, Australia (1999)
[10] Bock, H., Randwertproblemmethoden zur Parameteridentifizierung in Systemen nichtlinearer Differentialgleichungen, Bonner Mathematische Schriften (1987), Bonn: Universität Bonn, Bonn · Zbl 0622.65064
[11] Bock, H.G.: Recent advances in parameter identification techniques for ODE. In: Numerical Treatment of Inverse Problems in Differential and Integral Equations, pp. 95-121. Birkhäuser (1983)
[12] Bock, H.G., Diehl, M., Kühl, P., Kostina, E., Schlöder, J.P., Wirsching, L.: Numerical methods for efficient and fast nonlinear model predictive control. In: Proceedings of “Int. Workshop on assessment and future directions of Nonlinear Model Predictive Control”. Springer (2005) · Zbl 1223.93052
[13] Bock, H.G., Plitt, K.J.: In: A multiple shooting algorithm for direct solution of optimal control problems, In: Proceedings of the IFAC World Congress, pp. 242-247. Pergamon Press (1984)
[14] Carlos, B.B., Sartor, T., Zanelli, A., Frison, G., Burgard, W., Diehl, M., Oriolo, G.: An efficient real-time nmpc for quadrotor position control under communication time-delay. In: 2020 16th International Conference on Control, Automation, Robotics and Vision (ICARCV), pp. 982-989 (2020)
[15] Chen, Y., Bruschetta, M., Picotti, E., Beghi, A.: Matmpc - a matlab based toolbox for real-time nonlinear model predictive control. arXiv preprint (2018)
[16] Cheshmi, K., Kaufman, D.M., Kamil, S., Dehnavi, M.M.: NASOQ: Numerically accurate sparsity-oriented qp solver. In: ACM Transactions on Graphics, vol. 39
[17] Chiang, NY; Hang, R.; Zavala, VM, An augmented lagrangian filter method for real-time embedded optimization, IEEE Trans. Automatic Control, 62, 12, 6110-6121 (2017) · Zbl 1390.90439
[18] Cimini, G.; Bemporad, A., Exact complexity certification of active-set methods for quadratic programming, IEEE Trans. Automatic Control, 62, 12, 6094-6109 (2017) · Zbl 1390.93499
[19] Deng, H., Ohtsuka, T.: A highly parallelizable newton-type method for nonlinear model predictive control. In: Proceedings of the IFAC Conference on Nonlinear Model Predictive Control (NMPC) (2018)
[20] Di Cairano, S.; Brand, M.; Bortoff, SA, Projection-free parallel quadratic programming for linear model predictive control, Int. J. Control, 86, 8, 1367-1385 (2013) · Zbl 1278.90291
[21] Diehl, M.; Bock, HG; Schlöder, JP; Findeisen, R.; Nagy, Z.; Allgöwer, F., Real-time optimization and nonlinear model predictive control of processes governed by differential-algebraic equations, J. Process Control, 12, 4, 577-585 (2002)
[22] Diehl, M., Ferreau, H.J., Haverbeke, N.: Efficient numerical methods for nonlinear MPC and moving horizon estimation. In: L. Magni, M. Raimondo, F. Allgöwer (eds.) Nonlinear model predictive control, Lecture Notes in Control and Information Sciences, vol. 384, pp. 391-417. Springer (2009) · Zbl 1195.93038
[23] Domahidi, A., Chu, E., Boyd, S.: In: ECOS: An SOCP solver for embedded systems, In: Proceedings of the European Control Conference (ECC) pp. 3071-3076. IEEE (2013)
[24] Domahidi, A., Zgraggen, A., Zeilinger, M.N., Morari, M., Jones, C.N.: Efficient interior point methods for multistage problems arising in receding horizon control. In: Proceedings of the IEEE Conference on Decision and Control (CDC), pp. 668-674. Maui, HI, USA (2012)
[25] dSPACE: Homepage. http://www.dspace.com (2006)
[26] Englert, T.; Völz, A.; Mesmer, F.; Rhein, S.; Graichen, K., A software framework for embedded nonlinear model predictive control using a gradient-based augmented lagrangian approach (GRAMPC), Optim. Eng., 20, 3, 769-809 (2019) · Zbl 07123819
[27] Ferreau, H.J., Almer, S., Verschueren, R., Diehl, M., Frick, D., Domahidi, A., Jerez, J.L., Stathopoulos, G., Jones, C.: Embedded optimization methods for industrial automatic control. In: Proceedings of the IFAC World Congress (2017)
[28] Ferreau, HJ; Kirches, C.; Potschka, A.; Bock, HG; Diehl, M., qpOASES: a parametric active-set algorithm for quadratic programming, Math. Programm. Comput., 6, 4, 327-363 (2014) · Zbl 1302.90146
[29] Franke, R.; Arnold, E., Computer Intensive Methods in Control and Signal Processing Applying new numerical algorithms to the solution of discrete-time optimal control problems, 105-117 (1997), NY: Springer, NY · Zbl 0914.93023
[30] Frasch, JV; Sager, S.; Diehl, M., A parallel quadratic programming method for dynamic optimization problems, Math. Programm. Comput., 7, 3, 289-329 (2015) · Zbl 1321.90094
[31] Frey, J., Cairano, S.D., Quirynen, R.: Active-Set based Inexact Interior Point QP Solver for Model Predictive Control. In: Proceedings of the IFAC World Congress (2020)
[32] Frey, J., Quirynen, R., Kouzoupis, D., Frison, G., Geisler, J., Schild, A., Diehl, M.: Detecting and exploiting Generalized Nonlinear Static Feedback structures in DAE systems for MPC. In: Proceedings of the European Control Conference (ECC) (2019)
[33] Frison, G.: Algorithms and methods for high-performance model predictive control. Technical University of Denmark (DTU) (2015). (Ph.D. thesis)
[34] Frison, G., Diehl, M.: In: HPIPM: a high-performance quadratic programming framework for model predictive control. In: Proceedings of the IFAC World Congress, Berlin, Germany (2020)
[35] Frison, G.; Kouzoupis, D.; Sartor, T.; Zanelli, A.; Diehl, M., BLASFEO: Basic linear algebra subroutines for embedded optimization, ACM Trans. Math. Softw. (TOMS), 44, 4, 1-30 (2018) · Zbl 1484.65096
[36] Frison, G., Quirynen, R., Zanelli, A., Diehl, M., Jørgensen, J.B.: Hardware tailored linear algebra for implicit integrators in embedded NMPC. In: Proceedings of the IFAC World Congress (2017)
[37] Frison, G., Sorensen, H.B., Dammann, B., Jørgensen, J.B.: High-performance small-scale solvers for linear model predictive control. In: Proceedings of the European Control Conference (ECC). IEEE (2014)
[38] Gertz, EM; Wright, SJ, Object-oriented software for quadratic programming, ACM Trans. Math. Softw., 29, 1, 58-81 (2003) · Zbl 1068.90586
[39] Giftthaler, M., Neunert, M., Stäuble, M., Buchli, J.: The Control Toolbox—an open-source C++ library for robotics, optimal and model predictive control. In: IEEE International Conference on Simulation, Modeling, and Programming for Autonomous Robots (SIMPAR) (2018)
[40] Griewank, A.: Evaluating Derivatives, Principles and Techniques of Algorithmic Differentiation. No. 19 in Frontiers in Appl. Math. SIAM, Philadelphia (2000) · Zbl 0958.65028
[41] Gros, S.; Srinivasan, B.; Bonvin, D., Robust predictive control based on neighboring extremals, J. Process Control, 16, 243-253 (2006)
[42] Gros, S.; Zanon, M.; Quirynen, R.; Bemporad, A.; Diehl, M., From linear to nonlinear MPC: bridging the gap via the real-time iteration, Int. J. Control, 93, 1, 62-80 (2016) · Zbl 1430.93062
[43] Grüne, L.; Pannek, J., Nonlinear Model Predictive Control (2017), NY: Springer, NY · Zbl 1429.93003
[44] Hairer, E.; Nørsett, S.; Wanner, G., Solving Ordinary Differential Equations I (1993), Berlin: Springer, Berlin · Zbl 0789.65048
[45] Hairer, E.; Wanner, G., Solving Ordinary Differential Equations II—tiff and Differential-Algebraic Problems (1991), Heidelberg: Springer, Heidelberg · Zbl 0729.65051
[46] Hehn, M., D’Andrea, R.: A flying inverted pendulum. In: IEEE International Conference on Robotics and Automation, pp. 763-770
[47] Herceg, M., Kvasnica, M., Jones, C., Morari, M.: Multi-Parametric Toolbox 3.0. In: Proc. of the European Control Conference, pp. 502-510. Zürich, Switzerland (2013). (mpt)
[48] Hermans, B., Themelis, A., Patrinos, P.: Qpalm: A proximal augmented lagrangian method for nonconvex quadratic programs. arXiv: 2010.02653
[49] Houska, B.; Ferreau, HJ; Diehl, M., An auto-generated real-time iteration algorithm for nonlinear MPC in the microsecond range, Automatica, 47, 10, 2279-2285 (2011) · Zbl 1227.65054
[50] Kalmari, J.; Backman, J.; Visala, A., A toolkit for nonlinear model predictive control using gradient projection and code generation, Control Eng. Practice, 39, 56-66 (2015)
[51] Käpernick, B., Graichen, K.: The gradient based nonlinear model predicitive control software GRAMPC. In: Proceedings of the European Control Conference (ECC) (2014) · Zbl 1343.93034
[52] Katliar, M.: Optimal control of motion simulators. Albert-Ludwigs-Universität Freiburg (2020). (Ph.D. thesis)
[53] Khusainov, B., Kerrigan, E.C., Suardi, A., Constantinides, G.A.: Nonlinear predictive control on a heterogeneous computing platform. In: Proceedings of the IFAC World Congress (2017)
[54] Kirches, C., Bock, H.G., Schlöder, J.P., Sager, S.: Complementary condensing for the direct multiple shooting method. In: Bock, H.G., Hoang, X.P., Rannacher, R., Schlöder, J.P. (eds.) Modeling. Simulation and Optimization of Complex Processes, pp. 195-206. Springer, Berlin Heidelberg (2012)
[55] Kloeser, D., Schoels, T., Sartor, T., Zanelli, A., Frison, G., Diehl, M.: NMPC for racing using a singularity-free path-parametric model with obstacle avoidance. In: Proceedings of the IFAC World Congress (2020)
[56] Kouzoupis, D., Ferreau, H.J., Peyrl, H., Diehl, M.: First-order methods in embedded nonlinear model predictive control. In: Proceedings of the European Control Conference (ECC), (2015)
[57] Kouzoupis, D., Quirynen, R., Frasch, J.V., Diehl, M.: Block condensing for fast nonlinear MPC with the dual Newton strategy. In: Proceedings of the IFAC Conference on Nonlinear Model Predictive Control (NMPC) 48, 26-31 (2015)
[58] Kvamme, S.: DuQuad Webpage. http://sverrkva.github.io/duquad/ (2014)
[59] Leineweber, D.B.: Efficient reduced SQP methods for the optimization of chemical processes described by large sparse DAE models, Fortschritt-Berichte VDI Reihe 3, Verfahrenstechnik, vol. 613. VDI Verlag, Düsseldorf (1999) · Zbl 0997.65502
[60] Leineweber, DB; Bauer, I.; Bock, HG; Schlöder, JP, An efficient multiple shooting based reduced SQP strategy for large-scale dynamic process optimization. Part I: theoretical aspects, Comput. Chem. Eng., 27, 157-166 (2003)
[61] Li, WC; Biegler, LT, Multistep, Newton-type control strategies for constrained nonlinear processes, Chem. Eng. Res. Des., 67, 562-577 (1989)
[62] Liniger, A.; Domahidi, A.; Morari, M., Optimization-based autonomous racing of 1:43 scale RC cars, Optim. Control Appl. Methods, 36, 5, 628-647 (2015) · Zbl 1330.93094
[63] Listov, P.; Jones, C., PolyMPC: an efficient and extensible tool for real-time nonlinear model predictive tracking and path following for fast mechatronic systems, Optim. Control Appl. Methods, 41, 2, 709-727 (2020) · Zbl 1467.93094
[64] Löw, S.; Obradovic, D.; Bottasso, C., Model predictive control of wind turbine fatigue via online rainflow-counting on stress history and prediction, J. Phys. Conf. Ser., 1618, 022041 (2020)
[65] Maciejowski, JM, Predictive Control with Constraints (2002), NY: Prentice Hall, NY · Zbl 0978.93002
[66] MathWorks, T.: The model predictive control toolbox. https://mathworks.com/products/mpc.html (2005)
[67] Mattingley, J., Boyd, S.: CVXGEN, A code generator for embedded convex optimization. Optimization and Engineering , 1-27 (2012) · Zbl 1293.65095
[68] Melis, W., Patrinos, P.: C code generation for NMPC. https://github.com/kul-forbes/nmpc-codegen (2018)
[69] Nocedal, J.; Wright, SJ, Numerical Optimization (2006), Ny: Springer, Ny · Zbl 1104.65059
[70] Nurkanović, A., Zanelli, A., Frison, G., Albrecht, S., Diehl, M.: Contraction properties of the advanced step real-time iteration. In: Proceedings of the IFAC World Congress, vol. 51 (2020). (accepted)
[71] Ohtsuka, T., A continuation/GMRES method for fast computation of nonlinear receding horizon control, Automatica, 40, 4, 563-574 (2004) · Zbl 1168.93340
[72] Pandala, AG; Ding, Y.; Park, HW, qpSWIFT: a real-time sparse quadratic program solver for robotic applications, IEEE Robot. Autom. Lett., 4, 4, 3355-3362 (2019)
[73] Patrinos, P.; Bemporad, A., An accelerated dual gradient-projection algorithm for embedded linear model predictive control, Automatic Control, IEEE Trans., 59, 1, 18-33 (2014) · Zbl 1360.93400
[74] Qin, S., Badgwell, T.: An overview of industrial model predictive control technology. In: Kantor, J., Garcia, C., Carnahan, B. (eds.) Fifth International Conference on Chemical Process Control - CPC V, pp. 232-256. American Institute of Chemical Engineers (1996)
[75] Quirynen, R., Gros, S., Diehl, M.: Efficient NMPC for nonlinear models with linear subsystems. In: Proceedings of the IEEE Conference on Decision and Control (CDC), (2013)
[76] Quirynen, R.; Gros, S.; Diehl, M., Inexact Newton-type optimization with iterated sensitivities, SIAM J. Optim., 28, 1, 74-95 (2018) · Zbl 1381.49028
[77] Quirynen, R.; Gros, S.; Houska, B.; Diehl, M., Lifted collocation integrators for direct optimal control in ACADO toolkit, Math. Programm. Comput., 9, 4, 527-571 (2017) · Zbl 1387.65057
[78] Quirynen, R.; Houska, B.; Diehl, M., Efficient symmetric Hessian propagation for direct optimal control, J. Process Control, 50, 19-28 (2017)
[79] Quirynen, R., Knyazev, A., Di Cairano, S.: Block structured preconditioning within an active-set method for real-time optimal control. In: Proceedings of the European Control Conference (ECC) (2018)
[80] Rao, CV; Wright, SJ; Rawlings, JB, Application of interior-point methods to model predictive control, J. Optim. Theory Appl., 99, 723-757 (1998) · Zbl 0973.90092
[81] Rawlings, JB; Mayne, DQ; Diehl, MM, Model Predictive Control: Theory, Computation, and Design (2017), NY: Nob Hill, NY
[82] Sathya, A., Sopasakis, P., Themelis, A., Parys, R.V., Pipeleers, G., Patrinos, P.: Embedded nonlinear model predictive control for obstacle avoidance using PANOC. In: Proceedings of the European Control Conference (ECC) (2018)
[83] 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., 33, 9, 1251-1270 (2014)
[84] Shukla, H., Khusainov, B., Kerrigan, E., Jones, C.: Software and hardware code generation for predictive control using splitting methods. In: Proceedings of the IFAC World Congress (2017)
[85] Sopasakis, P., Fresk, E., Patrinos, P.: OpEn: Code generation for embedded nonconvex optimization. In: IFAC World Congress
[86] Steinbach, M.: Fast recursive SQP methods for large-scale optimal control problems. University of Heidelberg, IWR (1995). (PhD thesis) · Zbl 0826.49026
[87] Stellato, B.; Banjac, G.; Goulart, P.; Bemporad, A.; Boyd, S., OSQP: an operator splitting solver for quadratic programs, Math. Programm. Comput., 12, 4, 637-672 (2020) · Zbl 1452.90236
[88] Torrisi, G.; Grammatico, S.; Smith, RS; Morari, M., A projected gradient and constraint linearization method for nonlinear model predictive control, SIAM J. Control Optim., 56, 3, 1968-1999 (2018) · Zbl 1391.90581
[89] Ullmann, F.: FiOrdOs: A Matlab toolbox for C-code generation for first order methods. ETH Zurich (2011). (Master’s thesis, ETH Zurich)
[90] Verschueren, R., van Duijkeren, N., Quirynen, R., Diehl, M.: Exploiting convexity in direct optimal control: a sequential convex quadratic programming method. In: Proceedings of the IEEE Conference on Decision and Control (CDC) (2016)
[91] Verschueren, R., Frison, G., Kouzoupis, D., van Duijkeren, N., Zanelli, A., Quirynen, R., Diehl, M.: Towards a modular software package for embedded optimization. In: Proceedings of the IFAC Conference on Nonlinear Model Predictive Control (NMPC) (2018)
[92] Verschueren, R.; Zanon, M.; Quirynen, R.; Diehl, M., A sparsity preserving convexification procedure for indefinite quadratic programs arising in direct optimal control, SIAM J. Optim., 27, 3, 2085-2109 (2017) · Zbl 1376.49036
[93] Wächter, A.; Biegler, LT, Line search filter methods for nonlinear programming: motivation and global convergence, SIAM J. Optim., 16, 1-31 (2006) · Zbl 1114.90128
[94] Wächter, A.; Biegler, LT, On the implementation of an interior-point filter line-search algorithm for large-scale nonlinear programming, Math. Programm., 106, 1, 25-57 (2006) · Zbl 1134.90542
[95] Wirsching, L., Bock, H.G., Diehl, M.: Fast NMPC of a chain of masses connected by springs. In: Proceedings of the IEEE International Conference on Control Applications, Munich, (2006)
[96] Zanelli, A.; Domahidi, A.; Jerez, JL; Morari, M., FORCES NLP: An efficient implementation of interior-point methods for multistage nonlinear nonconvex programs, Int. J. Control, 93, 1, 1-26 (2017) · Zbl 1430.93069
[97] Zanelli, A., Kullick, J., Eldeeb, H., Frison, G., Hackl, C., Diehl, M.: Continuous control set nonlinear model predictive control of reluctance synchronous machines. IEEE Transactions on Control Systems Technology (accepted) - arXiv:1910.10681, (2019)
[98] Zanelli, A., Quirynen, R., Diehl, M.: In: Efficient zero-order NMPC with feasibility and stability guarantees. In: Proceedings of the European Control Conference (ECC)., Naples, Italy (2019)
[99] Zometa, P., Kögel, M., Findeisen, R.: muAO-MPC: A free code generation tool for embedded real-time linear model predictive control. In: 2013 American Control Conference, pp. 5320-5325 (2013)
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.