2. LeRobot生态概览
LeRobot 是 Hugging Face 发起的开源机器人学习项目,目标是把“数据集、模型、仿真环境、真实硬件、训练与部署工具”整合到同一套 Python 生态中。它并不是一个单独的算法库,而更像一个围绕“机器人策略学习”构建的协作平台:研究者可以复用社区上传的数据集与预训练策略,工程师可以把同一套策略迁移到 SO-100、SO-101、Koch、ALOHA 等低成本硬件上,开发者则可以通过统一接口接入新的机械臂、相机与遥操作设备。理解 LeRobot 的生态结构,是后续实机部署与闭环迭代的前提。
项目背景:为什么需要 LeRobot
传统机器人学习项目往往面临三个割裂:数据格式不统一、硬件接口不统一、模型与部署流程不统一。一个团队采集的示教数据很难直接被另一个团队训练使用;同一份策略从仿真迁移到真机时,常因关节顺序、单位、相机分辨率、控制频率不同而失败。LeRobot 的核心思路是用“标准化”降低重复劳动:
- 数据标准化:采用 LeRobotDataset 格式,统一存储观测、动作、时间戳与任务描述,便于上传到 Hugging Face Hub 并直接加载。
- 硬件抽象:通过 Robot 与 Teleoperator 抽象类,把不同机械臂的底层串口、CAN、网络通信封装成统一 API。
- 策略复用:ACT、Diffusion Policy、TDMPC、VQ-BeT 等策略以统一训练与推理接口提供,支持从预训练权重微调。
- 闭环迭代:支持“采集—训练—评估—再采集”的循环,使实机表现可以通过数据回流持续改进。
核心定位:LeRobot 不是替代 ROS 的底层框架,而是位于 ROS/驱动之上的“学习与部署层”。它关心的是如何把示教数据变成策略,再把策略稳定地跑在真实机器人上。
核心组件与软件栈
从软件栈角度看,LeRobot 可以分成五层:硬件层、设备抽象层、数据层、策略层与部署层。下图展示了各层之间的依赖关系与典型对象,便于建立整体认知。
在代码层面,LeRobot 的典型使用路径如下:先安装依赖,再配置硬件,然后采集数据、训练策略、评估并部署。
# 安装 LeRobot
pip install lerobot
# 查看可用硬件与命令
lerobot-info
# 采集示教数据(以 SO-101 为例)
lerobot-record \
--robot.type=so101_follower \
--teleop.type=so101_leader \
--dataset.repo_id=your_name/so101_pick_place \
--dataset.num_episodes=30
# 训练 ACT 策略
lerobot-train \
--dataset.repo_id=your_name/so101_pick_place \
--policy.type=act \
--output_dir=outputs/act_so101
# 真机评估
lerobot-eval \
--policy.path=outputs/act_so101/checkpoints/last \
--robot.type=so101_follower
硬件支持与社区资源
LeRobot 对硬件的支持分为“官方维护”和“社区贡献”两类。官方重点支持低成本、易复现的开源机械臂,例如 SO-100、SO-101、Koch v1.1 与 ALOHA 系列;社区则不断补充新的机器人、遥操作器和相机。选择硬件时,建议优先考虑官方支持列表中的型号,因为其关节映射、标定流程与示例数据更完整。
| 资源类型 | 典型内容 | 使用方式 |
|---|---|---|
| Hugging Face Hub | LeRobotDataset、预训练策略权重、模型卡片 | 通过 repo_id 直接加载或上传 |
| 官方文档与示例 | 安装指南、硬件组装、标定、训练与评估教程 | 按硬件型号查找对应命令 |
| GitHub 仓库 | 源码、Issue、Pull Request、版本发布 | 提交问题或贡献新硬件支持 |
| Discord 社区 | 实机排障、参数调优、硬件改装经验 | 搜索历史讨论或提问 |
| 社区数据集 | 抓取、放置、折叠、插拔等任务示教 | 用于预训练或对比实验 |
实用建议:第一次接触 LeRobot 时,不要急着训练大模型。先用官方示例数据跑通“加载数据集—训练 1 个 epoch—真机推理”的最小闭环,确认硬件通信、相机画面与关节方向都正确,再扩大数据规模。
常见误区与复盘
在实际项目中,初学者最容易踩的坑集中在三处。第一,把 LeRobot 当成“即插即用”的成品:它提供的是工具链,硬件组装、标定与安全限位仍需自己完成。第二,忽略数据质量:如果示教过程中相机抖动、动作不连贯或任务描述不一致,再强的策略也难以稳定。第三,跳过评估直接上线:真机推理前应在低速、小范围、有人看护的条件下验证,确认急停可用、关节不会撞限位。
复盘时可以问自己四个问题:数据集的观测与动作是否对齐?硬件抽象层的关节顺序与单位是否与训练时一致?策略推理频率是否满足控制周期?失败案例是否已经回流成新的示教数据?这四个问题对应了 LeRobot 闭环迭代的核心:数据、接口、时序与反馈。只有把生态中的各层打通,实机部署才不会停留在“演示一次就坏”的阶段。
安全提醒:真机调试时务必先断开电机使能或降低力矩,设置软件限位与物理急停。任何策略在首次上机时都应从低速、短时、小幅度动作开始验证。