論文導讀: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 等)主要目標是在物體或場景上均勻地生成穩定、不碰撞的抓取,用來做夾取放置。作者指出兩個限制:
- 均勻分佈的抓取不一定實用:物體可能易碎、笨重或很大,需要把抓取集中在特定部位
- 複雜形狀覆蓋不足:形狀表示不夠好加上固有偏差,在複雜物體上生成的抓取不夠密集。要拿到幾個落在目標區域的好抓取,得反覆跑很多次模型——樣本效率很差
所以需要約束抓取生成:給定目標區域,只在這個區域上密集、高效地生成抓取。這也自然延伸到多臂:每隻手臂各指定一個區域,就能生成雙臂抓取。
目標區域本身怎麼來?作者假設可以用現有的方法取得,例如用文字提示做部位分割的 PartSLIP(輸入「椅子的扶手」就切出扶手區域)。但這些方法只會分割,不會生成抓取;接下來通常還是靠均勻抓取生成器大量產生、再用區域篩選,對大型物體又回到覆蓋不足的問題。
既有的約束抓取方法 VCGS 能在指定區域生成密集抓取,但兩個缺點:需要把大型抓取資料集 ACRONYM 擴增成帶有約束區域標註的 CONG 資料集來訓練;而且對大型複雜物體泛化不好。
背景知識
Convolutional Occupancy Networks
一種隱式 3D 表示:把 3D 表面視為神經網路分類器的決策邊界。它把點雲編碼器(例如 PointNet)輸出的逐點特徵,投影到三個與座標軸對齊的平面(XY、XZ、YZ),每個平面是 H × W × d 的特徵格,同一格內的特徵做平均池化,再用共享的 2D U-Net 處理。好處是有平移等變性,能重建細節,常用於精細的隱式 3D 重建。
Neural Descriptor Fields
把一個查詢姿態表示成「一組固定查詢點雲 被轉到該姿態後,每個點的描述子」。這樣一來,某個抓取姿態的描述子,會跟它要抓的目標區域的描述子很相似。
SE(3) Diffusion Fields(SE3Diff)
把抓取生成表述為 SE(3) 擴散模型的梯度式逆擴散:從隨機抓取姿態出發,一步步把它們移到「低成本」區域,也就是好的抓取姿態。擴散模型能更好地涵蓋多模態分佈(同一個物體有很多種好抓法),樣本效率較高。CGDF 就建立在 SE3Diff 上。
方法
問題定義
給定物體點雲 和目標區域 ,生成 個平行夾爪抓取姿態 ,而且都落在 上。目標區域大小不限,可以是一小塊也可以是整個物體。對 隻手臂,就選 個目標區域 。
SE(3) 擴散模型
抓取姿態是 SE(3) 李群上的元素,不能直接加雜訊。做法是用對數映射和指數映射在李群與 向量空間之間轉換( 同構於李代數 ):
能量模型:不直接學向量場,而是學一個能量模型 ,輸出抓取姿態的純量能量:
向量場定義為能量對 的導數:
好處是可以用能量替抓取打分——能量越低,抓取越好。
前向擴散:把標註抓取 轉到向量空間、加高斯雜訊、再轉回 SE(3):
損失函數:訓練模型預測加入的雜訊(L1 損失):
逆擴散:用 SE(3) 版本的 Langevin MCMC,一步步把隨機姿態推向低能量:
部位引導擴散:不重新訓練就能做約束抓取
上面的模型是用一般抓取訓練的,會在整個物體上生成抓取。核心想法是:如果模型學到的形狀表示夠豐富,能描述局部幾何,那就能直接用它的能量值做約束抓取。
- 把目標區域 當成一個獨立的點雲,抓取 在它上面的能量 低,表示在這塊區域上看是穩定的
- 再用整個物體 當情境算能量 ,只有在整個物體上也穩定(不撞到其他部分)時才會低
- 兩者都低於門檻 ,就是一個有效的約束抓取
最簡單的做法是只在 上生成抓取,再用能量門檻篩選,但這樣很浪費。CGDF 改成在逆擴散的每一步同時看兩個能量、取最大值:
所以向量場變成:
直覺上:
- 抓取已經靠近目標區域、但會撞到物體其他部分或不穩 → 比較高 → 往「整個物體上穩定」的方向推
- 抓取很穩、但離目標區域很遠 → 比較高 → 往目標區域推
最後抓取會停在兩個能量都低的地方:既在目標區域上,又整體穩定。實作上就是跑兩個 CGDF 實例,一個以整個點雲為條件、一個以目標區域為條件。
模型架構:為什麼需要卷積平面特徵
SE3Diff 和 Neural Descriptor Fields 證明了「同時學表面重建和抓取」能得到好的抓取特徵,但它們只用一個全域點雲向量當條件。小物體還行,大型複雜物體的細節(例如椅子的細扶手、桌腳)就會被忽略。部位引導擴散又完全依賴能量值,所以模型必須能在細粒度上區分形狀。
CGDF 的做法:
- VN-PointNet 編碼點雲,得到逐點特徵(Vector Neurons,對旋轉等變的 PointNet)
- 卷積平面編碼器把逐點特徵壓到 XY、XZ、YZ 三個 2D 特徵平面,用 2D U-Net 處理
- 對查詢點 ,在三個平面上做雙線性內插取出特徵
- 特徵編碼器 (MLP)輸出該點的 SDF 和特徵向量:
- 抓取姿態 用一組固定查詢點表示:,把每個查詢點的特徵串起來,就是這個抓取的描述子
- 解碼器 (MLP)把描述子轉成能量:
訓練目標是擴散損失,再加上預測 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 (%) | VCGS | 3.28 | 3.96 |
| SE3Diff | 14.22 | – | |
| CGDF | 43.51 | 44.8 | |
| GSR (%) | VCGS | 41.01 | 43.36 |
| SE3Diff | 46.2 | – | |
| CGDF | 60.3 | 60.88 | |
| TG (%) | VCGS | 100 | 76.2 |
| CGDF | 100 | 91.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.04 | 60.21 |
| 拿掉部位引導擴散 | 樣本效率 SE (%) | 93.6 | 37.4 |
- 卷積平面特徵:因為形狀和抓取是聯合學習的,抓取的特徵會跟目標區域相似,所以可以用重建品質來衡量形狀表示好不好。兩個模型都會輸出 SDF,比較從預測 SDF 取樣的點雲跟真實點雲的 Chamfer 距離:CGDF 比 SE3Diff 好四倍多
- 部位引導擴散:比較「直接在目標區域生成再用能量門檻篩」與「部位引導」兩種方式,門檻設定讓兩者的 FC 在相近範圍,再看門檻篩選後剩下多少有效抓取。部位引導產生的有效抓取是 2.5 倍
另外作者示範了結合 PartSLIP 的語言部位分割:輸入「椅子的座位」「桌子的腳」「微波爐的把手」「檯燈的燈身與底座」,切出區域後直接用 CGDF(在 DA2 上訓練)生成抓取,展現泛化能力。
影響與定位
CGDF 的兩個貢獻:
- 卷積平面特徵讓抓取模型看得到局部幾何,在大型、細節多的物體上能生成密集抓取
- 部位引導擴散不需要約束資料集:一個只學過一般抓取的能量模型,靠推論時的能量取最大值,就能把抓取引導到任意指定區域
這讓「用語言指定部位 → 在部位上生成抓取 → 雙臂各抓一處」成為可行的流程。
限制在於:雙臂抓取在這裡只是「各自生成、剔除太近的配對」,沒有真正考慮兩個抓取合起來的力平衡,也沒考慮兩隻手臂之間的碰撞。這兩個問題正是同團隊下一篇 DAGDiff 要解決的。作者也提到可以延伸到兩隻以上手臂。
相關論文推薦
- 論文導讀:DAGDiff——在擴散過程中直接引導雙臂抓取走向力穩定、不碰撞——同團隊延伸到雙臂力穩定
- 論文導讀:Contact-GraspNet——把 6 自由度抓取降維成 4 自由度來學——均勻生成路線的代表
- 論文導讀:Mobile ALOHA——低成本全身遙操作,學會雙臂移動操作——雙臂操作的另一條路:模仿學習
參考資料
- 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 電子報
每週一封,整理新的教學、論文導讀與機器人業界動態。隨時可以取消訂閱。