想象你走进一家星级酒店,想请门童帮个忙:“请把我房间里靠窗行李箱旁的红色收纳盒拿到门口,小心别碰花架上的白瓷瓶。”门童并未受过这个任务的专门培训,但他掏出随身携带的“立体房间图纸”——那是一个由密密麻麻小方格组成的空间模型。他先请一位“知识通”(懂常识的语言万事通)解读指令:红色收纳盒在行李箱旁边,白瓷瓶要绕开,门口是目的地。再请一位“辨认师”(眼神极好的视觉专家)透过监控确认:没错,红盒在左前柜子的第二格。门童在图纸上把红盒所在的小方格涂成绿色高地,把白瓷瓶周围涂成红色禁地,然后顺着这张“价值海拔图”一路走过去——绕开禁区,抵达目标,稳稳抓取。 这就是 VoxPoser 的日常。它不训练新模型,只靠大语言模型(LLM,负责“读懂指令”“生成计划”)和视觉语言模型(VLM,负责“看世界”)协同,在一张 3D 体素图纸上画出“哪里值得去、哪里不能碰”的价值地图,让机械臂照着“地势起伏”就能完成开门、叠衣、递螺丝刀等三维操作。你会在本文看到:语言如何变成空间中的红绿标记、体素网格如何成为机器人的“棋盘”、机械臂又如何在这张棋盘上零样本规划出一条安全轨迹。
理解 VoxPoser 这类“LLM + 机器人”新范式,是步入具身智能研究的基础门槛——它告诉你语言模型不仅能聊天,更能直接指挥物理世界的机械臂干活,这是 AI 从业者在机器人领域最前沿的落点之一。
目录
可视化演示
本节配有交互动效(进入视口后自动加载,约 3KB)。
末端执行器 体素价值地图参数 价值计算公式: d: 距离函数 σ: 衰减系数 V_aff(x) = exp(-d(x,obj)/σ) V_avd(x) = exp(-d(x,obs)/σ)
语言驱动核心——语言指令如何变成图纸上的红绿标记
门童拿到客人的一句话,第一件事不是冲进房间,而是先把这句话翻译成“房间图纸上的标记”。客人说“红色收纳盒在行李箱旁”,门童心里立刻浮现一个区域:靠窗、行李箱旁、那个位置。他发现一个关键问题——语言是线性的、抽象的,而房间是立体的、具体的。要完成操作,必须把“红色收纳盒”这个名词钉在一个具体的三维坐标上。VoxPoser 的做法,就是让大语言模型把语言指令翻译成一张“价值地图”:空间中的每个小格(体素)都被赋一个分数,分数高代表“值得去”(目标物、可抓取区域),分数低代表“别去”(障碍物、危险区),执行时顺着高分方向走就行。
这套设计的妙处在于,它把“语言理解”和“动作执行”彻底解耦。LLM 只需要回答一个问题——“根据这句话,这个空间里哪里好、哪里不好?”而不需要回答“机械臂每个关节该转多少度”。后者交给规划器顺着价值图的“地势”自行求解。于是,机器人抓取任务从“学一个从语言到动作的函数”变成了“构造一张空间价值图”,难度骤降。价值地图的数值来自多个来源的叠加:常识语义、视觉感知、任务规则,每一项都以“打分”的形式注入。
从数学上看,最终的价值地图 V(q) 是对空间中每个体素 q 的综合打分:
回到酒店的例子:知识通一边喃喃“红盒在左前柜,白瓷瓶在花架上”,一边在图纸上画圈和打叉——他画的不是文字,而是空间中的分数。门童接过的,是一张遍布红绿标记的“海拔图”,顺着高地走,就对了。
- 体素坐标$q$ 表示三维空间中被离散化的一个小立方格(体素),是机器人决策的最小单位。
- 规则分数$R_s(q)$ 是第 $s$ 条语言规则对位置 $q$ 的“评分”,如“红色收纳盒的区域为正分、白瓷瓶区域为负分”。
- 规则权重$\lambda_s$ 是第 $s$ 条规则的优先级权重,重要性越高的规则权值越大(如“别碰易碎品”的权重通常高于“走近一点”)。
- 求和叠加$\sum$ 把所有规则的贡献累计起来,得到每个体素的最终价值,形成用于规划的地形图。
双大模型协作——知识通与辨认师各司其职
酒店门童之所以敢说“不用培训我也会”,是因为他有两位得力搭档。第一位是“知识通”——通晓万物常识的语言万事通(GPT-4 这类 LLM)。客人说“红色收纳盒”时,知识通知道“收纳盒通常是方形的、放在柜子格子里的”,他还能推理出“先开柜门才能拿到盒子”这种常识因果。第二位是“辨认师”——眼神犀利的视觉专家(VLM 与开放词汇检测模型)。辨认师盯着摄像头画面,能在嘈杂的背景中精确标出“红色收纳盒”的边界框和一个三维坐标。两个人一个管“理解和推理”,一个管“看见和确认”,缺一不可。
VoxPoser 的分工逻辑很清晰。LLM 负责输出可执行的“功能代码”——它不直接输出动作序列,而是输出用 Python API 表达的价值函数定义,比如“在检测到的 red_box 位置周围生成高斯正分,在 vase_location 周围生成负分”。VLM 与开放词汇检测器负责把所有语言提到的物体在 RGB-D 图像中找出来并输出 3D 位置坐标。两者汇合后,价值地图才真正成形。如果没有知识通,辨认师不知道“旁边”“小心”“别碰”这些语义关系;如果没有辨认师,知识通只能对着空气画图纸,落不了地。
两个模型的输出最终被整合为价值地图的修正项:
知识通和辨认师配合默契:一个负责“大概在哪里”,一个负责“确切在哪里”。门童只要把两张半透明图纸叠在一起透光看,红绿标记立刻精确起来。
- 常识层价值$V_{\mathrm{LLM}}(q)$ 是 LLM 从语言指令中推导的语义价值场,例如“目标物体的大致方位、需要避让的区域”。
- 感知层价值$V_{\mathrm{VLM}}(q)$ 是 VLM 从 RGB-D 观测中提取的感知价值场——把检测到的物体位置用尖峰或边界框区域精确标注。
- 叠加合成$+$ 表示两者按体素对应相加,常识提供“语义方位”,感知提供“精确坐标”,缺一不可。
体素网格表征——把连续空间切成小格子
门童手中的立体图纸不是平滑的,而是像乐高积木一样由一个个小方块组成——这就是“体素网格”。为什么不用连续坐标?因为连续空间对规划器极不友好:价值函数没有统一离散单元,优化问题难以下手。而把空间切成一个个小方块后,每个方块都是一个独立的“决策单元”,该去哪、该避开哪变得一目了然。体素(Voxel)就是 3D 中的像素:像素是平面上的小格子,体素是空间中的小立方体。机器人从深度相机或激光雷达获得点云后,把点云填进这些小立方体,就得到了一张离散化的空间模型。
体素的分辨率(小格子的尺寸)直接决定了规划质量。格子太大,可能把目标物和障碍物糊在一个格里,价值地图失真;格子太小,计算量爆炸。VoxPoser 在实践中通常选择厘米级分辨率,比如 1cm 或 2cm 的体素,在精度和效率之间取得平衡。更关键的是,体素化让“价值标注”变成了一件极其自然的事——对每个格子问一句“这个位置对你友好吗?”友好就加分,不友好就减分。语义价值、感知价值、碰撞约束全部落在同一套网格上,相互叠加。
体素空间的占用标注用数学表达如下:
门童的图纸从平滑的白纸变成了一张精细的方格纸。他不用拿着尺子量精确坐标,只需低头看格子——哪些格子“有货”不能踩,哪些格子“空着”能走人。
- 占据函数$\mathcal{O}(q)$ 接受一个体素坐标 $q$,返回该位置是否被物体占据——这是碰撞检测的基础。
- 占据集合$\mathcal{V}_{\mathrm{occ}}$ 是空间中所有被物体占据的体素集合,由点云填充体素时产生。
- 条件判定$\begin{cases} 1 & q \in \mathcal{V}_{\mathrm{occ}} \\ 0 & \text{otherwise} \end{cases}$ 是分段条件判断——在占据集合内记 1,之外记 0,形成一张二值占据图。
零样本操作规划——顺着价值山坡一路下滑
门童不需要在入职时接受“取红盒任务”的专项训练。他只需要学会一个通用技能——“看图纸走路”。这正是 VoxPoser 零样本操作的核心:不训练任何机器人模型。传统的流程是“拿几万个抓取数据训练一个网络”,VoxPoser 的流程则变成“用现成的 LLM 生成价值地图,再用现成的规划器求解路径”。每来一个新任务,不需要重新训练,只需要重新生成一张价值地图。
具体的操作规划是这样的:机械臂从一个起始位姿出发,每一步都尝试向“价值增量最大的方向”移动。价值地图就像一片连绵起伏的山地,目标是那块最高的绿色高地,障碍是凹陷的红色深坑。规划器从起点做梯度上升或轨迹优化,找到一条通往高价值区域的路径。VoxPoser 更进一步,将规划出的目标点与关键姿势回传给一个视觉伺服控制器——机械臂在运动过程中实时观察目标的像素位置,不断修正自己的手眼坐标,最终完成厘米级精度的抓取。
从数学上看,规划器要找到一条“总收益最大”的轨迹:
门童踩着图纸上的绿色高地方向走,每一步都选“地势更高”的方向,避开红色洼地。他没学过“怎么取红盒”,但他学会了“怎么走好路”——这就是零样本规划的魔力。
- 轨迹定义$\tau(t)$ 是时刻 $t$ 机械臂末端的位置,整条轨迹 $\tau$ 是从起点到目标的路径序列。
- 价值累计$\sum_{t=0}^{T} V(\tau(t))$ 把路径上每一步的价值全部加起来,衡量这条路径的总“可取程度”。
- 最优轨迹$\arg\max_{\tau}$ 在所有可行路径中选出累计价值最高的那一条,这就是规划器的输出。
障碍反馈重规划——发现新情况就改图纸
门童第一次进房间时,图纸上画的是“红盒在左前柜第二格”。可走到一半,他发现地毯上躺着一只客人遗留的拖鞋——图纸上没画!如果无视拖鞋直接踩过去,不仅可能绊倒,还可能撞到旁边的柜子。门童的做法是:停下脚步,掏出对讲机让辨认师重新看一眼,把新发现的拖鞋位置快速补画到图纸上,然后微调路线绕行。这就是 VoxPoser 的重规划机制:感知—更新—再规划—再执行的闭环循环。
在真实系统中,VoxPoser 在初始规划后并不会“闭眼操作到底”。在操作过程中,机器人的深度相机持续返回最新的点云数据。当点云与价值地图预判的占据状态不一致时(例如出现了未标注的新障碍物,或者目标物被碰移位了),系统就会把差异转换为价值地图的修正项——在新障碍物位置叠加负值。修正后的价值地图驱动规划器重新求解一次轨迹,避开新障碍。这个过程可以循环迭代,直到机械臂到达目标并完成抓取。
数学上,重规划就是价值图的增量修正:
门童蹲下来,用笔在图纸上快速画了个红色圆圈,标注“此处有拖鞋”,然后选择绕行路线。图纸旧了不要紧——能随时改,就是好图纸。
- 旧价值图$V_{\mathrm{old}}(q)$ 是进入操作前生成的价值地图,包含初始语义和视觉信息。
- 新障碍集合$\mathcal{Z}_{\text{new-obstacle}}$ 是当前观测中刚发现、此前从未标记的障碍物体所占据的体素集合。
- 惩罚修正$-\eta \cdot \mathbb{1}[q \in \mathcal{Z}_{\text{new}}]$ 对新增障碍所在格子的价值进行扣分,$\eta$ 是惩罚强度,$\mathbb{1}$ 是指示函数(在集合内为 1,否则为 0)。
- 循环迭代整个过程可以连续进行,每次感知到新差异就更新一次地图,直到操作稳定成功。
免训练优势局限——即插即用的老手也有短板
酒店最欣赏门童的一点是:不用为每个客人单独做一次“上岗培训”。今天取红盒、明天送咖啡、后天搬椅子——只要语言能描述,他就能通过“图纸标记”照做。这就是 VoxPoser 最核心的工程价值:免训练。传统机器人操作需要针对每个任务收集数据、训练模型、调参验证。VoxPoser 省掉了这个冗长的流水线,把“技能习得”外包给了大语言模型的世界知识。
但老手也有短板。第一,VoxPoser 的感知依赖 VLM 的能力上限:如果视觉模型把红盒看成蓝盒,价值地图就标错了地方。第二,它的主线是一次性规划 + 有限反馈修正,面对长时序、多步骤的复杂操作(比如“洗菜切菜炒菜出锅装盘”)时,LLM 生成的代码和规划器的优化都会变得极其复杂甚至不可控。第三,价值地图的体素分辨率受限于点云质量和算力,在高精度装配场景中可能力不从心。这些局限提醒我们:VoxPoser 不是万能的,但它在“语言指令驱动的单步短时序操作”这一巨大范围内,展现了零样本泛化的威力。
从工程成本角度,VoxPoser 的优势可以直观地写为:
门童的老练来自十几年的常识积累,而不是每一次任务的专项训练。不过,遇到满汉全席这种复杂长流程任务,他也得摇头——但取个红盒、递把螺丝刀这种日常活,他眼都不眨一下。
- 即插即用成本$C_{\mathrm{VoxPoser}}$ 是部署 VoxPoser 解决一个新任务的全部成本,它只是三次 API 式调用的相加:LLM 生成价值代码、VLM 做感知定位、运动规划器求解轨迹。
- 无训练成本$C_{\mathrm{VLA}}$ 是传统 VLA 模型的成本——采集百万级机器人操作数据、GPU 集群训练数周、部署调优——通常是 VoxPoser 的几十倍甚至上百倍。
- 成本对比$\ll$ 表示 VoxPoser 的成本远小于传统方案,这是它最大的工程卖点。
AI 应用场景
智能家居服务机器人
阶段:自然语言指令 → 3D价值地图构建 → 操作规划执行
解决的问题:传统家用机器人需要针对每个家庭环境重新标定物体位置和操作路径,成本极高。VoxPoser 范式让机器人直接听懂主人随口一句话(“把茶几上那本蓝色封面的书放到书架上第三层,别碰旁边的咖啡杯”),通过价值地图在家庭环境中零样本完成物品搬运。
具体案例:独居老人对家中陪护机器人说:“帮我把床头柜上的药盒拿到餐桌上。”机器人的 LLM 模块生成“药盒所在区域 + 餐桌目标区域 + 沿途障碍”的价值函数,VLM 在 RGB-D 画面中定位药盒坐标,规划器生成一条先绕过床脚、再避开椅子扶手的平滑轨迹,完成取送,并在遇到中途出现的宠物猫时重规划绕行。
工业生产线的语言化分拣
阶段:操作员指令 → 目标识别 → 价值地图规划 → 避障抓取
解决的问题:传统工业分拣机械臂靠人工示教或离线编程切换任务,重启换产时间长达数小时。VoxPoser 范式允许操作员用语音即时切换分拣逻辑,无需停机重新编程。
具体案例:在小型装配线上,班组长说:“把传送带上所有红色卡扣捡到 3 号料箱,注意别碰 2 号工位正在加工的传感器。”"机械臂即采即用:LLM 输出红色卡扣定位与 3 号料箱坐标的价值函数,VLM 在实时视频中锁定卡扣位置,规划器连续多次往返抓取,并在传感器工位周围自动保持安全距离。
Python 演示
import numpy as np class VoxelValueMap: """简化版 VoxPoser:体素价值地图 + 梯度路径规划""" def __init__(self, n=8): self.n = n self.grid_size = n # 体素坐标索引 self.X, self.Y, self.Z = np.meshgrid( np.arange(n), np.arange(n), np.arange(n), indexing='ij' ) self.value = np.zeros((n, n, n)) # 目标物(视觉模块输出的 3D 位置) self.target_pos = np.array([2, 6, 4]) # 障碍物(点云占据检测发现的禁区) self.obstacles = [(3, 3, 4), (3, 4, 4), (4, 3, 4)] def add_language_rule(self, instruction): """LLM 规则:把语言描述翻译成对体素空间的打分""" if '杯子' in instruction: gx, gy, gz = self.target_pos dist2 = (self.X - gx) ** 2 + (self.Y - gy) ** 2 + (self.Z - gz) ** 2 self.value += 2.0 * np.exp(-dist2 / 6.0) # 目标区域给正分 if '避开' in instruction or '不要碰' in instruction: for (ox, oy, oz) in self.obstacles: dist2 = (self.X - ox) ** 2 + (self.Y - oy) ** 2 + (self.Z - oz) ** 2 self.value -= 1.5 * np.exp(-dist2 / 3.0) # 禁区给负分 def add_visual_observation(self, observed_pos): """VLM 感知:视觉定位目标后,在观测处叠加精确尖峰""" gx, gy, gz = observed_pos dist2 = (self.X - gx) ** 2 + (self.Y - gy) ** 2 + (self.Z - gz) ** 2 self.value += 1.0 * np.exp(-dist2 / 2.0) def plan(self, start): """沿价值梯度上升:每一步走向相邻 26 个方向中价值最高的那个""" path = [start.copy()] cur = start.copy() while np.linalg.norm(cur - self.target_pos) > 1.0 and len(path) < 200: best_next, best_val = None, -np.inf for dx in (-1, 0, 1): for dy in (-1, 0, 1): for dz in (-1, 0, 1): if dx == 0 and dy == 0 and dz == 0: continue nxt = cur + np.array([dx, dy, dz]) if np.any(nxt < 0) or np.any(nxt >= self.n): continue v = self.value[nxt[0], nxt[1], nxt[2]] if v > best_val: best_val, best_next = v, nxt if best_next is None: break cur = best_next path.append(cur.copy()) return np.array(path) def main(): """主流程:语言规则 + 视觉观测 → 价值地图 → 路径规划""" vox = VoxelValueMap(n=8) vox.add_language_rule('去拿红色杯子,不要碰台灯') # 模拟 VLM 从图像中感知到的目标位置(与真实位置略有偏差) observed = vox.target_pos + np.array([1, 0, 0]) vox.add_visual_observation(observed) start = np.array([1, 1, 1]) path = vox.plan(start) print(f'规划路径点数: {len(path)}') print(f'终点坐标: {path[-1]}, 价值: {vox.value[path[-1, 0], path[-1, 1], path[-1, 2]]:.2f}') print('路径是否避开障碍:', all(tuple(p) not in vox.obstacles for p in path)) if __name__ == '__main__': main()
self.value = np.zeros((n, n, n))创建 3D 体素空间,每个格子初始分数为 0,等待被“标注”if '杯子' in instruction模拟 LLM 理解指令:把语言里的名词映射到空间坐标并扩散正价值self.value -= 1.5 * np.exp(-dist2 / 3.0)障碍物区域用高斯负分“画禁区”,越近分数越低self.value += 1.0 * np.exp(-dist2 / 2.0)VLM 视觉定位后在精确坐标叠加正分尖峰,修正 LLM 的粗略估计for dx in (-1, 0, 1)遍历 26 个相邻方向,模拟机械臂的候选手部移动方向v = self.value[nxt[0], nxt[1], nxt[2]]查询相邻体素的价值,决定下一步走向np.linalg.norm(cur - self.target_pos) > 1.0判断是否已到达目标附近(欧氏距离小于阈值)path.append(cur.copy())把每一步位置加入路径,最终得到一条完整的操作轨迹
常见误区
误区听到“VoxPoser 用大模型驱动机器人”,第一反应是“它一定训练了一个机器人专用的大模型,把文本和机械臂动作对齐了”。其实 VoxPoser 不做任何模型训练——LLM、VLM、开放词汇检测器全部是现成的预训练模型,VoxPoser 做的是“编排”而不是“训练”。
正解VoxPoser 的真正工作是构造价值地图。它让 LLM 用代码的形式输出空间价值函数,让 VLM 输出物体坐标,然后交给规划器。整个过程没有一个梯度更新的步骤。它像一个交响乐指挥,乐器(大模型)都是现成的,指挥的工作是让它们在同一首曲子里配合,而不是重新造一把小提琴。真正被训练过的只有底层的 GPT-4、LLaVA、GroundingDINO,而 VoxPoser 本身只是“调用 + 组合”。
为何常见:大多数机器人操作方案(如 VLA)确实需要大规模训练,这种行业惯性让初学者容易默认 VoxPoser 也会训练一个模型,忽略了它“零训练、纯组合”的设计本质。
误区以为 VoxPoser 是“语言 → 坐标 → 机械臂动作”的一条龙直出,GPT-4 直接吐出“目标位置 (0.3, 0.5, 0.8)”或“关节角 30°, 45°, 60°”。但大模型没有实时感知识别能力,直接输出坐标在复杂环境中必然错得离谱。
正解VoxPoser 的 LLM 输出的不是坐标,而是“可执行的代码”——调用视觉定位 API 获取物体坐标、用数学函数定义价值图、调用规划器求解轨迹。它像门客手里的“任务指南”而不是“踩点清单”:指南写着“红盒在柜子第二格,白瓷瓶别碰”,具体位置由辨认师现场查明。这样既发挥 LLM 的常识推理优势,又避开它没有实时感知的短板。
为何常见:把“大模型输出动作”直观理解成“输出坐标”最符合直觉。实际上 VoxPoser 把坐标确定的工作外包给了视觉模块,LLM 只负责结构化的任务逻辑。
误区看到价值地图的绿色高分区,初学者容易把它理解成“目标物体在这里的概率分布”,把 V(q) 当作后验概率 P(object | q)。
正解价值地图的每个格子的数值不是概率,而是“对完成任务的友好程度评分”。它可以是正的(目标区、可通行区)、负的(障碍区、禁区),甚至叠加了“别碰贵重物品”这类语义权重,数值总和也不必归一化为 1。更形象地说,它是为决策服务的“吸引力势场”,而非统计推断。概率要满足 [0,1] 且有归一化约束,而价值分数没有任何这些限制——就像图纸上的“绿色”不代表“盒子一定在这里”,而代表“朝这里走对我来说是好的”。
为何常见:机器学习语境里“打分网络”常见于概率输出(分类 Softmax、检测置信度),初学者自然套用概率视角,导致对负值和不归一化的困惑。
误区看到 VoxPoser 能完成开门、叠衣、递螺丝刀等多样任务,就以为它能像人一样做“洗菜切菜炒菜出锅装盘”这种长时序复杂操作流程。但论文中的实验大多集中在单步或短时序操作。
正解VoxPoser 的核心是一次性价值地图规划 + 有限的反馈修正,它擅长的是“从当前状态到单个目标状态”的短时序操作。复杂的多步骤任务需要分解、子目标排序、状态跟踪和分支处理,这些需求会迅速撑爆 LLM 生成的单段代码和规划器的求解能力。门童擅长取一件东西,但让他做一桌菜就超出能力范围了。VoxPoser 是“单步操作的利器”,不是“长时任务的银弹”。
为何常见:VoxPoser 在演示视频中展现的多任务能力太亮眼,容易让人产生“能力无限”的错觉,忽略了评测基准本身以短时序为主的事实。
面试题
Q1. VoxPoser 的核心思想是将语言指令转化为以下哪种空间表达来引导机器人操作?
- A.关节角的直接数值序列
- B.3D 体素上的价值地图← 正确答案
- C.目标物体的 CAD 模型
- D.视觉特征的隐向量编码
答案:B。VoxPoser 的核心是用 3D 价值地图引导操作,每个体素被赋予分值,规划器顺着高分区域走。A 是传统运动规划的初始输出,C 和 D 都不是 VoxPoser 的中间表征,价值地图才是其核心设计。
Q2. 在 VoxPoser 系统中,大语言模型(LLM)主要负责以下哪项工作?
- A.从 RGB-D 图像中识别并定位物体边界框
- B.生成描述空间价值函数的可执行代码← 正确答案
- C.直接输出机械臂每个关节的力矩
- D.对点云进行滤波和体素化预处理
答案:B。LLM 在 VoxPoser 中充当“知识通”,根据语言指令生成价值函数的代码定义。视觉定位是 VLM/开放词汇检测的任务;关节力矩由运动规划器控制;点云预处理与 LLM 无关。
Q3. 关于体素(Voxel)的表述,下列哪一项是正确的?
- A.体素是 2D 平面上的一个像素点
- B.体素是 3D 空间中的一个小立方体单元← 正确答案
- C.体素是语言模型中的词嵌入向量
- D.体素是机器人关节的运动范围描述
答案:B。体素是“3D 像素”——把连续空间离散为小立方格。它与 2D 像素、词向量、关节运动范围都没有直接关系。VoxPoser 正是在体素网格上标注价值分数。
Q4. VoxPoser 中“零样本(zero-shot)”操作的含义是什么?
- A.机器人不需要任何传感器数据就能操作
- B.新任务不需要针对机器人模型重新训练← 正确答案
- C.语言模型不需要预训练就能理解指令
- D.机械臂从静止状态直接开始运动
答案:B。零样本指面对新任务时,不收集新数据、不微调模型,直接用预训练的 LLM/VLM 生成价值地图并规划动作。“不需要传感器”和“不预训练”都是错误理解,机械臂也需要合理初始位姿。
Q5. 当机械臂执行中发现图纸上没有的新障碍物时,VoxPoser 应该如何处理?
- A.忽略障碍物,保持原轨迹继续执行
- B.停下当前任务,等待人工干预处理
- C.在新障碍体素上叠加负价值并重新规划← 正确答案
- D.重启价值地图生成流程从头开始
答案:C。VoxPoser 的反馈机制是把新增障碍感知结果写入价值地图(叠加负分),再让规划器基于修正后的地图重新求解路径。完全忽略会导致碰撞;中止等待或全盘重启都过于低效。
Q6. 关于 VoxPoser 与传统 VLA(视觉语言动作模型)的区别,下列哪项最准确?
- A.VLA 需要大规模数据训练,VoxPoser 不需要训练← 正确答案
- B.VLA 使用激光雷达,VoxPoser 使用深度相机
- C.VLA 只能处理文本,VoxPoser 只能处理图像
- D.VLA 是开源框架,VoxPoser 是商业闭源产品
答案:A。核心区别是训练范式:VLA 必须用机器人与环境交互的海量数据训练策略模型,VoxPoser 则全靠现成的预训练大模型组合出价值地图,无需针对性训练。B、C、D 均不符合两者的技术实质。
Q7. VoxPoser 系统构建价值地图时,主要融合了哪些信息源?
- A.LLM 依据指令和常识生成语义价值场← 正确答案
- B.VLM 从 RGB-D 图像中提取物体精确位置← 正确答案
- C.运动规划器对轨迹进行全局时间优化
- D.点云占据信息标记障碍物区域← 正确答案
答案:ABD。价值地图 = 语义价值场(LLM)+ 感知位置场(VLM)+ 障碍占据标记(点云)。运动规划器是价值图的消费者而非生产者,它不参与地图构建。因此 A、B、D 正确,C 错误。
Q8. VoxPoser 中的“开放词汇检测”模块发挥什么作用?
- A.能够识别训练数据中从未见过的物体类别← 正确答案
- B.将语言描述与图像中的任意物体区域对齐← 正确答案
- C.替代运动规划器完成轨迹优化求解
- D.输出被查询物体在 3D 空间中的位置← 正确答案
答案:ABD。开放词汇检测(如 GroundingDINO)的“开放”指不限于固定类别表,能按任意文本查询找到图像中的对应物体并输出位置(3D 通过深度反投影)。它不负责轨迹规划,所以 C 错误。
Q9. 与传统 VLA 方法相比,VoxPoser 的主要优势体现在哪些方面?
- A.新任务无需训练即可部署← 正确答案
- B.价值地图可视化提供可解释性← 正确答案
- C.长时序复杂操作表现尤其出色
- D.模块化设计便于替换升级组件← 正确答案
答案:ABD。VoxPoser 的最大卖点是免训练部署、价值图可解释、组件模块化(换 LLM/VLM 即可升级)。但它并不擅长长时序复杂任务,C 恰恰是它的短板(多步任务容易因生成代码复杂而失控),因此不选 C。
Q10. VoxPoser 生成的“价值地图”上,一个体素获得较大负值意味着什么?
- A.该位置大概率存在目标可抓取物体
- B.该位置附近存在需要避开的物体或区域← 正确答案
- C.该位置是机械臂的初始参考点
- D.该位置是任务结束后的工作台区域
答案:B。负值表示该体素对完成任务有负面影响,通常是障碍物、易碎品或禁区所在区域。规划器在搜索路径时会避开低价值区域,这正是“红色禁区”的数值来源。