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.8 .. 3.12, and most of the dependencies statically linked. A few are still loaded dynamically, which requires installing on Ubuntu:

    sudo apt install liblapack3 freeglut3 libglu1-mesa libfreetype6 fonts-ubuntu python3 python3-pip
    #latest Ubuntu: libglut3.12 and 'cd /usr/lib/x86_64-linux-gnu/ && sudo ln -s libglut.so.3.12 libglut.so.3'
    
  • Pip install:

    pip install robotic numpy
    
  • Tests:

    ry-info
    
    ry-test
    
    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.3-cp312-cp312-manylinux2014_x86_64.whl (23.3 MB view details)

Uploaded CPython 3.12

robotic-0.2.3-cp311-cp311-manylinux2014_x86_64.whl (23.3 MB view details)

Uploaded CPython 3.11

robotic-0.2.3-cp310-cp310-manylinux2014_x86_64.whl (23.3 MB view details)

Uploaded CPython 3.10

robotic-0.2.3-cp39-cp39-manylinux2014_x86_64.whl (23.3 MB view details)

Uploaded CPython 3.9

robotic-0.2.3-cp38-cp38-manylinux2014_x86_64.whl (23.3 MB view details)

Uploaded CPython 3.8

File details

Details for the file robotic-0.2.3-cp312-cp312-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.2.3-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b703e4d5e399c587176aa2d70cdc1d62cefe68964630b5d11a107f57eaea53cc
MD5 3b454583fedaac557e854669b0cd67cc
BLAKE2b-256 29f9c9d2caad4f873f38c101ee4b11deec6bdf7b1b55e18ca5359ae77a0734c0

See more details on using hashes here.

File details

Details for the file robotic-0.2.3-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.2.3-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae96b62b9c3e98793e6510861b35ed849471b26a7955e11c5db710d3a72c278c
MD5 bbf8fa04e4ebd5ddf83dc2803c1efc19
BLAKE2b-256 7206cf97ccc448a4e8b12d1abc4a9c4db305362741ae3d561543575a7cc70d53

See more details on using hashes here.

File details

Details for the file robotic-0.2.3-cp310-cp310-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.2.3-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0c14e3715f12e86806125334933b09de3e162df8e6cb41184d386b1eb9cc47d2
MD5 bcff5ec92b77ccdc35a965cb02d32602
BLAKE2b-256 1f90e1bc3102c681bc0fbc7a1c1e1887ff8d6c8a1a25f5b9ce2c98fae261ea09

See more details on using hashes here.

File details

Details for the file robotic-0.2.3-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.2.3-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a5fe324d4587110fc67d2dfd71935e20a2a274340f410e54574c3cbe5e192496
MD5 0f13cf1c8eebdb7cbb5065ed4f9af82d
BLAKE2b-256 7ebe176f879f61e1d197718eea89a286cc209e9f02087f92984ff1ae4bf73bec

See more details on using hashes here.

File details

Details for the file robotic-0.2.3-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.2.3-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c53d6237709fe7f4bd69bfdd2148cfa2fc8eeee0c7813c750cbe50ddbf65dc5f
MD5 3df3d33764ae3d23cb4e13725ae6b083
BLAKE2b-256 6531468380db3c9dad3903a641b5229b3b124d00c3f0323f01135def8262b8bd

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