跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

LeRobot 框架深度解析:架构、策略、硬件与数据采集实战

综述由AI生成LeRobot 是一个专注于实际机器人应用的开源框架,提供预训练模型、数据集及工具链。深入解析其核心架构,涵盖策略系统(ACT、Diffusion 等)、仿真环境(Aloha、PushT)及真实硬件支持(SO100、XArm)。详细说明了基于 Gymnasium 的数据采集流程、遥操作配置及 LeRobotDataset 存储格式(Parquet/视频),旨在帮助开发者快速上手机器人模仿学习与强化学习任务。

并发大师发布于 2026/3/26更新于 2026/5/2313 浏览

LeRobot 框架架构

1.1 框架概述

LeRobot 是一个专注于实际机器人应用的开源框架,提供了一系列预训练模型、数据集和工具。它特别关注模仿学习和强化学习方法,旨在降低机器人技术的入门门槛,让研究人员和开发者能更轻松地开发和部署机器人应用。

1.2 系统架构

LeRobot 的系统架构由几个相互连接的子系统组成,核心基础设施支持算法策略、训练数据管理、模拟环境接口以及物理硬件交互。这些组件协同工作,支撑起完整的机器人学习闭环。

LeRobot 系统架构图

1.3 代码结构

代码组织清晰,便于理解和扩展。目录结构大致如下:

.
├── examples             # 示例和教程,从这里开始学习
│   └── advanced         # 包含更高级的示例
├── lerobot
│   ├── configs          # 命令行可覆盖的配置类
│   ├── common           # 核心功能类和工具
│   │   ├── datasets     # 人类演示数据集(aloha, pusht, xarm)
│   │   ├── envs         # 模拟环境(aloha, pusht, xarm)
│   │   ├── policies     # 策略实现(act, diffusion, tdmpc 等)
│   │   ├── robot_devices# 硬件接口(dynamixel, opencv, koch)
│   │   └── utils        # 工具函数
│   └── scripts          # 命令行执行脚本
│       ├── eval.py      # 加载策略并在环境中评估
│       ├── train.py     # 通过模仿或强化学习训练策略
│       ├── control_robot.py # 远程操作、记录数据、运行策略
│       ├── push_dataset_to_hub.py # 转换数据集格式并上传 Hugging Face
│       └── visualize_dataset.py # 加载并渲染数据集演示
├── outputs              # 脚本执行结果(日志、视频、模型检查点)
└── tests                # pytest 持续集成工具

这种结构让开发者能快速定位所需组件,理解它们之间的依赖关系。

1.4 主要组件

1.4.1 策略系统

LeRobot 通过统一的工厂接口实现多种最先进的策略架构。make_policy() 工厂函数为创建不同类型的策略提供了统一入口。训练(train.py)和评估(eval.py)脚本通过这个工厂与策略交互。所有策略都实现了 PreTrainedPolicy 接口,包含动作选择和模型训练的核心方法。

策略系统示意图

1.4.2 数据集管理

数据集系统负责处理多模态数据的加载、处理和可视化。LeRobotDataset 是核心组件,支持从 Hugging Face Hub 或本地存储访问。make_dataset() 工厂根据配置创建实例,系统自动处理片段、视频转换及图像预处理,并支持通过 Rerun 或 HTML/Flask 接口进行可视化。

1.4.3 环境接口

基于 Gymnasium API,LeRobot 为多个模拟环境提供一致接口。make_env() 工厂根据配置创建不同环境类型(Aloha、PushT、XArm)。系统包含观察预处理(preprocess_observation())和环境特征转换(env_to_policy_features())工具,生成向量环境以实现并行模拟。

环境配置图

1.4.4 机器人控制

控制系统提供与物理机器人交互的接口,支持不同的控制模式和硬件类型。control_robot.py 脚本是核心,支持远程操作、记录、回放和校准模式。它通过电机(Dynamixel、Feetech)和相机(OpenCV、RealSense)的抽象层与硬件对接,记录模式与数据集系统集成,方便直接采集训练数据。

Robot Control 模块

LeRobot 支持的策略

LeRobot 实现了多种前沿策略架构,以下是详细对比:

策略类型描述使用场景优点缺点
ACT (Action Chunking Transformer)基于 Transformer 的动作分块策略,专为双手操作设计需要精确协调的双手操作任务,如组装、操作复杂物体能够学习长期依赖关系,处理复杂序列任务,对时间步长不敏感训练成本高,需要大量数据,推理速度可能较慢
Diffusion (Denoising Diffusion)基于扩散模型的视觉运动控制策略需要精确控制的视觉引导任务,如精确抓取和放置生成高质量、多样化的动作,对不确定性有良好建模推理速度较慢,训练过程复杂
TDMPC (Temporal Difference MPC)时间差分模型预测控制需要预测性控制的任务,如动态环境中的导航和操作结合了模型预测控制的规划能力和强化学习的自适应性对模型精度要求高,计算成本较大
VQBeT (Vector Quantized Behavior)向量量化行为 Transformer需要从多样化演示中学习的任务,如多模态行为学习能够从多样化数据中提取离散行为原语,泛化能力强离散表示可能限制某些连续控制任务的精度
PI0 (Vision-Language-Action)视觉 - 语言 - 动作策略需要语言指导的任务,如遵循自然语言指令的机器人操作能够理解和执行自然语言指令,多模态融合能力强对语言理解的准确性依赖高,需要配对的语言 - 动作数据
PI0FAST (Fast Action Tokenization)快速动作标记化策略需要实时响应的语言引导任务比 PI0 更快的推理速度,保持语言理解能力可能在复杂指令上精度略低于 PI0

这些策略可以通过统一的 make_policy() 工厂函数创建,使得在不同任务和环境中切换策略变得简单。

LeRobot 支持的仿真平台和硬件

3.1 支持的仿真环境

LeRobot 通过 Gymnasium 接口支持多个模拟环境,可作为额外依赖项安装:

pip install -e ".[aloha, pusht]"
环境描述特点
Aloha双手机器人操作任务专注于双手协调操作,如倒咖啡、开瓶盖等
PushT物体推动操作任务专注于推动物体到目标位置的任务
XArmXArm 机器人操作任务基于现实世界 XArm 机器人的模拟环境

3.2 硬件支持

LeRobot 支持多种物理机器人硬件,特别是经济实惠且功能强大的平台。

  • 操作器机器人:SO100(基于 Koch 设计的双臂机器人)、XArm(单臂机器人)
  • 移动机器人:LeKiwi(移动机器人平台)
  • 传感器和执行器:相机(OpenCV 兼容、Intel RealSense)、电机(Dynamixel、Feetech)

3.3 SO100 机器人案例分析

SO100 是 LeRobot 重点支持的一种双臂机器人,基于 Koch 设计,适合研究和教育用途。

3.3.1 硬件架构
  • 两个机械臂,每个臂有多个自由度
  • Dynamixel 伺服电机作为关节驱动
  • 一个或多个相机用于视觉感知
  • 控制电路和电源系统
3.3.2 控制流程

控制 SO100 的典型流程涉及底层驱动通信与上层策略决策的交互,确保动作执行的实时性与准确性。

SO100 控制流程

使用 LeRobot 进行遥操作和数据采集

4.1 遥操作模式

遥操作模式允许用户直接手动控制机器人,适用于测试硬件、实验动作或准备记录会话。

4.1.1 遥操作流程

基本流程包括连接硬件、初始化控制器并发送指令。系统会实时显示相机馈送以辅助操作。

遥操作流程

4.1.2 遥操作配置

可通过 TeleoperateControlConfig 类配置参数:

参数类型描述
fpsint or None限制最大帧率,默认无限制
teleop_time_sfloat or None遥操作持续时间,默认无限
display_databool是否显示相机馈送和数据可视化
4.1.3 命令示例

基本的无限频率遥操作:

python lerobot/scripts/control_robot.py \
    --robot.type=so100 \
    --control.type=teleoperate

限制频率的遥操作,模拟记录:

python lerobot/scripts/control_robot.py \
    --robot.type=so100 \
    --control.type=teleoperate \
    --control.fps=30

4.2 数据记录模式

记录模式将机器人的观察和动作捕获到结构化数据集中,这是收集训练数据的关键步骤。

4.2.1 记录流程

系统会同步录制视觉观测、状态信息和执行的动作,并按时间戳对齐。

记录流程

4.2.2 使用策略记录

记录可以使用预训练策略控制机器人进行,这有助于评估策略性能。此时遥操作被禁用,策略根据观察生成动作。

4.2.3 记录配置

关键参数包括数据集标识符、任务描述、帧率、预热时间、片段时长等。

参数类型描述
repo_idstr数据集标识符(例如 'username/dataset_name')
single_taskstr记录期间执行的任务描述
fpsint or None记录的帧率
warmup_time_sint or float开始数据收集前的预热秒数
episode_time_sint or float每个片段的数据记录秒数
num_episodesint要记录的片段数量
videobool是否将帧编码为数据集中的视频
push_to_hubbool是否将数据集上传到 Hugging Face Hub
4.2.4 命令示例

记录单个测试片段:

python lerobot/scripts/control_robot.py \
    --robot.type=so100 \
    --control.type=record \
    --control.fps=30 \
    --control.single_task="抓取乐高积木并将其放入箱中。" \
    --control.repo_id=username/test_dataset \
    --control.num_episodes=1 \
    --control.push_to_hub=True

记录用于训练的完整数据集:

python lerobot/scripts/control_robot.py \
    --robot.type=so100 \
    --control.type=record \
    --control.fps=30 \
    --control.repo_id=username/training_dataset \
    --control.num_episodes=50 \
    --control.warmup_time_s=2 \
    --control.episode_time_s=30 \
    --control.reset_time_s=10

4.3 模拟环境中的数据采集

除了在实际机器人上收集数据外,LeRobot 还支持在模拟环境中收集数据,这对于初始开发和测试非常有用。

python lerobot/scripts/control_sim_robot.py record \
    --robot-path lerobot/configs/robot/your_robot_config.yaml \
    --sim-config lerobot/configs/env/your_sim_config.yaml \
    --fps 30 \
    --repo-id $USER/robot_sim_test \
    --num-episodes 50 \
    --episode-time-s 30

LeRobot 数据格式

5.1 格式概述

LeRobot 使用一种称为 LeRobotDataset 的统一数据格式,设计用于存储和管理机器人学习所需的多模态数据。这种格式可以轻松地从 Hugging Face Hub 或本地文件夹加载。

数据格式结构

5.2 数据集结构

文件结构组织如下:

├── data
│   ├── chunk-000
│   │   ├── episode_000000.parquet
│   │   ├── episode_000001.parquet
│   │   └── ...
│   ├── chunk-001
│   │   ├── episode_001000.parquet
│   │   └── ...
├── meta
│   ├── episodes.jsonl
│   ├── info.json
│   ├── stats.json
│   └── tasks.jsonl
└── videos
    ├── chunk-000
    │   ├── observation.images.camera1
    │   │   ├── episode_000000.mp4
    │   ├── observation.images.camera2
    ├── chunk-001
    └── ...

5.3 数据集组件

  • HF Dataset:基于 Arrow/Parquet 的数据集,包含观察图像(VideoFrame 格式或路径)、状态观察(如关节位置)、动作(如关节目标位置)、片段索引、帧索引、时间戳及任务描述。
  • 元数据 (meta):
    • episodes.jsonl: 包含每个片段的元信息,如起始/结束帧索引、所属 chunk 等。
    • info.json: 数据集的整体信息,包括特征、fps、机器人信息等。
    • stats.json: 数值特征的统计信息(最大值、均值、最小值、标准差)。
    • tasks.jsonl: 如果数据集包含多个任务,这里会列出任务描述和对应的片段。
  • 视频 (videos):如果 info.json 中指定使用视频存储图像,则原始视频文件存储在此处,按 chunk 和相机名称组织。

结论

LeRobot 框架通过其模块化的设计、丰富的预训练模型和数据集支持,以及对真实世界机器人应用的关注,显著降低了机器人学习的门槛。无论是进行学术研究还是开发实际应用,LeRobot 都提供了一个强大而灵活的平台。希望这篇深度剖析能帮助您快速上手并有效利用 LeRobot 进行机器人学习的探索与创新。

目录

  1. LeRobot 框架架构
  2. 1.1 框架概述
  3. 1.2 系统架构
  4. 1.3 代码结构
  5. 1.4 主要组件
  6. 1.4.1 策略系统
  7. 1.4.2 数据集管理
  8. 1.4.3 环境接口
  9. 1.4.4 机器人控制
  10. LeRobot 支持的策略
  11. LeRobot 支持的仿真平台和硬件
  12. 3.1 支持的仿真环境
  13. 3.2 硬件支持
  14. 3.3 SO100 机器人案例分析
  15. 3.3.1 硬件架构
  16. 3.3.2 控制流程
  17. 使用 LeRobot 进行遥操作和数据采集
  18. 4.1 遥操作模式
  19. 4.1.1 遥操作流程
  20. 4.1.2 遥操作配置
  21. 4.1.3 命令示例
  22. 4.2 数据记录模式
  23. 4.2.1 记录流程
  24. 4.2.2 使用策略记录
  25. 4.2.3 记录配置
  26. 4.2.4 命令示例
  27. 4.3 模拟环境中的数据采集
  28. LeRobot 数据格式
  29. 5.1 格式概述
  30. 5.2 数据集结构
  31. 5.3 数据集组件
  32. 结论
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 动态规划:最长递增子序列变体解析
  • 基于Coze平台的AI客服机器人搭建实战指南
  • Whisper-large-v3 本地部署与语音识别实战
  • Java 网络通信编程:服务器多任务连接与广播消息实现
  • C++ 入门指南:从 C 语言到 C++ 的平滑过渡(一)
  • SLAM 在无人机导航中的落地实践:从算法到部署
  • 从零搭建你的第一个 AI Agent
  • VSCode 关闭 Copilot 代码补全操作指南
  • Java 设计模式详解
  • Open WebUI MCPo 技术解析:MCP 协议转 OpenAPI 代理服务器
  • 【保姆级教程】小白也能搞定!手把手教你部署AI小说生成器
  • Python 3.14.2 安装与使用指南
  • Python 月相可视化系统:天文计算与 Web 界面实现
  • 远程主机不满足 VSCode 服务器先决条件的解决方案
  • 前端消息提示组件的设计方案与最佳实践
  • Flutter 三方库 mediapipe_core 的鸿蒙化适配指南
  • 轻小说机翻机器人:开源日语小说翻译工具解析
  • GTC 2026 前瞻:Rubin 平台与 AI 工厂架构解析
  • SkyWalking 多语言探针现状:.NET / C++ / Lua 深度解析
  • ComfyUI-Manager 使用指南:工作流节点与模型管理

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online