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.
- Documentation & Tutorials: https://marctoussaint.github.io/robotic/
- Sources: https://github.com/MarcToussaint/robotic/
- Pypi: https://pypi.org/project/robotic/
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
realtimeanddialoutunix 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
groupsin 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 -homeand 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.shinside the docker -- see inside theMakefile)
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)
| File | Reset | |||
|---|---|---|---|---|
| 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
|