【2019ICRA】PointNetGPD: 基於PointNet直接從點雲中估計抓取位姿

在這裏插入圖片描述

摘要

本文發表於2019年ICRA,作者提出了一種端到端的抓取位置預測模型,能夠從點雲中估計出機器人的抓取位姿。和當前算法相比,作者提出的PointNetGPD是一種輕量級的網絡模型,能夠處理抓取器閉合區域的點雲,進行抓取質量估計。網絡以原始點雲作爲輸入,能夠捕捉到抓取器閉合區域點雲的複雜幾何結構,即使這些點雲很稀疏。此外,作者基於YCB模型庫,生成了350K包含真實點雲和抓取的數據集用於訓練。提出的算法在仿真環境和實體機械臂上進行了定量評估,並且在單個物體和堆疊物體上進行了實際的抓取實驗,結果展示了作者提出的算法得到了比當前主流算法更高的精度,也能夠很好地擴展到未知物體。

1 引言

真實機器人抓取場景會有很多不穩定因素,其中就有傳感器引入的數據不精確以及質量下降。因而,一個能夠直接處理原始採集數據的機器人抓取位置估計算法尤爲重要。一些最新的工作使用深度學習,在大規模抓取數據集上進行訓練,能夠得到很好的結果,並且適用於不同種類的物體、傳感器和機器人,也能擴展到未知物體。然而,絕大多數這些方法仍然依賴2D圖像或者2.5D深度圖作爲輸入,一些抓取估計算法甚至需要複雜的手工設計的特徵,僅有極少數考慮了3D幾何信息。直觀來講,一個抓取能否成功,依賴於抓取器如何與物體表面在3D空間進行交互,因此,如果不對3D幾何結構進行分析,會對抓取位置估計算法帶來負面影響,尤其在對真實物體不能進行準確和完整採集的情況下。

PointNet網絡能夠直接作用於3D點雲,進行3D物體的識別與分割。受其啓發,作者提出了一個基於點雲的抓取位姿估計算法PointNetGPD,使用一種有效的策略來生成和評估每一個抓取位姿;不同與之前使用Multi-view CNN或者3D-CNN進行抓取位置估計的方法,PointNetGPD不需要將3D點雲投影爲多幅2D照片,也不需要柵格化爲稠密的3D體數據,能夠最大化地保持原始點雲的幾何信息,更爲有效的推斷抓取質量。算法流程如圖1所示。
在這裏插入圖片描述
圖1 PointNetGPD算法流程:給定傳感器輸入的原始RGB-D數據,首先將深度圖轉換爲點雲;其次,根據必須的幾何約束採樣一些候選的抓取位姿,對於每一個候選,裁剪抓取器內部的點雲,並轉換爲抓取器局部座標系;最後,將候選抓取輸入進抓取質量評估網絡得到各自的評分,具有最高得分的候選抓取位姿被採納並執行抓取。

此外,作者基於YCB數據集生成了一個包含350k真實點雲、平行抓取器抓取位姿,以及解析式抓取質量評分的數據集。不同於Dex-Net數據集,該數據集針對每一個抓取位姿,提供了一種更爲細緻的評分。具體來講,給定一個6D的抓取位姿,以及一個物體的CAD模型,作者通過計算force-closure和一個摩擦無關的GWS(Grasp Wrench Space),作爲該抓取位姿的評分。

2 問題描述

給定物體oo,其與抓取器的摩擦力r,物體的幾何中心MoM_o,物體的6D位姿WoW_o,則設定狀態s=(Wo,Mo,r)s=(W_o, M_o, r);對於一個抓取g=(p, r),其中p=(x,y,z)p=(x,y,z)r=(rx,ry,rz)r=(r_x,r_y,r_z)分別代表抓取位置和抓取朝向;本文中只考慮平行抓取器,所有的空間屬性都是在相機座標系下;令抓取質量爲Q(s,g)Q(s,g)。給定抓取配置gg以及傳感器觀測數據PP,目標是能夠從點雲數據中,學習得到一個抓取度量Qd(P,g)Q_d(P,g)的評分類別,可以是c0,c1,c2c_0, c_1, c_2等,這些類別可以由Q(s,g)Q(s,g)賦值得到。

如何端到端地評估抓取質量面臨兩個挑戰:第一,學習這樣一個抓取質量度量,需要進行大規模數量的採樣,範圍需要足夠大,才能獲得良好的效果和泛化性能;其次,輸入的點雲可能是不精確或者有瑕疵的,導致進行幾何分析的困難加大。最終,作者選擇了PointNet,在生成的包含350k真實點雲和抓取位姿的數據集上,訓練抓取質量評估模型。

3 抓取數據生成

採樣:在給定物體的網格上採樣生產候選抓取位姿;首先,隨機尋找兩個表面點p1p_1p2p_2作爲抓取器的接觸點,隨機指定一個0至90度的抓取角度,構建一個抓取位姿g((p1+p2)/2,R)g((p_1+p_2)/2,R);其次,通過判斷抓取器執行抓取動作後是否會與網格碰撞,去除不合適的抓取;最後,將剩餘的候選抓取位姿,由網格座標系變換到點雲座標系(抓取器內部的點雲);

評分:候選抓取位姿會被標記魯棒性的抓取度量,包括Force-Closure(FC)和GWS;傳統的FC需要摩擦係數rr,只提供一個二元輸出標明抓取位姿是否是對點;作者對其修改,使其能給出定量的評分:從0.4開始,逐漸增加rr,直到該抓取候選是對點,此時值1/r1/r就作爲當前抓取的評分。這種修改很直觀,符合對點的抓取需要更低的摩擦係數,因而要更好。如圖2所示,具有更低的r說明更魯棒和可靠。這種差異在針對複雜物理形狀時更爲明顯;另外一個抓取度量是基於Grasp Wrench Space Analysis的QgwsQ_{gws},主要針對無摩擦係數的抓取力臂空間。最後結合QfcQ_fcQgwsQ_{gws}得到了一個最終的質量評分標準,如公式1所示。由於QgwsQ_{gws}QfcQ_fc大得多,因此係數(a,b)(a,b)設置爲(1.0, 0.01)。
在這裏插入圖片描述
在這裏插入圖片描述
圖2 在數據集上標記QfcQ_fc的抓取實例。(a)綠色的抓取具有的摩擦係數r=0.4。(b)紅色的抓取具有的摩擦係數r=2.0。在這種簡單幾何形狀的物體上,綠色和紅色的抓取在魯棒性方面也具有很大的差異。

4 新的網絡框架及抓取表示

抓取質量評估網絡如圖3所示。該網絡結構類似於PointNet,輸入的抓取表示爲抓取器閉合區域內部的點雲,沒有將整個點雲作爲輸入,能夠提高學習和推斷的效率。點雲首先被轉換到統一的抓取器局部座標系,如圖4所示,這就消除了由於不同的實驗設置下導致的抓取位置的歧義性。之後,這些點雲就被輸入進網絡來估計抓取質量的層次。和其他的基於CNN的抓取質量評估網絡相比,該網絡是輕量級的,只具有近似160萬個參數。
在這裏插入圖片描述
圖3 基於PointNet的抓取質量評估網絡結構。給定一個抓取位姿和原始點雲,將抓取器閉合區域的點雲代表一個抓取,變換到抓取器局部座標系後輸入進網絡。經過多個空間變換和特徵提取,最終的全局特徵用來劃分輸入抓取的質量水平。

在這裏插入圖片描述
圖4 局部抓取器座標系下的抓取表示。(a)一個典型的抓取位姿;(b)局部座標系的座標軸。作者將抓取器的前進方向、平行方向以及正交方向分別作爲XYZ軸,將抓取器底部中間位置作爲原點。

訓練集:
由於抓取質量是一個定量的結果,而不是一個二元的值,因此適合進行多類別的抓取質量分類。基於47個YCB物體模型生成了350k個點雲。爲了平衡不同抓取質量的抓取,作者在不同摩擦係數下采樣了等數量的抓取,QfcQ_fc值爲{1/0.4, 1/0.45, 1/0.5, 1/0.8, 1/1.2, 1/1.6, 1/2.0}。對於點雲,作者使用了YCB模型庫提供的真實點雲,而不是由CAD模型渲染得到的點雲,以便能夠對真實世界的抓取任務有更好的泛化。

訓練細節:
我們使用了一個C-類的交叉熵損失作爲分類器的目標函數。整個網絡結構使用了Adam優化器進行優化。網絡所有參數的初始化值,由0-均值高斯分佈採樣而來。對輸入的點雲進行了隨機的偏移來進行數據增強。

5 抓取候選點生成

爲了構建一個完整的抓取框架,先決條件是進行候選抓取位姿的生成。作者採用了GPG算法來啓發式地進行抓取位姿采樣。另外,作者對原始GPG進行了一些調整來減少抓取位姿與模型表面的碰撞:首先拋棄和支撐表面太近的採樣抓取位置;移除抓取時遠離支撐表面的抓取候選;對於一個碰撞的抓取,向逆抓取方向拉,直至碰撞消失,如果此時仍然有很多點存留在抓取器的閉合區域內,此時調整後的抓取被標記爲不發生碰撞。

6 仿真環境實驗

作者選擇GPD(Grasp Pose Detection)算法作爲基準算法進行對比。由於不能獲取相機位置,來計算在15-channel GPD中用到的未觀測的區域,作者只和3-channel GPD和12-channel GPD算法進行比較。另外,爲了觀察在稀疏點雲上的穩定性,作者提供了單視角點雲和完整點雲的輸入;單視角點雲由物體前方的相機獲取,完整點雲由所有視角下的點雲配準而來。點雲數據準備好後,作者去除了那些抓取器之間點數目小於50的候選抓取,並對剩下的候選點雲進行上/下采樣,使點數目爲1000。分別進行了3類識別和2類識別實驗,對於2類識別,將總得分大於1/0.6的作爲正;對於3類識別,設置的閾值爲1/0.5和1/1.2。

結果分析:訓練中得到的測試精度如圖5所示。其中在200 epochs中最好的結果在表1進行了對比。首先,作者提出的PointNetGPD比所有的GPD都要好,即使在最困難的單視角點雲上,PointNetGPD和最好的GPD相比仍然具有平均4.79%的提升。另外,從圖5中可以看到,GPD很容易在數據集上過擬合,而且即使使用了DropOut,和PointNetGPD也有差距。這裏部分原因是參數數量的問題。PointNetGPD具有更少的參數並且表現的更好,這說明作者提出的網絡針對稀疏點雲進行幾何分析更爲有效。另外,在3類識別實驗中,具有最高抓取質量的類別的精度比2類識別實驗中的類別精度要高,這意味着具有更高抓取評分的抓取更容易被識別到。
在這裏插入圖片描述
圖5 不同模型和配置下的識別精度。所有的模型在完整點雲上得到了更高的精度,而提出的PointNetGPD在兩種情況下都比GPD要好。

在這裏插入圖片描述表1

7 真實機械臂抓取實驗

作者在兩個機械臂真實抓取環境下評估了PointNetGPD的可靠性和有效性:分別是物體單獨放置和物體堆疊放置兩種情況。實驗使用的是UR5機械臂和Robotiq三指抓取器。如圖6(a)所示,抓取器在夾緊模式下工作,只有兩個接觸面,可以在一個自由度下相對靠近或遠離。真實實驗採用的是Kinect2深度傳感器,因此只有單視角點雲。

作者從YCB數據集中選擇了22個物體,其中11個存在於抓取數據集中,剩餘11個是新的。作者還從22個物體中選擇了16個來構建兩個用於堆疊物體移除的數據集,如圖6(b)所示。對於兩種情況,作者提供了2類PointNetGPD和3類PointNetGPD算法的結果,並和15-channel的GPD進行比較。整個系統在ROS框架下開發,使用了MoveIt!內置的一個快速混合的漸進逆動力學算子BioIK。

單獨放置的物體:每個物體測試10次,每次物體的朝向隨機。如果抓取器不能成功抓取,或者5分鐘內都找不到不發生碰撞的抓取位姿,則認爲抓取失敗。這裏只考慮抓取成功率。表2展示了使用三種方法的抓取結果,PointNetGPD得到了更高的抓取精度。
在這裏插入圖片描述
表2

堆疊放置的物體:使用的兩個數據集如圖6(b)中的綠色和藍色所示,數據集1具有6個抓取成功率100%的物體,數據集2具有2個抓取成功率100%的物體。每個數據集進行5輪實驗。作者也列舉了3類識別中的第二類。這裏使用了成功率和完成率,分別代表成功抓取的概率,以及成功移除的物體所佔的比例。結果如表3所示。由表3所示,所有方法在數據集1上的結果好於數據集2,PointNetGPD的結果最好,尤其在完成率方面,在數據集2上相比於GPD有13.5%的提升。PointNetGPD第二類的結果比第一類的結果差很多,證明了設定3個類別的有效性。另外,由於我們只使用單視角點雲,遮擋會導致實驗失敗;有些時候會將多個物體當成一個物體,也會導致抓取失敗。
在這裏插入圖片描述
圖6 實驗環境設置。(a) UR5機械臂和Robotiq三指抓取器;(b)實驗中用到的物體,紅色多邊形內的物體包含於訓練集,品紅色多邊形內的物體不包含於訓練集。綠色和藍色多邊形內的物體分別代表用於堆疊物體實驗的數據集1和數據集2。
在這裏插入圖片描述
表3

8 總結

  • 該論文提出了PointNetGPD算法直接處理點雲數據;生成了基於YCB模型庫的包含350k真實點雲的抓取數據集;比當前主流的GPD算法相比,在抓取效果上有提升;
  • 未來可以將候選抓取位姿的生成,集成進抓取質量估計網絡,以實現端到端;也可以針對堆疊情況引入場景分割,避免將多個物體當作一個物體。
  • 代碼地址:https://github.com/lianghongzhuo/PointNetGPD

聲明:本文中所有圖片均引自改論文。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章