[SO-ARM101] ID2 servo moves in the opposite direction

:light_bulb: Using this template is recommended — you may also edit it freely, but you must fully describe your product and the problem (at least: product name, version, and problem description).

Product and Purchase

  • Product model: SO-ARM101
  • SKU or kit name: advanced

Issue Description

During teleoperation, the servo on ID1 did not respond at all. After multiple recalibrations, servo ID1 started working normally, but follower arm’s servo ID2 now moves in the opposite direction compared to the leader arm. Is there any step that might have been done incorrectly?

ID1 is shoulder_pan, and ID2 is shoulder_lift. Stop teleoperation with Ctrl+C, clear the arm’s workspace, and check the following:

  1. Confirm that the leader and follower ports are not swapped. The documented COM22 and COM24 values are examples; use your actual ports consistently.
  2. Recalibrate the leader and follower separately. Place each arm in the documented initial, mid-range pose. When prompted about an existing calibration, type c and press Enter; pressing Enter alone reuses the existing calibration. During range recording, move every joint, especially ID2, through its entire mechanical range before pressing Enter.
lerobot-calibrate --teleop.type=so101_leader --teleop.port=COM22 --teleop.id=my_awesome_leader_arm
lerobot-calibrate --robot.type=so101_follower --robot.port=COM24 --robot.id=my_awesome_follower_arm

Replace the example ports with your actual ports, and keep the same teleop.id and robot.id used for teleoperation.

  1. Do not rerun lerobot-setup-motors as part of normal calibration on an assembled arm. ID assignment requires only one servo to be connected at a time. If multiple servos were connected while that command was run, more than one servo may have received the same ID, causing abnormal calibration and control.
  2. Retest teleoperation after the fresh calibration. If only follower ID2 still moves in reverse, please post the complete calibration and teleoperation terminal output, your LeRobot package version, and clear side-view photos of ID2 on both arms. Do not change servo IDs or disassemble the joint yet.

If this reply was helpful, you can mark it as the solution using the button below.