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 生态分层架构 部署层 Deployment lerobot-record / lerobot-teleoperate / lerobot-eval / 真机推理循环 / 安全限位与急停 策略层 Policies ACT / Diffusion Policy / TDMPC / VQ-BeT / SmolVLA / 预训练权重与微调 数据层 Datasets LeRobotDataset 格式 / 视频+状态+动作 / Hugging Face Hub 上传与下载 / 数据统计与归一化 设备抽象层 Device Abstraction Robot 抽象类 / Teleoperator 抽象类 / 相机接口 / 关节顺序与单位映射 / 控制频率同步 硬件层 Hardware SO-100 / SO-101 / Koch v1.1 / ALOHA / Moss / 串口舵机 / CAN 电机 / USB 相机 / RealSense 数据与控制流

在代码层面,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 闭环迭代的核心:数据、接口、时序与反馈。只有把生态中的各层打通,实机部署才不会停留在“演示一次就坏”的阶段。

安全提醒:真机调试时务必先断开电机使能或降低力矩,设置软件限位与物理急停。任何策略在首次上机时都应从低速、短时、小幅度动作开始验证。