在让机器人“听懂人话”并安全执行复杂操作的道路上,一个被忽视却极具挑战的问题是——自然语言本身往往含糊不清。比如,当你让机器人“把杯子挂到树上”,面对多只杯子、不同高度的树枝,它该怎么决定?现有基于语言的控制方法大多依赖端到端模型,从理解指令到生成动作一步到位,但这很容易在遇到语言歧义、多物体或接触丰富的操作任务时失效。
这篇来自 Columbia、Toyota、UIUC 与清华的最新研究,提出了一种全新的框架。它利用大视觉-语言模型(VLM)先将自然语言转化为任务专用的“代码”,再借助可解释的中间表示指导机器人行动。生成的代码不仅让机器人理解哪些区域更重要,还能在三维空间中形成注意力图,帮助化解指令歧义。
在大量多物体交互与含糊指令场景下,这套方法相比传统模仿学习表现出更好的稳健性和泛化力,为未来让机器人真正理解人类复杂指令迈出了关键一步。
图1|CodeDiffuser 利用视觉-语言模型生成的代码,作为一种可解释且可执行的表示,用于理解抽象和含糊的语言指令。这些生成的代码与视觉基础模型(VFM)接口,计算出三维注意力图,作为一种中间表征,用以突出任务相关区域,并与低层策略进行信息传递。通过在仿真和真实环境中的大量评估,作者证明了该方法在处理语言歧义、接触丰富的操作以及多物体交互等挑战性语言条件机器人任务时的有效性。
论文出处:RSS2025
论文标题:CodeDiffuser: Attention-Enhanced Diffusion Policyvia VLM-Generated Code for Instruction Ambiguity
论文作者:Guang Yin, Yitong Li, Yixuan Wang, Dale McConachie, Paarth Shah
Kunimatsu Hashimoto, Huan Zhang, Katherine Liu, Yunzhu Li
论文地址:https://www.roboticsproceedings.org/rss21/p072.pdf
自然语言指令在用于指定机器人任务时,往往存在模糊和不确定性。如图 2 所示,指令“把电池放进托盘”就可能对应多种可行的执行路径。然而,现有的基于语言条件的模仿学习方法通常依赖端到端模型,试图同时处理高级语义理解和低级动作预测,这容易导致性能欠佳。
在实验中,作者发现现有的扩散策略(diffusion policies)在涉及语言模糊性的复杂任务中,即便使用大量数据,也仅能收敛到远低于实际可用水平的成功率。这显露出端到端方法在面对语言歧义和多样环境变化时的适应性不足。
为此,本文提出了一种新的机器人操作框架,旨在解决潜在语言歧义下的任务执行问题。该方法基于一个关键技术洞察:利用代码生成为视觉-语言模型(VLM)的视觉语义理解与视觉运动策略(visuomotor policy)的灵巧物理能力之间,提供一种可解释且可执行的接口。
具体而言,作者提出了 CodeDiffuser,利用视觉-语言模型生成的任务特定代码,来有效应对语言歧义并增强语义理解能力。该中间代码可与视觉基础模型(Visual Foundation Models)接口,生成三维注意力图,从而突出任务相关区域,并引导低层策略进行动作生成。通过这一机制,CodeDiffuser 在语言模糊、多物体交互以及接触丰富操作等挑战性任务中,表现出远超现有模仿学习方法的稳健性与泛化能力。
有些读者可能不太明白自然语言指令的歧义和模糊性是怎么在大模型这里体现的,毕竟人类天生对于自然语言有着非常强的处理能力,因此小编通过下图说明:
图2|用于机器人任务的自然语言指令通常存在固有的歧义性和模糊性。例如,考虑这样一条指令:“把一节电池放进一个插槽”,这在工厂环境中是十分常见的任务。在所给场景中,这条指令可通过多种动作来执行:机器人可以从三个可选的电池中任选其一,并将其放入托盘中的六个潜在插槽之一,最终产生共十八种可能的执行方案。此外,自然语言指令在歧义程度上也存在差异,既可能是高度模糊的,也可能是明确指定目标实例和目标位置的指令
图3|全文方法总览;CodeDiffuser 由三个主要组件构成:代码生成、三维注意力图计算以及低层策略。(a) CodeDiffuser 首先利用 VLM 的语义推理与代码生成能力,结合含有潜在歧义的人类指令和环境观测,生成任务特定的代码。(b) 这些生成的代码通过基于 VFM 构建的感知 API 进行处理,计算出突出任务相关区域的三维注意力图。(c) 最后,这些注意力图被输入到低层策略中,用于生成具体动作,以完成多物体交互、接触丰富操作以及具有语言歧义的任务
小编先来帮大家总结下:这项工作要解决的是一个多模态配对问题,也就是如何让机器人根据观测到的场景以及自然语言指令,输出合适的动作序列。
从严格的角度看,他们要学习一个概率分布,即给定观察(包括多视角 RGB-D 图像)和语言指令,让输出的动作分布尽量匹配人类示范数据中的真实分布。
在实践中,他们将这个问题分解为:
● 先用视觉-语言模型(VLM)和代码生成,得到一个表示任务相关区域的中间状态 zzz,比如 3D 注意力图。
● 然后用模仿学习基于这些中间表示生成实际机器人端执行的动作序列。
代码生成
在这部分,作者采用了 VLM(例如 ChatGPT-4o)来直接从自然语言指令生成可执行的“任务代码”。这段代码调用感知 API,生成 3D 注意力图。
具体流程如下:
1. 先提供给 VLM 若干“示例代码”,展示如何用 detect、sel_name、sel_pos 这些 API 来从多视角 RGBD 中检测并选择物体。
2. 当输入一条自然语言任务(比如“把蓝色杯子挂到左边树枝上”)时,VLM 先调用 detect 找出所有 mug,再用 sel_name 找到“蓝色”的那个 mug,然后再用 sel_pos 从 branch 中挑出“左边”的那根树枝。
3. 最终,这段自动生成的代码就能基于输入的 RGBD 观测,输出一张 3D 注意力图。
3D 注意力图生成的 API
为使得 VLM 可以生成能直接驱动机器人感知的程序,作者特别设计了一套简单的 API:
● detect: 给定一个物体名(如 "mug"),从多视角 RGBD 中检测所有属于这个类别的实例,输出 3D 点云和特征。
● sel_name: 从同类别物体中按语义属性(如“蓝色”)选择。
● sel_pos: 根据位置关系(如“左边”)来挑选具体实例。
他们用 DINOv2 提取每张图的 2D 语义特征,再通过深度与相机内外参融合成 3D 点云及其语义特征,然后用 DBSCAN 聚类得到物体实例。各位读者应该对这个过程不太陌生了,这是近年来非常主流的“2D->3D特征融合+聚类” pipeline。
视觉-运动策略学习
有了注意力图后,就可以用它来训练一个低层的模仿学习策略,让机器人根据 3D 注意力图,输出一段连续的 6D 末端执行器轨迹(位置+姿态)。
相比于直接从语言+图像一步到位输出动作,他们这种做法显得非常清晰:
● VLM + 代码先解析出任务相关区域(通过注意力图“高亮”)。
● 再由 PointNet++ 等网络读入这些三维注意力信息,输出连续轨迹,而不是像以前一些方法那样只输出关键帧(keypose)。
同时作者还采用了一个小trick,他们在 PointNet++ 上加了残差连接(residual),并在消融实验中表明这种设计能显著提高性能,说明传播注意力信息到动作生成的确非常关键。
本文通过一系列大规模仿真和真实机器人实验,重点回答以下四个问题 :
● 当任务指令存在歧义性时,现有模仿学习算法表现如何?单纯增加演示数据能否解决这一问题?
● 由 VLM 生成的代码是否能正确地将自然语言指令映射为 3D 注意力图?
● 使用 3D 注意力图作为下游视觉-运动策略的中间表征是否合适?
● 整个从语言到动作的系统在全面的仿真和现实评估中表现如何?
我们一起来看看实验的结果如何:
现有模仿学习算法在歧义任务下的表现
作者首先在 Pack Battery 任务上评估了两种现有模仿学习方法:Action Chunking Transformer(ACT)和 Diffusion Policy(DP),其中 DP 分别测试了基于 RGB(DP (RGB))和基于点云(DP (PCD))两种输入 。
● 在简单任务(如仅有一个电池和单个固定插槽)下,这些基线方法均能很好完成任务。
● 但随着拾取物体或插槽数量增加,导致任务歧义显著时,成功率显著下降。
● 在更具体的实验里:
○ 当拾取选项增多(如 4 个电池 vs 1 个插槽)时,主要失败发生在拾取阶段;
○ 当放置选项增多(如 1 个电池 vs 12 个插槽)时,失败多出现在放置阶段。
实验还表明,单纯通过增加演示数量(从 30 到 540)并不能有效解决这种歧义带来的性能下降
图4|Pack Battery 任务评估不同模仿学习方法实验结果
从语言到 3D 注意力图的评估
作者在仿真中建立了基准,定量评估了从自然语言到 3D 注意力图的映射能力 。
● 如下图所示,在 Hang Mug 与 Pack Battery 场景上,该方法成功率分别为 97% 与 94%,总体达到 191/200。
● 系统不仅能在简单指令(如“把最右边的电池放到左列的插槽”)下正确高亮目标电池和插槽,还能在更复杂甚至带自我修正的指令(如“把红杯挂在最上面的树枝,哦不,是绿杯”)中依然准确生成对应 3D 注意力图。
图5|Pack Battery 和Hang Mug多任务成功率分析
使用 3D 注意力驱动的扩散策略评估
接着,作者评估了以 3D 注意力图为条件的低层视觉-运动策略(即 CodeDiffuser 的扩散策略)。
● 在 Pack Battery 任务中,随着演示次数增加到约 120,成功率迅速提高并达到 90% 以上,表明这种基于注意力的策略可以有效解决任务歧义。
● 在进一步提高拾取和放置选项导致任务歧义增强的设置中,成功率仍保持在较高水平,显示出 3D 注意力图是应对下游任务歧义的稳健表征 。
● 还在未见过的高歧义场景上测试了泛化能力,结果表明如果在训练中见过足够多的多样场景,策略能够很好地推广到新情形。
图6|3D注意力机制的可视化结果(结合扩散策略)
整体系统在仿真与真实世界的验证
作者在仿真中与多种基线进行对比,包括:
● 使用 2D 注意力代替 3D 注意力的变体。
● 去除 PointNet++ 中残差连接的 ablation。
结果显示:
● 在 Pack Battery 与 Hang Mug 的仿真中,CodeDiffuser 总体成功率达 86.5%,明显高于 Lang-DP(约 6-12%)及 Lang-ACT(~5-6%)。
● 在真实世界的 Hang Mug、Pack Battery 与 Stow Books 中也持续超越基线,平均成功率为 80% 。
本文提出了一个高斯阴影模型实现了在不同环境中的三维人体模型重建的,并能够实现非常出色的阴影渲染效果。这个模型适用于动态场景,并且可以进行迭代细化。重建的角色即便在新环境中重新定位和重新照明,也能够拥有逼真的阴影渲染。同时本文还通过延迟渲染等小trick加快了计算的速度,使得该方法能够以很少的计算成本(0.3秒)为代价,大大提升模型的阴影渲染能力。