fix(openyam): align learning stack with canonical model - #3853
Conversation
Codecov Report❌ Patch coverage is @@ Coverage Diff @@
## main #3853 +/- ##
==========================================
+ Coverage 79.53% 79.57% +0.04%
==========================================
Files 1492 1498 +6
Lines 141368 141657 +289
Branches 12120 12130 +10
==========================================
+ Hits 112436 112730 +294
+ Misses 25511 25502 -9
- Partials 3421 3425 +4
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 6 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Greptile SummaryThis change aligns OpenYAM planning and teleoperation with the canonical robot description, adds an explicit collection-ready home posture and velocity limits, reduces Pink IK models to commanded joints, and applies OpenYAM-specific Quest posture weighting. The executed Pinocchio runtime check verified that controlled-joint reduction removes uncommanded joints, preserves the commanded joint mapping, and writes configured velocity limits to the correct Pinocchio velocity coordinates even when model coordinate order differs. No reportable defect was found in those exercised behaviors. T-Rex validation blockedCanonical OpenYAM model loading could not be exercised because the required Confidence Score: 5/5No merge-blocking defect was found in the executed controlled-joint reduction and velocity-limit paths. The completed runtime check passed for the highest-risk joint-mapping and velocity-coordinate behavior, and no final defect comments were produced. Canonical model and Quest execution remain unexercised because their required local dependencies are unavailable. Files Needing Attention: The canonical-asset paths in
What T-Rex did
Reviews (1): Last reviewed commit: "fix(openyam): align teleop with canonica..." | Re-trigger Greptile |
9421c5f to
e0cac4d
Compare
e0cac4d to
9e586e8
Compare
9e586e8 to
b9b719f
Compare
b9b719f to
82dc5dc
Compare
20b2bbc to
bc58db8
Compare
bc58db8 to
351736c
Compare
Contribution path
Problem
Solution
Define canonical arm/gripper joint names in a hardware-independent module, shared by robot configuration and later collection/rollout presets.
Align single- and dual-arm home configurations with the canonical model.
Reduce Pink's model to controlled joints and apply configured velocity limits.
Add OpenYAM-specific teleop weighting and regression coverage.
Keep recorder, policy, and CLI concerns in later layers.
Own the dependency-free dual-arm joint declarations and import them directly from
dual_openyam.joints; remove config reexports.Add robot-local
build_dual_openyam_webxr(visualization=...)to construct the full teleop graph without extracting Blueprint atom kwargs.Load dual-arm hardware limits from the canonical model and report Viser execution acceptance/rejection.
Keep lazy model paths lazy during configuration copying and serialization introspection; preserve normal resolution on asset access.
Keep canonical-joint unit tests independent of model downloads and complete the pygame sequence type stub.
API shape
dimos.robot.manipulators.openyam.jointsexportsOPENYAM_ARM_JOINTS,OPENYAM_GRIPPER_JOINT, andOPENYAM_JOINTS.dimos.robot.manipulators.dual_openyam.jointsowns the orderedDUAL_OPENYAM_ARM_JOINTS,DUAL_OPENYAM_GRIPPER_JOINTS, andDUAL_OPENYAM_JOINTSdeclarations.build_dual_openyam_webxr(*, visualization: ManipulationVisualizationConfig = ViserVisualizationConfig()) -> Blueprintaccepts the existing visualization config. Ordinary teleop remains on127.0.0.1; callers can construct a graph with a different host. No generic Blueprint.configure()API.How to Test
With OpenYAM and Quest configured:
In the previous cleanup, 22 focused OpenYAM/config tests passed; the final stack also passed 52 Pink/OpenYAM IK tests.
Current review cleanup: 40 focused baseline tests and mypy on five changed production files passed. Full-stack verification also covers the inherited Viser and dual-arm regressions.
Exercise weighted IK, home pose, and velocity limits on supported hardware before release. Hardware operation was not retested for this cleanup.
CI repair: 38 focused baseline tests and all 37 configuration-parser tests passed; lazy-copy tests cover unresolved/resolved paths and shared references. Scoped mypy passed.
AI assistance
Checklist