PhysCaP:以物理信息探索为代码即策略智能体提供物理世界接地 PhysCaP: Grounding Code-as-Policy Agent with Physics-Informed Exploration
免训练质量/刚度估计加双智能体探索,让机器人主动摸出隐藏物理属性。
前置知识
Code-as-Policy(代码即策略)
一种机器人决策范式:不训练端到端策略网络,而是让大语言模型在运行时生成可执行的 Python 代码,代码中调用感知(get_object_pose)、控制(goto_pose、open_gripper)等模块化 API 来完成任务。优点是可解释、可组合、样本高效,能做闭环推理和状态跟踪。
PhysCaP 的整个框架建立在 CaP-Agent0 之上,理解这一范式才能明白为什么物理探索可以做成可插拔的 API 层。
VLA(Vision-Language-Action)模型
用大规模模仿学习预训练的视觉-语言-动作模型,直接把图像和语言指令映射为低层机器人动作,如 OpenVLA、π0.5、MolmoAct2。擅长复现演示中的复杂操作,但本质是被动观察的前馈映射,不会主动发起信息获取式交互。
VLA 是本文最主要的对比对象之一,论文用 LIBERO 仿真证明它们在物理属性被隐藏时成功率接近零。
主动感知(Active Perception)
智能体不满足于被动观察,而是主动选择动作(如推、举、捏)来降低环境不确定性、获取缺失信息。核心权衡是:信息不足就行动可能失败(欠探索),过度交互则浪费时间(过探索)。
本文的核心问题就是如何在机器人操作中实现高效主动感知,Planner 和 Prioritizer 都是为这个权衡服务的。
机器人雅可比矩阵与关节力矩
雅可比矩阵 $J$ 描述末端执行器速度与关节角速度的线性映射。机械臂静止持物时,各关节力矩包含臂自重与物体重力项;利用末端竖直方向的雅可比投影 $J_z$,可以把力矩差分换算成物体所受重力,进而估计质量。
get_mass 模块的估计公式 $\hat{m} = (J_z \cdot \Delta\tau)/(g|J_z|^2)$ 完全建立在这一力学关系上,是读懂方法章节的关键。
LIBERO 基准
一个广泛使用的机器人操作仿真基准,提供标准化任务、物体资产和评估协议,大多数 VLA 模型都在其上发布过公开 checkpoint,便于公平对比。
作者因真实硬件(PiPER 臂)与 VLA 训练平台不匹配,选择在 LIBERO 中复现空罐任务来与 OpenVLA 等基线对比。
研究动机
现有机器人系统在物理属性被隐藏的任务上表现很差。VLA 模型(OpenVLA、π0.5、MolmoAct2 等)靠大规模模仿学习复现演示行为,本质是被动观察的前馈映射,无法推断质量、刚度、容器是否为空这类看不见的属性:在本文的仿真空罐任务中,OpenVLA 成功率 0%、π0.5 仅 4%、MolmoAct2 只有 23%;真实世界里纯视觉的 CaP 基线在识别空罐任务只得 2/10、挑熟牛油果只得 1/10。强化学习原则上能发现探索行为,但探索动作的奖励稀疏且延迟,样本效率低,产出的策略也难解释、难修改。现有 code-as-policy 系统虽然擅长语义和流程推理,却缺乏主动获取缺失物理信息的机制;而已有的交互式感知方法又把感知与任务级决策解耦,不知道该测什么、何时停止。
本文的目标是本文要让 code-as-policy 机器人智能体在没有任何专用传感硬件(无触觉/力传感器)的条件下,通过物理交互主动获取任务相关的潜藏物理属性——具体是物体质量和刚度——并在『信息不足就贸然行动』与『过度探索浪费时间』之间取得平衡。衡量标准是:在找隐藏方块、识别空罐、挑熟牛油果等部分可观测的桌面操作任务上,同时保持高任务成功率、更少的物理交互次数(OI)和更短的机器人执行时间,且框架与具体骨干模型无关、可即插即用。
与已有工作不同的是,本文的独特切入是把主动感知做成 code-as-policy 框架内一个可插拔的『物理信息探索层』,由三部分全新组合而成:免训练的 PhysX 模块仅用夹爪电机电流与关节力矩这类本体感知反推质量和刚度,不需要额外传感器;Planner 智能体判断何时需要探索、何时信息已足够;Prioritizer 智能体用视觉启发式过滤不合理的交互并按优先级排序。与已有工作相比,本文第一次把『传感器级物理估计』和『任务级探索决策(测什么、先测谁、何时停)』统一进同一个 agentic 闭环,而不是像前人那样解耦二者或穷举式探索。
核心方法
直觉上,人挑牛油果是先看颜色缩小候选范围,再捏一捏确认熟没熟——视觉先验负责『看』,物理交互负责『摸』。PhysCaP 复刻了这一过程,技术路线分三层:(1) 物理层:两个免训练的 PhysX 模块 get_mass 和 get_stiffness,仅用标准夹爪的本体感知(关节力矩、电机力度)估计物体质量和刚度;(2) 决策层:Planner 智能体根据任务描述和场景图像判断现有信息是否足以执行任务,不足时输出 JSON 格式的探索候选列表,并充当动态停止准则;Prioritizer 智能体过滤掉视觉上不合理的候选,给剩余候选打优先级分并排序;(3) 执行层:coding agent 生成可执行 Python 代码,调用 get_object_pose、goto_pose、open/close_gripper 及两个 PhysX API 闭环完成任务。系统构建在 CaP-Agent0 之上,用 Molmo2 做目标定位、ZED 2i 深度相机提供深度,Planner/Prioritizer/Coding 三个智能体共用 Gemini 3.1 Pro 骨干。
核心创新有两点。第一,免训练的物理属性提取:get_mass 用固定提升轨迹把末端抬高 15cm,先空抓记录基线力矩 $\tau_{empty}$,再持物记录 $\tau_{loaded}$,差分力矩 $\Delta\tau = \tau_{loaded} - \tau_{empty}$ 消除机械臂自重影响,再经竖直方向雅可比投影换算质量 $\hat{m} = (J_z \cdot \Delta\tau)/(g|J_z|^2)$,对抓取位姿鲁棒;get_stiffness 先增量闭合夹爪并用『回退测试』(稍张开应产生力降 $\Delta\hat{f}$)排除内部摩擦的假接触,再继续闭合到目标力度 $f^* = 0.50$,用形变量 $\Delta d = |d_0 - d(f^*)|$ 映射到 $s \in \{1,...,5\}$ 五档刚度。第二,Planner 与 Prioritizer 的双智能体分工:前者管『何时停』,后者管『先测谁』。这与 VLA 端到端模仿或 RL 稀疏奖励探索有本质区别——探索行为被显式结构化、可解释,且无需任何训练。
方法步骤详情
完整流程如下。第一步视觉锚定:ZED 2i 采集 RGB-D 图像,Molmo2 输出目标的 2D 像素坐标,经深度反投影和外参变换得到 3D 世界坐标。第二步 Planner 规划:输入任务 prompt 和场景图像,识别缺失的物理信息,输出 JSON 候选列表(对象名、描述、预期获取的信息)。第三步 Prioritizer 排序:用视觉启发式过滤(太小的咖啡杯藏不住方块、密封罐大概率是满的),给剩余候选打分排序,例如空罐任务中未开封绿罐 2.2 分、插吸管绿罐 9.1 分、插吸管红罐 8.5 分,因此优先测红绿两罐。第四步代码生成与执行:coding agent 生成代码调用 get_mass(固定轨迹抬升 15cm、短暂停顿待振动稳定、差分力矩加雅可比换算、print 记录)或 get_stiffness(增量闭合检接触、回退验证、闭到 $f^*=0.5$、线性插值求 $\Delta d$、映射刚度等级,每物体测 5 次多数投票)。第五步证据回灌:测量值写入知识库,Planner 判断信息是否足够,不足则回到第三步,足够则生成最终 pick-and-place 代码完成任务。
技术新颖性
技术新颖性体现在三方面。(1) 传感器无关的物理估计与任务决策的统一:此前 visuo-haptic 或基于本体感知的属性估计方法(论文引用 [41][42])通常把『怎么测』与『测什么、何时停』解耦,PhysCaP 把 get_mass/get_stiffness 做成 code-as-policy 的可调用 API,由 LLM 在闭环里统一调度,且新属性模块可即插即用扩展。(2) 双智能体解耦两个不同目标:消融实验 PhysCaP-joint 把 Planner 和 Prioritizer 合并成单个带全部 prompt 的智能体后性能下降——找蓝方块从 9/10 降到 8/10,牛油果任务 OI 从 2 升到 2.71——说明模型虽然能想到视觉启发式,但单一上下文会塌缩成无结构的穷举计划,分离才能强制高效排序。(3) 全程零训练:不微调任何模型,只靠物理建模与 prompt 工程,与需要海量演示数据的 VLA 和大量采样的 RL 形成鲜明对比。
实验结果
真实世界三任务各 10 次试验。识别空罐:CaP 仅 2/10;CaP+PhysX 7/10 但 OI=3.9、268 秒(穷举称重);加 Planner 7/10、OI=4;PhysCaP 达 8/10、OI=2.5、239 秒。挑熟牛油果:CaP 1/10;CaP+PhysX 9/10 但 OI=4、515.6 秒;PhysCaP 9/10、OI=2、300.5 秒,交互减半、时间缩短约 42%。找蓝方块:CaP 10/10 但 OI=3;PhysCaP 9/10、OI=1.33、40.5 秒,几乎只翻视觉可行的杯子。LIBERO 仿真 50 次试验:PhysCaP 78%、OI=1.44,优于 CaP+PhysX(74%、2.16)和 +Planner(62%、1.45),VLA 全军覆没(OpenVLA 0%、π0.5 4%、MolmoAct2 23%)。PhysX 校验:5 个参考质量(13g–963g)各测 20 次,估计与真值高度吻合;oracle 换真值质量后空罐任务达 10/10,说明瓶颈在硬件噪声;刚度用 2/6/8/10/15 根橡皮筋标定的 3D 打印按钮验证,生牛油果对应高档、熟果对应低档。表 3 显示换 Claude Opus 4.8 骨干可达 10/10、OI 2.4、217 秒。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 真实世界·识别空罐 | 成功率 SR | 8/10(PhysCaP) | 2/10(CaP 被动视觉基线) | +60 个百分点 |
| 真实世界·挑熟牛油果 | 交互次数 OI / 执行时间 | OI=2,300.47±53s(PhysCaP) | OI=4,515.61±9s(CaP+PhysX) | 交互减半,时间缩短约 42% |
| 真实世界·找蓝方块 | 执行时间 | 40.48±15s,OI=1.33(PhysCaP) | 75.51±4s,OI=3(CaP) | 时间缩短约 46%,成功率 9/10 对 10/10 基本持平 |
| LIBERO 仿真·识别空杯 | 成功率 SR(50 次试验) | 78%(PhysCaP) | 74%(CaP+PhysX);OpenVLA 0%、π0.5 4%、MolmoAct2 23% | 较最强主动基线 +4pp,较 VLA 最高 +55pp |
| LIBERO 仿真·识别空杯 | 交互次数 OI | 1.44(PhysCaP) | 2.16(CaP+PhysX) | 交互减少约 33% |
| 真实世界·识别空罐(换骨干) | 成功率 / OI | 10/10,OI=2.4,217.43s(Claude Opus 4.8) | 8/10,OI=2.5,239.0s(Gemini 3.1 Pro) | 成功率 +20pp,验证框架模型无关 |
局限与改进
作者承认三点局限:其一,依赖商业 VLM API,延迟和推理质量不可控,导致执行时间方差偏大(如空罐任务 239±27 秒);其二,物体定位靠 Molmo2 的 2D 预测加单相机深度,2D 误差会直接传导为 3D 末端精度损失;其三,PiPER 机械臂的硬件通信延迟偶尔使实际轨迹偏离生成代码。我补充几点观察:PhysX 目前只覆盖质量和刚度两种属性,摩擦、纹理、内容物种类等未涉及;质量估计要求物体能被夹爪稳定抓起并悬持,对过大、过滑、易碎物体不适用,固定 15cm 抬升在狭小空间也可能不可行;刚度五档阈值需要逐物体类别人工标定,换类别就要重新标;实验全部是静态桌面、固定物体集合,未测动态或杂乱场景;成功率 8-9/10 并非满分,失败主要来自质量估计噪声和定位误差;另外任务中有真人助手帮忙清场,说明全自主长程操作仍未解决。
独立分析的弱点
独立分析可见以下弱点。第一,Prioritizer 的排序是单步贪心的视觉启发式,不是基于信息增益的最优实验设计:当目标属性需要组合多个测量才能推断时(例如需联合质量与体积推断密度),贪心次序可能次优,改进方向是引入信息论增益或贝叶斯最优停止准则。第二,Planner 的停止判据是 LLM 的主观判断,没有任何统计置信度保证,可能过早或过晚停止——表 2 中 CaP+PhysX+Planner(62%)反而低于 CaP+PhysX(74%)就暴露了这一不稳定性。第三,质量模型忽略重心偏移与抓取滑动:物体倾斜持握或滑动时 $\Delta\tau$ 会被污染,且差分法要求空抓基线与持物抓取位姿一致。第四,刚度接触检测假设物体表面规则、姿态稳定,牛油果这类球体在夹持中滚动会改变形变读数;每物体测 5 次多数投票也进一步推高了时间成本。第五,系统性能与骨干模型强绑定,API 延迟直接叠加进执行时间。
未来方向
作者提出的方向包括:迁移到本地托管的开源模型以保证运行一致性和时延;引入多视角或 3D 原生感知模型替代 2D 指点加单目深度的定位链路;用实时控制信号管理解决 PiPER 的通信延迟;以即插即用方式扩展更多物理属性模块(纹理、摩擦、内容物识别等)。基于本文成果还可延伸:把 PhysX 测量整合进可微世界模型用于模型预测控制;将探索问题形式化为 POMDP,用信息增益最大化的最优停止理论替换启发式判据;研究跨具身迁移,让差分力矩和雅可比换算在不同机械臂上自动重标定;把 PhysCaP 生成的交互轨迹作为数据反哺 VLA 微调,教会端到端模型主动探索行为;以及扩展到双臂协作、工具使用(如用棍子探远处物体)和非桌面场景。
复现评估
复现条件较好但非一键复刻。开源情况:项目页 physcap.github.io 提供机器人执行视频与生成代码的定性展示,论文附录 A-G 完整给出了任务 prompt、Planner/Prioritizer/Coding 智能体 prompt、API 规范、物体规格与几何尺寸、3D 打印按钮机构 CAD,但正文未明确承诺放出完整代码仓库。算力:单张 RTX 3090(24GB)工作站即可,VLM 走 Gemini 3.1 Pro API,Molmo2 开源可本地部署。难度评估:LIBERO 仿真部分最容易复现,VLA 基线均有公开 checkpoint;真实世界复现需要 AgileX PiPER 7-DoF 臂、夹爪和 ZED 2i 深度相机,且 get_mass 的差分力矩法和雅可比换算与具体臂的力矩读数接口强耦合,get_stiffness 的五档阈值也需按自家夹爪重新标定——这是复现的主要工程门槛。总体而言思路可复现性强,逐指标复现需要相当的机器人系统集成经验。
论文图表
概念示意/teaser 图,对比三种行为模式:CaP 智能体因欠探索而失败(猜测绿罐里有吸管所以可能是空的,实际选错);朴素交互方法过探索(给每个物体测质量,效率低下);PhysCaP 则通过先验推理(两个插吸管的罐子更可能是空的)后精准测量,成功且高效地找到空罐。
一图点明论文要解决的核心权衡——欠探索与过探索——以及 PhysCaP 的定位,是理解全文动机的最佳入口。
找蓝方块任务的实验台照片:三个纸杯中有一个小咖啡杯在尺寸上不可能容纳蓝色方块,机器人的目标是通过几何推理排除小杯、只翻大杯来找到藏在下面的第三个方块。
展示任务 1 的场景设计意图——用视觉几何约束衡量智能体削减探索空间的能力。
牛油果成熟过程的视觉阶段示意:从亮绿(硬)→ 绿紫(微软)→ 紫黑(按压回弹,成熟)→ 黑色(软烂,过熟)。表皮变黑是判断是否可食的主要视觉线索,但颜色不足以确定真实成熟度,必须配合刚度测量。
解释牛油果任务中视觉先验(深色更可能成熟)与物理测量(刚度)相结合的设计依据。