在以下步骤中,我们说明如何组装 Koch v1.1 机器人。
遵循此 README 中提供的采购和组装说明。它将指导你设置 follower arm 和 leader arm,如下图所示。
关于组装过程的直观 demonstration,你可以参考 此视频教程。
自该视频制作以来,我们简化了配置阶段。因此,有两点与该视频中的说明不同:
要安装 LeRobot,请遵循我们的 安装指南
除这些说明外,你还需要安装 Dynamixel SDK:
pip install -e ".[dynamixel]"要查找每个总线舵机适配器的端口,请运行此脚本:
lerobot-find-port
示例输出:
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。
每个电机由总线上的唯一 id 标识。全新时,电机通常带有默认 id 1。为使电机与控制器之间的通信正常工作,我们首先需要为每个电机设置一个唯一且不同的 id。此外,总线上数据传输的速度由波特率决定。为了相互通信,控制器和所有电机都必须配置相同的波特率。
为此,我们首先需要单独连接每个电机与控制器来设置这些参数。由于我们会将这些参数写入电机内部存储器的非易失性区域(EEPROM),因此只需执行一次。
如果你是从其他机器人挪用电机,很可能也需要执行此步骤,因为 id 和波特率可能不匹配。
将 USB 线从电脑和 5V 电源连接到 follower arm 的控制板。然后,运行以下命令或使用上一步获得的端口运行 API 示例。你还需要用 id 参数为 leader arm 指定名称。
关于如何设置电机 id 的直观参考,请参阅 此视频,我们在其中演示了 SO101 机械臂的流程。
lerobot-setup-motors \
--robot.type=koch_follower \
--robot.port=/dev/tty.usbmodem575E0031751 # <- paste here the port found at previous step你应该会看到以下提示。
Connect the controller board to the 'gripper' motor only and press enter.按照指示,插上 gripper 的电机。确保它是唯一连接到板上的电机,并且该电机本身尚未与任何其他电机菊花链连接。当你按下 [Enter] 时,脚本会自动为该电机设置 id 和波特率。
如果此时出现错误,请检查线缆并确保它们正确插入:
如果你使用的是 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 的 ‘shoulder pan’)的线缆连接到控制板,控制板此时可以安装到机械臂底座上。
对 leader arm 执行相同步骤,但相应修改命令或脚本。
lerobot-setup-motors \
--teleop.type=koch_leader \
--teleop.port=/dev/tty.usbmodem575E0031751 \ # <- paste here the port found at previous step接下来,你需要 calibrate 机器人,以确保 leader arm 和 follower arm 在处于相同物理位置时具有相同的位置值。 calibration 过程非常重要,因为它允许在一个机器人上训练的神经网络在另一个机器人上工作。
运行以下命令或 API 示例来 calibrate follower arm:
lerobot-calibrate \
--robot.type=koch_follower \
--robot.port=/dev/tty.usbmodem58760431551 \ # <- The port of your robot
--robot.id=my_awesome_follower_arm # <- Give the robot a unique name我们统一了大多数机器人的 calibration 方法。因此,此 Koch 机械臂的 calibration 步骤与 SO100 和 SO101 的步骤相同。首先,我们必须将机器人移动到每个关节处于其活动范围中间的位置,然后按 Enter。其次,我们将所有关节移动经过其完整活动范围。关于 SO101 相同过程的参考视频可在 此处 找到。
对 leader arm 执行相同步骤进行 calibration,运行以下命令或 API 示例:
lerobot-calibrate \
--teleop.type=koch_leader \
--teleop.port=/dev/tty.usbmodem58760431551 \ # <- The port of your robot
--teleop.id=my_awesome_leader_arm # <- Give the robot a unique name恭喜 🎉,你的机器人已完全准备好自主学习任务。按照此教程开始训练它:真实世界机器人入门
在 GitHub 上更新如果你有任何问题或需要帮助,请在 Discord 上联系我们。