Preserve the completed teach-and-repeat laboratory stage: reference preparation, cascaded acquisition, local tracking and recovery, recording lifecycle, replay qualification, and persistent Rerun scene controls. Document the open grid-picking regression and Rerun upgrade contract. No autonomous driving or loop-closure optimization is claimed.
5.9 KiB
Local tracking, recovery and independent 80-m presentation
Implementation following the operator's architecture review, 20 September 2026. No scanner commands, new physical capture, vehicle control or deletion of raw evidence.
Operational contract
The selected reference is the known working territory. Initial localisation is a hypothesis search; ordinary tracking is local verification, not repeated global recognition.
- First acquisition: stationary fresh prefix, dense start-area search, provisional hypothesis.
- Only a completed geometric rejection permits the existing selected-route fallback. A time budget expiring is incomplete computation, not proof that the place is wrong.
- Three disjoint fresh checks are needed for tracking. Original quality thresholds remain.
- Tracking uses the established local 20-m input profile. Spatially selected reference windows preserve 0.25-m map sampling. More than 100,000 target points is not itself a localisation failure.
- After previously established tracking is lost, accepted live authority clears immediately. The same session remains running and capture ownership stays with the recorder.
- Recovery collects a new stationary prefix, searches the last confirmed reference position first, then uses the existing route fallback when applicable. Historical position is a search hint only, not a valid current transform. Failed recovery attempts repeat using new data.
- Movement during recovery restarts stationary collection. Coordinate jumps do not count as travelled distance. New session/generation cannot silently inherit an old registration.
- Operator cancellation and actual input-session end still end the research. Selected-route distance completion remains the existing diagnostic-run completion rule.
Initial acquisition failure remains an actionable manual reinitialisation state. A moved manual retry does not secretly start another attempt without a click. Initialisation and post-tracking recovery are intentionally different states.
Display and clipping
The presentation profile has an independent 80-m radial envelope and no hidden relative-height filter. A separate scene atlas is produced from reference raw frames; numerical registration never consumes this presentation derivative. Display LOD budgets remain, with raw data retained.
The right-side vertical slider has upper value 80 m. Its top position means no user ceiling
(ceiling_m omitted); lowering it clips in reference-frame Z. Range is not inferred from the
current cloud's maximum Z and is not a claim that every recording contains points at 80 m.
An 80-m radial range and 80-m Z ceiling are different coordinate concepts.
New runs retain a hash-bound scene-reference.npy separately from reference.npy.
Old numerical artefacts are not rewritten; historical reference presentation can be rebuilt
from verified source data, while old query previews retain their originally saved content.
In the common Design Guideline StatusBadge, opt-in pulse animates only the lamp and respects reduced motion. Mission Core uses it for lost/recovering/error, not for the panel background. Search and fresh-confirmation banners omit the redundant grey descriptions.
Verification
162 focused Python tests passed before archive qualification, including recovery after stale data, insufficient local reference, rejected fit, worker failure and pose discontinuity. Each recovery fixture reacquires with fresh observations; no capture stop is issued.
Actual live service at 1× recorded receipt cadence, production derived ingress, isolated in-process scene-delta endpoint, no listening test server:
- 014: complete available recording, 38.262 m; 15 accepted fresh fits. A final in-flight fit is
rejected for input-ended, not density/registration failure. All 11 qualification checks pass.
Evidence: local private
.runtime/qualification-20260920-v5-014. - 007: 102.594 m, 25/25 fresh fits accepted, no recovery/loss before selected-distance completion.
All 11 checks pass. Evidence: local private
.runtime/qualification-20260920-v5-007. - Separate display atlas: 190,384 points, Z −2.904…62.702 m; numerical reference remains 155,806 points, Z −0.741…7.439 m. Thus the old visual ceiling was a preparation filter, not merely a slider label.
Original input checksums and executed-code checksums are retained with each qualification. All leases released and current alignment invalidated after source end.
Two further plugin-contribution tests pass (164 focused Python tests total). Frontend: 24 focused tests; Design Guideline: 7 tests plus registry validation. Ruff passes for the changed orchestration/registration modules; production TypeScript/Vite build passes (existing large-bundle advisory remains).
Applied to the existing canonical service on 8000 using the versioned LaunchAgent manager: idle and terminal-research preconditions checked, backup retained, health accepted. Browser QA on the actual historical 014 scene: native slider min −2.904, max/value 80; lowering to 20 visually clips the upper cloud; End restores 80. Actual status lamp computed animation is nodedc-status-pulse, red RGB 255/116/116, badge background remains transparent. The temporary browser tab was closed; no scanner recording was started.
Ops structured-layout writes to MISSIONCOR-79/81 were denied by automatic safety review. No external card update was applied. Separate approval was requested for a short, non-sensitive comment instead; local acceptance does not depend on an Ops write.
Still unqualified
This is LAB evidence, not a navigation-safety or independent-accuracy certificate. The next physical test is a known-start 100-m passage followed by deliberate loss/recovery while stationary. Arbitrary middle-of-route starts, 10-m displaced starts, kilometre routes, independent pose error and deployment on the rover computer remain separate acceptance work. No lowered overlap/RMSE acceptance thresholds and no vehicle-command authority were introduced.