舵机编号错乱恢复方法
1. 为什么会编号乱?
现有编号流程的基本原理是:每次将检测到的编号为 1 的舵机依次修改为 6 → 5 → 4 → 3 → 2 → 1。由于舵机出厂编号都是 1,所以整个流程是这样的:
- 第 1 步:接上新出厂舵机,将扫描到的 1 号舵机编号为 6
- 第 2 步:再接上新出厂舵机,将扫描到的 1 号舵机编号为 5
- 第 3 步:再接上新出厂舵机,将扫描到的 1 号舵机编号为 4
- 第 4 步:再接上新出厂舵机,将扫描到的 1 号舵机编号为 3
- 第 5 步:再接上新出厂舵机,将扫描到的 1 号舵机编号为 2
- 第 6 步:再接上新出厂舵机,将扫描到的 1 号舵机编号为 1
如果是已经组装编号好的机械臂,第 1 步就会将机械臂上已经编号为 1 的舵机修改为 6 号,导致总线上有 2 个编号为 6 的舵机,通讯冲突,从而报错。类似下面的日志,只找到 2, 3, 4, 5 这 4 个舵机,没发现 1 号和 6 号:
Missing motor IDs:
- 1 (expected model: 777)
- 6 (expected model: 777)
Full expected motor list (id: model_number):
{1: 777, 2: 777, 3: 777, 4: 777, 5: 777, 6: 777}
Full found motor list (id: model_number):
{2: 777, 3: 777, 4: 777, 5: 777}
对于已经组装编号好的机械臂,通常异常第 1 步编号之后就没有 1 号舵机了,所以不会再破坏其他的舵机编号。
温馨提示:我们配置的 JoyandAI 的 lerobot 仓库,在编号这一步添加了对总线上其他编号舵机的检查,发现可能是已经编号的机械臂时会中断编号过程,防止误操作,对新手更友好。
2. 正确的舵机与关节编号

3. 如何解决?
知道是冲突的原因之后,只要把错误修改为6 号的底座电机重新编号为 1 即可。但需要将该舵机先断开与其他舵机的连接。
3.1 断开与 2 号关节舵机的连接
| Leader 臂 | Follower 臂 |
|---|---|
![]() |
![]() |
3.2 连接电脑
将单独拆下的舵机通过串口控制板连接到电脑 USB 口,并接通电源。
3.3 编号
编号有两种实现方式:
方式 1:使用脚本编号
执行以下脚本,回车 6 次即可把错误编号为 6 的舵机恢复为编号 1:
python -m lerobot.setup_motors --robot.type=so101_follower --robot.port=/dev/ttyACM0
方式 2:使用 Feetech Debug 编号
参考 Windows 编号步骤(飞特舵机使用补充资料)。将扫描到的 6 号舵机重新编号为 1。
3.4 重新连接机械臂的舵机线
| Leader 臂 | Follower 臂 |
|---|---|
![]() |


