LeRobot 机器人学习框架入门指南:3 步从仿真走到真机
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
如果你打算用 PyTorch 做机器人学习,LeRobot 是一个值得放进工具箱的开源机器人学习框架。它把数据集、策略模型和硬件驱动打包在同一套接口里,让你不用为"算法一套代码、硬件另写一套代码"而头疼。本文带你走通安装、能力版图、实战训练和选型判断这几条主线。
换一台机器人,难道要重写一遍控制代码?
先聊聊你可能踩过的坑:手里有两三台不同品牌的机械臂,每台串口协议、关节命名都不一样;采集回来的数据一半是 bag 文件、一半是 CSV,训练时还要逐个写解析脚本;好不容易调好的模仿学习策略,换个平台就得重新对齐观测空间。这些重复劳动,才是真正拖慢你进度的地方。
LeRobot 的思路是把这三件事收进统一的抽象里:Robot类屏蔽硬件差异,LeRobotDataset统一数据格式,Policy类固定输入输出接口。你换设备时只改配置,不动训练代码;换数据集时只改 repo id,不动采样逻辑。对新手来说,这意味着你可以先在一个低成本机械臂上跑通全流程,再平滑迁移到自己的平台。
⚡ 5 分钟装好并验证 LeRobot
环境要求不高:Python 3.12 及以上,PyTorch 2.10 及以上;训练阶段建议有 CUDA GPU,纯 CPU 也能跑通数据加载和推理。系统上 Ubuntu 22.04、macOS 12+ 都可以。
官方推荐用 uv 管理依赖(也可以 conda/venv,见 docs/source/installation.mdx):
git clone https://gitcode.com/GitHub_Trending/le/lerobot cd lerobot uv sync --all-extras python -c "import lerobot; print(lerobot.__version__)"装完后运行lerobot-info,它能打印当前环境、GPU 状态和可用硬件,是排障时的第一站。如果只想快速试用而不改源码,pip install lerobot也可以直接从 PyPI 安装。
🧩 能力版图:数据、算法策略、硬件三条线
数据线。LeRobotDataset V3 格式用 Parquet 存状态与动作、MP4 存图像,天然支持流式加载。删片段、按比例拆分、合并多个数据集都有现成 CLI 工具,入口在 src/lerobot/datasets/。
算法策略线。src/lerobot/policies/ 下实现了 ACT、Diffusion、VQ-BeT 等模仿学习策略,TDMPC、HIL-SERL 等强化学习策略(RL 训练循环在 src/lerobot/rl/),以及 Pi0、SmolVLA、GR00T N1.7 等视觉语言动作(VLA)模型,全部是纯 PyTorch 实现。
硬件线。src/lerobot/robots/ 内置了 SO-100、LeKiwi、Reachy2、OpenArm 等机型驱动;src/lerobot/motors/ 提供 Dynamixel、Feetech 等舵机总线封装;src/lerobot/cameras/ 覆盖 OpenCV、RealSense、ZMQ 视频源。
模块速查表:
| 目录 | 负责什么 | 你什么时候会打开它 |
|---|---|---|
| src/lerobot/datasets/ | 数据集读写、统计量、流式加载 | 采完数据要检查、切分、合并时 |
| src/lerobot/policies/ | 各策略的模型与配置定义 | 换算法、调网络结构超参时 |
| src/lerobot/robots/ | 机器人连接、观测读取、动作下发 | 接入新硬件或排查通信问题时 |
| src/lerobot/processor/ | 观测归一化、动作反变换等流水线 | 输入输出对不上、尺度异常时 |
| src/lerobot/scripts/ | record/train/eval 等 CLI 入口 | 日常命令行操作 |
🤖 以机械臂任务为例:采集 → 训练 → 评估走一遍
以常见的 SO-100 双臂/单臂操作任务为例(参考 examples/so100_to_so100_EE/record.py 这类现成脚本)。
第一步,采集数据。用lerobot-record配上遥操作设备(键盘、手机或主臂都行),把演示存成标准格式。每段轨迹自动带上时间戳对齐的图像帧和关节状态,你不需要自己写落盘逻辑。
第二步,训练策略。训练一条命令就能起,配置全部走命令行参数,例如在 examples/training/train_policy.py 的基础上跑:
lerobot-train \ --policy.type=act \ --dataset.repo_id=<你的数据集repo_id>想自己写训练循环也可以,官方示例把配置类、数据集统计量、delta 时间戳这些关键步骤都写清楚了。
第三步,部署评估。先在真机回放看手感,再用统一评估脚本跑定量指标:
lerobot-eval \ --policy.path=<checkpoint路径> \ --env.type=libero \ --eval.n_episodes=10下面是该框架控制多种机器人硬件的实际演示效果:
算法怎么选不踩坑
选择策略时,先看你的任务类型和数据量,再看算力预算:
| 策略 | 适用任务 | 数据需求 | 说明 |
|---|---|---|---|
| ACT | 复杂多关节操作 | 大量演示 | 模仿学习主力,动作块式生成 |
| Diffusion | 精细轨迹控制 | 大量演示 | 扩散模型,适合平滑长时程动作 |
| TDMPC | 需要在线探索的任务 | 交互数据 | 基于模型 RL,可在线更新 |
| HIL-SERL | 人类在环强化学习 | 少量演示 + 交互 | 演示与 RL 混合,收敛更稳 |
| Pi0 / SmolVLA | 跨任务泛化、VLA | 大规模多模态数据 | 视觉语言动作模型,需较强 GPU |
硬件匹配上给三条经验:
- 机械臂高频控制:优先 ACT 或 Pi0 系列这类低延迟策略,推理耗时直接影响任务成功率。
- 移动机器人/导航:数据量够大时上 Diffusion 或 VLA 类,感知与决策一体。
- 探索性任务:环境交互成本低才选 TDMPC 这类 RL 路线,纯离线数据喂不动。
🛠 高频问题 FAQ
依赖冲突装不上怎么办?
回到干净环境,用uv sync --all-extras重装;若 WSL 用户报 evdev 相关错误,按安装文档单独装一下 evdev。
机器人连不上、串口找不到?
先运行 src/lerobot/scripts/lerobot_find_port.py 列出可用串口,再用舵机配置脚本重连;线缆和波特率是两个最高频的元凶。
训练很慢或显存不够?
减小 batch size、缩短观测窗口(delta 时间戳里的帧数),或换参数量更小的策略;docs/source/hardware_guide.mdx 里列了各策略的 GPU 需求参考。
推理时机器人动作抖动?
检查 src/lerobot/processor/ 里的归一化统计量是否和训练时一致,再看遥操作回放的帧率是否与录制时一致。
📚 学完本文之后去哪?
- 安装与硬件接入细节:docs/source/installation.mdx
- 可运行示例:examples/ 目录,覆盖数据集、遥操作、训练各条线
- 正确性参考:tests/ 下的单测,看核心 API 的标准用法
- 自写策略指南:docs/source/bring_your_own_policies.mdx
- 贡献流程与代码规范:CONTRIBUTING.md
- 各硬件与策略的专题文档:docs/source/ 按机型和算法分篇
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考