LeRobot 手把手完整指南:机器人学习框架从安装到真机控制
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
你把杯子放在桌上,说了一句"抓起来"——机械臂真的动了,夹爪张开,稳稳夹住。想让这句话从演示视频变成你自己能复现的项目,靠的就是 LeRobot:一个基于 PyTorch 的机器人学习框架,把数据、算法和真机三件事都替你串好了。
LeRobot 是什么:一句话说清定位
LeRobot 是 Hugging Face 团队维护的开源机器人学习框架(当前版本 0.6.2),覆盖从遥操作采集数据、训练策略模型到部署上真机的完整流程。对新手来说,它给你三样东西:
- 统一的硬件接口:所有机器人都实现同一个
Robot抽象类,代码里只有connect()/get_observation()/send_action()三个动作。它就像机器人界的 USB-C 接口——换插头不换线,今天接 SO100 桌面臂,明天接 Unitree G1 人形,算法代码不用改。 - 标准化的数据格式:LeRobotDataset V3 用 Parquet 存状态和动作、MP4 存视频,Hugging Face Hub 上有大量开箱即用的公开数据集,一行代码加载。
- 现成的 SoTA 算法:模仿学习(ACT、Diffusion)、强化学习(TDMPC)、视觉-语言-动作模型(Pi0、GR00T N1.7、SmolVLA)都是纯 PyTorch 实现,训练完可以直接下发到真机。
5 分钟上手:最快安装与第一段传感器数据
安装很简单,两条命令:装包,然后确认环境正常。
pip install lerobot lerobot-infolerobot-info会打印你的 GPU、Python 版本等环境信息,跑通了说明基础环境没问题。如果想翻源码,仓库可以git clone https://gitcode.com/GitHub_Trending/le/lerobot拉下来看。
接下来拿到你的第一份传感器数据。下面这段就是 LeRobot 最核心的用法——连上机器人,读一帧观测:
from lerobot.robots.myrobot import MyRobot robot = MyRobot(config=...) robot.connect() obs = robot.get_observation() print(obs)把MyRobot换成你手上的具体机型即可(比如 SO100/SO101 的 follower,具体型号见 src/lerobot/robots/ 目录)。obs是一个字典:键是特征名(如observation.images.top、各关节角度),值是图片张量和数值。拿到它,你就跨过了机器人开发里最劝退的一步——硬件通信。
有了数据,训练一条策略也是一行命令的事(以 ACT 为例,数据集用官方公开的厨房柜门任务):
lerobot-train \ --policy.type=act \ --dataset.repo_id=lerobot/aloha_mobile_cabinet它是怎么干活的:数据、策略、硬件三个齿轮
LeRobot 的仓库看着大,但从你的视角只有三个齿轮在转,每个都很好类比:
数据齿轮(src/lerobot/datasets/)。一个数据集 = 同步的 MP4 视频 + 对应的 Parquet 表格。可以想象成"带 Excel 日志的监控录像":视频是"看到了什么",Parquet 是"那一帧机器人手臂在哪个位置、下一帧要往哪动",两者时间戳严格对齐。训练时它支持流式加载,视频按需解码,不会把几百 GB 的数据一次性塞进内存。
策略齿轮(src/lerobot/policies/)。每个算法是一个独立子包(act/、diffusion/、pi0/、groot/……),通过工厂函数按名字实例化。这相当于"可换装的发动机":训练循环、数据加载、日志记录都是同一套底盘,你只换模型本体。中间还有一条处理器流水线(src/lerobot/processor/)负责把原始观测做标准化、把模型输出转回机器人能执行的动作——就像数据进出引擎前的"变速箱"。
硬件齿轮(src/lerobot/robots/)。所有真机、遥操作器都遵守同一套接口,所以"采集→训练→部署"这条链路对任何机器人都成立。想接自己的机器人?实现Robot抽象类的几个方法即可,社区第三方插件(UR5e、Franka、Piper 等)也是这么接进来的。
该选哪个算法:按任务场景决策
第一次接触的人最容易在 ACT、Diffusion、GR00T、Pi0 之间迷路。别背参数,按场景选:
| 你的任务场景 | 优先选 | 一句话理由 |
|---|---|---|
| 桌面臂 + 自己遥操作录的演示,想先跑通全流程 | ACT | 默认起步项,稳定、算力要求适中 |
| 演示数据动作多样(同一任务多种抓法) | Diffusion | 扩散模型天然适合多模态动作分布 |
| 要听懂中英文指令、在真机上做泛化操作 | GR00T N1.7 / Pi0 / Pi0.5 | VLA(视觉-语言-动作)模型,指令进、动作出 |
| VLA 太慢,想快速推理 | Pi0Fast 或 SmolVLA | 分别为 Pi0 的加速版和小体量 VLA |
VLA 类模型的思路是:用预训练的视觉语言模型看画面、读指令,再通过 DiT(Diffusion Transformer,一种用扩散过程逐步"画"出动作序列的 Transformer 结构)把语言里的意图翻译成关节动作。各算法的详细 README 和显存需求都在文档目录里,选之前先对一下你的显卡。
真机落地清单:从仿真到真机的 5 步与对策
别跳过这一步直接上真机,按顺序走一遍能省掉大部分半夜调试:
- 找端口:跑
lerobot-find-port,按提示拔掉再插上 USB,脚本会告诉你机器人挂在哪个/dev/tty*上。坑:端口号每次插拔可能变,别硬编码。 - 找相机:跑
lerobot-find-cameras,它会打印相机信息并把测试帧存到lerobot/outputs/captured_images,顺手验证画面方向是否正常。 - 校准:
lerobot-calibrate一次性完成(关节先大致摆到中间位置)。注意--robot.id这个名字后续所有命令都要保持一致,它是找校准文件的"钥匙",写错一个字母就白校准。 - 先仿真:用
lerobot-eval --env.type=libero ...在 LIBERO、MetaWorld 等仿真环境里先评估策略。仿真里不行的东西,真机上不会更好。 - 上真机:三个高频问题各有对策——
- 传感器差异:仿真相机是"完美"的,真机会抖、会偏色。对策:采集数据时把相机架固定死,训练数据里包含光照变化,别只录"黄金环境"。
- 延迟:真机推理 + 通信会引入延迟,动作"慢半拍"。对策:框架内置异步推理(
src/lerobot/async_inference/,模型服务端算、机器人端执行解耦)和 RTC(实时动作校正)这类机制,专门用来补偿控制回路延迟。 - 安全:上机前确认关节限位校准过,先空载小范围试跑,桌上别放贵重物品。
常见问题速查:5 个高频问题
机器人连不上,报连接超时?
90% 是端口或驱动问题:先用lerobot-find-port确认真实端口,再检查系统是否装了串口相关依赖。
校准做了但动作总是"差一截"?
检查--robot.id在lerobot-calibrate、lerobot-record、lerobot-teleoperate里是否完全一致——校准文件按这个 id 存取,对不上就会用到旧标定或没标定。
真机上动作感觉滞后?
正常现象,推理本身需要几十到几百毫秒。优先启用异步推理(src/lerobot/async_inference/)或带 RTC 的策略(如 pi0_fast、smolvla),把"计算"和"执行"解耦。
训练损失不降或剧烈震荡?
先检查数据分布(episode 是否混入了乱动片段),再调学习率。训练命令支持--wandb.enable=true接上日志面板盯着曲线看,别盲跑几小时。
我的显卡跑得动哪个模型?
去翻仓库根目录 README 的模型分类表和文档目录 docs/source/ 下的硬件指南,每个策略都标了显存与训练时长预期;不确定就从小模型(SmolVLA、ACT)起步。
接下来怎么走:学习路径与社区入口
建议的路线:先读一遍命令速查表 docs/source/cheat-sheet.mdx(把 find-port、calibrate、record、train 几条命令抄熟),再跟examples/notebooks/quickstart.ipynb走一遍流程,然后给自己定一个小任务:录 30 条演示 → ACT 训练 → 真机回放验证。跑通这条线,再考虑 VLA 微调这类进阶玩法。
想参与贡献,入口很明确:新算法照着src/lerobot/policies/里任意一个子包的模板写;新硬件实现Robot接口;数据集按 V3 格式整理后上传 Hub;文档补充放在docs/source/。Issue 和 PR 都活跃,第一周就可以提一个小的文档修正练手。
机器人学习过去是"大团队 + 大预算"的游戏,现在一台桌面臂加一块消费级显卡就能入门——这就是 LeRobot 这套框架最实在的价值。
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考