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.2a2

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.2a2
File
robotic-0.4.2a2-cp314-cp314-manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
robotic-0.4.2a2-cp313-cp313-manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
robotic-0.4.2a2-cp312-cp312-manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
robotic-0.4.2a2-cp311-cp311-manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
robotic-0.4.2a2-cp310-cp310-manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details

Total release size: 109.4 MB

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

Download URL robotic-0.4.2a2-cp314-cp314-manylinux2014_x86_64.whl
Size 21.9 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
3a9e1ac55cc71b7591cf0d5e7dd6d9e0d348d3ce4029df95eb8292a774096e7c
BLAKE2b-256 checksum
How to use checksums
20af7cf073cbfe951127e9809120dda904c6bdbc41a151b0843b89c75daacafa
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.2a2-cp313-cp313-manylinux2014_x86_64.whl

Download URL robotic-0.4.2a2-cp313-cp313-manylinux2014_x86_64.whl
Size 21.3 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d3b4a48cd7789ce6b35be6acd25d3684d7f44d2530e4a4169d60a50d5bb67d01
BLAKE2b-256 checksum
How to use checksums
429f2c8b642d63f33cec0cce88e93f101ed3bb4bef96c203e41792b0d20eb68a
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.2a2-cp312-cp312-manylinux2014_x86_64.whl

Download URL robotic-0.4.2a2-cp312-cp312-manylinux2014_x86_64.whl
Size 20.7 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f3b34ef1ef550beeebed73d8f5b14bbef2c08d3c303ef07918c88e809afd3340
BLAKE2b-256 checksum
How to use checksums
e62188c59265284fa3386cf97f651727f0b417c3066106c60621be98c55530b6
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.2a2-cp311-cp311-manylinux2014_x86_64.whl

Download URL robotic-0.4.2a2-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
95575604e7e0691fcefdf4355e3e7590624d940bae18f4ac5d4c33cb41a5a50a
BLAKE2b-256 checksum
How to use checksums
db4737eb0b184c11b273f3230676eb432adf4a90d186939c560f61662474f318
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.2a2-cp310-cp310-manylinux2014_x86_64.whl

Download URL robotic-0.4.2a2-cp310-cp310-manylinux2014_x86_64.whl
Size 22.5 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
75f4bd10948bd897216f85ec23563e5a525f06e14f4e6daf81e6dbac116f60ac
BLAKE2b-256 checksum
How to use checksums
365007ece20daa6ee75ef5a9a414e219da068950da15261754b643d4f3754389
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.2a2 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