/rai-python

Primary LanguageC++MIT LicenseMIT

python bindings to rai

This repo exposes some functionality of the RAI code in python bindings. See https://github.com/MarcToussaint/rai for a README of the RAI code.

The current focus of the development is to provide simpler interfaces to Logic-Geometric Programming. The repo https://github.com/MarcToussaint/18-RSS-PhysicalManipulation stores the original code for the experiments in the RSS'18 paper. Here the aim are clean user interfaces and tutorials (both, C++ and python).

If you're interested to contribute in development or testing, consider joining the "LGP code" mailing list https://groups.google.com/forum/#!forum/lgp-code.

Demo videos

https://ipvs.informatik.uni-stuttgart.de/mlr/lgp/

Quick Start

This assumes a standard Ubuntu 16.04 machine.

WE DIDN'T GET TO RUN THIS WITH ANACONDA PYTHON. I you have Anaconda installed, please remove it from the PATH in .bashrc. The setup below will install the standard Ubuntu python3 and jupyter notebook.

git clone git@github.com:MarcToussaint/rai-python.git
cd rai-python

# skip the following if you have ssh authorization to github
git config --file=.gitmodules submodule.rai.url https://github.com/MarcToussaint/rai.git
git config --file=.gitmodules submodule.rai-robotModels.url https://github.com/MarcToussaint/rai-robotModels.git

git submodule init
git submodule update

make -j1 initUbuntuPackages  # calls sudo apt-get install; you can always interrupt
make -j4                     # builds libs and tests

source setupPython.sh

python3 -m pip install --upgrade pip
python3 -m pip install jupyter

jupyter-notebook docs/1-basics.ipynb 

Updating after a pulling a new version

git submodule update
make -C rai dependAll
make -j4

If for some reason that doesn't work, hopefully make clean && make -j4 will do.

Tutorials

Only a few of the tutorials exist yet. Please see the also docs/ path. The plan is:

  1. Basics: Configurations, Features & Jacobians
  2. IK: Learn about the language to set optimization constraints, first with just Inverse Kinematics; grabbing results
  3. KOMO: Interface to KOMO, the motion optimization method; learn to set constraints
  4. LGP: The low-level skeleton interface to solving LGP problems
  5. Contacts: Access to various methods to compute detailed collision geometries or compute stable force/wrench configurations, all static
  6. Physx: Access to the Physx physical simulation engine
  7. Bullet: Access to the Physx physical simulation engine

Cpp references

Check the cpp/ path

Older/messy docs

Just as a reference: https://github.com/MarcToussaint/rai-maintenance/tree/master/help