You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A week of hardware-in-the-loop integration (Quest 3 → CloudXR → Isaac Teleop retargeting → LeRobot followers: SO-101, reBot DevArm B601) surfaced a recurring bug class: retargeter output may be arbitrarily far from the physical robot's actual state at t=0 and after resets, and nothing in the library states or checks what the consumer is expected to do about it.
The stock pipeline implicitly assumes a follower that protects itself (Franka/UR-class velocity envelopes in the controller). Low-cost position servos (e.g., Feetech on the SO-101) execute any bus target at full torque with no hardware envelope — so an unguarded first frame turns any convention/state mismatch into a violent jump.
Evidence
SO-101 motor 4 (wrist_flex) stripped a gear on an uncommanded full-speed jump at t=0: a gripper drive-direction mismatch (unmeasured drive_mode) was executed at full torque by the first unconditional send_action(), with silent clipping masking the magnitude. Gear damage confirmed acoustically (~140 Hz tone, impact events at ~10.8 Hz ≈ 1 knock/rev).
Document the follower contract explicitly: retargeter output is a desired target, not a safe command; consumers MUST ramp/guard the first frame and after any reset/re-engage. A short section in the retargeting docs would already prevent broken hardware.
Provide a baseline-injection hook on rate-limiting/retargeter nodes so consumers can seed the limiter from measured robot state at startup (today the first emitted command becomes the de-facto baseline, which is exactly the unsafe case).
Related: PR #727 (rate limiter + anomaly-rejection tier) covers in-band spikes, but cannot know the physical pose at t=0 without such a hook.
Happy to contribute the implementation — raising for design discussion first.
Part of the field-integration feedback series (SO-101 + reBot DevArm, June 29 – July 6). Priority suggestion: P0.
Context
A week of hardware-in-the-loop integration (Quest 3 → CloudXR → Isaac Teleop retargeting → LeRobot followers: SO-101, reBot DevArm B601) surfaced a recurring bug class: retargeter output may be arbitrarily far from the physical robot's actual state at t=0 and after resets, and nothing in the library states or checks what the consumer is expected to do about it.
The stock pipeline implicitly assumes a follower that protects itself (Franka/UR-class velocity envelopes in the controller). Low-cost position servos (e.g., Feetech on the SO-101) execute any bus target at full torque with no hardware envelope — so an unguarded first frame turns any convention/state mismatch into a violent jump.
Evidence
drive_mode) was executed at full torque by the first unconditionalsend_action(), with silent clipping masking the magnitude. Gear damage confirmed acoustically (~140 Hz tone, impact events at ~10.8 Hz ≈ 1 knock/rev).Proposal
One (or both) of:
Related: PR #727 (rate limiter + anomaly-rejection tier) covers in-band spikes, but cannot know the physical pose at t=0 without such a hook.
Happy to contribute the implementation — raising for design discussion first.
Part of the field-integration feedback series (SO-101 + reBot DevArm, June 29 – July 6). Priority suggestion: P0.