Skip to content

feat: use CDR for WebXR outputs and blueprint topics - #4701

Closed
TomCC7 wants to merge 1 commit into
cc/feat/cdr-webxr-boundaryfrom
cc/feat/cdr-webxr-output
Closed

TomCC7 wants to merge 1 commit into
cc/feat/cdr-webxr-boundaryfrom
cc/feat/cdr-webxr-output

Conversation

@TomCC7

@TomCC7 TomCC7 commented Oct 20, 2026

Copy link
Copy Markdown
Member

WebXR controller poses, twist/gripper commands, button bitfields and camera/status ports now use generated CDR values. Existing controller transforms, engagement/debounce, JPEG streaming and task math remain behind explicit value adapters. Source pose headers retain nanoseconds through the built-in pose/twist output paths.

Parent: #4700. Message Encoding Refactor

Changes Files Added Removed
CDR transport backend resolution 1 14 3
WebXR outputs and blueprint transport maps 3 57 34
Behavioral regressions 3 161 12
Installed-package CI acceptance 1 3 3

Explicit blueprint transport specs now resolve the active backend, namespace and automatic QoS at construction after CLI configuration. Explicit backend choices remain pinned; raw CDR bytes and type/schema contracts are unchanged.

Manual offline acceptance from this checkout after installing its test dependencies:

DIMOS_TRANSPORT=lcm LCM_DEFAULT_URL=memq:// uv run pytest --noconftest --import-mode=importlib -o addopts='' -q dimos/teleop/webxr/test_module.py -k 'control_loop_outputs or video_extension'

This starts the real control output loop with synthetic controller inputs, receives generated poses/buttons over LCM memq and discovery-disabled loopback Zenoh, and decodes the actual camera JPEG. It never starts a robot or XR server.

Validation: 96 source tests and the same 96 against the freshly installed main wheel in isolated Python; 4 production files pass strict typing; configured scoped hooks pass (Nix unavailable). Exact fixed Foxglove encoder interoperability and actual blueprint construction included. Wheel SHA256: 0b640e519a6e834de9b7510081d1735fff381f533622d16988d3d0c0d7262957.

Remaining: downstream built-in manipulator task and other graph boundaries are the next layer; this PR does not claim whole-graph teleoperation completion or real-device/human XR acceptance. Internal rich geometry and Buttons helpers remain, so complete legacy dependency retirement is open. CI is configured but not polled. No PyPI publication.

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