{"id":20724118,"url":"https://github.com/stack-of-tasks/tsid","last_synced_at":"2025-05-16T08:03:23.162Z","repository":{"id":42192337,"uuid":"82187715","full_name":"stack-of-tasks/tsid","owner":"stack-of-tasks","description":"Efficient Task Space Inverse Dynamics (TSID) based on Pinocchio","archived":false,"fork":false,"pushed_at":"2025-05-12T18:49:01.000Z","size":6648,"stargazers_count":233,"open_issues_count":5,"forks_count":83,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-05-12T19:53:15.222Z","etag":null,"topics":["control","humanoids","optimization","pinocchio","robotics","task-space-inverse-dynamics"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stack-of-tasks.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-02-16T14:12:38.000Z","updated_at":"2025-05-07T15:03:44.000Z","dependencies_parsed_at":"2023-11-07T02:26:34.949Z","dependency_job_id":"2e1a9282-57e8-4529-8d23-58e652b9adc1","html_url":"https://github.com/stack-of-tasks/tsid","commit_stats":{"total_commits":574,"total_committers":38,"mean_commits":"15.105263157894736","dds":0.7386759581881532,"last_synced_commit":"89d61d845d91a3e1e48bd4dda7a7b28c7c476471"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stack-of-tasks%2Ftsid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stack-of-tasks%2Ftsid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stack-of-tasks%2Ftsid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stack-of-tasks%2Ftsid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stack-of-tasks","download_url":"https://codeload.github.com/stack-of-tasks/tsid/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254493381,"owners_count":22080126,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["control","humanoids","optimization","pinocchio","robotics","task-space-inverse-dynamics"],"created_at":"2024-11-17T04:12:26.699Z","updated_at":"2025-05-16T08:03:23.143Z","avatar_url":"https://github.com/stack-of-tasks.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TSID - Task Space Inverse Dynamics\n[![Pipeline status](https://gitlab.laas.fr/stack-of-tasks/tsid/badges/master/pipeline.svg)](https://gitlab.laas.fr/stack-of-tasks/tsid/commits/master)\n[![Coverage report](https://gitlab.laas.fr/stack-of-tasks/tsid/badges/master/coverage.svg?job=doc-coverage)](http://projects.laas.fr/gepetto/doc/stack-of-tasks/tsid/master/coverage/)\n[![PyPI version](https://badge.fury.io/py/tsid.svg)](https://badge.fury.io/py/tsid)\n\n[![License](https://img.shields.io/badge/License-BSD%202--Clause-green.svg)](https://opensource.org/licenses/BSD-2-Clause)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n\nTSID is a C++ library for optimization-based inverse-dynamics control based on the rigid multi-body dynamics library [Pinocchio](https://github.com/stack-of-tasks/pinocchio).\n\n## Documentation\n* Take a look at the project [wiki](https://github.com/stack-of-tasks/tsid/wiki) for an overview of the design of the library.\n* In the exercises folder you can find several examples of how to use TSID in Python with robot manipulators, humanoids, or quadrupeds.\n* On the [website of Andrea Del Prete](https://andreadelprete.github.io/#teaching) you can find slides and video lessons on TSID.\n* [Memmo 2020 summer school](https://memory-of-motion.github.io/summer-school/)\n\n## Installation with Conda\n\nIf you want to directly dive into TSID in Python, only one single line is sufficient (assuming you have Conda installed):\n\n\u003cp align=\"center\"\u003e\nconda install tsid -c conda-forge\n\u003c/p\u003e\n\n\n## Installation from Debian/Ubuntu packages, with robotpkg\nIf you have never added robotpkg's software repository you can do it with the following commands:\n```\nsudo tee /etc/apt/sources.list.d/robotpkg.list \u003c\u003cEOF\ndeb [arch=amd64] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -sc) robotpkg\nEOF\n\ncurl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add -\nsudo apt update\n```\nYou can install TSID and its python bindings (replace * with you Python version) with:\n```\nsudo apt install robotpkg-py3*-tsid\n```\n\n\n## Installation from sources\n\nFirst you need to install the following dependencies:\n* boost (unit_test_framework)\n* eigen3\n* [pinocchio](https://github.com/stack-of-tasks/pinocchio)\n* [eiquadprog](https://github.com/stack-of-tasks/eiquadprog)\n* [example-robot-data](https://github.com/Gepetto/example-robot-data) (only for running the examples)\n\nTo install eigen3 on Ubuntu you can use apt-get:\n  `sudo apt-get install libeigen3-dev`\n\nTo install [pinocchio](https://github.com/stack-of-tasks/pinocchio) follow the instruction on its website.\n\nTo compile TSID:\n\n    cd $DEVEL/openrobots/src/\n    git clone --recursive git@github.com:stack-of-tasks/tsid.git\n    cd tsid\n    mkdir _build-RELEASE\n    cd _build-RELEASE\n    cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=$DEVEL/openrobots\n    make install\n\n## Python Bindings\nTo use this library in python, we offer python bindings based on Boost.Python and EigenPy.\n\nTo install EigenPy you can compile the source code:\n\n    git clone https://github.com/stack-of-tasks/eigenpy\n\nor, on Ubuntu, you can use apt-get:\n\n    sudo apt-get install robotpkg-py3*-eigenpy\n\nFor testing the python bindings, you can run the unit test scripts in the `script` folder, for instance:\n\n    ipython script/test_formulation.py\n\nTo run the demo using gepetto-viewer:\n\n    ipython demo/demo_romeo.py\n\n## Credits\n\nThis package is authored by:\n\n- [Andrea Del Prete](https://andreadelprete.github.io) (University of Trento)\n- [Justin Carpentier](https://jcarpent.github.io) (INRIA)\n\nIt includes key contributions from:\n\n- [Julian Viereck](https://github.com/jviereck) (Max Planck Institute, New  York  University)\n- [Sanghyun Kim](https://github.com/ggory15) (Seoul National University)\n- [Eloise Dalin](https://github.com/dalinel) (LORIA, INRIA Lorraine)\n- [Noelie Ramuzat](https://github.com/NoelieRamuzat) (LAAS, CNRS)\n- [Pierre Fernbach](https://github.com/pFernbach) (LAAS, CNRS)\n- [Aurelie Bonnefoy](https://github.com/ABonnefoy) (LAAS, CNRS)\n- [Etienne Arlaud](https://github.com/EtienneAr) (INRIA)\n- [Fabian Schramm](https://github.com/fabinsch) (INRIA)\n\nAnd is maintained by:\n\n- [Guilhem Saurel](https://github.com/nim65s) (LAAS-CNRS)\n\n## Citing\n\nIf you are (or not) happy with TSID and want to cite it, please use the following citation:\n\n    @inproceedings {adelprete:jnrh:2016,\n\t    title = {Implementing Torque Control with High-Ratio Gear Boxes and without Joint-Torque Sensors},\n\t    booktitle = {Int. Journal of Humanoid Robotics},\n\t    year = {2016},\n\t    pages = {1550044},\n\t    url = {https://hal.archives-ouvertes.fr/hal-01136936/document},\n\t    author = {Andrea Del Prete, Nicolas Mansard, Oscar E Ramos, Olivier Stasse, Francesco Nori}\n    }\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstack-of-tasks%2Ftsid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstack-of-tasks%2Ftsid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstack-of-tasks%2Ftsid/lists"}