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 libglu1-mesa libfreetype6 fonts-ubuntu python3 python3-pip
    #latest Ubuntu: libglut3.12 and '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
    
    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.1-cp312-cp312-manylinux2014_x86_64.whl (23.3 MB view details)

Uploaded CPython 3.12

robotic-0.2.1-cp311-cp311-manylinux2014_x86_64.whl (23.3 MB view details)

Uploaded CPython 3.11

robotic-0.2.1-cp310-cp310-manylinux2014_x86_64.whl (23.3 MB view details)

Uploaded CPython 3.10

robotic-0.2.1-cp39-cp39-manylinux2014_x86_64.whl (23.3 MB view details)

Uploaded CPython 3.9

robotic-0.2.1-cp38-cp38-manylinux2014_x86_64.whl (23.3 MB view details)

Uploaded CPython 3.8

File details

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

File metadata

File hashes

Hashes for robotic-0.2.1-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8acbd90f14c7e210ac64d81bd87230b5af96b5854828c2ade01e2387f84039f8
MD5 4111b6c151a689532b0d4584eba5f981
BLAKE2b-256 e916c4570a20a99a822093de0c1b027453b7f62268c8bc6b91477faf79557035

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.2.1-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 630a0bc76adc35bf4f1713d24d0e7a2de1cd642a6cbc6cc62a92cf2ad778b43a
MD5 6edac35c1c6e2e9265bc23e4f93ae95e
BLAKE2b-256 8af06e8e946bd1c6a8f21e5f03974a96d061517c3a8f0c1a06e32dd19e146c06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.2.1-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 98753ebd2a9b8c6e7bddc3d6feeab9ea8bc58cda99249f6003a1209f514258a9
MD5 94dd39fecf9afd72156edfe6016a4fc2
BLAKE2b-256 d53a433d9cb8c13e39a391de1258ba8a1a5da291d6bde5f81ee48a9be6e37740

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.2.1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8635a19655e8277c0caaa830b1b8a7ac12b987823f3ff8fb63e8b91272e6438
MD5 b90566da5f484ff5e9dc981bf5682e61
BLAKE2b-256 0bdd43d23f82e196432bec1411e323e09e92ccad4cfa15f2910add94120db8f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.2.1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 711811f886d69a20d6b4c9f5f5bd07794e365eb84850074a8604903dd3f13397
MD5 7cdee5ccb85ecd4e8b3493dd1149c200
BLAKE2b-256 a343952073897459d8aa43b39c20ba2d813d203cd23a0d92ffc451e52034c228

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