Skip to main content

Robotic Control Interface & Manipulation Planning Library

Project description

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.8 .. 3.12, and most of the dependencies statically linked. A few are still loaded dynamically, which requires installing on Ubuntu:

    sudo apt install liblapack3 freeglut3-dev 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
    
  • Test 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
    python3 -m venv ~/.local/venv
    source ~/.local/venv/bin/activate
    pip install robotic numpy
    ry-info
    ry-test
    

Installation from source with real Franka & realsense support

This assumes a standard Ubuntu 24.04 (or 22.04, 20.04) machine.

  • Install Ubuntu and python packages:

    sudo apt install --yes \
      g++ clang make gnupg cmake git wget libstdc++-14-dev \
      liblapack-dev libf2c2-dev libqhull-dev libeigen3-dev \
      libjsoncpp-dev libyaml-cpp-dev libhdf5-dev libpoco-dev libboost-system-dev portaudio19-dev libusb-1.0-0-dev \
      libx11-dev libglu1-mesa-dev libglfw3-dev libglew-dev freeglut3-dev libpng-dev libassimp-dev \
      python3-dev python3 python3-pip
    
    python3 -m pip install numpy pybind11 pybind11-stubgen
    
  • Install some external libs by source. You can skip librealsense and libfranka if you disable below. (To speed up compilation, e.g., set

    export MAKEFLAGS="-j $(command nproc --ignore 2)"
    

    To standardize installations, I use a basic script:

    wget https://github.com/MarcToussaint/rai/raw/refs/heads/marc/_make/install.sh; chmod a+x install.sh
    ./install.sh libccd
    ./install.sh fcl
    ./install.sh libann
    ./install.sh physx
    ./install.sh librealsense
    ./install.sh libfranka  ## for OLD frankas instead:   ./install.sh -v 0.8.0 libfranka (and you need to patch it...)
    
  • Clone, compile and install this repo (note the USE_REALSENSE and USE_LIBFRANKA options!):

    cd $HOME/git
    git clone --recursive https://github.com/MarcToussaint/robotic.git
    cd robotic
    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 -DPY_VERSION=$PY_VERSION -DUSE_REALSENSE=ON -DUSE_LIBFRANKA=ON . -B build
    make -C build _robotic install
    
  • The following should also compile docstrings, but might fail as this is not yet robust across Ubuntu distributions:

    make -C build _robotic docstrings install
    
  • This should install everything in .local/lib/python*/site-packages/robotic. Test:

    cd $HOME
    ry-info
    python3 -c 'import robotic as ry; ry.test.RndScene()'
    
  • 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.

Building the wheels within a manylinux docker

  • Build the docker
_build_utils/build-docker.sh
  • Compile wheels (this runs local/_build_utils/build-wheels.sh inside the docker -- see Makefile)
make wheels
  • Outside of docker, install locally with pip or push wheels to pypi
python3.8 -m pip install dist/robotic-*cp38*.whl --force-reinstall
python3.10 -m pip install dist/robotic-*cp310*.whl --force-reinstall
# or
twine upload dist/*.whl --repository robotic

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

robotic-0.3.4-cp312-cp312-manylinux2014_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.12

robotic-0.3.4-cp311-cp311-manylinux2014_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.11

robotic-0.3.4-cp310-cp310-manylinux2014_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.10

robotic-0.3.4-cp39-cp39-manylinux2014_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.9

robotic-0.3.4-cp38-cp38-manylinux2014_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.8

File details

Details for the file robotic-0.3.4-cp312-cp312-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.3.4-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1d673a70c70d6fb04f1f2f8586d65d9e2aad4217eb7a4bbbdb098717aa920567
MD5 ea9f959860c750920b7f808f01ce2ea8
BLAKE2b-256 5341def8096eac2a90c97f5fb728d9738b312a543e38aa823869efe0676f2d47

See more details on using hashes here.

File details

Details for the file robotic-0.3.4-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.3.4-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 88cc8ae0a38e5b90f7521206a4c0db818cba3371b63977924f8cc817ef093a32
MD5 540a3e2ebcb2d9b52173812c0d1410f3
BLAKE2b-256 2bd72b2693c61e1d843988fffb7b959dc9d995ce5d3cab78965cdb6c2967062b

See more details on using hashes here.

File details

Details for the file robotic-0.3.4-cp310-cp310-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.3.4-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3f9418c2c6cb4e36e11253c69b4ba05c9b7673e609824b3d7c9bd25be2453e0a
MD5 cc5d08f73c3d1d4f0a7af050132fe1a6
BLAKE2b-256 9c376bcb9196a4040f9a0ac3815c01af44142c127e43908fb987827757fccde4

See more details on using hashes here.

File details

Details for the file robotic-0.3.4-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.3.4-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cdf27b1505af6fd000a7c4c4b4198637f73399eeb793714eee3c08e517e25bcf
MD5 a423df7ab9c556540295da2a3331795d
BLAKE2b-256 aba4576f762f897fb2a8b28d78871acc6b380501585cfe14ff9fa68687168914

See more details on using hashes here.

File details

Details for the file robotic-0.3.4-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.3.4-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7d660b8b9907589a9f2f4190ee5f26a7efef0106212184b68a7bb7c8f5e03924
MD5 23a104456777c7e771e0301ff59f5d5f
BLAKE2b-256 d335d084f93abcab78c16f60f1c500d7d76364cd0bd495b363780b4c87586c29

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page