Skip to content

Commit 4e13d61

Browse files
committed
chore(release): bump version to 0.3.1
Update version string in pyproject.toml and src/figaroh/__init__.py. Add CHANGELOG.md entry for v0.3.1 covering all commits since v0.3.0: physical consistency projection, reconstruction utilities, QR decomposition numerical improvements (rank-zero fix, QRResult dataclass, pivoted basis selection, beta precision, diagnostics, decompose()), and updated refactors for Pinocchio 3.x compatibility and logging.
1 parent 192fd7c commit 4e13d61

File tree

4 files changed

+56
-4
lines changed

4 files changed

+56
-4
lines changed

CHANGELOG.md

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,59 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [0.3.0] - Unreleased
8+
## [0.3.1] - 2026-04-01
9+
10+
### Added
11+
- `feat(physical-consistency)`: optional projection of inertial parameters onto
12+
a physically consistent set (`identification/physical_consistency.py`)
13+
- `feat(reconstruction)`: reconstruction utilities — `run_reconstruction` and
14+
`run_option_a_reconstruction` entry points (`identification/reconstruction.py`)
15+
- `feat(qrdecomposition)`: `get_M` / `get_M_labels` methods for retrieving the
16+
stored base mapping matrix after decomposition
17+
- `feat(qrdecomposition)`: `QRResult` dataclass for structured, full-precision
18+
decomposition output (rank, base_indices, W_b, beta, M, phi_b, diag_R,
19+
cond_R1, method, …)
20+
- `feat(qrdecomposition)`: `relative_tolerance` constructor parameter for
21+
scale-invariant rank detection (threshold relative to largest pivot)
22+
- `feat(qrdecomposition)`: `get_diagnostics()` method returning rank, diag_R,
23+
cond_R1, and method after every decomposition
24+
- `feat(qrdecomposition)`: `decompose()` unified entry point returning a
25+
`QRResult`; delegates to pivoting or double path based on `method` argument
26+
- `feat(identification)`: enhanced parameter management with standard and
27+
custom parameter support in `BaseIdentification`
28+
29+
### Fixed
30+
- `fix(qrdecomposition)`: `_find_rank` now correctly returns 0 for zero/empty
31+
matrices (previously returned row count, causing phantom base parameters)
32+
- `fix(reconstruction)`: add missing `run_option_a_reconstruction` alias that
33+
blocked package-level import
34+
35+
### Changed
36+
- `refactor(qrdecomposition)`: replace non-pivoted `numpy.linalg.qr` with
37+
`scipy.linalg.qr(..., pivoting=True)` in `_identify_base_parameters`
38+
permutation-stable, deterministic basis selection
39+
- `refactor(qrdecomposition)`: remove premature `np.around` from `beta` in all
40+
code paths; rounding deferred to display-only `_build_parameter_expressions`
41+
- `refactor(qrdecomposition)`: remove fragile `assert np.allclose(W_base, W_b)`
42+
- `refactor(qrdecomposition)`: enhanced docstrings and nominal-parameter handling
43+
- `refactor(identification)`: patch filter configuration management in
44+
`BaseIdentification`
45+
- `refactor(calibration)`: update deprecated `Frame.parent`
46+
`Frame.parentJoint` for Pinocchio 3.x compatibility
47+
- `refactor(logging)`: replace print statements with `logging` calls across
48+
calibration and identification modules
49+
- `refactor(config)`: rename `load_from_yaml``load_param` for clarity
50+
51+
### Tests
52+
- `test(qrdecomposition)`: `TestNumericalImprovements` suite — 14 new tests,
53+
23/23 total pass (rank-zero, relative tolerance, permutation stability ×20,
54+
mapping matrix property, column space, diagnostics, QRResult structure,
55+
full-precision beta)
56+
- `test(reconstruction)`: unit tests for reconstruction utilities
57+
58+
---
59+
60+
## [0.3.0] - 2025-12-09
961

1062
### Added
1163
- **Advanced Linear Solver (`figaroh.tools.solver`)**: Comprehensive multivariate linear solver for robot parameter identification

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
FIGAROH is a Python toolbox providing efficient and highly flexible frameworks for dynamics identification and geometric calibration of rigid multi-body systems based on the URDF modeling convention. It supports both serial (industrial manipulators) and tree-structure systems (humanoids, mobile manipulators).
55

66
**📦 Available on PyPI:** `pip install figaroh`
7-
**📖 Version:** 0.3.0
7+
**📖 Version:** 0.3.1
88

99
> Note: This repo is a fork from [gitlab repo](https://gitlab.laas.fr/gepetto/figaroh) of which the author is no longer a contributor.
1010

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "figaroh"
7-
version = "0.3.0"
7+
version = "0.3.1"
88
description = "A Python toolbox for dynamics identification and geometric calibration of robots and humans"
99
readme = "README.md"
1010
requires-python = ">=3.8"

src/figaroh/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
from . import optimal
1313

1414

15-
__version__ = "0.3.0"
15+
__version__ = "0.3.1"

0 commit comments

Comments
 (0)