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:
python3 -c 'import robotic as ry; print("ry version:", ry.__version__, ry.compiled());'
python3 -c 'import robotic as ry; ry.test.RndScene()'

Installation from source with real Franka & realsense support

This assumes a standard Ubuntu 20.04 (or 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 libccd-dev \
      libjsoncpp-dev libyaml-cpp-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 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
    

    (Docstrings could be made with make docstrings, but this is not yet robust across distributions.)

  • This should install everything in .local/lib/python*/site-packages/robotic. Test:

    cd $HOME
    python3 -c 'import robotic as ry; print("ry version:", ry.__version__, ry.compiled());'
    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. Test the "real robot" tutorial.

Building the wheels within a manylinux docker

  • Build the docker
_build_utils/build-docker.sh
  • Run docker and compile wheels inside
_build_utils/run-docker.sh
## inside docker:
cd local #this mounts robotic/
_build_utils/build-wheels.sh
exit
  • 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


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.1.7-cp311-cp311-manylinux2014_x86_64.whl (16.7 MB view details)

Uploaded CPython 3.11

robotic-0.1.7-cp310-cp310-manylinux2014_x86_64.whl (16.7 MB view details)

Uploaded CPython 3.10

robotic-0.1.7-cp39-cp39-manylinux2014_x86_64.whl (16.7 MB view details)

Uploaded CPython 3.9

robotic-0.1.7-cp38-cp38-manylinux2014_x86_64.whl (16.7 MB view details)

Uploaded CPython 3.8

robotic-0.1.7-cp37-cp37m-manylinux2014_x86_64.whl (16.7 MB view details)

Uploaded CPython 3.7m

robotic-0.1.7-cp36-cp36m-manylinux2014_x86_64.whl (16.7 MB view details)

Uploaded CPython 3.6m

File details

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

File metadata

File hashes

Hashes for robotic-0.1.7-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e88ec1761549464f5f30b06aa987203d0547ffa6e19920faaf36b61729565869
MD5 2a51151edd8ad9324d050ec947b6b538
BLAKE2b-256 6fa0ddff59fb7d60b511f01ab6d1f203b06d644418ee08fb095721f5d4486753

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.1.7-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 73408eb16e3fa0bedf3638bf7cd8547319f5583924955390f2bea8102cc14da6
MD5 0e377dad705497ce7d673a0b3517ba38
BLAKE2b-256 9e169cd927be8415764ec46a53aae0059fbd6957f0cc83d894d63dd97dea2e69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.1.7-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8e64f2b7af1a8d4373328c665f8fef9db418d987632c9cb3d7f31b2f49f92fe5
MD5 ebae3db7abec9e5547563fe3fcd23fce
BLAKE2b-256 737ae5798e2dfd168f1d6b23cda80c8fb3b42ad35dfc44a1cb66c07ddf7841f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.1.7-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6afe15ff0768dcba053bb61469ecad811ef6500bb76ff44dd3024e81349ee69c
MD5 937440736705d9f17dbe7ddacbb1301f
BLAKE2b-256 ed4dd2b69ef499662aade46d243e5b63e928bc2367fc129382825c3042086b99

See more details on using hashes here.

File details

Details for the file robotic-0.1.7-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.1.7-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e853079b893b57f871c28955d356ab6ec9e3e3d77f2800ec23e0e2555487d77d
MD5 6b6cebbb589ba389708e6c800c4d918e
BLAKE2b-256 509a39a96acdc4a6c88fca702b2b80745fd418a39833a599b4ed818143d348de

See more details on using hashes here.

File details

Details for the file robotic-0.1.7-cp36-cp36m-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for robotic-0.1.7-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a0cb1047d8ddcc8ffdabfb0d074abbeffe00a30fafa0fba3cafe4cbbe9a72263
MD5 17cbbed585c4eb31b55396963f01184d
BLAKE2b-256 ca90276d6162ed7f163ed7c7a6acb9f7f79bda4bb82cf39c93e12e07340e7688

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