简介
想象一下,你让机器人帮你准备早餐。它需要一只手拿起牛奶瓶,另一只手拿起碗,然后把牛奶倒进去,同时不能把牛奶洒出来,不能捏碎碗,也不能让两只手臂撞在一起。对人类来说,这种双臂 (双手) 协调是直觉性的。但对机器人来说,这简直是一场几何学和运动学的噩梦。
在机器人学习领域, 扩散策略 (Diffusion Policies) 已成为当下的霸主。通过从人类演示中学习,这些模型非常擅长克隆行为并处理复杂的多模态任务。然而,它们有一个明显的盲点: 物理安全性 。
标准的扩散策略学会了模仿机器人应该去哪里,但它们通常缺乏对物理约束的显式理解。它们并不天生知道在拿着同一个物体时拉开两个夹爪会撕裂物体,或者过早倾斜瓶子会洒出液体。它们实际上是在基于训练数据“幻觉”出一条轨迹,而有时,这些幻觉会滑向危险的境地。
这就引出了一篇名为 SafeBimanual 的新论文。这项工作背后的研究人员提出了一个关键问题: 我们能否在测试时,在不重新训练的情况下,强制一个预训练好的、“不懂事”的扩散策略变得安全?
他们的答案是肯定的。通过结合轨迹优化与视觉-语言模型 (VLM) 的推理能力,他们创建了一个系统,可以将机器人的手“引导”出危险区域,确保任务不仅被完成,而且是被安全地完成。
在这篇深度文章中,我们将探讨 SafeBimanual 是如何工作的,其引导系统背后的数学原理,以及它如何使用 GPT-4o 实时动态地理解安全需求。
背景: 双手的挑战
在剖析解决方案之前,我们需要了解为什么这个问题如此困难。
双臂操纵
单臂操纵已经够难了,但双臂操纵让状态空间的复杂性呈爆炸式增长。机器人不仅仅是控制一个末端执行器;它是在协调两个,而且通常距离很近。这引入了单臂机器人不存在的特定故障模式:
- 自碰撞 (Self-Collision) : 左臂撞到右臂。
- 闭链约束 (Closed-Chain Constraints) : 当双手握住同一个物体时,手臂形成了一个“闭合运动链”。如果一只手臂向左移而另一只向右移,它们可能会撕裂物体或烧坏机器人的电机。
- 协调 (Coordination) : 动作必须在时间 (时机) 和空间 (位置) 上同步。
机器人技术中的扩散策略
如果你熟悉 Stable Diffusion 或 Midjourney 等图像生成工具,你就知道基本前提: 模型从随机噪声开始,迭代地“去噪”以揭示清晰的图像。
在机器人技术中,我们要做的也是一样,但生成的不是像素,而是动作轨迹 。 模型从一系列随机动作 (噪声) 开始,迭代地将其细化为平滑、有目的的运动路径。这之所以强大,是因为它能很好地处理“多模态性”——如果有两种拿起杯子的有效方法,扩散模型不会将它们平均化 (这会导致抓空气) ,而是会致力于其中一条有效路径。
然而,标准的扩散策略是不受约束的 。 它们生成看起来像训练数据的东西。如果模型稍有漂移,或者环境稍有不同,生成的路径可能会穿过桌子或将布拉得太紧。
SafeBimanual 分类学
要解决问题,首先必须对其进行分类。研究人员分析了 65 个不同双臂任务中的 1320 次演示,以准确了解机器人是如何失败的。他们将这些失败浓缩为不安全行为分类学 , 如下所示。

正如你在图 1 中看到的,失败 (用红色 X 标记) 分为两大类:
- 物体不安全交互 (Object Unsafe Interaction) :
- 物体间碰撞: 把两个物品撞在一起。
- 行为错位: 例如,把水倒在杯子旁边而不是里面。
- 夹爪不安全行为 (Gripper Unsafe Behavior) :
- 戳刺 (Poking) : 夹爪撞入桌子或物体表面。
- 撕裂 (Tearing) : 夹爪在握住刚性或半刚性物体时拉开。
- 夹爪间碰撞: 双手相互撞击。
SafeBimanual 的目标是在机器人“思考” (推理) 过程中,从数学上禁止这些行为。
核心方法: 引导扩散
SafeBimanual 的核心创新是一个测试时轨迹优化框架 。 它就像一个“安全封装”,包裹在任何预训练的扩散策略周围。
这是图 2 所示的高级工作流程:

该流程包含三个主要步骤:
- VLM 调度器: 一个视觉-语言模型 (GPT-4o) 观察场景并决定当前哪些安全约束是相关的。
- 代价函数选择: 根据 VLM 的决定,激活特定的数学代价函数。
- 引导采样: 修改扩散过程,引导轨迹远离高代价 (危险) 区域。
让我们分解每一步的数学和逻辑。
1. 去噪过程中的引导采样
在标准的去噪扩散概率模型 (DDPM) 中,策略通过迭代去除噪声来生成动作。给定当前噪声动作 \(A_{t}^{k}\) 和观测 \(O_t\),上一步动作 \(A_{t}^{k-1}\) 的概率被建模为高斯分布:

这里,\(\mu\) 是预测均值 (模型认为干净动作应该在的地方) ,\(k\) 代表去噪时间步。
SafeBimanual 介入了这个过程。该方法不只是接受均值 \(\mu\),而是计算安全代价函数 (\(\mathcal{C}_{\text{sched}}\)) 的梯度,并将均值向相反方向移动。如果代价函数代表“碰撞能量”,我们要将轨迹向“下坡”移动到零碰撞的状态。
更新规则变为:

让我们分析这个方程:
- \(\mu(A_t^k, O_t, k)\): 这是原始机器人策略想要做的事情。
- \(\mathcal{C}_{\mathrm{sched}}\): 这是当前轨迹计算出的“危险评分”。
- \(\nabla_{A_k}\): 这是梯度——它指向危险增加的方向。
- \(-\rho_k\): 我们减去这个梯度 (远离危险) 。\(\rho_k\) 是一个权重参数,控制我们执行安全的力度。
通过在去噪过程的每一步 (或为了效率仅在最后几步) 应用这一点,生成的轨迹逐渐从潜在的危险路径变为安全路径,同时仍试图满足原始策略的目标。
2. 定义安全代价
为了使这种梯度引导发挥作用,“危险”必须在数学上是可微的。研究人员制定了五个特定的代价函数,对应我们之前讨论的分类学。
为了计算这些,他们需要关键点 (Keypoints) 。 他们利用正向运动学 (FK) 和物体姿态估计来定义夹爪和物体上的关键点:

这里,\(k_t\) 代表关键点在 3D 空间中的位置。现在,让我们看看具体的代价。
代价 1: 物体碰撞
为了防止机器人将两个物品撞在一起 (比如太用力地碰杯) ,如果物体关键点之间的距离变得太小,系统会惩罚该轨迹。

这个简单的欧几里得距离度量充当了两个物体之间的排斥力场。
代价 2: 行为对齐
这对于像倒水这样的任务至关重要。如果你在倒水,瓶口必须与杯口对齐。如果两个物体之间的相对向量偏离了期望的轴线 (向量 \(z\)) 或者垂直距离 (\(h_0\)) 不正确,该代价函数就会产生惩罚。

第一项惩罚轴线的错位,第二项维持正确的高度偏移。
代价 3: 夹爪戳刺
机器人经常因夹爪直接向下撞击表面而损坏表面。此代价惩罚夹爪尖端沿接近轴 \(a\) 向表面关键点“内部”移动的任何运动。

这就像一堵虚拟墙,防止夹爪穿透物体或桌子。
代价 4: 夹爪撕裂
这是一个经典的双臂故障。如果机器人双手拿着一个盒子,左手向左移,右手向右移,它就会撕裂盒子。此代价函数测量夹爪尖端之间的距离,并惩罚任何偏离初始抓取距离 \(d_0\) 的行为。

当处理刚性物体时,这个约束本质上是将两只手臂虚拟地锁定在一起。
代价 5: 夹爪碰撞
最后,我们必须防止机器人的双手相撞。这与物体碰撞代价类似,但应用于夹爪尖端。

3. 自适应安全代价调度器
我们有五个强大的安全约束。但我们不能一下子全部开启。
- 如果我们在“抓取”阶段开启对齐 , 机器人可能会在拿起瓶子之前就试图倒水。
- 如果我们在机器人抓取物体之前开启撕裂约束,手臂将在空间中相对锁定,阻止它们去接触分开较远的物体。
我们需要一个大脑来决定何时应用哪个约束。这就是视觉-语言模型 (VLM) 的用武之地。
作者使用 GPT-4o 作为动态调度器。过程如下:
- 观测: 系统向 VLM 提供工作空间的当前图像,以及叠加在图像上的已识别关键点。
- 思维链 (Chain-of-Thought) : 提示 VLM 推理任务的当前阶段 (例如,“阶段 1: 抓取”,“阶段 2: 提升”,“阶段 3: 倒水”) 。
- 选择: 根据识别出的阶段,VLM 从库中选择合适的代价函数。
- *示例: * 如果机器人正用双手举起盘子,VLM 选择“夹爪撕裂代价”。如果它正伸手去拿两个分开的瓶子,它选择“夹爪碰撞代价”。
这是一个“即插即用”的模块。你不需要为每个新任务手动硬编码阶段;VLM 从图像和任务的文本描述中推断物理和逻辑。
实验与结果
这种扩散数学与 LLM 推理的复杂结合真的有效吗?作者在 RoboTwin 模拟器和使用 Galaxea-R1 人形机器人的真实硬件上测试了 SafeBimanual。
模拟结果
他们将 SafeBimanual 与三个强大的基线进行了比较:
- DP: 2D 扩散策略。
- DP3: 3D 扩散策略 (使用点云) 。
- RDT-1b: 一个大规模双臂基础模型。
使用的指标是 成功率 (SR) 和 危险率 (DR) 。 只要发生分类学中的任何不安全行为,就会记录一次“危险”,即使任务最终完成了。

观察 表 1 , 结果令人信服:
- 成功率提升: SafeBimanual 将标准 DP3 方法的平均成功率从 53.9% 提高到了 67.3% 。
- 安全性提升: 更重要的是,它将危险率从 35.3% 大幅削减至 19.1% 。
注意“双瓶拾取 (困难) ”任务。基线 DP3 有 37% 的危险率——意味着超过三分之一的尝试会导致碰撞或误操作。有了 SafeBimanual,这一比例降至 24%,同时成功率显著跃升。
图 3 和 图 7 中的视觉效果清晰地突出了这些差异。


在 图 7 中,看“方块交接 (Block Handover) ”任务 (顶行) 。基线方法 (DP) 把方块拉开了 (撕裂) ,如红色警告所示。SafeBimanual (Ours) 保持了夹爪之间的距离,实现了平滑的交接。
消融实验: 我们需要所有部分吗?
作者进行了消融实验,以确保每个组件都是必要的。

表 2 揭示了两个关键见解:
- 每个代价都很重要: 移除任何单个代价函数 (\(C_1\) 到 \(C_5\)) 都会增加危险率。例如,移除“夹爪戳刺”代价 (\(C_3\)) ,危险率几乎翻了一番,从 19.8% 升至 37.5%。
- VLM 至关重要: “w/o VLM (fixed weights)” 这一行显示了如果仅以固定权重开启所有代价会发生什么。成功率暴跌至 19.4%。为什么?因为约束会冲突。你不能在不让机器人困惑的情况下同时强制执行“对齐”和“抓取”。自适应调度是“秘方”。
真实世界验证
模拟很有用,但现实世界是混乱的。作者在 Galaxea R1 机器人上部署了该系统,用于倒水、擦碗和传递水果等任务。

系统使用摄像头 (ZED 和 Intel D435i) 实时跟踪关键点。即使发生遮挡 (机器人的手臂挡住了摄像头对杯子的视野) ,系统也会使用刚性假设,根据夹爪的位置估计杯子的位置。

图 8 展示了真实世界的差异。在“传递香蕉”任务中,基线 (DP) 将香蕉撕裂了。SafeBimanual 尊重了水果的结构完整性。
汇总的真实世界统计数据令人印象深刻:

在“传递香蕉”任务中,SafeBimanual 实现了 0% 的危险率 , 而基线为 30%,同时将成功率提高到了 90%。
结论与启示
SafeBimanual 代表了在使机器人学习适用于现实世界方面迈出的重要一步。
这里的关键要点是从隐式到显式安全的转变。
- 隐式: 希望神经网络从训练数据中学到“不要撞毁”。
- 显式: 使用轨迹优化在数学上禁止机器人撞毁。
通过结合扩散模型的生成能力、大型语言模型的逻辑推理以及控制理论 (代价函数) 的严格边界,这篇论文为复杂的双臂任务提供了一个稳健的解决方案。
这种方法——使用“测试时封装”——特别令人兴奋,因为它是模型无关的。随着扩散策略变得更好 (如 RDT-1b) ,SafeBimanual 基本上可以“扣”在它们上面,提供最后一道安全保障。
对于进入该领域的学生和研究人员来说,这篇论文凸显了一个日益增长的趋势: 最有效的机器人系统往往不是单一的、巨大的“黑盒”神经网络。相反,它们是模块化系统,其中不同的组件 (视觉、策略、规划、安全) 协同工作,并由能力日益增强的基础模型进行指导。
](https://deep-paper.org/en/paper/2508.18268/images/cover.png)