Skip to content
Fast and embedded solvers for nonlinear optimal control
C MATLAB C++ Python CMake Makefile Other
Branch: master
Clone or download

Latest commit

FreyJo Merge pull request #610 from FreyJo/ext_cost_custom_hess_new
Add option to use numerical hessian approximation for contribution of external cost module
Latest commit a1cf26c Jun 5, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
acados change namings: cost_custom_hessian -> cost_numerical_hessian, ext_co… Jun 5, 2020
bin Merge remote-tracking branch 'FreyJo/free_x0' into update_templates Jan 17, 2020
ci ci: separate t_renderer installation Mar 12, 2020
cmake travis, cmake: remove CASADIPATH (was unused) remove SWIG_{MATLAB,PYT… Sep 10, 2019
docs docs: polish memory_management.md Apr 24, 2020
examples change namings: cost_custom_hessian -> cost_numerical_hessian, ext_co… Jun 5, 2020
experimental C: external function input/output checked dimension, remove note Mar 12, 2020
external update HPIPM May 4, 2020
interfaces change namings: cost_custom_hessian -> cost_numerical_hessian, ext_co… Jun 5, 2020
test nls cost: more consistent external function naming Mar 17, 2020
utils travis, cmake: remove CASADIPATH (was unused) remove SWIG_{MATLAB,PYT… Sep 10, 2019
.appveyor.yml testing appveyor output on failure Aug 16, 2019
.clang-format clang-format: allow multiple empty lines May 17, 2018
.gitattributes Another small change to .gitattributes Jul 22, 2016
.gitignore gitignore: add env Feb 7, 2020
.gitmodules readded test_data Mar 6, 2020
.travis.yml travis: fix target Octave NO_template Apr 15, 2020
CMakeLists.txt CMake use -std=c++0x instead of -std=c++11, for g++ <4.7 compatibility Apr 24, 2020
LICENSE format LICENSE Sep 27, 2019
Makefile update blasfeo & hpipm Apr 14, 2020
Makefile.osqp add osqp to matlab interface Nov 16, 2019
Makefile.rule add eval_para_sens to matlab mex interface Aug 21, 2019
README.md docs: remove CasADi Python notes, since automatically installed with pip Dec 20, 2019
ROADMAP.md ROADMAP: update Feb 20, 2020

README.md

acados

Travis Status 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.