Advanced reference#

Return to official manual

How to confirm which robot arm the port corresponds to#

The number ⚠️ /dev/ttyACM0 and /dev/ttyACM1 is not fixed. It is assigned by the kernel according to the order in which USB devices are inserted. If the same two wires are plugged in in a different order today, the port numbers may be reversed. After each rewiring, it is recommended to reconfirm the port ownership before executing calibration or teleoperation commands.

Plug and unplug confirmation method#

This is the most direct and reliable way and requires no additional tools to be installed.

Step 1: Unplug all USB devices and confirm that there are currently no ports

ls /dev/ttyACM*
# 预期输出:ls: cannot access '/dev/ttyACM*': No such file or directory

Step 2: Insert only the Leader Arm and record the new ports

ls /dev/ttyACM*
# 例如输出:/dev/ttyACM0
# → 记录:Leader Arm = /dev/ttyACM0

Step 3: Keep the Leader Arm connected, insert a new robotic arm, and record the new port

ls /dev/ttyACM*
# 例如输出:/dev/ttyACM0  /dev/ttyACM1
# → 新增的 /dev/ttyACM1 就是新插入的机械臂的

Use the same method to confirm the ports of the chassis driver board one by one.

Calibration file description#

Where are the calibration files saved?#

After executing lerobot-calibrate, the calibration data will be saved locally in JSON format. The default path is:

~/.cache/huggingface/lerobot/calibration/

Taking the commands in the “First Calibration and teleoperation” chapter as an example, the calibration files of the two arms are saved as:

~/.cache/huggingface/lerobot/calibration/teleop/so101_leader/leader_arm_0218.json
~/.cache/huggingface/lerobot/calibration/robots/so101_follower/follower_arm_0218.json

Among them, leader_arm_0218 and follower_arm_0218 are the custom names you filled in --teleop.id / --robot.id.