LeRobot 实战指南:从零训练并部署你的第一个机器人策略
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
LeRobot 是 Hugging Face 开源的机器人学习框架,它把硬件控制、数据集格式、模型训练和真机评测打包成一套命令行工具链,让你不用自己拼接各种库。本文以低成本的 SO-100 机械臂为例,带你把环境装好、数据采到、策略训出来,最后跑上真机。
三步装好 LeRobot 环境
先说结论:当前版本 0.6.2 要求 Python 3.12,老环境直接用会撞依赖,不如新开一个。
git clone https://gitcode.com/GitHub_Trending/le/lerobot cd lerobot pip install -e ".[core_scripts]" lerobot-info[core_scripts]这一组依赖装好后,录制、回放、校准这些硬件相关命令就都能用了;lerobot-info打出版本信息即安装成功。接下来要训练模型的话再补一句pip install -e ".[training]",接 Feetech 舵机之类的硬件则按.[feetech]这样安装对应附加包,完整说明见安装文档。
提示:视频解码依赖 ffmpeg。Linux 下报缺视频库时,先用
sudo apt install ffmpeg装上再安装。
接上 SO-100:先找端口,再校准
在机械臂第一次动起来之前,两件事缺一不可:找到串口号、完成关节校准。
SO-100 是一款可 3D 打印的开源低成本机械臂,也是 LeRobot 最常见的入门硬件。整个流程是"主臂(leader,你手动操作)+ 从臂(follower,负责执行)"成对出现。接好 USB 后先找端口:
lerobot-find-port lerobot-setup-motors --robot.type=so100 lerobot-calibrate --robot.type=so100第一条命令会提示你反复插拔 USB 线,以此区分哪条/dev/tty路径对应哪只手臂。后两条依次配置电机 ID 和关节角度,校准时手动把机械臂摆到"全开/全关"两个极限位姿。成功的标志:上电后关节不抖、有稳定的初始姿态。不同硬件平台的依赖和接线各有差异,大致如下:
| 硬件 | 类别 | 说明 |
|---|---|---|
| SO100 / SO101 | 低成本机械臂 | Feetech 舵机,3D 打印结构 |
| LeKiwi / HopeJR / EarthRover | 移动平台 | 装对应电机附加包 |
| Reachy2 / Unitree G1 | 人形机器人 | 有独立的安装指引 |
| 手柄 / 键盘 / 手机 | 遥操作输入 | 不想买第二只手臂时的替代方案 |
细节参见 SO-100 硬件文档。
遥操作采数据:模型只会模仿你演示的
结论先行:模仿学习不会"推理",它只是照着你的演示学,所以演示质量直接决定模型上限。
遥操作的含义是:你动主臂,从臂实时跟着动;从臂上的相机录画面,同时把关节角度和你的动作一起写进数据集。LeRobotDataset 是统一的存储格式——画面存成 MP4 视频,关节和动作这类数值存成 Parquet 文件(一种读写查询都快的列式格式),好处是体积可控、加载时不用解压一整个压缩包。
lerobot-record \ --robot.type=so100 \ --teleop.type=so100 \ --dataset.repo_id=yourname/my-first-dataset \ --dataset.num_episodes=10运行时会有画面预览窗口。动作要慢、重复、任务目标一致(比如反复"把瓶子放到杯子上"),每个演示结束按键保存,攒够 10 条左右就能第一次训练。采完务必跑一下lerobot-dataset-viz回放,确认视频和关节曲线对齐,不对齐就别拿去训。
一条命令训练策略:新手选 ACT 就够
LeRobot 内置了一批纯 PyTorch 实现的策略,入门阶段不用被数量吓到,常用的是这几类:
| 类别 | 代表模型 | 一句话理解 |
|---|---|---|
| 模仿学习 | ACT、Diffusion、VQ-BeT | 直接从演示数据学,数据要求最低 |
| VLA(视觉-语言-动作模型:能看图、听懂指令、直接输出动作) | Pi0、Pi0.5、GR00T N1.7、SmolVLA | 可以按语言指令干活 |
| 强化学习 | HIL-SERL、TDMPC | 在环境里试错改进,门槛更高 |
以 GR00T 这类 VLA 为例,图像、语言和动作流在同一套 Transformer 里编码融合,结构如下:
训练只改两个参数即可:
lerobot-train \ --policy.type=act \ --dataset.repo_id=yourname/my-first-datasetloss 平稳下降就算在正常学,检查点会存到outputs/train/下。每个模型一个独立目录,想看实现直接翻策略源码。
真机评测:先回放,再上模型
结论:上真机前先"回放"一次采集的数据,这是排查"数据→动作"链路最便宜的手段。回放让从臂逐帧复现你录下的轨迹,动作歪了就是校准或端口出了问题,先修它,再谈训练。
lerobot-replay --dataset.repo_id=yourname/my-first-dataset lerobot-eval \ --policy.path=outputs/train/<你的run名>/pretrained_model \ --env.type=libero --env.task=libero_object --eval.n_episodes=10第二条是官方示例的仿真评测(LIBERO 是常用的桌面操作基准),在真机上评测则把环境参数换成--robot.type=so100。两个常见现象的对策:动作抖,通常是控制频率和录制帧率不一致,按录制 FPS 对齐控制节拍即可,示例脚本里就是用precise_sleep对齐的;动作偏快或毛刺多,在处理器管线里加一级动作平滑步骤。
卡住时按这张清单自查
- 装不上、依赖打架 → 重开 Python 3.12 环境,别在旧环境里硬凑
- 连不上硬件 → 确认端口找对了;Linux 下串口无权限时把用户加进
dialout组 - 数据没存上或音视频错位 → 先检查 ffmpeg 是否正常
- 训练 loss 不降 → 回看数据回放,多半是演示里混进了无关动作
现在就能做的三件事
- 按第一节把环境装好,用
lerobot-info确认版本 - 打开
examples/so100_to_so100_EE/,通读录制和回放脚本,理解一次数据是怎么落盘的 - 手上没有机械臂?先跑一次
lerobot-train --policy.type=act,用 Hub 上现成的公开数据集走完训练流程
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考