Skip to content

refactor(navigation): migrate MLS maps and weighted regions to CDR - #4689

Closed
TomCC7 wants to merge 1 commit into
cc/feat/cdr-ray-tracingfrom
cc/feat/cdr-mls-planner
Closed

TomCC7 wants to merge 1 commit into
cc/feat/cdr-ray-tracingfrom
cc/feat/cdr-mls-planner

Conversation

@TomCC7

@TomCC7 TomCC7 commented Oct 20, 2026

Copy link
Copy Markdown
Member

The native MLS planner now consumes the generated CDR map/region streams from #4688 and publishes canonical Path, surface regions and weighted edge regions. Seed pairing retains explicit region IDs; cylinder dimensions are read from named fields. Edge payloads are real LineSegment3D values with a weight, replacing the legacy Path-shaped encoding.

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

Parent: #4688. Remaining SLAM/relocalization/robot/control/default/cleanup work is not included or claimed complete.

Files Count Change
Python boundaries/spec/rendering 4 Generated types, exact source Header copies, native TF port contract, weighted-edge/surface rendering
Rust boundary 3 CDR codecs, generated messages, explicit region pairing and actual weighted segments; numeric MLS kernel unchanged
Build/dependencies 3 Locked SDK/generated-crate closure, standalone fixed-hash source assembly
Tests/CI 4 Original pairing/expiry/math/rendering tests retained; actual two-native-process CDR chain and timestamp/immutability regressions

Manual synthetic mapper → MLS acceptance from this checkout with development Python dependencies and Rust installed:

python -m pip install -e .
cargo build --locked --manifest-path dimos/mapping/ray_tracing/rust/Cargo.toml --bin voxel_ray_tracing --jobs 2
cargo build --locked --manifest-path dimos/navigation/global_planner/mls_planner/rust/Cargo.toml --bin mls_planner --jobs 2
DIMOS_NATIVE_RAY_TRACING_BINARY="$PWD/dimos/mapping/ray_tracing/rust/target/debug/voxel_ray_tracing" DIMOS_NATIVE_MLS_BINARY="$PWD/dimos/navigation/global_planner/mls_planner/rust/target/debug/mls_planner" python -m pytest --noconftest --import-mode=importlib -o addopts='' -q dimos/navigation/global_planner/mls_planner/test_generated_native.py

This starts two actual native processes and a discovery-disabled localhost Zenoh router. Python supplies a synthetic floor cloud, TF and goal. Ray-tracing outputs feed MLS directly; the test requires a nonempty canonical route plus surface and weighted-edge regions, checks matching nested Headers and waypoint/weight values, and owns cleanup. Both binary variables are required; omitting them skips the native chain. No robot is operated.

Local evidence: 133 Rust unit tests (131 retained plus CDR edge/layout cases), the same 133 from a standalone artifact-only Cargo layout, all-target Clippy with warnings denied, native binary build and a real local PyO3 math wheel pass. All 15 focused Python tests pass from source and with production wrapper/transformer/rendering modules and the extension loaded from site-packages. Strict typing for 4 production files, applicable hooks, main-wheel build and dependency check on the existing default environment plus mapper/MLS extensions pass. The existing goal/latch/search/replan/seed-priority rules remain unchanged. Python TF annotations/protocol now agree with the SDK's existing bidirectional #[tf] service.

Main-wheel SHA256: c0ea256a163e38cb1dcab5dac04f36d1802dd25df0639a1d69a0c162d3c2cf92. Optional MLS dev-profile wheel SHA256: 897f7f3cd5423d69d0236cf1ebcb242de3e8ca3d0f190e6273257659d78179bb.

Nix remains unverified because its executable is absent locally; standalone Cargo proves the source/dependency layout, not the Nix gate. TF query windows keep the existing floating-point API. Main wheel contains Python wrappers/SDK; installed native modules use explicitly supplied executables, while default Nix source builds remain checkout workflows. No CI polling/all-green, performance, hardware, screenshot or human acceptance claim.

@TomCC7 TomCC7 closed this Oct 20, 2026
@TomCC7
TomCC7 deleted the cc/feat/cdr-mls-planner branch October 20, 2026 18:11
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