Skip to main content

Robotic Control Interface & Manipulation Planning Library

Project description

Robotic Control Interface & Manipulation Planning Library

A python library to operate a real or simulated robot, work with robot/world configurations, compute differentiable features, formulate and solve constrained optimization problems (for inverse kinematics, path optimization, and manipulation planning), and interfacing to various physical simulation engines.

These python bindings were developed for easier access to the uderlying C++ code base, esp. for teaching and students. This code base is how we (in the Learning & Intelligent Systems Lab) operate our robots.

Installation via pip (simulation only, no real Franka & realsense support)

  • The pip package was compiled for python3.6 .. 3.11, and most of the dependencies statically linked. A few are still loaded dynamically, which requires installing on Ubuntu:
sudo apt install liblapack3 freeglut3 libglew-dev python3 python3-pip
  • pip-install robotic
pip install robotic
  • Tests:
ry-info
python3 -c 'import robotic as ry; ry.test.RndScene()'
ry-view `python3 -m site --user-site`/robotic/rai-robotModels/scenarios/pandaSingle.g
  • Run all tutorial notebooks as a test and showcase (takes long):
pip install jupyter nbconvert matplotlib ipympl
git clone https://github.com/MarcToussaint/rai-tutorials.git
cd rai-tutorials
make run -j1

Installation from source with real Franka & realsense support

This assumes a standard Ubuntu 22.04 (or 20.04, 18.04) machine.

  • Install Ubuntu and python packages:

    sudo apt install --yes \
      g++ clang make gnupg cmake git wget \
      liblapack-dev libf2c2-dev libqhull-dev libeigen3-dev libann-dev \
      libjsoncpp-dev libyaml-cpp-dev libhdf5-dev libpoco-dev libboost-system-dev portaudio19-dev libusb-1.0-0-dev \
      libx11-dev libglu1-mesa-dev libglfw3-dev libglew-dev freeglut3-dev libpng-dev libassimp-dev \
      python3-dev python3 python3-pip
    
    python3 -m pip install --user numpy pybind11 pybind11-stubgen
    
  • Install some external libs by source. You can skip librealsense and libfranka if you disable below. (To speed up compilation, e.g., set

    export MAKEFLAGS="-j $(command nproc --ignore 2)"
    

    To standardize installations, I use a basic script:

    wget https://github.com/MarcToussaint/rai-extern/raw/main/install.sh; chmod a+x install.sh
    ./install.sh libccd
    ./install.sh fcl
    ./install.sh physx
    ./install.sh librealsense
    ./install.sh libfranka  ## for OLD frankas instead:   ./install.sh -v 0.7.1 libfranka
    
  • Clone, compile and install this repo (note the USE_REALSENSE and USE_LIBFRANKA options!):

    cd $HOME/git
    git clone --recursive https://github.com/MarcToussaint/robotic.git
    cd robotic
    cp _build_utils/CMakeLists-ubuntu.txt CMakeLists.txt
    export PY_VERSION=`python3 -c "import sys; print(str(sys.version_info[0])+'.'+str(sys.version_info[1]))"`
    cmake -DPY_VERSION=$PY_VERSION -DUSE_REALSENSE=ON -DUSE_LIBFRANKA=ON . -B build
    make -C build _robotic install
    
  • The following should also compile docstrings, but might fail as this is not yet robust across Ubuntu distributions:

    make -C build _robotic docstrings install
    
  • This should install everything in .local/lib/python*/site-packages/robotic. Test:

    cd $HOME
    ry-info
    python3 -c 'import robotic as ry; ry.test.RndScene()'
    
  • Recall that the user needs to be part of the realtime and dialout unix group:

    sudo usermod -a -G realtime <username>
    sudo usermod -a -G dialout <username>
    

    You need to log out and back in (or even reboot) for this to take effect. Check with groups in a terminal.

  • Now follow the Real Robot Operation Tutorial on the tutorials page to test and debug first steps with the real franka. In particular test ry-bot -real -up -home and debug as explained there.

Building the wheels within a manylinux docker

  • Build the docker
_build_utils/build-docker.sh
  • Compile wheels (this runs local/_build_utils/build-wheels.sh inside the docker -- see Makefile)
make wheels
  • Outside of docker, install locally with pip or push wheels to pypi
python3.8 -m pip install --user dist/robotic-*cp38*.whl --force-reinstall
python3.10 -m pip install --user dist/robotic-*cp310*.whl --force-reinstall
# or
twine upload dist/*.whl --repository robotic

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

robotic-0.2.0.dev8-cp312-cp312-manylinux2014_x86_64.whl (23.2 MB view details)

Uploaded CPython 3.12

robotic-0.2.0.dev8-cp311-cp311-manylinux2014_x86_64.whl (23.2 MB view details)

Uploaded CPython 3.11

robotic-0.2.0.dev8-cp310-cp310-manylinux2014_x86_64.whl (23.2 MB view details)

Uploaded CPython 3.10

robotic-0.2.0.dev8-cp39-cp39-manylinux2014_x86_64.whl (23.2 MB view details)

Uploaded CPython 3.9

robotic-0.2.0.dev8-cp38-cp38-manylinux2014_x86_64.whl (23.2 MB view details)

Uploaded CPython 3.8

File details

Details for the file robotic-0.2.0.dev8-cp312-cp312-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.2.0.dev8-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c1b3da4ac185488b4044d74f676dc8b6b0b9084ca6b30a073b459fa8f63df5e3
MD5 08efb98c5b1dec9595aed1d285d88544
BLAKE2b-256 83f0f78f009168c64a891fce4879a6a2b36278bf38328b049386a2b9e076ad8b

See more details on using hashes here.

File details

Details for the file robotic-0.2.0.dev8-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.2.0.dev8-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 54822094f83800904a908114a47ebdeffb865ee8840b2105127b234f6be91c87
MD5 573d49a3176f6e80d4374ffbefef7676
BLAKE2b-256 c1063e0b4b03ff1ecb4ea67d81d570cff00c485388c5826cf95cd15eb12b8fb8

See more details on using hashes here.

File details

Details for the file robotic-0.2.0.dev8-cp310-cp310-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.2.0.dev8-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fb9f5697f76df896dfc1e6f337604557b065f1b3a3838d16eafa3676ca63ee2e
MD5 ac8c03cd3ba513d80ab15e402f1adb9b
BLAKE2b-256 ce370e4b946838b11d8b01a2f406ae7616ab2a2702148dfd3a169d0d489a4ebe

See more details on using hashes here.

File details

Details for the file robotic-0.2.0.dev8-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.2.0.dev8-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 29799af74d360b896eb828bc53884e140f3e788058fedc485240de415f05a290
MD5 8f096258fa637e07c6e93bbda18f7773
BLAKE2b-256 ea33cf332efe13c08c94bb6a0df872dd9e66df7fda14874a9676bca408990d2d

See more details on using hashes here.

File details

Details for the file robotic-0.2.0.dev8-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.2.0.dev8-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 128d841368d507d505d224a004cc54e768fce1c5786e05693a5cab43930082c8
MD5 815b9b41b15d79a12bd838072bfb6279
BLAKE2b-256 b26b6ec84c739a09c14094b575e7341ac89640fe3ab1d11da1490dc47422be7e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page