Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

下面这一节可以直接作为教材正文使用,我按你给的三级标题展开,语气尽量保持“教科书级但读得懂”的风格。


7.4.1 多机器人、多任务数据集概览

到目前为止,你已经知道如何自己在实验室里采集数据。本小节换个视角:站在“数据使用者”的角度,了解几个已经被社区广泛采用的多机器人、多任务开源数据集。它们是训练和评测 VLA 模型的“公共语料库”,也是你快速开始实验的捷径。

【图 7-12 占位】 建议配一张“多数据集对比示意图”:横轴为 RoboNet / RLBench / Open X-Embodiment,纵轴列出“现实/仿真”“机器人数量”“任务数量”“是否有自然语言指令”等,用图标和简单数字对比。

7.4.1.1 RoboNet

RoboNet 是加州大学伯克利等机构提出的大规模多机器人操作数据集,核心目标是**“用共享数据推动通用视觉操作模型”** 。(arXiv)

  1. 基本属性
  • 数据规模:约 1500 万张图像帧(video frames),组成大量的交互序列。
  • 机器人种类:包含至少 7 种不同平台,如 Sawyer、Franka、KUKA、WidowX、Baxter 等,覆盖不同结构、不同控制接口的机械臂。(Proceedings of Machine Learning Research)
  • 任务类型:主要是桌面场景下的非结构化物体交互——推、拨、移动、简单抓取等,不刻意区分“具体任务标签”,更像是“通用交互经验池”。
  1. 数据模态与动作空间
  • 视觉:单或多视角 RGB 图像,来自 113 个不同相机视角,场景(桌面、背景、物体外观)有较强随机化。(bair.berkeley.edu)
  • 状态与动作
    • 状态通常包含末端执行器笛卡尔位姿(位置 + 局部朝向)以及夹爪开合状态。
    • 动作采用末端执行器增量控制(delta pose action):在当前位姿基础上给出位置/旋转小增量,以及一个维度控制夹爪开/合。(TensorFlow)
  • 其他传感信息:部分子集还包含力/力矩传感器读数,可用于建模接触动力学。(bair.berkeley.edu)

对 VLA 来说,这种“视觉 + 增量位姿 + 多机器人”的统一格式,非常适合作为动作 token 化 的基础(见第 8 章对动作表示的讨论)。

  1. 设计特点与适用场景
  • 多机器人统一格式:不同机械臂的数据被规整为统一的末端空间控制,使得同一个模型有可能在多种平台之间共享参数。(arXiv)
  • 偏重物理交互多样性,而非语义任务标签:更适合
    • 视觉预测 / 视频预测模型、世界模型
    • 通用抓取/推动技能的预训练
    • 多机器人共享视觉-控制表征的研究

【图 7-13 占位】 建议配 RoboNet 官方博客中的拼图式示例:多种机械臂在不同桌面场景中与杂物交互的若干帧截图。(bair.berkeley.edu)

在后续章节,当我们讨论“单模型多机器人”的 VLA 架构时,可以把 RoboNet 看作现实世界数据的一个典型来源。


7.4.1.2 RLBench

RLBench 既是仿真环境又是基准数据集,可以理解为“带有标准任务库的操作仿真平台”。(arXiv)

  1. 基本属性
  • 仿真实现:基于 CoppeliaSim(原 V-REP)物理引擎,内部集成一台 7 自由度机械臂(Franka Panda 类似结构)和若干场景。
  • 任务数量:最初发布时包含 100 个手工设计的任务,从伸手触碰目标到开门、拉抽屉、整理物品等,难度跨度大。(arXiv)
  • 演示数据:每个任务提供大量通过运动规划器自动生成的示教轨迹,理论上可以生成无限多的演示,方便行为克隆和模仿学习。(arXiv)
  1. 观测与动作空间
  • 多视角视觉输入
    • 肩部上方的双目或多视角相机
    • 手眼相机(eye-in-hand) 提供 RGB、深度图以及语义分割掩膜等。(arXiv)
  • 机器人观测:关节角、关节速度、末端位姿、夹爪状态等。
  • 动作:可以在关节空间或末端空间发送位置/速度/增量命令,是强化学习与行为克隆常用的控制接口。
  1. 扩展与语言指令

后续许多工作在 RLBench 上叠加了自然语言指令,形成“视觉 + 语言 + 操作”的实验平台,例如 HIVEformer、Ex-PERACT 等方法在 RLBench 上评估语言条件下的多任务操作能力。(arXiv)

  1. 适用场景
  • 快速原型:无需真实机器人,即可在仿真中大规模采集演示和在线交互。
  • 多任务研究:任务多而标准化,是研究多任务学习、少样本学习、长期操作(multi-stage tasks)的常见基准。(arXiv)

【图 7-14 占位】 建议截图 RLBench 中几个典型任务(如“打开抽屉”“堆积木”“开烤箱放托盘”),并标注不同相机视角。


7.4.1.3 Open X-Embodiment 数据集

Open X-Embodiment 是由 Google DeepMind 联合多家学术机构发布的多机器人、多任务真实操作大合集,可以视为“现实世界版的多机器人基础语料库”。(arXiv)

  1. 规模与来源
  • 轨迹数量:超过 100 万条真实机器人轨迹。(Open X-Embodiment)
  • 机器人多样性:覆盖 22 种不同“具身类型”(embodiments),包括单臂、双臂、多关节机械臂、移动平台、四足机器人等,由 30+ 个实验室联合贡献。(arXiv)
  • 技能与任务:官方统计约 527 种“技能(skills)”与 16 万+ 任务变体,涵盖抓取、开门、整理物品、清洁、工具使用等多种日常操作。(arXiv)
  1. 数据格式与模态
  • 视觉:以 RGB 图像为主,部分数据集含多视角或视频序列。由于是汇集多个独立数据集,摄像机内参、深度图、点云等信息在不同子集中的完备程度不一。(Open X-Embodiment)
  • 语言:相当一部分轨迹带有自然语言指令或描述,如“把黄色杯子放进水槽”。不同子集的语言风格和详细程度也存在差异。(arXiv)
  • 动作与状态
    • 大多为末端位姿或关节命令的连续控制序列。
    • 官方统一成标准化格式,便于在统一模型中训练“跨机器人策略”。(arXiv)
  1. 与 RT-X 模型的关系

在 Open X-Embodiment 基础上,作者训练了大规模机器人 Transformer 模型 RT-X / RT-1-X,展示了跨机器人正迁移:在一个机器人上学到的能力可以提升其他机器人在相关任务上的表现。(arXiv)

这为“通用具身基础模型”提供了强有力的实证支持,也是本书后面讨论多机器人 VLA 架构时的重要参考。

【图 7-15 占位】 建议绘制“多机器人时间轴示意图”:横向排列不同机器人(移动底盘、机械臂、四足等)的轮廓图,下方标出对应数据量或任务示例。


7.4.2 常见操作基准任务与评价指标

有了数据,还需要“统一的考试卷”——即操作基准任务(benchmarks)与明确的评价指标 。这部分内容既关系到论文实验的可比性,也直接影响你如何设计自己的任务和实验。

7.4.2.1 典型基准任务

当前社区中,机器人操作基准大致可分为几类维度:任务复杂度场景复杂度多任务/多机器人 等。下面给出若干典型任务模式,并不局限于单个数据集。

  1. 基础操作原语类
  • 到达(reach / point):控制末端到达目标位置或物体上方,用于评估基础运动学控制与简单视觉定位。
  • 单物体抓取(grasp):在桌面上抓起一件物体,如积木或小瓶子,通常要求夹爪闭合后物体离开桌面一定高度即视为成功。
  • 推动与拉动(push / pull):用末端将物体沿指定方向推至目标区域,考察接触动力学和摩擦建模。
  1. Pick-and-Place 与物体搬运类

这类任务是现有基准中最常见的“中等难度操作”:

  • 单物体搬运:如“将红色方块放入绿色碗中”。需要完成抓取、搬运、放置三个阶段。
  • 多物体排序 / 分类:把不同颜色或形状的物体放入对应容器,考察感知-语言-动作之间的对齐能力(例如 RLBench、RLBench-LC 上的多任务任务集)。(arXiv)
  1. 长序列与多阶段任务
  • 开门 / 开抽屉 / 打开烤箱并放入托盘:需要先找到把手,抓取并沿特定方向施力,然后在另外一个空间完成放置,是典型的多阶段任务。(arXiv)
  • 装配 / 插入(assembly / insertion):例如“把插头插入插座”“将方块插入带孔的结构体”,要求高精定位和力控,常用于检验高精度操作能力。
  1. 语言条件与多任务基准

在 RLBench、Open X-Embodiment 等数据集上,越来越多工作使用自然语言指令 作为条件,形成“语言 → 多任务操作”的基准:(arXiv)

  • 同一场景下,不同语言指令对应不同任务(如“把蓝杯子放进抽屉”“把红杯子放到桌角”)。
  • 不同任务之间共享一套视觉与语言表征,用以评估多任务泛化零样本组合 能力。
  1. 泛化与鲁棒性基准

近期更关注“在扰动和分布偏移下的表现”,例如 The Colosseum 基准通过改变物体颜色、纹理、光照、桌面材质、相机姿态等,量化模型成功率的下降,用于系统性评估泛化能力。(arXiv)

【图 7-16 占位】 画一个“任务层级金字塔”:底层为 reach / grasp,中层为 pick-and-place / sorting,顶层为多阶段语言任务与泛化评测,在图中标注对应的典型基准(RLBench、Open X-Embodiment、The Colosseum 等)。


7.4.2.2 评价指标

评价指标的设计决定了模型“被鼓励做什么”。在机器人操作中,既要考虑传统机器学习指标,又要加入物理世界特有的约束(时间、能耗、安全等)。下面列出常用指标及其直观含义。

  1. 任务成功率(Success Rate)
  • 定义:在 N 次独立尝试中有多少次任务达到预设成功条件,如“物体最终落在目标区域且未掉落”。
  • 常见形式
    • 二值成功率:成功/失败。
    • 分阶段成功率:如“抓取成功率”“抓取+放置完整成功率”。
  • 用途:几乎所有 manipulation 基准的** 主指标**,简单直观,适合多任务和跨算法对比。(robo-eval.github.io)
  1. 时间与效率指标
  • 完成时间(Completion Time):从任务开始到判定成功/失败所消耗的时间或时间步数。
  • 样本效率:在强化学习场景中,常统计达到某成功率所需的环境交互步数。
  • 步骤数 / 动作长度:用于比较“走直路”和“绕远路”的策略差异。
  1. 轨迹质量与精度指标
  • 空间精度:如放置误差(目标位姿与最终物体位姿的距离 / 旋转差),在高精度装配任务中尤为重要。(科学直通车)
  • 路径质量:包括轨迹总长度、曲率、平滑度等,有时会用能耗、关节速度积分等间接表示。
  • 稳定性:例如抓取过程中物体是否在移动中掉落,可以通过“保持时间”“晃动幅度”等二级指标度量。
  1. 鲁棒性与泛化指标
  • 扰动鲁棒性:在遭受光照变化、物体外观变化、相机视角偏移、动力学参数扰动等情况下的成功率。The Colosseum 等工作会报告“标准设置成功率 vs 扰动设置成功率的差值或下降比例”。(arXiv)
  • 跨任务泛化:训练任务集合与测试任务集合不重叠时的成功率,比如“新物体、新布局、新指令”的成功率。
  • 跨机器人迁移:在训练过的机器人和新机器人上的表现对比,用于评估“具身泛化”能力。(arXiv)
  1. 语言对齐与指令遵循指标(VLA 特有)
  • 指令完成度:给定指令“把红色杯子放进蓝色碗中”,不仅要搬运杯子,还要检查目标是否匹配(是否是“红色”“杯子”“蓝色碗”)。
  • 语言理解准确率:在某些设定中,会附加一个“是否遵守指令关键约束”的标志,例如是否选择了正确对象、是否满足约束条件(“不要移动绿色物体”)。

7.4.2.3 基准意义

为什么需要如此繁琐的基准和指标?从研究者的角度,可以从三个层面理解其价值。

  1. 公平比较与复现

统一的任务定义、环境配置和指标,使得不同算法的结果具有可比性——你在 RLBench 上的 80% 成功率,可以直接和别人报告的数字对照,而不是“各做各的实验,各讲各的故事”。(arXiv)

  1. 引导研究重点

精心设计的基准能“放大痛点”:

  • 泛化基准会迫使模型走出“单场景刷分”的舒适区。(arXiv)
  • 多机器人、多任务基准会推动大家思考“共享表征”和“具身基础模型”。(arXiv)

长远来看,基准本身就是一种“研究方向工程”,它把社区的注意力集中在某些被认为重要的问题上。

  1. 连接学术与产业

产业界在意的是:在真实场景下,机器人到底好不好用 。如果实验室里的基准已经考虑了成功率、效率、鲁棒性、安全性等因素,那么从基准性能到工业 KPI 的距离就会缩短许多。这也是近年来 RoboEval 等工作试图系统化评估方法的原因。(robo-eval.github.io)


7.4.3 如何基于开源数据开始 VLA 实验

前两小节回答了“有什么数据”和“如何评价”的问题,本节回到最实际的工程视角:如果只有一台电脑和若干开源数据集,该如何从零开始做 VLA 实验?

可以把流程粗略划分为:数据获取 → 数据筛选与预处理 → 实验设计与训练评测


7.4.3.1 数据获取

  1. 选择合适的数据源

结合本书前面对 VLA 的介绍,可以按以下维度选择:

  • 现实 vs 仿真
    • 若首要目标是快速原型与算法比较,可优先使用 RLBench 这类仿真基准。(GitHub)
    • 若关注 sim2real 或通用具身模型,可采用 RoboNet、Open X-Embodiment 等真实数据集。(arXiv)
  • 是否需要语言
    • 仅训练视觉-动作策略,RoboNet、RLBench 原始演示即可。
    • 若需要 VLA,可选择带语言描述的 RLBench 扩展集、Open X-Embodiment 中带语言标注的子集,或社区整理的语言条件数据。(arXiv)
  • 机器人/任务多样性
    • 针对单一机器人、小任务集:RLBench 子集、某个单独实验室数据。
    • 针对多机器人、多任务:优先考虑 Open X-Embodiment。(arXiv)
  1. 下载与基础工具
  • 官方仓库与镜像
    • RoboNet:提供官方 GitHub 仓库与 TensorFlow Datasets 条目,可直接用 tfds 或官方脚本加载数据。(GitHub)
    • RLBench:GitHub 上提供仿真环境、任务定义与 demo 生成脚本。(GitHub)
    • Open X-Embodiment:官方网站给出各子数据集下载链接以及统一的数据格式说明。(Open X-Embodiment)
  • 本地数据组织 建议在本地为每个数据集设计统一的目录结构,例如
dataset_root/
  ├── robonet/
  ├── rlbench/
  └── open_x/

并在其下维护统一的“清洗后子集”,避免反复对原始数据做耗时预处理。

【图 7-17 占位】 画一个“数据流”示意图:从“官方数据源/下载脚本”流向“原始数据缓存”,再流向“预处理 & 统一格式”,最终接入“训练 DataLoader”。


7.4.3.2 数据筛选

开源数据体量巨大,直接“喂完所有数据”往往既不现实也不高效。对于初学者,更推荐先构造一个干净的子集,再逐步扩展。

  1. 按研究问题筛选

先问自己要解决的问题是什么,然后再反推数据选择。例如:

  • 想研究“语言条件下的单机器人多任务控制”? → 选 RLBench 中若干带语言描述的任务,或 Open X-Embodiment 中针对某一机械臂的多任务子集。(arXiv)
  • 想研究“多机器人共享策略”? → 从 RoboNet 或 Open X-Embodiment 中选取 2–3 种机械臂,在相似的桌面任务上构造混合训练集。(arXiv)
  1. 按模态与视角筛选
  • 统一视觉输入:例如只保留“正前方相机”的 RGB 图像,把其他视角作为可选扩展。
  • 固定分辨率与帧率:将所有图像 resize 到统一大小(如 128×128 或 224×224),并统一每条轨迹的时间步长(如每 0.1s 采样一次帧)。
  • 明确状态与动作字段:例如限制所有轨迹都包含末端位姿 + 夹爪状态,剔除缺失关键字段的样本。
  1. 质量控制与清洗
  • 去除损坏/异常样本:如图像无法解码、轨迹突然跳变到非法关节角、时间戳缺失等。(robo-eval.github.io)
  • 成功/失败划分:许多数据集会对轨迹标注成功/失败或分阶段成功,建议初期只使用高置信度成功轨迹做行为克隆,将失败样本留作后续奖励学习或鲁棒性研究。(bair.berkeley.edu)
  • 平衡不同任务/机器人:避免某个任务或机器人因为样本过多主导训练,可以在 DataLoader 中实现按任务/机器人类别均匀采样(这一点在第 9 章会更系统地讨论)。

7.4.3.3 实验设计

在有了“干净子集”之后,接下来是如何设计一个结构清晰、可逐步扩展的 VLA 实验。以下给出三种循序渐进的典型路线。

  1. 路线一:单任务 / 单机器人 VLA 入门

目标是先把最小可行系统(MVP) 搭起来:

  • 数据:在 RLBench 里选一个带语言描述的任务(比如“打开抽屉”),采集若干演示。(arXiv)
  • 模型:
    • 视觉部分可以使用预训练 ResNet / ViT 提取图像特征。
    • 语言部分使用小型 Transformer 或句向量模型将指令编码为向量。
    • 动作输出使用简单的末端增量控制(例如 4–7 维连续动作,或粗粒度离散化成动作 token)。
  • 训练方式:
    • 行为克隆(BC):最简单直接,把“图像 + 语言 + 状态 → 下一步动作”当作监督学习。
    • 评价:在同一任务新初始化条件下测试多次,统计成功率与平均完成时间。

这一阶段主要目的是熟悉数据管线 + 模型训练 + 仿真部署 的完整闭环,而不是追求 SOTA 指标。

  1. 路线二:多任务 VLA(同一机器人)

当单任务跑通后,可以迈向“一个模型管多个任务”的设置:

  • 数据:在 RLBench 或 Open X-Embodiment 中选择一台机器人和若干任务(如 10–20 个日常操作任务),保证每个任务有足够演示。(arXiv)
  • 设计要点:
    • 使用语言指令作为统一的“任务条件”,避免为每个任务单独加一个 one-hot ID。
    • 在训练时采用按任务均衡采样,防止模型只学会样本量大的简单任务。
    • 增加一个“任务泛化”测试:预留一部分任务只在测试时出现,检验零样本能力(只提供语言描述不提供演示)。
  • 评价:除成功率外,可以统计模型在“训练任务 vs 新任务”上的性能差距,观察是否存在明显的过拟合。
  1. 路线三:多机器人 VLA 与跨具身泛化

最后一步是利用 Open X-Embodiment 或 RoboNet 做“多机器人单模型”实验:(arXiv)

  • 数据选择:
    • 选取 2–3 台结构差异适中的机械臂,保证它们都有类似的桌面操作任务(抓取、放置、推物体等)。
    • 若使用 Open X-Embodiment,优先选择含语言标注的子集,便于复用前面多任务 VLA 的架构。
  • 模型设计:
    • 在输入中加入具身编码(embodiment token),例如一个表示机器人 ID 的向量,或基于机器人几何信息提取的嵌入。
    • 输出端要么统一使用末端增量空间,要么为不同机器人设计轻量映射层,将共享“动作 token”映射到各自控制命令。
  • 训练与评测:
    • 训练时混合不同机器人轨迹;
    • 测试时既评估“见过的机器人”,也评估仅在少量数据上微调的新机器人 的表现,考察跨具身迁移能力——这与 RT-X 的实验思路类似。(arXiv)
  1. 与后续章节的衔接

上述三条路线在复杂度上刚好吻合本书后续章节的难度递进:

  • 单任务 VLA → 第 8 章 VLA 架构中“单步决策 vs 序列决策”的最小例子;
  • 多任务 VLA → 第 9 章多任务预训练与行为克隆阶段的实践案例;
  • 多机器人 VLA → 第 10 章部署与跨平台评测中的“跨机器人迁移能力评估”。

【图 7-18 占位】 用一张“学习曲线 + 路线图”示意图,把三条路线画成由浅到深的阶梯,每一级标注“数据来源、模型复杂度、评测重点”等,帮助读者从宏观上把握学习路径。


通过本节,你可以将“抽象的数据集名字”和“看论文里的成功率曲线”转化为具体可操作的实验方案: 从哪个数据集下载数据、该怎么清洗、如何设计最初的实验问题、用什么指标衡量。等你真正动手跑完一两个这样的 VLA 实验,再回头看 RoboNet、RLBench、Open X-Embodiment、RT-X 等论文时,它们就不仅仅是公式和曲线,而是你自己已经踩过的一条经验路径的拓展与延伸。