本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。 {{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:数据集|数据集]]