Fast and embedded solvers for nonlinear optimal control
Clone or download
giaf Merge pull request #350 from schoelst/feature/swig_c_interface
experimental code to test SWIG wrapper for acados_c interface
Latest commit 8a0559c Dec 12, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
acados moved ocp_nlp.py &.m to broken, some cleaning Dec 10, 2018
ci running unit tests also on release Sep 20, 2018
cmake linked ooqp with lapack Jul 24, 2018
docs Merge parent changes May 23, 2018
examples fixed bug in CMakeLists Dec 10, 2018
experimental experimental code to test SWIG wrapper for acados_c interface Dec 12, 2018
external bump hpipm - fix AppVeyor Dec 5, 2018
interfaces Merge branch 'master' of github.com:acados/acados into templating Dec 11, 2018
swig minimal integrator implementation and wrapper Oct 19, 2018
test some cleaning Dec 10, 2018
webpage-source Update Installation subpage to point to GitHub Releases Apr 19, 2018
.add_license.sh 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 merged with blessed-newcore and made gnsf1/2 work Mar 20, 2018
.travis.yml updated secure variables Sep 20, 2018
CMakeConfig.txt Rewrite the installation system of acados Oct 19, 2017
CMakeLists.txt changed install.sh to install into ~/.local/lib; removed some files; … Nov 22, 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 renamed sim_new_lifted_irk into sim_lifted_irk Nov 9, 2018
Makefile.rule undid giafs Makefile changes Oct 16, 2018
README.md slight update of readme file Sep 28, 2018
TODO_integrator_interface.md removed python ctypes interface Nov 13, 2018
acados_format.sh used acados_format, fixed cmake Nov 9, 2018
convention_about_external_functions.txt fix small typo in convention_about_external_functions Nov 22, 2018
cpplint.py fixed lint Jun 14, 2018
install.sh changed link for casadi_python in install.sh, since the other is broken Dec 10, 2018
roadmap.md edit documentation Oct 19, 2018

README.md

acados

Travis Status Appveyor status codecov

Fast and embedded solvers for nonlinear optimal control.

Installation

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

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

Getting started

MATLAB

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:
savepath

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

ocp_qp_example.m

Python

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/ocp_nlp.py

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 http://files.casadi.org/download/3.4.0/casadi-linux-octave-v3.4.0.tar.gz
    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 http://files.casadi.org/download/3.4.0/casadi-linux-py35-v3.4.0-64bit.tar.gz
    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 http://files.casadi.org/download/3.4.0/casadi-linux-matlabR2014b-v3.4.0.tar.gz
    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
    ./autogen.sh
    ./configure --prefix=$(pwd)/swig_install --enable-silent-rules
    make
    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