LeRobot教程:5分钟跑通你的第一个机器人策略
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
想让你的机械臂抓起杯子,最头疼的往往不是算法,而是接线:串口驱动、相机索引、数据集整理、训练脚本,每一步都可能踩坑。LeRobot 是一个基于 PyTorch 的开源机器人学习框架,把"录制演示数据 → 训练策略 → 在真机上跑起来"串成几条命令,让你一个下午就能跑通第一个策略。
为什么是 LeRobot:和从零自己搭相比差在哪
你可能听说过 ACT、pi0、GR00T 这些算法,但自己实现一遍,得先写数据格式,再写训练循环,还要自己接硬件。LeRobot 的不同在于三点:
- 全流程是一条命令:录制用
lerobot-record,训练用lerobot-train,仿真评估用lerobot-eval,不需要自己写主入口。所有命令的完整示例都在命令速查表里。 - 数据集格式统一:LeRobotDataset v3 把相机画面存成 MP4、状态和动作存成 Parquet,Hub 上已有上千个开源数据集,一行代码直接加载。
- 同一套代码通仿真和真机:同一个策略,既能拿自己录的数据训练,也能直接在 LIBERO、MetaWorld 等仿真基准上验证。
从零到第一个可用结果:LeRobot 安装与验证
环境要求只有一个硬门槛:Python 3.12 及以上。
pip install lerobot lerobot-info能打印出版本号和环境信息,就说明装好了。基础包刻意做得轻量,训练、数据集工具等依赖通过 extras 按需安装,具体组合看安装文档。
没有机器人也没关系。官方的数据集库里有很多现成数据集,比如lerobot/aloha_mobile_cabinet,把名字当参数传进训练脚本就能开跑。给你的第一条路线:
- 先用 ACT 这种小策略跑通
lerobot-train,确认训练流程没问题 - 接上自己的硬件,用遥操作录数据
- 用自己的数据集微调模型
LeRobot 核心能力逐个看
统一机器人接口:一个类控制所有硬件
SO-100 小机械臂、Unitree G1 人形机器人、Koch 平台,在 LeRobot 里都是同一个Robot接口,你的代码只需要调三类方法:connect()建立连接、get_observation()读传感器和相机、send_action(action)下发动作。硬件差异被封装在接口之下,换平台时训练和部署代码基本不用改。
| 硬件类别 | 代表机型 | 典型用途 |
|---|---|---|
| 低成本机械臂 | SO-100 / SO-101 | 桌面操作任务学习 |
| 轮式操作平台 | LeKiwi、HopeJR、Koch | 移动操作与数据采集 |
| 人形 / 全尺寸 | Unitree G1、Reachy2 | 全身控制实验 |
| 遥操作设备 | SO-101 主臂、键盘、手柄、手机 | 录制演示数据 |
清单里没有你的设备?社区维护着插件机制,包名以lerobot_robot_开头的包会被自动发现,装完就能在命令里直接使用,接入方式参考硬件集成指南。
LeRobotDataset v3:机器人数据的一种标准格式
这是 LeRobot 最容易被低估的部分。别的框架数据各存各的私有格式,这里统一成三样东西:
| 数据 | 存储格式 | 特点 |
|---|---|---|
| 多路相机画面 | MP4 视频(按相机分片) | 同一 episode 的帧拼进同一个文件 |
| 状态、动作、时间戳 | Parquet | 低维高频信号,内存映射快速加载 |
| episode 索引、任务描述 | 元数据文件 | 按元数据定位,不再靠文件名 |
代码里就是LeRobotDataset("lerobot/aloha_mobile_cabinet")一行,视频解码、帧对齐全由框架处理。数据量大了还有StreamingLeRobotDataset,不下载直接从 Hub 流式读取。删 episode、拆分、合并数据集这些脏活也有现成工具,格式细节见数据集文档。
现成策略库:从 ACT 到 VLA
policies 源码目录用纯 PyTorch 实现了主流算法,按用途分四类:
- 模仿学习:ACT、Diffusion、VQ-BeT
- VLA 视觉-语言-动作模型:Pi0、Pi0.5、GR00T N1.7、SmolVLA
- 强化学习:TDMPC、HIL-SERL
- 世界模型与奖励模型:VLA-JEPA、SARM、TOPReward
近两年最热门的是 VLA 系列:用预训练的视觉-语言模型抽特征,融合机器人本体状态,再迭代生成动作序列。结构长这样:
每个策略都有单独文档(如 ACT、Pi0),显存需求和预期训练时长汇总在硬件指南。
lerobot-eval:先仿真后真机,部署前先验证
策略好不好,先在仿真基准上跑几集看看,命令长这样:
lerobot-eval \ --policy.path=lerobot/pi0_libero_finetuned \ --env.type=libero \ --env.task=libero_object \ --eval.n_episodes=10| 基准 | 环境类型 | 适合验证什么 |
|---|---|---|
| LIBERO | 厨房操作 | VLA 策略的操作成功率 |
| MetaWorld | 通用操作 | 模仿学习策略横向对比 |
| RoboCasa / RoboMME | 家居、长程任务 | 复杂场景与多阶段任务 |
环境接入方式可以参考 LIBERO 基准文档。
实战场景:用 SO-101 录数据、训策略、上真机
新手最常见的配置:一对 SO-101 机械臂,主臂遥操作、从臂执行。
输入:两个串口(如/dev/ttyACM0、/dev/ttyACM1)、两台 USB 相机、一个 Hugging Face 账号(数据集会传到 Hub)。先跑一次lerobot-calibrate完成标定,记住用的id后面所有命令都要保持一致。
配置:第一步录数据,边动主臂边按下表参数执行:
lerobot-record \ --robot.type=so101_follower \ --robot.port=/dev/ttyACM0 \ --robot.cameras="{ top: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30} }" \ --teleop.type=so101_leader \ --teleop.port=/dev/ttyACM1 \ --dataset.repo_id=${HF_USER}/so101_demo \ --dataset.num_episodes=30 \ --dataset.single_task="put the red brick in a bowl"录制过程中按右方向键保存当前 episode,左方向键删除重录,ESC 结束并上传。第二步训练:
lerobot-train \ --dataset.repo_id=${HF_USER}/so101_demo \ --policy.type=act \ --policy.device=cuda \ --steps=20000ACT 是小模型,单张消费级显卡几个小时能跑完;没有 GPU 就加--job.target=a10g-small放到远端算。
结果:训练完的模型用lerobot-rollout --policy.path=${HF_USER}/my_policy --robot.type=so101_follower --task="put the red brick in a bowl" --duration=60在从臂上跑起来。注意:这里的相机配置必须和录制时一字不差,模型读到的输入才会对得上。
这条流程的每个参数都能查到详细解释,推荐直接跟 SO-101 教程 走一遍。
避坑对照:5 个常见问题与解法
| 现象 | 原因 | 解法 |
|---|---|---|
| 连不上机器人,串口找不到 | USB 驱动没装,或端口指错 | 跑lerobot-find-port确认端口,再用--robot.port指定 |
| 相机打不开或画面不对 | 相机索引发生变化 | 跑lerobot-find-cameras确认真实索引 |
| 训练时视频解码报错 | ffmpeg 缺失或版本不匹配 | conda install ffmpeg -c conda-forge,详见安装文档 |
| rollout 行为异常或直接崩溃 | 运行时相机配置与录制时不一致 | 核对--robot.cameras与录制命令完全相同 |
| 本地卡上训练太慢 | 模型大、显存不够 | 换 SmolVLA 等小模型微调,或参考多 GPU 训练指南 |
把机器人学习从硬件工程题变成命令行题的,就是 LeRobot:数据有统一格式,策略开箱即用,离真机部署只差几条命令。建议从官方文档的教程部分开始,社区讨论和贡献入口见 README。
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考