DeltaLimitApprover raises ValueError for any pose mode whose rotation_repr is not in {none, rot6d} (approver.py: _POSE_MODES includes eef_delta_pose; the check fires before bounds or max_delta are consulted). For ABSOLUTE pose modes that is sound: per-dim clamping of absolute euler orientations has wraparound and axis-coupling problems. But for DISPLACEMENT modes (eef_delta_pose, eef_delta_pos) the per-dim quantities are small rotation deltas, and clamping them per-dim is well defined.
Consequences today, hit while designing inspect-robots-widowx (BridgeData V2 speaks 7-D xyz+euler deltas):
- conformance's guardrail probe turns the ValueError into a doctor error, so any euler-delta embodiment is reported non-conformant.
- cli catches the ValueError and silently degrades every CLI run to clamp-only; --max-action-delta cannot restore delta limiting.
Proposal: restrict the rotation-repr rejection to absolute pose modes; for displacement modes, treat rotation dims like any other bounded displacement dim.
Workaround adopted by inspect-robots-widowx v1 (yam precedent): declare rotation_repr="none" with droll/dpitch/dyaw dim_labels. Once this lands in a release, widowx can declare euler_xyz honestly and bump its pin.
DeltaLimitApprover raises ValueError for any pose mode whose rotation_repr is not in {none, rot6d} (approver.py: _POSE_MODES includes eef_delta_pose; the check fires before bounds or max_delta are consulted). For ABSOLUTE pose modes that is sound: per-dim clamping of absolute euler orientations has wraparound and axis-coupling problems. But for DISPLACEMENT modes (eef_delta_pose, eef_delta_pos) the per-dim quantities are small rotation deltas, and clamping them per-dim is well defined.
Consequences today, hit while designing inspect-robots-widowx (BridgeData V2 speaks 7-D xyz+euler deltas):
Proposal: restrict the rotation-repr rejection to absolute pose modes; for displacement modes, treat rotation dims like any other bounded displacement dim.
Workaround adopted by inspect-robots-widowx v1 (yam precedent): declare rotation_repr="none" with droll/dpitch/dyaw dim_labels. Once this lands in a release, widowx can declare euler_xyz honestly and bump its pin.