知识库/参考文档/不小心编号破坏了怎么办?

不小心编号破坏了怎么办?

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 连接电脑

3.3 编号

编号有两种实现方式

3.3.1 方式 1:使用脚本编号

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

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

img

3.3.2 方式 2:打开 Feetech Debug 编号

参考Windows编号步骤:飞特舵机使用补充资料

将扫描到的6号舵机,编号为1。

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

Leader臂 Follower臂
img