Reliability sprint, Jazzy support, and the artifact-first relocalization / global-localization foundation.
Highlights
- Crash fixes for the reported startup issues: non-finite
/initialposerejected,use_odom:=trueintegration guarded until a valid initial pose, map TF published immediately on/initialpose(#76, #56, #47) - New docs: frame contract, bringup troubleshooting, map alignment, pose covariance semantics, reliability roadmap, development plan
- ROS 2 Jazzy support: distro-aware local env setup, HDL sample metadata patching, Nav2 preset compatible with the Iron+ bringup (plugin type names, collision_monitor / docking_server sections, BT plugin list removal)
- Istanbul public preset tuning:
local_map_crop+recovery_retry_from_last_pose; repeat-compare median translation 1.17 m vs 1.66 m baseline - Artifact-first relocalization (v1.1 MVP): validated dry-run
/initialposecommand artifacts from NDT_OMP-scored candidates, with no publish in the default benchmark path - Global localization groundwork (G1):
MAP_GRIDmap-wide candidate baseline andBBS_2Dbranch-and-bound candidate generator over the occupancy-grid pyramid, both emitting the shared relocalization CSV contract
Release boundary
run_release_regression_suite.sh overall_pass=true on a Jazzy build (2026-06-11):
| Check | Result |
|---|---|
| Istanbul 60 s no-IMU | 0.673 m translation RMSE, 0.036 s alignment median |
| HDL 60 s IMU check | 468.5 / 459.0 pose-row medians, 1 fallback event |
| Nav2 reinit supervisor 150 s | requested rows 285 → 6, both goals SUCCEEDED |
See docs/public_validation_log.md for the recorded snapshot and CHANGELOG.md for the full list. Global relocalization remains experimental and outside the default runtime path; see docs/v1_1_relocalization.md for the claim boundary.