Efficient Inverse Dynamics (python bindings)
Project description
TSID - Task Space Inverse Dynamics
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:
- boost (unit_test_framework)
- eigen3
- pinocchio
- eiquadprog
- example-robot-data (only for running the examples)
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:
- Andrea Del Prete (University of Trento)
- Justin Carpentier (INRIA)
It includes key contributions from:
- Julian Viereck (Max Planck Institute, New York University)
- Sanghyun Kim (Seoul National University)
- Eloise Dalin (LORIA, INRIA Lorraine)
- Noelie Ramuzat (LAAS, CNRS)
- Pierre Fernbach (LAAS, CNRS)
- Aurelie Bonnefoy (LAAS, CNRS)
- Etienne Arlaud (INRIA)
And is maintained by:
- Guilhem Saurel (LAAS-CNRS)
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
Built Distributions
Hashes for tsid-1.6.1-1-cp39-cp39-manylinux_2_24_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4902a9140e3fe4a0e2226994fd5fd99b8ce81802e55410c7165f2b7cad1e5382 |
|
MD5 | a3f98da6402610b844143cd06d810d19 |
|
BLAKE2b-256 | 9e9dfce01c3a44240c52240cdae325f66dee22479d5deb6f0eaca736bcdc8246 |
Hashes for tsid-1.6.1-1-cp38-cp38-manylinux_2_24_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a55824979d785df05496eb74327f6d7df54caf2681e23a5d150bf8bb49ca1dcc |
|
MD5 | 023c3dc68789a596c914148886948535 |
|
BLAKE2b-256 | 6ebade81af44bebc68d33fb7f086a48ec7d057751e2ba4bc3b581453022131a6 |
Hashes for tsid-1.6.1-1-cp37-cp37m-manylinux_2_24_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 509670eea00f61bea49944e01daedcb3da445a669ea03899b62b19803c015709 |
|
MD5 | 01b04fcf9a684474f59a3ecbc1640a90 |
|
BLAKE2b-256 | 0e608031e000ed423064c61cacc72f213edb357abdd89c6b245339053807b8c7 |
Hashes for tsid-1.6.1-1-cp36-cp36m-manylinux_2_24_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bc33434b2d0827fb1bf7832ebddfdbeae6976198c9b1c77a38ab6abcb05b578 |
|
MD5 | 3b96f63cbca17d7a0379800fb4c097ec |
|
BLAKE2b-256 | 08b390445bda62a1e6ef7d3ae6faa5d95d928ef957353b4ea71b4541db13e61b |
Hashes for tsid-1.6.1-1-cp27-cp27mu-manylinux_2_24_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 261e29d131942f4c344e46469efbe2da9462a4ea6c62a600ce5207ec3abf79e6 |
|
MD5 | c248397d5c0033cd9cf27845786e1c07 |
|
BLAKE2b-256 | 3a917a434e72a7db49cde0abe00d63b109674e4921e6bd736d6b1577470b837f |