Nothing moves
The follower applies nothing until a leader holds control. Check, in order:claim_control()returnedtrue. It returnsfalseon a denial and on a timeout.- The deadman is held.
- The follower is
ACTIVE, notHOLDING. Watchon_safe_state.
HOLDING while commands arrive, resume_requires_reclaim is set
and something tripped a failsafe. Call Follower.arm() to clear it.
The session joins, then silence
Both ends joined and neither sees the other. Almost always two different rooms. SetVIDEOSDK_MEETING_ID on both machines and confirm they match. Without it
each side creates its own room, and joining an empty room succeeds.
Holding, active, holding
Commands stopped arriving for longer thanwatchdog_timeout_s. In order of
likelihood: a slow tick on the leader, network jitter, or an overrunning tick on
the follower. Check stats() for overruns.
Calibration
The arm moves, but wrongly. Almost always the wrong calibration file. The two arms are identical hardware, so loading the leader’s file against the follower’s bus gives plausible numbers and wrong motion. The schema check does not catch it, because both arms have the same joint names. Runso101_calibration.verify_against_bus() and check the id= you passed
LeRobot.
no calibration at ... means the file is not where the lookup expects it.
Calibration lives under
~/.cache/huggingface/lerobot/calibration/, with robots and teleoperators in
separate directories, and each host reads only its own arm’s file. Run
lerobot-calibrate on that machine, or pass an explicit path.
Gain feels wrong near the end stops. Each host normalises against its own
arm’s travel. Copying joint_min and joint_max from one machine to the other
produces an arm that tracks but with the wrong gain at the extremes.
Errors
Related
Safety
What to get right before a session touches hardware.
Python SDK
Every class, method and event, with examples.
Still stuck?
Community
Ask other developers, and us.
GitHub
Report a bug or open an issue.
Talk to an Expert
Contact support or speak with our team.