feat(teleop): add PICO WebXR body tracking - #3695
Conversation
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## main #3695 +/- ##
==========================================
+ Coverage 78.89% 78.96% +0.06%
==========================================
Files 1469 1471 +2
Lines 138999 139279 +280
Branches 11941 12172 +231
==========================================
+ Hits 109665 109975 +310
+ Misses 25934 25903 -31
- Partials 3400 3401 +1
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 3 files with indirect coverage changes 🚀 New features to boost your workflow:
|
|
07f3eb8 to
695122a
Compare
695122a to
6bcf67d
Compare
|
Addressed the Greptile P1 in 82d7bc6. WebXRControllerState now requires the six button slots it indexes while keeping the seventh menu button optional. A regression test sends a real five-button LCM Joy packet through WebXRTeleopModule and verifies the packet is rejected without escaping the callback, stale controller state is cleared, and zero velocity is published. Local verification: 54 WebXR tests passed; Ruff and mypy passed. |
|
@greptileai please re-review the latest commit 82d7bc6. The prior P1 about short controller packets has been fixed and regression-tested. |
# Conflicts: # dimos/control/teleop_coordinator.py # dimos/robot/test_all_blueprints.py # dimos/teleop/webxr/blueprints.py # dimos/teleop/webxr/module.py # dimos/teleop/webxr/test_blueprints.py # dimos/teleop/webxr/test_module.py # dimos/teleop/webxr/web/static/teleop.js
|
@greptileai please re-review the latest commit 23e047e. The branch now includes current main, explicit body-tracking heartbeats, and the SHM race fix. — Codex (AI agent) |
|
Successfully created backport PR for |
Contribution path
Problem
The renamed WebXR teleop stack has no way to request PICO body-tracking permission, decode the browser's joint poses, or inspect tracking health on hardware.
Solution
BodyTrackingSnapshotoutput and strict JSON decoder.optionalandrequiredWebXR session modes.XRFrame.bodyposes inbounded-floorspace when available and fall back tolocal-floor.How to Test
Run the hardware-facing API test:
Automated checks run locally:
Result: 150 passed, 3 skipped, 40 deselected.
Physical PICO validation remains to be completed with the command above.
AI assistance
OpenAI Codex with GPT-5 implemented the change, resolved the parent rebase conflicts, and ran the checks. The author should review and understand the final diff before merge.
Checklist