Skip to content

feat: accept canonical CDR at manipulator task boundaries - #4702

Closed
TomCC7 wants to merge 2 commits into
cc/feat/cdr-webxr-outputfrom
cc/feat/cdr-manipulator-task-boundaries
Closed

TomCC7 wants to merge 2 commits into
cc/feat/cdr-webxr-outputfrom
cc/feat/cdr-manipulator-task-boundaries

Conversation

@TomCC7

@TomCC7 TomCC7 commented Oct 20, 2026

Copy link
Copy Markdown
Member

Generated CDR pose, twist, gripper and button inputs now connect WebXR outputs to the built-in manipulator task cards. Cartesian/teleop tasks copy wire poses into their existing numerical target values; EEF twist inputs adapt once before the existing integrator. Controller math, deadman/E-STOP, timeouts, arbitration, hardware dispatch and custom-card raw-message semantics are preserved.

Parent: #4701. Message Encoding Refactor

Changes Files Added Removed
Explicit built-in task input adapters 5 56 22
Canonical coordinator port declarations 2 4 7
Behavior and wire regressions 4 137 7
Installed-package CI acceptance 1 4 0

Offline manual acceptance from this checkout with test dependencies:

DIMOS_TRANSPORT=lcm LCM_DEFAULT_URL=memq:// uv run pytest --noconftest --import-mode=importlib -o addopts='' -q dimos/control/tasks/teleop_ik_task/test_teleop_ik_task.py -k webxr_cdr_output

The real WebXR output publisher encodes canonical poses/button states, local LCM memq and discovery-disabled loopback Zenoh deliver them to a registered coordinator task, and the existing IK task computes the same relative target and stops on deadman release. Only the numerical solver is mocked; no robot driver or XR server starts.

Validation: 59 source and 59 installed-wheel task tests; 146 existing routing/control/tick/blueprint regressions; strict typing across 7 production files; scoped configured hooks passed except unavailable Nix lint. Generated/local Cartesian, twist and gripper inputs preserve behavior, invalid gripper values remain rejected, and modifying a generated input after receipt cannot mutate the stored IK target. Wheel SHA256: 90efe9b9f29f036de2bce0208bde27c77a460b70fc44eb3b091f63672e10973c.

Limits: numerical Pose/JointState/Pink helpers remain internal (legacy dependency retirement is open). This does not complete keyboard/hosted teleop, collection recorder, simulation or other remaining graph boundaries. Physical hardware and human XR acceptance are excluded; CI is configured but not polled.

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