Skip to content

refactor(mapping): use canonical CDR poses and clouds in PGO - #4691

Closed
TomCC7 wants to merge 1 commit into
cc/feat/cdr-observation-posesfrom
cc/feat/cdr-pgo
Closed

TomCC7 wants to merge 1 commit into
cc/feat/cdr-observation-posesfrom
cc/feat/cdr-pgo

Conversation

@TomCC7

@TomCC7 TomCC7 commented Oct 20, 2026

Copy link
Copy Markdown
Member

PGO, PGOAuto and PGOMap consume generated CDR PointCloud2 and TransformStamped values. Existing ISAM2 factors/noise, ICP settings, loop search, nearest-neighbor interpolation, vectorized drift correction, voxel carving and rebuild cooldown are retained. Per-point placement now changes XYZ on a copy while retaining organized layout, extra fields, per-point capture times, padding, endianness and the exact sensor Header. ICP's private downsampled submaps explicitly use geometry only.

Linear: https://linear.app/dimensional/project/message-encoding-refactor-05a3ddb4af3e/overview

Parent: #4690. The live PGO Module, map/replay CLI, Observation convenience outputs and remaining robot consumers are subsequent layers; this does not switch the default encoding.

File category Files Review focus
PGO runtime 3 Canonical nested geometry and CDR cloud adapters; unchanged numerical algorithms
Point-cloud helper 1 Validated XYZ replacement on owned storage
Voxel callback boundary 2 Generated stamped cloud for reprojection; existing ingestion API retained
Tests 5 Existing numerical assertions, real GTSAM/Open3D ICP, nearest-neighbor behavior, source ownership, exact metadata, keyed map rebuild/cooldown
CI 1 Same tests against installed modules and scoped typing

Validation: 103 source and the same 103 installed-wheel tests pass; installed production module paths asserted to be site-packages. Real ICP recovers a known 6-DoF rigid motion on three synthetic walls. Real GTSAM map insertion retains exact sensor time. Six production files pass scoped strict mypy. Applicable hooks pass. Main wheel SHA256: 457d1eb1b0c66dad230f791ebf33001e842cbd98d71b6427c77231a9f6e27501.

Manual functional review after the normal development install with the mapping extra:

OMP_NUM_THREADS=2 OPENBLAS_NUM_THREADS=2 python -m pytest \
  --noconftest --import-mode=importlib -o addopts='' -q \
  dimos/navigation/go2/loop_closure/test_pgo.py \
  dimos/navigation/go2/loop_closure/test_pgo_auto.py \
  dimos/navigation/go2/loop_closure/test_pgo_map.py \
  dimos/mapping/voxels/test_stamped.py dimos/msgs/test_pointcloud.py

Known pre-existing optional dependency metadata mismatch: GTSAM 4.3a1.post1 declares pytest>=9.0.1; this repository explicitly overrides it to pytest8.3.5. The functional checks use that repository override. pip check with that optional test dependency reports the mismatch; it is not reported as clean. No dependency override or gate was added/relaxed here. Nix is unavailable locally; no Nix, benchmark, CI, device or whole-stack completion claim. No historical decoding fallback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant