Skip to main content

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 (simulation only, no real Franka & realsense support)

  • Clone:

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

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  • 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 and install (look into Makefile to debug):

    make install
    
  • 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: CHOOSE THE LIBFRANKA VERSION

    ./install.sh librealsense
    ./install.sh -v 0.13.3 libfranka  
    ./install.sh -v 0.8.0 libfranka  
    ./install.sh -v 1.10.0 trossen_arm
    ./install.sh basler
    
  • Compile and install (look into Makefile to debug):

    make install-with-hardware
    

Testing the Franka

  • 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 franka.16 -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.2

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

Total release size: 115.6 MB

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

Download URL robotic-0.4.2-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
0c1ebde68b51fdd2dd984f3ab16bdf5643f80e860fc4c36709730d0438aea7d2
BLAKE2b-256 checksum
How to use checksums
d7333dce1287eeaef7ded3ec15bb3a07c2280d220884c061ffb29ce90bdc6bef
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.2-cp313-cp313-manylinux2014_x86_64.whl

Download URL robotic-0.4.2-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
4831f351c8d871e5948ff2ffe530e5aaf9bd7d740ef9ece20cf7248a17ce6115
BLAKE2b-256 checksum
How to use checksums
cc9d872f402e3576cb2d5b5a6c6fb8a0596463842617cccf019f196c48755cd0
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.2-cp312-cp312-manylinux2014_x86_64.whl

Download URL robotic-0.4.2-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
688c07857352bb9e75a2711d906272d81ee3f24b4afb1569fd2a0f43491eef53
BLAKE2b-256 checksum
How to use checksums
8e656c62120c66d9319a99a6e6efa2b44d88e08941568db109bf9deb3797944d
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.2-cp311-cp311-manylinux2014_x86_64.whl

Download URL robotic-0.4.2-cp311-cp311-manylinux2014_x86_64.whl
Size 23.2 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8d917c4e16e320b9d1f849bb0291e861749461a4865467db8861ac697d51009d
BLAKE2b-256 checksum
How to use checksums
67cfad270d0fbe40a65241e901c9e2b1165276cfb7af2763a3a1e83200ba7132
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.2-cp310-cp310-manylinux2014_x86_64.whl

Download URL robotic-0.4.2-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
34d2772545bac0c84714fb1b8d0fb9afcede7a59b69dc3de77a4f6a3b375257d
BLAKE2b-256 checksum
How to use checksums
0c3ab4b05d1a6d6f61c8df7fc60d16c70fbc1ead56afb9dc6f17e9c258f66229
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

This release

0.4.2 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