劉 幸,張愛軍*,曹小兵
(1.南京理工大學 機械工程學院,江蘇 南京 210000;2.無錫職業技術學院 控制技術學院,江蘇 無錫 214121)
基于視覺的測量技術是通過相機獲取圖像,來實現對工件尺寸或空間位姿進行測量的技術[1],具有非接觸、精度高、實時性強等優點[2-3]。其中的視覺對準技術可實現相機平面與工件平面平行,兩者平行后可獲取無形變的工件圖像,以用于圖像處理。目前常見的實現視覺對準的方法有基于PNP(Perspective N Points)的位姿校正方式[4]、基于陀螺儀和激光靶標方式[5]等。該技術在噴涂、鉆孔、抓取等領域應用廣泛,研究該技術具有重要意義[6]。
針對視覺對準技術,很多學者都對此進行了大量研究。王中宇等學者[7]對傳統PNP位姿求解方法進行改進,根據工件上共面4個特征點之間位置關系,結合特征點的空間坐標和像素坐標求解出物體相對于相機的初始位姿,再利用優化算法求解出了最佳位姿,該方法在求解精度和抗噪能力上都優于傳統的EPNP算法、兩點一線算法和P3P算法。雷金周等人[8]通過特制的手眼標定板求解工業機器人末端執行器與單目相機之間的手眼關系,并獲得了工件對準時的基準位姿,再利用PNP原理迭代調整機器人末端位姿從而實現了機械臂末端的對準軸與工件目標的精確對準,實驗表明該方法對準精度在0.2°以內。高學海等學者[9]基于單目相機和激光測距儀提出了一種空間矩形平面的位姿測量算法,該算法根據矩形物體4個頂點的圖像坐標、激光點的圖像坐標和激光測距結果,即能計算出相機坐標系下物體的位姿,模擬實驗表明該算法的有效性和可行性。WANG Hai-liang[10]等學者設計了一種包含相機和激光測距儀的姿態測量裝置,推導了一種新的共線性方程形式,改進了單像空間后方交會算法,實現了目標物體相對于相機的姿態估計,模擬實驗表明該方法的姿態數據RMS誤差小于0.8°。
筆者提出一種基于激光測距儀的視覺對準技術,該技術將相機和激光測距儀固定在機械臂末端,通過相關算法實現相機平面與目標平面對準功能。
基于激光測距儀的視覺對準系統[11]由六軸機器人、工業相機、激光測距儀、標定板、電腦等組成,該系統為Hand-In-Eye模型,在安裝相機和激光測距儀時保證兩者朝向相同。
其系統結構示意圖如圖1所示。

圖1 系統結構示意圖
圖1中各坐標系定義為:機器人基坐標系為OBXBYBZB,該坐標系位于機器人的基座處;相機坐標系為OCXCYCZC,原點位于相機透鏡中心,其中XCOCYC平面與成像面平行,ZC軸垂直于成像面朝外;機械臂末端法蘭坐標系為OHXHYHZH,原點位于法蘭盤中心,且XHOHYH平面與法蘭盤平面重合,ZH軸垂直法蘭盤平面朝外。
相機標定是對相機成像模型參數解算,即解算相機內參、外參和畸變參數。目前廣泛使用的相機模型為小孔透視成像模型,如圖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—外參旋轉矩陣;t—外參平移向量;M1、M2—相機內外參數。
實際成像過程中,由于鏡頭加工和安裝精度等因素會帶來畸變誤差(其中相機徑向畸變對測量精度影響最大),這里采用兩階徑向畸變模型,其中K1、K2分別為一階和二階畸變系數。筆者采用張正友相機標定方法對上述參數進行求解[12]。
筆者研究的是Hand-In-Eye模型,對手眼關系進行標定就是求解相機坐標系與機械臂末端法蘭盤坐標系的位置關系。
手眼標定模型如圖3所示。

圖3 手眼標定模型

設棋盤格上第j個特征點在工件坐標系下的坐標為(Xoj,Yoj,Zoj),對應在基坐標系下的坐標為(XBj,YBj,ZBj),則可建立如下等式:
(2)
由于物體上特征點坐標已知且固定,同時這些點在基坐標系下的坐標也固定,則結合式(2)可得相鄰兩次機械臂運動:
(3)
上式經變形之后可得:
(4)

上式可轉換為:
AX=XB
(5)
式中:A—第i+1次到第i次的機械臂位姿的轉換關系;B—第i次到第i+1次的相機外參的轉換關系,采集多組數據利用TSAI方法求解該手眼矩陣[13]。
對機械臂末端固定的激光測距儀的位置標定,即求解末端法蘭坐標系下激光源的坐標和激光光束的單位方向向量[14]。筆者采用一種基于空間平面約束的激光位置標定方法,該方法設置機械臂運動規則,在每個運動狀態下構建參數約束方程,利用激光距離數據和對應的機械臂位姿數據求解激光標定參數的閉式解。由于激光測距儀測量的非線性誤差,建立激光測量非線性方程組利用LM法優化求解出準確的位置標定參數。
將激光測距儀安裝在機械臂末端,將平整度良好的平面固定在工作臺上,激光測距儀標定模型如圖4所示。

圖4 激光測距儀標定模型
設在末端法蘭坐標系下激光源坐標r=[rX,rY,rZ]T,激光光束單位方向向量v=[vX,vY,vZ]T,對激光測距儀位置標定即求解這兩個參數。
設初始位置在OH坐標系下,標定平面的單位法向量為nH0,激光照射到平面上的點為xH0,激光測距儀測得距離為d0,則標定平面方程可表示為:
(6)
式中:b0—OH坐標系原點到標定平面的距離。
當機械臂末端發生旋轉和平移運動后,在第j位置的平面方程為:
(7)
在前后兩個OH坐標系下同一平面上的兩點關系為:
xH0=RH0jxHj+tH0j
(8)
式中:RH0j和tH0j—OH坐標系下從第j位置到起始位置的旋轉矩陣和平移列向量。
由OH和OL的關系,標定平面上的激光點在OH下可以表示為:
xHj=r+djv
(9)
由前述式子整理后可得:
(10)
其中:
(11)
(12)
式中:Rwj、twj—第j位置OH到OW的旋轉矩陣和平移向量,這些數據可由示教器數據轉換后獲得。
當機械臂末端僅有平移運動時,則RH0j=I,代入式(10)可得:
(13)
當機械臂處于起始位置時,tH0j=[0,0,0]T,代入式(12)可得:
(14)
由式(13,14)可得:
(15)

對于式(15),dj、d0和tH0j為已知量,求解nH0和p0需要機械臂末端在姿態不變的前提下至少平移1次。筆者采集多組數據,利用最小二乘法構建下式:
(16)
由上式的結果可得到關于激光方向向量的一個約束,至少還需構建另外兩個約束,才可求解激光方向向量。設起始位置為第一姿態,在該姿態下機器人保持末端姿態不變,僅平移j次(j≥2),使激光點投射到同一平面。同理,可以設置第二、第三姿態,要求3次機械臂末端姿態不同,最好有較大變化。
可得到關于v的3組約束為:
(17)
求解出v之后,還有r和b0是未知的,由式(10,14)可得:
(18)
機械臂末端需要至少3次以上的旋轉和平移復合運動,才可求解上式激光源坐標r。
通過上述測量過程可得到初始激光標定參數r0和v0,當測量過程沒有噪聲和誤差時,上述解即為準確的標定結果。實際測量過程中,由于存在機械臂運動誤差、激光測量誤差等因素(這里主要考慮激光測距儀的非線性誤差),需要通過建立激光測量非線性方程優化求解出準確的標定參數r和v。
由式(8-14)可得:
(19)

建立激光測距儀二階測量模型為:
(20)
聯立式(19,20),并代入參數初始值,利用優化方法即可求解出最佳標定參數。
視覺對準即相機的光軸向量與工件平面法向量平行,從而使相機成像平面與工件平面平行,則拍攝的工件圖像不會產生形變。
筆者借助激光測距儀實現機械臂末端的相機與工件平面對準功能。該方法通過機械臂引導激光測距儀在工件平面投射多個激光點,由第2節的激光標定參數和激光測得距離值以及機械臂位姿,可得激光點在基坐標系下的坐標,利用隨機采樣一致性剔除錯誤點,并擬合工件平面方程以得到平面的單位法向量;根據手眼關系和對準關系建立非線性方程,利用LM法求解機器人的最佳姿態修正角,從而實現視覺對準的目的。
由機械臂位姿和對應的激光距離可求得激光點在基坐標系下的值為:
Pwj=Hj(r+djv)
(21)
式中:Hj—機械臂法蘭坐標系到基坐標系的轉換矩陣;r,v—法蘭坐標系下激光源坐標列向量和激光光束單位方向列向量。
在工件平面上投射若干個激光點,可由式(21)求出這些點的基坐標值。設基坐標系下的工件平面方程為:
axwj+bywj+czwj+d=0
(22)
方程系數設為X=[abcd]T,則有齊次方程組為:
(23)
求解上式可得平面方程系數。由于激光點的噪聲等因素會產生異常點,這會給擬合的平面和后續對準帶來誤差,這里通過隨機采樣一致性剔除異常點,其具體做法是:


(4)完成上述步驟后可得最優平面方程。
相比最小二乘法,該方法可有效去除噪聲點和異常點,具有良好的穩定性。

(24)
(25)
式中:(α,β,γ)—末端法蘭坐標系繞基坐標系X軸、Y軸和Z軸的旋轉角度,c=cos,s=sin。
實現視覺對準只需考慮繞X軸和Y軸的旋轉角度即可,令γ=0°,建立非線性方程組:
(26)
通過示教器獲得初始姿態[α0,β0,0],對上式利用優化方法進行迭代,求解出機器人的姿態修正角。
相機采用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%;重復精度為2 μm;機器人為UR10和UR5的6軸機器人,重復精度±0.1 mm;棋盤格精為±0.03 mm。
標定實驗裝置圖如圖5所示。

圖5 標定實驗裝置圖
筆者在工作臺上放置棋盤格,引導機器人使相機從16個不同方位對棋盤格進行拍照,保存機械臂位姿數據和棋盤格圖片,利用標定算法分別對相機標定和手眼標定。
相機內參數標定如表1所示。

表1 相機內參標定
對棋盤格角點進行重投影,計算重投影后的角點像素坐標和實際像素坐標的歐式距離,可得相機標定誤差為0.077 8像素,表明該標定具有較高精度。
手眼標定結果為:
(27)
為了驗證手眼標定精度,筆者將每個位姿下棋盤格角點的世界坐標統一轉換到基坐標系下,計算不同位姿下對應角點基坐標值的方差,可得手眼標定誤差為0.133 mm,可見手眼標定具有較高精度。
在工作臺上固定放置一個平面度良好的平板,設置機械臂3個移動狀態,每個狀態下機械臂末端保持姿態不變,只在x、y或z這3個方向上平移運動,但3個狀態的姿態需有較大變化,引導機械臂使激光測距儀投射激光點到平板上,分別采集10組激光距離數據和對應的機械臂位姿數據;然后使機械臂末端同時有旋轉和平移運動,再采集10組對應數據。
將采集的數據代入第2節的激光標定算法,可得激光標定參數,如表2所示。

表2 激光標定參數
將標定參數代入標定方程,通過反解可得到真實激光距離,將該距離與激光測距儀測得距離進行比較,可得標定誤差。筆者采集50組數據進行驗證,結果表明激光標定誤差在0.31 mm以內,則激光標定精度高。
利用UR5和UR10兩臺機器人來完成視覺對準實驗,實驗裝置圖如圖6所示。

圖6 視覺對準實驗裝置圖
圖6中,UR10機器人末端固定相機和激光測距儀,UR5機器人末端固定一個平面工件,平面工件上設置4個特征點,它們分布在邊長為100 mm的正方形的4個頂點。
測試之前先對兩個機器人的位置進行標定,即通過設置多個空間公共點分別對兩機器人TCP標定,進而實現兩基坐標系的標定。
UR10上的激光測距儀投射激光點到UR5末端的工件平面上,利用前述視覺對準算法求解姿態修正角;通過移動UR5末端位姿來改變工件平面的姿態,根據兩次示教器的位姿數據,可得到第i次的姿態相對變化量真值Ti,利用筆者提出的視覺對準算法,解算對應的姿態變化量測量值Li,對工件平面4個特征點,利用PNP原理求解對應的姿態變化量測量值為Pi,將真實值和兩種方法的測量值統一到同一個基坐標系下進行比較,可得到各自的偏差值。
該測試沿機械臂x方向10°范圍內設置10個位姿點,對每個位姿點采集5組數據取均值后進行驗證。
PNP方法視覺對準曲線圖如圖7所示。

圖7 PNP方法視覺對準曲線圖
本研究方法視覺對準曲線圖如圖8所示。

圖8 本文方法視覺對準曲線圖
由圖(7,8)的實驗數據可知:在10°范圍內,PNP方法的位姿校正精度在1°以內,而本研究視覺對準算法精度在0.6°以內。視覺對準精度測標準不確定度為0.119°,置信概率為95%的擴展不確定度為0.216°。由此可見,本研究方法可滿足較高的視覺對準精度要求,且具有良好的穩定性。產生誤差的原因主要是機械臂移動誤差、視覺標定誤差、激光標定誤差等。
筆者提出了一種基于激光測距儀的機械臂末端視覺對準技術,該技術首先求解了視覺系統中相機標定和手眼標定;接著建立了基于平面約束的激光測距儀標定模型,給出了激光標定參數閉式解與優化解的解法;然后介紹了視覺對準原理,推導了姿態修正角的求解過程;最后搭建實驗平臺分別進行了標定和對準實驗。
實驗結果表明:視覺對準算法對10°范圍內的姿態對準誤差在0.6°以內,實現了較高且穩定的校正。