-
 

tsid package from tsid repo

tsid

Package Summary

Tags No category tags.
Version 1.7.1
License BSD
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/stack-of-tasks/tsid.git
VCS Type git
VCS Version devel
Last Updated 2024-11-21
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Efficient Task Space Inverse Dynamics (TSID) based on Pinocchio

Additional Links

Maintainers

  • Guilhem Saurel

Authors

  • Andrea Del Prete
  • Justin Carpentier

TSID - Task Space Inverse Dynamics

Pipeline status Coverage report PyPI version

License Code style: black Ruff

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}
}
CHANGELOG

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

  • Fix missing const specifier in python bindings for methods RobotInertia.set_rotor_inertia() and RobotInertia.set_gear_ratios()

    1.7.1 - 2024-08-26

  • Fix a typo in ex_4_walking
  • check solver status, set eps_abs to 1e-6, fix seed
  • CMake: require >= 3.10
  • add changelog
  • setup ruff & fix isort pre-commit config
  • update ROS CI

1.7.0 - 2023-05-13

  • expose SE3ToVector and vectorToSE3
  • remove warnings
  • Enhance Python target packaging
  • Add CI with GitHub Action for conda
  • Add support for proxqp and osqp solver
  • Clean and update contributors list
  • pre-commit autoupdate
  • Expose TaskJointPosVelAccBounds
  • Expose AddMotionTask for TaskJointPosVelAccBounds
  • Fix qpmad
  • Add clang-format Google style
  • Add Measured force as an external force task with moving objects
  • update CMake: fetch submodule, set default build type, fix RPATH
  • fix for eigenpy v3
  • np.matrix → np.array
  • tooling: setup black isort & toml-sort

1.6.3 - 2022-11-02

  • Require C++17
  • fix tests in 18.04
  • update pinocchio use

1.6.2 - 2022-09-05

  • update python tests for np array
  • add task actuation equality
  • use generated headers
  • Choose floating-base (or not) when creating a robot wrapper
  • Add optional support of qpmad solver
  • update packaging for eigenpy 2.7.12

1.6.1 - 2021-10-19

This new release is mostly a maintenance release, including fixes for the recent version of Eigen 3.4.

1.6.0 - 2021-03-18

  • Add bindings for method Contact6d::getMotionTask
  • Add Center of Pressure Taks
  • fix warnings

1.5.0 - 2021-03-03

  • [py] Add config variable to specify whether end-effector task should be formulated in local frame or world frame.
  • [C++] Standardize names of methods to get and set mask in motion tasks.
  • [py] Add accessors masks in TaskCOM and TaskSE3Equality.
  • bugfixes

1.4.2 - 2020-11-26

  • Add a mask to task-com-equality
  • Fix bug in Contact6d::setRegularizationTaskWeightVector
  • CMake: fix configure without tests

1.4.1 - 2020-09-25

  • fix memory leaks thanks to shared_ptr
  • fix warnings
  • fix package.xml for ROS

1.4.0 - 2020-09-09

  • add setGravity
  • stop using StdVec in python to make code more user friendly
  • add 6d contact with motion constraint at priority level 1 in python
  • use example-robot-data in notebooks

1.3.1 - 2020-06-05

  • fix license
  • fix generated tsid.pc

1.3.0 - 2020-05-26

  • reactive test
  • add package.xml
  • add CheatSheet
  • updates for numpy.array & python 3
  • updateRigidContactWeights: fix and add to python API
  • use eiquadprog
  • fix compatibility with pinocchio v2.4.5

1.2.3 - 2020-03-30

  • renamed tests dir
  • fix python tests
  • CMake: export project and use exports from dependencies
  • CMake: keep minimal required instructions

1.2.2 - 2020-03-01

  • add angular momentum equality task
  • update to pinocchio changes
  • Python 3 compatibility
  • add some documentation
  • fix python issue

1.2.1 - 2019-09-19

  • fix compatibility with recent pinocchio versions

1.2.0 - 2019-03-06

  • Pinocchio v2, fix #31
  • Fix demo_romeo for pinocchio v2
  • Pull request for use TSID in python.
  • Add missing includes, fix #18

1.1.0 - 2018-10-10

This release updates to non backward-compatibles changes in pinocchio v1.3.0

1.0.2 - 2018-06-12

This release is mostly a maintenance release. It fixes some bug with respect to Pinocchio. It also fixes some issues with respect to the packaging.

1.0.1 - 2018-01-12

  • [joint-posture-task] Fix bug in computation of task matrix from mask
  • [task-se3-equality] Add method to get frame-id
  • [Robot] Add missing evaluation of the center of mass acceleration provided zero joint acceleration
  • [Math] Fix bug related to Eigen undefined function set_is_malloc_allowed
  • [CMake] Correct minimal version of Eigen3
  • [inv-dyn-form-acc-force] Fix potential bug in removal of contact constraint
  • [task-se3-equality] Fix small bug in computaiton of acceleration (just used for debugging)
  • [contact-6d] Add methods to set reference force and weight vector
  • [inv-dyn-form-acc-force] Fix bug: weight of force regularization task was not updated
  • [robot-wrapper] Fix bug in mass matrix: copy upper triangular part to lower triangular part (before this it was set to zero)
  • [formulations] Remove debug prints
  • [formulations] Fix bug in update of task weights
  • [robot-wrapper] BUG FIX: compute center of mass acceleration in computeAllTerms (before it was not computed so we were introducing random number in the CoM task)
  • [tsid-formulations] Add method to change the weight of a task.
  • [eigquadprog-fast] In DEBUG, in case a constraint is not verified, set the status flag to ERROR (even if the solver said the problem has been solved)
  • [task-com-equality] Fix little bugs in methods to get pos/vel references and errors, and in method to get desired acceleration
  • [math-utils] Add function to check if matrix/vector contains NaN
  • [math-utils] Pass JacobiSVD by reference in function solveWithDampingFromSvd
  • [math-utils] Add function to solve linear system of equations from svd decomposition

1.0.0 - 2017-06-16

This is the first release of TSID. This release includes minimal features for the torque control of humanoid robots such as HRP-2.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tsid at Robotics Stack Exchange

tsid package from tsid repo

tsid

Package Summary

Tags No category tags.
Version 1.7.1
License BSD
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/stack-of-tasks/tsid.git
VCS Type git
VCS Version devel
Last Updated 2024-11-21
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Efficient Task Space Inverse Dynamics (TSID) based on Pinocchio

Additional Links

Maintainers

  • Guilhem Saurel

Authors

  • Andrea Del Prete
  • Justin Carpentier

TSID - Task Space Inverse Dynamics

Pipeline status Coverage report PyPI version

License Code style: black Ruff

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}
}
CHANGELOG

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

  • Fix missing const specifier in python bindings for methods RobotInertia.set_rotor_inertia() and RobotInertia.set_gear_ratios()

    1.7.1 - 2024-08-26

  • Fix a typo in ex_4_walking
  • check solver status, set eps_abs to 1e-6, fix seed
  • CMake: require >= 3.10
  • add changelog
  • setup ruff & fix isort pre-commit config
  • update ROS CI

1.7.0 - 2023-05-13

  • expose SE3ToVector and vectorToSE3
  • remove warnings
  • Enhance Python target packaging
  • Add CI with GitHub Action for conda
  • Add support for proxqp and osqp solver
  • Clean and update contributors list
  • pre-commit autoupdate
  • Expose TaskJointPosVelAccBounds
  • Expose AddMotionTask for TaskJointPosVelAccBounds
  • Fix qpmad
  • Add clang-format Google style
  • Add Measured force as an external force task with moving objects
  • update CMake: fetch submodule, set default build type, fix RPATH
  • fix for eigenpy v3
  • np.matrix → np.array
  • tooling: setup black isort & toml-sort

1.6.3 - 2022-11-02

  • Require C++17
  • fix tests in 18.04
  • update pinocchio use

1.6.2 - 2022-09-05

  • update python tests for np array
  • add task actuation equality
  • use generated headers
  • Choose floating-base (or not) when creating a robot wrapper
  • Add optional support of qpmad solver
  • update packaging for eigenpy 2.7.12

1.6.1 - 2021-10-19

This new release is mostly a maintenance release, including fixes for the recent version of Eigen 3.4.

1.6.0 - 2021-03-18

  • Add bindings for method Contact6d::getMotionTask
  • Add Center of Pressure Taks
  • fix warnings

1.5.0 - 2021-03-03

  • [py] Add config variable to specify whether end-effector task should be formulated in local frame or world frame.
  • [C++] Standardize names of methods to get and set mask in motion tasks.
  • [py] Add accessors masks in TaskCOM and TaskSE3Equality.
  • bugfixes

1.4.2 - 2020-11-26

  • Add a mask to task-com-equality
  • Fix bug in Contact6d::setRegularizationTaskWeightVector
  • CMake: fix configure without tests

1.4.1 - 2020-09-25

  • fix memory leaks thanks to shared_ptr
  • fix warnings
  • fix package.xml for ROS

1.4.0 - 2020-09-09

  • add setGravity
  • stop using StdVec in python to make code more user friendly
  • add 6d contact with motion constraint at priority level 1 in python
  • use example-robot-data in notebooks

1.3.1 - 2020-06-05

  • fix license
  • fix generated tsid.pc

1.3.0 - 2020-05-26

  • reactive test
  • add package.xml
  • add CheatSheet
  • updates for numpy.array & python 3
  • updateRigidContactWeights: fix and add to python API
  • use eiquadprog
  • fix compatibility with pinocchio v2.4.5

1.2.3 - 2020-03-30

  • renamed tests dir
  • fix python tests
  • CMake: export project and use exports from dependencies
  • CMake: keep minimal required instructions

1.2.2 - 2020-03-01

  • add angular momentum equality task
  • update to pinocchio changes
  • Python 3 compatibility
  • add some documentation
  • fix python issue

1.2.1 - 2019-09-19

  • fix compatibility with recent pinocchio versions

1.2.0 - 2019-03-06

  • Pinocchio v2, fix #31
  • Fix demo_romeo for pinocchio v2
  • Pull request for use TSID in python.
  • Add missing includes, fix #18

1.1.0 - 2018-10-10

This release updates to non backward-compatibles changes in pinocchio v1.3.0

1.0.2 - 2018-06-12

This release is mostly a maintenance release. It fixes some bug with respect to Pinocchio. It also fixes some issues with respect to the packaging.

1.0.1 - 2018-01-12

  • [joint-posture-task] Fix bug in computation of task matrix from mask
  • [task-se3-equality] Add method to get frame-id
  • [Robot] Add missing evaluation of the center of mass acceleration provided zero joint acceleration
  • [Math] Fix bug related to Eigen undefined function set_is_malloc_allowed
  • [CMake] Correct minimal version of Eigen3
  • [inv-dyn-form-acc-force] Fix potential bug in removal of contact constraint
  • [task-se3-equality] Fix small bug in computaiton of acceleration (just used for debugging)
  • [contact-6d] Add methods to set reference force and weight vector
  • [inv-dyn-form-acc-force] Fix bug: weight of force regularization task was not updated
  • [robot-wrapper] Fix bug in mass matrix: copy upper triangular part to lower triangular part (before this it was set to zero)
  • [formulations] Remove debug prints
  • [formulations] Fix bug in update of task weights
  • [robot-wrapper] BUG FIX: compute center of mass acceleration in computeAllTerms (before it was not computed so we were introducing random number in the CoM task)
  • [tsid-formulations] Add method to change the weight of a task.
  • [eigquadprog-fast] In DEBUG, in case a constraint is not verified, set the status flag to ERROR (even if the solver said the problem has been solved)
  • [task-com-equality] Fix little bugs in methods to get pos/vel references and errors, and in method to get desired acceleration
  • [math-utils] Add function to check if matrix/vector contains NaN
  • [math-utils] Pass JacobiSVD by reference in function solveWithDampingFromSvd
  • [math-utils] Add function to solve linear system of equations from svd decomposition

1.0.0 - 2017-06-16

This is the first release of TSID. This release includes minimal features for the torque control of humanoid robots such as HRP-2.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tsid at Robotics Stack Exchange