馬朝陽(yáng),華云松
(上海理工大學(xué)光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
機(jī)械手對(duì)于目標(biāo)的準(zhǔn)確抓取是機(jī)器人智能化、自動(dòng)化研究的一個(gè)重要方向,機(jī)械手抓取目標(biāo)在工業(yè)、農(nóng)業(yè)等領(lǐng)域都有著廣泛應(yīng)用。對(duì)于場(chǎng)景內(nèi)單目標(biāo)或者散亂放置的物體抓取,文獻(xiàn)[1]通過(guò)基于深度卷積網(wǎng)絡(luò)的視覺(jué)操作關(guān)系網(wǎng)絡(luò)(Visual Manipulation Relationship Network,VMRN),對(duì)物體和操作關(guān)系進(jìn)行實(shí)時(shí)推理;通過(guò)設(shè)計(jì)物體,對(duì)池化層實(shí)現(xiàn)物體檢測(cè)和操作關(guān)系推理的端對(duì)端訓(xùn)練;通過(guò)基于有向錨點(diǎn)框的全卷積視覺(jué)抓取部位檢測(cè)網(wǎng)絡(luò),實(shí)現(xiàn)對(duì)物體抓取部位的實(shí)時(shí)檢測(cè);通過(guò)場(chǎng)景深度信息和抓取部位檢測(cè)結(jié)果,獲取當(dāng)前被抓取物體的抓取點(diǎn)和對(duì)應(yīng)的抓取向量,并通過(guò)坐標(biāo)系變換將Kinect 坐標(biāo)系的抓取向量映射為機(jī)器人坐標(biāo)系的抓取向量,完成當(dāng)前抓取。對(duì)于單個(gè)物體的抓取成功率為97%,2 個(gè)物體的抓取成功率為82.5%,而3 個(gè)物體的抓取成功率僅為57.5%。該方法性能不穩(wěn)定,在多個(gè)物體雜論的情況下抓取成功率不高,并且精度受限于數(shù)據(jù)集的數(shù)量,且對(duì)設(shè)備硬件要求很高。文獻(xiàn)[2]對(duì)SIFT 算法進(jìn)行改進(jìn),通過(guò)提高檢測(cè)特征點(diǎn)的數(shù)量以確定適用于水下雙目視差匹配生成的主曲率系數(shù)和高斯核參數(shù),實(shí)現(xiàn)水下目標(biāo)抓取;文獻(xiàn)[3]利用區(qū)域生長(zhǎng)法對(duì)視差圖的點(diǎn)云進(jìn)行分割,實(shí)現(xiàn)場(chǎng)景內(nèi)位置最高的工件抓取。
由于生活中物體堆疊情況很常見,大部分文獻(xiàn)都是對(duì)單獨(dú)物體的抓取進(jìn)行研究,且大都采用立體匹配[4]和三位重建[5]技術(shù)確定目標(biāo)位置,再對(duì)目標(biāo)進(jìn)行抓取。因此,采用雙目視覺(jué)對(duì)物體堆疊放置情況進(jìn)行研究,因?yàn)椴灰?guī)則物體的質(zhì)心難以計(jì)算,故采用球體進(jìn)行實(shí)驗(yàn),并簡(jiǎn)化目標(biāo)定位過(guò)程,不再通過(guò)立體匹配和三維重建方法確定目標(biāo)的空間位置。
相機(jī)標(biāo)定是3D 計(jì)算機(jī)視覺(jué)中的必要步驟,以便從2D圖像中提取度量信息[6]。相機(jī)標(biāo)定是為了構(gòu)建空間點(diǎn)的位置和相機(jī)圖像像素位置之間的關(guān)系[7-8]。
假設(shè)三維空間有一點(diǎn)M=[X,Y,Z]T,在圖像平面的對(duì)應(yīng)點(diǎn)為m=[u,v]T。令針孔模型的關(guān)系可表示為:
其中,s是比例系數(shù),R是旋轉(zhuǎn)矩陣,t是平移矩陣,A是相機(jī)內(nèi)參,且有:
其中,(u0,v0)是相機(jī)主點(diǎn),α和β是相機(jī)水平和垂直方向的焦距,γ代表像素行列夾角。
理想情況下,相機(jī)主點(diǎn)在圖像中心,像素的行列夾角為0 或者90°。不失一般性,假設(shè)模型平面位于世界坐標(biāo)系的Z=0,則式(1)可以寫成:
其中,λ是任意比例系數(shù),由于R是規(guī)范化的正交矩陣,由式(7)可得約束條件:
相機(jī)標(biāo)定過(guò)程就是計(jì)算出相機(jī)的內(nèi)參矩陣、外參矩陣、旋轉(zhuǎn)矩陣和平移矩陣的過(guò)程。
對(duì)堆疊物體進(jìn)行順序抓取,必須確定每個(gè)小球的位置及輪廓方向,由于研究對(duì)象是球體,可簡(jiǎn)化處理,只需確定球心即可確定小球的位置。
由于拍攝的圖像包含許多椒鹽噪聲,為了減小或者消除圖像中無(wú)關(guān)信息的干擾,增強(qiáng)有用信息的可檢測(cè)性[9],首先對(duì)圖片進(jìn)行濾波處理,經(jīng)實(shí)驗(yàn)驗(yàn)證,中值濾波[10-11]處理效果最好,如圖1 所示。
Fig.1 Median filter圖1 中值濾波
霍夫變換是常見的間斷邊界檢測(cè)方法[12],霍夫變換的實(shí)質(zhì)是對(duì)圖像進(jìn)行某種形式的坐標(biāo)變換[13-14]。因此,對(duì)圖像中的直線或者曲線的檢測(cè)問(wèn)題就轉(zhuǎn)變成了尋求變換空間中的峰點(diǎn)問(wèn)題。
圓的表達(dá)式:
圓由參數(shù)a、b、r決定,只要確定這3 個(gè)參數(shù)即可確定圓的位置。
利用霍夫變換檢測(cè)圓,首先對(duì)圖像進(jìn)行Canny 邊緣檢測(cè),得到邊緣檢測(cè)的二值圖;然后對(duì)圖像進(jìn)行Sobel 算子操作,計(jì)算出所有像素的鄰域梯度值[15];再初始化圓心空間,遍歷Canny 邊緣二值圖中的所有非零像素點(diǎn),沿著梯度方向畫線,將線段經(jīng)過(guò)的所有累加器中的點(diǎn)累加,經(jīng)統(tǒng)計(jì)排序,得到可能的圓心[16]。
在得到圓心后,計(jì)算Canny 圖中全部非0 點(diǎn)距離圓心的距離,對(duì)距離從小到大排序,根據(jù)閾值,選取合適的可能半徑;然后初始化半徑,遍歷Canny 圖中的非0 點(diǎn),對(duì)于點(diǎn)所滿足的半徑進(jìn)行累加,最后統(tǒng)計(jì)得到可能的半徑值。
用多層錫紙包裹在鋁質(zhì)易拉罐內(nèi)層,底部也剪個(gè)三角形,取一粒點(diǎn)燃花生種子,用解剖針垂直扎入2片子葉中,直接加熱試管。重復(fù)至少三次平行實(shí)驗(yàn)取平均值,記作C組。
要抓取目標(biāo)小球,只要確定球在三維空間的質(zhì)心,即可確定其位置。由于只需要確定球心一個(gè)空間點(diǎn)即可確定其空間位置,而且立體匹配和三維重建過(guò)程比較復(fù)雜,本文采用相機(jī)標(biāo)定原理,通過(guò)異面直線的概念反解出某一點(diǎn)的空間坐標(biāo),然后利用應(yīng)力應(yīng)變反饋,并結(jié)合視覺(jué)閉環(huán)構(gòu)成抓取系統(tǒng)。
由相機(jī)標(biāo)定原理可知,一個(gè)空間點(diǎn)(X,Y,Z)到左右像素相機(jī)像素的坐標(biāo)P1(u1,v1)(u1,v1)、P2(u2,v2)(u2,v2)可表示為:
式(5)有4 個(gè)方程、3 個(gè)未知數(shù),只要將從左右圖像得到的像素坐標(biāo)代入方程,利用最小二乘法解方程,得到的最優(yōu)解即可看作是該點(diǎn)的三維空間坐標(biāo)[17-18]。
理想狀態(tài)下,P1和P2所在直線一定會(huì)相交于點(diǎn)P。但是因?yàn)槌上衲P筒皇峭耆尼樋啄P?,而且?biāo)定參數(shù)也會(huì)有誤差,因此P1和P2所在直線未必會(huì)相交于點(diǎn)P,此時(shí)可用異面直線的概念求解該點(diǎn)的空間坐標(biāo)[19]。
如圖2 所示,兩條異面直線L1和L2的單位向量是m1m1和m2m2,Q1Q1和Q1Q2在兩條直線上移動(dòng)最小時(shí),QQ是兩條直線的公垂線,由此可得:
手眼標(biāo)定是為了明確機(jī)械手坐標(biāo)系和像素坐標(biāo)系之間的轉(zhuǎn)換關(guān)系,便于機(jī)械手抓取目標(biāo)。對(duì)eye-to-hand 形式的相機(jī)和機(jī)械手進(jìn)行手眼標(biāo)定[20]。
Fig.2 Skew line圖2 異面直線
設(shè)機(jī)械臂底座中心為基礎(chǔ)坐標(biāo)系,記作base,相機(jī)坐標(biāo)系記作cam,標(biāo)定板坐標(biāo)系記作obj,機(jī)械手坐標(biāo)系記作endT表示基礎(chǔ)坐標(biāo)系到機(jī)械手之間的轉(zhuǎn)換關(guān)系即機(jī)器人運(yùn)動(dòng)學(xué)正解表示機(jī)械手到相機(jī)坐標(biāo)系之間的轉(zhuǎn)換關(guān)系表示相機(jī)坐標(biāo)系到標(biāo)定板之間的轉(zhuǎn)換關(guān)系即相機(jī)外參數(shù)。當(dāng)機(jī)械手抓著標(biāo)定板移動(dòng)任意兩個(gè)位姿時(shí),會(huì)得到:
解此方程即可得到機(jī)械手與像素之間的轉(zhuǎn)換關(guān)系。
通過(guò)模板匹配確定機(jī)械手末端位置。模板匹配[21]是將待識(shí)模式分別與各標(biāo)準(zhǔn)模板進(jìn)行匹配,通過(guò)一個(gè)相關(guān)度函數(shù)計(jì)算待識(shí)模式的各區(qū)域與各標(biāo)準(zhǔn)模板之間的相關(guān)度,每個(gè)位置都對(duì)應(yīng)一個(gè)相關(guān)度值,值越高,則匹配情況越好,最后取匹配最好的作為識(shí)別結(jié)果。
確定目標(biāo)空間位置和手眼標(biāo)定后即可控制機(jī)械手對(duì)目標(biāo)進(jìn)行抓取,但是此時(shí)的系統(tǒng)是開環(huán)的,無(wú)法判斷機(jī)械手是否準(zhǔn)確抓取到了目標(biāo)。因此,本文通過(guò)在機(jī)械手末端添加全橋壓力傳感器,通過(guò)應(yīng)力變化反饋是否抓取到目標(biāo)。讓系統(tǒng)在形成視覺(jué)閉環(huán)的情況下,同時(shí)具有物理閉環(huán),以確保系統(tǒng)能夠真正地抓取到目標(biāo)。
利用MATLAB 工具箱進(jìn)行標(biāo)定,此方法簡(jiǎn)單方便,易于實(shí)現(xiàn)且精度高。標(biāo)定過(guò)程如下:讀取14 張圖片,分別對(duì)左右相機(jī)進(jìn)行標(biāo)定;讀取圖片完成后,提取角點(diǎn);進(jìn)行標(biāo)定,保存標(biāo)定數(shù)據(jù);左右相機(jī)標(biāo)定完成后輸入stereo_gui 命令,讀入左右相機(jī)標(biāo)定文件,對(duì)雙目相機(jī)進(jìn)行標(biāo)定得到旋轉(zhuǎn)向量和平移向量,標(biāo)定結(jié)果如表1 所示。
Table 1 Camera parameters表1 相機(jī)參數(shù)
根據(jù)上述原理對(duì)目標(biāo)進(jìn)行檢測(cè),實(shí)驗(yàn)一檢測(cè)圖像中相同顏色的網(wǎng)球,效果如圖3 所示;實(shí)驗(yàn)二對(duì)不同背景下并帶有高亮部分的網(wǎng)球進(jìn)行檢測(cè),效果如圖4 所示;實(shí)驗(yàn)三用顏色相同的物體遮擋部分網(wǎng)球并進(jìn)行圓形檢測(cè),效果如圖5所示;實(shí)驗(yàn)四用網(wǎng)球遮擋部分網(wǎng)球并進(jìn)行圓形檢測(cè),效果如圖6 所示;實(shí)驗(yàn)五對(duì)散亂放置的網(wǎng)球進(jìn)行圓形檢測(cè),效果如圖7 所示。
Fig.3 Results of experiment one圖3 實(shí)驗(yàn)一結(jié)果
Fig.4 Results of experiment two圖4 實(shí)驗(yàn)二結(jié)果
Fig.5 Results of experiment three圖5 實(shí)驗(yàn)三結(jié)果
Fig.6 Results of experiment four圖6 實(shí)驗(yàn)四結(jié)果
Fig.7 Results of experiment five圖7 實(shí)驗(yàn)五結(jié)果
由以上實(shí)驗(yàn)結(jié)果可以看出,本文方法對(duì)于不同小球可以識(shí)別出其輪廓;對(duì)于具有高亮部分的小球可以識(shí)別出其輪廓;小球在不同背景下可以識(shí)別出其輪廓;對(duì)于被部分遮擋的小球也能夠識(shí)別出其輪廓;對(duì)于散亂放置的小球依然可以識(shí)別出其輪廓。
對(duì)棋盤格提取角點(diǎn),根據(jù)像素坐標(biāo)計(jì)算空間坐標(biāo),并計(jì)算相鄰角點(diǎn)之間的距離,如表2 和表3 所示。棋盤格間距為35mm,由實(shí)驗(yàn)數(shù)據(jù)可以看出相鄰角點(diǎn)之間的距離非常接近實(shí)際距離,最大誤差不超過(guò)1%。因此,這種方法求解空間中某一點(diǎn)的坐標(biāo)是可行的。
Table 2 Corner coordinates表2 角點(diǎn)坐標(biāo)
Table 3 The distance between adjacent corners表3 相鄰角點(diǎn)之間的距離
計(jì)算出待抓取目標(biāo)的空間坐標(biāo),控制機(jī)械手去抓取目標(biāo),抓取結(jié)果如表4 所示。
Table 4 Fetch results表4 抓取結(jié)果
通過(guò)霍夫變換檢測(cè)圓并計(jì)算出圓心在左右像素的坐標(biāo),再利用相機(jī)標(biāo)定原理反計(jì)算出圓心對(duì)應(yīng)點(diǎn)的空間坐標(biāo),在深度方向加上球體的半徑即可確定球體的質(zhì)心。這種方法只需要左右像素坐標(biāo),并省去立體匹配和三維重建等復(fù)雜步驟,且精度可控制在1%以內(nèi)。同時(shí),利用應(yīng)力應(yīng)變結(jié)構(gòu)作閉環(huán)反饋,使系統(tǒng)具備視覺(jué)閉環(huán)及物理閉環(huán)。
實(shí)驗(yàn)表明,該方法對(duì)堆疊物體抓取的成功率隨著目標(biāo)數(shù)量增多而下降。此方法對(duì)于堆疊球體的抓取更容易實(shí)現(xiàn),對(duì)設(shè)備要求低,對(duì)光源不敏感,不需要大量數(shù)據(jù)集的支持,性能穩(wěn)定,過(guò)程更容易實(shí)現(xiàn),但是只適合于類球體物體抓取。后續(xù)可以研究此方法是否適用于非類球體堆疊物體抓取。