陳苗苗,葉文華,馬庭田,張權
(南京航空航天大學 機電學院,江蘇 南京 210016)
近年來,隨著工業(yè)自動化的快速發(fā)展,工業(yè)機器人的應用愈加廣泛。作為智能化和自動化時代的重要發(fā)明,機器人的應用將會影響經(jīng)濟的各個方面[1]。工業(yè)機器人具有準確、高效、適應性強等特點,在物料分揀、物體搬運、自動化噴涂、切割、檢測等領域,展現(xiàn)出比較明顯的優(yōu)勢。在物體的抓取方面,機器視覺技術的運用可以快速識別目標物,并引導機器人完成一系列抓取動作,極大地提高了生產的自動化程度。目前,基于機器視覺的目標物抓取技術已經(jīng)在自動化生產線上得到廣泛應用,但抓取的對象多是已知的物體,且采用傳統(tǒng)的模板匹配方式進行識別抓取。在實際應用中多是形狀未知、姿態(tài)不確定的物體,且工業(yè)生產要求成本低、效率高。因此,研究基于機器視覺技術實現(xiàn)對未知物體抓取的方法具有重要意義。
為了實現(xiàn)對不規(guī)則物料的準確、快速地抓取,抓取位置的檢測是關鍵,國內外許多學者近些年來對此進行了深入的研究。MARON Z C等[2]提出一種基于單一角度方向感知數(shù)據(jù)建立物體模型的方法,提取感興趣區(qū)域,擬合出物體模型,再利用抓取規(guī)劃方法生成抓取點,選擇最滿足力封閉性的進行抓取。這種依靠感知設備還原物體的形狀或提取重要特征的方法工作量大,計算復雜;朱海波[3]基于 Hough 鏈碼對工件形狀進行識別,并根據(jù)幾何不變矩確定工件表面中心和長軸朝向,對工件進行定位。但是這種方法難以檢測出最佳的抓取位置;鄭晶怡等[4]提出了一種基于形狀先驗模型的工件抓取位姿檢測,并采集點云信息擬合工件平面,計算最佳抓取位姿。該方法可以適應復雜環(huán)境,但是僅適用于平面型物體的抓??;林強強等[5]通過建立一種工件旋轉模型獲得抓取角度,采用Canny算子提取工件邊緣輪廓,計算抓取的手爪開合大小,方法簡單有效,但是僅適用于長軸類等形狀規(guī)則的零件。隨著深度學習的迅猛發(fā)展,機器視覺在機械手抓取方面的應用更加靈活,如LENZ I等[6]于2015年用兩個深度網(wǎng)絡系統(tǒng)組成一個兩步級聯(lián)的系統(tǒng),采用滑動窗口選取抓取位置;夏晶等[7]提出一種基于級聯(lián)卷積神經(jīng)網(wǎng)絡的機器平面抓取位姿快速檢測法,可抓取單目相機下任意姿態(tài)的物體。該類基于深度學習的方法檢測位姿準確,但需要準備大量的數(shù)據(jù)集進行訓練,所需時間長,且特征提取受到光照、環(huán)境等多方面的影響[8]。
綜上所述,對物體的抓取位姿檢測仍存在難以判斷最佳位姿、準備工作復雜等問題。為此,本文設計一種簡單的物料位姿檢測方法,僅通過物料輪廓和形心的位置關系即可計算出最佳的抓取位姿。
機器人抓取時通常會根據(jù)物料的顏色、形狀特點、質量等進行物料分類,但是這些方法所對應的特征均比較單一,若要使得抓取穩(wěn)定,應抓取物料的質心位置。由于圖像處理難以獲得質心的信息,故本文依據(jù)形心代替質心作為判斷依據(jù)。此外,物料的輪廓信息也是抓取操作中重要的特征之一。對于形狀任意不規(guī)則的物料,形心點坐標和輪廓形狀的相對位置不總是相同的,因此根據(jù)物料形心和輪廓的相對位置關系,將物料分為形心在輪廓內(包括形心在輪廓上)和形心在輪廓外兩大類。
圖像處理是通過算法從圖像中獲取必要的信息,讓圖像中包含的信息得到有效利用[9]。其中輪廓檢測是一種常用的圖像處理方法,在進行輪廓特征提取時,傳統(tǒng)的邊緣檢測算法可以達到像素級別的精度。但隨著技術發(fā)展的需求,更高精度的亞像素邊緣提取方法得到更廣泛的應用[10]。常用的亞像素邊緣提取方法大致分為3類:基于矩、基于曲線擬合和插值、鄰域等[11]。本文采用基于鄰域[12]的亞像素邊緣提取算法提取輪廓,獲得輪廓上所有點的坐標(ui,vi),計算物體形心即為所有點的算術平均值,即
(1)
通常,在進行輪廓提取時,經(jīng)常會出現(xiàn)一些細小的孔洞。為了避免孔洞對后續(xù)步驟的影響,本文通過設置合理的閾值對孔洞進行填充。
經(jīng)過圖像處理之后,可以直觀地對金屬物料進行分類。形心在輪廓內的物體如圖1所示。
圖1 形心在輪廓內
屬于形心在輪廓外類型的,如圖2所示。
圖2 形心在輪廓外
1)直線求交法基本原理
直線求交法的基本原理是過形心每隔一定角度作一條直線,每條直線與物體輪廓交于若干個點。比較相鄰點之間的距離,選擇最小歐氏距離的一對交點,且最小歐氏距離應在手爪開合范圍之內,則該交點所在的直線方向即為抓取角度,兩交點距離即為手爪開合度w。
如圖3所示,以圓形輪廓物體為例,半徑為r,手爪的寬度為h。當選擇分割角度為α(0≤α<180°)時,為便于計算,取圓弧中點為線段中點a、b,根據(jù)等腰三角形性質,a、b點之間的距離與α的對邊線段s相等,理想狀態(tài)為手爪寬度h與線段s相等,已知s的計算公式為
(2)
圖3 分割角度計算圖
本文研究中手爪的寬度為50mm,抓取的物體大小范圍是80~200mm,因此r的范圍是40~100mm??捎嬎愠隼硐霠顟B(tài)下的α是29°~ 77.4°。為滿足所有抓取情況,應選取29°,為了方便計算,對其圓整,取α為30°。
故對任意物體輪廓,可根據(jù)直線相交法得到6條過形心(u,v)且相隔30°的直線,直線方程如下:
(3)
提取直線與輪廓的若干個交點信息,當直線與輪廓相交時,可能會出現(xiàn)沒有交點的情況,因此規(guī)定閾值為一個像素,同一像素下的亞像素點為同一點。規(guī)定按交點的縱坐標依次從大到小命名為P1、P2,…,Pn。若縱坐標相等,則按橫坐標從小到大排序。分別計算每條直線上相鄰兩點的歐式距離,即P1P2、P3P4,…,Pn-1Pn等。因為一條直線與輪廓必定有偶數(shù)個交點,且若交點個數(shù)>2,則相鄰的交點必定屬于形狀上不同封閉的點,可以抓取。因此每條直線上有
PxiPyi=min(|P1P2|,|P3P4|…|Pn-1Pn|)
(4)
其中:i=1~6;n為該條直線上交點的個數(shù)。
最后比較6條直線中的最小值:
PxmPym=min(|Px1Py1|,|Px2Py2|…|Px6Py6|)
(5)
2)基于直線求交法的位姿檢測
按照直線求交法,對一張圖像分析,如圖4所示。圖4(a)中是一個形心在輪廓內的物體,經(jīng)過圖像處理后可以獲得物體的輪廓及形心點,如圖4(c)中閉合紅線所示,過形心點每隔30°作出6條直線。根據(jù)最短歐氏距離選擇,圖4(f)中紅色直線對應的角度即為抓取方向(本刊為黑白印刷,如有疑問請咨詢作者)。
圖4 直線求交法求解位姿
基于此方法,另外對一組形心在輪廓內的形狀進行判斷。實驗結果如圖5所示。圖5(a)中有一個封閉輪廓,根據(jù)直線求交法得到P1P2點所在的直線角度即為抓取方向,P1P2的中點即為手爪抓取的中心點。根據(jù)實驗結果可知,直線求交法可以完成對形心在輪廓內形狀的抓取位姿檢測。
圖5 直線求交法求解位姿實例
1)射線求交法算法原理
在本章第1節(jié)中提出了一種基于物體形心和輪廓相對位置信息的直線求交法用于檢測物體抓取位姿,但是這種方法比較適合形心在輪廓內部的物體抓取。為了減少復雜物體輪廓的計算量,基于直線求交法又提出了一種射線求交法(圖6),用于檢測形心在輪廓外的物體位姿。
圖6 位姿射線法
直線求交法的原理是6條經(jīng)過形心的直線,射線求交法中將直線換成每隔30°的射線,環(huán)繞形心點一周,共計12條射線,直線方程與之前一致,x取值范圍不同。
(6)
每條射線與輪廓的交點命名規(guī)定及計算方法同直線求交法:
PxjPyj=min(|P1P2|,|P3P4|,…,|Pn-1Pn|)
(7)
其中:j=1~12;n為該條射線上交點的個數(shù)。
最后比較12條射線中的最小值:
PxtPyt=min(|Px1Py1|,|Px2Py2|,…,|Px12Py12|)
(8)
2)基于射線求交法的位姿檢測
采用射線求交法計算抓取位姿,如圖7所示。圖7(a)是一個圓環(huán)形狀,形心在輪廓外的物體,經(jīng)過圖像處理后可以獲得物體的輪廓及形心點。過形心點每隔30°作出12條射線,根據(jù)最短歐氏距離選擇,P1P2點所在的直線角度即為抓取方向,且P1P2的中點即為手爪抓取的中心點;圖7(b)是一個半圓環(huán)形狀,也是在輪廓外的物體,具體檢測方法同上。
圖7 射線求交法求解位姿
選擇8種任意形狀的物體,且每種物體根據(jù)擺放姿態(tài)的不同均進行20次試驗,部分抓取結果如圖8所示。采用“點線式”的展示方法,圖中綠色線段長度即為手爪的開合寬度,且綠色線段的角度即為手爪抓取的方向。其中圖8(a)藍色黏土塊、圖8(b)橙色黏土塊、圖8(c)廢舊鐵塊①、圖8(f)廢舊鐵塊②、圖8(i)鐵管道均屬于形心在物體輪廓內的情況,用直線求交法檢測抓取位姿;而圖8(d)軸承、圖8(e)廢舊鋁條、圖8(h)半塊法蘭盤的形心均在物體輪廓外,用射線求交法檢測抓取位姿。統(tǒng)計結果如表1所示,共進行試驗160次,抓取失敗13次。這種抓取方案的平均成功率為91.875%,本次試驗證明了該方案的實用性和準確性。
圖8 樣本圖片及抓取實驗
當前用于檢測機器人抓取位姿的主流方法是深度學習,康奈爾(Cornell)數(shù)據(jù)集[6]是針對機器人抓取位姿檢測制作的一組數(shù)據(jù)集,包含244種日常物品,且每種物品有多種擺放姿態(tài),許多研究均應用該數(shù)據(jù)集訓練、驗證。本文選擇其中幾張圖片進行驗證,如圖9所示。其中圖9(a)是夏晶等人[7]在英特爾i7、CPU為NVIDIA GeForce GTX 1080TI的計算機上訓練17 h的抓取結果,圖9(b)圖是采用本文提出的位姿檢測算法實時檢測位姿,采用“點線式”的展示方法,在英特爾i5-8250U、Inter(R)UHD Graphics Family的筆記本上實驗。綠色線段代表抓取長度,其中點即為抓取中心點。根據(jù)兩組圖片的對比,可以看出本文研究的位姿檢測方法可以有效地檢測出抓取位姿,相較于深度學習檢測的方法,既不需要過高的顯卡設備,還可以節(jié)省長時間的訓練學習。
表1 對不同位姿的樣本抓取實驗結果統(tǒng)計
圖9 Cornell數(shù)據(jù)集驗證結果對比
另一方面,在實驗過程中還記錄了每張圖片提取位姿所需要的時間,計算出平均處理一張圖片時長為254ms,即3.94幀/秒。表2中列出了其他已公開檢測方法的文獻中說明的檢測速度,可以直觀地看出本文提出的方法在檢測速度上遠遠超過兩種已公開的方法。
表2 不同方法的檢測速度對比
針對機器人抓取不規(guī)則金屬物料存在的抓取位姿檢測問題,提出基于輪廓和形心特征的抓取位姿判斷方法,以過形心的直線或射線與物料輪廓相交點的最短歐式距離作為主要判斷依據(jù)。該方法首先將物料分為形心在輪廓內和形心在輪廓外兩種類型。對于第一種物料,提出直線求交法判斷抓取位姿,對另外一種物料提出射線求交法判斷抓取位姿;確定最佳的抓取位姿;最后通過實際抓取實驗證明該算法可以實現(xiàn)對不規(guī)則的金屬物料進行實時、穩(wěn)定、準確的抓取。搭建實驗平臺做抓取驗證,并與基于深度學習的抓取位姿檢測結果作對比。結果表明:該算法能夠滿足實時的檢測圖像中不規(guī)則廢舊金屬的最佳抓取位姿,且不需要大量的訓練和學習,非常適用于工業(yè)上分揀抓取作業(yè)。