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