Skip to main content

A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives

Project description

TSID - Task Space Inverse Dynamics

License Pipeline status Coverage report PyPI version Code style: black

TSID is a C++ library for optimization-based inverse-dynamics control based on the rigid multi-body dynamics library Pinocchio.

Documentation

  • Take a look at the project wiki for an overview of the design of the library.
  • In the exercises folder you can find several examples of how to use TSID in Python with robot manipulators, humanoids, or quadrupeds.
  • On the website of Andrea Del Prete you can find slides and video lessons on TSID.
  • Memmo 2020 summer school

Installation with Conda

If you want to directly dive into TSID in Python, only one single line is sufficient (assuming you have Conda installed):

conda install tsid -c conda-forge

Installation from Debian/Ubuntu packages, with robotpkg

If you have never added robotpkg's software repository you can do it with the following commands:

sudo tee /etc/apt/sources.list.d/robotpkg.list <<EOF
deb [arch=amd64] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -sc) robotpkg
EOF

curl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add -
sudo apt update

You can install TSID and its python bindings (replace * with you Python version) with:

sudo apt install robotpkg-py3*-tsid

Installation from sources

First you need to install the following dependencies:

To install eigen3 on Ubuntu you can use apt-get: sudo apt-get install libeigen3-dev

To install pinocchio follow the instruction on its website.

To compile TSID:

cd $DEVEL/openrobots/src/
git clone --recursive git@github.com:stack-of-tasks/tsid.git
cd tsid
mkdir _build-RELEASE
cd _build-RELEASE
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=$DEVEL/openrobots
make install

Python Bindings

To use this library in python, we offer python bindings based on Boost.Python and EigenPy.

To install EigenPy you can compile the source code:

git clone https://github.com/stack-of-tasks/eigenpy

or, on Ubuntu, you can use apt-get:

sudo apt-get install robotpkg-py3*-eigenpy

For testing the python bindings, you can run the unit test scripts in the script folder, for instance:

ipython script/test_formulation.py

To run the demo using gepetto-viewer:

ipython demo/demo_romeo.py

Credits

This package is authored by:

It includes key contributions from:

And is maintained by:

Citing

If you are (or not) happy with TSID and want to cite it, please use the following citation:

@inproceedings {adelprete:jnrh:2016,
    title = {Implementing Torque Control with High-Ratio Gear Boxes and without Joint-Torque Sensors},
    booktitle = {Int. Journal of Humanoid Robotics},
    year = {2016},
    pages = {1550044},
    url = {https://hal.archives-ouvertes.fr/hal-01136936/document},
    author = {Andrea Del Prete, Nicolas Mansard, Oscar E Ramos, Olivier Stasse, Francesco Nori}
}

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

tsid-1.7.0-1-pp39-pypy39_pp73-macosx_11_0_arm64.whl (850.7 kB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

tsid-1.7.0-1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl (1.2 MB view hashes)

Uploaded PyPy manylinux: glibc 2.28+ x86-64

tsid-1.7.0-1-pp38-pypy38_pp73-macosx_11_0_arm64.whl (850.9 kB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

tsid-1.7.0-1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (951.0 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

tsid-1.7.0-1-cp311-cp311-musllinux_1_1_x86_64.whl (1.2 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

tsid-1.7.0-1-cp311-cp311-manylinux_2_28_x86_64.whl (1.2 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

tsid-1.7.0-1-cp311-cp311-manylinux_2_28_aarch64.whl (1.1 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARM64

tsid-1.7.0-1-cp311-cp311-macosx_11_0_arm64.whl (850.7 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

tsid-1.7.0-1-cp311-cp311-macosx_10_9_x86_64.whl (950.9 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

tsid-1.7.0-1-cp310-cp310-musllinux_1_1_x86_64.whl (1.2 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

tsid-1.7.0-1-cp310-cp310-manylinux_2_28_x86_64.whl (1.2 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

tsid-1.7.0-1-cp310-cp310-manylinux_2_28_aarch64.whl (1.1 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.28+ ARM64

tsid-1.7.0-1-cp310-cp310-macosx_11_0_arm64.whl (850.7 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

tsid-1.7.0-1-cp310-cp310-macosx_10_9_x86_64.whl (950.9 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

tsid-1.7.0-1-cp39-cp39-musllinux_1_1_x86_64.whl (1.2 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

tsid-1.7.0-1-cp39-cp39-manylinux_2_28_x86_64.whl (1.2 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

tsid-1.7.0-1-cp39-cp39-manylinux_2_28_aarch64.whl (1.1 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.28+ ARM64

tsid-1.7.0-1-cp39-cp39-macosx_11_0_arm64.whl (850.7 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

tsid-1.7.0-1-cp39-cp39-macosx_10_9_x86_64.whl (950.9 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

tsid-1.7.0-1-cp38-cp38-musllinux_1_1_x86_64.whl (1.2 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

tsid-1.7.0-1-cp38-cp38-manylinux_2_28_x86_64.whl (1.2 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

tsid-1.7.0-1-cp38-cp38-manylinux_2_28_aarch64.whl (1.1 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.28+ ARM64

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