Skip to content

feat(messages): preserve keyed map regions in canonical schemas - #4687

Closed
TomCC7 wants to merge 1 commit into
cc/feat/cdr-navigation-vizfrom
cc/feat/cdr-mapping-regions
Closed

TomCC7 wants to merge 1 commit into
cc/feat/cdr-navigation-vizfrom
cc/feat/cdr-mapping-regions

Conversation

@TomCC7

@TomCC7 TomCC7 commented Oct 20, 2026

Copy link
Copy Markdown
Member

Add explicit region metadata for the ray-tracing/MLS cutover. Those streams currently use legacy Header.seq as a packed viewer-cell key or seed-region pairing ID; canonical ROS2 std_msgs/Header has no such field. These small DimOS-owned message definitions retain that information without modifying or duplicating upstream standard types.

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

Parent: #4686. Native consumers follow in the next layer; this prerequisite does not claim the mapper/MLS runtime is migrated yet.

Files Count Change
Owned .msg definitions 3 PointCloudRegion, cylindrical RegionBounds, LineSegments3DRegion, with explicit signed region_id and normal Header stamps
Catalog 1 Deterministic roots for all three definitions
Tests/CI 2 ID bounds, canonical dependency identities, CDR and independently decoded self-describing MCAP

PointCloudRegion references sensor_msgs/PointCloud2; LineSegments3DRegion references the existing weighted LineSegments3D. Their outer Headers match their payload Headers so generic recording can read source time. RegionBounds has explicit center/radius/z limits rather than storing cylinder dimensions in a quaternion. These are value definitions, not new Module handlers or convenience classes. No generated outputs or copied upstream .msg code are checked in.

Manual Python acceptance after installing this checkout:

python -m pip install -e .
python -m pytest --noconftest --import-mode=importlib -o addopts='' -q dimos/msgs/test_regions.py

Local evidence: 10 source tests and the same 10 using the installed main wheel pass, including an independent rosbags subprocess starting with an empty type store and reading only the full schemas embedded in MCAP. Compiled and ran an actual Rust consumer constructing all three values. Python decoded and re-encoded each Rust CDR payload identically; a compiled C++ consumer decoded and re-encoded those same payloads identically, with compile-time checks for the reused Header/PointCloud2 declarations. C++ preparation was offline using the cached nine Git source revisions checked against the generator lock and existing FastCDR sources. No ROS installation was required.

Applicable hooks, normal main-wheel build and the existing 198-package environment's dependency check pass. Wheel SHA256: a9eb6f4d48744164e16e87026d8b7eff992cc2b68278d35307c65158fd917963. Existing native package consumers in CI compile the generated catalog; the new focused gate checks region payloads and MCAP closure. No CI polling/all-green, native mapper runtime, hardware, viewer or human acceptance claim.

@TomCC7 TomCC7 closed this Oct 20, 2026
@TomCC7
TomCC7 deleted the cc/feat/cdr-mapping-regions 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