Fast and embedded solvers for nonlinear optimal control
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
acados gnsf: added flag to import model matrices manually Feb 8, 2019
ci running unit tests also on release Sep 20, 2018
cmake temporarely disable lint Dec 11, 2018
docs Merge parent changes May 23, 2018
examples small fix Feb 1, 2019
experimental moved sim_discrete_model to experimental/broken_src Jan 23, 2019
external update blasfeo Jan 24, 2019
interfaces acados_matlab: fix to param ext_cost Feb 9, 2019
swig minimal integrator implementation and wrapper Oct 19, 2018
test add external cost to acados_matlab (used in the linear mass spring mo… Jan 31, 2019
webpage-source Update Installation subpage to point to GitHub Releases Apr 19, 2018 CMake for qpOASES (#94) Jun 14, 2017
.appveyor.yml removed deployment in appveyor Aug 22, 2018
.clang-format clang-format: allow multiple empty lines May 17, 2018
.codecov.yml try disabling codecov commit status Aug 21, 2018
.gitattributes Another small change to .gitattributes Jul 22, 2016
.gitignore update gitignore Oct 19, 2018
.gitmodules switched osqp branch to develop, bumped osqp, disabled internal PROFI… Dec 18, 2018
.travis.yml updated secure variables Sep 20, 2018
CMakeConfig.txt Rewrite the installation system of acados Oct 19, 2017
CMakeLists.txt returned -std=c99 flag in acados Dec 18, 2018
COPYING CMake for qpOASES (#94) Jun 14, 2017
CPPLINT.cfg Change brace style to Allman Apr 19, 2018
LICENSE Initial commit Apr 27, 2015
Makefile edit for openmp Jan 30, 2019
Makefile.osqp moved OSQP build system from Makefile to Makefile.osqp Jan 16, 2019
Makefile.rule add -std=c99 to cflags in make (TODO fix the loop indeces to not need… Feb 1, 2019 slight update of readme file Sep 28, 2018 removed python ctypes interface Nov 13, 2018 used acados_format, fixed cmake Nov 9, 2018
convention_about_external_functions.txt add external cost to acados_matlab (used in the linear mass spring mo… Jan 31, 2019 fixed lint Jun 14, 2018 removed broken ocp_nlp.m from CMakeLists; fixed sanity checks integra… Dec 11, 2018 gnsf: added flag to import model matrices manually Feb 8, 2019


Travis Status Appveyor status codecov

Fast and embedded solvers for nonlinear optimal control.


If you are on Ubuntu (tested with 16.04), you can run ./ You can also follow the manual installation instructions below.

  • soon: binaries for all operating systems available for download (see Releases)

Getting started


First, add CasADi and acados to your MATLAB path. From a MATLAB command window

addpath <path_to_acados_root_folder>/external/casadi-matlabR2014b-v3.4.0
addpath <path_to_acados_installation_folder>
% To permanently add these paths:

Run an acados example, from <path_to_acados_root_folder>/examples/matlab/:



acados only supports Python3. Add CasADi and acados to the PYTHONPATH environment variable (add those lines to your .bashrc or .zshrc to set the paths permanently):

export PYTHONPATH=<path_to_acados_root_folder>/external/casadi-py35-v3.4.0-64bit:$PYTHONPATH
export PYTHONPATH=<path_to_acados_installation_folder>:$PYTHONPATH

To run a Python example from the acados root folder:

python examples/python/

Manual Installation

Otherwise, follow the steps below:

  1. Install the dependencies:

    sudo apt-get install libgsl0-dev liblapack-dev libopenblas-dev liboctave-dev libeigen3-dev python3-tk
    sudo apt-get install byacc # for swig
    sudo apt-get install python3-scipy python3-numpy python3-matplotlib
  2. Download CasADi into the <acados_root_folder>/external folder:

    cd external
    wget -q -nc
    mkdir -p casadi-octave-v3.4.0
    tar -xf casadi-linux-octave-v3.4.0.tar.gz -C casadi-octave-v3.4.0
    wget -q -nc
    mkdir -p casadi-py35-v3.4.0-64bit
    tar -xf casadi-linux-py35-v3.4.0-64bit.tar.gz -C casadi-py35-v3.4.0-64bit
    wget -q -nc
    mkdir -p casadi-matlabR2014b-v3.4.0
    tar -xf casadi-linux-matlabR2014b-v3.4.0.tar.gz -C casadi-matlabR2014b-v3.4.0
    cd ..
  3. Initialize all submodules

    git submodule update --recursive --init
  4. Build and install swig. Make sure you don't have an older version installed (e.g. via the package system):

    cd external/swig
    ./configure --prefix=$(pwd)/swig_install --enable-silent-rules
    make install > /dev/null    # quiet installation
    export PATH=$(pwd):$PATH    # add swig to PATH
    cd ../.. # back to acados root folder
  5. Build and install acados. By default, acados is installed in $HOME/local/lib. If you want to install acados elsewhere, pass -D ACADOS_INSTALL_DIR=<path_to_acados_installation_folder> to cmake below.

    mkdir -p build
    cd build
    cmake -D SWIG_MATLAB=1 -D SWIG_PYTHON=1 ..   # set SWIG_MATLAB=0 if you don't have MATLAB installed
    make install