Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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 (basic local build)

  • Clone:

    cd $HOME/git
    git clone --recursive https://github.com/MarcToussaint/robotic.git
    cd robotic
    
  • Install dependencies:

    cp rai/_make/install.sh .
    source ./install.sh vars_only #defines the following dependency packages
    sudo apt install --yes ${ubuntu_rai} ${ubuntu_botop} ${ubuntu_python}
    ./install.sh libccd
    ./install.sh fcl
    ./install.sh libann
    ./install.sh opencv
    ./install.sh physx
    uv pip install numpy pybind11 pybind11-stubgen
    
  • Compile robotic: (This is equivalent to the shortcut make local-install. But for transparency:)

    cp _make/CMakeLists-ubuntu.txt CMakeLists.txt
    export PY_VER=`python3 -c "import sys; print(str(sys.version_info[0])+'.'+str(sys.version_info[1]))"`
    cmake . -B build -DPY_VERSION=$PY_VER -DUSE_PHYSX=ON -DUSE_OPENCV=ON -DUSE_LIBFRANKA=OFF -DUSE_REALSENSE=OFF
    make -C build _robotic docstrings install
    uv pip install -e .
    
  • Test:

    ry-info
    

Installation from source (with real Franka & realsense & trossen_arm & basler support)

Essentially the same as above, but some more dependencies and according flags in cmake:

  • Additional dependencies:

    ./install.sh librealsense
    ./install.sh libfranka  ## for OLD frankas instead:   ./install.sh -v 0.8.0 libfranka (and you need to patch it...)
    ./install.sh trossen_arm #when installing Trossen drivers (uses v1.10.0 by default)
    ./install.sh basler #when installing Basler camera drivers
    
  • Instead of make local-install, we do it explicitly, setting the USE_REALSENSE and USE_LIBRFRANKA flags:

    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 . -B build -DPY_VERSION=$PY_VERSION -DUSE_REALSENSE=ON -DUSE_LIBFRANKA=ON -DUSE_TROSSEN=ON -DUSE_BASLER=ON
    make -C build _robotic docstrings install
    uv pip install -e .
    
  • 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.

  • Trouble shooting: Perhaps the github build script helps?

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

Metadata

Release files for robotic 0.4.2a3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for robotic 0.4.2a3
File
robotic-0.4.2a3-cp314-cp314-manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
robotic-0.4.2a3-cp313-cp313-manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
robotic-0.4.2a3-cp312-cp312-manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
robotic-0.4.2a3-cp311-cp311-manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
robotic-0.4.2a3-cp310-cp310-manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details

Total release size: 115.3 MB

Release files / robotic-0.4.2a3-cp314-cp314-manylinux2014_x86_64.whl

Download URL robotic-0.4.2a3-cp314-cp314-manylinux2014_x86_64.whl
Size 23.1 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0fba4613e33fbd8e4981202094f1e5949a266d9a8d0b525fd35b461d655cb4cf
BLAKE2b-256 checksum
How to use checksums
16ee39fc5ca409708e5459eeeabfb390e6b361a1b769502155158107855122d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / robotic-0.4.2a3-cp313-cp313-manylinux2014_x86_64.whl

Download URL robotic-0.4.2a3-cp313-cp313-manylinux2014_x86_64.whl
Size 23.1 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
030e8c6f1838a85886ef09cf803fb0eab0e12cbe8ea13a3967736e624000c1f5
BLAKE2b-256 checksum
How to use checksums
5b92548d355ab3647bd143752d7a5623b8a4f9a0625a09560fa552ba0fab3ee7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / robotic-0.4.2a3-cp312-cp312-manylinux2014_x86_64.whl

Download URL robotic-0.4.2a3-cp312-cp312-manylinux2014_x86_64.whl
Size 23.1 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ed700ad0799e77cccc2c108d893207d35d0a6fb4a520c186f7912b841d5f9a23
BLAKE2b-256 checksum
How to use checksums
6bbf2df09bfe5ef386babf73804a274e4fd0364900d026fb2e29ba099fa60294
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / robotic-0.4.2a3-cp311-cp311-manylinux2014_x86_64.whl

Download URL robotic-0.4.2a3-cp311-cp311-manylinux2014_x86_64.whl
Size 23.1 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2e512721588bea0b3426f2996564c2aadb3f3e258711a3bb99b385d0dc7e8ffc
BLAKE2b-256 checksum
How to use checksums
a779d8f15118d58ddb1c60342c19e6dde713472f4c435a96000975dbb1142183
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / robotic-0.4.2a3-cp310-cp310-manylinux2014_x86_64.whl

Download URL robotic-0.4.2a3-cp310-cp310-manylinux2014_x86_64.whl
Size 23.1 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b5da97114b0ac413f0957ea13dc8b792bf04093e451f210a5f8a39a129cbe7d8
BLAKE2b-256 checksum
How to use checksums
8df2a30c20bf30602811cba0f9efd8dd1af89d1162c5dd2c9288f4041bd5c4cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

0.4.2

5 release files

This release

0.4.2a3 This release

5 release files

0.4.1

5 release files

0.4.0

5 release files

0.3.9

5 release files

0.3.8

5 release files

0.3.7

5 release files

0.3.6

5 release files

0.3.5

5 release files

0.3.4

5 release files

0.3.3

5 release files

0.3.2

5 release files

0.3.1

5 release files

0.3.0

5 release files

0.2.9

5 release files

0.2.7

5 release files

0.2.6

5 release files

0.2.4

5 release files

0.2.3

5 release files

0.2.2

5 release files

0.2.1

5 release files

0.2.0

5 release files

0.1.10

5 release files

0.1.9

6 release files

0.1.8

6 release files

0.1.7

6 release files

0.1.6

6 release files

0.1.5

6 release files

0.1.4

6 release files

0.1.3

6 release files

0.1.2

6 release files

0.1.1

6 release files

0.1.0

6 release files

0.0.27

6 release files

0.0.26

6 release files

0.0.25

6 release files

0.0.24

5 release files

0.0.23

5 release files

0.0.20

5 release files

0.0.19

5 release files

0.0.18

5 release files

0.0.16

5 release files

0.0.15

5 release files

0.0.13

5 release files

0.0.12

5 release files

0.0.11

5 release files

0.0.9

5 release files

0.0.8

5 release files

0.0.7

5 release files

0.0.6

5 release files

0.0.5

5 release files

0.0.4

5 release files

0.0.3

5 release files

0.0.1

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page