10.2.1 单任务 vs 多任务评测场景设计
本节讨论“评什么”的问题:在真实机器人或高保真仿真上,如何设计合理的评测场景,既能看清模型长处,也能暴露其短板。你可以把它理解为给 VLA 模型设计“期末考试卷子”:是只考一道大题,还是一整套综合题,还是一个完整项目。
10.2.1.1 单任务评测
(1)概念与适用场景
单任务评测指:在固定任务定义 下(例如“抓取桌面上的杯子并放进盒子”),对同一个模型进行多次重复试验,只改变一些随机因素(初始位姿、噪声等)。这类评测特别适合:
- 新模型/新模块的功能验证与调试;
- 与传统方法(经典规划器、手工策略)的对比基准;
- 分析 VLA 系统中某一环节(视觉、语言或动作解码)的瓶颈 。
(2)任务要素的形式化
设计单任务时,建议写成一个清晰的“任务规范”,包括:
- 初始条件:
- 机器人初始状态(关节角、底盘位置等);
- 环境状态(物体摆放、门是开是关等);
- 允许的动作空间:例如只允许关节速度命令,不允许直接 teleop 接管;
- 终止条件:
- 成功:目标物体到达目标集合内(位置、姿态、接触关系满足容差);
- 失败:超时、碰撞、明显离题(执行到安全区域外)等;
- 约束与安全规则:禁止进入某些区域、力矩/速度上限等。
这些信息在后续定义成功率、完成时间等指标时会反复用到。
(3)随机性与重复次数
单任务评测并不意味着“场景完全不变”。通常为了避免模型记住某个特定初始状态,需要:
- 在合理范围内随机化初始条件(例如物体位置在一个矩形区域内均匀采样);
- 对每个策略至少运行几十到上百次实验,估计成功率及其置信区间。
在 embodied AI 的导航与操作基准中,普遍采用“同一任务定义,多随机种子反复试验”的方式汇总统计量。(ResearchGate)
(4)示意图建议
[图 10.2-1:单任务评测示意图。同一张桌面上,杯子初始位置在一个小区域内随机采样,机器人多次尝试抓取并放入盒子,用不同颜色轨迹表示不同试验的手爪路径。]
10.2.1.2 多任务评测
单任务只能回答“这个模型是不是在这一件事上很强”;而 VLA 的目标,是在一套任务家族上表现稳定 。多任务评测就是给模型一整张“卷子”。
(1)任务集设计
多任务评测中,通常需要构造一个任务集合:
- 类型多样:包含抓取、放置、推拉、开关、开门、导航到目标等不同操作类型;
- 难度分层:从简单(单步动作)到复杂(多步骤组合),方便分析模型在不同难度上的退化情况;
- 语义多样:任务指令覆盖不同对象、属性(颜色、大小)和空间关系。
例如 RLBench、ProcTHOR 等框架中,都提供了几十甚至上百种操作/导航子任务,用于训练和评测多任务策略。(OpenReview)
(2)采样与汇总方式
常见的做法:
- 均匀采样:每个任务在评测时被选择的概率相同,避免模型“刷分”只靠擅长的任务拉高平均成功率;
- 分任务统计:
- 每个任务单独统计成功率/时间等;
- 再计算宏平均(每任务等权)与微平均(每条轨迹等权)两个指标。
(3)指令与场景的联动
在多任务设置中,任务通常通过自然语言指令体现:
- 一种做法:每条指令隐含任务 ID(如 “open the drawer” 对应开抽屉任务);
- 更通用的做法:同一任务可以有多种自然表述,后面 10.2.3.3 会专门讨论新指令泛化。
(4)示意图建议
[图 10.2-2:多任务评测任务集示意图。横轴为不同任务(抓取、开门、推拉等),纵轴为评测指标(成功率、时间),通过柱状图展示同一 VLA 模型在多任务上的性能分布。]
10.2.1.3 复杂场景
复杂场景可以理解为“把多个任务拼成一条剧情线”。它更接近真实应用中的长程任务,例如“从厨房拿一瓶水端到客厅桌上”。
(1)多阶段任务与子目标
复杂场景通常由多个子任务 顺序构成:
- 导航到冰箱;
- 打开冰箱门;
- 找到并抓起水瓶;
- 关闭冰箱门;
- 导航到客厅桌子旁;
- 放下水瓶。
评测时既要记录整体任务是否完成,也可以记录每个子任务的成功率、平均用时,形成一个“阶段成绩单”,帮助分析模型在哪个环节失误最多。许多交互式 3D 仿真平台(如 iGibson、AI2-THOR)都支持这类长程交互场景,并以阶段式任务评估复杂行为。(Jim Fan)
(2)动态环境与多主体
复杂场景中还可以引入:
- 动态环境:人类或其他机器人在场景中移动,导致遮挡与动态障碍;
- 人机交互:人在任务中插入新指令、纠偏,要求模型在运行中理解语言变化;
- 多机器人协作:多个机器人共享环境,相互避障甚至协同完成任务。
这类设置更接近现实,但评测协议也更复杂,往往需要单独章节(可与第 12 章“多机器人协作与群体智能”呼应)。
(3)示意图建议
[图 10.2-3:复杂场景任务流程图。用流程图展示从“接收任务指令”到“多阶段执行”的状态转移,每个节点标注对应的子任务与可能失败点。]
10.2.2 成功率、完成时间、路径质量等指标
有了任务场景,还需要量尺 来比较不同方法。本节给出几类在 embodied AI 中高度通用的指标,并解释其计算方式与优缺点。
10.2.2.1 成功率(Success Rate, SR)
(1)定义与计算公式
对于第 \(\displaystyle i\) 次试验(episode),定义一个二值变量 \((S_i)\):
- 若在最大步数/时间内满足任务成功条件,则 \((S_i = 1)\);
- 否则 \((S_i = 0)\)。
在总共 \(\displaystyle N\) 次试验中,成功率 定义为
\[ \text{SR} = \frac{1}{N} \sum_{i=1}^{N} S_i. \]
这一定义被大量导航和操作基准采用,例如 Habitat、ObjectNav 等任务都是以成功率作为首要指标。(Vladlen Koltun)
(2)成功条件的设计
关键在于:“什么算成功?”
- 导航任务:
- 目标条件通常是机器人停止时与目标位置的距离小于某阈值(例如 0.2–0.5 m),且无碰撞。(ORCA)
- 操作任务:
- 物体到达目标区域且姿态满足要求(如杯子底面在桌面上、未倾倒);
- 抓取任务可用“物体离开原位并稳定在夹爪或目标容器内”作为成功。(themoonlight.io)
当任务更复杂时,可以采用层级成功:
- “完全成功”:所有子目标都完成;
- “部分成功”:完成部分子目标,例如仅成功抓取但未成功放置。
在报告结果时,应尽量区分这两类,以免把“半拉子工程”算作成功。
(3)不确定性与置信区间
由于评测次数有限,SR 本身有统计波动。建议:
- 报告 SR 的同时给出置信区间(例如 95% CI,可用二项分布或正态近似估计);
- 在比较不同方法时,注意统计显著性,而非只看小数点后三位的差异。
10.2.2.2 完成时间(Completion Time)
成功率告诉我们“能不能做成”,完成时间则回答“做得快不快”。
(1)定义与测量方式
对于一次成功的试验,记录从 episode 开始到满足成功条件的时间 \((T_i)\):
- 在仿真中通常用步数 或仿真时间;
- 在真实机器人中用壁钟时间(秒)更直观。
可以报告:
- 平均完成时间 \(\bar{T}\);
- 中位数时间(更鲁棒于极端慢的样本);
- 完成时间分布的直方图或 CDF。
如果某次试验失败或超时,一般将其排除在平均完成时间之外,同时在 SR 中体现失败。
(2)效率相关复合指标
类似导航基准提出的 SPL(Success weighted by Path Length),也可以构造按时间加权的成功指标:
\[ \text{SWT} = \frac{1}{N} \sum_{i=1}^{N} S_i \cdot \frac{T_i^*}{\max(T_i, T_i^*)}, \]
其中 \((T^{*}_i)\) 是在该场景下的最短可行完成功能时间(例如用规划器或人工脚本计算)。这样既鼓励成功,又鼓励接近最优时间。类似思想已在多种导航与社交机器人评测中使用。(EvalAI)
(3)安全与舒适度的权衡
完成时间越短不总是越好:
- 机器人过快动作可能导致安全风险(更容易碰撞);
- 在人机共存场景,动作过快可能降低人的舒适度 。(ACM Digital Library)
因此在报告中通常:
- 把完成时间作为次级指标,在相近成功率的策略之间比较;
- 同时报告碰撞率、最小安全距离等指标。
(4)示意图建议
[图 10.2-4:完成时间分布示意图。横轴是完成时间,纵轴是累计比例(CDF),对比两种策略的曲线,一条整体偏左代表更快完成。]
10.2.2.3 路径 / 动作质量
即使成功、时间也合理,机器人“走得好不好”仍然是一个维度。这里主要关注轨迹质量 。
(1)路径长度与 SPL
对导航与末端执行器轨迹,可以定义:
- 路径长度 \((L_i)\):轨迹上相邻位置的欧氏距离累加;
- 最短路径长度 \((L^{*}_i)\):由规划器或图搜索得到的最短可行路径。
SPL(Success weighted by Path Length)定义为:(Vladlen Koltun)
\[ \text{SPL} = \frac{1}{N} \sum_{i=1}^{N} S_i \cdot \frac{L^{*}_i}{\max(L_i, L^{*}_i)}. \]
- 若成功且走的是最短路径,则该项为 1;
- 若路径更长,则按比例衰减;
- 若失败,则该项为 0。
SPL 在多种 embodied navigation 基准中已成为标准指标,也可以自然扩展到机械臂末端路径。
(2)轨迹平滑度与控制质量
从控制角度看,平滑、连贯 的轨迹有利于减少机械冲击和能耗,也更接近人类动作习惯。常见做法:
- 使用关节空间轨迹平滑度指标:
- 例如总加速度或总 jerk(加速度的导数) \(\sum_t |\ddot{q}_t|^2\), \(\sum_t |\dddot{q}_t|^2\);
- 统计速度/加速度的极值:越少“骤停-急动”越好;
- 测量碰撞次数、接触过载 等安全相关指标。(ResearchGate)
在最新的机器人策略评测工作中,常将成功率、时间、轨迹平滑度等组合为一组指标,全面刻画策略质量。(ResearchGate)
(3)能耗与硬件友好度
对真实机器人来说,微小的轨迹差异可能意味着非常不同的能耗与磨损:
- 可以对每个关节积分 \(\int \tau_t^2 dt\) 或 \(\int |\tau_t \cdot \dot{q}_t| dt\) 作为能量 proxy;
- 长期评测中,能耗更低的策略意味着电池续航、材料寿命更好。
(4)示意图建议
[图 10.2-5:路径质量对比示意图。展示同一导航任务中两条路径:一条接近最短路径且平滑,另一条绕行、频繁转向;同时给出相应的路径长度与 SPL 指标。]
10.2.3 泛化评测:新物体、新布局、新任务指令
VLA 模型真正有价值的地方,在于泛化:训练时见过的只是有限案例,部署时面对的是无穷变化。本节从三个维度构造“看新东西”的考题。
很多 embodied AI 基准(Habitat、iGibson 等)已经形成了一套惯例:将训练和测试在对象类别、场景布局和指令分布 上进行明确分离。(ResearchGate)
10.2.3.1 新物体(Unseen Objects)
(1)实例级 vs 类别级泛化
- 实例级泛化:
- 训练见过“红色杯子 A、B、C”,测试时出现“红色杯子 D”;
- 类别相同、属性相似,但几何细节不同;
- 类别级泛化:
- 训练阶段从未出现“剪刀”,测试时间接收到指令“把剪刀放进抽屉”;
- 要求模型基于语言/视觉语义理解新类别。
前者更多依赖于视觉“类内泛化”能力,后者则依赖于大模型对语言与世界知识的掌握,在 VLA 中越来越重要。(ResearchGate)
(2)物理属性变化
除了外观形状,物体的质量、摩擦系数、刚度 等物理属性变化同样重要:
- 对抓取任务,可通过改变物体重量、表面材料(光滑/粗糙)来构造测试集;
- 对推拉任务,可改变地面摩擦系数、物体底面材料。
相关评测设计在近期操作与模拟综述中被反复强调,用于检验策略对物理不确定性的鲁棒性。(ResearchGate)
(3)评测协议建议
- 明确列出“训练物体集合”和“测试物体集合”;
- 报告在仅使用训练物体 与完全替换为新物体 两种条件下的成功率对比;
- 若使用语言描述新物体(“把刀状物体放入盒子”),可额外考查模型的知识迁移能力。
[图 10.2-6:新物体泛化示意图。一列为训练中见过的杯子/碗/瓶子,另一列为测试时出现的新款式,通过箭头标注“类别已见/类别未见”。]
10.2.3.2 新布局(Unseen Layouts / Scenes)
(1)场景级拆分
在导航类 embodied AI 中,已经很常见的做法是:按场景 ID 划分训练/验证/测试集合,例如 HM3D、Habitat 中的“训练房屋”和“测试房屋”完全不同。(datasets-benchmarks-proceedings.neurips.cc)
对操作任务也可以类似处理:
- 训练时在若干桌面/台面布局上采集数据;
- 测试时更换家具布局、桌子高度、物体摆放模式。
(2)静态 vs 动态布局变化
- 静态布局泛化:场景几何结构不同,但在一个 episode 内不变化;
- 动态布局泛化:在任务执行过程中,其他实体(人类、机器人)在环境中移动,导致布局实时改变。
前者主要评估视觉与策略对位置关系变化的适应,后者进一步检验策略的** 在线感知与 replanning 能力**。(OpenReview)
(3)难度控制与分层
完全随机生成新布局可能导致难度分布失控,评测时应注意:
- 使用与训练集类似复杂度的测试场景(房间大小、障碍物数量等参数尽量匹配);
- 或者明确划出“简单/中等/困难”三档场景,分别报告泛化性能。
[图 10.2-7:新布局泛化示意图。左侧为训练时使用的几个房间平面图,右侧为测试时的不同房间布局,标注门、障碍物和目标位置变化。]
10.2.3.3 新指令(Unseen Instructions)
对于 VLA 模型,语言是“任务接口”。单纯在训练 seen 指令上表现良好,不能代表真正理解语言。
(1)表达多样性:同义改写与风格变化
最基础的一类测试是:
- 训练指令: “把红色杯子放进盒子里。”
- 测试指令:
- “请把红色的杯子放到盒子里面。”
- “把那个红色杯子移到盒子中。”
- “能帮我把红杯放进盒子吗?”
也可以引入口语化、礼貌句、倒装句等风格变化,考查模型是否真正依赖语义,而非死记模板。
(2)组合与逻辑结构泛化
更进一层的,是组合式新指令:
- 训练时只见过单步指令:“拿起 A”、“放下 A”;
- 测试时出现组合:“先拿起 A 放到 B 上,再把 C 放到 A 左边”。
这要求模型具备一定的任务分解与时序逻辑理解 能力,而不仅是逐句映射为动作。有关基准通常会构造“seen 组合”和“unseen 组合”两个分布,对比泛化性能。(ResearchGate)
(3)评测注意点
- 尽量将词表覆盖 控制在训练/测试交集大,但在句法与组合 上保持差异;
- 在报告结果时,区分:
- 语义等价改写上的泛化;
- 真正新组合(未见过的步骤序列)上的泛化。
[图 10.2-8:新指令泛化示意图。用一个图示展示:训练阶段只有简单单步指令,测试阶段出现“先……再……”的多步指令,并用箭头表示模型需要在内部拆解成两个子任务。]
10.2.4 跨机器人迁移能力评估
通用 VLA 的一个重要愿景,是“一个大脑,多种身体”:同一模型在不同机械臂、移动平台甚至多足机器人上工作。如何评估这种** 跨机器人(跨具身)迁移能力**,是近几年出现的一个新问题。(Open X-Embodiment)
10.2.4.1 模型迁移测试
(1)基本设定:train-on-A, test-on-B
最经典的跨具身评测方式是:
- 训练阶段:主要在机器人 A(或若干机器人)上收集数据并训练模型;
- 测试阶段:不再改变模型参数,直接部署到机器人 B 上执行相同或相似任务。
例如 Open X-Embodiment、AnyBody 等工作中,采用“留一机器人(或类)不训练,只在其上评测”的方式,系统性研究跨具身性能。(Robot Learning)
评价时通常:
- 报告 A 上的基准性能(例如 SR_A);
- 报告 B 上的零样本性能(SR_B-zero-shot);
- 比较两者差值或比值。
(2)插值 vs 外推场景
最新的 cross-embodiment 基准会细分:(arXiv)
- 插值(interpolation):
- 测试机器人与训练机器人在连杆结构、自由度 上相似,只是参数略有变化(长度、质量等);
- 外推(extrapolation):
- 测试机器人有不同的连杆拓扑或完全不同形态(例如从 6-DOF 机械臂迁移到 7-DOF,甚至从轮式移动平台迁移到腿足机器人)。
在报告结果时,区分插值/外推有助于理解模型在“细微差异”与“形态突变”上的表现。
(3)少样本适应(few-shot adaptation)
更实际的设定是:允许在新机器人 B 上收集少量数据进行微调或校准:
- 给定 K 条 B 的示教轨迹,用 BC 或 LoRA 微调 VLA;
- 记录成功率随 K 的变化曲线(sample-efficiency curve);
- 比较不同模型的适应速度 。
这一 protocol 在跨具身 RL 与 imitation 工作中越来越常见,用于衡量“从 0 到可用”所需的示例数量。(NeurIPS 论文集)
[图 10.2-9:跨机器人迁移测试示意图。左侧是训练时使用的机器人 A(例如 UR5),右侧是测试机器人 B(例如 Franka Panda),中间用箭头表示“零样本迁移”和“少样本适应”的两种路径。]
10.2.4.2 适应性指标
光看“能不能迁移”还不够,还要定量回答“迁移得有多好、多快、多安全”。
(1)性能保持率与性能跌落
可以定义:
-
性能保持率
\[ R_{\text{keep}} = \frac{\text{SR}_B}{\text{SR}_A} \]
-
或性能跌落
\[ \Delta_{\text{SR}} = \text{SR}_A - \text{SR}_B. \]
其中 SR_A 是在源机器人 A 上的成功率,SR_B 是零样本或适应后的成功率。
(2)适应速度与样本效率
对少样本微调情形,可用:
- 达到某目标成功率(如恢复到 SR_A 的 80%)所需的轨迹数量 或交互步数;
- 成功率随训练轮次的曲线下面积(AUC),衡量整体学习效率。
在 RL 与 cross-embodiment 基准中,通常会报告“在固定预算内的最终性能”与“达到某性能门槛所需时间”两个数字。(NeurIPS 论文集)
(3)安全与稳定性指标
迁移过程中,策略可能产生不少失败甚至危险动作,因此还需统计:
- 适应期内的碰撞率 、严重错误次数;
- 每 episode 的最大关节超限程度、力矩超限次数;(ResearchGate)
- 在现实机器人上,可额外统计急停触发次数等。
这些指标可以看作“迁移过程中付出的代价”,与最终性能共同构成迁移能力的评估。
[图 10.2-10:适应性曲线示意图。横轴为在目标机器人上使用的示教轨迹数量,纵轴为成功率,比较两个模型的上升速度,并在图中标注达到 80% 性能所需的样本点。]
10.2.4.3 差异因素
最后,需要认识到:跨机器人迁移难度高度依赖于机器人之间的差异 。没有理解这些差异,仅凭一个“平均成功率”会非常误导。
(1)运动学结构差异
- 自由度数量不同(6-DOF vs 7-DOF);
- 关节类型不同(转动、伸缩关节);
- 机械臂关节排列不同,导致某些方向的工作空间更受限。
例如,AnyBody 与 PEAC 等基准会精确记录各机器人连杆拓扑,并区分“同类结构的插值迁移”和“跨拓扑外推迁移”。(arXiv)
(2)动力学与控制接口差异
- 质量分布、惯量、摩擦、关节刚度不同;
- 最大速度/加速度、扭矩上限不同;
- 控制接口不同:有的接受关节位置目标,有的接受速度或力矩命令,还有的只有末端空间控制接口。
这会直接影响“相同动作 token”在不同机器人上的实际效果,因此许多跨具身方法会显式引入具身描述向量 或“universal action”中间表示,减弱这种差异的影响。(CVF开放获取)
(3)感知与几何差异
- 相机位置与视野不同(头顶相机 vs 末端相机 vs 外部相机);
- 分辨率、噪声水平、深度传感器种类不同;
- 末端执行器几何差异(两指夹爪、三指夹爪、吸盘)。
这些都会改变“看到的世界”和“能做的动作”。跨机器人评测时,建议:
- 在基准说明中清晰给出各机器人传感器配置与末端几何;
- 如果使用统一的视觉输入(例如场景固定相机),要说明这是为了隔离感知差异,只考察控制迁移。
[图 10.2-11:差异因素示意图。在一张图中列出几个典型机器人(移动底盘、7 自由度机械臂、双臂系统),分别标注其自由度、相机安装位置、末端执行器类型,用箭头指示它们在任务空间中的差异。]
本节从场景设计 到指标体系,再到** 泛化维度与 跨具身迁移**,构成了 VLA 系统“如何考试”的整体框架。前面的训练范式(第 9 章)更多回答“如何教会学生”,而本节则搭好了“如何判卷”的标准。接下来在 10.3 节,我们会进一步关注** 安全性与鲁棒性**,讨论当模型做错事、环境出问题时,系统应该如何设计防护与降级机制。