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

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

Total release size: 117.8 MB

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

Download URL robotic-0.4.2a1-cp314-cp314-manylinux2014_x86_64.whl
Size 23.6 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
027965d963c2254dcee3fb6be0c35a20b41d84938a1f7a1a6e04f4736e332ca2
BLAKE2b-256 checksum
How to use checksums
7354b6f2f3679f5be9b350bdae350afef8c27be4094093712e38b9e2d749809c
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.2a1-cp313-cp313-manylinux2014_x86_64.whl

Download URL robotic-0.4.2a1-cp313-cp313-manylinux2014_x86_64.whl
Size 23.6 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
3c275368f1f7877dc72c99f955d6ff945501bf14e236b84f197ff808093f2dd8
BLAKE2b-256 checksum
How to use checksums
18b038bc43b67b07e859d65d6d1eee6d281010a1e3597405faf76223d8cfc638
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.2a1-cp312-cp312-manylinux2014_x86_64.whl

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

Download URL robotic-0.4.2a1-cp311-cp311-manylinux2014_x86_64.whl
Size 23.6 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
608b5573de6060281e8b9a44a6e4985c73e03b27d71b277cf41184ed46ec2cf9
BLAKE2b-256 checksum
How to use checksums
3ba0661c8d15dd113577a2757712eccce89f3d2f602401a79db741686809ce0a
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.2a1-cp310-cp310-manylinux2014_x86_64.whl

Download URL robotic-0.4.2a1-cp310-cp310-manylinux2014_x86_64.whl
Size 23.6 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ef64b07d4600772365bb8a4d86d05130ede83ab36f35f6358cbf07219bb9a4c3
BLAKE2b-256 checksum
How to use checksums
74e545f97612e859789b46f44508e4b4cc879804a1f90e18d85966d8f969523f
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.2a1 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