Skip to content
master
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
bin
 
 
ci
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

acados

Appveyor status

Fast and embedded solvers for nonlinear optimal control.

General

  • acados offers interfaces to the programming languages C, Python, MATLAB and Octave
  • Documentation can be found on docs.acados.org
  • Forum: If you have any acados-related question, feel free to post on our forum discourse.acados.org.
  • Citing acados: references can be found here and here.

Installation

  1. Initialize all submodules

    git submodule update --recursive --init
    
  2. Build and install acados. Both a CMake and a Makefile based build system is supported at the moment. Please choose one and proceed with the corresponding paragraph.

    CMake

    Set the BLASFEO_TARGET in <acados_root>/CMakeLists.txt. For a list of supported targets, we refer to https://github.com/giaf/blasfeo/blob/master/README.md . Install acados as follows

    mkdir -p build
    cd build
    cmake .. # with optional arguments e.g. -DACADOS_WITH_OSQP=OFF/ON -DACADOS_INSTALL_DIR=<path_to_acados_installation_folder>
    make install
    

    Make

    Set the BLASFEO_TARGET in <acados_root>/Makefile.rule. For a list of supported targets, we refer to https://github.com/giaf/blasfeo/blob/master/README.md . Install acados as follows

    make shared_library
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path_to_acados_folder>/lib
    make examples_c
    make run_examples_c
    

acados interfaces

acados written in C and offers interfaces to the programming languages C, Python, MATLAB and Octave.

C interface

  • This includes all functionality in <acados_root>/interfaces/acados_c.
  • Documentation can be found here: C API

MATLAB and Octave interface

  • The interface is written in MEX
  • It deals with the problem formulation described in this PDF
  • To get started
    • install acados as described above
    • Octave users: provide a CasADi version in <acados_root>/external/casadi_octave/. We recommend version 3.4.5. For Matlab, a CasADi version should be provided in <acados_root>/external/casadi_matlab/, however, this is done automatically when using the examples in the getting_started folder. On Linux machines with Octave 4.4.1. or later this can be done as follows:
        cd external
        wget -q -nc --show-progress https://github.com/casadi/casadi/releases/download/3.4.5/casadi-linux-octave-4.4.1-v3.4.5.tar.gz
        mkdir -p casadi-octave
        tar -xf casadi-linux-octave-4.4.1-v3.4.5.tar.gz -C casadi-octave
      
    • Linux and MacOS users:
      • in a terminal navigate to <acados_root>/examples/acados_matlab_octave/getting_started
      • run source env.sh and start Matlab/Octave
    • Windows users:
      • start Matlab
      • run acados_examples_env.m in <acados_root>/examples/acados_matlab_octave
    • enjoy the examples in <acados_root>/examples/acados_matlab_octave/getting_started
  • More documentation can be found on docs.acados.org/interfaces/

Python interface

  • The interface is based on templated C code, header files and a Makefile, which are rendered with the templating engine Tera.
  • The generated C code can be easily deployed on embedded platforms.
  • The same problem formulation as for the MATLAB interface is used (see here).
  • The ctypes package is used to interact with the rendered Code.
  • CasADi is required and is downloaded automatically, when installing the Python interface using pip
  • More documentation can be found on docs.acados.org/interfaces/
You can’t perform that action at this time.