{{htmlmetatags>metatag-robots=(index,follow)
metatag-keywords=(LeRobot,Robot抽象,LeRobotDataset,策略框架,处理器系统,机器人学习)
metatag-description=(LeRobot 四大核心抽象:Robot 接口、LeRobotDataset 格式、策略框架和处理器系统)
}}
====== LeRobot 核心概念 ======
本页面解释 LeRobot 实现端到端机器人学习的四大基石:**Robot 抽象**、**LeRobotDataset 格式**、**策略框架**和**处理器系统**。理解这些概念对于有效使用 LeRobot 至关重要。
[[机器人:lerobot:home|返回概述]]
===== LeRobot 四大支柱 =====
LeRobot 围绕四个核心抽象构建,共同实现从数据采集到策略部署的统一工作流:
^ 支柱 ^ 目的 ^ 关键优势 ^
| **Robot 抽象** | 硬件无关的机器人控制接口 | 一次编写,在任何支持的机器人上运行 |
| **LeRobotDataset** | 标准化的机器人数据格式 | 高效存储、流式传输和共享 |
| **策略框架** | IL、RL 和 VLA 模型的统一接口 | 轻松实验不同算法 |
| **处理器系统** | 通用数据转换和归一化 | 传感器、模型和执行器之间的无缝数据流 |
===== 1. Robot 抽象 =====
==== 目的 ====
Robot 抽象提供统一的 Python 接口用于控制多样化的机器人硬件。这种抽象将控制逻辑与硬件特定细节解耦,使同一代码能在不同平台上工作。
==== 关键类和接口 ====
系统建立在抽象基类之上,定义了物理交互的严格契约。子类实现 ''get_observation'' 和 ''send_action'' 等方法以在生态系统中使用。
LeRobot 原生支持广泛的平台,从低成本机械臂如 SO100 到人形机器人如 Unitree G1。遥操作通过引导臂、游戏手柄和移动设备支持。
===== 2. LeRobotDataset =====
==== 目的 ====
''LeRobotDataset'' 是存储和共享机器人学习数据的标准化格式。它使用 **Apache Parquet** 存储表格数据(状态、动作、奖励)和 **MP4 视频**(或图像)存储视觉观测,以确保可扩展性和 Hub 集成。
==== 文件结构 ====
数据集组织为 ''meta/'' 目录(存储全局信息)和 ''data/'' 或 ''videos/'' 目录(存储实际样本)。数据被分块到文件中以提高存储效率和加载性能。
==== 数据访问和元数据 ====
''LeRobotDataset'' 类继承自 ''torch.utils.data.Dataset'',封装了以下组件:
* **元数据**:由 ''LeRobotDatasetMetadata'' 管理,处理 ''info.json''、''stats.json'' 和 ''tasks.parquet''
* **读取器**:''DatasetReader'' 处理从 Parquet 加载数据和通过 ''torchcodec'' 或 ''pyav'' 等后端解码视频帧
* **写入器**:''DatasetWriter'' 处理顺序录制,包括 episode 缓冲区和视频编码
===== 3. 策略框架 =====
==== 目的 ====
策略框架为不同的机器人学习算法提供统一接口。这使得在模仿学习(IL)、强化学习(RL)和视觉-语言-动作(VLA)模型之间切换只需最小限度的代码更改。
==== 策略类别 ====
^ 类别 ^ 示例 ^ 目的 ^
| **模仿学习** | ACT, Diffusion, VQ-BeT | 从专家演示中学习 |
| **强化学习** | HIL-SERL, TDMPC | 通过与环境的交互学习 |
| **VLA 模型** | Pi0, SmolVLA, GR00T | 大规模多模态推理 |
策略设计为可在 Hugging Face Hub 上共享,训练逻辑通过 ''lerobot-train'' CLI 触发。
===== 4. 数据处理流水线 =====
==== 目的 ====
处理器充当原始硬件信号和策略就绪张量之间的桥梁。该系统确保数据在到达模型之前被正确转换、归一化和整形。
==== 归一化和统计 ====
LeRobot 使用数据集中的 ''stats.json'' 文件存储不同模态的统计信息(均值、标准差、最小值、最大值)。预处理器使用这些统计信息对输入观测进行归一化,后处理器用于反归一化预测的动作。
==== 实现逻辑 ====
处理逻辑通常分为:
1. **预处理器**:处理图像大小调整、颜色增强和状态归一化
2. **后处理器**:将模型输出(例如归一化增量)转换回原始电机指令
===== 相关页面 =====
* [[机器人:lerobot:home|LeRobot 框架概述]]
* [[机器人:lerobot:安装与设置|安装与设置]]
* [[机器人:lerobot:命令行界面|命令行界面]]
* [[机器人:lerobot:数据集|数据集]]