LeRobot 文档
LeKiwi
并获得增强的文档体验
开始使用
LeKiwi
在以下步骤中,我们将说明如何组装 LeKiwi 移动机器人。
采购零件
请遵循此 README。其中包含物料清单、采购零件的链接,以及 3D 打印零件的说明。如果您是第一次打印或者没有 3D 打印机,README 中也提供了建议。
有线版本
如果您拥有的是 有线 版本的 LeKiwi,可以跳过安装树莓派和设置 SSH 的步骤。您也可以直接在您的 PC 上运行所有用于 LeKiwi 脚本和用于遥操作的主臂脚本的命令。
在树莓派上安装软件
现在我们需要设置将在 LeKiwi 机器人上运行的远程 PC。这通常是树莓派,但也可以是任何能以 5V 电压运行且有足够 USB 端口(2 个或更多)来连接摄像头和电机控制板的 PC。
安装操作系统
关于设置树莓派及其 SD 卡,请参见:设置树莓派。这里解释了如何下载 Imager 来安装树莓派操作系统或 Ubuntu。
设置 SSH
设置好树莓派后,您应该启用并设置 SSH(安全壳协议),这样您就可以从您的笔记本电脑登录到树莓派,而无需为树莓派连接屏幕、键盘和鼠标。关于如何操作的详细教程可以在这里找到。您可以在命令提示符(cmd)中登录到您的树莓派,或者如果您使用 VSCode,可以使用这个扩展。
在树莓派上安装 LeRobot 🤗
在您的树莓派上,使用我们的安装指南安装 LeRobot。
除了这些说明之外,您还需要在您的树莓派上安装 Feetech SDK 和 ZeroMQ。
pip install -e ".[lekiwi]"
在本地安装 LeRobot
如果您已经在您的笔记本电脑/PC 上安装了 LeRobot,可以跳过此步骤;否则,请按照我们在树莓派上执行的相同步骤进行操作。
请遵循我们的安装指南
除了这些说明之外,您还需要在您的笔记本电脑/PC 上安装 Feetech SDK 和 ZeroMQ。
pip install -e ".[lekiwi]"
太棒了 :hugs:!您现在已经完成了 LeRobot 的安装,我们可以开始组装 SO100/SO101 机械臂和移动底座 :robot: 了。现在,每当您想要使用 LeRobot 时,都可以进入我们安装 LeRobot 的 `~/lerobot` 文件夹,并运行其中一个命令。
分步组装说明
首先,我们将组装两个 SO100/SO101 机械臂。一个用于连接移动底座,另一个用于遥操作。然后我们将组装移动底座。组装说明可以在以下两个页面找到
查找与电机板关联的 USB 端口
要查找每个总线伺服适配器的端口,请运行此脚本
lerobot-find-port
示例输出
Finding all available ports for the MotorBus.
['/dev/tty.usbmodem575E0032081']
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`,对应您的电路板。
配置电机
配置电机的说明可以在 SO101 的文档中找到。除了机械臂电机的 ID,我们还需要设置移动底座的电机 ID。为了正常工作,这些 ID 需要按特定的顺序排列。下图显示了移动底座的电机 ID 和电机安装位置。请注意,LeKiwi 上只使用一个电机控制板。这意味着车轮的电机 ID 分别为 7、8 和 9。
您可以运行此命令来设置 LeKiwi 的电机。它将首先设置机械臂的电机(ID 6..1),然后设置车轮的电机(9,8,7)。
lerobot-setup-motors \
--robot.type=lekiwi \
--robot.port=/dev/tty.usbmodem58760431551 # <- paste here the port found at previous step

通信故障排查
如果您在连接移动 SO100 时遇到问题,请按照以下步骤诊断和解决问题。
1. 验证 IP 地址配置
确保在命令或您的代码中使用了正确的树莓派 IP 地址。要检查树莓派的 IP 地址,请在(树莓派命令行上)运行
hostname -I
2. 检查是否可以从笔记本电脑/PC 访问树莓派
尝试从您的笔记本电脑 ping 树莓派
ping <your_pi_ip_address>
如果 ping 失败
- 确保树莓派已开机并连接到同一网络。
- 检查树莓派上是否已启用 SSH。
3. 尝试 SSH 连接
如果您无法通过 SSH 连接到树莓派,它可能没有正确连接。请使用
ssh <your_pi_user_name>@<your_pi_ip_address>
如果出现连接错误
- 通过运行以下命令确保树莓派已启用 SSH
sudo raspi-config
校准
现在我们必须校准主臂和从臂。车轮电机不需要校准。校准过程非常重要,因为它允许在一个机器人上训练的神经网络在另一个机器人上工作。
校准从臂(在移动底座上)
确保机械臂已连接到树莓派,并运行此脚本或 API 示例(通过 SSH 在树莓派上运行)以启动从臂的校准
lerobot-calibrate \
--robot.type=lekiwi \
--robot.id=my_awesome_kiwi # <- Give the robot a unique name
我们统一了大多数机器人的校准方法,因此,这个 SO100 机械臂的校准步骤与 Koch 和 SO101 的步骤相同。首先,我们必须将机器人移动到每个关节都处于其活动范围中间的位置,然后按下 `Enter` 键。其次,我们将所有关节移动到它们的整个活动范围。可以在此处找到 SO101 相同过程的视频作为参考。
有线版本
如果您拥有的是 有线 版本的 LeKiwi,请在您的笔记本电脑上运行所有命令。
校准主臂
然后,要校准主臂(连接到笔记本电脑/PC),请在您的笔记本电脑上运行以下命令或 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
遥操作 LeKiwi
如果您使用的是 Mac,您可能需要授予终端访问键盘的权限以进行遥操作。请前往系统偏好设置 > 安全性与隐私 > 输入监视,然后勾选终端的复选框。
要进行遥操作,请通过 SSH 连接到您的树莓派,运行 `conda activate lerobot` 并执行此命令
python -m lerobot.robots.lekiwi.lekiwi_host --robot.id=my_awesome_kiwi
然后在您的笔记本电脑上,也运行 `conda activate lerobot` 并运行 API 示例,确保在 `examples/lekiwi/teleoperate.py` 中设置了正确的 `remote_ip` 和 `port`。
python examples/lekiwi/teleoperate.py
您应该在您的笔记本电脑上看到类似这样的信息:`[INFO] Connected to remote robot at tcp://172.17.133.91:5555 and video stream at tcp://172.17.133.91:5556.` 现在您可以移动主臂并使用键盘(w,a,s,d)来向前、向左、向后、向右行驶。使用(z,x)来左转或右转。您可以使用(r,f)来增加和减少移动机器人的速度。共有三种速度模式,请参见下表
速度模式 | 线速度 (m/s) | 旋转速度 (deg/s) |
---|---|---|
快 | 0.4 | 90 |
中型 | 0.25 | 60 |
慢速 | 0.1 | 30 |
按键 | 行动 |
---|---|
W | 向前移动 |
A | 向左移动 |
S | 向后移动 |
D | 向右移动 |
Z | 左转 |
X | 右转 |
R | 增加速度 |
F | 降低速度 |
如果您使用不同的键盘,可以在 `LeKiwiClientConfig` 中更改每个命令的按键。
有线版本
如果您拥有的是 有线 版本的 LeKiwi,请在您的笔记本电脑上运行所有命令。
录制数据集
一旦您熟悉了远程操作,您就可以记录您的第一个数据集。
我们使用 Hugging Face Hub 的功能来上传您的数据集。如果您以前没有使用过 Hub,请确保您可以通过命令行使用具有写权限的令牌登录,此令牌可以从 Hugging Face 设置 生成。
通过运行此命令将您的令牌添加到 CLI
huggingface-cli login --token ${HUGGINGFACE_TOKEN} --add-to-git-credential
然后将您的 Hugging Face 存储库名称存储在一个变量中
HF_USER=$(huggingface-cli whoami | head -n 1)
echo $HF_USER
现在您可以录制一个数据集了。要录制片段并将您的数据集上传到 Hub,请执行这个为 LeKiwi 定制的 API 示例。请确保先在脚本中调整 `remote_ip`、`repo_id`、`port` 和 `task`。如果您希望脚本运行更长时间,可以增加 `NB_CYCLES_CLIENT_CONNECTION`。
python examples/lekiwi/record.py
数据集上传
您的数据集在本地存储在此文件夹中:`~/.cache/huggingface/lerobot/{repo-id}`。在数据录制结束时,您的数据集将被上传到您的 Hugging Face 页面(例如 https://huggingface.co/datasets/cadene/so101_test),您可以通过运行以下命令获取该页面
echo https://huggingface.co/datasets/${HF_USER}/so101_test
您的数据集将自动标记为 LeRobot
,以便社区轻松找到它,您还可以添加自定义标签(例如,在此示例中为 tutorial
)。
您可以通过搜索 LeRobot
标签在 Hub 上查找其他 LeRobot 数据集。
数据收集技巧
一旦您熟悉了数据录制,就可以创建一个更大的数据集用于训练。一个好的起始任务是在不同位置抓取一个物体并将其放入一个箱子中。我们建议录制至少 50 个片段,每个位置 10 个片段。在录制过程中保持摄像头固定,并保持一致的抓取行为。同时确保您正在操作的物体在摄像头的视野内。一个好的经验法则是,您应该能够仅通过观看摄像头图像来完成任务。
在接下来的部分中,您将训练您的神经网络。在实现可靠的抓取性能后,您可以开始在数据收集中引入更多的变化,例如增加抓取位置、不同的抓取技术以及改变摄像头位置。
避免过快地添加太多变化,因为它可能会阻碍您的结果。
如果您想深入了解这个重要主题,您可以查看我们撰写的关于什么是一个好的数据集的博客文章。
故障排除:
- 在 Linux 上,如果左右箭头键和 Esc 键在数据录制期间没有任何效果,请确保您已设置 `$DISPLAY` 环境变量。请参见 pynput 的限制。
重播一个片段
要重播一个片段,请运行下面的 API 示例,确保更改 `remote_ip`、`port`、LeRobotDatasetId 和片段索引。
python examples/lekiwi/replay.py
恭喜 🎉,您的机器人已准备好自主学习任务。通过本教程的训练部分开始训练它:真实世界机器人入门
评估您的策略
要评估您的策略,请运行 `evaluate.py` API 示例,确保更改 `remote_ip`、`port`、模型等。
python examples/lekiwi/evaluate.py
如果你有任何问题或需要帮助,请在 Discord 上联系我们。