LeRobot 文档

SO-100

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

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,对应于您的主控臂或从动臂。

2. 设置电机的 ID 和波特率

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

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

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

从动臂

将计算机的 USB 数据线和电源连接到从动臂的控制器板上。然后,运行以下命令或使用上一步中获取的端口运行 API 示例。你还需要使用 id 参数为你的主动臂命名。

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

命令
API 示例
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.

按照指示,插入夹爪的电机。确保它是唯一连接到控制器板的电机,并且电机本身尚未以菊花链方式连接到任何其他电机。当你按下 [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 针电缆,但可以让它连接在夹爪电机的另一端,因为它已经位于正确的位置。现在,将另一根 3 针电缆插入手腕滚动电机并将其连接到控制器板。与上一个电机一样,确保它是唯一连接到控制器板的电机,并且电机本身没有连接到任何其他电机。

按照指示为每个电机重复此操作。

在按 Enter 键之前,请在每一步检查您的布线。例如,在操作电路板时,电源线可能会断开。

完成后,脚本将直接结束,此时电机已准备好使用。你现在可以将每个电机的 3 针电缆连接到下一个电机,并将第一个电机(ID=1 的“肩部平移”)的电缆连接到控制器板,该控制器板现在可以安装在机械臂的底座上。

主动臂

对主动臂执行相同的步骤。

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

分步组装说明

移除 6 个主动臂电机的齿轮

移除齿轮视频

按照视频移除齿轮。你需要移除主动臂电机的齿轮。这样,你将只使用电机的位置编码,并减少摩擦,从而更容易操作主动臂。

清洁零件

移除 3D 打印零件上的所有支撑材料。最简单的方法是使用小螺丝刀撬开支撑材料。

附加指南

组装机械臂视频

注意: 本视频为组装机械臂提供了视觉指导,但并未具体说明何时或如何进行布线。提前插入电缆比事后操作要容易得多。组装第一个机械臂可能需要超过 1 小时,但一旦熟悉了,你可以在 1 小时内组装好第二个。


第一个电机

第 2 步:插入电线

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

第 3 步:安装到底座中

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

第 4 步:固定电机

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

第 5 步:安装电机支架

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

第 6 步:安装电机臂盘

  • 安装两个电机臂盘,用一颗螺丝固定顶部的臂盘。安装臂盘时尽量不要移动电机的位置,特别是对于移除了齿轮的主动臂。
添加电机臂盘视频

第 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。并提前插入另一根用于夹爪的电线。
  • 用两侧各 4 颗螺丝将手腕固定到电机 4。

第 23 步:安装手腕臂盘

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

从动臂配置

第 24 步:安装夹爪

  • 将夹爪安装到电机 5。

第 25 步:安装夹爪电机

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

第 26 步:安装夹爪臂盘和爪子

  • 安装电机臂盘并再次使用臂盘螺丝。
  • 安装夹爪的爪子,并用两侧各 4 颗螺丝固定。

第 27 步:安装控制器

  • 将电机控制器安装到机器人后部。

组装完成 – 继续进行主动臂的组装。


主动臂配置

对于主动臂配置,请执行步骤 1–23。确保你已经从电机上移除了电机齿轮。

第 24 步:安装主动臂支架

  • 将主动臂支架安装到手腕上,并用一颗螺丝固定。

第 25 步:安装手柄

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

第 26 步:安装夹爪电机

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

第 27 步:安装扳机

  • 用 4 颗螺丝安装从动臂扳机。

第 28 步:安装控制器

  • 将电机控制器安装到机器人后部。

校准

接下来,你需要校准你的机器人,以确保主动臂和从动臂在处于相同物理位置时具有相同的位置值。校准过程非常重要,因为它使得在一个机器人上训练的神经网络可以在另一个机器人上工作。

从动臂

运行以下命令或 API 示例来校准从动臂

命令
API 示例
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

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

主动臂

执行相同的步骤来校准主控臂,运行以下命令或 API 示例

命令
API 示例
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 上更新