知识库/参考文档/舵机编号错乱恢复方法

舵机编号错乱恢复方法

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. 正确的舵机与关节编号

img

3. 如何解决?

知道是冲突的原因之后,只要把错误修改为6 号的底座电机重新编号为 1 即可。但需要将该舵机先断开与其他舵机的连接。

3.1 断开与 2 号关节舵机的连接

Leader 臂 Follower 臂
img img

3.2 连接电脑

将单独拆下的舵机通过串口控制板连接到电脑 USB 口,并接通电源。

3.3 编号

编号有两种实现方式:

方式 1:使用脚本编号

执行以下脚本,回车 6 次即可把错误编号为 6 的舵机恢复为编号 1:

bash
python -m lerobot.setup_motors --robot.type=so101_follower --robot.port=/dev/ttyACM0

img

方式 2:使用 Feetech Debug 编号

参考 Windows 编号步骤(飞特舵机使用补充资料)。将扫描到的 6 号舵机重新编号为 1。

3.4 重新连接机械臂的舵机线

Leader 臂 Follower 臂
img