李 龍,白瑞林,吉 峰,郭新年
LILong1,BAIRuilin1,JIFeng2,GUO Xinnian1
1.江南大學(xué) 輕工過程先進(jìn)控制教育部重點(diǎn)實(shí)驗(yàn)室,江蘇 無錫 214122
2.無錫信捷電氣有限公司,江蘇 無錫 214072
1.Key Laboratory of Advanced Process Control for Light Industry(Ministry of Education),Jiangnan University,Wuxi,Jiangsu 214122,China
2.Xinje Electronic Co.,Ltd,Wuxi,Jiangsu 214072,China
視覺測(cè)量與控制在機(jī)器人領(lǐng)域占有重要的地位。在工業(yè)機(jī)器人領(lǐng)域,視覺主要用于目標(biāo)和機(jī)器人末端位姿的測(cè)量以及對(duì)機(jī)器人末端位姿的控制,其典型應(yīng)用包括焊接、噴漆、裝配、搬運(yùn)等作業(yè)。視覺測(cè)量與控制的關(guān)鍵部分就是標(biāo)定技術(shù)。
劉蘇宜等[1]提出了一種同時(shí)標(biāo)定攝像機(jī)和機(jī)器人的方法。依據(jù)機(jī)器人手眼矩陣和機(jī)器人手爪對(duì)基坐標(biāo)系位姿矩陣之間的特定關(guān)系,一次標(biāo)定求解出攝像機(jī)參數(shù)和機(jī)器人手眼關(guān)系矩陣。謝凱等[2]將BP神經(jīng)網(wǎng)絡(luò)與線性標(biāo)定方法結(jié)合,不僅標(biāo)定了結(jié)構(gòu)光三維檢測(cè)CCD相機(jī)的內(nèi)外參數(shù),而且利用神經(jīng)網(wǎng)絡(luò)的非線性逼近能力,克服了鏡頭徑向畸變、切向畸變等引起的系統(tǒng)非線性誤差;Jan Heller[3]等提出了一種手眼標(biāo)定新方法。在使用校準(zhǔn)靶標(biāo)不可行的情況下,采用結(jié)構(gòu)的運(yùn)動(dòng)方式進(jìn)行手眼標(biāo)定;賀俊吉等人[4]探討了被多種噪聲干擾的光條圖像的處理和精確提取光條中心的方法,給出了一種消除環(huán)境干擾的濾波模板并實(shí)驗(yàn)驗(yàn)證了其濾波效果,使光條中心的提取精度達(dá)到更高。
本文在充分分析結(jié)構(gòu)光視覺引導(dǎo)系統(tǒng)的基礎(chǔ)上,提出了一種新的標(biāo)定方法,采用平面靶標(biāo),充分利用實(shí)驗(yàn)數(shù)據(jù),簡化標(biāo)定流程,控制機(jī)械臂以3個(gè)以上任意位姿拍攝固定靶標(biāo),即可實(shí)現(xiàn)相機(jī)標(biāo)定、線激光光平面方程標(biāo)定和手眼矩陣的標(biāo)定,為精確跟蹤提供了充分條件。
基于結(jié)構(gòu)光視覺傳感器引導(dǎo)的機(jī)器人跟蹤系統(tǒng)的標(biāo)定流程由相機(jī)標(biāo)定、線激光光平面方程標(biāo)定、手眼變換矩陣標(biāo)定以及工件偏移標(biāo)定四部分組成,控制機(jī)械臂以3個(gè)以上任意位姿拍攝固定靶標(biāo),利用得到的圓靶標(biāo)圓心像素坐標(biāo)以及其與世界坐標(biāo)的匹配數(shù)據(jù)完成相機(jī)內(nèi)外參計(jì)算,利用得到的外參和靶標(biāo)圖片提取的線激光線方程標(biāo)定出激光光平面方程[5],利用每兩次機(jī)械臂移動(dòng)中的外參變化和機(jī)械臂位姿變化構(gòu)造AX=XB方程,并利用四元數(shù)法[6]求解手眼變換矩陣H既方程中的X。
自制靶標(biāo)如圖1所示,其同時(shí)適用于相機(jī)標(biāo)定和手眼變換矩陣標(biāo)定過程中,并且其匹配方法簡單,匹配結(jié)果穩(wěn)定,能有效簡化整個(gè)系統(tǒng)的標(biāo)定復(fù)雜度。
圖1 自制靶標(biāo)
具體匹配步驟如下:
(1)實(shí)時(shí)采集帶圓點(diǎn)靶標(biāo)圖像,采用大津法對(duì)圖像二值化;對(duì)圖像進(jìn)行閉運(yùn)算,去除噪聲干擾;利用聚類算法,對(duì)圖像中目標(biāo)進(jìn)行分類。
(2)計(jì)算目標(biāo)周長C和面積S,利用圓形度表達(dá)式e=C2/(2×π×S),區(qū)分圓點(diǎn)與干擾。
(3)采用重心法求取每一個(gè)圓點(diǎn)的圓心坐標(biāo)。
(4)靶標(biāo)為自制靶標(biāo),相鄰兩行之間的行距為15 mm,同一行中相鄰的2圓心點(diǎn)距離為10 mm,在第一行的第一個(gè)點(diǎn)行方向上5 mm處有一個(gè)額外的圓,首先對(duì)所有圓心點(diǎn)進(jìn)行排序,排序過程如下:
①找出所有有效圓點(diǎn)的圓心距離最小的兩個(gè)點(diǎn),其中離所有圓心點(diǎn)均值中心遠(yuǎn)的圓的定義為0點(diǎn),另一個(gè)定義為1點(diǎn)。
②設(shè)置0,1點(diǎn)為已匹配點(diǎn),在未匹配點(diǎn)中找與1點(diǎn)最近的點(diǎn)定義2點(diǎn)。
③設(shè)置2點(diǎn)為已匹配點(diǎn),在未匹配點(diǎn)中找與2點(diǎn)最近的點(diǎn)定義3點(diǎn),…以此類推直至把所有點(diǎn)都找全,完成所有圓心點(diǎn)的排序。
(5)根據(jù)上述圓靶標(biāo)圖像中圓點(diǎn)排序,與給定圓靶標(biāo)信息,完成圓靶標(biāo)圖像中圓心點(diǎn)像素坐標(biāo)與世界坐標(biāo)的匹配。
結(jié)構(gòu)光視覺傳感器標(biāo)定主要有相機(jī)標(biāo)定和激光光平面方程標(biāo)定兩部分組成,其中相機(jī)標(biāo)定采用張正友標(biāo)定法[7],以不同位姿拍攝3幅以上靶標(biāo)圖片,進(jìn)行靶標(biāo)匹配后,用張正友方法求取相機(jī)內(nèi)參并同時(shí)求得相機(jī)外參。
在拍攝每一幅靶標(biāo)圖片的位姿后,打開線激光,拍攝一幅帶激光光條的靶標(biāo)圖片,提取光條,細(xì)化光條,通過Hough變換求出光條線方程。結(jié)合上一步得到的外參矩陣?yán)猛队翱臻g中兩條激光交線及其相關(guān)聯(lián)的平面的對(duì)偶關(guān)系就可以得到線激光光平面在相機(jī)坐標(biāo)系下的平面方程。
基于交線圖像的激光平面標(biāo)定的原理如下,圓靶標(biāo)平面在世界坐標(biāo)系下的平面方程可以表示為(π1,x)=0,式中:π1=[0,0,1,0]T,利用第一步得到的外參數(shù)矩陣RT,計(jì)算得到在相機(jī)坐標(biāo)系下圓靶標(biāo)平面方程為(RT-Tπ1,x′)=0 ;其中的 x 與 x′分別為靶標(biāo)平面在世界坐標(biāo)系和相機(jī)坐標(biāo)系下的平面法向坐標(biāo)向量。
在相機(jī)坐標(biāo)系中,設(shè) w、wi、wj、λi、λj分別代表激光平面法向坐標(biāo)向量、第i個(gè)平面靶標(biāo)的法向坐標(biāo)向量、第 j個(gè)平面靶標(biāo)的法向坐標(biāo)向量、第i個(gè)平面靶標(biāo)內(nèi)的激光交線圖像的坐標(biāo)向量、第 j個(gè)平面靶標(biāo)內(nèi)的激光交線圖像的坐標(biāo)向量。注意第i個(gè)平面靶標(biāo)圖像上的激光交線圖像的方程 λi(像素坐標(biāo)系下)與 λi(相機(jī)坐標(biāo)系下)可以直接計(jì)算出來:
其中A為相機(jī)內(nèi)參矩陣。
投影空間中兩條激光交線及其相關(guān)聯(lián)的平面的相互關(guān)系的對(duì)偶性表示如圖2所示。
圖2 兩條激光交線在投影空間的對(duì)偶表示
圖2 中,要標(biāo)定的激光平面坐標(biāo)w在投影空間的對(duì)偶表示就是兩條激光交線的交點(diǎn)。由于誤差的影響,兩條激光交線在空間并不相交,因此用距離兩條激光線最近的點(diǎn)表示w。而距離兩條激光線最近的點(diǎn)位于兩條激光線的公垂線上。因此,計(jì)算激光平面坐標(biāo)為:
由于公垂線與兩條激光線分別垂直,因此內(nèi)積:
因此,可求得:
式中:D是一個(gè)2×2矩陣,b是一個(gè)二維向量,定義如下:
將式(7)(8)的值帶入式(2)和(3),就會(huì)求得激光平面方程坐標(biāo)w。
為了提高標(biāo)定的精度,通常情況下選擇多幅位于不同位姿的平面靶標(biāo)圖像進(jìn)行標(biāo)定。其中任意兩幅就標(biāo)定了一個(gè)光平面方程坐標(biāo)。因此n個(gè)平面靶標(biāo)圖像,則可以標(biāo)定個(gè)光平面方程標(biāo)定參數(shù)。對(duì)每項(xiàng)排序,去除最大和最小值并求剩下的平均值來減少標(biāo)定的光平面參數(shù)的誤差。
本跟蹤系統(tǒng)采用Eye-in-Hand系統(tǒng),即視覺傳感器固定在機(jī)械臂末端,相機(jī)坐標(biāo)系相對(duì)于機(jī)械臂末端坐標(biāo)系的關(guān)系是固定的。因此,對(duì)于Eye-in-Hand系統(tǒng),手眼標(biāo)定時(shí)求取的是相機(jī)坐標(biāo)系相對(duì)于機(jī)械臂末端坐標(biāo)系的關(guān)系。
對(duì)于手眼關(guān)系矩陣,直接測(cè)量幾乎是不可能的,如圖3,通過改變機(jī)械臂位姿,根據(jù)坐標(biāo)變換鏈的封閉性可得:
其中TA1,TA2表示機(jī)器人變換位姿前后機(jī)械臂末端坐標(biāo)系相對(duì)于機(jī)械臂基坐標(biāo)系的位姿變換矩陣;TB1,TB2表示機(jī)器人變換位姿前后標(biāo)靶所在世界坐標(biāo)系相對(duì)于相機(jī)坐標(biāo)系的齊次變換矩陣。
圖3 手眼關(guān)系圖
2.3.1 四元數(shù)與旋轉(zhuǎn)矩陣變換
采用四元數(shù)可以描述通用旋轉(zhuǎn)變換[8]。四元數(shù)是實(shí)數(shù)和復(fù)數(shù)以及三維空間點(diǎn)矢量的擴(kuò)展,由實(shí)數(shù)部分s∈R和矢量部分v=(x,y,z)∈R3組成。四元數(shù)表示形式為:
式中,i2=j2=k2=ijk=-1,ij=k,jk=i,ki=j,ji=-k,kj=-i,ik=-j。當(dāng)||q||=1時(shí),稱q為單位四元數(shù)。四元數(shù)可以描述三維剛體的姿態(tài)和旋轉(zhuǎn)變換如圖4,其理論基礎(chǔ)是三維空間中繞單位軸n旋轉(zhuǎn)2θ角可以用四元數(shù)q=[s,v]=[cosθ,sinθn]來描述。
圖4 四元數(shù)描述三維旋轉(zhuǎn)示意圖
與單位四元數(shù)q=[s,(a,b,c)]對(duì)應(yīng)的姿態(tài)矩陣為:
式中:
2.3.2 利用四元數(shù)法求解AX=XB
齊次變換矩陣A和B為已知參數(shù),這里采用兩步法求解該方程,把上式齊次矩陣分解成旋轉(zhuǎn)和平移兩部分:
展開得:
令 qA=[a0,aT]T,qx=[x0,xT]T,qB=[b0,bT]T為 RA,Rx,RB對(duì)應(yīng)的四元數(shù),方程RARx=RxRB可以表示為:
利用四元數(shù)乘法展開上式得:
因?yàn)?/p>
得到a0=b0,由上式可得:
令 z=x/x0,則
實(shí)驗(yàn)過程中可以利用等式a0=b0檢查測(cè)試數(shù)據(jù)的準(zhǔn)確性,并進(jìn)行錯(cuò)誤數(shù)據(jù)的剔除。
式(21)為形如Gz=c的形式,唯一的未確定z至少需要機(jī)械臂做兩次運(yùn)動(dòng)。且兩次運(yùn)動(dòng)的旋轉(zhuǎn)軸不能平行。對(duì)于多次運(yùn)動(dòng),使用最小二乘法確定z之后利用約束條件||qx||=1,即可得到qx。將得到的旋轉(zhuǎn)矩陣代入式(16)得到平移向量tx。
實(shí)驗(yàn)采用的是DENSO 6軸機(jī)械臂,通過發(fā)送六軸位姿來控制機(jī)械臂,在焊縫跟蹤實(shí)驗(yàn)中,機(jī)械臂末端需要夾持焊槍,需要對(duì)末端工件即焊槍偏移進(jìn)行修正,機(jī)械臂位姿參數(shù)可以分兩部分,旋轉(zhuǎn)部分和平移部分,所提取的焊縫特征點(diǎn)三維數(shù)據(jù)最后穩(wěn)定的保存格式是在機(jī)械臂基坐標(biāo)系下的坐標(biāo),工件的偏移修正必須轉(zhuǎn)換到相應(yīng)旋轉(zhuǎn)位姿下的機(jī)械臂基坐標(biāo)系的偏移向量。
具體修正方法如下:
(1)在靶標(biāo)所在世界坐標(biāo)系下定義一個(gè)預(yù)設(shè)點(diǎn),通過之前計(jì)算得到的相機(jī)內(nèi)參,外參,手眼變換矩陣以及當(dāng)前機(jī)械臂位姿矩陣,計(jì)算得到預(yù)設(shè)點(diǎn)在機(jī)械臂基坐標(biāo)下的坐標(biāo)值x。
(2)控制機(jī)械臂點(diǎn)觸預(yù)設(shè)點(diǎn),讀取當(dāng)前機(jī)械臂位姿,通過當(dāng)前機(jī)械臂位姿得到機(jī)械臂末端坐標(biāo)系與機(jī)械臂基坐標(biāo)系的轉(zhuǎn)換矩陣T6。
(4)使用時(shí)根據(jù)焊縫特征點(diǎn)在圖像中所處的位置以及焊縫特征點(diǎn)所經(jīng)過曲線切線方向,調(diào)整機(jī)械臂位姿的旋轉(zhuǎn)部分,可以得到當(dāng)前旋轉(zhuǎn)位姿下機(jī)械臂末端坐標(biāo)系與機(jī)械臂基坐標(biāo)旋轉(zhuǎn)變換矩陣T6'。
(5)x1=R6'*x′,通過上式計(jì)算得到工件在機(jī)械臂當(dāng)前旋轉(zhuǎn)姿態(tài)下的基坐標(biāo)偏移量x1,R6'為T6'中的旋轉(zhuǎn)部分。
本實(shí)驗(yàn)標(biāo)定過程理論測(cè)試操作在Win7系統(tǒng)的MATLAB 2009a平臺(tái)上完成和實(shí)現(xiàn),實(shí)時(shí)跟蹤在VS2010平臺(tái)上完成,computar工業(yè)鏡頭,12 mm焦距,感光元件CCD 640×480。
標(biāo)定實(shí)驗(yàn)流程如圖5所示。
圖5 標(biāo)定流程圖
測(cè)試相機(jī)從各個(gè)角度拍攝靶標(biāo)得到的匹配結(jié)果如圖6所示,其中圖(a)~(d)為從各個(gè)角度拍攝的靶標(biāo)圖片,(a1)~(d1)為對(duì)應(yīng)的匹配結(jié)果圖,其中藍(lán)點(diǎn)表示各個(gè)圓心點(diǎn),紅線表示圓心點(diǎn)排序示意。實(shí)驗(yàn)結(jié)果表明在相機(jī)光軸與靶標(biāo)平面法向向量夾角小于45°時(shí)匹配結(jié)果魯棒性強(qiáng)。
使用在計(jì)算手眼矩陣時(shí)得到的機(jī)械臂基坐標(biāo)與由靶標(biāo)定義的世界坐標(biāo)系的轉(zhuǎn)換矩陣。測(cè)試靶標(biāo)上的點(diǎn)在機(jī)械臂基坐標(biāo)系下的坐標(biāo)計(jì)算值與實(shí)際值的誤差。實(shí)驗(yàn)數(shù)據(jù)如表1。
其中機(jī)械臂末端旋轉(zhuǎn)矩陣表示方式為ZYX,工件偏差T7=[-42.41,0.82,350.33],當(dāng)前旋轉(zhuǎn)位姿參數(shù)為 Rx=177.36,Ry=0.26,Rz=75.18,測(cè)試最大誤差±0.28 mm。
圖6 匹配結(jié)果圖
結(jié)合標(biāo)定好的相機(jī)內(nèi)參,線激光光平面方程,手眼矩陣,工件偏移參數(shù),對(duì)三維階梯形數(shù)據(jù)進(jìn)行測(cè)試,測(cè)試結(jié)果如表2,其中最大誤差為±1.16 mm。
多次實(shí)驗(yàn)結(jié)果表明采用光軸繞靶標(biāo)平面法向量轉(zhuǎn)動(dòng),所得到的實(shí)驗(yàn)數(shù)據(jù)精度較高。
為實(shí)現(xiàn)工業(yè)現(xiàn)場(chǎng)三位特征點(diǎn)的跟蹤,提出一種基于結(jié)構(gòu)光視覺,六軸機(jī)械臂的整體標(biāo)定方法,主要特點(diǎn)是:
(1)采用自制圓靶標(biāo),簡化圓心點(diǎn)提取和特征點(diǎn)匹配算法,提高匹配算法的魯棒性,極大減少運(yùn)算時(shí)間。
(2)改進(jìn)利用對(duì)偶關(guān)系求取線激光光平面方程的算法,避免錯(cuò)誤數(shù)據(jù)對(duì)標(biāo)定結(jié)果的影響。
(3)利用四元數(shù)求解AX=XB方程,并創(chuàng)新采用四元數(shù)錯(cuò)誤數(shù)據(jù)剔除算法,使得標(biāo)定結(jié)果受誤差干擾大幅度減小。
(4)針對(duì)焊接工件的不確定性,通過簡單的點(diǎn)觸方法,修正在基坐標(biāo)下的工件偏移。
實(shí)際測(cè)試表明:該方法魯棒性好,能得到穩(wěn)定的匹配結(jié)果,標(biāo)定得到的相機(jī)內(nèi)參,手眼矩陣和線激光光平面方程穩(wěn)定,平面跟蹤可達(dá)到±0.3 mm精度,三維跟蹤可達(dá)到±1.2 mm精度,滿足工業(yè)現(xiàn)場(chǎng)應(yīng)用要求。
表1 平面測(cè)試數(shù)據(jù)
表2 三維測(cè)試數(shù)據(jù)
[1]劉蘇宜,王國榮,石永華.激光視覺機(jī)器人焊接中攝像機(jī)和手眼的同時(shí)標(biāo)定[J].華南理工大學(xué)學(xué)報(bào),2008,36(2):75-77.
[2]謝凱,劉宛予.結(jié)構(gòu)光三維視覺檢測(cè)系統(tǒng)的標(biāo)定方法研究[J].光電子·激光,2007,18(3):369-371.
[3]Heller J,Havlena M.Structure-from-motion based hand-eye calibration using L∞minimization[C]//Computer Vision and Pattern Recognition(CVPR),2011:3497-3503.
[4]賀俊吉,張廣軍.結(jié)構(gòu)光三維視覺檢測(cè)中光條圖像處理方法研究[J].北京航空航天大學(xué)學(xué)報(bào),2003,29(7):593-597.
[5]畢德學(xué),劉方滔,薛強(qiáng),等.基于激光交線的結(jié)構(gòu)光視覺傳感器現(xiàn)場(chǎng)標(biāo)定新方法[J].儀器儀表學(xué)報(bào),2009,30(8):1697-1701.
[6]李愛國.結(jié)構(gòu)光視覺測(cè)量機(jī)器人標(biāo)定技術(shù)研究[D].大連:大連海事大學(xué),2009.
[7]孟海崗.基于平面約束的CCD相機(jī)標(biāo)定方法改進(jìn)[D].長春:吉林大學(xué),2009.
[8] 劉俊峰.三維轉(zhuǎn)動(dòng)的四元數(shù)表示[J].大學(xué)物理,2004,23(4):39-43.