Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/1.7.1 #221

Closed
wants to merge 61 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
0be8e7d
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] May 23, 2023
e0e315f
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 23, 2023
374ccaa
Merge pull request #207 from stack-of-tasks/pre-commit-ci-update-config
nim65s May 23, 2023
9c0a3b7
Fix a typo in ex_4_walking (#209)
paLeziart Jun 28, 2023
b6a78ea
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Jul 18, 2023
0fcbfe6
Merge pull request #208 from stack-of-tasks/pre-commit-ci-update-config
nim65s Aug 18, 2023
51d5b2a
check solver status, set eps_abs to 1e-6, fix seed
fabinsch Oct 19, 2023
8691635
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 19, 2023
b8ed5db
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Oct 16, 2023
d29223a
CMake: require >= 3.10
nim65s Sep 16, 2023
5845d20
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Oct 23, 2023
9f9a6ec
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Oct 30, 2023
2b327d2
Exclude macros from clang-format pre-commit hook formatting
Guillaume227 Mar 18, 2024
7093186
CMake: allow use of installed jrl-cmakemodule
nim65s Mar 18, 2024
5ad7b77
CMake: do not assume CMAKE_INSTALL_INCLUDEDIR is include
nim65s Mar 18, 2024
b12c63c
sync submodule
nim65s Mar 18, 2024
c4aee8f
Merge pull request #226 from Guillaume227/gg-dev-format
nim65s Mar 18, 2024
3549bd5
Merge pull request #227 from nim65s/cmake
nim65s Mar 18, 2024
0ebbe75
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] May 13, 2024
b54734c
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 13, 2024
7408e80
Merge pull request #220 from stack-of-tasks/pre-commit-ci-update-config
jcarpent Jun 2, 2024
35999c2
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Aug 5, 2024
a58be3e
Merge pull request #236 from stack-of-tasks/master
nim65s Aug 19, 2024
7208254
Merge pull request #230 from stack-of-tasks/pre-commit-ci-update-config
jcarpent Aug 20, 2024
c9c43cd
format detail (#238)
nim65s Aug 21, 2024
5c9e19c
cmake: sync submodule
jcarpent Aug 20, 2024
e3a4fb4
Merge pull request #237 from jcarpent/devel
nim65s Aug 26, 2024
4eee221
add changelog
nim65s Dec 3, 2023
39f0409
pre-commit-sort
nim65s Dec 3, 2023
5280e25
pre-commit: add ruff
nim65s Dec 3, 2023
8807c24
ruff fixes
nim65s Dec 3, 2023
fcea1a9
pre-commit: fix isort config
nim65s Dec 3, 2023
a6b8f40
add changelog data
nim65s Dec 3, 2023
c61a4c6
ci: update ROS
nim65s Dec 3, 2023
1983594
fix format details
nim65s Dec 3, 2023
d086a5c
README: update badges
nim65s Dec 3, 2023
716309d
fix wrong format inside macros
nim65s Dec 3, 2023
6564415
CMake: avoid globs
nim65s Dec 5, 2023
62eb300
CMake: update
nim65s Dec 5, 2023
fa801a1
ci: ROS2 not yet available
nim65s Dec 5, 2023
42e46ec
ci: ROS: output on failure
nim65s Dec 5, 2023
49a1cc1
sync submodule
nim65s Aug 26, 2024
9db68c1
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 26, 2024
d265059
black + isort => ruff
nim65s Aug 26, 2024
1ae998e
ruff automatic fixes
nim65s Aug 26, 2024
9083416
ignore previous commit
nim65s Aug 26, 2024
299ec4e
pre-commit autoupdate
nim65s Aug 26, 2024
166ccbd
pre-commit run -a
nim65s Aug 26, 2024
c076f38
tests: update np.random use
nim65s Aug 26, 2024
b0ef108
python: use pathlib
nim65s Aug 26, 2024
b68a3ee
ruff: givup N
nim65s Aug 26, 2024
2b7e12a
ruff fixes
nim65s Aug 26, 2024
a1eb042
noqa
nim65s Aug 26, 2024
2e97731
fix BOO7
nim65s Aug 26, 2024
e928496
pre-commit run -a
nim65s Aug 26, 2024
fcf8bd3
ignore previous commit
nim65s Aug 26, 2024
2d65159
CMake: add missing sources
nim65s Aug 26, 2024
ae3fbd4
CMake: sort sources
nim65s Aug 26, 2024
6c845b1
CMake: add missing headers
nim65s Aug 26, 2024
a17a5e8
ROS CI: forget noetic
nim65s Aug 26, 2024
50317e7
add changelog entry
nim65s Aug 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,9 @@ b2be1d0b5a2ef7a5de758bca053161fb652aba56

# pre-commit run -a (Guilhem Saurel, 2022-09-05)
1d932e2d389a6205e6d3a7490b5c826fe01fea47

# ruff (Guilhem Saurel, 2024-08-26)
1ae998e5aef7dacc13bad7aa457575a513d78864

# pre-commit run -a (Guilhem Saurel, 2024-08-26)
e928496128b53fb15b1aad3b04fedd844ee86500
11 changes: 7 additions & 4 deletions .github/workflows/ci-linux-ros.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,25 @@ jobs:
strategy:
matrix:
env:
- {ROS_DISTRO: noetic, CMAKE_BUILD_TYPE: Debug}
- {ROS_DISTRO: noetic, CMAKE_BUILD_TYPE: Release}
#- {ROS_DISTRO: rolling} Unable to locate package ros-rolling-pinocchio
- {ROS_DISTRO: iron}
- {ROS_DISTRO: humble}
env:
CCACHE_DIR: /github/home/.ccache # Enable ccache
UPSTREAM_WORKSPACE: dependencies.rosinstall
CMAKE_ARGS: -DBUILD_WITH_OSQP=ON -DBUILD_WITH_PROXQP=ON -DBUILD_WITH_VECTORIZATION_SUPPORT=OFF # Simde is not available yet
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: recursive
# eiquadprog is not yet available in ROS2
- run: sed -i "/eiquadprog/d" package.xml
# This step will fetch/store the directory used by ccache before/after the ci run
- uses: actions/cache@v3
with:
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ matrix.env.ROS_DISTRO }}-${{ matrix.env.ROS_REPO }}
# Run industrial_ci
- uses: 'ros-industrial/industrial_ci@6a8f546cbd31fbd5c9f77e3409265c8b39abc3d6'
- uses: 'ros-industrial/industrial_ci@d23b9ad2c63bfad638a2b1fe3df34b8df9a2f17b'
env: ${{ matrix.env }}
59 changes: 30 additions & 29 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,31 +1,32 @@
ci:
autoupdate_branch: 'devel'
autoupdate_branch: devel
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: check-json
- id: check-symlinks
- id: check-toml
- id: check-yaml
- repo: https://github.com/psf/black
rev: 23.3.0
hooks:
- id: black
- repo: https://github.com/PyCQA/isort
rev: 5.12.0
hooks:
- id: isort
- repo: https://github.com/cheshirekow/cmake-format-precommit
rev: v0.6.13
hooks:
- id: cmake-format
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v16.0.3
hooks:
- id: clang-format
args: ['--style={BasedOnStyle: Google,SortIncludes: false}']
- repo: https://github.com/pappasam/toml-sort
rev: v0.23.1
hooks:
- id: toml-sort-fix
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.6.2
hooks:
- id: ruff
args:
- --fix
- --exit-non-zero-on-fix
- id: ruff-format
- repo: https://github.com/cheshirekow/cmake-format-precommit
rev: v0.6.13
hooks:
- id: cmake-format
- repo: https://github.com/pappasam/toml-sort
rev: v0.23.1
hooks:
- id: toml-sort-fix
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v18.1.8
hooks:
- id: clang-format
args:
- '--style={BasedOnStyle: Google, SortIncludes: false, WhitespaceSensitiveMacros: ["TSID_DISABLE_WARNING"]}'
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
- id: check-json
- id: check-symlinks
- id: check-toml
- id: check-yaml
185 changes: 185 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
# Changelog

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

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

- 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.

[unreleased]: https://github.com/stack-of-tasks/tsid/compare/v1.7.0...HEAD
[1.7.0]: https://github.com/stack-of-tasks/tsid/compare/v1.6.3...v1.7.0
[1.6.3]: https://github.com/stack-of-tasks/tsid/compare/v1.6.2...v1.6.3
[1.6.2]: https://github.com/stack-of-tasks/tsid/compare/v1.6.1...v1.6.2
[1.6.1]: https://github.com/stack-of-tasks/tsid/compare/v1.6.0...v1.6.1
[1.6.0]: https://github.com/stack-of-tasks/tsid/compare/v1.5.0...v1.6.0
[1.5.0]: https://github.com/stack-of-tasks/tsid/compare/v1.4.2...v1.5.0
[1.4.2]: https://github.com/stack-of-tasks/tsid/compare/v1.4.1...v1.4.2
[1.4.1]: https://github.com/stack-of-tasks/tsid/compare/v1.4.0...v1.4.1
[1.4.0]: https://github.com/stack-of-tasks/tsid/compare/v1.3.1...v1.4.0
[1.3.1]: https://github.com/stack-of-tasks/tsid/compare/v1.3.0...v1.3.1
[1.3.0]: https://github.com/stack-of-tasks/tsid/compare/v1.2.3...v1.3.0
[1.2.3]: https://github.com/stack-of-tasks/tsid/compare/v1.2.2...v1.2.3
[1.2.2]: https://github.com/stack-of-tasks/tsid/compare/v1.2.1...v1.2.2
[1.2.1]: https://github.com/stack-of-tasks/tsid/compare/v1.2.0...v1.2.1
[1.2.0]: https://github.com/stack-of-tasks/tsid/compare/v1.1.0...v1.2.0
[1.1.0]: https://github.com/stack-of-tasks/tsid/compare/v1.0.2...v1.1.0
[1.0.2]: https://github.com/stack-of-tasks/tsid/compare/v1.0.1...v1.0.2
[1.0.1]: https://github.com/stack-of-tasks/tsid/compare/v1.0.0...v1.0.1
[1.0.0]: https://github.com/stack-of-tasks/tsid/releases/tag/v1.0.0
41 changes: 20 additions & 21 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
# GNU Lesser General Public License along with tsid If not, see
# <http://www.gnu.org/licenses/>.

cmake_minimum_required(VERSION 3.1)
cmake_minimum_required(VERSION 3.10)

# Project properties
set(PROJECT_ORG stack-of-tasks)
Expand Down Expand Up @@ -52,13 +52,25 @@ set(CXX_DISABLE_WERROR TRUE)
set(DOXYGEN_USE_MATHJAX YES)
set(CMAKE_VERBOSE_MAKEFILE TRUE)

# JRL-cmakemodule setup
# Check if the submodule cmake have been initialized
set(JRL_CMAKE_MODULES "${CMAKE_CURRENT_LIST_DIR}/cmake")
if(NOT EXISTS "${CMAKE_SOURCE_DIR}/cmake/base.cmake")
if(${CMAKE_VERSION} VERSION_LESS "3.14.0")
if(EXISTS "${JRL_CMAKE_MODULES}/base.cmake")
message(STATUS "JRL cmakemodules found in 'cmake/' git submodule")
else()
find_package(jrl-cmakemodules QUIET CONFIG)
if(jrl-cmakemodules_FOUND)
get_property(
JRL_CMAKE_MODULES
TARGET jrl-cmakemodules::jrl-cmakemodules
PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
message(STATUS "JRL cmakemodules found on system at ${JRL_CMAKE_MODULES}")
elseif(${CMAKE_VERSION} VERSION_LESS "3.14.0")
message(
FATAL_ERROR
"\nPlease run the following command first:\ngit submodule update --init\n"
"\nCan't find jrl-cmakemodules. Please either:\n"
" - use git submodule: 'git submodule update --init'\n"
" - or install https://github.com/jrl-umi3218/jrl-cmakemodules\n"
" - or upgrade your CMake version to >= 3.14 to allow automatic fetching\n"
)
else()
message(STATUS "JRL cmakemodules not found. Let's fetch it.")
Expand Down Expand Up @@ -217,20 +229,6 @@ set(${PROJECT_NAME}_FORMULATIONS_HEADERS
include/tsid/formulations/inverse-dynamics-formulation-base.hpp
include/tsid/formulations/inverse-dynamics-formulation-acc-force.hpp)

file(
GLOB
${PYWRAP}_HEADERS
include/tsid/bindings/python/fwd.hpp
include/tsid/bindings/python/constraint/*.hpp
include/tsid/bindings/python/contacts/*.hpp
include/tsid/bindings/python/formulations/*.hpp
include/tsid/bindings/python/robots/*.hpp
include/tsid/bindings/python/solvers/*.hpp
include/tsid/bindings/python/tasks/*.hpp
include/tsid/bindings/python/trajectories/*.hpp
include/tsid/bindings/python/utils/*.hpp
include/tsid/bindings/python/math/*.hpp)

set(${PROJECT_NAME}_HEADERS
include/tsid/macros.hpp
include/tsid/utils/statistics.hpp
Expand Down Expand Up @@ -325,13 +323,14 @@ add_source_group(${PROJECT_NAME}_SOURCES)

add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_SOURCES}
${${PROJECT_NAME}_HEADERS})
target_include_directories(${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:include>)
target_include_directories(
${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
target_link_libraries(${PROJECT_NAME} PUBLIC pinocchio::pinocchio
eiquadprog::eiquadprog)

if(BUILD_WITH_PROXQP)
target_compile_definitions(${PROJECT_NAME} PUBLIC -DTSID_WITH_PROXSUITE)
target_link_libraries(${PROJECT_NAME} PUBLIC ${proxsuite_INTERFACE})
target_link_libraries(${PROJECT_NAME} PUBLIC proxsuite::proxsuite)
endif()

if(BUILD_WITH_OSQP)
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
# TSID - Task Space Inverse Dynamics
[![License](https://img.shields.io/badge/License-BSD%202--Clause-green.svg)](https://opensource.org/licenses/BSD-2-Clause)
[![Pipeline status](https://gitlab.laas.fr/stack-of-tasks/tsid/badges/master/pipeline.svg)](https://gitlab.laas.fr/stack-of-tasks/tsid/commits/master)
[![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/)
[![PyPI version](https://badge.fury.io/py/tsid.svg)](https://badge.fury.io/py/tsid)

[![License](https://img.shields.io/badge/License-BSD%202--Clause-green.svg)](https://opensource.org/licenses/BSD-2-Clause)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![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)

TSID 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).

Expand Down
Loading
Loading