SO-100

在下面的步骤中,我们将说明如何组装 SO-100 机器人。

获取零件

请遵循此 README。它包含物料清单、零件采购链接以及 3D 打印零件的说明,并为首次打印或没有 3D 打印机的用户提供了建议。

安装 LeRobot 🤗

要安装 LeRobot,请遵循我们的 安装指南

除了这些说明之外,你还需要安装 Feetech SDK:

pip install -e ".[feetech]"

配置电机

注意: 与 SO-101 不同,SO-100 机械臂组装完成后电机连接器不易接触,因此配置步骤必须提前完成。

1. 查找每只机械臂对应的 USB 端口

要找到每个总线舵机适配器的端口,请运行此脚本:

lerobot-find-port
Mac
Linux

示例输出:

Finding all available ports for the MotorBus.
['/dev/tty.usbmodem575E0032081', '/dev/tty.usbmodem575E0031751']
Remove the USB cable from your MotorsBus and press Enter when done.

[...Disconnect corresponding leader or follower arm and press Enter...]

The port of this MotorsBus is /dev/tty.usbmodem575E0032081
Reconnect the USB cable.

其中找到的端口为:/dev/tty.usbmodem575E0032081,对应你的 leader arm 或 follower arm。

2. 设置电机 ID 和波特率

在总线上,每个电机通过唯一的 ID 识别。全新电机出厂时通常带有默认 ID 1。为了让电机和控制器之间的通信正常工作,我们首先需要为每个电机设置一个唯一、各不相同的 ID。此外,总线上数据传输的速度由波特率决定。为了彼此通信,控制器和所有电机需要配置相同的波特率。

为此,我们首先需要用控制器单独逐个连接每个电机以设置这些参数。由于我们会将这些参数写入电机内部存储器的非易失性部分(EEPROM),所以只需要执行一次。

如果你要复用其他机器人上的电机,可能也需要执行此步骤,因为 ID 和波特率很可能不匹配。

follower arm

将电脑的 USB 线和电源连接到 follower arm 的控制板上。然后运行以下命令,或使用上一步得到的端口运行 API 示例。你还需要使用 id 参数为你的 leader arm 命名。

关于如何设置电机 ID 的直观参考,请参阅此视频,其中我们演示了 SO101 机械臂的流程。

Command
API example
lerobot-setup-motors \
    --robot.type=so100_follower \
    --robot.port=/dev/tty.usbmodem585A0076841  # <- paste here the port found at previous step

你应该会看到以下指令:

Connect the controller board to the 'gripper' motor only and press enter.

按照指示,插上 gripper 电机。确保它是连接到板上唯一的电机,并且电机本身还没有菊花链连接到任何其他电机。当你按下 [Enter] 时,脚本会自动为该电机设置 ID 和波特率。

故障排查

如果此时出现错误,请检查线缆并确保它们正确插接:

  • 电源
  • 电脑和控制板之间的 USB 线缆
  • 从控制板到电机的 3 针线缆

如果你使用的是 Waveshare 控制板,请确保两个跳线都设置在 B 通道(USB)上。

你应该会看到以下消息:

'gripper' motor id set to 6

接着是下一条指令:

Connect the controller board to the 'wrist_roll' motor only and press enter.

你可以将 3 针线缆从控制板上断开,但另一端可以留在 gripper 电机上,因为它已经在正确的位置了。现在,将另一根 3 针线缆插到腕部滚转电机上,并将其连接到控制板。与上一个电机一样,确保它是板上唯一的电机,并且电机本身没有连接到任何其他电机。

按照指示,对每个电机重复上述操作。

在按下 Enter 之前,请检查每一步的接线。例如,在操作控制板时,电源线可能会断开。

完成后,脚本会正常结束,此时电机即可投入使用。你现在可以将每台电机的 3 针线缆依次连接到下一台电机,并将第一台电机(id=1 的’肩部偏航’电机)的线缆连接到控制板,控制板现在可以安装到机械臂的底座上。

leader arm

对 leader arm 执行同样的步骤。

Command
API example
lerobot-setup-motors \
    --teleop.type=so100_leader \
    --teleop.port=/dev/tty.usbmodem575E0031751  # <- paste here the port found at previous step

逐步组装说明

拆除 leader arm 6 个电机的齿轮

拆除齿轮 demonstration 视频

按照视频中的方法拆除齿轮。你需要拆下 leader arm 电机的齿轮。这样,你将只使用电机的位置编码,同时减少摩擦力,从而更容易操控 leader arm。

清理零件

清除所有 3D 打印零件上的支撑材料。最简单的方法是用一把小螺丝刀伸到支撑材料下方。

补充指导

组装机械臂 demonstration 视频

注意: 该视频为组装机械臂提供直观指导,但并未说明何时以及如何进行布线。提前插入线缆比事后插入容易得多。第一只机械臂可能需要 1 个多小时才能组装好,但一旦熟练,你就能在 1 小时内组装好第二只。


第一台电机

第 2 步:插入线缆

  • 将两根线缆插入第一台电机。

第 3 步:安装到底座

  • 将第一台电机放入底座。

第 4 步:固定电机

  • 用 4 颗螺丝固定电机。底部两颗,顶部两颗。

第 5 步:安装电机支架

  • 套上第一个电机支架,并用两颗螺丝固定(每侧各一颗)。

第 6 步:安装电机舵盘

  • 安装两个电机舵盘,并用螺丝固定顶部舵盘。安装舵盘时尽量不要移动电机的位置,尤其是对于我们已经拆除齿轮的 leader arm。
安装电机舵盘 demonstration 视频

第 7 步:安装肩部零件

  • 将一根线缆引到机器人背面,另一根引向左侧或朝向自己(见照片)。
  • 安装肩部零件。

第 8 步:固定肩部

  • 用顶部 4 颗螺丝和底部 4 颗螺丝拧紧肩部零件 (转动肩部即可接触到底部的孔)。

第二台电机组装

第 9 步:安装电机 2

  • 从顶部滑入第二台电机,并将电机 1 的线缆连接到电机 2。

第 10 步:安装肩部支架

  • 装上肩部电机支架。
  • 确保电机 1 到电机 2 的线缆从支架后方走线,而另一根线缆向上引出(见照片)。
  • 此零件组装可能会比较紧,你可以使用图中那样的工作台或类似装置,将零件绕着电机压到位。

第 11 步:固定电机 2

  • 用 4 颗螺丝固定第二台电机。

第 12 步:安装电机舵盘

  • 将两个舵盘安装到电机 2 上,同样使用舵盘螺丝。

第 13 步:安装底座

  • 用 2 颗螺丝安装底座连接件。

第 14 步:安装上臂

  • 用每侧 4 颗螺丝安装上臂。

第三台电机组装

第 15 步:安装电机 3

  • 将电机 2 的线缆穿过线缆夹引至电机 3,然后用 4 颗螺丝固定电机 3。

第 16 步:安装电机舵盘

  • 将两个舵盘安装到电机 3 上,并用舵盘螺丝固定其中一个。

第 17 步:安装前臂

  • 用每侧 4 颗螺丝将前臂连接到电机 3。

第四台电机组装

第 18 步:安装电机 4

  • 滑入电机 4,连接电机 3 的线缆,并用螺丝将线缆固定在其夹子中。

第 19 步:安装电机 4 支架

  • 安装第四个电机支架(配合较紧)。确保一根线缆向上引出,而电机 3 的线缆向下引出(见照片)。

第 20 步:固定电机 4 并安装舵盘

  • 用 4 颗螺丝固定电机 4 并安装其舵盘,其中一个使用舵盘螺丝。

腕部组装

第 21 步:安装电机 5

  • 将电机 5 插入腕部支架,并用 2 颗前部螺丝固定。

第 22 步:安装腕部

  • 连接电机 4 到电机 5 的线缆。同时预先插入用于 gripper 的另一根线缆。
  • 用两侧各 4 颗螺丝将腕部固定到电机 4 上。

第 23 步:安装腕部舵盘

  • 只需在腕部电机上安装一个舵盘,并用舵盘螺丝固定。

follower arm 配置

第 24 步:安装 gripper

  • 将 gripper 安装到电机 5 上。

第 25 步:安装 gripper 电机

  • 插入 gripper 电机,将电机 5 的线缆连接到电机 6,并用每侧 3 颗螺丝固定。

第 26 步:安装 gripper 舵盘与爪指

  • 安装舵盘,同样使用舵盘螺丝。
  • 安装 gripper 爪指,并用两侧各 4 颗螺丝固定。

第 27 步:安装控制器

  • 将电机控制器安装到机器人背面。

组装完成 — 继续进行 leader arm 组装。


leader arm 配置

对于 leader arm 配置,请完成第 1–23 步。确保你已经从电机上拆除了齿轮。

第 24 步:安装 leader arm 支架

  • 将 leader arm 支架安装到腕部,并用螺丝固定。

第 25 步:安装把手

  • 用 4 颗螺丝将把手安装到电机 5。

第 26 步:安装 gripper 电机

  • 插入 gripper 电机,用每侧 3 颗螺丝固定,用舵盘螺丝安装一个舵盘,并连接电机线缆。

第 27 步:安装扳机

  • 用 4 颗螺丝安装 follower arm 扳机。

第 28 步:安装控制器

  • 将电机控制器安装到机器人背面。

calibration

接下来,你需要 calibrate 机器人,以确保 leader arm 和 follower arm 在相同物理位置时具有相同的位置数值。 calibration 过程非常重要,因为它让在某一台机器人上训练的神经网络也能在另一台机器人上工作。

follower arm

运行以下命令或 API 示例来 calibrate follower arm:

Command
API example
lerobot-calibrate \
    --robot.type=so100_follower \
    --robot.port=/dev/tty.usbmodem58760431551 \ # <- The port of your robot
    --robot.id=my_awesome_follower_arm # <- Give the robot a unique name

我们统一了大多数机器人的 calibration 方法。因此,这台 SO100 机械臂的 calibration 步骤与 Koch 和 SO101 的步骤相同。首先,我们需要将机器人移动到每个关节都处于其行程范围中间的位置,然后按下 Enter。其次,我们将所有关节在整个运动范围内移动一遍。SO101 相同过程的参考视频可在此处找到。

leader arm

对 leader arm 执行相同的 calibration 步骤,运行以下命令或 API 示例:

Command
API example
lerobot-calibrate \
    --teleop.type=so100_leader \
    --teleop.port=/dev/tty.usbmodem58760431551 \ # <- The port of your robot
    --teleop.id=my_awesome_leader_arm # <- Give the robot a unique name

恭喜 🎉,你的机器人已经准备好自主学习任务了。按照本教程开始训练它:真实机器人入门

如果你有任何问题或需要帮助,请通过 Discord 联系我们。

在 GitHub 上更新