論文導讀:CGDF——用擴散模型在大型複雜物體的指定區域生成雙臂抓取

Gaurav Singh, Sanket Kalwar, Md Faizal Karim, Bipasha Sen, Nagamanikandan Govindan, Srinath Sridhar, K Madhava Krishna · 2024原文連結

一句話讀懂這篇論文

一般的抓取模型會在整個物體上平均撒抓取點,但搬一張椅子時,你想要的是兩隻手各抓一邊扶手,而不是隨便抓哪裡。CGDF 讓模型能在「指定的區域」上密集生成穩定抓取。關鍵在於:它只用一般的(不限區域的)抓取資料訓練,推論時用一個簡單的能量取最大值技巧,就能把抓取引導到指定部位,不需要另外準備「區域 + 抓取」的配對資料集。

論文資訊卡

  • 標題:Constrained 6-DoF Grasp Generation on Complex Shapes for Improved Dual-Arm Manipulation
  • 作者:Gaurav Singh、Sanket Kalwar、Md Faizal Karim(共同一作)、Bipasha Sen、Nagamanikandan Govindan、Srinath Sridhar、K Madhava Krishna
  • 機構:IIIT Hyderabad 機器人研究中心、MIT、Brown University
  • 發表:IEEE/RSJ IROS 2024
  • 專案頁:constrained-grasp-diffusion.github.io
  • 定位:雙臂抓取的前置工作。同一團隊之後的 DAGDiff 直接延伸這條路線,處理雙臂抓取的力穩定與碰撞

問題背景

既有的抓取生成方法(6-DoF GraspNet、Contact-GraspNet 等)主要目標是在物體或場景上均勻地生成穩定、不碰撞的抓取,用來做夾取放置。作者指出兩個限制:

  1. 均勻分佈的抓取不一定實用:物體可能易碎、笨重或很大,需要把抓取集中在特定部位
  2. 複雜形狀覆蓋不足:形狀表示不夠好加上固有偏差,在複雜物體上生成的抓取不夠密集。要拿到幾個落在目標區域的好抓取,得反覆跑很多次模型——樣本效率很差

所以需要約束抓取生成:給定目標區域,只在這個區域上密集、高效地生成抓取。這也自然延伸到多臂:每隻手臂各指定一個區域,就能生成雙臂抓取。

目標區域本身怎麼來?作者假設可以用現有的方法取得,例如用文字提示做部位分割的 PartSLIP(輸入「椅子的扶手」就切出扶手區域)。但這些方法只會分割,不會生成抓取;接下來通常還是靠均勻抓取生成器大量產生、再用區域篩選,對大型物體又回到覆蓋不足的問題。

既有的約束抓取方法 VCGS 能在指定區域生成密集抓取,但兩個缺點:需要把大型抓取資料集 ACRONYM 擴增成帶有約束區域標註的 CONG 資料集來訓練;而且對大型複雜物體泛化不好。

背景知識

Convolutional Occupancy Networks

一種隱式 3D 表示:把 3D 表面視為神經網路分類器的決策邊界。它把點雲編碼器(例如 PointNet)輸出的逐點特徵,投影到三個與座標軸對齊的平面(XY、XZ、YZ),每個平面是 H × W × d 的特徵格,同一格內的特徵做平均池化,再用共享的 2D U-Net 處理。好處是有平移等變性,能重建細節,常用於精細的隱式 3D 重建。

Neural Descriptor Fields

把一個查詢姿態表示成「一組固定查詢點雲 PqP_q 被轉到該姿態後,每個點的描述子」。這樣一來,某個抓取姿態的描述子,會跟它要抓的目標區域的描述子很相似。

SE(3) Diffusion Fields(SE3Diff)

把抓取生成表述為 SE(3) 擴散模型的梯度式逆擴散:從隨機抓取姿態出發,一步步把它們移到「低成本」區域,也就是好的抓取姿態。擴散模型能更好地涵蓋多模態分佈(同一個物體有很多種好抓法),樣本效率較高。CGDF 就建立在 SE3Diff 上。

方法

問題定義

給定物體點雲 P∈RN×3P \in \mathbb{R}^{N\times3} 和目標區域 Pt⊂PP_t \subset P,生成 MM 個平行夾爪抓取姿態 Hi∈SE(3)H_i \in SE(3),而且都落在 PtP_t 上。目標區域大小不限,可以是一小塊也可以是整個物體。對 nn 隻手臂,就選 nn 個目標區域 {Pt1,…,Ptn}\{P_{t_1}, \ldots, P_{t_n}\}。

SE(3) 擴散模型

抓取姿態是 SE(3) 李群上的元素,不能直接加雜訊。做法是用對數映射和指數映射在李群與 R6\mathbb{R}^6 向量空間之間轉換(R6\mathbb{R}^6 同構於李代數 se(3)se(3)):

  • Logmap:SE(3)→R6\text{Logmap}: SE(3) \to \mathbb{R}^6
  • Expmap:R6→SE(3)\text{Expmap}: \mathbb{R}^6 \to SE(3)

能量模型:不直接學向量場,而是學一個能量模型 EE,輸出抓取姿態的純量能量:

ek=E(H,k,P)e_k = E(H, k, P)

向量場定義為能量對 HH 的導數:

sθ(H,k,P)=DekDHs_\theta(H, k, P) = \frac{D e_k}{D H}

好處是可以用能量替抓取打分——能量越低,抓取越好。

前向擴散:把標註抓取 HH 轉到向量空間、加高斯雜訊、再轉回 SE(3):

Hk=Expmap[Logmap(H)+ϵk],ϵk∼N(0,σk2I)H_k = \text{Expmap}\big[\text{Logmap}(H) + \epsilon_k\big], \qquad \epsilon_k \sim \mathcal{N}(0, \sigma_k^2 I)

損失函數:訓練模型預測加入的雜訊(L1 損失):

Ldiff=∥sθ(Hk,k,P)−ϵk∥\mathcal{L}_{diff} = \lVert s_\theta(H_k, k, P) - \epsilon_k \rVert

逆擴散:用 SE(3) 版本的 Langevin MCMC,一步步把隨機姿態推向低能量:

Hk−1=Expmap(−αk22 sθ(Hk,k,P)+αk ϵ)Hk,ϵ∼N(0,I)H_{k-1} = \text{Expmap}\left(-\frac{\alpha_k^2}{2}\,s_\theta(H_k, k, P) + \alpha_k\,\epsilon\right) H_k, \qquad \epsilon \sim \mathcal{N}(0, I)

部位引導擴散:不重新訓練就能做約束抓取

上面的模型是用一般抓取訓練的,會在整個物體上生成抓取。核心想法是:如果模型學到的形狀表示夠豐富,能描述局部幾何,那就能直接用它的能量值做約束抓取。

  • 把目標區域 PtP_t 當成一個獨立的點雲,抓取 HtH_t 在它上面的能量 e=E(Ht,0,Pt)e = E(H_t, 0, P_t) 低,表示在這塊區域上看是穩定的
  • 再用整個物體 PP 當情境算能量 e^=E(Ht,0,P)\hat{e} = E(H_t, 0, P),只有在整個物體上也穩定(不撞到其他部分)時才會低
  • 兩者都低於門檻 δ\delta,就是一個有效的約束抓取

最簡單的做法是只在 PtP_t 上生成抓取,再用能量門檻篩選,但這樣很浪費。CGDF 改成在逆擴散的每一步同時看兩個能量、取最大值:

ek=max⁡(e^k, e~k),e^k=E(Hk,k,P),e~k=E(Hk,k,Pt)e_k = \max(\hat{e}_k,\ \tilde{e}_k), \qquad \hat{e}_k = E(H_k, k, P),\quad \tilde{e}_k = E(H_k, k, P_t)

所以向量場變成:

sθ(Hk,k,{P,Pt})={sθ(Hk,k,P),e^k≥e~ksθ(Hk,k,Pt),e^k<e~ks_\theta(H_k, k, \{P, P_t\}) = \begin{cases} s_\theta(H_k, k, P), & \hat{e}_k \geq \tilde{e}_k \\ s_\theta(H_k, k, P_t), & \hat{e}_k < \tilde{e}_k \end{cases}

直覺上:

  • 抓取已經靠近目標區域、但會撞到物體其他部分或不穩 → e^k\hat{e}_k 比較高 → 往「整個物體上穩定」的方向推
  • 抓取很穩、但離目標區域很遠 → e~k\tilde{e}_k 比較高 → 往目標區域推

最後抓取會停在兩個能量都低的地方:既在目標區域上,又整體穩定。實作上就是跑兩個 CGDF 實例,一個以整個點雲為條件、一個以目標區域為條件。

模型架構:為什麼需要卷積平面特徵

SE3Diff 和 Neural Descriptor Fields 證明了「同時學表面重建和抓取」能得到好的抓取特徵,但它們只用一個全域點雲向量當條件。小物體還行,大型複雜物體的細節(例如椅子的細扶手、桌腳)就會被忽略。部位引導擴散又完全依賴能量值,所以模型必須能在細粒度上區分形狀。

CGDF 的做法:

  1. VN-PointNet 編碼點雲,得到逐點特徵(Vector Neurons,對旋轉等變的 PointNet)
  2. 卷積平面編碼器把逐點特徵壓到 XY、XZ、YZ 三個 2D 特徵平面,用 2D U-Net 處理
  3. 對查詢點 xqx_q,在三個平面上做雙線性內插取出特徵 zxqz_{x_q}
  4. 特徵編碼器 F\mathcal{F}(MLP)輸出該點的 SDF 和特徵向量:fxqk={sdfxq,ϕxqk}=F(zxq⊕xq,k)f^k_{x_q} = \{\text{sdf}_{x_q}, \phi^k_{x_q}\} = \mathcal{F}(z_{x_q} \oplus x_q, k)
  5. 抓取姿態 HH 用一組固定查詢點表示:PH=H×PqP_H = H \times P_q,把每個查詢點的特徵串起來,就是這個抓取的描述子 fHkf^k_H
  6. 解碼器 D\mathcal{D}(MLP)把描述子轉成能量:ek=D(fHk)e_k = \mathcal{D}(f^k_H)

訓練目標是擴散損失,再加上預測 SDF 的輔助損失。

實驗設定

  • 資料集:DA2 雙臂抓取資料集,網格來自 ShapeNetSem。跟同樣用 ShapeNetSem 的 ACRONYM 不同,ACRONYM 把大物體縮小到桌面/玩具尺寸,DA2 保留椅子、檯燈等大型物體的原始尺寸,而且類別多、每類樣本少,學形狀先驗比較困難
  • CGDF 用原始 DA2 訓練(不需擴增);比較方法需要帶約束區域的資料,所以按 VCGS 的流程擴增 DA2
  • 每個物體取 1000 個點;約束抓取時,用最遠點取樣選兩個查詢點,各取 k = 100 個最近鄰作為兩個目標區域(依幾何位置不同,可能是一小塊平面,也可能是整條桌腳)
  • 雙臂抓取時,剔除兩個夾爪太靠近的抓取對
  • 比較方法:約束抓取比 VCGS(用 VCGS-Sampler 產生抓取對、VCGS-Evaluator 挑最高分);一般抓取另外比 SE3Diff

評估指標

  • Force Closure(FC):最嚴格的指標,同時考慮穩定性和碰撞。把夾爪網格轉到預測姿態,跟物體網格相交就直接剔除(輕微碰撞也算),再從手指向內打射線找接觸點與法向量。雙臂共 4 個接觸力(每隻夾爪 2 個),判斷是否滿足力封閉條件。FC 是「力封閉的抓取 ÷ 所有預測抓取(含碰撞的)」
  • Grasp Success Rate(GSR):在 Isaac Gym 中用兩個自由浮動的 Franka Panda 夾爪(手指延長到 6 公分)同時夾一個自由浮動的物體,不考慮手臂可達性。夾緊後開重力、往上抬,物體沒掉就算成功
  • Target Grasps(TG):抓取中心到目標區域的最短距離小於 6 公分(DA2 假設的手指長度)的比例

實驗結果

指標方法一般抓取約束抓取
FC (%)VCGS3.283.96
SE3Diff14.22–
CGDF43.5144.8
GSR (%)VCGS41.0143.36
SE3Diff46.2–
CGDF60.360.88
TG (%)VCGS10076.2
CGDF10091.86

讀這張表:

  • VCGS 的 FC 極低(3~4%):VCGS-Sampler 能把抓取放到目標區域附近,但描述不了區域的精細幾何,產生大量「稍微擦到物體」的抓取,在嚴格的 FC 指標下全被剔除。VCGS-Evaluator 也是用全域形狀表示,判斷不出這些輕微碰撞
  • 有趣的是,輕微碰撞對實際抓取成功率影響沒那麼大——碰到會讓物體稍微移動,但還是抓得起來。所以 VCGS 的 GSR 跟 SE3Diff 差不多
  • SE3Diff 碰撞較少,但 GSR 也只跟 VCGS 同等級,顯示只用全域嵌入的限制
  • CGDF 在所有指標都最好,約束抓取的 TG 達 91.86%,代表九成以上的抓取確實落在指定區域

定性比較:所有方法在形狀簡單的物體(平面、長條形)上都表現不錯;但在椅子、樂器這類複雜幾何上,只有 CGDF 能生成密集的抓取。

消融實驗

改動指標CGDF改動後
拿掉卷積平面特徵Chamfer 距離(×10⁴,越低越好)14.0460.21
拿掉部位引導擴散樣本效率 SE (%)93.637.4
  • 卷積平面特徵:因為形狀和抓取是聯合學習的,抓取的特徵會跟目標區域相似,所以可以用重建品質來衡量形狀表示好不好。兩個模型都會輸出 SDF,比較從預測 SDF 取樣的點雲跟真實點雲的 Chamfer 距離:CGDF 比 SE3Diff 好四倍多
  • 部位引導擴散:比較「直接在目標區域生成再用能量門檻篩」與「部位引導」兩種方式,門檻設定讓兩者的 FC 在相近範圍,再看門檻篩選後剩下多少有效抓取。部位引導產生的有效抓取是 2.5 倍

另外作者示範了結合 PartSLIP 的語言部位分割:輸入「椅子的座位」「桌子的腳」「微波爐的把手」「檯燈的燈身與底座」,切出區域後直接用 CGDF(在 DA2 上訓練)生成抓取,展現泛化能力。

影響與定位

CGDF 的兩個貢獻:

  1. 卷積平面特徵讓抓取模型看得到局部幾何,在大型、細節多的物體上能生成密集抓取
  2. 部位引導擴散不需要約束資料集:一個只學過一般抓取的能量模型,靠推論時的能量取最大值,就能把抓取引導到任意指定區域

這讓「用語言指定部位 → 在部位上生成抓取 → 雙臂各抓一處」成為可行的流程。

限制在於:雙臂抓取在這裡只是「各自生成、剔除太近的配對」,沒有真正考慮兩個抓取合起來的力平衡,也沒考慮兩隻手臂之間的碰撞。這兩個問題正是同團隊下一篇 DAGDiff 要解決的。作者也提到可以延伸到兩隻以上手臂。

相關論文推薦

參考資料

  • Singh, G., Kalwar, S., Karim, M. F., Sen, B., Govindan, N., Sridhar, S., & Krishna, K. M. (2024). Constrained 6-DoF Grasp Generation on Complex Shapes for Improved Dual-Arm Manipulation. IEEE/RSJ IROS 2024, pp. 7344–7350. arXiv:2404.04643
  • 專案頁:constrained-grasp-diffusion.github.io
  • Urain, J. et al. (2023). SE(3)-DiffusionFields. ICRA 2023.

相關術語

訂閱 RoboTech Lab 電子報

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