汪仕銘,葉 兵,胡 毅,胡鵬浩,鄭辰雅
(1.合肥工業(yè)大學 電子科學與應(yīng)用物理學院,安徽 合肥 230601; 2.合肥工業(yè)大學 儀器科學與光電工程學院,安徽 合肥 230009; 3.合肥工業(yè)大學 測量理論與精密儀器安徽重點實驗室,安徽 合肥 230009)
關(guān)節(jié)臂坐標測量機是一種串聯(lián)轉(zhuǎn)動關(guān)節(jié)式三坐標測量機,它通過模擬人手臂關(guān)節(jié)的旋轉(zhuǎn)和擺動來進行測量[1]。關(guān)節(jié)臂坐標測量機因其測量靈活、便于攜帶、測量空間范圍大且成本低而被廣泛應(yīng)用于工業(yè)生產(chǎn)檢測領(lǐng)域中[2-3]。
關(guān)節(jié)臂坐標測量機采用的是串聯(lián)結(jié)構(gòu),這種串聯(lián)式的結(jié)構(gòu)特性給關(guān)節(jié)臂坐標測量機帶來了較為復雜的誤差因素和較大的誤差傳遞系數(shù),各關(guān)節(jié)對誤差也都具有放大作用[4-5]。有研究表明,由于關(guān)節(jié)臂坐標測量機的結(jié)構(gòu)參數(shù)與運動學模型中理論結(jié)構(gòu)參數(shù)不一致,造成運動學模型不準確,從而帶來近95%的定位誤差[6-7]。因此,通過對結(jié)構(gòu)參數(shù)進行標定進而修正運動學模型能在很大程度上提高關(guān)節(jié)臂坐標測量機的測量精度。
國內(nèi)外學者在參數(shù)標定課題上進行了廣泛研究。文獻[5]采用帶有錐形孔的長度計作為標準件,運用MDH運動學模型和非??焖俚哪M退火算法對廣義幾何參數(shù)進行標定;文獻[8]采用帶有15個標準球的球桿規(guī)標準件和一種自定心測頭進行數(shù)據(jù)采集,運用Levenberg-Marquardt(LM)算法標定結(jié)構(gòu)參數(shù);文獻[9]采用量塊作為標定基準,通過獲取量塊上一端的點和另一端的面的距離,運用粒子群算法對結(jié)構(gòu)參數(shù)進行標定;文獻[10]采用自制的帶有多個錐窩的標定板作為標準件,提出了一種基于內(nèi)點法的關(guān)節(jié)臂坐標測量機參數(shù)自標定方法;文獻[11]提出了一種基于關(guān)節(jié)類坐標測量機測量空間的3D標定場,用于對測量機結(jié)構(gòu)參數(shù)進行標定;文獻[12]使用激光跟蹤儀獲取標準數(shù)據(jù),并基于歐幾里得距離和標準差的目標函數(shù)開發(fā)了用于關(guān)節(jié)臂坐標測量機參數(shù)識別的非線性優(yōu)化算法。激光跟蹤儀也常被應(yīng)用于機器人的標定中[13]。
關(guān)節(jié)臂坐標測量機所采用的手動牽拉末端測頭測量的方式存在著測量效率低下、運動姿態(tài)和測量重復性受人為影響較大等缺點,容易給測量帶來許多誤差。
面對工業(yè)生產(chǎn)制造智能化快速增長的需求,自驅(qū)動關(guān)節(jié)臂坐標測量機一定程度上可以提高檢測效率,降低人為因素對檢測的影響[14-15]。 關(guān)節(jié)臂坐標測量機標定用的基準是被標定好的球桿,基準和測量機測頭分別采用球和錐窩,以提高標定效率。自驅(qū)動關(guān)節(jié)臂坐標測量機采用恒力觸發(fā)測頭實現(xiàn)自動觸發(fā)測量,從測量效率上考慮,如果標準件采用錐窩,那么測頭在沒有到達正確位置時就有可能產(chǎn)生觸發(fā)測量信號。
因此,本文綜合多種標定系統(tǒng)的搭建情況[16],針對自驅(qū)動關(guān)節(jié)臂坐標測量機的結(jié)構(gòu)特點,搭建了以激光跟蹤儀測量距離為基準的標定系統(tǒng),建立了一種距離誤差模型,基于此模型設(shè)計了LM最小二乘迭代算法進行標定。
Denavit-Hartenberg(D-H)模型是文獻[17]提出的一種解決機器人運動學問題的方法,它在機器人的每個連桿上都建立一個對應(yīng)的坐標系,并使用一個4×4的矩陣表示相鄰兩桿件之間的相對位置關(guān)系,通過數(shù)學方法依次轉(zhuǎn)換可以得到末端執(zhí)行器相對于基座坐標系的變化矩陣,獲取相對位姿和位置信息,從而建立出機器人的運動學方程。
自驅(qū)動關(guān)節(jié)臂坐標測量機的結(jié)構(gòu)參數(shù)分別為連桿長度ai、連桿扭角αi、關(guān)節(jié)偏置di和關(guān)節(jié)轉(zhuǎn)角θi。其中:連桿長度ai表示相鄰兩關(guān)節(jié)轉(zhuǎn)動軸公垂線的長度;連桿扭角αi表示相鄰兩關(guān)節(jié)軸線的夾角,繞xi軸旋轉(zhuǎn);關(guān)節(jié)偏置di表示相鄰兩關(guān)節(jié)之間的距離即相鄰x軸之間的距離;而關(guān)節(jié)轉(zhuǎn)角θi表示相鄰x軸之間的夾角,繞zi-1軸旋轉(zhuǎn)。
在自驅(qū)動關(guān)節(jié)臂坐標測量機各關(guān)節(jié)上建立坐標系,如圖1所示。從圖1可以看出,設(shè)計的自驅(qū)動關(guān)節(jié)臂坐標測量機樣機結(jié)構(gòu)相鄰2個關(guān)節(jié)的轉(zhuǎn)動軸相交,根據(jù)結(jié)構(gòu)參數(shù)定義,此模型中的連桿長度ai為0。
圖1 自驅(qū)動關(guān)節(jié)臂坐標測量機結(jié)構(gòu)圖及運動學模型簡圖
根據(jù)D-H矩陣原理和結(jié)構(gòu)參數(shù)可得相鄰兩坐標系的坐標變換公式為:
Ai-1,i=R(zi-1,θi)T(0,0,di)T(ai,0,0)R(xi,αi)
(1)
其中:R(zi-1θi)為繞zi-1軸旋轉(zhuǎn)θi的旋轉(zhuǎn)矩陣;T(0,0,di)為在z軸方向移動di的平移矩陣;T(0,0,ai)為在x軸方向移動ai的平移矩陣;R(xi,αi)為繞xi軸旋轉(zhuǎn)αi的旋轉(zhuǎn)矩陣。
變換矩陣為:
Ai-1,i=
(2)
通過坐標系間依次轉(zhuǎn)換,最終可以得到測頭所在坐標系O6相對于基座坐標系O0的坐標轉(zhuǎn)換矩陣為:
A0,6=A0,1A1,2A2,3A3,4A4,5A5,6
(3)
令測頭球心在坐標系O6上的坐標為(lx,ly,lz),則末端測頭球心相對于基座坐標系的坐標轉(zhuǎn)化矩陣為:
[xpypzp1]T=
(4)
由(4)式可得末端測頭球心相對于基座坐標系的位置坐標為Pprob=[xpypzp]T。
傳統(tǒng)位置誤差模型的建立,需要在標定過程中使用激光跟蹤儀采集若干位置點的標準位置,并將激光跟蹤儀坐標系下的標準位置轉(zhuǎn)換到關(guān)節(jié)臂坐標測量機基座坐標系上,通過測量機的測量位置與激光跟蹤儀標準位置之間的誤差來標定測量機結(jié)構(gòu)參數(shù)。而基于距離誤差模型的標定算法則避免了2種不同坐標系之間的轉(zhuǎn)換,防止了該類誤差的產(chǎn)生。
建立距離誤差標定模型步驟如下:① 使用高精度激光跟蹤儀測出空間內(nèi)兩點間的距離;② 使用自驅(qū)動關(guān)節(jié)臂坐標測量機獲得兩點的測量距離;③ 將2個距離值進行比較,其均方誤差作為目標函數(shù),并使其最小化;④ 根據(jù)上一步求得的結(jié)構(gòu)參數(shù)誤差補償原有結(jié)構(gòu)參數(shù)修正模型,不斷迭代提高自驅(qū)動關(guān)節(jié)臂坐標測量機的結(jié)構(gòu)參數(shù)辨識精度。
通過上述方法,設(shè)空間內(nèi)兩點的坐標分別為M1(x1,y1,z1)、M2(x2,y2,z2),兩點的距離公式為:
(5)
點M1和點M2結(jié)構(gòu)參數(shù)分別為:
(6)
由自驅(qū)動關(guān)節(jié)臂坐標測量機通過運動學模型求得的2點間的測量距離可表示為:
S=f(X1,X2)
(7)
則得到距離誤差模型的目標函數(shù)為:
(8)
根據(jù)此距離誤差模型和目標函數(shù),本文設(shè)計了LM最小二乘算法用于結(jié)構(gòu)參數(shù)的標定。
在關(guān)節(jié)臂坐標測量機的結(jié)構(gòu)參數(shù)標定算法研究中,有很多算法得以廣泛應(yīng)用,其中主要的算法有LM非線性最小二乘算法、模擬退火算法、遺傳算法等。
文獻[18]中采用較為常用的LM算法、模擬退火算法、遺傳算法并使用石英棒標準件對關(guān)節(jié)式坐標測量機進行結(jié)構(gòu)參數(shù)標定,標定后使用測試數(shù)據(jù)從算法速度、實測效果和穩(wěn)定性3個方面對3種算法進行了對比,結(jié)果表明,采用從LM算法標定后獲得的結(jié)構(gòu)參數(shù)進行測試時最接近石英棒標準長度,且該算法相較于其他2種算法在計算過程中更加穩(wěn)定,求解速度上也大大領(lǐng)先?;诖?結(jié)合搭建的激光跟蹤儀標定系統(tǒng),本文設(shè)計了基于距離誤差模型的LM算法對自驅(qū)動關(guān)節(jié)臂坐標測量機結(jié)構(gòu)參數(shù)進行標定。
LM算法結(jié)合了梯度下降算法與高斯牛頓算法的優(yōu)勢,是一種基于微分誤差思想的非線性最小二乘算法。首先對于一個非線性最小二乘問題有:
(9)
其中,e(x)為模型值與標準值之差。將e(x)用泰勒級數(shù)展開,取一階線性項近似得:
e(x+Δx)=e(x)+e′(x)Δx
(10)
為保證算法公式誤差系數(shù)矩陣部分可逆,LM算法引入阻尼因子和單位陣,因此將目標函數(shù)展開、求導并將誤差系數(shù)矩陣J=e′(x)代入可得:
Δx=-(JTJ+μI)-1JTe(x)
(11)
其中:I為單位陣;μ>0可保證系數(shù)矩陣正定。當μ很大時,LM算法退化為梯度下降法,可以進行全局搜索;當μ很小時,LM算法退化為高斯牛頓法,能快速收斂。
將(6)式的元素序號改為N=(b1,b2,…,b27),則此問題可轉(zhuǎn)換為一個非線性最小二乘問題,可以通過求解其微分雅各比矩陣,獲取其誤差向量來補償自驅(qū)動關(guān)節(jié)臂坐標測量機的結(jié)構(gòu)參數(shù)。
雅各比矩陣中各元素求解如下:
(12)
其微分雅各比矩陣為:
(13)
算法開始時先給出初始結(jié)構(gòu)參數(shù)x0、阻尼因子μ0=0.001、ν=10、迭代次數(shù)k,計算距離與標準距離之間的均方誤差作為目標函數(shù)。迭代過程中當?shù)趇+1次的均方誤差小于第i次時,則補償當前結(jié)構(gòu)參數(shù),令i=i+1、μi+1=μi/ν;否則,μi+1=μiν不補償結(jié)構(gòu)參數(shù)。
上述非線性最小二乘解法LM算法可迭代出最優(yōu)結(jié)構(gòu)參數(shù)。
實驗中采用激光跟蹤儀作為基準測量工具。在測桿上附著法蘭盤和磁鐵吸附激光跟蹤儀靶球,當自驅(qū)動關(guān)節(jié)臂坐標測量機帶動靶球運動時,激光跟蹤儀也跟隨靶球轉(zhuǎn)動,并測量靶球中心坐標,而自驅(qū)動關(guān)節(jié)臂坐標測量機同時測量并得到關(guān)節(jié)轉(zhuǎn)角值。
實驗系統(tǒng)如圖2所示。圖2中樣機理論結(jié)構(gòu)參數(shù)見表1所列。
表1 樣機理論結(jié)構(gòu)參數(shù)
標定實驗在室溫為20 ℃的實驗室內(nèi)進行。關(guān)節(jié)1轉(zhuǎn)角在0°~180°范圍內(nèi),使得激光跟蹤儀能夠跟蹤到靶球。該空間內(nèi)均勻設(shè)置了124個點,其中參與標定訓練的點有84個,測試的點有40個。
測量點在空間中的分布如圖3所示。
圖3 測量點空間分布圖
需要指出的是,在數(shù)據(jù)采集中關(guān)節(jié)轉(zhuǎn)角盡可能做到充分變化,以提高標定結(jié)果的魯棒性。
將實驗中獲取的84組6個關(guān)節(jié)角度值代入運動學模型,結(jié)合結(jié)構(gòu)參數(shù)可求得測量機末端激光跟蹤儀靶球中心相對于自驅(qū)動關(guān)節(jié)臂坐標測量機基座坐標系下的理論坐標。將這些坐標任意組合,獲取42個兩點間距離,并與激光跟蹤儀測得的標準距離求均方誤差,以此作為目標函數(shù)代入算法中進行迭代求解,從而辨識出自驅(qū)動關(guān)節(jié)臂坐標測量機的結(jié)構(gòu)參數(shù)誤差。
采用LM算法標定后得到的各關(guān)節(jié)結(jié)構(gòu)參數(shù)補償值見表2所列。
表2 自驅(qū)動關(guān)節(jié)臂坐標測量機標定后的結(jié)構(gòu)參數(shù)補償值
測頭空間長度補償值Δlx=-0.020 3 mm,Δly=-0.008 3 mm,Δlz=2.701 1 mm,即需用表中數(shù)據(jù)去修正自驅(qū)動關(guān)節(jié)臂坐標測量機理論結(jié)構(gòu)參數(shù)。
分別采用標定前、后的結(jié)構(gòu)參數(shù)對40個測試點所構(gòu)成的20個距離進行計算,并與激光跟蹤儀測量的距離進行比較。
測試點標定前、后距離誤差的對比如圖4所示,測量距離誤差見表3所列。
表3 標定前、后測量距離誤差 mm
由圖4、表3可知,標定后測量誤差大大降低,以最大距離誤差絕對值來看,從13.895 0 mm降低到0.300 4 mm,減少了約97.8%,這說明針對距離的標定測試效果良好。
將測頭部分的法蘭盤和靶球撤下,換上帶有直徑為5 mm紅寶石球的觸發(fā)測頭,對半徑為25.431 mm的標準球進行測量。標準球測量實驗,如圖5所示。
圖5 標準球測量實驗
采用最小二乘算法擬合標準球需在球上采集至少4個擬合點。當采集的擬合點較少時,擬合結(jié)果的容錯率較低,受個別擬合點精度影響較大;當采集的擬合點數(shù)量較多時,單個擬合點的測量誤差在擬合過程中所占權(quán)重較小,容錯率較高。因此測量過程中采集的擬合點數(shù)量越多,擬合精度越高[19]。
在標準球上半部分均勻分布采集12個點,并使用補償后的結(jié)構(gòu)參數(shù)計算出測量的12個點的位置坐標,用最小二乘法擬合獲得球體參數(shù),即球心位置坐標xr、yr、zr與半徑Rr。半徑Rr表示標準球半徑與測頭紅寶石球半徑之和,因此擬合球?qū)嶋H半徑為:
r=Rr-2.5 mm。
對標準球進行重復性測量實驗,結(jié)果見表4所列。其中,Δr為擬合球半徑與標準半徑的誤差。
自驅(qū)動關(guān)節(jié)臂坐標測量機擬合標準球的重復性誤差采用標準差計算,置信系數(shù)取2,重復性誤差為2σ,公式為:
(14)
其中:n為實際測量次數(shù);xi為每次測量的結(jié)果;X為多次測量的平均值;σ為標準差。結(jié)合表4和(14)式分析計算得出,自驅(qū)動關(guān)節(jié)臂坐標測量機測量擬合標準球的誤差較小,其重復性誤差為0.038 mm。
表4 用標定后參數(shù)10次擬合的標準球參數(shù) 單位:mm
本文提出一種對自驅(qū)動關(guān)節(jié)臂坐標測量機結(jié)構(gòu)參數(shù)進行標定的方法,建立了以激光跟蹤測量距離為基準的標定系統(tǒng),基于距離誤差模型提出自驅(qū)動關(guān)節(jié)臂坐標測量機的標定算法,即距離誤差模型下的LM算法。該方法避開了傳統(tǒng)位置誤差模型需要對2種不同坐標系進行轉(zhuǎn)換的情況,防止了坐標系轉(zhuǎn)換帶來的誤差。標定后對標定空間內(nèi)40個測試點所組成的20組距離進行測試,其最大距離誤差絕對值從13.895 0 mm減小到了0.300 4 mm,測量誤差減小近97.8%。實驗結(jié)果驗證了本文標定方法的有效性。