acados/acados

Fast and embedded solvers for nonlinear optimal control and nonlinear model predictive control

What it solves

acados provides fast, embedded solvers for nonlinear optimal control problems (OCP). It is specifically designed to handle the computational demands of real-time applications, such as Model Predictive Control (MPC) and Moving Horizon Estimation (MHE), where problems must be solved repeatedly and quickly within high-frequency control loops.

How it works

Written in C for maximum performance, the software exploits the specific structure of optimal control problems to achieve efficiency. It uses tailored quadratic programming (QP) solvers (like HPIPM) and condensing methods to speed up calculations. The system supports multiple shooting for time discretization and offers various integration methods for solving ordinary and differential algebraic equations (ODE/DAE). It is modular, allowing users to mix and match NLP solvers, QP solvers, and regularization methods. Users can define problems using Python, MATLAB, or Octave interfaces, often leveraging the CasADi symbolic framework for nonlinear expressions.

Who it’s for

It is intended for engineers and researchers working on high-performance embedded systems, specifically in fields like robotics (quadrotors, legged locomotion), autonomous vehicles, aerospace (trajectory optimization), energy systems, and biomechanics.

Highlights

  • Real-time performance: Optimized for time-critical, high-frequency control loops.
  • Embedded focus: Written in C for deployment on embedded hardware.
  • ** Endgame for ML**: Can be embedded as a differentiable layer in machine learning architectures to combine MPC with reinforcement learning.
  • Flexible formulation: Supports multi-stage or multi-phase problems where functions and dimensions can vary between stages.
  • Broad language support: Interfaces for Python, MATLAB, and Octave.

Related

  • Project
  • Project
  • Project
  • Project
  • Project