(青島科技大學(xué) 信息科學(xué)技術(shù)學(xué)院,山東 青島 266061)
近年來,作為人工智能技術(shù)的熱門分支之一,機(jī)器視覺發(fā)展突飛猛進(jìn),逐漸滲透到人們的生產(chǎn)生活中[1]。目前,基于深度相機(jī)與傳統(tǒng)機(jī)械臂構(gòu)建手眼系統(tǒng),使機(jī)械臂能夠完成智能自主的抓取,是機(jī)械臂的主流發(fā)展趨勢[2]。通常來說,機(jī)械臂必然是要和物理世界進(jìn)行交互,對于未見過的物體,人類幾乎本能地知道如何抓取;但是,機(jī)械臂抓取檢測的表現(xiàn)遠(yuǎn)不如人類。因此,本系統(tǒng)致力于從給定的深度圖像中得到一個非特定物體的可靠抓取位置,以便于機(jī)械臂實施進(jìn)一步的抓取。
本系統(tǒng)以將六軸機(jī)械臂與深度相機(jī)相結(jié)合,以機(jī)器人操作系統(tǒng)(Robot Operating System,ROS)為軟件平臺,對機(jī)械臂手眼標(biāo)定、目標(biāo)檢測、運動規(guī)劃等方面進(jìn)行了研究探索。針對機(jī)械臂無法確定非特定物體的可靠抓取位置的痛點,采用了深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)確定目標(biāo)物體的抓取位置信息,提高了機(jī)械臂的自主抓取能力。
對于該機(jī)械臂智能抓取系統(tǒng)的組成,包括深度相機(jī)、機(jī)械臂以及計算機(jī)三部分,分別對應(yīng)于圖像采集、目標(biāo)抓取和圖像信息處理。硬件結(jié)構(gòu)組成如圖1所示。
圖1 系統(tǒng)硬件圖
深度相機(jī)中額外的深度信息對于與三維空間交互的機(jī)械臂來說至關(guān)重要[3],系統(tǒng)采用奧比中光的Astra深度相機(jī),有效探測深度范圍為0.6 m到8 m之間;機(jī)械臂采用的是高斯機(jī)械臂,該機(jī)械臂具有6個關(guān)節(jié)自由度,最大延伸半徑可達(dá)437 mm,重復(fù)定位精度在2 mm左右;計算機(jī)為搭載了酷睿i5的筆記本電腦,具備運行神經(jīng)網(wǎng)絡(luò)模型和處理深度圖像的能力。
系統(tǒng)正常工作流程為,系統(tǒng)將對深度相機(jī)捕獲到的視頻幀進(jìn)行預(yù)處理,并將該幀圖像輸入神經(jīng)網(wǎng)絡(luò),得到的輸出為圖像中目標(biāo)物體的抓取位置信息,系統(tǒng)將該信息發(fā)送給機(jī)械臂,機(jī)械臂根據(jù)該信息在機(jī)械臂的工作空間內(nèi)進(jìn)行抓取操作。
該機(jī)械臂智能抓取系統(tǒng)正常運行的一個前提是需要確定深度相機(jī)、機(jī)械臂與目標(biāo)物體三者的三維空間關(guān)系[4]。相機(jī)標(biāo)定的目的是為了建立相機(jī)成像的幾何模型,獲取相機(jī)內(nèi)參矩陣并矯正相機(jī)由于透鏡產(chǎn)生的畸變;手眼標(biāo)定的目的是獲取機(jī)械臂坐標(biāo)系和相機(jī)坐標(biāo)系的坐標(biāo)轉(zhuǎn)換關(guān)系,將相機(jī)下的目標(biāo)物體的位置信息變換到機(jī)械臂坐標(biāo)系,機(jī)械臂根據(jù)變換后的位置信息抓取目標(biāo)物體。
相機(jī)的成像模型如圖2所示。設(shè)O-x-y-z是相機(jī)坐標(biāo)系,現(xiàn)實空間點P的成像落在物理成像平面O′-x′-y′上,成像點記為P′。而像素平面固定在物理成像平面上,在像素坐標(biāo)系o′-u-v中,o′位于圖像的左上角,u軸、v軸分別與x軸、y軸平行,故記P′的像素坐標(biāo)為(u,v)。設(shè)被拍攝物體在圖像坐標(biāo)系的坐標(biāo)為(x′,y′),由此可用如下矩陣來表示像素坐標(biāo)系與圖像坐標(biāo)系的坐標(biāo)轉(zhuǎn)換關(guān)系:
圖2 相機(jī)成像模型圖
目標(biāo)物體存在于世界坐標(biāo)系中,為了獲得相機(jī)與目標(biāo)物體的轉(zhuǎn)換關(guān)系,還需要建立相機(jī)坐標(biāo)系到世界坐標(biāo)系的聯(lián)系。設(shè)目標(biāo)物體在相機(jī)坐標(biāo)系下的坐標(biāo)為(x,y,z),f為焦距,根據(jù)圖像坐標(biāo)系與相機(jī)坐標(biāo)系的轉(zhuǎn)換關(guān)系可得:
由于相機(jī)是在世界坐標(biāo)系下的剛體,結(jié)合三維空間的剛體運動相關(guān)知識,可以得到像素坐標(biāo)系與世界坐標(biāo)系的聯(lián)系,數(shù)學(xué)公式表示如下:
張正友標(biāo)定法由于精度高、操作簡單、無需輔助設(shè)備等優(yōu)點[5],已成為目前主流的相機(jī)標(biāo)定方法之一。在打印出標(biāo)定所必須的棋盤格之后,系統(tǒng)采用張正友標(biāo)定法對深度相機(jī)進(jìn)行標(biāo)定操作。
手眼標(biāo)定有兩種模式,即“眼在手上”和“眼在手外”?!把墼谑稚稀笔侵赶鄼C(jī)以某種方式固定在機(jī)械臂末端,與機(jī)械臂末端保持相對靜止;“眼在手外”與“眼在手上”相反,相機(jī)與機(jī)械臂并不是一體的,而是與目標(biāo)物體保持相對靜止。考慮到圖像的穩(wěn)定性、清晰度等對目標(biāo)檢測的影響,系統(tǒng)采用“眼在手外”的模式。
無論是哪種手眼標(biāo)定模式,其核心是求解AX=XB[6]中的X,該式中的X就是手(機(jī)械臂末端)與眼(深度相機(jī))之間的坐標(biāo)變換矩陣。
在“眼在手外”這種模式中,標(biāo)定板固定在機(jī)械臂末端,如圖3所示。系統(tǒng)需要求的機(jī)械臂基座與深度相機(jī)之間的變換矩陣,即X=TBC。在這情況下,相機(jī)與機(jī)械臂基座的坐標(biāo)轉(zhuǎn)換(TBC)不變;標(biāo)定板與機(jī)械臂末端的坐標(biāo)轉(zhuǎn)換(TEO)不變。
圖3 “眼在手外”模型圖
機(jī)械臂末端夾著標(biāo)定板任意移動兩個位置,由于機(jī)械臂末端和標(biāo)定板在兩次運動中位姿關(guān)系保持不變,故有如下數(shù)學(xué)變換:
TE1BTBCTCO1=TE2BTBCTCO2
根據(jù)上述的手眼標(biāo)定的核心公式可得:
X=TBC,
系統(tǒng)采用了基于ROS的easy_handeye標(biāo)定包,該標(biāo)定程序降低了手眼標(biāo)定流程的復(fù)雜度,在提高了標(biāo)定效率的基礎(chǔ)上,也兼顧了標(biāo)定精度。
在生產(chǎn)生活中,抓取物體是機(jī)械臂的基本操作,結(jié)合機(jī)器視覺的機(jī)械臂抓取任務(wù)是一個多領(lǐng)域交叉的長期的、富有挑戰(zhàn)性問題。傳統(tǒng)抓取方法一般需要事先知道目標(biāo)物體的三維掃描模型,對深度圖像進(jìn)行點云配準(zhǔn),確定幾何約束,提高抓取成功率[7]。目前,機(jī)械臂的研究已經(jīng)逐步將深度學(xué)習(xí)應(yīng)用于機(jī)械臂的抓取問題中,且較之傳統(tǒng)方法,抓取成功率明顯提升。
本設(shè)計采用了Joseph Redmon等人于2015年提出的一種針對深度圖像中目標(biāo)物體的抓取問題“量身打造”的卷積神經(jīng)網(wǎng)絡(luò)模型[8]。與傳統(tǒng)方法相比,該抓取模型可以很好地推廣到新物體上,而且只需要單一視圖,而非完整的3D模型。該卷積神經(jīng)網(wǎng)絡(luò)模型的主要思想是將單個神經(jīng)網(wǎng)絡(luò)應(yīng)用于整個圖像,預(yù)測抓取坐標(biāo),由于避免了在圖像的小塊區(qū)域上多次運行規(guī)模較小的分類器的計算開銷,轉(zhuǎn)而對一個物體的完整圖像進(jìn)行全局抓取預(yù)測,所以網(wǎng)絡(luò)性能表現(xiàn)相當(dāng)優(yōu)異。
對于目標(biāo)物體的抓取問題,業(yè)內(nèi)一般采用Lenz等人提出的針對機(jī)器人抓取的五維表示法[9]。一次抓取表示為一個矩形,涵蓋了位置、大小與方向:
g=(x,y,θ,h,w)
(x,y)表示矩形的中心,θ表示矩形相對于水平方向的偏轉(zhuǎn)角,h和w分別表示矩形高度和寬度,如圖5所示。使用五維表示法的目標(biāo)抓取問題與計算機(jī)視覺中的目標(biāo)檢測問題類似,僅僅是多了抓取方向這一項。
圖4 五維表示法說明圖
該神經(jīng)網(wǎng)絡(luò)在Krizhevsky等人提出的AlexNet的基礎(chǔ)上,結(jié)合實際抓取問題,做出了一些相應(yīng)的改變。該網(wǎng)絡(luò)有5個卷積層,再之后是3個全連接層,在卷積層之間穿插著若干池化層。全連接層之后是輸出層,輸出層有5個輸出神經(jīng)元,與抓取的坐標(biāo)相對應(yīng),其中4個神經(jīng)元對應(yīng)于抓取矩形的中心位置、高度和寬度,剩余的一個神經(jīng)元對應(yīng)于偏轉(zhuǎn)角的正切。該網(wǎng)絡(luò)模型如圖5所示。
圖5 神經(jīng)網(wǎng)絡(luò)模型
該模型基于康奈爾抓取數(shù)據(jù)集進(jìn)行訓(xùn)練,該數(shù)據(jù)及包含240種不同的物體,885張圖片。每一張圖片都被標(biāo)記了真實的抓取標(biāo)記。值得一提的是,通過在ImageNet進(jìn)行預(yù)訓(xùn)練,該模型在不犧牲抓取預(yù)測準(zhǔn)確度的情況下,還可進(jìn)行目標(biāo)識別與分類。實驗結(jié)果表明,該模型的抓取預(yù)測的準(zhǔn)確度最高可達(dá)88%左右,每幀圖像的處理速度在穩(wěn)定在76 ms,兼具了準(zhǔn)確性與實時性。
運動規(guī)劃是指機(jī)械臂在任務(wù)空間內(nèi),在給定目標(biāo)物體的位置坐標(biāo)和障礙物信息前提下,找到一條能夠到達(dá)目標(biāo)物體且不與障礙物發(fā)生碰撞的安全路徑。相對于移動機(jī)器人,機(jī)械臂規(guī)劃的空間維度更高,難度更大,國內(nèi)外學(xué)者提出了很多運動規(guī)劃算法,其中包括人工勢場法、拓?fù)浞ā鸥穹?、蟻群算法、遺傳算法等[10]。
該系統(tǒng)采用了改進(jìn)的快速擴(kuò)展隨機(jī)樹(RRT-connect)算法,該在傳統(tǒng)RRT算法基礎(chǔ)上改進(jìn)為兩棵樹的雙向擴(kuò)展,節(jié)省了搜索時間,在一定程度上提高了擴(kuò)展樹在任務(wù)空間內(nèi)搜索性能。
RRT的基本思想是在機(jī)械臂的任務(wù)空間內(nèi),在不與空間內(nèi)障礙物發(fā)生碰撞的情況下,以樹的形式擴(kuò)展,直到該樹擴(kuò)展至目標(biāo)物體附近[11]。算法步驟總結(jié)如下:
(1)確定規(guī)劃的起點。將機(jī)械臂末端夾爪的三維坐標(biāo)作為樹的根節(jié)點,以此節(jié)點向外擴(kuò)展。
(2)隨機(jī)擴(kuò)展采樣。在機(jī)械臂的三維解空間中,隨機(jī)生成一個點XR。
(3)生長點的選擇與碰撞檢測。找到該樹上與XR最近的節(jié)點XN。連接XR與XN,判斷連線是否與空間障礙物發(fā)生碰撞。如果發(fā)生碰撞,摒棄XR;否則將XR加到樹上,記為Xnew。
(4)是否終止擴(kuò)展。如果Xnew與目標(biāo)點的距離小于某個閾值,即該樹擴(kuò)展至目標(biāo)節(jié)點附近,終止擴(kuò)展。否則,重復(fù)(2)(3)(4)過程。
RRT算法也存在一些不足。RRT算法雖然適用性較高,適用于二維與三維空間,但是當(dāng)規(guī)劃范圍較大且環(huán)境中障礙物較多時,RRT算法會盲目擴(kuò)展,效率變得低下。
針對RRT算法的缺點,該設(shè)計采用了一種改進(jìn)的RRT算法,即RRT-Connect算法。算法基本思想是從初始節(jié)點和目標(biāo)節(jié)點同時生長兩棵快速擴(kuò)展隨機(jī)樹來搜索規(guī)劃空間,減少無用搜索,提高搜索效率[12]。該算法步驟總結(jié)如下:
(1)確定規(guī)劃起點和終點。將起點和終點分別作為兩棵搜索樹的根節(jié)點,分別命名為T1和T2。
(2)T1隨機(jī)擴(kuò)展與碰撞檢測。在機(jī)械臂的三維解空間中,以T2最新節(jié)點為目標(biāo)點隨機(jī)生成一個點XR1。設(shè)該樹上與XR1最近的節(jié)點為XN1,若XN1與XR1的連線未與空間障礙物發(fā)生碰撞,將XR1加入T1,記為Xnew1;否則摒棄XR1,重復(fù)(2)直到找到一個新的節(jié)點。
(3)T2隨機(jī)擴(kuò)展采樣。T2以Xnew1為目標(biāo)點擴(kuò)展,在三維空間中隨機(jī)生成一個點XR2。設(shè)T2上與XR2最近的點為XN2。若XR2與XN2的連線未與空間障礙物未發(fā)生碰撞,則將XR2加入T2樹中,記為Xnew2。
(4)是否終止擴(kuò)展T2。如果XR2與XN2的連線在空間中與障礙物發(fā)生碰撞或XR2與Xnew1的距離小于某個閾值,則終止擴(kuò)展T2。否則,重復(fù)(3)(4)。
(5)終止條件。如果T1與T2最新生長出來的兩個點之間的距離小于某個閾值,兩棵樹終止擴(kuò)展,算法結(jié)束。否則選擇節(jié)點數(shù)較少的樹進(jìn)行隨機(jī)擴(kuò)展直至發(fā)生碰撞或滿足終止條件。
該系統(tǒng)的機(jī)械臂運動規(guī)劃是基于ROS的MoveIt!軟件包實現(xiàn)的,開源運動規(guī)劃庫(The Open Motion Planning Library,OMPL)包含各種運動規(guī)劃算法,也是MoveIt!默認(rèn)的運動規(guī)劃包。系統(tǒng)給定機(jī)械臂坐標(biāo)系下的位置坐標(biāo)后,系統(tǒng)通過MoveIt!中的相關(guān)運動規(guī)劃算法來驅(qū)動機(jī)械臂末端到達(dá)指定位置,抓取物體。
該系統(tǒng)設(shè)計最核心的部分是以深度相機(jī)和機(jī)械臂構(gòu)成的“手眼系統(tǒng)”,深度相機(jī)負(fù)責(zé)采集視野內(nèi)的目標(biāo)物體,用卷積神經(jīng)網(wǎng)絡(luò)預(yù)測的抓取位置在圖像中的目標(biāo)物體上以矩形框的形式表現(xiàn)出來,在圖6中展示了系統(tǒng)對9種目標(biāo)物體可靠抓取位置的預(yù)測。除此之外,對網(wǎng)絡(luò)模型的輸出值和機(jī)械臂是否抓取成功的結(jié)果進(jìn)行分析也是非常必要的。在像素坐標(biāo)系下,網(wǎng)絡(luò)模型對抓取位置以五維表示法輸出后,系統(tǒng)進(jìn)一步將該結(jié)果轉(zhuǎn)換到機(jī)械臂坐標(biāo)系下,結(jié)合深度相機(jī)的深度信息,機(jī)械臂對目標(biāo)物體實施抓取。
圖6 目標(biāo)抓取位置預(yù)測圖
神經(jīng)網(wǎng)絡(luò)預(yù)判出目標(biāo)物體的可靠抓取位置,再之后將該位置信息發(fā)送給機(jī)械臂,機(jī)械臂在通過運動規(guī)劃算法進(jìn)行合理的運動規(guī)劃后,驅(qū)動各個關(guān)節(jié)使末端夾爪到達(dá)指定抓取位置,進(jìn)行抓取操作。
系統(tǒng)測試實驗結(jié)果主要包括兩部分,一部分是網(wǎng)絡(luò)模型的輸出結(jié)果,另一部分是根據(jù)神經(jīng)網(wǎng)絡(luò)模型輸出機(jī)械臂是否能夠成功抓取目標(biāo)物體。所以實驗數(shù)據(jù)的分析包括兩部分,一部分是卷積神經(jīng)網(wǎng)絡(luò)模型的抓取位置標(biāo)記表示,另一部分是神經(jīng)網(wǎng)絡(luò)模型的輸出值以及機(jī)械臂是否抓取成功統(tǒng)一展示,然后進(jìn)一步對實驗結(jié)果進(jìn)行分析。
根據(jù)實際情況,在此系統(tǒng)只對部分實驗數(shù)據(jù)結(jié)果進(jìn)行展示。
圖6展示了神經(jīng)網(wǎng)絡(luò)模型對9種非特定物體抓取位置的預(yù)測,并進(jìn)一步以矩形框的形式標(biāo)記出來。表1中展示了網(wǎng)絡(luò)模型的對9種目標(biāo)物體預(yù)測抓取位置信息以及后續(xù)機(jī)械臂是否能夠抓取成功。
表1 網(wǎng)絡(luò)模型輸出結(jié)果及機(jī)械臂是否抓取成功
實驗結(jié)果表明,該系統(tǒng)相對于傳統(tǒng)機(jī)械臂,其自主抓取能力表現(xiàn)亮眼。上述實驗數(shù)據(jù)包含正確的預(yù)測和不正確的預(yù)測,比如圖6第九張圖片中,碗的抓取位置預(yù)測是絕對不是一個可靠的抓取。該系統(tǒng)針對20種目標(biāo)物體的不同位姿進(jìn)行抓取位置預(yù)測,機(jī)械臂進(jìn)一步實施抓取。系統(tǒng)共進(jìn)行了360次抓取實驗,其中抓取位置預(yù)測準(zhǔn)確率達(dá)到了85%左右。由于抓取目標(biāo)體積、厚度、光線等因素,機(jī)械臂抓取成功次數(shù)為297次,綜合抓取成功率為82.5%。
系統(tǒng)是以深度相機(jī)與機(jī)械臂為基礎(chǔ)構(gòu)建“手眼系統(tǒng)”,深度圖像處理采用了Joseph Redmon提出的一種卷積神經(jīng)網(wǎng)絡(luò)預(yù)測相機(jī)視野內(nèi)目標(biāo)物體的可靠抓取位置作為機(jī)械臂抓取的重要依據(jù),在機(jī)械臂運動規(guī)劃方面,使用改進(jìn)的RRT(RRT-Connect)方法抓取目標(biāo)物體,提高抓取效率。雖然系統(tǒng)在實驗環(huán)境下有諸多限制,但系統(tǒng)還是表現(xiàn)出了相當(dāng)優(yōu)異的性能。此外,系統(tǒng)采用ROS,代碼可移植性高,擴(kuò)展性良好,對二次開發(fā)友好,便于根據(jù)具體的工業(yè)環(huán)境需求進(jìn)行相應(yīng)的變更,滿足工業(yè)生產(chǎn)需求。該系統(tǒng)針對傳統(tǒng)機(jī)械臂的弊端進(jìn)行優(yōu)化改進(jìn),致力于機(jī)械臂的智能抓取,對工業(yè)智能化、自動化具有重要意義。