LeRobot 机器人学习框架教程:如何用 3 条命令跑通 SO-100 数据采集与 ACT 策略训练
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
LeRobot 是 Hugging Face 开源的 PyTorch 机器人学习框架,打通硬件控制、数据采集和策略训练。这篇教程带你装好环境,并走一遍从遥操作录数据到训练出策略的完整链路。
值不值得试:先看你踩不踩这些坑
上手机器人学习,最常见的三个卡点:
- 硬件各写各的 API,SO-100 的控制代码搬到别的手臂上基本要重写;
- 采集到的数据散落成 MP4 加 CSV,别人无法直接用,自己也难复用;
- 想试 ACT、Pi0 这类新策略,得自己拼数据管线和训练脚本。
LeRobot 就是冲着这三件事来的:一个统一的Robot接口接管 SO-100、LeKiwi、Unitree G1 等十几款硬件;一个 LeRobotDataset 标准格式收纳全部数据(Hugging Face Hub 上已有数千个公开数据集);内置 ACT、Diffusion、Pi0、GR00T 等一批现成策略。
核心概念:LeRobot 靠什么把三件事串起来
一句话拆解它的架构:接口层 + 数据层 + 策略层。
- 接口层:所有硬件实现同一个
Robot接口,你只调connect()、get_observation()、send_action()三个动作,换硬件不改代码; - 数据层:LeRobotDataset 把观测存成 MP4 视频、状态和动作存成 Parquet,两者按帧对齐,支持流式读取和可视化;
- 策略层:模仿学习(ACT、Diffusion、VQ-BeT)、强化学习(HIL-SERL、TDMPC)、视觉-语言-动作模型(Pi0、GR00T N1.7、SmolVLA)都是纯 PyTorch 实现,训练和推理共用同一套数据接口。
数据层的存储分工可以这样记:
| 数据内容 | 存储格式 | 作用 |
|---|---|---|
| 相机观测帧 | MP4 视频 | 压缩存储,按帧解码 |
| 状态 / 动作 | Parquet | 列式存储,读取快 |
| 数据集描述 | 元数据 | 特征、时间戳、episode 划分 |
快速安装 LeRobot:环境要求与一步到位命令
环境要求很明确:Python 3.12+,PyTorch 2.10+,视频解码依赖ffmpeg。装之前建议先建一个干净环境,避免和别的项目的依赖打架。
conda create -y -n lerobot python=3.12 conda activate lerobot pip install "lerobot[core_scripts]" conda install ffmpeg -c conda-forgecore_scripts这个 extra 包含了dataset+hardware+viz三组依赖,够你用lerobot-record、lerobot-replay这些采集回放命令;后面要训练再补pip install "lerobot[training]"。
成功的标志:运行lerobot-info,能打印出版本和已加载的功能模块,就说明装好了。
上手走一遍:SO-100 遥操作录数据、ACT 策略训练
以最典型的 SO-100 桌面机械臂为例,整条链路是:配置电机 → 遥操作录数据 → 训练 → 评估。硬件相关的准备命令(找端口lerobot-find-port、写电机 IDlerobot-setup-motors、标定lerobot-calibrate)都带交互引导,跟着提示按回车就行。
核心流程命令对照(lerobot-record具体参数按你装的机器人和遥操作器类型填):
| 阶段 | 命令 | 说明 |
|---|---|---|
| 录数据 | lerobot-record --robot.type=... --teleop.type=... --dataset.repo_id=用户名/数据集名 | 主臂带动从臂,逐 episode 记录 |
| 看数据 | lerobot-dataset-viz <数据集路径> | 浏览器里回放采集结果 |
| 训练 | 见下方代码块 | ACT 策略,跑通即得第一个 checkpoint |
| 评估 | lerobot-eval --env.type=libero --env.task=libero_object --eval.n_episodes=10 | 在 LIBERO 仿真基准上验证 |
训练本身真的只是两行参数:
lerobot-train \ --policy.type=act \ --dataset.repo_id=lerobot/aloha_mobile_cabinet成功的标志:训练日志出现逐步下降的 loss,checkpoints/目录里生成 checkpoint 文件。
第一次跑 LeRobot 的常见坑与修复
坑 1:串口打不开,报 Permission denied现象是连接电机时报/dev/ttyACM0无法读写。原因是 Linux 默认不给普通用户 USB 串口权限。解决:sudo chmod 666 /dev/ttyACM0(多总线时把 ttyACM1 等一并放开)。
坑 2:加载数据集时视频解码报错原因是 TorchCodec 解码需要ffmpeg,而很多机器上没装。解决:conda install ffmpeg -c conda-forge;Intel 版 macOS、Linux ARM 等平台会自动回退到 pyav,可以跳过。
坑 3:训练时 CUDA out of memory原因是 VLA 类模型参数量大,batch 一次塞不下。解决:减小 batch size、开梯度累积,或降低输入图像分辨率再重新采数。
进一步资源:文档与源码目录清单
- 安装与平台适配细节:docs/source/installation.mdx
- 各款机器人的组装与配置指南(SO-100 全流程在 docs/source/so100.mdx)
- 硬件抽象层源码:src/lerobot/robots/
- 策略模型实现:src/lerobot/policies/
- 数据集读写与统计工具:src/lerobot/datasets/
- 可运行的场景示例(遥操作、训练、回放):examples/
- 第三方机器人插件机制:装
lerobot_robot_<名称>前缀的包即可被 CLI 自动发现,详见 docs/source/third_party_robots.mdx
🔧 LeRobot 把机器人学习最碎的三块——硬件、数据、策略——收进了一个 PyTorch 框架里。下一步就动手:把examples/里的 SO-100 流程跑一遍,遇到硬件或参数问题,直接在仓库提 Issue 找维护者确认。
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考