4步跑通LeRobot:从录制数据到真机部署机器人策略
【免费下载链接】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 机械臂到人形机器人 Reachy2 都有现成接口。
LeRobot 是什么 & 适合谁
一句话定位:一套硬件无关的 Python 接口 + 标准数据集格式 + 一批可直接训练的现成策略模型。
- 适合:有机器人(哪怕是 SO100 这种低成本机械臂)、想跑模仿学习或 VLA 模型的工程师
- 不适合:只想要单个模型代码的研究者(它更像全流程工具箱,不是模型库)、需要 ROS 2 实时控制的工业产线场景(可用社区插件桥接,但非原生路径)
能力速览
| 维度 | 覆盖范围 |
|---|---|
| 机器人硬件 | SO100、LeKiwi、Koch、HopeJR、OMX、EarthRover、Reachy2、OpenARM、Unitree G1、reBot B601 |
| 遥操设备 | 游戏手柄、键盘、手机、双臂 leader 臂、VR 手柄 |
| 策略类型 | 模仿学习(ACT、Diffusion、VQ-BeT)、强化学习(TDMPC、HIL-SERL)、VLA(Pi0、GR00T N1.7、SmolVLA、XVLA) |
| 数据格式 | LeRobotDataset v3:Parquet 存状态/动作 + MP4 存多路相机视频 |
| 仿真评测 | LIBERO、MetaWorld、RoboCasa、RoboMME 等标准 benchmark |
把环境搭好
LeRobot 0.6.x 要求 Python ≥3.12,这是和旧教程最容易冲突的地方。用 conda 建环境:
conda create -y -n lerobot python=3.12 conda activate lerobot pip install 'lerobot[training]'[training]这个 extra 会带上数据集读取、accelerate 和 wandb,是"录数据 + 训练"最常用的组合;如果只接真机不加训练,装[core_scripts]即可。装完跑lerobot-info能正常打印版本,就算通了。
工作流:数据 → 训练 → 部署
录一份自己的数据
把机械臂接上,用主臂遥操从臂执行任务,lerobot-record会把每路相机编码成 MP4、关节状态写进 Parquet,按 episode 切分后推送到 Hugging Face Hub:
lerobot-record \ --robot.type=so101_follower \ --robot.port=/dev/ttyACM0 \ --teleop.type=so101_leader \ --dataset.repo_id=your_name/my-first-dataset \ --dataset.num_episodes=5 \ --dataset.single_task="Grab the black cube"产出是一个 v3 格式数据集:meta/info.json描述 schema,data/下是帧级 Parquet,videos/下是按相机分片的 MP4。没有真机也没关系,Hub 上有上千个公开数据集(比如lerobot/aloha_mobile_cabinet)可以直接拿来训练。
训练策略
训练就是跑一条lerobot-train命令,策略类型和数据集都走参数,不用写训练脚本:
lerobot-train \ --policy.type=act \ --dataset.repo_id=lerobot/aloha_mobile_cabinet产出是 Hub 上的模型 checkpoint(本地runs/下同步保存),里面除了权重还带归一化统计量和 processor 配置,部署时整套加载。所有策略的实现在 src/lerobot/policies/ 下,想换 Diffusion 或 Pi0 只需改--policy.type。
部署到真机或仿真
真机部署用lerobot-rollout,一个命令完成"加载策略 → 接机器人 → 跑 N 秒",base策略只做推理不录数据,适合先验证:
lerobot-rollout \ --strategy.type=base \ --policy.path=your_name/my-policy \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --task="Put lego brick into the box" \ --duration=60没有真机就用lerobot-eval在 LIBERO 这类仿真 benchmark 上跑成功率。产出是策略在目标环境里的实际表现数据——这才是判断模型能不能用的标准,训练 loss 只算参考。
踩坑实录
ImportError或视频解码报错(torchcodec/pyav 相关)大概率是系统缺ffmpeg。LeRobot 默认用 TorchCodec 解码 MP4,它依赖 ffmpeg。 解法:conda install ffmpeg -c conda-forge。如果你的平台(Intel Mac、Linux ARM)没有 TorchCodec wheel,框架会自动回退 pyav,不用装 ffmpeg。
装包报Requires-Python >=3.12或依赖解析冲突大概率是你用 3.10/3.11 的旧环境。旧教程里"python=3.10"的写法已经过时。 解法:重建环境到 3.12,别往旧环境里硬塞。
lerobot-train: command not found或装完发现功能缺了一半大概率是只装了裸包。基础lerobot故意只含核心 ML 依赖,数据集、硬件、训练能力都在 extras 里。 解法:按工作流补装,pip install 'lerobot[core_scripts,training]'。
连不上机器人端口(/dev/ttyACM0打不开或权限拒绝)大概率是串口权限没给。 解法:把当前用户加进 dialout 组(Linux)后重新登录,或先确认ls /dev/ttyACM*端口名没变。
训练时 CUDA out of memoryVLA 类策略(Pi0、GR00T)显存吃得很凶,ACT 这类小模型反而没这个问题。 解法:降--policy.batch_size并配合梯度累积,或确认你装的是带 CUDA 的 torch wheel(Linux 上 pip 默认装的是 cu130,老驱动需要指定 cu128)。
延伸
官方 Discord 社区响应较快,Hugging Face Hub 的 lerobot 空间沉淀了大量公开数据集和训练好的策略。策略代码看 src/lerobot/policies/,机器人硬件抽象层在 src/lerobot/robots/。
下一步
打开 docs/source/cheat-sheet.mdx,先照抄第一条 ACT 训练命令把lerobot/aloha_mobile_cabinet跑通,确认 checkpoint 能上传;再拿你的机械臂跑一次lerobot-record,采 5 个 episode 试试完整闭环。
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考