具身模型先执行,VLM 只在出错时介入

——Spotter

目录

01    机器人到底在等什么?

02    Spotter 方法介绍

先看一个事实:具身模型出了错,自己既发现不了,也改不回来

三个角色:一个执行,一个检查,一个纠错

一次完整的执行,Spotter 是怎样运转的?

03    实验

问题一:到底快了多少?

问题二:速度上去了,成功率会不会掉?

问题三:不用 GPT-6,开源模型行不行?

问题四:换到真机上,还管用吗?

04    总结


让 GPT-6 指挥机器人,需要看得懂场景,拆得开任务,调得动技能。但真正跑起来就会发现一个尴尬的问题:

机器人每做一段动作,就要停下来,等大模型想好下一步。

前沿 VLM 每调用一次都要花上一段时间,而一个操作任务往往要调用很多回合,等待便一轮轮累积起来。

这也是社区讨论用大模型控制机器人时普遍关心的问题:大模型的能力越来越强,可效率问题该怎么解决?

近日,格里菲斯大学和清华大学交叉信息研究院的研究团队提出了 Spotter。

它的思路是把“串行等待”改成“并行监督”:具身模型持续执行,本地轻量模型在一旁同步检查,只有发现问题时,才由 VLM 中途打断、介入修复。很多步其实具身模型自己就能做对,因此在大多数时间里,执行与检查同时进行,机器人不必停下来等待,时间也就省了下来。

实验显示,在相同步数限制下,Spotter 的成功率与 VLM 全程指挥的方案相当或更高,成功任务的耗时却接近具身模型单独执行;本地部署的开源模型 Qwen 即可带来提升。

01    机器人到底在等什么?

把视觉语言模型(Vision-Language Model,VLM)接到机器人上,近来受到广泛关注的一种做法是组合式 Agent:

VLM 负责决策,现成的具身模型负责动作。

这里的具身模型,指直接输出机器人动作的模型,如视觉-语言-动作模型(VLA)π0.5、世界动作模型 Cosmos Policy。这种做法不用重新训练具身模型,就能用上前沿 VLM 的推理能力。

问题出在“一步一停”。决策和执行是串行的,VLM 推理多久,机器人就等多久。这带来三个麻烦:

  • 慢:
    任务越长,等得越久。少调用几次 VLM 可以快一些,但错误可能就在两次检查之间变得无法挽回;
  • 挑模型:
    全程指挥对 VLM 的要求很高,基本只有前沿闭源模型能胜任,换成可本地部署的开源模型,效果往往明显下降;
  • 难比较:
    现有评测大多不限步数,VLM 可以反复重试,到底慢了多少、成功率是不是靠多试换来的,很难和具身模型本身公平比较。

所以,VLM 真的需要参与每一步吗?如果只在出错时出手,成功率能不能保住,速度能不能回来?

02    Spotter 方法介绍

先看一个事实:具身模型出了错,自己既发现不了,也改不回来

研究团队先摸了一次底:在 RoboCasa 的抓取放置任务上,每当 Cosmos Policy 或 π0.5 抓取失败,就立即叫停,再给它三次机会。

三种常见办法都试了:从失败前一刻重新采样,让 VLM 直接告诉它哪里出错,用它自己的恢复数据再微调。

结果都一样:十次失败,救回来的不到一次。

原因并不复杂。具身模型从成功示范中学习,几乎没见过“抓空之后该怎么办”;告诉它“你抓偏了”,效果也和重新采样差不多,Cosmos Policy 甚至不接受训练指令以外的语言输入。

那多采样几个候选动作,挑一个最好的呢?

近期的测试时扩展方法正是这样做的。但实验发现,这些打分器在正常状态下还有一定区分能力,一旦发生失败,区分能力便明显下降。就连 GPT-6 Astra,只看失败前后的画面,挑对的概率也只有 53%,而随机水平是 50%。

结论很明确:纠错要交给具身模型之外、能看到完整执行过程的 VLM,而且要让它直接规划修复动作,而不是给具身模型下指令,或在它的候选动作里挑选。

▲图2|同一次抓取失败下的两种结果。上:具身模型单独执行,未察觉失败,任务失败;下:Spotter 确认错误并调整机械臂,任务成功(任务:将青柠从锅中移至盘子)

上图就是一个典型例子。任务是把青柠从锅里移到盘子上。具身模型在第 160 步抓空了,却没有察觉,仍按成功时的轨迹把空夹爪移向盘子,任务失败。

加入 Spotter 后,VLM 在机械臂离开锅之后确认了这次失误,把机械臂退回抓取前的位置,再向右微调对准青柠,交还控制后任务顺利完成。

三个角色:一个执行,一个检查,一个纠错

与 VLM 主导时“做一段、停一段”不同,Spotter 的核心是并行:执行和检查同时进行,只有确认出错时才打断执行。

为此,Spotter 把系统分成三个角色:

  • 具身模型负责执行:持续输出动作,参数不做任何改动;
  • 本地轻量 Qwen 负责检查:具身模型每做完一段,它就检查一段;
  • VLM 负责纠错(GPT-6 Astra 或本地 Qwen):只有检查发现问题时才被调用,负责确认错误、修复并复查。

三者能拿到的信息和真实机器人一样:相机画面、机器人状态、已执行的动作。物体在哪里、任务是否完成,这些仿真器内部信息一律不提供。

▲图1|Spotter 的执行时序。具身模型连续输出动作块(C1、C2……);本地轻量 Qwen 对每个动作块同步检查,出现连续报警时,由负责纠错的 VLM(Judge)确认并修复(Repair),之后具身模型继续执行。系统输入包括语言指令、相机观测、机器人状态以及在仿真中归纳的通用经验

一次完整的执行,Spotter 是怎样运转的?

  • 执行和检查同时进行

具身模型做完一段动作,直接开始下一段,不等检查结果。检查模型拿到刚才那段的三路相机画面和状态读数,打一个 0 到 10 的风险分:达到 3 分就报警;夹爪闭合到 12 毫米以下,多半是抓空了,也报警。

门槛有意设得很低:宁可多报几次,也不能漏掉一次真正的错误。

  • 不让具身模型跑得太远

检查总比执行慢半拍。如果具身模型一路执行下去,等发现问题时可能已经无法挽回。

所以 Spotter 规定,具身模型最多只能领先检查 K 段:Cosmos Policy 为 4 段,π0.5 为 2 段,即最多领先 64 步和 50 步,到达上限就停下来等检查跟上。

除了确认出错,这是机器人唯一会停下的时候。

慢半拍也意味着,错误被确认时可能已经造成了影响。这分三种情况:

① 环境还没有改变,把机械臂退回去重做即可;

② 物体被碰倒但还在台面上,VLM 重新找到它继续完成任务;

③ 物体直接掉出视野,就无法挽回了(不过在第三种情况下,具身模型单独执行或 VLM 全程指挥同样无法恢复)。

  • 报警不等于出错

单次报警不会打断机器人。只有连续两次报警,或出现新的抓空迹象,才会调用 VLM。VLM 会查看整段历史:任务指令、已执行的动作、剩余步数、状态读数和相关的通用经验;然后给出判断:继续执行、介入修复或放弃任务,并附上一句诊断。

判断为继续执行时,具身模型完全不受影响。

  • 只调整机械臂,不重置场景

确认出错后,VLM 用一组基本动作编写修复计划:移动到某个点、平移一段距离、抬起、转动手腕、开合夹爪、退回此前记录的位置、双臂同步移动、让具身模型继续执行若干步,以及交还控制。

目标位置直接在相机画面中指定一个像素点,再由执行器结合深度图换算成三维坐标。每次修复最多 8 个动作、分 3 段执行,每段结束后 VLM 都会查看新画面,再决定下一步。

关键在于,Spotter 只把机械臂调整回去,从不把场景恢复原样。它在每段动作结束时记录机械臂位置,需要重做时,就把机械臂退回接管时或抓取前的位置。因此,整套方法可以直接用在真实机器人上。

  • 修完还要复查

VLM 每次修复前,必须先写明“修好之后应该看到什么”,例如“抬起时夹爪开口保持在 20 毫米以上”。

到下一段检查时,VLM 只观察、不动手,核对这个预期:预期成立,就不能重复同样的修复;预期不成立,下一次就必须换一种修法,而不只是调整偏移量。

没有这一步,VLM 常常修完就不再跟进,并不知道修复是否生效。

  • 提前整理一份通用经验

在训练数据和非测试场景上,研究团队允许 VLM 重置场景、反复试错,再把跨任务都成立的物理常识整理下来,例如可乐瓶这类长条物体应抓中间,抓两端容易滑落。只适用于某个具体场景的信息,如某处需要旋转多少度,全部删除。最终保留 77 条经验,测试时只查阅、不更新,也不做任何场景重置。

在成功的回合中,绝大多数时间都停留在第一步:具身模型执行,Qwen 检查,一切正常,VLM 几乎不用出手。

这正是 Spotter 能跑出接近具身模型速度的原因。

03    实验

研究团队在双臂操作基准 RoboTwin 2.0、仿真基准 RoboCasa(24 项官方任务)和 Franka Research 3 真机上评估 Spotter,具身模型为 π0.5 和 Cosmos Policy,VLM 主导的对比方案沿用 Harness VLA 的开源实现。

实验中,并行检查始终由本地部署的 Qwen3.8-27B 完成;
负责纠错的 VLM 为 GPT-6 Astra 时记为 Spotter(GPT-6 Astra),为 Qwen 时记为 Spotter(Qwen)。
在 RoboTwin 2.0 和 RoboCasa 的成功率对比中,所有对比方案(具身模型单独执行、VLM 主导方案和 Spotter)的步数上限均为官方任务评测步数的 1.8 倍(绝大多数任务为 900 至 1500 步),且均不使用特权信息,即模型只能获得真实机器人同样可获取的相机观测与自身状态。

实验围绕下面四个问题展开。

问题一:到底快了多少?

  • 先看 RoboTwin 2.0。

具身模型单独执行,成功任务平均 42 秒;交给 GPT-6 Astra 全程指挥,变成 155 秒;换成 Qwen 指挥,也要 140 秒。而 Spotter(GPT-6 Astra)只要 72 秒,Spotter(Qwen)只要 56 秒,与具身模型本身相差不大。

▲图3|RoboTwin 2.0 上各方法的成功率与成功任务平均耗时(具身模型为 π0.5),越靠近左上角越好。本组为新开展的实验,共 150 个回合;Qwen 相关耗时按单张 H200、单请求推理速度计算。完整运行日志:modelscope.ai/datasets/seamoke/spotter-robotwin-150

  • RoboCasa 上的规律一致。

在成功回合中,Spotter(Qwen)比具身模型单独执行只多出十几秒:Cosmos Policy 从 34 秒增至 47 秒,π0.5 从 23 秒增至 39 秒;VLM 主导方案则分别需要 146 秒和 164 秒。失败回合耗时更长,是因为 Spotter 会持续尝试修复,直到步数用完。

▲图4|RoboCasa 上每回合的耗时,分别统计全部回合、成功回合与失败回合,比较具身模型单独执行、Spotter(Qwen)与 VLM 主导方案(Qwen)

问题二:速度上去了,成功率会不会掉?

不会。

在 RoboTwin 2.0 上,Spotter(GPT-6 Astra)的成功率为 56%,与 GPT-6 Astra 全程指挥完全相同;在 RoboCasa 上,它将 Cosmos Policy 的成功率从 67.9% 提升至 73.5%,将 π0.5 从 64.3% 提升至 71.8%。

更值得一提的是一组补充实验:研究团队额外让 GPT-6 Astra 全程指挥的方案知道任务是否已经完成(即特权信息),其成功率为 73.3%,也只与 Spotter 的 73.5% 相当。

只在出错时出手,就足以达到全程指挥的成功率。

问题三:不用 GPT-6,开源模型行不行?

让 Qwen 全程指挥时,RoboTwin 2.0 上的成功率反而从 48% 降到 42%,不如具身模型单独执行;而把同一个 Qwen 放进 Spotter,成功率升到 53%。在 RoboCasa 上,Spotter(Qwen)将 Cosmos Policy 的成功率从 67.9% 提升至 71.8%,将 π0.5 从 64.3% 提升至 70.4%。

原因在于,全程指挥要求 VLM 规划、判断、纠错样样都行;而在 Spotter 中,它只需回答两个问题:是不是出错了?怎样就地修好?

任务聚焦了,开源模型也能胜任。

以下视频展示了 RoboCasa 中加入 Spotter 前后的执行过程。

▲图|RoboCasa 仿真演示(具身模型为 Cosmos Policy,同步检查与纠错均由 Qwen 完成)。左为具身模型单独执行,右为加入 Spotter 后的执行过程;任务:将牛排从台面取出,放入柜中

问题四:换到真机上,还管用吗?

研究团队在 Franka Research 3 机械臂上部署 Spotter,具身模型为基于遥操作数据微调的 π0.5,测试了三项任务:叠杯、将方块放入杯中,以及包含两个子步骤的长程任务(先将方块放入杯中,再将另一方块放至盘中),每项任务测试 10 次。

▲图5|Franka Research 3 真机任务示意与成功率

加入 Spotter(GPT-6 Astra)后,三项任务的成功次数从 6、7、3 次提升至 8、10、7 次,平均成功率从 53% 提升至 83%。提升最大的是长程任务:步骤越多,中途出错的机会越多,“出错才出手”的价值也越大。

04    总结

一句话概括 Spotter:不让机器人干等大模型。具体来说,这项工作做了三件事:

  • 提出 Spotter,由具身模型主导执行、本地轻量模型同步检查、VLM 只在确认出错时介入,VLM 推理不再阻塞具身模型的正常执行;
  • 设计了“检查—确认—修复—复查”的完整流程,修复只调整机械臂、不重置场景,可直接用于真实机器人;
  • 在统一步数、不使用特权信息的条件下,Spotter 的成功率与 VLM 全程指挥相当或更高,成功任务耗时接近具身模型单独执行,本地开源的 Qwen 即可带来提升;真机平均成功率从 53% 提升至 83%。

不过 Spotter 的修复有一个前提:错误发生后,场景还能恢复。

如果一出错就无法挽回,例如物体掉出视野,目前的方法也无能为力。未来可以考虑引入世界模型,提前预判这类错误;此外,让 VLM 更清楚具身模型能做什么、不能做什么,从而更早判断何时需要介入,也是值得探索的方向。

对于想把大模型用到真实机器人上的研究者和开发者来说,VLM 什么时候出手,可能和选多强的 VLM 同样重要。

Spotter 的代码与实验日志均已开源,欢迎交流与使用。

Ref

论文题目:Spotter: Let the Embodied Model Lead, and the VLM Reflect for It

论文链接:https://arxiv.org/abs/2609.36808

项目主页:https://zqc3117.github.io/Spotter

代码链接:https://github.com/zqc3117/Spotter

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐