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.10 .. 3.14, 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 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
    
  • For reference and testing, this should work 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 #was necessary in older ubuntus
    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 libxi-dev libxxf86vm-dev libglu1-mesa-dev libglfw3-dev libglew-dev libglm-dev freeglut3-dev libpng-dev libassimp-dev libfreetype6-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 the compiled libraries (which are the python module) in the local src/robotic folder, next to other parts of the python module. To install:

    pip install -e .
    ry-info  #to test the installation
    
  • For using Franka, 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
_make/build-docker.sh
  • Compile wheels (this runs local/_make/build-wheels.sh inside the docker -- see inside the Makefile)
make wheels
  • Install these wheels locally with pip or push wheels to pypi -- see inside the Makefile
make wheels-install
make wheels-upload

Project details


Release history Release notifications | RSS feed

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.4.0-cp314-cp314-manylinux2014_x86_64.whl (23.0 MB view details)

Uploaded CPython 3.14

robotic-0.4.0-cp313-cp313-manylinux2014_x86_64.whl (23.0 MB view details)

Uploaded CPython 3.13

robotic-0.4.0-cp312-cp312-manylinux2014_x86_64.whl (23.0 MB view details)

Uploaded CPython 3.12

robotic-0.4.0-cp311-cp311-manylinux2014_x86_64.whl (23.0 MB view details)

Uploaded CPython 3.11

robotic-0.4.0-cp310-cp310-manylinux2014_x86_64.whl (23.0 MB view details)

Uploaded CPython 3.10

File details

Details for the file robotic-0.4.0-cp314-cp314-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.4.0-cp314-cp314-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 57447d95df9aea6a80ed691ac1f3bcfa4e55f3d584d094770d4a14cdde945b82
MD5 d91d1d1d3f8b963b73c867b1c7c1f957
BLAKE2b-256 1f5e30cafc926f5a431a49a69dc7fe49e265ed32ec25665adc4048c73ed8e0b2

See more details on using hashes here.

File details

Details for the file robotic-0.4.0-cp313-cp313-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.4.0-cp313-cp313-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2c49404b97a0ca14186b64a5b5bb9cfe2b7a88390c937c39f38cc061e62fbc1c
MD5 b782bc8f4133d06458421029f91dc9bd
BLAKE2b-256 bab2f7c2eaa3e4876034b7d001915a1c0791721d1fcab1f9d118cb9101c2ef51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.4.0-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 77e6c2cb97f323bcb078e4b60a77d094e66f5674f788b8a0b5f83603f9190860
MD5 e588b98b2e64bc5d9ba6ae3b2e8ff1e8
BLAKE2b-256 fc0b2b49c29d38768f81086d6ed2cccc48928373f4baea7cc9d5b4834185b079

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.4.0-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9b1cb50f0bc96df528d59fb69f22ed718a0ae5d13472050418b9dc67026a70b3
MD5 e193d50418921b64b807a2f5617ab6a1
BLAKE2b-256 73b574b1fd6a867bc910ed804ba59bf5675c0a57cdbb2feb65a9121048098e6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.4.0-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f91a0a18069beaab749cfa013da3bf1b526929ee5ca1021b737589659f16474d
MD5 10f4115a430a4dd0317675899114b6e1
BLAKE2b-256 7d6605766a4bf9f214c2e387ee7afc681d0c7f38e06f4304f89b59d4dafb0a88

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