LeRobot 机器人学习框架实战:从数据采集到真实机器人部署的完整路径
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
LeRobot 是一个基于 PyTorch 的开源机器人学习框架,覆盖"数据采集—训练—真机部署"的端到端流程,为研究者、算法工程师和硬件爱好者提供标准化数据集、预训练策略与统一硬件接口。
它解决什么问题
机器人学习领域最大的痛点是碎片化:各团队的数据格式互不兼容,各家机器人的控制协议各不相同,每换一种硬件或算法都要重写一遍训练管线。这就像不同国家用不同的插座标准,每次换设备都得重新换插头。
LeRobot 做的事情就是把"插头"标准化:数据集统一为 Parquet + MP4 的 V3 格式,各家硬件抽象成同一套 Robot 接口,主流算法用纯 PyTorch 实现。从录制演示数据到训练、评估策略,用同一套命令即可完成——把机器人学习从"每个项目手工搭建"变成可复用的标准流程。
快速上手:10 分钟跑通第一条数据
环境要求:Python 3.12+ 与 PyTorch 2.7+,Linux/macOS 上需要 ffmpeg 用于视频解码。基础安装只需一条命令:
pip install lerobot lerobot-info # 验证安装是否成功没有硬件时,加载一个公开数据集并查看样本结构是最快的"hello world":
dataset = LeRobotDataset("lerobot/aloha_mobile_cabinet") sample = dataset[0] print(sample["action"].shape) # (horizon, 7) print(sample["observation.images.top"].shape) # (3, H, W)跑通标志:能打印出动作向量形状(7 维,对应双手各 3 自由度 + 夹爪)和观测图像张量,说明安装与数据读取链路已通。
核心能力拆解
1. 硬件接入:统一的 Robot 接口
在 src/lerobot/robots/ 中,每种机器人都被包装成同一套接口:connect()连接、get_observation()读传感数据、send_action()下发控制。原生支持 SO100/SO101、LeKiwi、Koch、HopeJR、OMX、EarthRover、Reachy2、OpenARM、Unitree G1、reBot B601 等,遥操作设备包括主从臂、手柄、键盘与手机。第三方硬件(Franka、UR5e、Piper 等)以插件包形式提供,安装后自动注册,可直接从 CLI 调用。
| 能力 | 说明 |
|---|---|
| 机器人控制 | 统一的观测/动作读写,与具体硬件解耦 |
| 遥操作 | 主从臂、手柄、键盘、手机等多种设备 |
| 周边工具 | 端口检测、相机检测、电机校准、数据回放等 CLI 工具 |
2. 数据管理:LeRobotDataset V3 格式
数据是机器人学习的地基。LeRobot 的定义是:状态、动作、时间戳等结构化数据存 Parquet,相机流存 MP4 视频(或图像),二者按时间戳同步;深度流则量化为独立视频。数据集托管在 Hub 上,本地以流式方式加载,无需先全量下载。配套工具支持删除片段、按索引切分、合并多个数据集、增删特征。
| 内容 | 存储格式 |
|---|---|
| 状态 / 动作 / 时间戳 | Parquet |
| 相机流 | MP4(或图像序列) |
| 深度流 | 独立的 12-bit 量化视频 |
| 共享 | Hub 公开数据集,可直接按名称加载 |
3. 算法策略:主流算法的 PyTorch 实现
src/lerobot/policies/ 下的策略按模块组织,覆盖四类:模仿学习(ACT、Diffusion、VQ-BeT、Multitask DiT)、强化学习(HIL-SERL、TDMPC)、VLA 视觉-语言-动作模型(Pi0、Pi0.5、GR00T N1.7、SmolVLA、EO-1、MolmoAct2、EVO1 等),以及世界模型与奖励模型(VLA-JEPA、SARM、TOPReward、Robometer 等)。每个策略都有独立的说明文档,方便查训练参数与预期表现。
| 类别 | 代表模型 | 适用情况 |
|---|---|---|
| 模仿学习 | ACT、Diffusion | 演示数据充足的操作任务 |
| VLA | Pi0、GR00T N1.7、SmolVLA | 需要理解语言指令的任务 |
| 强化学习 | HIL-SERL、TDMPC | 从在线交互中持续提升 |
| 奖励模型 | SARM、TOPReward、Robometer | 判断动作成功与否、支撑 RL |
4. 训练与评估:一条命令链贯穿全程
录制、训练、推理、评估走同一套 CLI:lerobot-record遥操作采集数据并自动上传,lerobot-train训练策略,lerobot-rollout在真机上执行推理,lerobot-eval在 LIBERO、MetaWorld、RoboCasa 等仿真基准上评估。训练示例:
lerobot-train \ --policy.type=act \ --dataset.repo_id=lerobot/aloha_mobile_cabinet多 GPU 训练开箱可用:默认 DDP 数据并行,大模型用--parallelism.dp_shard切到 FSDP 分片,混合场景可配 HSDP。另外,原始观测到模型输入之间的预处理(归一化、重命名、设备迁移、增量动作转换)被标准化为 src/lerobot/processor/ 中的可插拔处理链,换策略只需换配置,不用改模型代码。
实战场景:谁在什么情况下用它
学术研究:复现或对比模仿学习算法时,直接取公开数据集加内置策略,训练后在同一仿真基准上评估。训练与评估口径一致,论文工作可以聚焦方法本身,而不是管线搭建。
低成本硬件原型验证:SO100/SO101 这类百元级机械臂能完整走通"遥操作 30 段 → 录制 → 训练 → 推理"的闭环,是验证想法或打黑客松最常用的配置。lerobot-calibrate、lerobot-find-port等工具能自动化大部分装配后的配置工作。
从仿真到真机的过渡:先在 LIBERO、MetaWorld 等环境里训练与迭代,再用真机数据微调、lerobot-rollout部署;每次改动算法后跑一遍lerobot-eval回归评估,把仿真到真机的差距量化出来。
进阶与排障
性能调优要点:
- 多 GPU 训练时,有效 batch size 等于
batch_size × GPU 数 × 梯度累积步数,框架不会自动缩放学习率,需手动调整。 - 视频解码在支持 TorchCodec 的平台上自动启用,缺失对应 wheel 时回退到 PyAV,无需手工切换。
- 中断的训练用
--config_path指向 checkpoint 并加--resume=true即可续训。 - 显存吃紧时,缩小 batch 并启用梯度累积,或对大模型启用 FSDP 分片。
- 预处理阶段可配置批处理模式,并借助管线计时工具定位耗时环节。
常见问题速查:
| 症状 | 可能原因 | 解法 |
|---|---|---|
| 机器人连不上、找不到串口 | 端口配置错误 | lerobot-find-port交互识别正确端口 |
| 相机无输出 | 索引错误或缺少权限 | lerobot-find-cameras核对索引与帧输出 |
| 关节动作漂移 | 校准缺失或已过期 | 关节回中后重跑lerobot-calibrate |
| 训练显存溢出 | 模型或 batch 过大 | 缩 batch + 梯度累积,或 FSDP 分片 |
| 真机推理与训练表现不一致 | 观测配置与录制时不一致 | 相机配置与数据集保持一致,检查归一化处理链 |
生态与参与
参与方式:
- 按 src/lerobot/policies/ 与 robots 目录中的模板实现新策略或硬件驱动,提交 Pull Request;
- 用 V3 格式录制数据集并上传 Hub,供社区复用;
- 完善 docs/source/ 下的文档与教程,或对 CLI 行为提 issue。
演进方向上,VLA 与世界模型是策略库中更新最活跃的部分;插件化机制让第三方硬件无需改动主仓库即可接入;RL 与奖励模型方向(HIL-SERL、Robometer 等)正在把"采集—奖励评估—迭代"推向闭环。
LeRobot 的价值不在某一个单点算法,而在于让机器人学习的全链路变得可复现:当数据格式、训练管线与硬件接口都被标准化之后,研究者要做的,只是替换一个策略或一台机器人。
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考