劉 幸,張愛軍*,曹小兵
(1.南京理工大學 機械工程學院,江蘇 南京 210000;2.無錫職業(yè)技術(shù)學院 控制技術(shù)學院,江蘇 無錫 214121)
基于視覺的測量技術(shù)是通過相機獲取圖像,來實現(xiàn)對工件尺寸或空間位姿進行測量的技術(shù)[1],具有非接觸、精度高、實時性強等優(yōu)點[2-3]。其中的視覺對準技術(shù)可實現(xiàn)相機平面與工件平面平行,兩者平行后可獲取無形變的工件圖像,以用于圖像處理。目前常見的實現(xiàn)視覺對準的方法有基于PNP(Perspective N Points)的位姿校正方式[4]、基于陀螺儀和激光靶標方式[5]等。該技術(shù)在噴涂、鉆孔、抓取等領(lǐng)域應(yīng)用廣泛,研究該技術(shù)具有重要意義[6]。
針對視覺對準技術(shù),很多學者都對此進行了大量研究。王中宇等學者[7]對傳統(tǒng)PNP位姿求解方法進行改進,根據(jù)工件上共面4個特征點之間位置關(guān)系,結(jié)合特征點的空間坐標和像素坐標求解出物體相對于相機的初始位姿,再利用優(yōu)化算法求解出了最佳位姿,該方法在求解精度和抗噪能力上都優(yōu)于傳統(tǒng)的EPNP算法、兩點一線算法和P3P算法。雷金周等人[8]通過特制的手眼標定板求解工業(yè)機器人末端執(zhí)行器與單目相機之間的手眼關(guān)系,并獲得了工件對準時的基準位姿,再利用PNP原理迭代調(diào)整機器人末端位姿從而實現(xiàn)了機械臂末端的對準軸與工件目標的精確對準,實驗表明該方法對準精度在0.2°以內(nèi)。高學海等學者[9]基于單目相機和激光測距儀提出了一種空間矩形平面的位姿測量算法,該算法根據(jù)矩形物體4個頂點的圖像坐標、激光點的圖像坐標和激光測距結(jié)果,即能計算出相機坐標系下物體的位姿,模擬實驗表明該算法的有效性和可行性。WANG Hai-liang[10]等學者設(shè)計了一種包含相機和激光測距儀的姿態(tài)測量裝置,推導(dǎo)了一種新的共線性方程形式,改進了單像空間后方交會算法,實現(xiàn)了目標物體相對于相機的姿態(tài)估計,模擬實驗表明該方法的姿態(tài)數(shù)據(jù)RMS誤差小于0.8°。
筆者提出一種基于激光測距儀的視覺對準技術(shù),該技術(shù)將相機和激光測距儀固定在機械臂末端,通過相關(guān)算法實現(xiàn)相機平面與目標平面對準功能。
基于激光測距儀的視覺對準系統(tǒng)[11]由六軸機器人、工業(yè)相機、激光測距儀、標定板、電腦等組成,該系統(tǒng)為Hand-In-Eye模型,在安裝相機和激光測距儀時保證兩者朝向相同。
其系統(tǒng)結(jié)構(gòu)示意圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)示意圖
圖1中各坐標系定義為:機器人基坐標系為OBXBYBZB,該坐標系位于機器人的基座處;相機坐標系為OCXCYCZC,原點位于相機透鏡中心,其中XCOCYC平面與成像面平行,ZC軸垂直于成像面朝外;機械臂末端法蘭坐標系為OHXHYHZH,原點位于法蘭盤中心,且XHOHYH平面與法蘭盤平面重合,ZH軸垂直法蘭盤平面朝外。
相機標定是對相機成像模型參數(shù)解算,即解算相機內(nèi)參、外參和畸變參數(shù)。目前廣泛使用的相機模型為小孔透視成像模型,如圖2所示。
圖2 相機成像模型M—世界坐標系一點;m—M點在成像面上的像點
圖2中,圖像像素坐標系為OPuv,原點位于圖像的左上角,圖像水平方向為u軸,豎直方向為v軸;圖像物理坐標系為Oxy,原點位于圖像上特定位置,x軸和y軸分別平行于u軸和v軸。相機坐標系的坐標原點OC與O的連線距離為相機的焦距f。
齊次坐標下相機的成像原理可表示為:
(1)
式中:(XwYwZw)—空間點M在世界坐標系的坐標;(u,v)—點M成像點的像素坐標;(u0,v0)—圖像平面的主點坐標;s—尺度因子;fu,fv—圖像在u軸和v軸的尺度因子,fu=f/dx,fv=f/dy;dx,dy—每一像素在x軸和y軸方向上的物理尺寸;R—外參旋轉(zhuǎn)矩陣;t—外參平移向量;M1、M2—相機內(nèi)外參數(shù)。
實際成像過程中,由于鏡頭加工和安裝精度等因素會帶來畸變誤差(其中相機徑向畸變對測量精度影響最大),這里采用兩階徑向畸變模型,其中K1、K2分別為一階和二階畸變系數(shù)。筆者采用張正友相機標定方法對上述參數(shù)進行求解[12]。
筆者研究的是Hand-In-Eye模型,對手眼關(guān)系進行標定就是求解相機坐標系與機械臂末端法蘭盤坐標系的位置關(guān)系。
手眼標定模型如圖3所示。
圖3 手眼標定模型
設(shè)棋盤格上第j個特征點在工件坐標系下的坐標為(Xoj,Yoj,Zoj),對應(yīng)在基坐標系下的坐標為(XBj,YBj,ZBj),則可建立如下等式:
(2)
由于物體上特征點坐標已知且固定,同時這些點在基坐標系下的坐標也固定,則結(jié)合式(2)可得相鄰兩次機械臂運動:
(3)
上式經(jīng)變形之后可得:
(4)
上式可轉(zhuǎn)換為:
AX=XB
(5)
式中:A—第i+1次到第i次的機械臂位姿的轉(zhuǎn)換關(guān)系;B—第i次到第i+1次的相機外參的轉(zhuǎn)換關(guān)系,采集多組數(shù)據(jù)利用TSAI方法求解該手眼矩陣[13]。
對機械臂末端固定的激光測距儀的位置標定,即求解末端法蘭坐標系下激光源的坐標和激光光束的單位方向向量[14]。筆者采用一種基于空間平面約束的激光位置標定方法,該方法設(shè)置機械臂運動規(guī)則,在每個運動狀態(tài)下構(gòu)建參數(shù)約束方程,利用激光距離數(shù)據(jù)和對應(yīng)的機械臂位姿數(shù)據(jù)求解激光標定參數(shù)的閉式解。由于激光測距儀測量的非線性誤差,建立激光測量非線性方程組利用LM法優(yōu)化求解出準確的位置標定參數(shù)。
將激光測距儀安裝在機械臂末端,將平整度良好的平面固定在工作臺上,激光測距儀標定模型如圖4所示。
圖4 激光測距儀標定模型
設(shè)在末端法蘭坐標系下激光源坐標r=[rX,rY,rZ]T,激光光束單位方向向量v=[vX,vY,vZ]T,對激光測距儀位置標定即求解這兩個參數(shù)。
設(shè)初始位置在OH坐標系下,標定平面的單位法向量為nH0,激光照射到平面上的點為xH0,激光測距儀測得距離為d0,則標定平面方程可表示為:
(6)
式中:b0—OH坐標系原點到標定平面的距離。
當機械臂末端發(fā)生旋轉(zhuǎn)和平移運動后,在第j位置的平面方程為:
(7)
在前后兩個OH坐標系下同一平面上的兩點關(guān)系為:
xH0=RH0jxHj+tH0j
(8)
式中:RH0j和tH0j—OH坐標系下從第j位置到起始位置的旋轉(zhuǎn)矩陣和平移列向量。
由OH和OL的關(guān)系,標定平面上的激光點在OH下可以表示為:
xHj=r+djv
(9)
由前述式子整理后可得:
(10)
其中:
(11)
(12)
式中:Rwj、twj—第j位置OH到OW的旋轉(zhuǎn)矩陣和平移向量,這些數(shù)據(jù)可由示教器數(shù)據(jù)轉(zhuǎn)換后獲得。
當機械臂末端僅有平移運動時,則RH0j=I,代入式(10)可得:
(13)
當機械臂處于起始位置時,tH0j=[0,0,0]T,代入式(12)可得:
(14)
由式(13,14)可得:
(15)
對于式(15),dj、d0和tH0j為已知量,求解nH0和p0需要機械臂末端在姿態(tài)不變的前提下至少平移1次。筆者采集多組數(shù)據(jù),利用最小二乘法構(gòu)建下式:
(16)
由上式的結(jié)果可得到關(guān)于激光方向向量的一個約束,至少還需構(gòu)建另外兩個約束,才可求解激光方向向量。設(shè)起始位置為第一姿態(tài),在該姿態(tài)下機器人保持末端姿態(tài)不變,僅平移j次(j≥2),使激光點投射到同一平面。同理,可以設(shè)置第二、第三姿態(tài),要求3次機械臂末端姿態(tài)不同,最好有較大變化。
可得到關(guān)于v的3組約束為:
(17)
求解出v之后,還有r和b0是未知的,由式(10,14)可得:
(18)
機械臂末端需要至少3次以上的旋轉(zhuǎn)和平移復(fù)合運動,才可求解上式激光源坐標r。
通過上述測量過程可得到初始激光標定參數(shù)r0和v0,當測量過程沒有噪聲和誤差時,上述解即為準確的標定結(jié)果。實際測量過程中,由于存在機械臂運動誤差、激光測量誤差等因素(這里主要考慮激光測距儀的非線性誤差),需要通過建立激光測量非線性方程優(yōu)化求解出準確的標定參數(shù)r和v。
由式(8-14)可得:
(19)
建立激光測距儀二階測量模型為:
(20)
聯(lián)立式(19,20),并代入?yún)?shù)初始值,利用優(yōu)化方法即可求解出最佳標定參數(shù)。
視覺對準即相機的光軸向量與工件平面法向量平行,從而使相機成像平面與工件平面平行,則拍攝的工件圖像不會產(chǎn)生形變。
筆者借助激光測距儀實現(xiàn)機械臂末端的相機與工件平面對準功能。該方法通過機械臂引導(dǎo)激光測距儀在工件平面投射多個激光點,由第2節(jié)的激光標定參數(shù)和激光測得距離值以及機械臂位姿,可得激光點在基坐標系下的坐標,利用隨機采樣一致性剔除錯誤點,并擬合工件平面方程以得到平面的單位法向量;根據(jù)手眼關(guān)系和對準關(guān)系建立非線性方程,利用LM法求解機器人的最佳姿態(tài)修正角,從而實現(xiàn)視覺對準的目的。
由機械臂位姿和對應(yīng)的激光距離可求得激光點在基坐標系下的值為:
Pwj=Hj(r+djv)
(21)
式中:Hj—機械臂法蘭坐標系到基坐標系的轉(zhuǎn)換矩陣;r,v—法蘭坐標系下激光源坐標列向量和激光光束單位方向列向量。
在工件平面上投射若干個激光點,可由式(21)求出這些點的基坐標值。設(shè)基坐標系下的工件平面方程為:
axwj+bywj+czwj+d=0
(22)
方程系數(shù)設(shè)為X=[abcd]T,則有齊次方程組為:
(23)
求解上式可得平面方程系數(shù)。由于激光點的噪聲等因素會產(chǎn)生異常點,這會給擬合的平面和后續(xù)對準帶來誤差,這里通過隨機采樣一致性剔除異常點,其具體做法是:
(4)完成上述步驟后可得最優(yōu)平面方程。
相比最小二乘法,該方法可有效去除噪聲點和異常點,具有良好的穩(wěn)定性。
(24)
(25)
式中:(α,β,γ)—末端法蘭坐標系繞基坐標系X軸、Y軸和Z軸的旋轉(zhuǎn)角度,c=cos,s=sin。
實現(xiàn)視覺對準只需考慮繞X軸和Y軸的旋轉(zhuǎn)角度即可,令γ=0°,建立非線性方程組:
(26)
通過示教器獲得初始姿態(tài)[α0,β0,0],對上式利用優(yōu)化方法進行迭代,求解出機器人的姿態(tài)修正角。
相機采用Cognex公司的CAM-CIC-6000-25-G相機,分辨率為3 072×2 048;鏡頭為MORITEX的f=12 mm鏡頭,視野350 mm×240 mm,工作距離400 mm;激光測距儀為基恩士的LK-500,測距范圍250 mm~450 mm,線性誤差為±0.02%;重復(fù)精度為2 μm;機器人為UR10和UR5的6軸機器人,重復(fù)精度±0.1 mm;棋盤格精為±0.03 mm。
標定實驗裝置圖如圖5所示。
圖5 標定實驗裝置圖
筆者在工作臺上放置棋盤格,引導(dǎo)機器人使相機從16個不同方位對棋盤格進行拍照,保存機械臂位姿數(shù)據(jù)和棋盤格圖片,利用標定算法分別對相機標定和手眼標定。
相機內(nèi)參數(shù)標定如表1所示。
表1 相機內(nèi)參標定
對棋盤格角點進行重投影,計算重投影后的角點像素坐標和實際像素坐標的歐式距離,可得相機標定誤差為0.077 8像素,表明該標定具有較高精度。
手眼標定結(jié)果為:
(27)
為了驗證手眼標定精度,筆者將每個位姿下棋盤格角點的世界坐標統(tǒng)一轉(zhuǎn)換到基坐標系下,計算不同位姿下對應(yīng)角點基坐標值的方差,可得手眼標定誤差為0.133 mm,可見手眼標定具有較高精度。
在工作臺上固定放置一個平面度良好的平板,設(shè)置機械臂3個移動狀態(tài),每個狀態(tài)下機械臂末端保持姿態(tài)不變,只在x、y或z這3個方向上平移運動,但3個狀態(tài)的姿態(tài)需有較大變化,引導(dǎo)機械臂使激光測距儀投射激光點到平板上,分別采集10組激光距離數(shù)據(jù)和對應(yīng)的機械臂位姿數(shù)據(jù);然后使機械臂末端同時有旋轉(zhuǎn)和平移運動,再采集10組對應(yīng)數(shù)據(jù)。
將采集的數(shù)據(jù)代入第2節(jié)的激光標定算法,可得激光標定參數(shù),如表2所示。
表2 激光標定參數(shù)
將標定參數(shù)代入標定方程,通過反解可得到真實激光距離,將該距離與激光測距儀測得距離進行比較,可得標定誤差。筆者采集50組數(shù)據(jù)進行驗證,結(jié)果表明激光標定誤差在0.31 mm以內(nèi),則激光標定精度高。
利用UR5和UR10兩臺機器人來完成視覺對準實驗,實驗裝置圖如圖6所示。
圖6 視覺對準實驗裝置圖
圖6中,UR10機器人末端固定相機和激光測距儀,UR5機器人末端固定一個平面工件,平面工件上設(shè)置4個特征點,它們分布在邊長為100 mm的正方形的4個頂點。
測試之前先對兩個機器人的位置進行標定,即通過設(shè)置多個空間公共點分別對兩機器人TCP標定,進而實現(xiàn)兩基坐標系的標定。
UR10上的激光測距儀投射激光點到UR5末端的工件平面上,利用前述視覺對準算法求解姿態(tài)修正角;通過移動UR5末端位姿來改變工件平面的姿態(tài),根據(jù)兩次示教器的位姿數(shù)據(jù),可得到第i次的姿態(tài)相對變化量真值Ti,利用筆者提出的視覺對準算法,解算對應(yīng)的姿態(tài)變化量測量值Li,對工件平面4個特征點,利用PNP原理求解對應(yīng)的姿態(tài)變化量測量值為Pi,將真實值和兩種方法的測量值統(tǒng)一到同一個基坐標系下進行比較,可得到各自的偏差值。
該測試沿機械臂x方向10°范圍內(nèi)設(shè)置10個位姿點,對每個位姿點采集5組數(shù)據(jù)取均值后進行驗證。
PNP方法視覺對準曲線圖如圖7所示。
圖7 PNP方法視覺對準曲線圖
本研究方法視覺對準曲線圖如圖8所示。
圖8 本文方法視覺對準曲線圖
由圖(7,8)的實驗數(shù)據(jù)可知:在10°范圍內(nèi),PNP方法的位姿校正精度在1°以內(nèi),而本研究視覺對準算法精度在0.6°以內(nèi)。視覺對準精度測標準不確定度為0.119°,置信概率為95%的擴展不確定度為0.216°。由此可見,本研究方法可滿足較高的視覺對準精度要求,且具有良好的穩(wěn)定性。產(chǎn)生誤差的原因主要是機械臂移動誤差、視覺標定誤差、激光標定誤差等。
筆者提出了一種基于激光測距儀的機械臂末端視覺對準技術(shù),該技術(shù)首先求解了視覺系統(tǒng)中相機標定和手眼標定;接著建立了基于平面約束的激光測距儀標定模型,給出了激光標定參數(shù)閉式解與優(yōu)化解的解法;然后介紹了視覺對準原理,推導(dǎo)了姿態(tài)修正角的求解過程;最后搭建實驗平臺分別進行了標定和對準實驗。
實驗結(jié)果表明:視覺對準算法對10°范圍內(nèi)的姿態(tài)對準誤差在0.6°以內(nèi),實現(xiàn)了較高且穩(wěn)定的校正。