/rai-python

Python bindings to rai. Simple interface to work with robot/world configurations, compute features and their Jacobians, inverse kinematics, path optimization.

Primary LanguagePythonMIT 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 18.04 (or 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.

# install python3 and jupyter, if you haven't already
sudo apt-get install python3 python3-pip
pip3 install --user --upgrade pip
pip3 install --user jupyter 
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

#see below how to enable bullet

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

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

jupyter-notebook docs/ #perhaps start with 6-KOMO-skeleton

Also test the cpp versions:

cd rai/test/LGP/pickAndPlace
make
./x.exe

To enable the PhysX or bullet physical enginges, before you compile rai-python, first install bullet locally following https://github.com/MarcToussaint/rai-maintenance/blob/master/help/localSourceInstalls.md Then, in 'rai-python/', call

echo "PHYSX = 1" >> config.mk
echo "BULLET = 1" >> config.mk

Then compile.

Updating after a pulling a new version

git submodule update
make -C rai dependAll
make -j4

This avoids a full make clean -- but if that doesn't work, hopefully make clean && make -j4 will do.

Tutorials

Older/messy docs

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