劉建春,高永康,陳勇忠
(1.廈門理工學院機械與汽車工程學院,福建 廈門 361024;2.廈門理工學院電氣工程與自動化學院,福建 廈門 361024)
隨著工業(yè)機器人的快速發(fā)展,其在機械加工、磨削拋光、裝配、噴涂等作業(yè)中得到廣泛的應(yīng)用[1]。工業(yè)機器人雖然可以完成諸多復(fù)雜、危險的工作,但大多數(shù)需要人工示教完成指定的動作,無法滿足制造加工過程自動化及智能化的需求[2]。將視覺技術(shù)與機器人技術(shù)結(jié)合應(yīng)用如同給機器人安裝了眼睛,可以使機械臂的動作更加智能化、靈活化。國內(nèi)外研究人員對視覺引導機器人定位抓取目標物體做了大量研究。文獻[3]研究了采用單目視覺引導機器人的方式,將相機固定在機械臂末端,采用吸盤實現(xiàn)對目標物的抓取。文獻[4]以圓柱形膠瓶蓋為研究對象,通過放置在不同位置的相機求取物體三維坐標,然后對機器人進行正、逆運動學求解,最終引導末端執(zhí)行器抓取目標物體。文獻[5]以工裝板為研究對象,以雙目視覺技術(shù)為基礎(chǔ),通過求取定位孔的三維位置坐標,最終引導末端夾爪實現(xiàn)夾取功能。
雖然國內(nèi)外學者對視覺引導機器人抓取物體做了很多研究,但還存在以下幾點不足。首先單目視覺雖然簡單方便但只局限于二維平面空間無法獲取深度信息。其次末端夾具的選擇上吸盤居多,僅能實現(xiàn)對質(zhì)量較輕的物體抓取。雖然部分學者采取夾爪,但是在求取物體姿態(tài)僅求取了位置坐標,沒有計算偏轉(zhuǎn)角度,限制了抓取物體的姿態(tài)。同時研究對象大多數(shù)為圓柱、矩形等形狀規(guī)則的物體,離實際推廣應(yīng)用還有一定的差距。
而異構(gòu)件(如水龍頭)形狀復(fù)雜按照以上方法還難于實現(xiàn)精確的定位與抓取。為了實現(xiàn)機器人對多種姿態(tài)下水龍頭的定位抓取,開發(fā)了一套雙目視覺引導的異構(gòu)件識別定位抓取系統(tǒng),完成了圖像采集、雙目標定、手眼標定、偏轉(zhuǎn)角與機器人第六軸標定、圖像預(yù)處理、立體校正及匹配等功能模塊設(shè)計。
系統(tǒng)可以分為以下幾個部分:系統(tǒng)標定、圖像采集與預(yù)處理、立體校正與匹配、三維坐標及偏轉(zhuǎn)角的確定、系統(tǒng)通訊等,系統(tǒng)工作流程,如圖1所示。
圖1 系統(tǒng)工作流程Fig.1 System Workflow
在系統(tǒng)運行之前標定。分別進行單目及雙目標定,獲得其內(nèi)部參數(shù)及二者之間的位姿關(guān)系。通過手眼標定得到視覺系統(tǒng)與機器人基坐標系之間的平移及旋轉(zhuǎn)矩陣。同時根據(jù)物體初始偏轉(zhuǎn)角度建立工件與機器人第六軸的轉(zhuǎn)換關(guān)系。系統(tǒng)運行時,放置于傳送帶上的水龍頭到達感應(yīng)區(qū)域后光電傳感器動作,傳動帶停止,相機開始拍照。獲取的圖像經(jīng)過預(yù)處理、立體校正與匹配等操作,計算出物體的三維坐標,同時利用圖像二階矩計算出偏轉(zhuǎn)角度。
將三維坐標及偏轉(zhuǎn)角經(jīng)手眼轉(zhuǎn)換矩陣及偏轉(zhuǎn)角轉(zhuǎn)換公式運算,得到機器人基坐標系下的三維坐標及第六軸的旋轉(zhuǎn)角度,最后通過通訊模塊將數(shù)據(jù)發(fā)送給機器人控制柜引導機器人實現(xiàn)抓取動作。
標定是機器視覺應(yīng)用中重要的一步[6],標定精度直接影響機器人能否實現(xiàn)定位抓取功能。系統(tǒng)標定包括四部分:單目標定、雙目標定、手眼標定、偏轉(zhuǎn)角與機器人第六軸標定。
單目標定是確定相機的內(nèi)部與外部參數(shù)。常用的方法為張正友等人提出的基于2D靶標的相機標定法[7]。為了標定相機必須建立相應(yīng)的數(shù)學模型,應(yīng)用較多的是線性針孔成像模型。同時相機標定時涉及四種坐標系的轉(zhuǎn)換[8],實質(zhì)是求取世界坐標系與像素坐標系的對應(yīng)關(guān)系。
實驗采用(80×80)mm 的(7×7)圓點實心陣列陶瓷標定板,通過拍攝(15~20)張不同姿態(tài)的標定板圖像運行程序即可完成標定。
雙目標定是在單相機標定的基礎(chǔ)上求取二者之間的相對位姿關(guān)系。通過單目標定求取相機的內(nèi)部與外部參數(shù),假設(shè)左右相機外部參數(shù)分別用Rl、Tl與Rr、Tr表示,同理二者之間的相對位姿可用旋轉(zhuǎn)矩陣RR,與平移向量TR表示。
假設(shè)點P在世界坐標系與左、右相機坐標系下的非齊次坐標分別為Xw,Xl,Xr,則三者有以下關(guān)系[9]:
由于左右相機的外部參數(shù)是相對于同一個世界坐標系,消去Xw得:
可得右相機相對左相機的轉(zhuǎn)換關(guān)系為:
根據(jù)式(3)及單目標定結(jié)果,則左右相機的位姿關(guān)系,如式(4)所示:
機器人手眼關(guān)系可以分為eye-to-hand與eye-in-hand兩種。由于實驗是在傳送帶上進行定位抓取,視野范圍是固定的,采用eye-to-hand方式比較合適,其手眼標定是建立相機坐標系與機器人基坐標之間的關(guān)系(以左相機作為相機坐標系建立手眼關(guān)系),手眼標定模型示意圖,如圖2所示。
圖2 手眼標定示意圖Fig.2 Hand-Eye Calibration Diagram
可得手眼標定的基本方程式[10]:
根據(jù)式(7)原理編寫程序,可得標定結(jié)果,如表1所示。
表1 手眼標定結(jié)果Tab.1 Results of Hand-Eye Calibration
實際放置的水龍頭有不同的偏轉(zhuǎn)方向,然而求得的三維坐標只能引導夾爪到達指定位置上方,此時只有夾爪與物體的方向一致才能完成抓取功能。但是手眼標定建立的是相機坐標系與機器人基坐標系之間的關(guān)系,未建立機器人第六軸關(guān)節(jié)與物體偏轉(zhuǎn)方向的關(guān)系。由于視覺系統(tǒng)的坐標系是基于左相機坐標系,則偏轉(zhuǎn)方向僅考慮左圖像中物體的方向即可。因此需建立左圖像偏轉(zhuǎn)角與機器人第六軸之間的轉(zhuǎn)換關(guān)系。
經(jīng)圖像算法處理可提取水龍頭的圓柱區(qū)域,如圖3(d)所示。假設(shè)水龍頭的偏轉(zhuǎn)角度為α,為了方便轉(zhuǎn)換限制偏轉(zhuǎn)角度范圍為0 ≤α≤π。
夾爪到達指定位置正上方時讀取當前機器人第六軸的數(shù)據(jù),假設(shè)此時旋轉(zhuǎn)角度為β,經(jīng)過轉(zhuǎn)換后機器人末端第六軸的角度β為:
物體在實際成像過程中會受到相機內(nèi)部電路噪聲、機械設(shè)備振動、環(huán)境光照變化等因素的影響,導致采集的圖片存在較多的噪聲,會對后期的特征提取及立體匹配產(chǎn)生較大影響,因此有必要對圖像進行初步的處理[11]。針對目標物周圍的椒鹽噪聲,采用(3×3)大小的掩模遍歷圖像像素,進行中值濾波處理。同時為了使物體邊緣更加清晰,通過開/閉運算去除邊緣的毛刺。
實際的雙目相機并非完全在同一平面,則兩相機拍攝的圖像也不再同一平面。當然在這種物理層次下也可以進行特征點的搜索與匹配,但是效率低下且時間較長。雙目標定后系統(tǒng)會生成對應(yīng)左右相機的Map圖像,然后采用相應(yīng)的Map圖對拍攝的圖像進行校正。校正后圖像共面且對應(yīng)的特征點在同一水平線上,可以大大提高搜索效率[12]。
4.3.1 待抓取區(qū)域提取
由于水龍頭是不規(guī)則物體,如圖3(a)所示。且抓取的區(qū)域為圓柱體,需要根據(jù)圖像特征提取出圓柱體區(qū)域,然后將此區(qū)域建立為模板,進而通過模板匹配結(jié)果計算視差。通過視差及區(qū)域特征求取三維坐標及偏轉(zhuǎn)角度。
根據(jù)實驗周圍的光線明暗情況選擇合適的閾值參數(shù),對圖像進行二值化處理,將其頂部區(qū)域分割,如圖3(b)所示。其次通過連通域分析選出目的區(qū)域,對選中的區(qū)域進行膨脹、結(jié)構(gòu)元素腐蝕等形態(tài)學操作,如圖3(c)所示。最后提取類矩形區(qū)域的最小外接矩形即可將水龍頭圓柱體部分提出來,如圖3(d)所示。
圖3 抓取區(qū)域提取Fig.3 Fetching Region Extraction
4.3.2 立體匹配及三維坐標計算
經(jīng)立體校正后,匹配點位于兩幅圖像對應(yīng)的極線上。為了得到物體的深度信息需知左右圖像匹配點的視差值[13],因此左右圖像中對應(yīng)點的正確匹配是求取三維坐標的關(guān)鍵。由于光線分布不均勻,為了減小光照變化對實驗的影響,選擇NCC模板匹配方法進行特征點的匹配[14],其原理如下:
式中:mt—模板的平均灰度值;st2—模板所有灰度值的方差;mf(x,y)—待測圖像的平均灰度值;sf2—待測圖像的所有灰度值方差。
同時為了減小誤匹配情況的出現(xiàn),引入行坐標極線約束。假設(shè)模板的中心坐標為(xl,yl),對應(yīng)的匹配點坐標為(xr,yr)。由于校正后圖像特征點在同一水平線上,以左右xl,xr坐標值為約束條件,當二者值相等時匹配成功,否則重新進行匹配直至成功。
將提取出的矩形區(qū)域建立為模板,當模板創(chuàng)建成功后返回區(qū)域的中心坐標(Rowl,Columnl)。然后依據(jù)設(shè)定的相似度數(shù)值及約束條件進行匹配判斷,匹配成功后返回右圖像中匹配區(qū)域的中心點坐標(Rowr,Columnr)。則視差D=Columnr-Columnl,根據(jù)獲取的匹配點視差及雙目標定結(jié)果及式(10)可計算出抓取位置的三維坐標。
將上述得到的坐標值(xc,yc,zc)經(jīng)過手眼轉(zhuǎn)換矩陣即可得到機器人坐標系下的三維坐標。
4.3.3 偏轉(zhuǎn)角求取
矩形區(qū)域角度范圍為0 ≤α≤π,為了保證精度,實驗中采用圖像幾何矩計算目標物的偏轉(zhuǎn)方向。圖像幾何矩可以分為的一階矩、二階矩、三階矩,其中,二階矩可以計算物體的方向,二階矩計算方法,如式(11)所示。
式中:M20、M02、M11—圖像的二階矩;V(i,j)—圖像在(i,j)處的灰度值。
則圖像的偏轉(zhuǎn)方向R可表示為:
將式(12)得到的弧度值R轉(zhuǎn)換成角度α,經(jīng)坐標變換,即可得到機器人第六軸的角度β。
如圖4所示,采用ABB IRB 1410六軸工業(yè)機器人,末端可負載2.5kg,定位精度0.01mm。選用像元尺寸大?。?.8×4.8)μm,分辨率530萬像素的相機。采用焦距為16mm的定焦鏡頭。雙目相機、機器人、PLC等通過交換機與上位機通信。視覺系統(tǒng)拍攝目標物體圖像,經(jīng)處理得到實驗條件下待抓取點的三維坐標及偏轉(zhuǎn)角度。在夾爪末端固定一探針,操作機械臂使探針移至待抓取點,同時保持夾爪與物體抓取方向一致,讀取此時實際的三維坐標及偏轉(zhuǎn)角度。將視覺系統(tǒng)得到的位姿數(shù)據(jù)與實際的數(shù)據(jù)做差即可得到位姿誤差。三維坐標及偏轉(zhuǎn)角誤差,如圖5所示。
圖4 系統(tǒng)硬件組成Fig.4 System Hardware Composition
圖5 三維坐標與偏轉(zhuǎn)角誤差(單位mm/°)Fig.5 Three-Dimensional Coordinates and Deviation Angle Error(Unit mm/°)
針對現(xiàn)有機器人示教抓取異構(gòu)件智能化及柔性化較弱問題,研發(fā)了一套雙目視覺引導的異構(gòu)件定位抓取系統(tǒng)。以異構(gòu)件水龍頭為例,完成了單目/雙目標定、手眼標定、偏轉(zhuǎn)角標定、圖像處理、立體校正及匹配、系統(tǒng)通訊等開發(fā)。最終得到物體的三維坐標(X,Y,Z)及旋轉(zhuǎn)角度θ。通過實際的定位抓取實驗表明,x、y、z方向誤差分別在±0.9mm、±1mm、±1.4mm 以內(nèi),偏轉(zhuǎn)角誤差在±3.5°以內(nèi),可以滿足實際的工業(yè)生產(chǎn)需求。