LeRobot 实战:从 SO100 机械臂到端到端策略训练的 5 步保姆级指南
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
LeRobot 是 Hugging Face 开源的 PyTorch 机器人学习库,把真实机器人上的数据采集、策略训练与部署推理放进同一套接口里,底层代码都在src/lerobot/下。读完这篇指南,你会装好环境、用一条 SO100 机械臂跑通「遥操作 → 采集 → 训练 ACT 策略」的完整链路,并知道卡住时该查哪些地方。
🎯 适合谁:用一条 SO100 机械臂做端到端机器人学习
想象你桌上有一条几百块的 SO100 机械臂和一台相机:你想让它学会「把杯子推到指定位置」。传统做法是你要自己写串口通信、标定、存储、训练循环,每一块都可能踩坑。LeRobot 的做法是把这些统一成一套命令:你只管--robot.type=so100_follower这样的参数,标定、遥操作、录制、训练各是一个lerobot-*子命令。
一句话定位:LeRobot 是一个硬件无关的 Python 接口,让你「用统一命令操控不同机器人、用统一格式存数据、用统一脚本训练策略」。它原生支持的硬件从 SO100、LeKiwi 这类低成本臂,到 Reachy2、Unitree G1 这种人形/移动平台,列表在 docs/source/il_robots.mdx 里能查到。硬件不够时也不用改源码——社区用lerobot_robot_<name>前缀的插件包即可自动被发现(见src/lerobot/robots/下的 Robot 接口)。
📦 最小上手:三步装好 LeRobot 并验证
第 1 步:准备环境。官方要求 Python ≥ 3.12、PyTorch ≥ 2.7,建议用 conda 建独立环境,避免和别的依赖打架。视频解码默认走 TorchCodec,需要系统里装ffmpeg(conda install ffmpeg -c conda-forge即可)。
第 2 步:安装并验证。基础包故意做得很轻,只装核心 ML 依赖;按你要做的活儿再补上「extra」。下面这条命令一次装齐「采集 + 训练」所需的组合:
pip install "lerobot[core_scripts,training]" lerobot-infolerobot-info会打印你的系统配置和已检测到的 ffmpeg 版本,能正常输出就说明装好了。各 extra 的组合如下,按你的工作流挑一个:
| Extra 组合 | 额外提供 | 对应工作流 |
|---|---|---|
core_scripts | 数据集 + 硬件 + 可视化依赖 | 记录 / 回放 / 标定 |
training | 数据集 + accelerate + wandb | 训练策略 |
core_scripts,training | 以上全部 | 采集后直接训练 |
第 3 步:跑通第一个示例。不想接硬件的话,直接打开 examples/notebooks/quickstart.ipynb:在 Configuration 单元格里填好参数后 Run All,它会把标定、遥操作、录制、训练、推理每一步现成的终端命令打印出来,照抄即可。想读源码的,硬件与遥操作示例在 examples/ 下按平台分目录(如examples/so100_to_so100_EE/)。
🗺️ 能力地图:核心模块一览
LeRobot 的能力大致分成四块,各自对应src/lerobot/下的一个子目录,按下表对号入座:
| 模块(目录) | 作用 | 适用场景 |
|---|---|---|
robots/+teleoperators/ | 统一的 Robot/Teleoperator 接口,屏蔽串口与电机差异 | 操控 SO100、LeKiwi、Reachy2 等硬件 |
datasets/ | LeRobotDataset 格式:MP4 视频 + Parquet 状态/动作,支持流式读写与增删合并 | 采集、存储、可视化机器人数据 |
policies/ | 纯 PyTorch 实现的策略模型(ACT、Diffusion、Pi0、GR00T N1.7、SmolVLA 等) | 模仿学习 / 强化学习 / VLA 训练与部署 |
scripts/ | 一组lerobot-*命令行:record、train、eval、replay、calibrate | 把上面三块串成端到端流程 |
上这张图是 VLA(Vision-Language-Action,视觉-语言-动作模型)的策略结构:相机图像和自然语言指令一起喂进 Transformer,输出动作。它对应policies/下 GR00T、Pi0、XVLA 这类模型;而 ACT、Diffusion 这类模仿学习模型则更轻量,适合先在一条机械臂上跑通。
🔄 完整实战流程:从遥操作到训练 ACT 策略
下面走一遍最有代表性的「低成本机械臂学推杯子」链路,共五步。前四步都是现成命令,最后一步是核心。
- 找端口:
lerobot-find-port列出串口,lerobot-find-cameras opencv列出相机索引。 - 标定:
lerobot-calibrate --robot.type=so100_follower --robot.port=<端口>,每条臂首次使用前做一次。 - 遥操作:
lerobot-teleoperate,加--display_data=true可实时看到画面,确认主臂带动从臂动作顺滑。 - 采集:
lerobot-record --robot.type=so100_follower --teleop.type=so101_leader --dataset.repo_id=<用户>/my-data --dataset.num_episodes=50 --dataset.single_task="push the cup",数据按 LeRobotDataset 格式落盘,可加--resume=true断点续采。 - 训练:这一步是整条链路的「核心命令」,直接对采集到的数据集训练一个 ACT(Action Chunking with Transformers,动作分块 Transformer)策略:
lerobot-train \ --policy.type=act \ --dataset.repo_id=<用户>/my-data训练完成后,用lerobot-rollout --strategy.type=base --policy.path=<checkpoint> --robot.type=so100_follower让机器人在真机上执行策略,或在仿真里用lerobot-eval跑 LIBERO、MetaWorld 等基准打分。想换策略,只改--policy.type(act/diffusion/pi0/smolvla…),其余流程不变,各策略的依赖 extra 和显存需求见 docs/source/ 下的硬件指南。
🛠️ 高频排障:三个最常见的问题
- 现象
ImportError/ 装了却没反应。原因只装了基础pip install lerobot,没带对应 extra,或系统缺ffmpeg导致视频解码失败。解法按工作流补装pip install "lerobot[core_scripts,training]",并conda install ffmpeg -c conda-forge,再用lerobot-info复核。 - 现象
lerobot-find-port没列出预期端口、连不上机器人。原因串口线松、端口被占用,或当前用户对/dev/tty*没有读写权限。解法重新插拔并lerobot-find-port确认端口,检查该端口的访问权限,WSL 下还需按 docs/source/installation.mdx 补装evdev。 - 现象训练时报
CUDA out of memory。原因相机分辨率高且batch_size偏大,显存被图像张量吃满。解法降低相机分辨率或减小 batch,也可把--policy.device临时设成cpu先跑通流程,再逐步调参。
📚 资源与行动清单
- 文档:docs/ 目录按主题组织,从 docs/source/installation.mdx(安装)到 docs/source/il_robots.mdx(各硬件采集与训练)再到各策略 README(如 docs/source/policy_act_README.md),是排障和深入的第一入口。
- 示例:examples/ 下的教程(如 examples/tutorial/act/)给出从训练到调用的最小可运行代码;
examples/notebooks/quickstart.ipynb则把全流程命令一次性生成。 - 社区:加入官方 Discord 与 X(@LeRobotHF)跟踪更新;问题与需求走 GitHub Issues。
接下来你可以做:
- 打开 quickstart notebook,把 Configuration 单元格改成你自己的端口与任务描述,Run All 生成你的专属命令。
- 先不接硬件:用 Hub 上的现成数据集跑一条
lerobot-train --policy.type=act,熟悉训练与 checkpoint 结构。 - 接上你的 SO100,走完标定 → 遥操作 → 录制 → 训练 → rollout 的五步闭环,再按 docs/source/ 换
--policy.type试一个 VLA 模型。 - 读
src/lerobot/robots/与src/lerobot/policies/的接口,了解如何为自己的机器人或策略写一个插件。
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考