Coder Social home page Coder Social logo

longjohncoder / acados Goto Github PK

View Code? Open in Web Editor NEW

This project forked from acados/acados

0.0 0.0 0.0 35.99 MB

Fast and embedded solvers for nonlinear optimal control

License: Other

C 61.36% Makefile 1.54% Shell 1.23% Python 7.69% CMake 3.48% C++ 10.02% MATLAB 13.50% TeX 0.09% SWIG 1.09%

acados's Introduction

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/

acados's People

Contributors

ardayigit avatar bnovoselnik avatar chenyutao36 avatar dgeweth avatar dkouzoup avatar doanminhdang avatar enricaso avatar freyjo avatar ghorn avatar giaf avatar jgillis avatar jkoendev avatar maciejkucia avatar mindthomas avatar nielsvd avatar pariterre avatar rienq avatar roversch avatar rqelibari avatar tmmsartor avatar zanellia avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.