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 underlying C++ code base, esp. for teaching and students. This code base is how we, in the Learning & Intelligent Systems Lab, operate our robots.

Documentation

Please follow the documentation and tutorials here: https://marctoussaint.github.io/robotics-course/

Installation via pip (simulation only, no real Franka & realsense support)

  • The pip package was compiled for python3.6 .. 3.10, 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 and dependencies (numpy, scipy)
python3 -m pip install --user robotic numpy scipy
  • Test:
python3 -c 'from robotic import ry; print("ry version:", ry.__version__, ry.compiled());'
python3 -c 'from robotic import 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 libstdc++-12-dev \
  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 matplotlib jupyter nbconvert pybind11
  • Install some external libs by source. You can skip librealsense and libfranka if you disable below. 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/rai-python.git
cp rai-python/_build_utils/CMakeLists-ubuntu.txt rai-python/CMakeLists.txt
export PYTHONVERSION=`python3 -c "import sys; print(str(sys.version_info[0])+'.'+str(sys.version_info[1]))"`
cmake -DPYBIND11_PYTHON_VERSION=$PYTHONVERSION -DUSE_REALSENSE=ON -DUSE_LIBFRANKA=ON rai-python -B rai-python/build
make -C rai-python/build install
  • This should install everything in .local/lib/python*/site-packages/robotic. Test:
python3 -c 'from robotic import ry; print("ry version:", ry.__version__, ry.compiled());'
python3 -c 'from robotic import ry; ry.test.RndScene()'

Building a wheel 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 rai-python/
_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.0.23-cp310-cp310-manylinux2014_x86_64.whl (12.9 MB view details)

Uploaded CPython 3.10

robotic-0.0.23-cp39-cp39-manylinux2014_x86_64.whl (12.9 MB view details)

Uploaded CPython 3.9

robotic-0.0.23-cp38-cp38-manylinux2014_x86_64.whl (12.9 MB view details)

Uploaded CPython 3.8

robotic-0.0.23-cp37-cp37m-manylinux2014_x86_64.whl (12.9 MB view details)

Uploaded CPython 3.7m

robotic-0.0.23-cp36-cp36m-manylinux2014_x86_64.whl (12.9 MB view details)

Uploaded CPython 3.6m

File details

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

File metadata

File hashes

Hashes for robotic-0.0.23-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4e19f16edfd59bfc98094aefa88e03c0e26b64f8590dcea119aa2bb980544a21
MD5 2053f2b31f1585e413f665ae40a9ebab
BLAKE2b-256 ca22ac65719b90f26f8a214064191d09778811004b2beecc425a7a165c9b2c79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.0.23-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 50495e80e39254c2f568f29c75257313cc85583363b2e0f687eb1b546b7527b5
MD5 c236e0b38523d3a35502c7cd7c4830f8
BLAKE2b-256 bd7a1dea58e4bba4e45783fca85735fb87b760724e1c3eb131ef1e357c1c7b06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.0.23-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 970a611f6697fc43d9e803ee737e953bdd39a31afa9f8fbab98d2c103837d600
MD5 cec4f604eff3564b35db0012f3f63ade
BLAKE2b-256 2ad8f62f7a1aca4da24dadade283c014c8caefc93d0ec7c2c523ca353fcfb2c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.0.23-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a62a2d164dffb45b67e6b931e17e642a5425ab7ecad1d3332387402decd0328c
MD5 a4e6b385662fd124a4fd12c3643f24af
BLAKE2b-256 070e6cfd042767abbd252e54a16d9c6e82c97716bc209075b8ad886ad97e3e41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotic-0.0.23-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c05d69bd06f0dc59595be9b1c2b896431034f480c3a76c9b8fea5bfb6581f772
MD5 3a4b610ce0181720019e5968e962d9d5
BLAKE2b-256 c16396746fbc8d65eeb375c70462da50a6fcbdc324b30fec37885f67d0d6fea8

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