論文導讀:DAGDiff——在擴散過程中直接引導雙臂抓取走向力穩定、不碰撞

Md Faizal Karim, Vignesh Vembar, Keshab Patra, Gaurav Singh, K Madhava Krishna · 2025原文連結

一句話讀懂這篇論文

人搬螢幕時,兩隻手會自然放在螢幕兩側相對的位置,讓力和力矩平衡。之前的雙臂抓取方法大多是「先選兩個區域、各自生成單臂抓取、再湊成一對」,選區域靠的是「挑最遠的兩塊」或「問視覺語言模型」,選錯了整對抓取就不穩。DAGDiff 直接把兩個抓取當成一個整體一起去噪,並在去噪過程中用兩個分類器的梯度推一把:一個把抓取對推向力平衡,一個把抓取推離物體表面避免穿模。結果模型自己學會找出適合雙臂抓取的區域組合。

論文資訊卡

  • 標題:DAGDiff: Guiding Dual-Arm Grasp Diffusion to Stable and Collision-Free Grasps
  • 作者:Md Faizal Karim、Vignesh Vembar、Keshab Patra(共同一作)、Gaurav Singh、K Madhava Krishna
  • 機構:IIIT Hyderabad 機器人研究中心、Brown University
  • 發表:ICRA 2026(arXiv 2509.21145)
  • 專案頁:dag-diff.github.io/dagdiff(提供推論程式)
  • 定位:同團隊 CGDF 的延伸。CGDF 只能在指定區域生成抓取,雙臂配對靠啟發式;DAGDiff 讓雙臂穩定性直接進入生成過程

問題背景

抓取生成領域大多聚焦在單臂:建立「物體 + 經物理模擬驗證的抓取」配對資料集,再用編碼器—解碼器做監督學習。近年擴散模型因為擅長建模多模態分佈,成為抓取生成的熱門框架,可以在整個物體上、或在指定部位上生成多樣的高品質抓取。

但這些方法延伸到雙臂有三個困難:

  1. 沒有雙臂穩定性的機制:單臂方法只保證每個抓取各自穩定,兩個合起來不一定平衡。窮舉所有配對太貴,簡單延伸單臂方法往往得到不穩的結果
  2. 沒有明確處理碰撞:生成的抓取經常穿進物體表面,物體越大、形狀越複雜越嚴重。提高點雲或隱空間的解析度可以改善,但運算量大增,而且仍不保證無碰撞
  3. 區域選擇很難:
    • 「挑最遠兩個區域」這種啟發式,在那兩塊區域本身不適合抓時就會失敗
    • 用視覺語言模型(VLM)判斷部位,受限於 VLM 的 3D 和物理理解能力不足
    • 而且可抓的區域常常沒有語意名稱(一個水桶的「左下側邊緣」叫什麼?),沒有可靠的依據能預測

既有的雙臂方法:

方法做法限制
DA2、DG16M在網格上密集取單臂抓取,對所有配對做雙臂力封閉檢查需要完整網格、窮舉配對,無法用在真實感知
CGDF部位引導擴散,在點雲最遠的兩個區域生成抓取再配對仍是兩個單臂提案的組合,沒有強制聯合穩定
UniDiffGrasp用 GPT-4V + VLPart 找兩個部位,再用 CGDF 生成同上,且依賴語意分割
DualAfford協作 affordance 學習,第二個夾爪以第一個為條件生成需要物體類別專屬訓練,流程複雜

方法

問題定義

給定物體點雲 P∈Rn×3P \in \mathbb{R}^{n\times3},生成 MM 對力封閉穩定且不碰撞的平行夾爪抓取:

Hi=(Hi,1,Hi,2)∈SE(3)×SE(3)H_i = (H_{i,1}, H_{i,2}) \in SE(3) \times SE(3)

一對抓取可不可行由兩件事共同決定:每個抓取是否與物體表面穩定、不碰撞地接觸;以及兩個抓取合起來是否滿足雙臂力封閉條件。

雙臂 SE(3) 擴散

沿用 SE3Diff 的公式,延伸到兩個姿態。定義雙臂的對數與指數映射:

v=Logmap2(H):=Logmap(H1)⊕Logmap(H2)∈R12v = \text{Logmap}_2(H) := \text{Logmap}(H_1) \oplus \text{Logmap}(H_2) \in \mathbb{R}^{12} H=Expmap2(v):=(Expmap(v[:6]), Expmap(v[6:]))H = \text{Expmap}_2(v) := \big(\text{Expmap}(v_{[:6]}),\ \text{Expmap}(v_{[6:]})\big)

⊕\oplus 是垂直串接。這樣擴散就在 R12\mathbb{R}^{12} 中進行。

能量模型:學一個純量能量地景 Eθ:SE(3)×SE(3)×Rn×3×R→RE_\theta: SE(3)\times SE(3)\times\mathbb{R}^{n\times3}\times\mathbb{R} \to \mathbb{R},去噪向量場是能量的負梯度:

sθ(H,P,t)=−∇HEθ(H,P,t)∈R12s_\theta(H, P, t) = -\nabla_H E_\theta(H, P, t) \in \mathbb{R}^{12}

這跟分數式擴散等價,但能量值可以直接拿來排序抓取候選:能量越低,越像是真的貼在物體上的抓取,而不是飄在空中。

前向擴散:

H~t=Expmap2(Logmap2(H)+ϵt),ϵt∼N(0,σt2I12)\tilde{H}_t = \text{Expmap}_2\big(\text{Logmap}_2(H) + \epsilon_t\big), \qquad \epsilon_t \sim \mathcal{N}(0, \sigma_t^2 I_{12})

逆向擴散(Langevin 式更新):

Ht−1=Expmap2(αt22 sθ(Ht,P,t)+αt ϵ)Ht,ϵ∼N(0,I12)H_{t-1} = \text{Expmap}_2\left(\frac{\alpha_t^2}{2}\,s_\theta(H_t, P, t) + \alpha_t\,\epsilon\right) H_t, \qquad \epsilon \sim \mathcal{N}(0, I_{12})

損失:預測向量場與正規化雜訊之間的 L1:

Ldiff=∥sθ(H~t,P,t)−ϵtσt∥1\mathcal{L}_{diff} = \left\lVert s_\theta(\tilde{H}_t, P, t) - \frac{\epsilon_t}{\sigma_t} \right\rVert_1

分類器引導:為什麼需要

單純在雙臂設定下訓練擴散模型泛化很差,因為沒有任何明確的約束要求生成的抓取對是穩定的。作者採用分類器引導擴散:在每一步逆擴散加入分類器對數概似的梯度,把生成推向具有特定性質的樣本。

兩個分類器:

  • 力封閉分類器 CFC=p(y=1∣H,P;ϕ)C_{FC} = p(y=1 \mid H, P; \phi):預測抓取對滿足力封閉的機率
  • 碰撞分類器 CCol=p(y=1∣H,P;ψ)C_{Col} = p(y=1 \mid H, P; \psi):預測抓取對與物體碰撞的機率

兩者都用二元交叉熵訓練:

Lfc=BCE(CFC(H,P),yfc),Lcol=BCE(CCol(H,P),ycol)\mathcal{L}_{fc} = \text{BCE}(C_{FC}(H, P), y_{fc}), \qquad \mathcal{L}_{col} = \text{BCE}(C_{Col}(H, P), y_{col})

yfc∈{0,1}y_{fc} \in \{0, 1\} 表示這對抓取是否力封閉;ycol∈{0,1}×{0,1}y_{col} \in \{0,1\}\times\{0,1\} 分別標示兩個抓取各自是否碰撞。總訓練目標:

L=Ldiff+Lfc+Lcol\mathcal{L} = \mathcal{L}_{diff} + \mathcal{L}_{fc} + \mathcal{L}_{col}

推論時把分類器梯度加到原本的分數上:

s~(H,P,t)=sθ(H,P,t)+∇Hlog⁡CFC(H,P)+{0,t<tc∇Hlog⁡(1−CCol(H,P)),t≥tc\tilde{s}(H, P, t) = s_\theta(H, P, t) + \nabla_H \log C_{FC}(H, P) + \begin{cases} 0, & t < t_c \\ \nabla_H \log\big(1 - C_{Col}(H, P)\big), & t \geq t_c \end{cases}

tct_c 是一個預設門檻,碰撞引導只在去噪後段才開啟——前期抓取還在空中亂飄,沒必要做碰撞修正。實作上總共 T=250T = 250 步,最後 50 步做碰撞修正,因為到那時大部分抓取都已收斂到可行區域,只剩一小部分稍微穿進物體表面。

模型架構

特徵編碼(沿用 CGDF):

  1. VN-PointNet 抽取對 SO(3) 等變的逐點特徵
  2. 多平面投影 + UNet 骨幹,得到三個 2D 特徵平面
  3. 用一組固定查詢點雲 Pq∈R30×3P_q \in \mathbb{R}^{30\times3},經雙臂抓取姿態轉換得到 PHP_H,代表抓取在物體上的局部區域
  4. 在特徵平面上雙線性內插取出 PHP_H 的特徵,彙整後送進以擴散步 tt 為條件的特徵編碼器 F\mathcal{F},同時輸出特徵向量和查詢點的 SDF(作為幾何監督)

三個輸出頭:

輸出頭輸出角色
能量頭純量能量 E(H,P,t)E(H, P, t)擴散骨幹。訓練時教模型把雜訊樣本推向低能量;推論時提供基本的生成動態
力封閉頭抓取對力封閉的機率跟能量頭一起訓練,讓生成過程直接跟物理穩定性的監督綁在一起。推論時梯度把生成推向雙臂穩定區域
碰撞頭任一夾爪與物體點雲相交的機率在編碼器、能量頭、力封閉頭收斂後才訓練,專門偵測細微碰撞而不干擾生成目標。推論後段用梯度把抓取推離碰撞

為什麼碰撞修正不直接用模型預測的 SDF?因為可微分的碰撞偵測本身不簡單,SDF 梯度也不保證能有效修正抓取。

三個頭分工合作:能量頭負責生成多樣且物理合理的抓取,力封閉頭負責聯合穩定,碰撞頭負責幾何有效性。這讓 DAGDiff 不再把雙臂抓取當成兩個獨立單臂提案的組合。

實驗設定

  • 資料集:DG16M,4,143 個物體,每個物體約 2,000 個經改良力封閉評估驗證的正負雙臂抓取。隨機切出 400 個物體做測試,其餘訓練。另外自行取樣抓取姿態並檢查碰撞,建立碰撞/非碰撞資料,只用來訓練碰撞頭
  • 每個物體網格均勻取 1000 個點當輸入點雲;每次隨機初始化一批雙臂抓取,跑 250 步去噪

比較方法:

  • 最遠區域法:CGDF(在點雲最遠的兩區域生成抓取再配對)、VCGS(變分式約束抓取生成,同樣設定)
  • VLM 區域法:UniDiffGrasp(GPT-4V + VLPart 選部位,再用 CGDF 生成);作者另外改用 RoboBrain 2.0 7B(具身推理模型)預測邊界框或關鍵點當區域,稱為 RoboBrainGrasp-BB 和 RoboBrainGrasp-KP
  • Affordance 法:DualAfford。因為它需要複雜的類別專屬訓練,沒有在本文資料集上重訓,而是反過來讓 DAGDiff 零樣本測 DualAfford 的抓取任務物體

評估指標:

  • FCE(力封閉評估):依 DG16M 的公式,檢查施加的接觸力在摩擦和夾爪力限制下,能否抵抗任意外部力旋量。這是理論上的穩定性保證,也是主要指標
  • GSR(抓取成功率):Isaac Gym 中把自由浮動的夾爪放到預測位置、閉合、開重力,物體被抬到指定高度且穩定就算成功
  • GCR(碰撞率):最終姿態與物體幾何相交的比例,越低越好

實驗結果

方法FCE (%) ↑GSR (%) ↑GCR (%) ↓
DAGDiff60.1472.5015.10
CGDF35.1456.2530.55
VCGS16.8523.3674.73
UniDiffGrasp10.1031.6859.90
RoboBrainGrasp-KP9.8027.8566.30
RoboBrainGrasp-BB7.1227.8170.26
DAGDiff(DualAfford 物體,零樣本)56.4568.8018.59
DualAfford(論文數據)–54.33–
  • 最遠區域法(CGDF、VCGS)在 FCE 和 GSR 上表現差,因為它們把區域選擇跟穩定性脫鉤。VCGS 又只用全域形狀表示,所以碰撞率高達 74.73%
  • VLM 區域法全部指標都差:語意預測的區域常常太粗或放錯位置,3D 與物理推理能力有限,抓取落在不適合的地方
  • DualAfford 是每個類別各自訓練的模型,DAGDiff 用單一模型零樣本測試,GSR 仍比它高
  • 整體來說,DAGDiff 的穩定性和成功率約為其他方法的兩倍,碰撞率降低一半以上

定性比較中可以看到各方法的典型失敗:

  • CGDF 和 VCGS 的最遠區域啟發式常選到物理上不相容的區域,例如水桶上有一個夾爪被迫放到抓不穩的底部角落;就算選到可抓區域(椅子、凳子),兩手的配置也需要過大或不平衡的接觸力
  • RoboBrain 方法預測的邊界框太粗、關鍵點常落在空中(例如凳子內部)
  • UniDiffGrasp 在部位名稱模糊時(例如水桶)會退化成隨便切兩半,生成不穩的抓取
  • DAGDiff 不靠啟發式或語意標籤,直接根據物理約束找出穩定、不碰撞的雙臂抓取

消融實驗

變體FCE (%)GSR (%)GCR (%)
DAGDiff 完整版60.1472.5015.10
拿掉力封閉頭24.9430.0616.85
拿掉碰撞頭50.0155.6723.50
力封閉頭事後訓練32.3746.4218.36
  • 拿掉力封閉頭:只靠能量頭的去噪目標,FCE 和 GSR 大幅下降。能量頭本身無法可靠地捕捉雙臂穩定性;力封閉頭因為明確訓練來區分穩定與不穩定的抓取對,它的梯度才能提供精確有意義的引導
  • 拿掉碰撞頭:碰撞率從 15.10% 升到 23.50%,抓取跟物體表面的接觸不正確,連帶拖累 FCE 和 GSR。其他兩個頭無法強制避免碰撞
  • 力封閉頭事後訓練:先訓練編碼器和能量頭、凍結後再單獨訓練力封閉頭,FCE 和 GSR 都明顯下降。因為編碼器沒機會適應分類目標,力封閉頭只拿到弱特徵、給出差的引導。結論是力封閉頭不是即插即用的模組,必須跟編碼器一起訓練,才能學到具穩定性意識的表示

真實世界實驗

異質雙臂系統:一支 UFactory xArm7 加一支 xArm6 Lite,用 AprilTag 校正,兩台 Intel RealSense D455 相機拍攝,點雲用 ICP 融合後送進模型,生成的抓取只保留運動學可達的。

物體托盤水桶醬汁鍋平底鍋無人機
成功6/108/107/106/105/10

模型完全用合成資料訓練,直接在真實點雲上零樣本生成抓取。大部分執行成功,失敗主要來自點雲重建損失了細節,導致生成錯誤的抓取。

限制與未來方向

作者自陳的限制:

  • 假設輸入是完整且已分割的物體點雲,真實場景通常只有部分觀測
  • 沒有考慮閉鏈運動學——兩支手臂同時抓住同一個物體後,手臂 + 物體形成一個閉合的運動鏈,移動時兩邊必須協調
  • 擴散需要多步迭代,推論速度受限

未來方向是延伸到部分觀測、做更全面的真實世界評估。

影響與定位

DAGDiff 的核心觀點是:穩定性和碰撞可以透過分類器訊號直接引導擴散過程,比外掛區域偵測或物體先驗更有效。這讓雙臂抓取從「兩個單臂抓取的組合」變成「一個聯合生成問題」。

把 CGDF 和 DAGDiff 放在一起看,可以看出這條路線的演進:

CGDFDAGDiff
生成空間SE(3),單一抓取SE(3) × SE(3),抓取對
區域怎麼來外部指定(最遠點、語言分割)模型自己從引導訊號學會
雙臂穩定性沒有明確處理力封閉分類器梯度引導
碰撞靠能量隱式處理碰撞分類器在去噪後段修正
訓練資料DA2DG16M

相關論文推薦

參考資料

  • Karim, M. F., Vembar, V., Patra, K., Singh, G., & Krishna, K. M. (2025). DAGDiff: Guiding Dual-Arm Grasp Diffusion to Stable and Collision-Free Grasps. arXiv:2509.21145
  • 專案頁:dag-diff.github.io/dagdiff
  • Karim, M. F. et al. (2025). DG16M: A Large-Scale Dataset for Dual-Arm Grasping with Force-Optimized Grasps. arXiv:2503.08358

相關術語

訂閱 RoboTech Lab 電子報

每週一封,整理新的教學、論文導讀與機器人業界動態。隨時可以取消訂閱。