楊宏韜,蘇 航,李秀蘭,于微波,熊鳳鑾,李 鑫
(長春工業(yè)大學電氣與電子工程學院,長春 130012)
在現(xiàn)代化生產(chǎn)車間,將機器視覺系統(tǒng)加裝到機器人本體上,賦予機器臂視覺功能,通過“手—眼”之間協(xié)同工作,可以自動完成各類工件的焊接、搬運、分揀、加工等任務,大大提高企業(yè)生產(chǎn)效率[1]。結構光視覺系統(tǒng)因其非接觸式、抗干擾能力強和精度適中的優(yōu)點而廣泛應用于自動化焊接系統(tǒng)和復雜零件測量等領域。
結構光視覺裝置主要由固定于機器人末端的相機和線結構光發(fā)射器構成。對結構光視覺裝置參數(shù)的標定關系著系統(tǒng)定位精度,決定著能否完成工業(yè)現(xiàn)場中的任務。目前的標定方法往往需要將相機參數(shù)標定和光平面標定分開進行,如ZHANG[2]標定法,其精確度高、操作簡便等優(yōu)點使其被廣泛應用于相機離線標定,但該方法依賴于造價高昂的高精度靶標,而且一旦在使用過程中對靶標面造成磨損或污損,此靶標便無法再應用于其它工業(yè)環(huán)境中,重復利用價值較低。田少兵等[3]對ZHANG[2]的方法進行了改進,利用粒子群優(yōu)化算法將標定結果進行優(yōu)化,獲得了較好的精度。張黎爍等[4]提出了一種只需場景中3個特征點的方法,但其主要通過求解擴展焦點(FOE)來進行相機內參和手眼標定,在復雜的工業(yè)環(huán)境中,拍攝到的圖片質量有限,會造成求解FOE位置不穩(wěn)定,從而影響相機標定結果,造成結構光視覺裝置精度無法滿足焊縫跟蹤要求。
對光平面的標定,陳曉輝等[5]提出了基于線結構光單平面標定的3D成像方法,簡化了標定步驟,提升了系統(tǒng)的穩(wěn)定性。魏振忠等[6]將兩個相互垂直的剛性平面作為靶標,利用交比不變原理對光平面進行標定,雖提高了標定精度,但其靶標成本較高,且相互垂直的靶標平面易產(chǎn)生遮擋,影響標定效果。張瑞峰等[7]提出了一種不需激光條紋與棋盤格相交的新標定方法,采用了更多擬合光平面的特征點,提升了標定精度。吉峰等[8]設計了一種無需特制靶標的標定方法,該方法只需要場景中的3個特征點即可完成光平面的標定,操作簡便,但精度有限,無法滿足工業(yè)環(huán)境中部分精度要求較高的任務。
為了解決上述方法中需要特制靶標和標定過程復雜繁瑣,精度較低等問題,本文提出了一種基于非特制靶標的結構光視覺自動標定方法,并設計了相應的自動標定系統(tǒng)。該系統(tǒng)通過機器人帶動結構光視覺裝置做兩組運動,即可求解出相機參數(shù)、手眼參數(shù)和光平面方程。該系統(tǒng)具有標定流程自動化,靶標易獲得、可重復利用率高等特點,精度也可滿足物體測量和焊縫跟蹤等任務。
系統(tǒng)在硬件方面由FANUC LR Mate 200iD機器人、大恒水星MER2-502-79U3C相機、線結構光發(fā)射器和上位機組成,如圖1所示。
圖1 結構光視覺裝置硬件組成
系統(tǒng)在軟件方面由人機交互模塊、位姿存儲模塊、圖像采集模塊、運動記錄模塊、圖像處理模塊、相機和手眼參數(shù)標定模塊、光平面標定模塊和通信模塊組成。采用Visual Studio實現(xiàn)人機交互模塊、圖像采集模塊、位姿存儲模塊、運動記錄模塊和通信模塊的開發(fā)。相機和手眼標定模塊與光平面標定模塊由OpenCV和C++完成開發(fā),利用上述模塊生成的動態(tài)庫(DLL)實現(xiàn)功能。
系統(tǒng)流程如圖2所示,上位機先調用位姿存儲模塊,將位姿信息通過以太網(wǎng)與機器人通訊,機器人控制器判斷機器人是否到達指定位置。然后上位機給機器人發(fā)送啟動信號DI,使機器人運行至設定點位,機器人到達設定點位后控制器生成信號DO并發(fā)送給上位機,上位機接收到DO信號后調用圖像采集模塊,發(fā)送信號給相機拍攝圖片,并調用運動記錄模塊記錄運動次數(shù),當次數(shù)到達增加至第二組運動時,上位機發(fā)送啟動信號給線激光發(fā)射器,然后觸發(fā)相機拍攝圖片。拍攝所有圖片后,上位機調用圖像處理模塊將圖片進行處理,圖像處理模塊主要包括3部分,分別為圖像預處理、特征點提取和激光條紋中心線提取功能,處理完成后依次調用相機和手眼標定模塊與光平面標定模塊,完成結構光視覺裝置的標定。
圖2 系統(tǒng)工作流程
對結構光視覺裝置進行標定的前提是對相機參數(shù)進行標定,因此本文設計的系統(tǒng)分兩階段進行,分別為相機和手眼參數(shù)標定階段與光平面標定階段,利用非特制靶標表面的圖像信息進行標定。
相機將非特制靶標上的點轉換為二維平面上的坐標點,轉換過程可以用數(shù)學模型來表達,這個數(shù)學模型就是相機的內外參數(shù)。相機參數(shù)標定作為機器視覺領域中不可缺少的環(huán)節(jié),其結果的準確性和穩(wěn)定性會嚴重影響到相機能否完成工作任務。相機可視為針孔成像模型[9],如圖3所示。
圖3 針孔成像模型
圖3中,OW-XWYWZW為世界坐標系,OC-XCYCZC為相機坐標系,O-UV為圖像坐標系。非特制靶標中任意一點P,經(jīng)過相機投射至虛擬成像平面上為P′,點P在世界坐標系下的坐標設為(xW,yW,zW),在相機坐標系下的坐標設為(xC,yC,zC)。點P′坐標設為(u,v),則點P′和點P的關系可用式(1)和式(2)表示[10]為:
(1)
(2)
式中,Min為相機內參矩陣;kx和ky分別為成像平面到圖像平面的坐標在x軸和y軸上的轉換參數(shù);u0和v0分別為相機主點在圖像平面上的橫、縱坐標;s為比例因子;Mout為相機相對于物體的外參矩陣;R為3×3的旋轉變換矩陣;t為3×1的平移矩陣;O=(0,0,0)。
由相機標定可以得到目標物體在相機坐標系下與世界坐標系的坐標變換關系,而對于一個安裝在機器人末端的結構光視覺裝置來說,需要知道機器人在任意姿態(tài)下結構光視覺裝置所在位置,因此還需要求取手眼參數(shù),得到相機與機器人末端之間的變換關系,系統(tǒng)各坐標系建立和變換關系如圖4所示。
圖4 各坐標系和轉換關系
圖4中Te為機器人基坐標系B與機器人末端坐標系E之間的轉換矩陣;Tm為機器人末端坐標系E與相機坐標系C之間的轉換矩陣;Tw為機器人基坐標系B與世界坐標系W的轉換矩陣;Tp為世界坐標系W與相機坐標系C之間的轉換矩陣,由圖5可知:
(a) 機器人移動前 (b) 機器人移動后圖5 光平面與物體交點
(3)
本系統(tǒng)采用基于單特征點的相機標定方法[11],該方法需場景中的一個特征點,利用機器人帶動相機做8次平移運動求出相機參數(shù)和3次末端位姿改變運動求出手眼參數(shù)。
光平面作為輔助平面,可以彌補單目相機無法獲取目標物體深度的缺點。由于結構光視覺裝置中,激光裝置射出的光平面與相機相對位置不變,所以標定任務為求取光平面與相機坐標系的轉換矩陣。
在機器人處于初始位置時,激光發(fā)射器發(fā)出的線激光照射到物體,此時會與物體產(chǎn)生兩個交點P1和Q1,如圖5a所示。對相機進行內參和手眼標定后,s即是外參標定結果中平移矩陣t的z軸坐標,因此可以通過提取這兩個點的像素坐標,并通過式(1)坐標變換將其轉換為相機坐標系下的坐標,分別記為(xcp1,ycp1,zcp1)和(xcq1,ycq1,zcq1)??刂茩C器人保持末端姿態(tài)不變,使其沿著ZB軸運動,此時點P和點Q的位置會發(fā)生改變,設為P2和Q2,如圖5b所示。
s為比例因子,當相機位置改變后導致s發(fā)生變化,所以不能再通過式(1)求出P1和Q1在相機坐標系下的坐標。若初始位置相機垂直于平臺,機器人基坐標系B和世界坐標系W的各坐標軸相互平行,則可以通過機器人的位移信息獲得新的s,記為s2。此時,提取P2和Q2的像素坐標后,利用式(1)即可將兩點轉至相機坐標系下,記為(xcp2,ycp2,zcp2)和(xcq2,ycq2,zcq2)。多次使機器人沿著z軸運動,則會產(chǎn)生多個P點和Q點,記為Pi和Qi,求出各點在相機坐標系下的坐標。
由相對運動可知,機器人沿著其基坐標系的ZB軸運動可視為物體沿著機器人ZB軸運動,可知點Pi和Qi均為在光平面上的點,本文通過5次此類平移運動獲取P點和Q點各5個,利用最小二乘法將這些點擬合從而獲取光平面方程。在獲得光平面方程后,便可提取在線激光上照射之物體上的任意一點的像素坐標,通過坐標變換獲得此點在基坐標系下的坐標。
本文設計的是一種無需特制靶標的自動標定系統(tǒng),對于靶標的要求為易獲得、成本低、可重復使用,因此采用例如身份證或銀行卡等卡片狀物體,將其上的圖像信息作為特征。本文設計的系統(tǒng)由兩階段組成,兩階段提取的特征點不同。
第1階段為了提取多幅圖像中共有的特征點,本系統(tǒng)采用了圖像匹配的方法,將多幅圖像依次匹配,取出所有圖像共有的特征點匹配對中誤差最小的特征點作為共有特征點,然后利用基于單特征點的標定相機標定方法即可求出相機參數(shù)和手眼參數(shù)。第2階段提取激光發(fā)射器照射至非特制靶標的兩端的端點作為特征點。
由于相機在采集圖像過程中目標物體易受到其所在環(huán)境中光照因素和相機本身材質因素影響,在圖像傳輸過程中易受到電路構成方式和電子元件自身屬性影響從而產(chǎn)生噪聲,為了提升圖像匹配精度,獲得更好的匹配效果,則需要對圖像進行預處理,減小噪聲產(chǎn)生的影響。
首先,機器人在初始位置對靶標拍照,獲取到如圖6a所示的原圖像,圖像進行感興趣區(qū)域提取(ROI)作為匹配模板如圖6b所示,從而減少后續(xù)與機器人在其他位置獲取的圖像進行匹配的時間,然后對所有圖片采用拉普拉斯算子(Laplace)銳化處理,補償圖像輪廓,加強圖像的邊緣信息,然后使用限制對比度自適應直方圖均衡化(Clahe)處理[12],達到削弱噪點保留圖像局部信息的效果,圖像處理效果如圖6c所示。
(a) 原始圖像 (b) ROI (c) 銳化和增強后圖6 圖像處理效果圖
在第1階段中,利用BRISK特征匹配算法[13]進行圖像匹配,如圖7a所示,然后使用隨機抽樣一致性算法[14](RANSAC),對錯誤的匹配點進行刪除處理,使用漢明距離找到所有配對的匹配點中平均漢明距離最小的點,將此點作為共有特征點,匹配結果如圖7b所示。
(a) Brisk特征匹配 (b) 特征點圖7 圖像匹配
在第2階段中,采用Steger算法[15]提取出激光條紋的中心線,如圖8a所示,然后將中心線的像素點利用最小二乘法擬合為一條直線,計算連續(xù)兩個像素點之間的像素距離,與前一點之間距離最大的點即為激光發(fā)射器照射至靶標兩端的端點,如圖8b所示。
(a) Steger中心線提取 (b) 特征點圖8 激光條紋特征提取
本文設計的結構光視覺自動標定系統(tǒng),具體標定流程如下:
(1)調整機器人末端位姿,使相機垂直于平臺,設為初始位置。調節(jié)非特制靶標位置,檢驗激光發(fā)射器發(fā)射的線激光是否能夠與靶標邊緣產(chǎn)生兩個交點,相機的視野是否能夠清晰成像。
(2)機器人帶動結構光視覺裝置做第一組運動,如圖9所示,菱形點為初始位置,拍攝圖片后按圖中箭頭所示,做8次平移運動至圓形點位和3次改變末端姿態(tài)運動至三個矩形點位,對靶標拍照,并記錄拍照時機器人的姿態(tài)信息,然后回到初始位置。
圖9 機器人第一組運動點位示意圖 圖10 機器人第二組運動點位示意圖
(3)機器人帶動結構光視覺裝置做第二組運動,由上位機發(fā)出信號啟動線激光發(fā)射器,機器人做5次平移運動至矩形點位,拍攝圖片并記錄機器人的位移信息,然后回到初始位置,如圖10所示。
(4)將獲得的圖片進行處理,通過調用由OpenCV編寫的程序計算出相機參數(shù),手眼參數(shù)和光平面方程。
實驗選取醫(yī)療卡和身份證作為靶標1和靶標2,并分別進行了多次實驗,對多次實驗結果的參數(shù)取均值作為最終結果,如表1和表2所示。
表1 醫(yī)療卡作為靶標所得標定結果
表2 身份證作為靶標所得標定結果
由表1和表2可知,在更換靶標后標定結果較為接近,本系統(tǒng)對于具有清晰圖像信息的卡片類非特制靶標的選取有較強的適應性。
對于所構建的結構光視覺裝置的精度驗證方法如下:以制造精度為0.01 mm,寬度分別為30 mm,50 mm和60 mm的標準塊作為驗證對象,如圖11所示。
圖11 標準塊尺寸 圖12 驗證方法
控制機器人移動,使線結構光打到標準塊的邊緣上,線激光會與標準塊的兩頂點相交,如圖12所示,提取出M1和M2兩點在像素坐標系下的坐標,利用標定結果將兩點轉換為機器人基坐標系下的坐標。
改變標準塊位置,對3種標準塊分別進行多次實驗,計算出M1和M2在基坐標系下的坐標如表3所示。
由表3所得數(shù)據(jù),求出兩點之間距離并與標準塊尺寸進行比較,結果如表4所示。
表4 誤差計算結果
由表4可知,工件尺寸測量結果和工件的實際尺寸的平均絕對誤差在均在0.05左右,平均絕對誤差的均值為0.049 6 mm,可以滿足工業(yè)現(xiàn)場的工作需求,相對誤差較為穩(wěn)定,均值為0.11%,多次測量的標準偏差的均值為0.048 37,由此可得出本系統(tǒng)有較好的穩(wěn)定性和較高的精度。誤差來源在于特征點匹配時對特征點提取產(chǎn)生的誤差以及提取線激光平面與物體產(chǎn)生交點時的誤差,如何有效的減少這二者產(chǎn)生的誤差也是接下來的工作重點。
本文在提出了一種基于非特制靶標的結構光視覺自動標定方法的同時構建了相應的系統(tǒng)。利用非特制靶標圖像表面的圖像信息和機器人的姿態(tài)信息完成對結構光視覺裝置的標定,實驗結果表明,該系統(tǒng)對于非特制靶標的選擇有著較強的適應性,在利用30 mm、50 mm和60 mm的標準塊進行精度驗證時,均值為0.049 6 mm,相對誤差均值為0.11%,能夠滿足毫米級的檢測需求,且系統(tǒng)靶標容易獲得,節(jié)省了標定成本,簡化了標定流程,提高了標定效率,能適應如焊縫跟蹤、物體測量等工業(yè)現(xiàn)場對結構光視覺裝置的要求。