Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
84b39d3
fix: handle additional columns of regressor
thanhndv212 Nov 15, 2025
371f25d
refactor: add attributes to BaseIdentifition
thanhndv212 Nov 15, 2025
076b892
fix: change parameters name from numbered to parent joint
thanhndv212 Nov 15, 2025
1cfbb3f
reformat and fix import results manager
thanhndv212 Nov 15, 2025
0cfd62f
refactor: unified param config from yaml
thanhndv212 Nov 15, 2025
94f3d25
refactor: enhance unified_to_legacy_config for improved structure and…
thanhndv212 Nov 15, 2025
f33c955
refactor: streamline unified_to_legacy_identif_config by modularizing…
thanhndv212 Nov 15, 2025
a9792b4
feat(calibration): Add configuration parsing and parameter management…
thanhndv212 Nov 15, 2025
f0adf43
refactor(data_loader): Add data loading and processing utilities for …
thanhndv212 Nov 15, 2025
16a5b21
refactor(identification): Move configuration parsing functions to con…
thanhndv212 Nov 15, 2025
082bc9c
feat(parameter): Add parameter management utilities for robot identif…
thanhndv212 Nov 15, 2025
93a4de9
refactor: change params ordering to pinocchio dynamic params
thanhndv212 Nov 16, 2025
5ae8b0f
refactor(regressor): Remove unused parameter 'tau' from build_basic_r…
thanhndv212 Nov 16, 2025
df7db48
feat(custom_solver): Implement advanced linear solver with multiple m…
thanhndv212 Nov 17, 2025
ddcc763
docs: Update CHANGELOG.md for v0.3.0 release
thanhndv212 Nov 17, 2025
e5eb04f
Merge devel features for v0.3.0 release
thanhndv212 Nov 17, 2025
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
53 changes: 53 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,59 @@ 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).

## [0.3.0] - Unreleased

### Added
- **Advanced Linear Solver (`figaroh.tools.solver`)**: Comprehensive multivariate linear solver for robot parameter identification
- Multiple solving methods: lstsq, QR, SVD, Ridge, Lasso, Elastic Net, Tikhonov, constrained, robust, weighted
- Regularization support: L1 (Lasso), L2 (Ridge), Elastic Net, custom Tikhonov
- Constraint handling: Box constraints (bounds), linear equality/inequality constraints
- Robust regression with iterative reweighting for outlier resistance
- Comprehensive solution quality metrics (RMSE, RΒ², condition number, residuals)
- Optimized for dense, large, thin matrices typical in robot dynamics
- Full unit test coverage (18 tests) with robot identification scenarios

- **Module Reorganization**: Better code organization and separation of concerns
- **Calibration module restructuring**:
- `calibration/config.py`: Configuration parsing and YAML handling (624 lines)
- `calibration/parameter.py`: Parameter management utilities (240 lines)
- `calibration/data_loader.py`: Data loading and I/O operations (160 lines)
- **Identification module restructuring**:
- `identification/config.py`: Configuration parsing for identification (334 lines)
- `identification/parameter.py`: Parameter management for identification (388 lines)
- Maintains 100% backward compatibility through re-exports

- **BaseIdentification Enhancement**:
- `solve_with_custom_solver()`: New method using advanced linear solver with regularization and constraints
- Flexible solving with multiple methods and custom constraints
- Support for physical parameter bounds (e.g., positive masses/inertias)

### Improved
- **Parameter Ordering**: Changed to Pinocchio dynamic parameter ordering for consistency
- New order: [Ixx, Ixy, Ixz, Iyy, Iyz, Izz, mx, my, mz, m]
- Previous order: [m, mx, my, mz, Ixx, Ixy, Iyy, Ixz, Iyz, Izz]

- **Regressor Module**: Cleaned up build_basic_regressor methods
- Removed unused `tau` parameter for better API clarity
- Improved method signatures and documentation

- **Code Quality**: Significant reduction in code duplication
- `calibration_tools.py`: Reduced from ~1500 to ~630 lines (-58%)
- `identification_tools.py`: Reduced from ~900 to ~295 lines (-67%)
- Modular design with clear single responsibilities

### Fixed
- Parameter naming: Changed from numbered indices to parent joint names for clarity
- Regressor handling: Better support for additional columns in regressor matrices
- Results manager imports and formatting issues

### Technical Details
- **Files Changed**: 21 files
- **Lines Added**: +3,372
- **Lines Removed**: -1,604
- **Net Change**: +1,768 lines
- **Test Coverage**: All 18 new solver tests passing

## [0.2.4] - 2025-09-08

### Changed
Expand Down
Loading
Loading