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.6 .. 3.11, and most of the dependencies statically linked. A few are still loaded dynamically, which requires installing on Ubuntu:
sudo apt install liblapack3 freeglut3 libglew-dev python3 python3-pip
  • pip-install robotic
pip install robotic
  • Tests:
ry-info
python3 -c 'import robotic as ry; ry.test.RndScene()'
ry-view `python3 -m site --user-site`/robotic/rai-robotModels/scenarios/pandaSingle.g
  • Run all tutorial notebooks as a test and showcase (takes long):
pip install jupyter nbconvert matplotlib ipympl
git clone https://github.com/MarcToussaint/rai-tutorials.git
cd rai-tutorials
make run -j1

Installation from source with real Franka & realsense support

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

  • Install Ubuntu and python packages:

    sudo apt install --yes \
      g++ clang make gnupg cmake git wget \
      liblapack-dev libf2c2-dev libqhull-dev libeigen3-dev libann-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 --user 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-extern/raw/main/install.sh; chmod a+x install.sh
    ./install.sh libccd
    ./install.sh fcl
    ./install.sh physx
    ./install.sh librealsense
    ./install.sh libfranka  ## for OLD frankas instead:   ./install.sh -v 0.7.1 libfranka
    
  • 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 _build_utils/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 --user dist/robotic-*cp38*.whl --force-reinstall
python3.10 -m pip install --user dist/robotic-*cp310*.whl --force-reinstall
# or
twine upload dist/*.whl --repository robotic

Project details


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

robotic-0.2.0.dev7-cp311-cp311-manylinux2014_x86_64.whl (23.2 MB view details)

Uploaded CPython 3.11

robotic-0.2.0.dev7-cp310-cp310-manylinux2014_x86_64.whl (23.2 MB view details)

Uploaded CPython 3.10

robotic-0.2.0.dev7-cp39-cp39-manylinux2014_x86_64.whl (23.2 MB view details)

Uploaded CPython 3.9

robotic-0.2.0.dev7-cp38-cp38-manylinux2014_x86_64.whl (23.2 MB view details)

Uploaded CPython 3.8

robotic-0.2.0.dev7-cp37-cp37m-manylinux2014_x86_64.whl (23.2 MB view details)

Uploaded CPython 3.7m

File details

Details for the file robotic-0.2.0.dev7-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.2.0.dev7-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d963dd857516a6c305f7d519ea9ae235835e2d58299af784409a2ca6bd8ffff5
MD5 5886305d61d9fa3ef9c521b8cc977402
BLAKE2b-256 367a66328e0e66f299ef27b0657a0c0e4fd558e72c6327253ab9a9ca2cf9d2ca

See more details on using hashes here.

File details

Details for the file robotic-0.2.0.dev7-cp310-cp310-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.2.0.dev7-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 071303e9a1d23975a2f0141027e724893c7e9c67652a11d7561d529241e90c38
MD5 5932044b91d613ccc2c1ec5f3da9876b
BLAKE2b-256 4937a5e883cdfd9e3adda01c8009116f1dd04d4457fcdf55aa160d6b80f06b3d

See more details on using hashes here.

File details

Details for the file robotic-0.2.0.dev7-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.2.0.dev7-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ed75a5978160e9f68683bcc57483f7882a3cf17d42dbdd577f80c6dfa251949b
MD5 1ca2eb1b53f84653e63d31aafddf5add
BLAKE2b-256 0d86217ef1a8bd68b0e1afb3230f60f866c32f165494697b824c5ffd409eefeb

See more details on using hashes here.

File details

Details for the file robotic-0.2.0.dev7-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.2.0.dev7-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0ba1b2708c2289e2d1fdab10517e69ac1e4924933f4df8035e69e8c846b8c864
MD5 d77fbde236df09e7954f8ec1861842b9
BLAKE2b-256 27dd19c77c8e67d9b0aa634672b96cb81a4b82cd290024baeb5d2bc23c52d841

See more details on using hashes here.

File details

Details for the file robotic-0.2.0.dev7-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.2.0.dev7-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 86cf2ac7013dd952b7d27593542c83eee25c05d5ec8f912f1c8f9d1e3f922f23
MD5 98836575c9368d27d1c6f3712c9d39fb
BLAKE2b-256 8e1016c3418482b555ba19099e79836a9a8980296e919705290d55d5673364b4

See more details on using hashes here.

Supported by

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