All Projects → acados → Acados

acados / Acados

Licence: other
Fast and embedded solvers for nonlinear optimal control

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Acados

AutomationShield
Arduino library and MATLAB/Simulink API for the AutomationShield Arduino expansion boards for control engineering education.
Stars: ✭ 22 (-88.66%)
Mutual labels:  embedded, control
Spot mini mini
Dynamics and Domain Randomized Gait Modulation with Bezier Curves for Sim-to-Real Legged Locomotion.
Stars: ✭ 426 (+119.59%)
Mutual labels:  optimization, control
IterativeLQR.jl
A Julia package for constrained iterative LQR (iLQR)
Stars: ✭ 15 (-92.27%)
Mutual labels:  control, optimization
Osqp
The Operator Splitting QP Solver
Stars: ✭ 689 (+255.15%)
Mutual labels:  optimization, control
osqp
The Operator Splitting QP Solver
Stars: ✭ 929 (+378.87%)
Mutual labels:  control, optimization
Grl
Robotics tools in C++11. Implements soft real time arm drivers for Kuka LBR iiwa plus V-REP, ROS, Constrained Optimization based planning, Hand Eye Calibration and Inverse Kinematics integration.
Stars: ✭ 105 (-45.88%)
Mutual labels:  optimization, control
Rigidbodydynamics.jl
Julia implementation of various rigid body dynamics and kinematics algorithms
Stars: ✭ 184 (-5.15%)
Mutual labels:  control
Frosted
Frosted: Free POSIX OS for tiny embedded devices
Stars: ✭ 194 (+0%)
Mutual labels:  embedded
Jpa Hibernate Tutorials
Hibernate Tutorials with Spring Boot and Spring-Data-JPA
Stars: ✭ 186 (-4.12%)
Mutual labels:  embedded
Hybridizer Basic Samples
Examples of C# code compiled to GPU by hybridizer
Stars: ✭ 186 (-4.12%)
Mutual labels:  optimization
Cornell Moe
A Python library for the state-of-the-art Bayesian optimization algorithms, with the core implemented in C++.
Stars: ✭ 198 (+2.06%)
Mutual labels:  optimization
Nginx Link Function
It is a NGINX module that provides dynamic linking to your application in server context and call the function of your application in location directive
Stars: ✭ 197 (+1.55%)
Mutual labels:  embedded
Awesome Embedded Rust
Curated list of resources for Embedded and Low-level development in the Rust programming language
Stars: ✭ 2,805 (+1345.88%)
Mutual labels:  embedded
Flips
Fsharp LInear Programming System
Stars: ✭ 188 (-3.09%)
Mutual labels:  optimization
Aerosandbox
Aircraft design optimization made fast through modern automatic differentiation. Plug-and-play analysis tools for aerodynamics, propulsion, structures, trajectory design, and much, much more.
Stars: ✭ 193 (-0.52%)
Mutual labels:  optimization
Powermodels.jl
A Julia/JuMP Package for Power Network Optimization
Stars: ✭ 187 (-3.61%)
Mutual labels:  optimization
Jled
Non-blocking LED controlling library for Arduino and friends.
Stars: ✭ 197 (+1.55%)
Mutual labels:  embedded
Nrf Hal
A Rust HAL for the nRF family of devices
Stars: ✭ 186 (-4.12%)
Mutual labels:  embedded
Deviceplane
Open source device management for embedded systems and edge computing
Stars: ✭ 917 (+372.68%)
Mutual labels:  embedded
Pygpgo
Bayesian optimization for Python
Stars: ✭ 196 (+1.03%)
Mutual labels:  optimization

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/
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].