劉文婧,盧子航,王建國(guó),王少鋒
(內(nèi)蒙古科技大學(xué)機(jī)械工程學(xué)院,包頭 014010)
當(dāng)前,利用工業(yè)機(jī)器人取代人工成為了工業(yè)生產(chǎn)的發(fā)展方向[1-2]。與人工相比,工業(yè)機(jī)器人有著許多優(yōu)點(diǎn),比如可以長(zhǎng)時(shí)間、高強(qiáng)度、高精度地進(jìn)行工件的檢測(cè),還能進(jìn)行高難度的搬運(yùn)和高效的裝卸,機(jī)械臂便應(yīng)用于工廠的生產(chǎn)與檢測(cè)成為了一個(gè)大的方向[3-4]。而多品種小批量生產(chǎn)隨著機(jī)械行業(yè)的發(fā)展也越來(lái)越多,多零件的單臺(tái)裝配數(shù)量很低,有的只有一件[5],不可能實(shí)現(xiàn)對(duì)每個(gè)零件都定制夾具為其檢測(cè)。以廣泛應(yīng)用于交通隧道盾構(gòu)機(jī)為例,由于其功能的特殊性,盾構(gòu)機(jī)對(duì)零件的種類和需求量較大,安裝精度要求較高,涉及上百種零件,且多為中厚板[6-8]。在一臺(tái)盾構(gòu)機(jī)中,單臺(tái)裝配數(shù)量達(dá)1000個(gè),而每個(gè)零件大小和重量不一[9]。所以本文以該類多品種小批量生產(chǎn)的零件為背景,基于機(jī)械臂能夠長(zhǎng)時(shí)間、高強(qiáng)度、高精度地進(jìn)行工件的檢測(cè),在沒(méi)有工件夾具定位的條件下,考慮引入機(jī)械臂來(lái)對(duì)該多品種小批量零件的檢測(cè)工作。
本文基于機(jī)械臂輔助機(jī)器視覺(jué)引工件識(shí)別與定位方法研究系統(tǒng)主要由工業(yè)機(jī)械臂、工業(yè)相機(jī)和上位機(jī)監(jiān)視和控制器組成。
工業(yè)機(jī)器人選用KUKA KR20 R1810型機(jī)器人,如圖1所示。最大載荷為20 kg,最大工作距離為1813 mm,重復(fù)定位準(zhǔn)確度為±0.04 mm[10],能夠滿足機(jī)器人與上位機(jī)通訊和對(duì)工件的定位與檢測(cè)。
工業(yè)相機(jī)選用HikRobot品牌的MV-CA016-10GC工業(yè)相機(jī),如圖2所示。該攝像機(jī)具有良好的成像品質(zhì),并能在千兆以太網(wǎng)上實(shí)現(xiàn)非壓縮數(shù)據(jù)的快速、實(shí)時(shí)傳送,最大幀速率達(dá)到78.2 fps。
上位機(jī)模塊用Python程序編寫(xiě),能夠?qū)C(jī)械臂的位姿進(jìn)行實(shí)時(shí)監(jiān)控,當(dāng)機(jī)器人軌跡出現(xiàn)偏離時(shí),通過(guò)上位機(jī)模塊也可以對(duì)機(jī)器人進(jìn)行微調(diào)。
基于機(jī)械臂輔助機(jī)器視覺(jué)引工件識(shí)別與定位方法研究系統(tǒng),工件如圖3所示。在本系統(tǒng)中,通過(guò)對(duì)工件圖像進(jìn)行圖像預(yù)處理,提取工件曲面表面的特征參數(shù),將其與機(jī)器人存儲(chǔ)內(nèi)部的工件模版進(jìn)行匹配,將工件表面的特征點(diǎn)作為機(jī)械臂在工件上運(yùn)動(dòng)的軌跡,來(lái)驗(yàn)證對(duì)工件定位的精準(zhǔn)度。
圖3 選用被定位的工件
圖像處理是為了提高圖像的可視化程度,獲得所需的特征,從而方便地對(duì)后續(xù)的圖像進(jìn)行分析[11]。
2.1.1 灰度化處理
由于彩色圖像由R、G、B三個(gè)顏色分量構(gòu)成[12],當(dāng)要得到某種理想的灰度圖像時(shí),人為給R、G、B三個(gè)分量分別以不同的權(quán)重,則每一個(gè)像素點(diǎn)的灰度值如式1所示。
Gray(x,y)=0.299R(x,y)+0.578G(x,y)+0.144B(x,y)
(1)
2.1.2 直方圖均衡化
直方圖均衡化原理把原圖像的直方圖轉(zhuǎn)換為均勻分布的形式,增加像素灰度值的動(dòng)態(tài)范圍,增強(qiáng)圖像整體對(duì)比度[13]。當(dāng)拍攝物體的背景過(guò)亮或過(guò)暗時(shí),為更好的突出特征信息,避免灰度值過(guò)度集中于某個(gè)范圍,從而達(dá)到對(duì)圖像的對(duì)比度增強(qiáng)的效果。
計(jì)算原始直方圖的概率密度:
P(rk)=nk/N
(2)
計(jì)算累計(jì)歸一化直方圖:
(3)
重新計(jì)算像素點(diǎn)的像素:
res=Sk×L
(4)
2.2.1 圖像的邊緣檢測(cè)技術(shù)
通過(guò)對(duì)圖像進(jìn)行邊緣提取,能夠有效地減少計(jì)算量,并將其應(yīng)用于圖像的匹配[14]。選用Canny算子作為提取輪廓的邊緣算子。Canny算子在保留較弱邊緣特征的前提下,具有較強(qiáng)的抗生成能力。Canny算子邊緣檢測(cè)步驟為:
步驟1:應(yīng)用高斯濾波來(lái)平滑圖像;
步驟2:計(jì)算得到水平方向dx和垂直方向dy。梯度方向一般取0°、45°、90°和135°四個(gè)方向。其中:
(5)
(6)
步驟3:非最大抑制來(lái)消除邊緣誤檢;
步驟4:雙閾值方法來(lái)確定潛在的邊界;
步驟5:利用滯后技術(shù)來(lái)跟蹤邊界。
2.2.2 改進(jìn)的邊緣特征提取算法
在Canny算子對(duì)圖像輪廓提取后,圖像存在邊緣的斷裂、毛刺點(diǎn)、斷點(diǎn)和斷線的現(xiàn)象。因此,需要對(duì)邊緣進(jìn)行跟蹤和連接,從而彌補(bǔ)邊緣提取算法的不足造成的邊緣缺失現(xiàn)象。對(duì)中心像素點(diǎn)指向其鄰域像素的方向進(jìn)行編碼,根據(jù)參與編碼的鄰域像素?cái)?shù)目和改進(jìn)的方向公式:
(7)
利用上述奇異點(diǎn)消除方法對(duì)提取出的輪廓進(jìn)行處理,將一些不必要的像素點(diǎn)和線去掉,并根據(jù)邊緣點(diǎn)的梯度方向判斷邊緣走向,進(jìn)行邊緣補(bǔ)償。
基于邊緣搜索的方法通過(guò)首先計(jì)算邊緣強(qiáng)度的度量,然后使用邊緣的局部方向的計(jì)算估計(jì)來(lái)搜索梯度幅度的局部方向最大值來(lái)檢測(cè)邊緣[15]。
對(duì)于兩組數(shù)據(jù)集合,為了得到它們之間的相似程度,可以利用Hausdorff距離進(jìn)行相似度的計(jì)算。假設(shè)有兩組集合:A={a1,a2,a3,…,an},B={b1,b2,b3,…,bn};
則兩個(gè)點(diǎn)集合之間的單向Hausdorff距離:
(8)
(9)
H(A,B)=max{h(A,B),h(B,A)}
(10)
雙向Hausdorff距離取單向Hausdorff距離中的最大值,度量了兩個(gè)點(diǎn)集間的不相似程度(雙向Hausdorff距離越小,匹配程度越高)。
在模版匹配的定位中,在KUKA機(jī)器人內(nèi)部存儲(chǔ)一個(gè)標(biāo)準(zhǔn)工件的輪廓模版圖,在掃查工作時(shí),要將待掃查的異型鑄件輪廓提取出來(lái),然后在利用提取的待掃查工件輪廓與異型鑄件輪廓模版進(jìn)行匹配,并計(jì)算誤差值。
在機(jī)器人操作中,需要將機(jī)器人的控制程序中的運(yùn)動(dòng)命令轉(zhuǎn)換為機(jī)器人工具末端執(zhí)行器的運(yùn)動(dòng),因此需要知道工具相對(duì)于機(jī)器人臂的位置和姿態(tài)。采用四點(diǎn)法標(biāo)定工具坐標(biāo)系,如圖4所示。
圖4 工具坐標(biāo)系的標(biāo)定步驟
用四點(diǎn)法標(biāo)定的工具坐標(biāo)系誤差為0.2 mm,與機(jī)械臂末端X偏差2.238 mm,Y軸偏差7.216 mm,Z軸偏差304.820 mm,旋轉(zhuǎn)軸A、B、C偏轉(zhuǎn)角度為0°。
3.2.1 相機(jī)成像模型
如圖5所示,假設(shè)世界坐標(biāo)系中有任意一目標(biāo)點(diǎn)P,目標(biāo)點(diǎn)P點(diǎn)在成像平面鏡像面中的成像點(diǎn)為p,Oc為相機(jī)的光心,三點(diǎn)共處于同一條直線。焦距f為光心Oc到成像平面鏡像面之間的距離,光心Oc到目標(biāo)點(diǎn)P距離為Zc,Zc方向指向光軸外側(cè)。
圖5 KUKA KR20 R1810型工業(yè)機(jī)器人
根據(jù)三角幾何關(guān)系可知,像素坐標(biāo)系與圖像坐標(biāo)系轉(zhuǎn)換關(guān)系:
(11)
圖像坐標(biāo)系與相機(jī)坐標(biāo)系轉(zhuǎn)換關(guān)系:
(12)
相機(jī)坐標(biāo)系與世界坐標(biāo)系轉(zhuǎn)換關(guān)系:
(13)
將式(11)~式(13)聯(lián)立可以得到世界坐標(biāo)系中任一點(diǎn)與像素坐標(biāo)系對(duì)應(yīng)點(diǎn)之間的轉(zhuǎn)換關(guān)系為:
(14)
式中:K3×4為所求相機(jī)內(nèi)參矩陣。
3.2.2 相機(jī)標(biāo)定
相機(jī)標(biāo)定采用張正友標(biāo)定法,求得相機(jī)外參矩陣。標(biāo)定板由7×9黑白方格組成,角點(diǎn)數(shù)量為6×8個(gè),方格為24.5×24.5 mm,用HikRobot進(jìn)行圖像采集,將相機(jī)固定在定制的法蘭盤(pán)上,拍攝距離選擇在1000 mm,拍攝30幅不同角度的標(biāo)定板照片,如圖6所示,加載到MATLAB的Camera Calibration程序中對(duì)相機(jī)進(jìn)行標(biāo)定,并對(duì)標(biāo)定結(jié)果進(jìn)行分析。
圖6 棋盤(pán)格標(biāo)定版
標(biāo)定結(jié)果:標(biāo)定板角點(diǎn)坐標(biāo)的重投影的平均誤差為0.26像素,小于規(guī)定的0.5像素,滿足實(shí)驗(yàn)要求,相機(jī)內(nèi)參標(biāo)定結(jié)果如表1所示。
表1 KUKA KR20 R1810型工業(yè)機(jī)器人
3.2.3 手眼標(biāo)定
選擇Eye-in-hand模式對(duì)機(jī)械臂與工業(yè)相機(jī)進(jìn)行標(biāo)定。對(duì)于Eye-in-hand手眼標(biāo)定方式,先對(duì)機(jī)械臂的末端與相機(jī)坐標(biāo)的轉(zhuǎn)換關(guān)系進(jìn)行求解。Eye-in-hand的原理示意圖如圖7所示。
圖7 手眼標(biāo)定示意圖
為了便表達(dá),解出T坐標(biāo)系與Cm坐標(biāo)系之間的關(guān)系,假設(shè)Cl坐標(biāo)系下某個(gè)點(diǎn)P0,T1為上一節(jié)求解的相機(jī)外參矩陣,根據(jù)T1能夠?qū)0轉(zhuǎn)換到Cm下點(diǎn)P1,再根據(jù)手眼標(biāo)定矩陣(轉(zhuǎn)換矩陣X)能夠轉(zhuǎn)換到T坐標(biāo)系下點(diǎn)P2,然后再根據(jù)已知的機(jī)械臂自身參數(shù)(上一節(jié)求得末端tool與機(jī)械臂base轉(zhuǎn)換矩陣T3),能夠轉(zhuǎn)換到B坐標(biāo)系下點(diǎn)P3,關(guān)系式為:
T3XT1P0=P3
(15)
移動(dòng)機(jī)械臂至任意位置,P0和P3的坐標(biāo)值不變,但是P1和P2坐標(biāo)值變了,式(15)變成以下公式:
(16)
(17)
變換得:
(18)
本研究使用KUKA工業(yè)機(jī)器人、HikRobot MV-CA016-10GC工業(yè)相機(jī)和A4大小標(biāo)定板組成“Eye-in-hand”的手眼系統(tǒng)。相機(jī)通過(guò)固定支架固定在工業(yè)機(jī)器人的末端,搭建平臺(tái)如圖8所示。
圖8 手眼標(biāo)定的實(shí)驗(yàn)平臺(tái)
最后求得手眼標(biāo)定的轉(zhuǎn)換矩陣為:
機(jī)械臂的工件坐標(biāo)系標(biāo)定是指確定機(jī)械臂末端執(zhí)行器的坐標(biāo)系在實(shí)際工作環(huán)境中的位置和姿態(tài),以便精確控制機(jī)械臂的運(yùn)動(dòng)。機(jī)械臂可以和不同類別的工件配合工作,需在工作臺(tái)上的一個(gè)特征位置建立一個(gè)如圖9所示的工件坐標(biāo)系。
圖9 KUKA KR20 R1810型工業(yè)機(jī)器人
建立好的工件坐標(biāo)系為(在機(jī)械臂的基坐標(biāo)系下):
采用三點(diǎn)法對(duì)工件的傳動(dòng)裝置進(jìn)行標(biāo)定,分別取O遠(yuǎn)點(diǎn)、X+方向和Y+方向的任意一點(diǎn),將TCP端分別移動(dòng)至該3點(diǎn)進(jìn)行測(cè)量,并在KUKA示教端中進(jìn)行保存。在base模式下,從標(biāo)定結(jié)果中得到,建立的工件坐標(biāo)系在base坐標(biāo)系的原點(diǎn)O:(-188.217,-1034.052,276.949,0,0,0),最后求得工件坐標(biāo)系與base坐標(biāo)系之間的旋轉(zhuǎn)矩陣為:
為了驗(yàn)證目標(biāo)工件定位的精準(zhǔn)度,決定在實(shí)驗(yàn)室環(huán)境下進(jìn)行測(cè)試。選取目標(biāo)文件,取4種工件的不同區(qū)域的識(shí)別點(diǎn)作為機(jī)械臂探針軌跡檢測(cè)目標(biāo)。工業(yè)相機(jī)通過(guò)支架固定在KUKA機(jī)械臂末端上方,工件置于傳送帶任意位置,現(xiàn)場(chǎng)圖如圖10所示。
圖10 搭建的實(shí)驗(yàn)平臺(tái)
在OpenCV圖像庫(kù)中調(diào)用Cv2_GRA指令對(duì)工件加權(quán)平均法對(duì)圖像的灰度化處理。并對(duì)灰度化的圖像調(diào)用cv2.equalizeHist和cv2.grayImage函數(shù)進(jìn)行均衡化增強(qiáng)。效果圖如圖11所示。
圖11 灰度化的圖像與增強(qiáng)后的圖像對(duì)比
過(guò)OpenCV圖像庫(kù)中調(diào)用cv2.Canny()對(duì)工件的灰度圖像進(jìn)行輪廓提取,并根據(jù)上一章提出的優(yōu)化輪廓提取算法,對(duì)Canny算子到圖像進(jìn)行優(yōu)化處理,如圖12所示,Canny算子與優(yōu)化的輪廓提取算法對(duì)灰度圖像處理的效果圖。
圖12 Canny算子和優(yōu)化邊緣輪廓算法提取輪廓效果圖
在OpenCv中調(diào)用cv2.matchTemplate()函數(shù),對(duì)工件的廓的邊緣進(jìn)行提取并精準(zhǔn)匹配。調(diào)試結(jié)果如圖13所示,工件的輪廓以及表現(xiàn)得軌跡點(diǎn)用灰色虛線表示,工件處于黑色實(shí)線定位框內(nèi)。
圖13 工件到模版圖與定位結(jié)果
為了設(shè)計(jì)的識(shí)別與定位算法的實(shí)時(shí)性、自適應(yīng)性和魯棒性,通過(guò)對(duì)工件進(jìn)行旋轉(zhuǎn)、平移、混合來(lái)分別進(jìn)行多組實(shí)驗(yàn),識(shí)別工件結(jié)果如圖14所示。
圖14 工件不同位置的定位圖像
根據(jù)手眼標(biāo)定獲得的矩陣可獲得相機(jī)(Cm)與基標(biāo)系(B)之間的關(guān)系,工件坐標(biāo)系的標(biāo)定可以獲取工件(G)與基坐標(biāo)系(B)之間的關(guān)系,由此可以確定工件坐標(biāo)(G)系與相機(jī)坐標(biāo)系之間的轉(zhuǎn)換矩陣。通過(guò)模版匹配實(shí)現(xiàn)了對(duì)工件的識(shí)別與定位,便可以實(shí)現(xiàn)對(duì)工件表面特征位置建立坐標(biāo)系,該坐標(biāo)系可作為工件表面所規(guī)劃軌跡的工件坐標(biāo)系。如圖15所示。
圖15 工件坐標(biāo)系示意圖 圖16 工件的目標(biāo)軌跡分布圖
如圖16所示,將工件表面4個(gè)軌跡點(diǎn)劃分區(qū)域?yàn)锳1,A2,A3,A4,其中A1區(qū)域18個(gè)軌跡點(diǎn),A2區(qū)域16個(gè)軌跡點(diǎn),A3區(qū)域18個(gè)軌跡點(diǎn),A4區(qū)域14個(gè)軌跡點(diǎn)。
確認(rèn)機(jī)器人回零點(diǎn)后,將工件放置在傳送帶任意位置,手動(dòng)示教機(jī)械臂的末端探針?lè)謩e移動(dòng)到工件的A1區(qū)18個(gè)軌跡點(diǎn),通過(guò)示教器在手動(dòng)模式下對(duì)該軌跡點(diǎn)進(jìn)行PTP指令的編程,并在上位機(jī)監(jiān)視器上讀取該區(qū)域點(diǎn)的(x,y)坐標(biāo)系位置。隨后,驅(qū)動(dòng)機(jī)械臂回初始位置,切換為相機(jī)外部自動(dòng)和機(jī)器視覺(jué)模式,使用相機(jī)獲取圖像后,與機(jī)器人內(nèi)部的工件模版進(jìn)行匹配。
當(dāng)工件被定位后,通過(guò)按鈕觸發(fā)機(jī)器人進(jìn)行自動(dòng)化運(yùn)行,進(jìn)而通過(guò)控制機(jī)器人末端把空間坐標(biāo)發(fā)送至機(jī)器人伺服控制器驅(qū)動(dòng)機(jī)械臂末端移動(dòng)到第1~18軌跡點(diǎn),并從上位機(jī)上讀取出軌跡點(diǎn)位于機(jī)器人base坐標(biāo)系下的位置。以此類推,對(duì)4個(gè)區(qū)的軌跡點(diǎn)的實(shí)際軌跡坐標(biāo)與解算的軌跡坐標(biāo)進(jìn)行記錄,并計(jì)算誤差,如表2~表5所示。
表2 A1區(qū)域?qū)嶋H坐標(biāo)與軌跡解算的結(jié)果誤差 (mm)
表3 A2區(qū)域?qū)嶋H坐標(biāo)與軌跡解算的結(jié)果誤差 (mm)
表4 A3區(qū)域?qū)嶋H坐標(biāo)與軌跡解算的結(jié)果誤差 (mm)
表5 A4區(qū)域?qū)嶋H坐標(biāo)與軌跡解算的結(jié)果誤差 (mm)
從表2~表5的實(shí)驗(yàn)結(jié)果來(lái)看,X軸向的最大誤差為0.34 mm,Y軸向的最大誤差為0.35 mm。
通過(guò)對(duì)比工件表面軌跡的的結(jié)果分析,誤差主要來(lái)自4個(gè)方面:
(1)相機(jī)是手動(dòng)對(duì)焦和手動(dòng)調(diào)焦光圈的鏡頭,在拍攝過(guò)程中可能出現(xiàn)跑焦的問(wèn)題造成采取圖像模糊,影響輪后期圖像邊緣提取的精度;
(2)立體匹配算法誤差。在圖像采集和處理的過(guò)程中,通過(guò)對(duì)圖像的預(yù)處理和輪廓提取,有可能會(huì)失去部分的邊緣信息,而且受光照條件不穩(wěn)定的影響,也會(huì)對(duì)匹配效果產(chǎn)生影響。因?yàn)橄鄼C(jī)標(biāo)準(zhǔn)的結(jié)果也會(huì)出現(xiàn)誤差,這些誤差的累積必然會(huì)影響視差的效果,進(jìn)而影響軌跡解算的精度;
(3)工業(yè)相機(jī)與視覺(jué)相機(jī)本身就存在的誤差以及在對(duì)相機(jī)的標(biāo)定、手眼標(biāo)定、工具坐標(biāo)系標(biāo)定和工件坐標(biāo)系標(biāo)定的過(guò)程中產(chǎn)的誤差;
(4)地面的平整度不夠和工件的底部平整度不夠,工件坐標(biāo)系標(biāo)定誤差影響了Zc值有一定變化,對(duì)坐標(biāo)轉(zhuǎn)換的精度有所影響。
本文描述了工業(yè)機(jī)械臂輔助機(jī)器視覺(jué)的工件識(shí)別與定位系統(tǒng),該系統(tǒng)硬件設(shè)備采用KUKA工業(yè)機(jī)器人和HikRobot品牌的MV-CA016-10GC攝像頭模組,算法開(kāi)發(fā)使用搭建的Python開(kāi)發(fā)框架和移植的OpenCV計(jì)算機(jī)視覺(jué)庫(kù),通過(guò)軟硬件的相結(jié)合,在整個(gè)平臺(tái)實(shí)現(xiàn)了機(jī)器人通訊、機(jī)器人外部自動(dòng)控制、采集圖像、圖像預(yù)處理、輪廓提取、基于模版匹配的目標(biāo)識(shí)別與定位、相機(jī)標(biāo)定和坐標(biāo)系轉(zhuǎn)換等過(guò)程,可以準(zhǔn)確定位目標(biāo)工件。最后通過(guò)實(shí)驗(yàn)測(cè)定誤差在0.35 mm內(nèi),驗(yàn)證了定位的準(zhǔn)確性。