Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1743 commits
Select commit Hold shift + click to select a range
35c13d6
geometry: fix compilation warning
jcarpent May 16, 2025
6ce238a
math/linalg: fix compilation error
jcarpent May 16, 2025
2646345
benchmark/linalg: add bench of basic operations
jcarpent May 16, 2025
330463b
cmake/benchmarks: clean
jcarpent May 16, 2025
7f1724b
math/linalg: enchance code gen of 5x5
jcarpent May 16, 2025
5115429
math/linalg: further enhancement
jcarpent May 16, 2025
a45ce07
math/linalg: enhance 6x6
jcarpent May 16, 2025
0f76a40
math/linalg: enhance overall the implementation using LDLT factorisat…
jcarpent May 16, 2025
5e7a0ea
dev/tools: add LDLT factorization for faster algos
jcarpent May 16, 2025
00341ed
cmake: add missing files to export
jcarpent May 16, 2025
6d76b42
math/linalg: add support for 12x12
jcarpent May 16, 2025
16d1061
test/linalg: add test for 12x12 and increase tol
jcarpent May 16, 2025
a15107f
bench/linalg: add helper macro
jcarpent May 16, 2025
0211e24
bench/linalg: add bench for 12x12
jcarpent May 16, 2025
447e464
bench/linalg: add LLT/LDLT matrix inversion
jcarpent May 16, 2025
7e84420
math/linalg: use ldlt for default implementation
jcarpent May 16, 2025
54f897d
core: add macro PINOCCHIO_MAC_ARM64
jcarpent May 16, 2025
794b8ac
math/linalg: specialize inverse for PINOCCHIO_MAC_ARM64
jcarpent May 16, 2025
7528114
math/linalg: rename struct
jcarpent May 16, 2025
92a896c
math/linalg: use code generated impl when needed
jcarpent May 16, 2025
2f61304
bench/linalg: switch order for clarity
jcarpent May 16, 2025
c40c293
math/algo: add default for 8x8, 9x9, 10x10, 11x11
jcarpent May 16, 2025
4453fdc
math/linalg: add template file for adding new codegen impl
jcarpent May 16, 2025
302f870
test/math: test new introduced codegen impl
jcarpent May 16, 2025
53107dd
bench/linalg: extend bench for extra codegen
jcarpent May 16, 2025
77618cd
math/linalg: use code gen for 8x8,9x9,10x10,11x11
jcarpent May 16, 2025
251706f
math/algo: add undef SET_MATRIX_INVERSION_FOR
jcarpent May 16, 2025
c454f0f
core: fix copyright
jcarpent May 16, 2025
820646a
constraints: split operations in different subcases for constraints
jcarpent May 16, 2025
5d4d555
cmake: install files
jcarpent May 16, 2025
9c33cc9
constraints/baumgarte: 💄
jcarpent May 16, 2025
7f6ebe1
algo/delassus: remove memory allocation
jcarpent May 16, 2025
4eef61d
algo/delassus: remove useless comment
jcarpent May 17, 2025
fb7e6fb
math/linalg: remove useless EIGEN_STRONG_INLINE
jcarpent May 17, 2025
432649f
eigen: add missing keywords for Eigen::NumTraits specialization
jcarpent May 17, 2025
55f8cc2
math: add helper dummy_precision
jcarpent May 17, 2025
a3a8eea
math: add doc
jcarpent May 17, 2025
b716b54
math: add missing return
jcarpent May 17, 2025
53efe6c
math/linalg: change assert tolerance
jcarpent May 17, 2025
f304bbd
math/helpers: add is_square
jcarpent May 17, 2025
609760f
math/helpers: use is_square in is_symmetric
jcarpent May 17, 2025
7a090e7
math/linalg: fix check
jcarpent May 17, 2025
6fccab4
mah/linalg: add dedicated header for code generated matrix inverses
jcarpent May 17, 2025
2dfe99c
core/macros: add PINOCCHIO_MAYBE_UNUSED
jcarpent May 17, 2025
0180c91
math/linalg: rebrand and add dispatch for dynamic types
jcarpent May 17, 2025
b713ad4
math/linalg: use switch case approach
jcarpent May 17, 2025
70ada54
test/linalg: add testing for dynamic matrix
jcarpent May 17, 2025
620fed7
math/linalg: add missing break
jcarpent May 17, 2025
0c765b9
math/linalg: move function to the right header
jcarpent May 17, 2025
ddeb883
math/linalg: add templated size to MatrixInversionEigenDefaultImpl
jcarpent May 17, 2025
c6f0a18
math/linalg: use specific size for MatrixInversionEigenDefaultImpl
jcarpent May 17, 2025
54ae3a4
bench/linalg: refactor the test to include dynamic matrices
jcarpent May 17, 2025
bd9b998
bench: add missing ->Apply(Arg)
jcarpent May 17, 2025
4d81af6
math/linalg: use block instead of Eigen::Map
jcarpent May 17, 2025
199c135
bench: add benchmark of some spatial operations
jcarpent May 17, 2025
f1a0cc0
bench/basic: add more bench of matrix multplications
jcarpent May 17, 2025
6638ae5
bench: uncoment
jcarpent May 17, 2025
9479210
test/linalg: reduce number of tests in release mode
jcarpent May 18, 2025
437cc0a
helpers/reference: refactor code for simplification
jcarpent May 18, 2025
1ce184a
helpers/reference: extend to unique_ptr
jcarpent May 18, 2025
5ba85a9
test/reference: test std::unique_ptr
jcarpent May 18, 2025
28770ae
algo/cholesky: fix API to account for Holder in ConstraintCholesky co…
jcarpent May 18, 2025
df41f2d
sdf_parser: fix JointType namespace
AjSat May 6, 2025
c77670f
Merge branch 'lcaba_build_fix' into 'topic/lcaba'
jcarpent May 20, 2025
da7d8b1
ci/linux: remove support of 20.04
jcarpent May 20, 2025
03403af
cmake: sync submodule
jcarpent May 20, 2025
69781cb
cmake: set CMake minimal expected version to 3.22
jcarpent May 20, 2025
b154ab9
Create a visitor to expose liegroup of a joint
Apr 1, 2025
2ca4a95
Apply the visitor to jointmodel exposition
Apr 1, 2025
61754b8
Joint: expose zassociated lie group fix
Apr 1, 2025
a0d409e
LieGroup: clean inheritance
Apr 2, 2025
eb6d2de
Joint: Fix signature
Apr 3, 2025
2d57f82
Joint: add method related to tangent map
Mar 24, 2025
a585a2b
Joint: Add tangent map logic in data
Mar 25, 2025
5adf947
Joint: Add TangentMap_t to all variant type
Mar 25, 2025
7cdeab4
Joint: Comment eventual future implementation of tangent mapping
Mar 25, 2025
d2d1dfe
Joint: Add the tangent map data
Mar 25, 2025
dfac8d8
Joint: add calc tangent map to normal joint
Mar 25, 2025
a3cf178
Joint: add calc tangent map to mimic and composit
Mar 25, 2025
d187544
Joint: tangent map fix warings
Mar 25, 2025
69b3166
Joint: tangent map add bindings
Mar 25, 2025
a608a67
Joint: Fix usage of unaryjointvisitor
Mar 26, 2025
e272a6c
Joint-Visitor: generic boost::fusion::append
Mar 26, 2025
73a7cee
Joint: tangent map add helping overload
Mar 26, 2025
a21b5b8
Joint: TangentMap expose necessary specific eigentype
Mar 26, 2025
6f3ed1b
Joint: Tangent map use _impl convension to avoid name hidding in mult…
Mar 26, 2025
02db624
Joint: implement tangent map formulae for spherical joint
Mar 26, 2025
94ad14e
Joint: TangentMap spherical fix
Mar 26, 2025
8e3f738
Revert back visitor variadic test
Mar 26, 2025
da94b2f
Joint: Fix quat real part convention
Mar 26, 2025
265a674
Joint: Add tangent map for unbounded
Mar 27, 2025
8361900
Joint: Tangent map implementation for freeflyer
Mar 27, 2025
27a94ad
Joint: TangentMap implement Mimic, RUnbound and Planar
Mar 27, 2025
bf7e123
Joint: implement Composite
Mar 27, 2025
fe7f448
Joint: TangentMap composite and mimic, fix compilation error
Mar 27, 2025
11de101
Joint: Tangentmap add comment on design choice. It remains to make th…
Mar 27, 2025
d3b6d8e
Joint: Tangent map add serialization
Mar 28, 2025
634c071
Joint: Tangent map test with finite difference
Mar 28, 2025
5d83f85
Joint: rename tangent_map attribute
Mar 31, 2025
1c763c1
Joint: tangent_map visitor right name-space
Mar 31, 2025
f5b3067
Liegroup: Add tangent map related methods
Apr 1, 2025
dc19b41
Liegroup: normalize writing choice for tangentmap implementation and …
Apr 1, 2025
ca5e033
Add liegroup method and complete LieGroupMap
Apr 8, 2025
a31ecbd
Joint: Specialize lie group getting
Apr 8, 2025
9d3a924
LG: Specialize tangentmap for VectorSpece
Apr 8, 2025
8f15db7
LieGroup: overload tangent_map for SO(2,3)
Apr 8, 2025
e718cb7
LieGroup: overload tangent_map for SE(2,3)
Apr 8, 2025
3ea24e6
LieGroup: make tangentMap static methods
Apr 9, 2025
7156684
LieGroup: add visitor for tangent map
Apr 9, 2025
9f22962
LieGroup: specialize tangentMap for cartesian product
Apr 9, 2025
b88d21a
LieGroup: sparse 0 setting in SET for tangent map of SE(2,3)
Apr 9, 2025
7dd8367
LieGroup: specialize tangentmap for cartesian variant
Apr 9, 2025
e15934f
LieGroup: fix compilation error
Apr 9, 2025
5a05617
Joint: add q-related selectors
Apr 9, 2025
4a4bc8d
Joint: add liegroup algos related to tangentmap
Apr 9, 2025
4416abe
LieGroup: LieGroupMap has a LieGroupCollection
Apr 10, 2025
e098cb2
LieGroup: visitor Lg instance
Apr 10, 2025
d70c4a3
JointMimic: correct LG specialization as no new cinfiguration
Apr 10, 2025
4cd4f68
LieGroup: deactivate Lie group visiting of mimic joint
Apr 11, 2025
5c6f52b
Joint: tmp simple methods for lgo joint level
Apr 11, 2025
7a2eb25
LieGroup: Fix compilation error
Apr 11, 2025
482e1df
Joint: liegroup method proper overloading
Apr 14, 2025
a8e04c0
Liegroup: Make Liegroupmap more clear"
Apr 14, 2025
5b3646a
Diffuse liegroup-joint and try usage in MJCF
Apr 14, 2025
ced9b12
Update the binding of Liegroup method
Apr 14, 2025
36705e7
Fix complation
Apr 14, 2025
1a60a76
Pythonvisitor of Liegroup is specialialized for generic joint
Apr 14, 2025
f14b4c5
Joint: liegroup method binding, correct typo
Apr 15, 2025
4b75e11
Liegroup: binding, bing the tangent map related methods
Apr 15, 2025
a5ee901
Liegroup: add liegroupalgo associated to tangent map to jointconfig algo
Apr 15, 2025
9cc2384
JointConfigAlgo: bind algorithms related to tangentmap
Apr 15, 2025
fd231f5
JointConfigAlgo: add lie_group of a model
Apr 15, 2025
ff077e5
Liegroup: model algo bind lie_group method"
Apr 15, 2025
3d6ac4b
JointConfigAlgo: fix the doc
Apr 15, 2025
f6c70d1
Liegroup: fix liegroup instance algo
Apr 15, 2025
400bda6
JointConfigAlgo: instantiate the extern symbol
Apr 15, 2025
00b31a7
Test: temporarily disable constrained ABA test
Apr 16, 2025
ee01a3f
JointMimic + LieGroup: fix the Mimic specialization for Liegroup rela…
Apr 16, 2025
462763a
Revert back old way of doing tangent map to preserve Joint API
Apr 16, 2025
52b4cc2
Revert back calcTangent: fix typo
Apr 16, 2025
73dfdc3
LieGroupAlgo: Composite dispatch and mimic cancel made generic
Apr 16, 2025
0301bf8
LieGroupAlgo: Use Liegroup method to simply mjcf parsing
Apr 16, 2025
45c2f78
Liegroup: joint method overload add the file to CMAKE
Apr 16, 2025
5a4c978
Jointts: QBlocks - overload for mimic following strategy of mimic PR
Apr 16, 2025
aa319ca
Joint: QVBlock now take arguments for the position
Apr 16, 2025
d0f64d0
Joint: QVBlock with argument fix typo
Apr 16, 2025
cf3b39b
LieGroupAlgo: modify visitor to also allow at compile time to have th…
Apr 17, 2025
f07ad85
LieGroupAlgo: add IndexV visitor and function
Apr 17, 2025
66b6972
Liegroup method in MJCF use a static_cast"
Apr 17, 2025
050d7c8
JointConfigAlgo: Api with data creation for Liegroup
Apr 17, 2025
42778db
LieGroup: Fix product
Apr 17, 2025
8546bb4
JointConfig: Instantiate the symbol
Apr 17, 2025
4bdaeda
Liegroup: joint method and calctangent test
Apr 17, 2025
540bfd2
LieGroup: Fix typo in cartesian product
Apr 18, 2025
ff6e86e
JointConfigurationAlgo: Badly placed algo
Apr 18, 2025
d880d76
JointConfigAlgo: fix warnings
Apr 19, 2025
ca6d237
Liegroup: add proper liegrouo / tangent map test
Apr 19, 2025
c2359ed
Creator of data for liegroup create a SIGTRAP error...
Apr 19, 2025
99d1564
Liegroup: rename coTangentMapProduct to tangentMapTransposeProduct an…
Apr 24, 2025
969efa6
LieGroup: Clean version that create data
Apr 24, 2025
9f52e62
Activate the test of data creation for lie_group(model)
Apr 24, 2025
b9b1514
Liegroup: expose compact tangent map
Apr 24, 2025
48cc763
Liegroup: rename compact tangentMap
Apr 24, 2025
ab08bf4
Liegroup: test expose liegroups and fix name generation
Apr 24, 2025
c02bc4e
Liegroup: test expose of tangentMap methods
Apr 24, 2025
691a4d8
Fix test
Apr 24, 2025
0c4d081
LieGroup: product consistent naming
Apr 24, 2025
1f0cb99
LieGroup: 2x1 matrix is a vector
Apr 24, 2025
71db5a2
Lie-group-algo: consistent naming for the co product
Apr 25, 2025
bf825e7
cmake: undo
jcarpent Apr 28, 2025
0a54b9a
LieGroup: lieGroup instance methods and tangent map update CHANGELOG.md
Apr 29, 2025
ab863ae
JointLimitConstraint: size is not known yet during initialization
Apr 25, 2025
509caff
jointconfiguration: update the compact tangent map and indexv signatu…
Apr 25, 2025
3932733
liegroup-algo: update the associated visitor
Apr 25, 2025
c03fd47
JointLimitConstraint: refacto API for general purpose
Apr 28, 2025
1526e61
JointLimitConstraint: binding, remove old methods
Apr 28, 2025
96f8316
JointLimitConstraint: prepare to update test
Apr 28, 2025
ab635b6
JointLimitConstraint: rename q_reduces to qs_reduce
Apr 28, 2025
c23e535
JointLimitConstraint: update init method with the new strategy
Apr 28, 2025
ce93a07
JointLimitCosntraint: update resize and calc and adapt the init
Apr 28, 2025
d11b632
JointLimitCosntraint: correct typos in .hpp
Apr 28, 2025
711ab58
JointLimitCosntraint: optimize resize and calc
Apr 28, 2025
ede7a2d
JointLimitCosntraint: implement general jacobian methods
Apr 28, 2025
708c5b0
JointLimitConstraint: fix compilation error
Apr 28, 2025
47ed177
JointLimitConstraint: Fix test for compilation
Apr 28, 2025
ffbafc8
JointLimitConstraint: Fix compilation error
Apr 29, 2025
70e8ec0
JointLimitConstraint: fix existing tests
Apr 29, 2025
8e197ae
JointLimitConstraint: reorder what happen in init
Apr 29, 2025
1bf7ede
EigenStorage: make coherent, copy cast and test only touch to the act…
Apr 29, 2025
3026e10
EigenStorage: add method reserve to avoid having to use resize(size),…
Apr 29, 2025
bcfa540
EigenStorage: only reserve if the capacity is not enough
Apr 29, 2025
0c1659e
JointLimitMargin: set model margin before construction of the constraint
Apr 29, 2025
b2f0d98
JointLimitConstraint: use real max_nv_atom
Apr 30, 2025
8d976b7
JointLimitConstraint: add constructure for custom margins
Apr 30, 2025
1ab5c65
JointLimitConstraint: add comment about design choice
Apr 30, 2025
4fe6e9d
IdxInfo: fix binding
May 3, 2025
8840d97
ConstraintsModel: Made resize a CRTP method
May 3, 2025
54dbebc
JointLimitConstraint: fix getters by returning references
May 3, 2025
d5fbe54
JointLimitConstraint: fix getters equality and constructors
May 3, 2025
b0070f7
JointLimitConstraint: fix check for dimensions
May 3, 2025
a85e6ae
JointLimitConstraint: fix Data binding
May 3, 2025
7c63b5b
LieGroup: add sanity assert
May 3, 2025
0aeda7b
JointLimitConstraint: complete and fix serialization
May 3, 2025
27a7235
JointLimitConstraint: fix test
May 3, 2025
5dfa5dd
JointLimitConstraint: binding expose all methods
May 4, 2025
8ff59fb
JointLimitConstraint: Adapt unittest to test all joints
May 4, 2025
f3d6132
cmake: set minimal version to 3.22
jcarpent May 20, 2025
9a6ba58
ci: Use ccache statistics verbose output
jorisv May 21, 2025
01b717b
python: Remove Ubuntu 20.04 compatibility code
jorisv May 21, 2025
2c2e5e7
Merge pull request #2680 from jcarpent/topic/ci
jcarpent May 21, 2025
1cf70a7
changelog: Add missing entry
jorisv May 21, 2025
8a8b94e
release: Update package.xml version to 3.7.0
jorisv May 21, 2025
dc56cff
release: Update CHANGELOG.md for 3.7.0
jorisv May 21, 2025
78b184d
release: Update pixi.toml version to 3.7.0
jorisv May 21, 2025
c51d923
release: Update CITATION.cff version to 3.7.0
jorisv May 21, 2025
7ed1c81
Merge branch 'topic/nq-supone-constraint' into 'topic/lcaba'
jcarpent May 21, 2025
8868f87
Merge tag 'v3.7.0' into topic/merging-v3.7.0
jcarpent May 21, 2025
e6830ba
pixi: Update lockfile
jorisv May 22, 2025
631f019
core: Fix explicit template instantiation on Windows
jorisv May 22, 2025
d85bd07
core: Try to fix MSVC build issue
jorisv May 22, 2025
fbaa760
constraints: RigidConstraintModelTpl inherits from KinematicsConstra…
jcarpent May 22, 2025
a3b19bd
algo/cholesky: use internal vector
jcarpent May 22, 2025
97d0379
algo/constraints: remove specialization for RigidConstraintModelTpl
jcarpent May 22, 2025
f75e576
[bindings/python] visualizer-visitor.hpp : add missing arg names
ManifoldFR May 21, 2025
2589f85
Update CHANGELOG
ManifoldFR May 21, 2025
63c7db6
Add example candlewick-viewer-solo.py
ManifoldFR May 21, 2025
6d29e62
Merge branch 'topic/add-candlewick-example' into pin4
ManifoldFR May 22, 2025
eeb31eb
algorithm/constraints/constraint-model-base.hpp fix location of forwa…
ManifoldFR May 28, 2025
4dec363
Remove unused headers `deprecated-macros.hpp` and `deprecated-namespa…
ManifoldFR Jun 3, 2025
e145b47
Remove header `pinocchio/deprecation.hpp`, directly use generated `pi…
ManifoldFR Jun 3, 2025
860b0e9
macros.hpp : remove macros already provided by jrl-cmakemodules
ManifoldFR Jun 3, 2025
3c41049
Merge pull request #6 from Simple-Robotics/macro-headers-cleanup
ManifoldFR Jun 3, 2025
31b1f00
bindings/python : removed header `utils/registration.hpp`, delegate t…
ManifoldFR Jun 2, 2025
3cf98ee
bindings/python : deprecate and remove contents of `utils/copyable.hp…
ManifoldFR Jun 2, 2025
c23a411
bindings/python : fix console-bridge.cpp
ManifoldFR Jun 2, 2025
d1ec904
Update some more copyright years, restore registration.hpp (as a depr…
ManifoldFR Jun 3, 2025
84e2591
sources.cmake : fix
ManifoldFR Jun 3, 2025
7d4b837
Restore old header deprecation macro, under new name `PINOCCHIO_DEPRE…
ManifoldFR Jun 3, 2025
6b741eb
Merge pull request #5 from Simple-Robotics/topic/cleanup-old-python-i…
ManifoldFR Jun 4, 2025
ccf60e6
readme : update affiliations
ManifoldFR Jun 4, 2025
451016b
doc/Doxyfile : update predefined macros
ManifoldFR Jun 4, 2025
7915016
doc/Doxyfile : remove obsolete option COLS_IN_ALPHA_INDEX
ManifoldFR Jun 4, 2025
bb9f0f6
doc/Doxyfile : update excluded symbols.
ManifoldFR Jun 4, 2025
4964432
Update CHANGELOG
ManifoldFR Jun 4, 2025
d52055f
Use doxygen-awesome
ManifoldFR Jun 4, 2025
33f8064
algorithm/utils : remove wrong use of Doxygen `\example` command
ManifoldFR Jun 4, 2025
706edcf
algorithm/utils : some doc cleanup
ManifoldFR Jun 4, 2025
bf8ce07
Remove outline.txt
ManifoldFR Jun 4, 2025
e1f70a6
Merge pull request #7 from Simple-Robotics/topic/new-look-docs
ManifoldFR Jun 4, 2025
c30623e
flake.lock: Update
github-actions[bot] Nov 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,8 @@
# ruff check --fix (2024-08-12)
45576e056b2a1000a6fa16caabd015ce622093d1

# pre-commit run -a (2024-08-28)
ccfc8509e21611b504f394b752a2f2a376a83022

# pre-commit run -a (2024-09-04)
d7c57794672df89734a80c40c0bd3166c7a984c6
13 changes: 4 additions & 9 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,21 @@ on:
- doc/**
- .gitlab-ci.yml
- .gitignore
- '*.md'
- '**.md'
- CITATION.*
- COPYING.LESSER
- colcon.pkg
- .pre-commit-config.yaml
- CHANGELOG.md
- development/*.md
pull_request:
paths-ignore:
- doc/**
- .gitlab-ci.yml
- .gitignore
- '*.md'
- '**.md'
- CITATION.*
- COPYING.LESSER
- colcon.pkg
- .pre-commit-config.yaml
- CHANGELOG.md
- development/*.md
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
Expand All @@ -36,7 +32,7 @@ jobs:
container: ${{ matrix.container }}
strategy:
matrix:
container: ['ubuntu:20.04', 'ubuntu:22.04', 'ubuntu:24.04']
container: ['ubuntu:22.04', 'ubuntu:24.04']

env:
CCACHE_BASEDIR: ${GITHUB_WORKSPACE}
Expand Down Expand Up @@ -211,8 +207,7 @@ jobs:

- name: Display ccache statistics
run: |
# TODO: Add -v option when we drop ubuntu-20.04
ccache -s
ccache -sv

check:
if: always()
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/macos-linux-windows-pixi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,21 @@ on:
- doc/**
- .gitlab-ci.yml
- .gitignore
- '*.md'
- '**.md'
- CITATION.*
- COPYING.LESSER
- colcon.pkg
- .pre-commit-config.yaml
- CHANGELOG.md
- development/*.md
pull_request:
paths-ignore:
- doc/**
- .gitlab-ci.yml
- .gitignore
- '*.md'
- '**.md'
- CITATION.*
- COPYING.LESSER
- colcon.pkg
- .pre-commit-config.yaml
- CHANGELOG.md
- development/*.md
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/nix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,10 @@ on:
- doc/**
- .gitlab-ci.yml
- .gitignore
- '*.md'
- '**.md'
- CITATION.*
- COPYING.LESSER
- .pre-commit-config.yaml
- CHANGELOG.md

jobs:
nix:
runs-on: "${{ matrix.os }}-latest"
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/ros_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,21 @@ on:
- doc/**
- .gitlab-ci.yml
- .gitignore
- '*.md'
- '**.md'
- CITATION.*
- COPYING.LESSER
- colcon.pkg
- .pre-commit-config.yaml
- CHANGELOG.md
- development/*.md
pull_request:
paths-ignore:
- doc/**
- .gitlab-ci.yml
- .gitignore
- '*.md'
- '**.md'
- CITATION.*
- COPYING.LESSER
- colcon.pkg
- .pre-commit-config.yaml
- CHANGELOG.md
- development/*.md
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
Expand Down
37 changes: 37 additions & 0 deletions .gitlab-ci-private.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# use docker image with pixi installed (and not much else)
image: ghcr.io/prefix-dev/pixi:noble

variables:
GIT_SUBMODULE_STRATEGY: recursive
PIXI_ENV: "collision"
CMAKE_BUILD_PARALLEL_LEVEL: 2
CCACHE_BASEDIR: "${CI_PROJECT_DIR}"
CCACHE_DIR: "${CI_PROJECT_DIR}/.ccache"
CCACHE_COMPRESS: true
CCACHE_COMPRESSLEVEL: 6

test-job:
stage: test
tags:
- large
cache:
# Cache .pixi directory, invalidate the cache on lockfile
- key:
files:
- pixi.lock
paths:
- .pixi/
# Cache .ccache directory for each branch
- key: ccache-$CI_COMMIT_REF_SLUG
fallback_keys:
- ccache-$CI_DEFAULT_BRANCH
paths:
- .ccache/

script:
- echo "ccache pre build statistics"
- pixi run -e $PIXI_ENV ccache -sv
- echo "Run pixi run test"
- pixi run -e $PIXI_ENV test
- echo "ccache post build statistics"
- pixi run -e $PIXI_ENV ccache -sv
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ repos:
rev: v0.8.6
hooks:
- id: ruff
args: [--fix]
- id: ruff-format
- repo: https://github.com/cheshirekow/cmake-format-precommit
rev: v0.6.13
Expand Down
43 changes: 41 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,37 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

## [Unreleased]

### Added
- Added Lie group method `tangentMap` which gives, in the form of a `nq x nv` matrix, the linear mapping that transforms a configuration variation expressed in the Lie algebra (size `nv`) into a small variation expressed in the parametric space (size `nq`). Composed with Jacobian of other methods of Pinocchio that use the Lie group structure, it allows obtaining standard Jacobians in order to, for example, insert Pinocchio derivatives into standard Euclidean differentiation pipelines.
- Added Lie group methods `tangentMapProduct` and `tangentMapTransport` that apply `tangentMap` while exploiting sparsity.
- Added model methods `tangentMap`, `tangentMapProduct` and `tangentMapTransport` that perform tangent map for the whole configuration space of the model.
- Now all Lie group related algorithms (e.g. `dIntegrate`...) work seamlessly for models having some mimic joints.
- Added joint methods `jointQrows`, `jointQcols` (resp. `jointQVblock`) that make selections of size `NQ` (resp. `NQ x NV`).
- Added joint method `lieGroup` that returns the Lie group instance associated to a joint. This allows performing some operations (e.g. `integrate`...) individually.
- Added model method `lieGroup` that returns the Lie group instance associated to the model. It is a Cartesian product of multiple Lie groups. It allows combination of the model Lie group with other Lie groups.
- Add Python example showcasing the candlewick visualizer

### Changed

- bindings/python : Add missing arg names in `visualizer-visitor.hpp`
- use deprecation, warning macros already provided by jrl-cmakemodules
- renamed `PINOCCHIO_PRAGMA_DEPRECATED_HEADER` to `PINOCCHIO_DEPRECATED_MOVED_HEADER`
- docs : update documentation stylesheet, fix some Doxygen config options

### Removed

- Remove unused headers `deprecated-macros.hpp` and `deprecated-namespaces.hpp`
- Remove header `pinocchio/deprecation.hpp`, directly use generated `pinocchio/deprecated.hpp`
- macros.hpp : remove macros already provided by jrl-cmakemodules
- bindings/python : deprecate and remove contents of `utils/copyable.hpp`, `utils/registration.hpp` and `utils/deprecation.hpp`, include corresponding eigenpy headers instead

## [3.7.0] - 2025-05-21

### Changed
- Change the default branch to `devel` ([#2666](https://github.com/stack-of-tasks/pinocchio/pull/2666))
- Implement `captureImage` for Panda3D visualizer for video recording ([#2668](https://github.com/stack-of-tasks/pinocchio/pull/2668))
- Drop Ubuntu 20.04 support ([#2680](https://github.com/stack-of-tasks/pinocchio/pull/2680))

## [3.6.0] - 2025-04-28

### Fixed
Expand All @@ -17,7 +48,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Add explicit template instantiation for constraint algorithms for `casadi`, `CppAD` and `CppADCodeGen` scalar ([#2659](https://github.com/stack-of-tasks/pinocchio/pull/2659))
- Add `casadi` bindings for `pinocchio.initConstraintDynamics` and `pinocchio.constraintDynamics` ([#2659](https://github.com/stack-of-tasks/pinocchio/pull/2659))


## [3.5.0] - 2025-04-02

### Added
Expand Down Expand Up @@ -64,8 +94,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [3.4.0] - 2025-02-12

### Added
- Helpers for mapping heap allocation for Eigen::Map via alloca
- Introduce EigenStorageTpl
- Add parsing meshes with vertices for MJCF format ([#2537](https://github.com/stack-of-tasks/pinocchio/pull/2537))

### Changed
- Major refactorization of ContactCholeskyDecompositionTpl to ease online resizing

### Removed
- Remove DataTpl::lastChild field and associated methods

### Fixed
- Fix mjcf Euler angle parsing: use xyz as a default value for eulerseq compiler option ([#2526](https://github.com/stack-of-tasks/pinocchio/pull/2526))
- Fix variable naming in Python ([#2530](https://github.com/stack-of-tasks/pinocchio/pull/2530))
Expand Down Expand Up @@ -1142,7 +1180,8 @@ The model can either be parsed from a URDF format or be created by appendending
• Fixed (concatenation of two consecutive bodies)


[Unreleased]: https://github.com/stack-of-tasks/pinocchio/compare/v3.6.0...HEAD
[Unreleased]: https://github.com/stack-of-tasks/pinocchio/compare/v3.7.0...HEAD
[3.7.0]: https://github.com/stack-of-tasks/pinocchio/compare/v3.6.0...v3.7.0
[3.6.0]: https://github.com/stack-of-tasks/pinocchio/compare/v3.5.0...v3.6.0
[3.5.0]: https://github.com/stack-of-tasks/pinocchio/compare/v3.4.0...v3.5.0
[3.4.0]: https://github.com/stack-of-tasks/pinocchio/compare/v3.3.1...v3.4.0
Expand Down
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ authors:
given-names: Guilhem
- family-names: Budhiraja
given-names: Rohan
version: 3.6.0
date-released: "2025-04-28"
version: 3.7.0
date-released: "2025-05-21"
license: BSD-2-Clause
repository-code: "https://github.com/stack-of-tasks/pinocchio"
24 changes: 23 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Copyright (c) 2015 Wandercraft, 86 rue de Paris 91400 Orsay, France.
#

cmake_minimum_required(VERSION 3.16)
cmake_minimum_required(VERSION 3.22)

set(PROJECT_NAME pinocchio)
set(PROJECT_DESCRIPTION
Expand Down Expand Up @@ -87,6 +87,7 @@ include("${JRL_CMAKE_MODULES}/base.cmake")
compute_project_args(PROJECT_ARGS LANGUAGES CXX)
project(${PROJECT_NAME} ${PROJECT_ARGS})

include("${JRL_CMAKE_MODULES}/tracy.cmake")
include("${JRL_CMAKE_MODULES}/python.cmake")
include("${JRL_CMAKE_MODULES}/boost.cmake")
include("${JRL_CMAKE_MODULES}/ide.cmake")
Expand Down Expand Up @@ -162,6 +163,8 @@ option(CHECK_RUNTIME_MALLOC "Check if some memory allocations are performed at r

option(ENABLE_TEMPLATE_INSTANTIATION "Template instantiation of the main library" ON)

option(PINOCCHIO_BUILD_WITH_TRACY "Build with tracy profiler for performance analysis" OFF)

# Variable containing all the cflags definition, options and libraries to setup pkg-config.
set(CFLAGS_OPTIONS)
set(CFLAGS_DEPENDENCIES)
Expand Down Expand Up @@ -243,6 +246,21 @@ if(BUILD_WITH_PARSERS_SUPPORT)
list(APPEND LIBRARIES_DEPENDENCIES ${PROJECT_NAME}_parsers)
endif()

# -- tracy (optional)
if(PINOCCHIO_BUILD_WITH_TRACY)
# assume it is installed somewhere
add_project_dependency(Tracy REQUIRED)
set_target_properties(Tracy::TracyClient PROPERTIES POSITION_INDEPENDENT_CODE True)
if(${Tracy_FOUND})
message(STATUS "Tracy found on your system at ${Tracy_DIR}")
else()
message(
FATAL_ERROR
"Pinocchio support for tracy is enabled, but tracy was not found on your system."
" Install it, or set the option PINOCCHIO_DOWNLOAD_TRACY to ON so we can fetch it.")
endif()
endif(PINOCCHIO_BUILD_WITH_TRACY)

if(BUILD_WITH_AUTODIFF_SUPPORT)
# Check first CppADCodeGen
if(BUILD_WITH_CODEGEN_SUPPORT)
Expand Down Expand Up @@ -480,6 +498,10 @@ endmacro(
var_name
var_value)

if(PINOCCHIO_BUILD_WITH_TRACY)
export_variable(PINOCCHIO_USE_TRACY ON)
set(PACKAGE_EXTRA_MACROS "${PACKAGE_EXTRA_MACROS}\nset(PINOCCHIO_USE_TRACY \"\")")
endif()
if(BUILD_WITH_URDF_SUPPORT)
export_variable(PINOCCHIO_USE_URDFDOM ON)
set(PACKAGE_EXTRA_MACROS "${PACKAGE_EXTRA_MACROS}\nset(PINOCCHIO_USE_URDFDOM \"\")")
Expand Down
Loading