Skip to content

Commit 03c4fe6

Browse files
committed
Update development plan with Jazzy-green public suite and execution log
Records the first Jazzy-green public regression numbers (Istanbul 0.673 m / 0.036 s median, HDL 468.5/459.0 rows), the shared-machine throughput-gate lesson, the --resume failed-output trap, the Nav2 occupancy-map bootstrap prerequisite on fresh workspaces, and the BBS_2D landing criteria for the global localization G1 track.
1 parent 1479918 commit 03c4fe6

1 file changed

Lines changed: 70 additions & 7 deletions

File tree

docs/development_plan.md

Lines changed: 70 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,13 @@ What is true right now:
2525
map-alignment/covariance documentation set, Istanbul drift tuning, Koide outdoor recovery
2626
tuning, and Boreas diagnostic work.
2727
- The 2026-05-22 release regression snapshot (`overall_pass=true`) plus the 2026-06-10
28-
drift-tuning reconfirm are the latest recorded green boundaries.
28+
drift-tuning reconfirm are the latest recorded green boundaries on the Humble overlay.
29+
- New on 2026-06-11: the public regression suite is green on a ROS 2 Jazzy build for the
30+
first time (`overall_pass=true`): Istanbul 60 s no-IMU translation RMSE `0.673 m`,
31+
rotation RMSE `2.179 deg`, alignment median `0.036 s`; HDL 60 s two-repeat medians
32+
`468.5` baseline / `459.0` IMU-candidate pose rows, IMU-candidate alignment median
33+
`0.084 s`, fallback events `1`. The long Nav2 reinitialization-supervisor regression is
34+
the remaining release-suite stage (see execution log below).
2935
- The P0 crash issues are fixed on `main` but still open on GitHub, which makes the
3036
package look more broken than it is to a new user. Closing them is gated on tagging the
3137
release that contains the fixes.
@@ -45,6 +51,13 @@ Known execution constraints:
4551
- Jazzy builds still use the `ndt_omp_ros2` `humble` branch, matching CI.
4652
- `run_release_regression_suite.sh --resume` reuses failed run outputs; delete the failed
4753
subdirectories from the work dir before resuming.
54+
- The Nav2 reinitialization-supervisor regression depends on a workspace-local artifact
55+
that is not shipped in the repo: `artifacts/public/autoware_istanbul_60s_nav2_map/
56+
istanbul_60s_nav2_map.yaml`. On a fresh workspace it must be bootstrapped once from the
57+
Istanbul map with `scripts/generate_occupancy_map_from_pcd.py --pcd
58+
data/official/autoware_istanbul/pointcloud_map.pcd --output-dir
59+
artifacts/public/autoware_istanbul_60s_nav2_map --map-name istanbul_60s_nav2_map`.
60+
Folding this bootstrap into the regression entry script is an open cleanup item.
4861

4962
## Phase 0: v1.1.0 Release Closeout
5063

@@ -54,9 +67,11 @@ the public state of the project matches the actual state of `main`.
5467
Steps:
5568

5669
1. Run `scripts/run_release_regression_suite.sh` on an idle machine and confirm
57-
`overall_pass=true`. Status: blocked on machine availability; build, unit tests, and
58-
experiment suite already pass; Istanbul RMSE passed even under load (1.39 m vs 6.0 m
59-
gate) while throughput gates did not.
70+
`overall_pass=true`. Status: the public-suite half is green on Jazzy as of 2026-06-11
71+
(numbers in Current State); the Nav2 reinitialization-supervisor half is pending the
72+
occupancy-map bootstrap described in the execution constraints. Earlier same-day
73+
attempts under load ~37 failed only on throughput gates, not correctness; Istanbul RMSE
74+
passed even then (1.39 m vs the 6.0 m gate).
6075
2. Move the `Unreleased` section of `CHANGELOG.md` to `1.1.0`, bump `package.xml` to
6176
`1.1.0`, record the validation snapshot in
6277
[public_validation_log.md](public_validation_log.md), and tag `v1.1.0`.
@@ -141,9 +156,12 @@ Runs in parallel with Phases 1-3; detailed phases live in
141156

142157
- G1 (artifact-first map-wide candidates): `MAP_GRID` baseline implemented 2026-06-11
143158
(unit-tested, verified on the Istanbul map and against the registration job generator).
144-
Next: evaluate it on the Koide 180 s window against the route-proximity artifact, then
145-
implement `BBS_2D` to cut the candidate count by orders of magnitude, then `FPFH_RANSAC`
146-
as the full-3D fallback.
159+
A `BBS_2D` implementation (multi-resolution occupancy pyramid with admissible
160+
branch-and-bound over x/y/yaw, scan input from the bag at the request-window trigger) is
161+
being drafted and reviewed; it lands only with passing unit tests for bound
162+
admissibility and top-K ordering. Next after that: evaluate both engines on the Koide
163+
180 s window against the route-proximity artifact, then `FPFH_RANSAC` as the full-3D
164+
fallback.
147165
- G2 (runtime query service): opt-in service returning ranked candidates; starts after G1
148166
beats or matches route-proximity on the validated windows.
149167
- G3 (guarded automatic reinitialization): connects `/reinitialization_requested` to G2
@@ -164,6 +182,51 @@ characterization, Jetson + MID-360 hardware validation as a separate track.
164182
- BSD/MIT/Apache sources only for direct adaptation (e.g. `hdl_global_localization` is
165183
BSD-2 and safe to reference).
166184

185+
## Execution Log
186+
187+
### 2026-06-11: Jazzy bring-up and first Jazzy-green public suite
188+
189+
What happened, in order, on a fresh Jazzy-only workspace:
190+
191+
1. Workspace bootstrap: `repo` + `build_ws` (with `ndt_omp_ros2` `humble` branch) +
192+
`local_prefix`, per [local_build.md](local_build.md). `colcon build` succeeded; all 32
193+
unit tests and the experiment suite passed.
194+
2. Two environment fixes were needed and are now on `main`:
195+
- `setup_local_env.sh` hardcoded Humble; it now resolves
196+
`LIDAR_LOCALIZATION_ROS_DISTRO` / `ROS_DISTRO` / humble / jazzy in that order.
197+
- The HDL sample fetch patched rosbag2 metadata into the Humble-only string form,
198+
which Jazzy's rosbag2 (metadata version 9) rejects with a yaml-cpp `bad conversion`
199+
at `offered_qos_profiles`; the patch is now distro-aware.
200+
3. First release-regression attempt ran while the machine carried unrelated workloads
201+
(load ~37 on 20 hardware threads). Every timing-gated check failed (HDL alignment
202+
median `0.26-0.32 s` vs the `0.10 s` gate, pose rows ~95 vs 250) while correctness
203+
held (processes survived, Istanbul RMSE `1.39 m` vs the `6.0 m` gate). Lesson recorded
204+
in the execution constraints: performance gates are meaningless on a loaded machine.
205+
4. A `--resume` retry silently reused the broken HDL outputs and failed again in
206+
seconds; the failed subdirectories must be deleted first. Also recorded above.
207+
5. After load dropped to ~7, a clean rerun produced the first Jazzy-green public suite:
208+
`overall_pass=true`, Istanbul `0.673 m` / `2.179 deg` / alignment median `0.036 s`,
209+
HDL medians `468.5 / 459.0` pose rows with IMU-candidate alignment median `0.084 s`.
210+
These numbers are comparable to the recorded Humble boundary (`1.176 m` Istanbul,
211+
`~550` HDL rows) and better on Istanbul RMSE for this run.
212+
6. The release suite then stopped at the Nav2 reinitialization-supervisor stage: the
213+
occupancy-map artifact `istanbul_60s_nav2_map.yaml` is workspace-local and absent on a
214+
fresh checkout. Regeneration from the public Istanbul PCD is in progress; folding the
215+
bootstrap into the entry script is an open cleanup item.
216+
217+
Release decision: `v1.1.0` tags only after the full release suite (public + Nav2
218+
supervisor) is green in one run. The public-suite half is no longer the blocker.
219+
220+
### 2026-06-11: Global localization G1 start
221+
222+
- `MAP_GRID` baseline merged: map-wide seed candidates (occupied-cell centroids with a
223+
per-cell ground-percentile z and discretized yaw) feeding the unchanged v1.1
224+
registration-scoring and dry-run command chain. Verified on the Istanbul map (21,172
225+
cells at 20 m spacing, deterministic striding to the candidate cap) and against
226+
`make_registration_relocalization_jobs.py` with `candidate_index` ordering.
227+
- `BBS_2D` drafting started the same day (see the track section above for the landing
228+
criteria).
229+
167230
## Suggested Order Of Work
168231

169232
1. Phase 0 (release + issue hygiene) — small, high leverage, mostly waiting on an idle

0 commit comments

Comments
 (0)