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