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-dev libglu1-mesa libxrandr2 libfreetype6 fonts-ubuntu python3 python3-pip
    #in latest Ubuntu also:
    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
    
  • Run all tutorial notebooks as a test and showcase:

    pip install jupyter nbconvert matplotlib ipympl
    git clone https://github.com/MarcToussaint/rai-tutorials.git
    cd rai-tutorials
    make run -j1
    make run_demos -j1
    
  • Test in a clean ubuntu:latest docker (starting with xhost +local:root && docker run -it --env="DISPLAY" --network host ubuntu:latest):

    apt update
    env DEBIAN_FRONTEND=noninteractive apt install --yes liblapack3 freeglut3-dev libglu1-mesa libxrandr2 libfreetype6 fonts-ubuntu python3 python3-venv
    cd /usr/lib/x86_64-linux-gnu/ && ln -s libglut.so.3.12 libglut.so.3
    python3 -m venv ~/.local/venv
    source ~/.local/venv/bin/activate
    pip install robotic numpy
    ry-info
    ry-test
    

Installation from source with real Franka & realsense support

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

  • Install Ubuntu and python packages:

    sudo apt install --yes \
      g++ clang make gnupg cmake git wget libstdc++-14-dev \
      liblapack-dev libf2c2-dev libqhull-dev libeigen3-dev \
      libjsoncpp-dev libyaml-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 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/raw/refs/heads/marc/_make/install.sh; chmod a+x install.sh
    ./install.sh libccd
    ./install.sh fcl
    ./install.sh libann
    ./install.sh physx
    ./install.sh librealsense
    ./install.sh libfranka  ## for OLD frankas instead:   ./install.sh -v 0.8.0 libfranka (and you need to patch it...)
    
  • 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 _make/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 dist/robotic-*cp38*.whl --force-reinstall
python3.10 -m pip install dist/robotic-*cp310*.whl --force-reinstall
# or
twine upload dist/*.whl --repository robotic

Project details


Release history Release notifications | RSS feed

This version

0.3.5

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

If you're not sure about the file name format, learn more about wheel file names.

robotic-0.3.5-cp312-cp312-manylinux2014_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.12

robotic-0.3.5-cp311-cp311-manylinux2014_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.11

robotic-0.3.5-cp310-cp310-manylinux2014_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.10

robotic-0.3.5-cp39-cp39-manylinux2014_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.9

robotic-0.3.5-cp38-cp38-manylinux2014_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.8

File details

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

File metadata

File hashes

Hashes for robotic-0.3.5-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e7dca047f956a7181d06ead8a09fac178c03c5ecd17d876a4e7a58692e67594d
MD5 c2cd456a25f8e0ae0d4bc78a7b193e6d
BLAKE2b-256 c100767e9d3d5f5d33cf6465c97589881c22b3ddc61deb4e2ab75fbc3c5e8f64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.3.5-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b9432820052cadc5b3607318179a6c4a11087ddbd97142a6584366abbb6f3692
MD5 c18b1b5b5ea0e0df6bb659c1418249a4
BLAKE2b-256 476c4b48bcdacecea060217cdc3ea6ee4d884f3cb4aa0bf40bedc88ea2b6a547

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.3.5-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b889be1f49c3bcd57bf3c75b737b4be44a060295b0accda00b7cfda0fbebeeef
MD5 8b432299acde8a673428ab5834d13379
BLAKE2b-256 742bc05b6f4267fb6977b3ec06d4bcbd9a2c085c27a8b6c3182d2eaea18d2aac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.3.5-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 badf61180e1322796a28e77c9365c38bbfbc87984e7e67eb2c1fb86496fdd088
MD5 0773541f7b92f5f9fd4f5085f19e4d6e
BLAKE2b-256 e4be3dd2b75a9653f58924b0a4044db53b5231e34d7d6edcf8998794b2dcac4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.3.5-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 97c8d6d5bc40c21031650b6c108c4e2f7da1309982f08dd7feff3c109a1aed6c
MD5 7d09bfcf15c32f568edfe7ac5b4cf0f8
BLAKE2b-256 5d227dcd9d95db78134987d5c781a8d71ecef88201eaacb3ded467ab87a738fb

See more details on using hashes here.

Supported by

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