張立國 楊 曼 金 梅 周思恩
(燕山大學電氣工程學院, 河北 秦皇島 066004)
隨著“中國制造2025”全面制造強國戰(zhàn)略的推進,工廠對生產(chǎn)線智能化的要求也越來越高,也使機器人的使用率大幅提高[1]。但是大多投板站依然采取人工投板的方式,該方法存在準確性低、效率低、實時性較差以及勞動強度大的缺點。也有部分工廠使用機器人抓取搬移,主要分為2種形式:第1種是基于固定位移的抓取搬移,該方法使用機械手臂走固定位移在固定位置抓取,但是存在抓取定位精度不高的缺點;第2種是基于視覺定位進行抓取搬移,該方法將相機固定在工業(yè)機器人的末端外側(cè),相比于基于固定位移的抓取搬移,此方法對定位精度有一定的提高[2]。常用基于視覺定位標定的方法有3種:傳統(tǒng)相機標定方法、自標定方法和基于主動視覺標定方法[3]。但自標定方法總是反復出現(xiàn)絕對對偶二次曲線的對偶圖象不正定與最小二乘解的局限性問題,其魯棒性不高[4],主動視覺標定方法魯棒性高,但是不能用于攝像機運動未知和無法控制的場合。傳統(tǒng)的標定方法,分為直接線性標定法[5-6]、Tsai兩步標定法[7]、相機自標定方法[8]和張正友標定法[9]等。張正友標定方法雖然精度不是很高,但是不必用到相機的外部信息和大型的測試設備,而且操作簡單,傳統(tǒng)的九點標定就是基于張正友方法進行9個點的標定的,所以,本文在傳統(tǒng)的九點標定方法的基礎上,利用單個Mark標識,并在進行標定時相機采集照片后以及機械手臂前去抓取產(chǎn)品相機拍照獲取產(chǎn)品圖象后,利用數(shù)學形態(tài)學邊緣檢測方法對獲取的圖象進行特征提取,準確提取圖象物體的邊緣信息,機械手臂基于此可以自動進行微調(diào),以達到定位抓取的智能化和精確化。
六軸機器人的各個連桿通過關(guān)節(jié)連接,6個關(guān)節(jié)都是旋轉(zhuǎn)關(guān)節(jié),屬于開鏈式結(jié)構(gòu)[10]。本實驗機械手定位抓取的總體作業(yè)流程如圖1所示。
機械手臂采用改進的九點標定方法進行定位,實現(xiàn)世界坐標系與像素坐標系之間的坐標轉(zhuǎn)換。本實驗采用的相機固定方式為眼在手方式。機械手臂移動前,標定板固定在相機視野中心處,在標定過程中不需要移動標定板,手臂同樣可以在9個點處尋找標定板上的Mark點進行拍照。
其中,9個標定點的位置是利用九點示教方法,以產(chǎn)品待放載具的長寬為邊界,平均分為3行3列,行與列的交叉點即為待標定的點,微調(diào)機械手的X軸或者Y軸方向,使Mark依次出現(xiàn)在視野的左上,中上,右上,右中,中間,左中,左下,中下,右下。
依照上述步驟依次記錄下9個Mark點在相機坐標系下的坐標值以及9個點在機械手坐標系中的坐標值,即可獲取2個坐標系的坐標轉(zhuǎn)換關(guān)系,9個點相對應的坐標值將在文章第4節(jié)中給出。最終九點校正完畢后出現(xiàn)如圖2所示的界面。
其中,Xmm每圖元表示0.079 5 mm/pixel,即圖像上的1 pixel對應到X方向為0.079 5 mm,同樣,Ymm每圖元表示0.070 9 mm/pixel,即圖像上的1 pixel對應到Y(jié)方向為0.079 5 mm。按照實驗標定要求,需要每圖片的Xmm每圖元、Ymm每圖元校正值小于0.1 mm,表示校正結(jié)果較合理。
拍照時,通過適當?shù)墓庠春虲CD攝像機獲取產(chǎn)品的表面圖像尋找特征點,成功獲取圖象后,需要將圖像進行分割,并對其二值圖像進行分析。但是為了避免目標中存在偽目標或者存在粘連和裂斷現(xiàn)象的問題,為了更大化地獲取圖片中的信息,準確提取圖象物體的邊緣信息,利用數(shù)學形態(tài)學邊緣檢測方法[11]對獲取的圖象進行特征提取[12]。然后機械手臂根據(jù)特征信息自動微調(diào)當前位置,直到獲取圓點或者板子的全部信息后進行數(shù)據(jù)的記錄,如圖3所示,如果相機成功尋找到特征點定位,直接建立Local記錄數(shù)據(jù),如果首次相機尋找特征點失敗,機械手可在當前位置附近以0.5 mm的步伐微調(diào)X軸或者Y軸坐標,重新拍照尋找特征點。
機械手臂結(jié)合視覺抓取PCB板的流程如圖4所示,其中,PCB板載盒選擇黑色背景,與金屬 PCB顏色對比強烈。PCB板載盒位于傳送帶上,到達待取位置時,傳感器通過I/O給機械手臂前往PCB載盒位置拍照的信號,如果相機成功尋找到特征點定位,機械手將會執(zhí)行到位取板動作。如果首次相機尋找特征點失敗,機械手可在當前位置附近以0.5 mm的步伐微調(diào)X軸或者Y軸坐標,重新拍照尋找特征點。
機械手通過I/O輸出控制真空電磁閥進行吸真空時,需要設置VacuumReady和VacuumAlarm兩個訊號以確認真空值的合理范圍,保證機械手在穩(wěn)定吸取時不會過吸損壞PCB板元件。經(jīng)過100次的實驗最終確定符合要求的氣壓值范圍是-0.1~0.1 MPa。
坐標系是為確定機器人的位置和姿態(tài)而在機器人或其他空間上設定的位姿指標系統(tǒng)。多連桿的工業(yè)機器人是以底座坐標系為參考坐標系的,通過確定一連串的連桿坐標系之間的關(guān)系來確定機器人的位姿[13]。在世界坐標和機械手坐標之間的變換中,主要涉及齊次坐標的平移變換和旋轉(zhuǎn)變換。如圖5所示,假設{A}、{B}是空間的兩個坐標系,{A}和{B}的3個主軸分別平行且正方向相同,齊次坐標平移變換描述的是通過點P在{A}的位置確定點P在{B}中的位置。
再如圖6所示,假設{A}和{B}是兩個方向相同、方位不同的空間坐標系,{B}可以通過{A}繞其x、y、z任意坐標軸旋轉(zhuǎn)得到[14]。
世界坐標和機械手坐標之間的變換可以通過設定標記點的方法來實現(xiàn)。如圖7所示,假設機械手臂處于原點狀態(tài),圖中左側(cè)Q1~Q9這9個點表示機械手臂坐標系下的標記點,右側(cè)q1~q9的9個點表示攝像機圖像平面內(nèi)的標記點。正如前文所講,點Q1~Q9到點q1~q9的變換是通過平移和旋轉(zhuǎn)來表示的:令
(1)
式中:S是尺度因子;fx、fy、u0、v0是攝像機內(nèi)的參數(shù);(x,y,z)是空間點P的圖像像素坐標值;(X,Y,Z)是空間點P的相機坐標系中的坐標值。再令
(2)
則有:
Sx=HX
(3)
即:
(4)
根據(jù)式(4)可以求解機器人的移動坐標,從而實現(xiàn)了位姿估計[15]。
世界坐標和圖像坐標之間實現(xiàn)轉(zhuǎn)換,需要建立好相機的成像模型,如圖8所示為線性相機模型,也就是常說的針孔模型,定義:OwXwYwZw為世界坐標系、OcXcYcZc為攝像機坐標系、OiXY為圖像坐標系、Oouovo為像素坐標系。
假設(u,v)是投影點P的圖像像素坐標,(Xc,Yc,Zc)是空間點P在相機坐標系中的坐標,則相機成像模型可描述為:
(5)
式中:S是比例因子,αx、αy分別是u和v軸上的尺度因子,(x0,y0)是像面的主點位置。
再假設(Xw,Yw,Zw)是空間點P在世界坐標系中的坐標,則點P在相機坐標系中的坐標和在世界坐標系中的坐標的關(guān)系為:
(6)
聯(lián)立式(5)和式(6),可以得到空間點Q的世界坐標系中的坐標與其投影點P的坐標的關(guān)系為:
(7)
式中:M1是相機內(nèi)部的參數(shù),由αx、αy、u0、v0決定,M2是相機外部參數(shù),由相機坐標系相對世界坐標系的方位決定[16]。
由于鏡頭的彎曲和安裝誤差等影響,鏡頭并非理想的透鏡成像,而帶有不同程度的畸變,使空間點所成的像不在線性模型描述的位置,而是在受到鏡頭失真后影響有一定偏移[17]。非線性畸變一般包括徑向畸變和切向畸變,可以表示為:
δx(x,y)=k1x(x2+y2)+
[p1(3x2+y2)+2p2xy]+s1(x2+y2)
(8)
δy(x,y)=k2x(x2+y2)+
[p2(3x2+y2)+2p1xy]+s2(x2+y2)
(9)
式中:k1、k2是徑向畸變系數(shù);p1、p2是切向畸變系數(shù)。由上述的模型參數(shù)αx、αy、u0、v0和畸變系數(shù)k1、k2、p1、p2構(gòu)成非線性模型下的相機的內(nèi)部參數(shù)。
對相機內(nèi)外參數(shù)采用非線性Levenberg-Marquardt算法進行優(yōu)化。假設標定點有n個,通過最小化目標函數(shù)對這些參數(shù)進行優(yōu)化,如式(10)所示。
(10)
其中:(xdi,ydi)是第i個點的模型,(ui,vi)是實際坐標。
成功獲取圖象后,需要將圖像進行分割,并對其二值圖像進行分析,但是為了避免目標中存在偽目標或者存在粘連和裂斷現(xiàn)象的問題,也為了更大化地獲取圖片中的信息,準確提取圖象物體的邊緣信息,實驗采用數(shù)學形態(tài)學邊緣檢測方法對拍照成功獲取的圖象進行特征提取。數(shù)學形態(tài)學的基礎是嚴格的幾何學和數(shù)學理論,重點研究的是圖象的幾何結(jié)構(gòu)和相互關(guān)系,數(shù)學形態(tài)學是基于對結(jié)構(gòu)元素的填放來對圖象進行處理的,構(gòu)造不同的結(jié)構(gòu)元素可完成不同的圖像分析,并得到不同的結(jié)果[18]。
數(shù)學形態(tài)學主要涉及膨脹與腐蝕運算,膨脹與腐蝕的結(jié)合又形成開合與閉合運算。先進行腐蝕后操作膨脹的屬于開運算。開運算可以消除細小的物體,在纖細處既可以分離物體又能夠平滑較大物體邊界。先進行膨脹操作后對圖像進行腐蝕的過程叫做閉運算。閉運算用來填充物體內(nèi)細小的空洞,連接鄰近物體和平滑邊界的作用[19]。實驗中對圖像做形態(tài)學開閉運算,不僅便于分離圖像目標,而且可以去噪、平滑目標體內(nèi)的灰度,改善圖像的灰度效果[20]。所以,本實驗需要對圖象多次進行腐蝕和膨脹操作以達到邊緣的檢測提取。
2.3.1 圖象膨脹
結(jié)構(gòu)元素在形態(tài)變換中的作用相當于信號處理中的“濾波窗口”[21]。圖象膨脹是利用結(jié)構(gòu)元素x對信號y進行膨脹的,如式(11)所示。結(jié)構(gòu)元素x對信號y進行膨脹就是把結(jié)構(gòu)元素x反射平移m后使x與y的交集非空的所有點構(gòu)成的集合。
(11)
圖象膨脹可以擴大圖像目標,其運算也可以按式(12)進行計算。
(12)
如圖9所示,首先,結(jié)構(gòu)元素x中每一個在定義域D[x]中的點m將信號y平移m,然后,每次平移信號的值加上y,這樣對于結(jié)構(gòu)元素定義域中每一點都得到一個信號,對所有這些信號逐點取其最大值,便可得到膨脹結(jié)果。
2.3.2 圖象腐蝕
圖像腐蝕是圖象膨脹的對偶運算,具有收縮目標圖象的作用。結(jié)構(gòu)元素選取適當?shù)臅r候,可以將灰度比較近接的兩個或者多個目標分離,腐蝕的結(jié)果在原圖上表現(xiàn)出來的是將外圍分離,便于提取目標圖像的輪廓。利用結(jié)構(gòu)元素x對信號y進行腐蝕,其定義如(13)。
(y⊕x)(m)={m|x(m)?y}
(13)
用x(m)對y進行腐蝕的結(jié)果就是把結(jié)構(gòu)元素x平移后使x包含于y的所有點構(gòu)成的集合。
視覺校正的目的是獲取相機坐標系和機械手坐標系之間的對應關(guān)系[22],常見的視覺定位誤差有相機安裝傾斜、相機工作距離過高導等,因此視覺校正很有必要。
本實驗使用的是移動式相機視覺定位,即相機跟隨機械手進行移動。相機安裝方式如圖10所示。
視覺定位過程中最重要的是得到相機坐標系和機械手坐標系之間的對應關(guān)系,為了獲取轉(zhuǎn)換所用的轉(zhuǎn)換關(guān)系,本文基于九點標定法[23-24],在標定的時候,采集到照片后基于數(shù)學形態(tài)學對目標進行識別分割,提取圖象物體的邊緣信息,進而機械手臂自動微調(diào)標記出9個點的位置信息。九點標定就是直接建立相機和機械手之間的坐標變換關(guān)系,其處理流程如圖11所示。
由基于九點標定坐標換算可知,在換算兩個坐標系中的坐標時,重點是要求出標定矩陣。假設某點P在機械手坐標是(x′,y′),對應的圖像坐標是(x,y),R是旋轉(zhuǎn)矩陣,M是平移矩陣[24],則由式(14):
(14)
得:
(14)
(15)
(16)
由式(15)得:
(17)
由式(16)得:
(18)
根據(jù)式(17)和式(18)就可以求出標定矩陣,手眼標定后,以機械手旋轉(zhuǎn)為中心,由圖像上的坐標,根據(jù)
(19)
trans()函數(shù)及公式(19),即可將圖像坐標轉(zhuǎn)換成機械手應該去的位置坐標。其中,(x1,y1)是機械手臂即將要移動去的坐標,(x0,y0)是工作區(qū)域初始某點坐標,(detX,detY)是相機中心和機械手旋轉(zhuǎn)中心的相對距離,trans()函數(shù)就是將圖像坐標轉(zhuǎn)換為相對于(x0,y0)工作區(qū)域的機械坐標,再加上坐標(x1-x0,y1-y0)和(detX,detY)就是當前正確的機械坐標。
為了驗證文中所述的基于視覺定位的方法的可行性,本文選用愛普生C8-A901六軸機械手臂,作業(yè)產(chǎn)品PCB板長23 cm,寬12 cm,厚度(包含原件)1.3 cm。因為PCB板上原件厚度不統(tǒng)一,所以實驗選擇最大厚度進行實驗,以克服視覺定位時高度差對成像知量的影響。文中重點進行了重復定位精度的實驗探究。
重復定位是指機械手的初始點不變,運動軌跡也不變的情況下,機器人到達相同目標位置的精度,這個指標可以用來判斷機器人的穩(wěn)定性。重復定位實驗一共做了100組,從中隨機抽取15組X方向和Y方向的數(shù)據(jù),結(jié)果見表1,本文也對普通九點算法進行了重復定位實驗,實驗結(jié)果如表2所示。
表1 改進九點標定的重復定位結(jié)果
表2 傳統(tǒng)九點標定的重復定位結(jié)果
從實驗結(jié)果可以看出,改進后的九點標定法在X方向的平均誤差是0.234 2 mm,在Y方向的平均誤差是0.012 mm,然而傳統(tǒng)的九點標定方法在X方向的平均誤差是1.011 25 mm,在Y方向的平均誤差是0.230 mm。
改進后的基于九點標定的誤差與傳統(tǒng)方法進行標定的X軸誤差對比變化如圖12所示,其中,虛線是改進的九點標定法所得的在X軸方向上的誤差范圍,實線是傳統(tǒng)的九點標定法所得的在X軸方向上的誤差范圍。
改進后的基于九點標定的誤差與傳統(tǒng)方法進行標定的Y軸誤差對比變化如圖13所示,其中,虛線是改進的九點標定法所得的在Y軸方向上的誤差范圍,實線是傳統(tǒng)的九點標定法所得的在Y軸方向上的誤差范圍。
在實際生產(chǎn)中,正常的工位都是允許PCB板左右偏移2 mm,雖然傳統(tǒng)的九點標定方法的平均誤差也在要求的范圍內(nèi),但是精度不夠高,而且誤差中也出現(xiàn)過超過2 mm的特殊位點,由此可以看出,改進的九點標定方法具有較高的控制精度,能夠確保重復定位的精度,完全滿足機械手定位搬移要求。
九點標定既要得到9個位置點在機器人坐標系中的坐標,同時還要用相機識別這9個點所對應的Mark點在圖像坐標系下的坐標,進而根據(jù)相機標定函數(shù)求得對應的像素值?;诰劈c標點的原理利用改進的方法,成功標定的9個目標點的機械手臂坐標系下的坐標值和對應的圖像坐標系下的坐標值如表3所示。其中,P1~P9是9個目標點在機械手坐標系中的坐標點,9個點所對應Mark點的圖像坐標系下的坐標為P11~P19。
表3 九點校正坐標值
本文針對投板工位定位抓取不精準的問題,提出機械手臂結(jié)合視覺對感興趣對象(PCB)進行識別、抓取和搬移的方法,并對其進行相關(guān)研究和分析,基于機器視覺的精準拍照定位、六軸機械手臂自由度的靈活性,在重復定位和九點標定實驗中,可以看出,在X方向的平均誤差是0.234 2 mm,在Y方向的平均誤差是0.012 mm,可見,該系統(tǒng)很是穩(wěn)定,而且此系統(tǒng)也可以用于包裝、分揀工站以及在線檢測,比如將成型產(chǎn)品放在檢測儀上進行檢測。雖然六自由度的機器人可以大大提高運作效率,但是基于科技的發(fā)展,在機器人作業(yè)效率方面還是有很大的提升空間的。