阮國強,曹雛清,2
(1.安徽工程大學(xué)計算機與信息學(xué)院,安徽蕪湖 241000;2.哈爾濱工業(yè)大學(xué)蕪湖機器人產(chǎn)業(yè)技術(shù)研究院,安徽蕪湖 241000)
智能機器人在執(zhí)行抓取任務(wù)時需要獲取目標的位姿,而常用的位姿獲取方法有經(jīng)驗法和深度學(xué)習(xí)方法。經(jīng)驗法可分為基于模型的方法和數(shù)據(jù)驅(qū)動的方法:基于模型的方法主要針對模型已知物體,即預(yù)知數(shù)據(jù)或者通過測量獲得的3D模型[1-2],而在實際應(yīng)用中很難了解物體精確的3D模型;基于數(shù)據(jù)驅(qū)動的方法[3-7]主要是利用監(jiān)督學(xué)習(xí)獲取目標特征,如V. Ferrari等[8]提出使用由k個連接的直線輪廓線段作為局部特征用于物體類檢測,由于人工提取特征通常只針對特定場景,所以該方法的泛化性不夠強?;谏疃葘W(xué)習(xí)方法是通過大量圖片數(shù)據(jù)集訓(xùn)練出映射模型,通過該模型可將圖像數(shù)據(jù)映射到1個或多個抓取位姿表示,如康奈爾大學(xué)的I.Lenz等[9]設(shè)計了一個以RGB-D圖像為輸入的兩級級聯(lián)神經(jīng)網(wǎng)絡(luò)用于機器人抓取,以獲取目標的最優(yōu)抓取位置;華盛頓大學(xué)的J. Redmon等[10]將目標檢測的one-stage思路引入抓取檢測問題中,輸入RGB圖片后經(jīng)過Alex-Net模型直接輸出抓取框的位置;中科院自動化所的閆哲等[11]將目標檢測引入Lenz的方法中,先獲取圖像中目標物體的類別和位置,再去獲得物體的最佳抓取位置;文獻[12]提出一種DenseFusion的通用框架,用于從RGB圖像和深度圖像中估計物體的6D位姿。這些方法將可能的抓取空間限制為平面抓取,而面向平面抓取會導(dǎo)致大量可能的機器人抓取和機器人的全運動學(xué)能力被忽略??紤]到從圖像信息中獲取物體的姿態(tài)再執(zhí)行抓取時抓取位置的選擇不當導(dǎo)致抓取失敗,因此,本文提出基于點云[13-15]直接預(yù)測抓取姿態(tài)的網(wǎng)絡(luò),該網(wǎng)絡(luò)從目標場景的點云出發(fā),直接預(yù)測場景中物體的抓取姿態(tài)。由于直接對點云進行姿態(tài)估計的計算量較大,因此本文將7自由度的抓取姿態(tài)問題簡化成4自由度問題解決,并實現(xiàn)直接從雜亂、部分遮擋的場景中估計物體的抓取姿態(tài)。
在執(zhí)行抓取任務(wù)中,獲取目標場景中由物體的3自由度的空間平移、3自由度的空間旋轉(zhuǎn)和抓取寬度所組成的7自由度抓取姿態(tài)是較為不易的,這是因為這種抓取分布是不連續(xù)、不平衡的,且由于物體之間存在相互遮擋的現(xiàn)象從而使得抓取分布不準確。
為了解決這個問題,本文的抓取姿態(tài)獲取是利用二指夾具的抓取特點將抓取范圍約束在一定范圍內(nèi),再通過PointNet++[16]網(wǎng)絡(luò)獲取夾具與物體的接觸點(p),夾具接近方向(m)、基線方向(n)和抓取寬度(w),從而將抓取姿態(tài)的7自由度問題轉(zhuǎn)換成4自由度問題即p,m,n,w這4個方面的問題。通過確定p、m、n、w,來獲取7自由度抓取姿態(tài)G=[g|||w],g為接觸點對應(yīng)的位姿。夾具的具體抓取表示如圖1所示。
圖1 二指夾具抓取表示
與估計抓取姿勢的其他方法相比,由于將抓取姿態(tài)約束在二指夾具的范圍上從而降低抓取的維度,簡化了學(xué)習(xí)過程,進而使訓(xùn)練的速度變快,同時也提高了預(yù)測抓取姿勢的精度。在測試時,我們可以通過采樣覆蓋場景或?qū)ο蟮恼麄€可觀察表面接觸點來獲取抓取方案,從而很好地預(yù)測7自由度抓取姿態(tài)。由于PointNet++網(wǎng)絡(luò)具有有效的處理點云和在局部區(qū)域中按層次提取點及其特征的能力,且這種預(yù)測抓取方式可以與輸入點云中的點相互關(guān)聯(lián),所以在進行抓取姿態(tài)估計時使用了這些功能。
面對由多個未知物體所組成的場景,從多個角度生成7自由度抓取的問題中,本文使用三維點云數(shù)據(jù)作為輸入并生成相應(yīng)的抓取姿態(tài)。由于需要對點云信息進行特征提取,故本文采用PointNet++網(wǎng)絡(luò)作為主干網(wǎng)絡(luò),并提出了一種抓取姿態(tài)估計算法,該算法獲取目標抓取姿態(tài)的4自由度信息從而計算出抓取姿態(tài)。接觸點的思路借鑒了文獻[17]提出的Contact-GraspNet并在其基礎(chǔ)上進行了改進優(yōu)化,本文在Contact-GraspNet的基礎(chǔ)上將估計的抓取姿態(tài)和寬度加入到訓(xùn)練中進行優(yōu)化。算法結(jié)構(gòu)如圖2所示。算法網(wǎng)絡(luò)分成特征提取、特征維度調(diào)整、位姿獲取。
圖2 算法網(wǎng)絡(luò)結(jié)構(gòu)
先對場景點云進行特征提取,其提取過程如下:首先使用最遠點采樣 (FPS)方法對目標點云數(shù)據(jù)進行采樣,使用球分組方法對采樣到的點進行分組,然后使用PointNet網(wǎng)絡(luò)對每一組點進行特征提取,再將提取到的特征進行最大池化,從而獲取目標點云的全局特征。
將提取到的全局特征使用向上插值和拼接,使獲取的全局特征傳播到采樣的點上,并使用多層感知器(MLP)調(diào)整輸出的特征維度。
將采樣得到的點作為p,并使用接觸點對應(yīng)的特征去預(yù)測m、n、w以及對應(yīng)的成功抓取率(d)。先利用獲取的m和n計算出抓取的旋轉(zhuǎn)矩陣S,再利用獲取的p、m、n計算出抓取的平移矩陣T,最后利用S、T、w來計算物體的抓取位姿。
計算抓取的旋轉(zhuǎn)和平移矩陣的公式如下:
(1)
(2)
式中:p為夾具與物體的接觸點;m為接近方向向量,|m|=1;n為基線方向向量,|||n|||=1;l為夾具基線到夾具底座的恒定距離。m和n的獲取將在3.2節(jié)中詳細闡述。
對于模型訓(xùn)練和測試的場景數(shù)據(jù)是由ACRONYM[18]數(shù)據(jù)集和ShapNetSem[19-20]網(wǎng)格數(shù)據(jù)集通過在隨機穩(wěn)定姿勢下進行放置生成的10 000個桌面場景。
其中,ACRONYM數(shù)據(jù)集包含1 770萬個平行夾具抓取,跨越262個不同類別的8 872個對象,每個對象都標有從物理模擬器獲得的抓取結(jié)果;ShapNetSem網(wǎng)格數(shù)據(jù)集是一個注釋豐富的大規(guī)模3D形狀數(shù)據(jù)集由12 000個模型組成,分布在更廣泛的270個類別中。本文所用的實驗場景都是由數(shù)據(jù)合成而來,不是真實場景,且每個訓(xùn)練場景中的數(shù)據(jù)都包含夾具與場景中物體的接觸點、成功率和抓取位姿等信息,用于后續(xù)的模型訓(xùn)練。
抓取網(wǎng)絡(luò)模型的訓(xùn)練在服務(wù)器(操作系統(tǒng):Ubuntu 18.04 LTS,CPU:Intel Xeon 4210R 2.4GHz,GPU:NVIDIA GeForce A40)上進行。本文從隨機生成的10 000個桌面場景中隨機選擇9 000個作為訓(xùn)練集,并使用Adam優(yōu)化器在訓(xùn)練過程中對參數(shù)進行迭代優(yōu)化,該優(yōu)化器的優(yōu)點在于實現(xiàn)簡單、計算高效,對于內(nèi)存的需求不大,且能夠自動調(diào)正學(xué)習(xí)率,適合應(yīng)用于大規(guī)模的數(shù)據(jù)及參數(shù)的場景。
訓(xùn)練過程中,優(yōu)化器初始學(xué)習(xí)率為0.001,逐步衰減率為0.000 1,epochs為16。
將場景中的物體索引和ShapNetSem網(wǎng)格數(shù)據(jù)集中對應(yīng)的網(wǎng)格模型渲染成點云集C={c1,…,cn},并給每個點賦予成功抓取率,
(3)
式中:pj∈C是非碰撞真實的抓取接觸點;r=5 mm是接觸點的最大傳播半徑。
由式(3)將點云集C分成兩部分:負接觸點C-={ci|||di=0},即在傳播半徑范圍之外的點;正接觸點C+={ci|||di=1},即在傳播半徑范圍之內(nèi)的點。對于正接觸點C+可以得到每個點對應(yīng)的旋轉(zhuǎn)矩陣Si和平移矩陣Ti,公式如下:
(4)
式中j為距離正接觸點最小距離的真實抓取點的索引。
使用PointNet++中的特征提取層和特征傳播層來構(gòu)建非對稱的U型網(wǎng)絡(luò)。該網(wǎng)絡(luò)取20 000個隨機點作為輸入,為了確保GPU有足夠的內(nèi)存,所以僅從這些輸入中預(yù)測2 048個最遠點的抓取點,且預(yù)測的抓取點能夠覆蓋到整個場景中。該網(wǎng)絡(luò)有4個輸出分類,針對每個接觸點輸出d、a、b和k,根據(jù)4個分類的輸出數(shù)據(jù)計算出所需的抓取表示。將預(yù)測的寬度w∈[0,wmax]分成10個等距抓取框k,用以抵消數(shù)據(jù)不平衡。wi由成功抓取率最高的k的中心值表示。已知m和n相互正交,使用施密特正交歸一化將預(yù)測結(jié)果加入到訓(xùn)練中,其公式如下:
(5)
由式(5)可知,預(yù)測的m是與n正交的分量,并經(jīng)過正交歸一化進一步降低了預(yù)測抓取表示的維數(shù),加快了對旋轉(zhuǎn)矩陣的獲取。
使用二元交叉熵的方法來評估每個預(yù)測接觸點c的成功抓取率d。對于抓取姿態(tài)的預(yù)測僅在正接觸點C+處進行評估,將預(yù)測到的數(shù)據(jù)與7自由度抓取姿勢G結(jié)合,因此定義了5個關(guān)于夾具的3D點O,并且考慮到夾具的對稱問題,在取夾具的3D點時使0用對稱和非對稱的兩種方法獲取夾具的關(guān)鍵點,并對獲取到的關(guān)鍵點使用式(6)進行變換得到真實和預(yù)測的抓取姿勢,關(guān)鍵點如圖2中圓點所示。
(6)
(7)
式中:x為正接觸點C+的數(shù)量;并使用預(yù)測的d加權(quán)到每個預(yù)測抓取點到真實抓取點的距離。
在Contact-GraspNet的基礎(chǔ)上還增加了抓取估計的損失計算,使用交叉熵損失函數(shù)對抓取姿態(tài)進行損失計算:
(8)
當d=1時,該抓取為成功抓取;反之,d=0時,為失敗抓取;g為接觸點對應(yīng)的位姿。
訓(xùn)練過程中所使用的損失公式能夠?qū)W習(xí)真實抓取分布的不同模式;由于d是對每個接觸點進行加權(quán)使得將接觸點分類和抓取姿態(tài)預(yù)測結(jié)合,只有當預(yù)測的抓取姿態(tài)接近真實的抓取姿態(tài)時接觸點的成功抓取率才會增加;錯誤的抓取預(yù)測產(chǎn)生在遠離真實抓取的區(qū)域,可以避免更大的損失產(chǎn)生。對于抓取寬度的預(yù)測上,使用加權(quán)二元交叉熵,將框的損失和大小成反比的關(guān)系加權(quán)到損失計算中??倱p失為:
l=α(lm+ln+loff)+βladd-s+λlg
式中:α=1;β=10;λ=0.5。
在整個網(wǎng)絡(luò)訓(xùn)練完成后,本文的算法和Contact-GraspNet算法的損失值變化如圖3所示。
圖3 訓(xùn)練損失對比
由圖3可知,盡管本文的算法比Contact-GraspNet的初始損失要高,但是在訓(xùn)練過程中本文算法的損失收斂速度更快,損失值也更低。在訓(xùn)練完成后需要測試訓(xùn)練網(wǎng)絡(luò)模型的優(yōu)越性,此時從1 000個測試場景中隨機選取500個場景進行測試,并比較每個場景中所有成功抓取率的平均值,結(jié)果如圖4所示。
圖4 平均成功抓取率對比
由圖4可知,本文的算法在整個場景中所有抓取的平均成功抓取率比Contact-GraspNet更高。雖然本文算法的測試和訓(xùn)練所使用的場景數(shù)據(jù)都是通過模型合成的數(shù)據(jù),但是在真實的場景進行測試時仍然可以有效生成抓取姿態(tài)。利用Kinect相機獲取真實場景的RGB和深度圖,再對現(xiàn)實場景中物體的進行抓取姿態(tài)預(yù)測。Kinect相機如圖5所示,預(yù)測結(jié)果如圖6所示。
圖5 Kinect相機
圖6 真實場景測試結(jié)果
在使用相同數(shù)據(jù)集的情況下,與其他抓取姿態(tài)估計算法進行現(xiàn)實場景中物體的成功抓取率對比,比較結(jié)果如表1。
表1 不同算法的物體成功抓取率 %
從表1中可以觀察到,本文的算法與文獻[17]、文獻[21]和文獻[22]相比明顯預(yù)測的平均成功率更高,雖然本文的算法是在Contact-GraspNet的基礎(chǔ)上改進優(yōu)化而來,但由于將抓取過程中獲取物體的寬度以及抓取的預(yù)測姿態(tài)加入到網(wǎng)絡(luò)中,使得在訓(xùn)練過程中可以進一步對抓取姿態(tài)進行篩選使得對部分遮擋物體的抓取姿態(tài)獲取結(jié)果更好。
在執(zhí)行抓取任務(wù)過程中所遇到的物體雜亂分布、部分遮擋問題,基于PointNet++網(wǎng)絡(luò)改進了一種抓取姿態(tài)估計算法。本文使用二指夾具來約束執(zhí)行抓取任務(wù)的抓取空間,從而將獲取7自由度抓取姿態(tài)問題轉(zhuǎn)變成獲取p,m,n,w的4自由度問題,加快了學(xué)習(xí)效率。本算法既可以直接對目標場景進行整體的抓取估計,也可以結(jié)合場景的實例分割實現(xiàn)不同物體的精確抓取估計。實驗結(jié)果表明,本算法僅通過對合成數(shù)據(jù)的學(xué)習(xí)就可以直接遷移到現(xiàn)實場景進行測試,該算法可應(yīng)用于家庭服務(wù)機器人的抓取任務(wù),接下來的工作需要搭建機器人抓取平臺進行實驗用以驗證算法的實時性和魯棒性。