少于 1 分钟阅读

简介

定义任务与仿真环境

我们的目标是验证一种通过训练数据扩展机器人能力的方式:VLA 接收自然语言指令与身体观测,直接预测 Action Chunk,再由机器人运行时执行。仿真采用 MuJoCo + Microduck 模型,提供关节运动、传感器反馈和地面接触等物理过程,形成持续交互的闭环:

语言指令 + 当前观测 → VLA → Action Chunk
                         ↑          ↓
                         └── 新观测 ← 仿真执行
  • 输入:自然语言、相机图像、关节与 IMU 状态,以及必要的历史观测。
  • 输出:未来一段时间的关节目标序列。
  • 评估目标:能否正确执行指令,并在不同初始状态、等价语言表达下保持稳定。

选择模型与训练方法

选择 LeRobot + SmolVLA 作为训练方案

  1. LeRobot 提供数据集、训练与推理工具;
  2. SmolVLA 是约 450M 参数的预训练模型,支持输入自然语言、图像和机器人状态,输出 Action Chunk,适合用来验证“语言与观测直接生成动作”的流程。SmolVLA 主要由两部分组成:
    1. 视觉语言骨干(VLM):提取图像与语言特征,结合身体状态形成动作生成所需的条件信息。SmolVLM 是一个开源2B 的VLM
    2. 动作专家(Action Expert):根据这些信息,生成未来一段时间的连续动作序列,采用 Flow Matching 训练。

训练采用基于专家示范的模仿学习(Imitation Learning),具体属于行为克隆(Behavior Cloning):利用原有运动模型生成示范,让 VLA 学习在给定语言和观测下,产生与专家一致的动作。BC 描述的是“从示范学习策略”的方式,Flow Matching 则是学习动作序列分布的具体训练目标。

lerobot

lerobot是 Hugging Face 开发的端到端机器人技术开源库。该库纵向集成了整个机器人技术栈,既支持对真实机器人设备进行底层控制,也提供先进的数据与推理优化,以及采用纯 PyTorch 简洁实现的最先进机器人学习方法。

准备示范数据

示范数据按 Episode(一次完整任务执行)组织。每个 Episode 是一段连续的多模态时间序列。每个时刻记录三类信息:

内容 含义 示例
task 希望机器人做什么 "向左看"
observation 发出动作前,机器人实际观测到了什么 图像、关节位置与速度、IMU
action 专家在该时刻发出的控制目标 各关节的目标角度

状态与动作必须分开:当前头部角度是 0.08 rad,专家要求转到 0.12 rad,那么前者属于 observation,后者属于 action。

LeRobotDataset

lerobot定义了一种标准化数据集格式,旨在满足机器人学习研究的特定需求,为跨模态机器人数据提供统一、便捷的访问方式,其中包括传感器运动读数、多路摄像头画面和遥操作状态。可由用户轻松扩展且高度可定制。

将底层数据存储与面向用户的 API 分离。由三个主要部分组成:

  1. Tabular Data:关节状态和动作等低维、高频数据存储在高效的内存映射文件中,通常会转交给 Hugging Face 更成熟的 datasets 库处理,从而实现快速访问并减少内存占用。
  2. Visual Data: 为处理大量摄像头数据,帧会被拼接并编码为 MP4 文件。同一回合的帧始终归入同一个视频,多个视频则按摄像头归组。为减轻文件系统负担,同一摄像头视角的视频组在达到给定阈值数量后,也会拆分到多个子目录中。
  3. Metadata。由一组 JSON 文件构成,用于描述数据集的元数据结构,并作为表格型和视觉数据维度的关系型对应部分。元数据包括不同的特征模式、帧率、归一化统计信息和回合边界。

训练模型

评估效果与改进

踩坑记录

留下评论