OpEn: Code Generation for Embedded Nonconvex Optimization

We present Optimization Engine (OpEn): an open-source code generation tool for real-time embedded nonconvex optimization, which implements a novel numerical method. OpEn combines the proximal averaged Newton-type method for optimal control (PANOC) with the penalty and augmented Lagrangian methods to compute approximate stationary points of nonconvex problems. The proposed method involves very simple algebraic operations such as vector products, has a low memory footprint and exhibits very good convergence properties that allow the solution of nonconvex problems on embedded devices. OpEn's core solver is written is Rust - a modern, high-performance, memory-safe and thread-safe systems programming language - while users can call it from Python, MATLAB, C, C++ or over a TCP socket.

[1]  Masao Fukushima,et al.  On the Global Convergence of the BFGS Method for Nonconvex Unconstrained Optimization Problems , 2000, SIAM J. Optim..

[2]  Moritz Diehl,et al.  CasADi: a software framework for nonlinear optimization and optimal control , 2018, Mathematical Programming Computation.

[3]  Moritz Diehl,et al.  A Homotopy-based Nonlinear Interior-Point Method for NMPC , 2017 .

[4]  Moritz Diehl,et al.  ACADO toolkit—An open‐source framework for automatic control and dynamic optimization , 2011 .

[5]  Stephen P. Boyd,et al.  Real-Time Convex Optimization in Signal Processing , 2010, IEEE Signal Processing Magazine.

[6]  L. Biegler,et al.  Large scale inequality constrained optimization and control , 1998 .

[7]  D K Smith,et al.  Numerical Optimization , 2001, J. Oper. Res. Soc..

[8]  Peter Kilpatrick,et al.  Challenges and Opportunities in Edge Computing , 2016, 2016 IEEE International Conference on Smart Cloud (SmartCloud).

[9]  Rolf Findeisen,et al.  μAO-MPC: A free code generation tool for embedded real-time linear model predictive control , 2013, 2013 American Control Conference.

[10]  Anis Koubâa,et al.  Robot Operating System (ROS): The Complete Reference (Volume 7) , 2016, Studies in Computational Intelligence.

[11]  Moritz Diehl,et al.  Towards a modular software package for embedded optimization , 2018 .

[12]  Klaus Schittkowski,et al.  Very large scale optimization by sequential convex programming , 2004, Optim. Methods Softw..

[13]  Goele Pipeleers,et al.  Embedded nonlinear model predictive control for obstacle avoidance using PANOC , 2018, 2018 European Control Conference (ECC).

[14]  Moritz Diehl,et al.  An auto-generated real-time iteration algorithm for nonlinear MPC in the microsecond range , 2011, Autom..

[15]  José Mario Martínez,et al.  Practical augmented Lagrangian methods for constrained optimization , 2014, Fundamentals of algorithms.

[16]  Alexey F. Izmailov,et al.  Global Convergence of Augmented Lagrangian Methods Applied to Optimization Problems with Degenerate Constraints, Including Problems with Complementarity Constraints , 2012, SIAM J. Optim..

[17]  Stephen P. Boyd,et al.  CVXGEN: a code generator for embedded convex optimization , 2011, Optimization and Engineering.

[18]  Anis Koubaa Robot Operating System (ROS): The Complete Reference (Volume 1) , 2016 .

[19]  Nicholas D. Matsakis,et al.  The rust language , 2014, HILT '14.

[20]  Pantelis Sopasakis,et al.  Aerial navigation in obstructed environments with embedded nonlinear model predictive control , 2018, 2019 18th European Control Conference (ECC).

[21]  Lorenz T. Biegler,et al.  On the implementation of an interior-point filter line-search algorithm for large-scale nonlinear programming , 2006, Math. Program..

[22]  Alexander Domahidi,et al.  Embedded optimization methods for industrial automatic control , 2017 .

[23]  Pantelis Sopasakis,et al.  A simple and efficient algorithm for nonlinear model predictive control , 2017, 2017 IEEE 56th Annual Conference on Decision and Control (CDC).

[24]  Eric C. Kerrigan,et al.  Software and hardware code generation for predictive control using splitting methods , 2017 .

[25]  Michael A. Saunders,et al.  SNOPT: An SQP Algorithm for Large-Scale Constrained Optimization , 2002, SIAM J. Optim..

[26]  Goele Pipeleers,et al.  A Penalty Method Based Approach for Autonomous Navigation using Nonlinear Model Predictive Control , 2018, 1805.02524.

[27]  Stefan Scholtes,et al.  Mathematical Programs with Complementarity Constraints: Stationarity, Optimality, and Sensitivity , 2000, Math. Oper. Res..

[28]  Panagiotis Patrinos,et al.  Forward-Backward Envelope for the Sum of Two Nonconvex Functions: Further Properties and Nonmonotone Linesearch Algorithms , 2016, SIAM J. Optim..

[29]  Helfried Peyrl,et al.  Towards proper assessment of QP algorithms for embedded model predictive control , 2015, 2015 European Control Conference (ECC).

[30]  Stephen P. Boyd,et al.  Embedded code generation using the OSQP solver , 2017, 2017 IEEE 56th Annual Conference on Decision and Control (CDC).