LeRobot 快速上手:5 分钟跑通你的第一条机器人训练命令
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
LeRobot 是 Hugging Face 的开源机器人学习框架,用 PyTorch 把"采数据 → 训练策略 → 控制真机"串成一条流水线。它统一了 SO100、LeKiwi、Unitree G1 等硬件接口,内置 ACT、Diffusion、Pi0、SmolVLA 等策略,解决的是机器人数据散、接口乱、算法难复现的问题。手里有一台低成本机械臂,或者想先在仿真里练手的人,都适合从它开始。
先跑起来:安装与验证只需 4 条命令
系统要求:
- Python ≥ 3.12(pyproject.toml 中
requires-python = ">=3.12"),conda 或 uv 均可,文档默认 conda - PyTorch ≥ 2.10,加速设备按 docs/source/torch_accelerators.mdx 对应选择
- 训练策略需要 GPU;只做数据集加载或 CPU 推理没有硬性要求
- 接真机时 Linux/macOS 各自有额外依赖(WSL 需要
evdev),文档 docs/source/installation.mdx 有分平台说明
git clone https://gitcode.com/GitHub_Trending/le/lerobot cd lerobot conda create -y -n lerobot python=3.12 conda activate lerobot pip install lerobot安装卡住时先看这里:docs/source/installation.mdx 有 conda / uv / pip 三条路径的完整步骤,WSL 和 Windows 的坑都写在里面。
装完跑一条命令验证环境:
lerobot-info它会打印 PyTorch 版本、可用设备和包版本。卡住时先看这里:如果找不到命令,说明环境没激活,conda activate lerobot再试。
内部怎么组织:一张表看懂 5 个核心目录
| 目录 | 管什么 | 你什么时候会用到 |
|---|---|---|
src/lerobot/policies/ | 策略实现:ACT、Diffusion、Pi0、SmolVLA 等 20 个模型 | 训练时用--policy.type=选策略,微调改这里 |
src/lerobot/datasets/ | LeRobotDataset 的读写、统计、切分工具 | 采集、加载、清洗数据集 |
src/lerobot/robots/ | 13 类机器人驱动(SO100、LeKiwi、Unitree G1…) | 接真机时用--robot.type=选驱动 |
src/lerobot/scripts/ | 20 个 CLI 入口(lerobot-train、lerobot-eval等) | 日常训练评估全靠这些命令 |
examples/ | 可运行脚本:数据集、训练、推理、遥操作 | 抄作业的第一站 |
最值得展开的是src/lerobot/processor/:它负责把原始观测标准化进模型、把模型输出还原成机器人动作。每个策略目录里都配了处理器,比如 ACT 的 processor_act.py。写推理代码时必须显式调用make_pre_post_processors拿到前后处理两步,漏掉任何一步,动作数值就不在训练分布内,机械臂会乱抖。
LeRobot 数据集实战:加载第一个社区数据集
下面这段代码取自 examples/dataset/load_lerobot_dataset.py,作用是从 Hub 上加载lerobot/aloha_mobile_cabinet数据集,先只看元数据再真正取帧——输入只需要一个 repo_id 字符串,输出是 PyTorch tensor(图像为 channel-first 的 c、h、w):
from lerobot.datasets import LeRobotDatasetMetadata ds_meta = LeRobotDatasetMetadata("lerobot/aloha_mobile_cabinet") print(ds_meta.total_episodes, ds_meta.fps, ds_meta.robot_type) dataset = LeRobotDataset("lerobot/aloha_mobile_cabinet", episodes=[0, 1]) print(dataset[0]["observation.state"].shape) # torch.Size([state_dim])运行前先conda activate lerobot。这个例子还演示了delta_timestamps用法:一次性取过去 4 帧图像加未来 64 步动作,这正是 ACT 这类动作分块策略训练时需要的输入形态。
策略怎么挑、参数怎么调
| 策略 | 适合场景 | 代价 |
|---|---|---|
| ACT | 低成本双臂精细操作 | 演示数据越多越好,但单卡可训、启动最快 |
| Diffusion | 2D 推块类任务(如 Pusht) | 推理步数越多越慢,num_inference_steps要自己权衡 |
| SmolVLA | 要语言指令的轻量 VLA | 比传统策略吃显存,但仍是单卡友好档 |
| Pi0 | 视觉+语言的完整 VLA 任务 | 模型最大,推理最重,微调成本高 |
三条调优建议:
- 演示数据少时先上 ACT,在 configuration_act.py 里调
dim_model和chunk_size,小模型更容易收敛 - 训练不收敛先看学习率衰减,实现都在 src/lerobot/optim/ 的
schedulers.py和factory.py,换调度器不用改训练代码 - 显存紧张就把
--batch_size降到 2、先用--dataset.episodes="[0]"跑单 episode 验证流程——这正是 Makefile 里 E2E 测试的跑法
常见坑 FAQ:4 个高频问题
1. 找不到串口设备症状:连接机器人时报FileNotFoundError。 原因:端口号是动态分配的,写死在配置里会失效。 解决:lerobot-find-port打印当前所有候选设备,把输出填进port参数。
2. 训练直接 OOM症状:GPU 显存爆掉,训练第一步就挂。 原因:默认 batch 对大策略(如 VLA 类)偏大。 解决:
lerobot-train --policy.type=smolvla \ --batch_size=2 \ --dataset.episodes="[0]" \ --steps=4 --wandb.enable=false参数参照 Makefile 的test-smolvla-ete-train,先跑通再放大。
3. 推理时机械臂乱动症状:模型加载正常,动作却完全不对。 原因:相机的键名或分辨率和训练时不一致,或者漏了后处理。 解决:打开模型卡上的info.json核对camera_keys,键名、宽高、fps 必须逐项对上,再确认postprocess有被调用。
4. 不确定数据集长什么样症状:拿到一个 repo_id 不知道能不能用。 原因:没先看元数据就直接加载全量数据,慢且占空间。 解决:先实例化LeRobotDatasetMetadata,它只下载几 MB 的元数据文件,fps、robot_type、features 一目了然。
继续往下走
- docs/source/:官方文档目录,
installation.mdx、cheat-sheet.mdx、hardware_guide.mdx是三块最常用的砖 - examples/:脚本库,训练入口看
examples/training/train_policy.py,硬件部署看各机器人名下目录 - tests/:pytest 用例就是"功能正确用法"的活文档,比如
tests/policies/下各策略的用法测试 - CONTRIBUTING.md:贡献指南,想提 PR 或修 bug 之前先读它,里面规定了文档字符串和测试的写法要求
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考