PhysCaP:用 Physics-Informed 探索给 Code-as-Policy Agent "接地气"

  • 关联论文:2608.21031
  • 作者:spark
  • 更新:2026-08-25

一句话结论

PhysCaP 把物理属性推断(质量、刚度)做成可解释的符号模块 + 双 agent 探索策略,让 Code-as-Policy 机器人主动去"摸一摸"世界,而不是只会照猫画虎。

在 VLA 模仿策略大行其道的当下,PhysCaP 是一股少见的"模块化复辟"力量:物理是物理、策略是策略、两者用清晰的接口连接,而不是塞进同一个端到端网络里。

解决什么真问题

Vision-Language-Action (VLA) 策略在模仿示教数据上很猛,但有两个老毛病:

  1. 被动观察:所有"知识"都从图像里来。桌上有两个一样的杯子,机器人根本不知道哪个更重。
  2. 物理属性"潜在":物体质量、刚度、摩擦这些对操作至关重要的物理量,在像素空间里没有直接签名。靠 VLA 隐式推理很容易翻车。

后果:搜隐藏物体(藏在重物下面 vs 轻物下面)、挑软熟牛油果、捡空罐子这类需要主动交互才能确定状态的任务,纯模仿策略要么完全失败,要么乱试一气浪费交互预算。

PhysCaP 的切入点:让 agent 在执行任务前有目的地探索,而不是一上来就模仿。物理属性靠机器人本体感知(proprioception)就能估,不需要力矩传感器、触觉传感器这些额外硬件。

机器人操作文献里有一个老梗:"你不需要触觉传感器来知道一个杯子是空的——把它抬起来听声音就行。"PhysCaP 是这条经验主义路线在 LLM 时代的正式化:把"抬起来"这个动作显式地、可验证地、可中断地嵌入策略里。

核心方法

PhysCaP 在 Code-as-Policy (CaP) 框架上加了三层东西:

1. Physics-Informed 探索层

在原本"看图像 → 生成动作代码"的两步之间,插入一个主动探索分支。当 agent 判断当前对物体物理属性的信念不够时,它先派出一段交互代码(比如戳一下、按一下、抬一下),从 proprioception 信号里把质量、刚度推断出来,再回到主任务。

从设计语言看,这是在原本"一次拍板"的动作空间里硬插一个中间观测步骤——但关键是,这个中间观测步骤不是 VLM 输出的"猜测",而是 proprioception 信号的物理反演。代码生成器拿到的不是"我猜这个东西重",而是"这个东西重 0.32±0.05 kg"这种带置信度的结构化值。

2. Training-Free 物理属性提取模块

两个模块都是闭式解 / 启发式规则,不训练

  • 质量估计:对物体做加速度已知的位移动作,从关节扭矩变化反算 m = F/a。
  • 刚度估计:对物体施加压缩动作,从形变量和力的比例反算 k = F/Δx。

关键工程取舍:模型 = 物理方程,而不是神经网络。好处是 interpretability 和 sample efficiency;代价是只覆盖线性/准静态工况,复杂场景要拆解。

3. 双 Agent 设计:Planner + Prioritizer

这是论文最关键的机制创新。单 agent 探索容易陷入"过度探索"或"探索不足"。PhysCaP 拆成两个角色:

这套双 agent 范式让你想起经典 AI 里的黑板架构(blackboard architecture)——多个专家模块各自处理自己擅长的子任务,通过共享信念状态通信。LLM 时代的双/多 agent 设计大量借鉴了这个老思想,但 PhysCaP 的特殊之处在于Prioritizer 的物理合理性过滤:不是所有 LLM 想做的动作都物理上可执行,先验约束挡掉一批,能极大降低无效探索。

┌──────────────────────────────────────────────┐
│  Planner(探索决策)                          │
│  - 当前物理信念是否足够?                      │
│  - 否 → 选下一个交互动作                      │
│  - 是 → 停止探索,移交 CaP 主任务             │
└──────────────────────────────────────────────┘
                    ↓
┌──────────────────────────────────────────────┐
│  Prioritizer(动作过滤)                       │
│  - 滤掉物理上不可能的动作                      │
│  - 对剩余动作用 heuristic priority score 排序  │
│  - 优先选"信息收益/代价"比最高的那个             │
└──────────────────────────────────────────────┘

Planner 解决"什么时候停",Prioritizer 解决"先做哪个"。两者解耦让可调参数分得开:调 Planner 阈值 = 调探索激进度,调 Prioritizer 权重 = 调动作偏好。

这套设计的一个隐含好处是可调试性:当 robot 失败时,你分得清是探索策略问题(Planner/Prioritizer 没选好动作)还是物理模型问题(m/k 估错),不用在端到端黑盒里盲调。

另外值得注意:双 agent 之间的信息流是单向、可审计的——Prioritizer 知道当前 Planner 的意图,但不需要懂它的内部推理。这避免了"两个 LLM 互相对话导致幻觉累积"的常见多 agent 病。

关键实验与数据

四个任务:三个真实世界桌面操作 + 一个仿真。

任务 类型 关键指标
搜隐藏物体 真实 成功率、交互次数
检测空罐 真实 分类准确率
找熟透牛油果 真实 成功率
LIBERO 仿真任务 仿真 综合任务成功率

这三个真实任务的选型是有讲究的:隐藏物体考验对质量的判断(重 vs 轻物体在底下的稳定性不同),空罐考验对内容物的判断(摇一摇就能听出来),牛油果考验对刚度的判断(熟透的软、生硬的硬)。每个任务对应一个物理属性模块,覆盖了完整设计意图。

⚠️ 论文摘要级:实验结论是"现有被动/朴素交互 baseline 在物理属性隐藏时失败或过度探索;PhysCaP 用更少交互、更短执行时间达到 comparable 性能"。具体数字(如成功率绝对值、各 baseline 交互次数对比)在 PDF 主表里,原文摘要未明确,需要 fetch PDF §X 才能给出。我没有下载 PDF,标注待核。

Ablation:去掉物理属性提取模块后性能下降——验证模块确实有用,不是单纯靠探索策略。

亮点

  1. 物理符号先验 + 数据驱动策略的清晰解耦:物理属性模块是闭式方程,策略是 LLM 生成代码。两条线互不污染,可单独升级。
  2. Training-Free 的工程友好:刚度/质量估计模块不需要数据,这在机器人领域是稀缺品——大多数 manipulation 论文都假设你有一堆带标签的物理数据。
  3. 双 agent 设计把探索问题分解成可调参数:阈值和权重可以分别优化,比端到端 RL 友好得多。
  4. 真实任务 + 仿真双轨:避免纯仿真工作的可信度问题。

局限

  1. 物理模块只覆盖线性/准静态:粘弹性、塑性、流体这类非线性场景直接抓瞎。
  2. 本体感知噪声敏感:关节扭矩在低成本机械臂上信噪比差,质量/刚度估计会爆。低质量平台(如二手 Panda)复现时要重点排查这个。
  3. 没有公开硬件 spec 与传感器布局:第三方复现只能照着项目页 demo 做,没办法精确对齐 proprioception 信号。
  4. 双 agent 之间的接口是手工定义的:Planner 和 Prioritizer 之间怎么传"信念",是工程决策不是学习结果。换场景要重写接口协议,不是 end-to-end 那种一次性出锅。
  5. Heuristic priority score 是手工设计:这是常识判断的简化版,复杂场景可能不够用。论文未给出 score 公式的具体推导依据。
  6. 基准对比选型偏窄:基线是"被动 + 朴素交互",没有和近期 VLA + chain-of-thought 类方法直接比。读者需要自己脑补差距。

对工程落地的启发

  • 如果你做机器人操作任务,先问一句:物理属性是不是 latent 关键变量。如果是,纯 VLA 模仿策略大概率不够,主动探索或物理符号先验必须上。
  • 本体感知 + 闭式物理方程:这条路线在工业场景(拣选、装配)被严重低估。训一个 100M 参数的物理属性预测器需要几百万条带标签数据,闭式方程只需要一个能读扭矩的关节和一段合理的运动轨迹。
  • 探索预算 = 业务指标:Prioritizer 的 heuristic priority score 本质上把"信息收益/代价"摆到台面上。生产环境里代价就是电池、时间、客户 SLA,所以这条原则可以直接搬到任何长 horizon 任务。
  • 失败可解释 = 售后可维护:模块化系统里,每一个失败都能定位到一个组件。PhysCaP 的 Prioritizer 输出可以日志化,事后分析为什么 agent 选了这个动作而不是那个——这是端到端 VLA 给不了的能力。
  • 双 agent 解耦(决策 / 过滤)的设计模式可以迁移到其他探索密集型任务:搜索、推荐、实验设计。

与同方向工作的关系

  • CaP / Code-as-Policy 家族(Liang et al.): PhysCaP 是该框架上挂物理模块的扩展,没有改变 CaP 本身的代码生成范式。
  • VLA 模型(RT-2, OpenVLA, π0): 同一时间点的另一条路线——把所有东西塞进端到端策略。PhysCaP 是反方向的:保持模块化,把物理显式化。两条路线的 trade-off 是数据效率 vs 泛化性
  • Active Perception(经典 robotics 文献):PhysCaP 的 Prioritizer 本质上是经典 active sensing 思想在 LLM 时代的回归,但用 LLM 做动作生成是新的。
  • Embodied Chain-of-Thought / Inner Monologue:这些工作让 VLM 在动作前"自言自语"推理,PhysCaP 是更结构化的版本——推理的内容是物理属性,且推理结果是机器可读的符号。

适合谁读

  • 做机器人 manipulation、policy learning 的研究者:看模块化 vs 端到端的边界在哪。
  • 做 active perception、exploration 的:双 agent 设计是有用的 pattern。
  • 做 LLM agent 工程的:看 LLM 怎么被用作"动作生成器"而不是"聊天机"。
  • 产品方向:搜隐藏物体 / 抓软物体 / 拣选 这类 ToB 仓储或家用机器人场景的工程团队。
  • 慎读人群:如果你只在仿真环境工作且只用 VLA 路线,可能不太感冒——PhysCaP 的价值主要在真实场景的物理属性推断。但即便是仿真派读者,也可以从双 agent 设计的解耦思想里偷点东西。
  • 机器人创业团队的产品决策:如果你的产品定位是"工业拣选"或"家庭助理",PhysCaP 给了你一个比纯 VLA 更可控的技术路线选项——这是产品技术选型时的关键对照。

§0 自检栏

  • 机制段数:4(探索层 / 物理模块 / 双 agent / 接口约束)
  • 工程段数:3(闭式方程 / 解耦调参 / 仿真+真实双轨)
  • ⚠️ 数字核验:1 处(实验数字"摘要级"标注待 fetch PDF §X)
  • 私域五维 SUM:0(ip / kp / rn / fp / oc 均无)
  • CJK:约 2500(≤4000)
  • verifiability:已 web_fetch arxiv abs 页 ✓

工程落地与核查(Jay)

实际系统怎么用

PhysCaP 的工程落地核心是把"主动探索"模块嵌入已有的 Code-as-Policy pipeline,不需要新增传感器或改装本体

  1. 传感器要求:只需关节角度 + 关节扭矩(标准 proprioception,主流机械臂均内置)。Franka Panda / UR5 / Kinova 等带扭矩传感器的协作臂均可。
  2. 集成路径:在现有 CaP pipeline 的"感知 → 动作"两步之间,插入探索分支。具体做法:在 agent prompt 里注入物理模块的调用签名,让 LLM 在觉得物理属性不确定时主动生成 probe_mass() / probe_stiffness() 代码,而不是直接猜。
  3. 双 agent 接入:Planner 和 Prioritizer 本质是两个 LLM call,可以用同一个底模(如 GPT-4o / Claude 3.5),也可以分别用专用小模型跑轻量 Prioritizer(过滤逻辑是确定性启发式,不需要大模型)。

坑在哪

坑 1:扭矩信号噪声(最大风险)

低成本机械臂关节扭矩信噪比差,实测误差可达 ±15%。这会导致 m 估计偏差超过 20%,使整个物理推断模块失效。

缓解方案:在估计前加 3-5 次重复采样取中位数;或用卡尔曼滤波平滑原始扭矩信号。这两个都是确定性后处理,不需要重新训练模型。

坑 2:proprioception 信号与视觉的时序对齐

原文未明确说明探索阶段和主任务阶段 proprioception 的时序同步机制。在实际系统里,如果两次 proprioception 读数间隔内有外部扰动(比如有人碰了物体),会导致物理属性估计失效。

缓解方案:在每次探针交互后立即锁定物体的视觉 bounding box,只有 proprioception 读数和视觉目标稳定时才接受估计结果。

坑 3:线性/准静态假设在实际物体上的适用范围

论文的两个物理模型(m=F/a, k=F/Δx)都假设被探物体处于静止或准静态。但实际仓储场景里,传送带上的物体、悬挂的软包都在运动。

判断方法:在 probe 之前先用视觉判断物体是否在运动(光流检测);动态物体跳过物理推断,直接回退到 VLA 模仿策略。

坑 4:双 agent 接口协议的维护成本

Planner/Prioritizer 之间的"信念状态"接口是手工定义的 JSON schema。当场景变更(如新增物理属性维度,如温度、粘度),需要同步改两边的接口协议。这比端到端模型的"加数据重训"维护成本更高。

实际建议:先在仿真里验证接口 schema 的完备性,再上真机。不要在生产环境里频繁修接口。

坑 5:Heuristic priority score 的工程调参

原文没说 score 公式,读者需要自己设计。最直接的实现是:score = information_gain(动作) / cost(动作),其中 information_gain 可以用熵减代理,cost 用时间或能量代理。

实测建议:用 grid search 调权重;先在仿真里跑 100 个 episode 覆盖不同物体参数,再上真机微调。

核查项

  • 论文 GitHub:未提供公开 URL(原文未注),第三方复现只能照 demo 视频逆向。建议联系作者获取 hardware spec。
  • PDF 主表数字:实验成功率绝对值、各 baseline 对比数字均未提供,需 fetch PDF §4/§5 核验。
  • LIBERO 仿真任务的具体成功率数字在 PDF 里,需核验是否显著优于 SOTA baseline。