陸 藝,葛文琦,郭 斌
(1.中國計量大學(xué) 計量測試工程學(xué)院,浙江 杭州 310018;2.杭州沃鐳智能科技股份有限公司,浙江 杭州 310018)
對工業(yè)機器人的重復(fù)定位精度要求很高,但由于機器人結(jié)構(gòu)參數(shù)誤差、自身重量、制造裝配和溫度的影響導(dǎo)致絕對定位精度偏低,這使得工業(yè)機器人在應(yīng)用時產(chǎn)生誤差影響操作結(jié)果。研究表明:連桿幾何參數(shù)誤差對機器人末端精度影響較大,90%左右的機器人可以通過對結(jié)構(gòu)參數(shù)的標(biāo)定來降低其末端位置的誤差[1~3]。工業(yè)機器人標(biāo)定技術(shù)是應(yīng)用先進的測量儀器進行位姿測量,然后建立模型來得到準(zhǔn)確的機器人運動學(xué)參數(shù)的過程,是提高機器人絕對定位精度的有效途徑[4~6]。楊麗紅等[7]利用激光跟蹤儀根據(jù)扭轉(zhuǎn)角的定義擬合出機器人的扭轉(zhuǎn)角,并在末端誤差模型的基礎(chǔ)上運用最小二乘法辨識了運動學(xué)參數(shù),兩次標(biāo)定之后最大誤差較標(biāo)定之前改善了98.327%,算術(shù)平均誤差改善了96.613%;車亞肖等[8]基于機械臂和球桿儀所組成的閉鏈的幾何約束條件和末端位置誤差模型建立了參數(shù)誤差辨識模型,使用非線性最小二乘迭代法[9~11]求得了集合參數(shù)誤差,標(biāo)定后軌跡1的精度提高了80.51%,軌跡2的精度提高了83.77%;Richter L等[12]將紅外相機固定在三腳架上,在機器人的臂上設(shè)置標(biāo)記點,由相機得到標(biāo)記點的位移,并用最小二乘法完成了機器人的標(biāo)定。使用先進的測量儀器標(biāo)定機器人的方法需要昂貴的測量設(shè)備或者專業(yè)的人員進行操作。近年來,研究者開始對簡易的測量方法進行探索研究,提出了一些不需要額外測量設(shè)備的約束標(biāo)定方法。夏天等[13]利用虛擬封閉運動鏈的閉環(huán)方法完成了對工業(yè)機器人的標(biāo)定,標(biāo)定結(jié)果中平均偏差提高了81.38%。
本文提出了一種利用標(biāo)準(zhǔn)球和距離約束的標(biāo)定方法來提高六軸串聯(lián)工業(yè)機器人精度?;静襟E是設(shè)計了可改變方向的三角標(biāo)定平臺,平臺上連接了3個標(biāo)準(zhǔn)球;將接觸式測頭安裝在機器人末端的法蘭盤上,用測頭分別探測的標(biāo)定平臺上的3個標(biāo)準(zhǔn)球;將每個探測點的關(guān)節(jié)角度記錄下來,對這些探測位置進行最小二乘擬合得到球心坐標(biāo),并將每2個標(biāo)準(zhǔn)球的球心距分別和三坐標(biāo)測量機上測量得到的球心距的誤差最小化,用Levenberg-Marquardt(簡稱LM)算法迭代辨識出運動學(xué)參數(shù)。該方法不需要外部昂貴的測量設(shè)備,成本較低且操作簡單。
工業(yè)機器人標(biāo)定過程包括建立運動學(xué)模型、位姿測量、參數(shù)辨識和誤差補償。建立機器人運動學(xué)模型是運動學(xué)參數(shù)辨識的基礎(chǔ),由運動學(xué)模型得到辨識的誤差模型, 從而求解誤差方程的方程組完成參數(shù)辨識過程,得到所需的運動學(xué)誤差參數(shù)。
為了便于描述工業(yè)機器人連桿之間的運動,在機器人每個關(guān)節(jié)處建立坐標(biāo)系得到運動學(xué)模型。工業(yè)機器人運動學(xué)模型中傳統(tǒng)建模是D-H(Denavit-Hartenberg)模型[14,15]。以FANUC公司的LR Mate 200iD六軸串聯(lián)機器人為例,首先進行D-H建模,根據(jù)D-H模型的定義在每個關(guān)節(jié)處建立坐標(biāo)系,ai,αi,di,θi(i=1,2,…,6)為工業(yè)機器人各連桿參數(shù)。其中,ai代表連桿長度,為zi和zi+1沿xi軸平移的距離;αi代表連桿扭角,為zi和zi+1繞xi軸旋轉(zhuǎn)的角度;di代表偏置,為xi-1和xi沿zi軸平移的距離;θi代表關(guān)節(jié)角,為xi-1和xi繞zi軸旋轉(zhuǎn)的角度。工業(yè)機器人的坐標(biāo)系關(guān)系如圖1所示。
圖1 機器人的坐標(biāo)系關(guān)系圖Fig.1 Robot coordinate diagram
通過在各個關(guān)節(jié)處建立坐標(biāo)系得到各連桿間的齊次變換矩陣為:
(1)
式中:i=1,2,…,6。
當(dāng)機器人存在關(guān)節(jié)軸線平行或接近平行時,D-H模型不具備完整性和連續(xù)性。為避免模型的奇異性,MDH(Modified D-H)模型引入了繞y軸旋轉(zhuǎn)參數(shù)βi,則齊次變換矩陣變?yōu)?/p>
(2)
對于6自由度的串聯(lián)機器人,機器人末端位姿的位姿矩陣的計算如下:
(3)
式中:n(nx,ny,nz),o(ox,oy,oz),a(ax,ay,az)表示機器人末端執(zhí)行器相對于基坐標(biāo)系{O0x0y0z0}的姿態(tài)向量;p(px,py,pz)表示機器人末端執(zhí)行器的位置向量。
根據(jù)圖1的運動學(xué)模型并結(jié)合其運動學(xué)參數(shù)列出了參數(shù)表,D-H名義值如表1所示。
表1 機器人運動學(xué)參數(shù)名義值Tab.1 Nominal values of robot kinematic parameters
(4)
本文選用FANUC公司的LR Mate 200iD六軸串聯(lián)機器人進行基于標(biāo)準(zhǔn)球距離約束的運動學(xué)參數(shù)標(biāo)定。高精度接觸式測頭選用??怂箍倒镜男吞枮?1.00-PP,重復(fù)精度為2 μm的接觸式測頭,該測頭配有紅寶石探針,標(biāo)定系統(tǒng)如圖2所示。
圖2 機器人標(biāo)定系統(tǒng)圖Fig.2 Robot calibration system diagram
搭建了一個三角標(biāo)定平臺,由基座、萬向節(jié)、平臺面板和3個圓度為1.5 μm、直徑為25.4 mm的陶瓷標(biāo)準(zhǔn)球組成,如圖3所示。將3個陶瓷標(biāo)準(zhǔn)球連接在平臺上,每2個球之間的理論距離為 300 mm,萬向節(jié)可以改變平臺面板的方向,從而改變3個標(biāo)準(zhǔn)球在空間的坐標(biāo),使機器人在探測球面上的點時盡可能包括更多的位姿。將接觸式測頭安裝在機器人末端執(zhí)行器上,通過控制機器人低速移動帶動測頭來探測標(biāo)準(zhǔn)球上的點,當(dāng)探頭碰到球體表面時,測頭觸發(fā)信號使機器人停止運動,讀取并記錄此時的關(guān)節(jié)角。
圖3 標(biāo)定平臺系統(tǒng)實物圖Fig.3 Platform system physical map
實驗時,首先在一個標(biāo)準(zhǔn)球上用相差較大的位姿均勻探測的20個點,標(biāo)定平臺系統(tǒng)如圖4所示。分別在球體頂部和底部各取一個點,3條圓線分別是北緯45°線、赤道線和南緯45°線,每條線上均勻取8個點,記錄機器人在每個點時的關(guān)節(jié)角的值(θ1,θ2,θ3,θ4,θ5,θ6)。將這20個位置的關(guān)節(jié)角組成30組關(guān)節(jié)角集合,每個關(guān)節(jié)角的集合包含該20組關(guān)節(jié)角中的10組不同關(guān)節(jié)角并求得10組末端位置,由這10個末端位置擬合出該標(biāo)準(zhǔn)球的球心,總計得到30組球心坐標(biāo)。同理在另2個標(biāo)準(zhǔn)球中分別求得30組球心坐標(biāo),進而求得球1和球2、球2和球3、球1和球3的球心距。通過改變標(biāo)定平臺的方向來獲得不同的球面坐標(biāo),改變5次平臺方向,每個球心距將獲得15組不同球心距,共計450組球心距的值。用每2個球之間的球心距和用三坐標(biāo)測量機測量出來的實際距離之間的距離誤差組成標(biāo)定方程,用LM算法迭代計算出運動學(xué)參數(shù)。
圖4 球面取點圖Fig.4 Spherical point map
本方法搭建的標(biāo)定平臺使用標(biāo)準(zhǔn)球之間的相對距離進行標(biāo)定,可以在小范圍內(nèi)改變標(biāo)準(zhǔn)球在基坐標(biāo)系下的位置,簡單、快速地取得大量實驗數(shù)據(jù)和用于驗證的數(shù)據(jù),更好地辨識出標(biāo)定參數(shù)。
對標(biāo)定平臺上的3個標(biāo)準(zhǔn)球分別編號為1,2,3,控制機器人運動使測頭探針觸碰標(biāo)準(zhǔn)球的表面,探測第j個球(j=1,2,3)上的20個點,每組取10個關(guān)節(jié)角組成30組關(guān)節(jié)角集合,記為jθk,其中k=1,2,3,…,30,則由這些關(guān)節(jié)角通過正運動學(xué)方程求得的末端位置jp′k(x,y,z)。
使用最小二乘法擬合出每個標(biāo)準(zhǔn)球的球心坐標(biāo)jck(jcxk,jcyk,jczk),標(biāo)準(zhǔn)球的半徑為R,則球面方程可以寫為:
(x-jcsk)2+(y-jcyk)2+(z-jczk)2=R2
(5)
將方程(5)展開并移項得:
(6)
(7)
將上式寫成AX=Y的形式,用最小二乘法即可求出待求參數(shù)X,表達式為:
X=(ATA)-1ATY
(8)
求解式(8)即可得到我們所需的球心坐標(biāo)jck(jcxk,jcyk,jczk)和R。
接下來使用兩標(biāo)準(zhǔn)球球心之間的距離來進行標(biāo)定。將2個球心的坐標(biāo)看成球心距離的2個端點,以球1和球2間的距離為例,由兩點間的距離公式可得標(biāo)準(zhǔn)球1和標(biāo)準(zhǔn)球2之間的球心距1-2dk為
(9)
f(1θk,2θk,η)=1-2dk(1θk,2θk,η)-1-2D
(10)
式中:η=(Δa1,…,Δa6;Δα1,…,Δα6;Δd1,…,Δd6;Δθ1,…,Δθ6;Δβ2)T為工業(yè)機器人的25個待辨識的誤差參數(shù)。
待求解的式(10)是一個非線性方程組,其中隱含了工業(yè)機器人的運動學(xué)參數(shù)誤差和平臺球心距的對應(yīng)函數(shù)關(guān)系。非線性高斯-牛頓最小二乘法是一種經(jīng)典解非線性方程組的方法,由于實際計算中高斯-牛頓法經(jīng)常會出現(xiàn)不收斂或者局部收斂的現(xiàn)象,因此選用LM法來進行迭代求解。
在工業(yè)機器人的辨識誤差方程中會存在無法辨識出來的參數(shù),稱為冗余參數(shù)。冗余參數(shù)包括兩類:一類是對末端位置誤差無影響的參數(shù),表現(xiàn)為在雅克比矩陣中某一列全為零;另一類是呈線性相關(guān)的參數(shù),表現(xiàn)為雅克比矩陣中的列與列之間出現(xiàn)線性相關(guān)的現(xiàn)象。通過對辨識過程中的雅克比矩陣進行QR分解可以得到無法辨識的冗余參數(shù):
(11)
式中:Q為r×r的正交矩陣;R為c×c的上三角矩陣;0(r-c)×c為(r-c)×c的零矩陣;r為測量點的個數(shù);c為誤差參數(shù)的個數(shù)。
式(11)中的矩陣R上對角線的值為0的元素所對應(yīng)的參數(shù)是無法識別出來的冗余參數(shù),將雅克比矩陣J中相對應(yīng)的列元素剔除,即可得到可辨識的方程組,從而更好地辨識出運動學(xué)參數(shù),提高參數(shù)辨識的魯棒性。其中,由于基坐標(biāo)系和關(guān)節(jié)1重合,Δa1,Δα1,Δθ1,Δd1對末端位置沒有貢獻,應(yīng)當(dāng)從模型中剔除;連桿坐標(biāo)系中關(guān)節(jié)2和關(guān)節(jié)3平行時,Δd2和Δd3對末端位置的影響是一致的,當(dāng)引入旋轉(zhuǎn)參數(shù)誤差Δβ2時可剔除Δd2保留Δd3;當(dāng)測頭所在的工具坐標(biāo)系和關(guān)節(jié)6同軸時,Δθ6同樣對末端位置沒有影響,應(yīng)當(dāng)剔除。計算后得有效的誤差參數(shù)為η=(Δa2,Δα2,Δθ2,Δa3,Δα3,Δd3,Δθ3,Δa4,Δα4,Δd4,Δθ4,Δa5,Δα5,Δd5,Δθ5,Δa6,Δd6,Δβ2)T共18項。
LM非線性算法是對高斯-牛頓法的修正,能夠解決高斯-牛頓法在計算過程中雅克比矩陣的奇異問題,并且提高計算精度。將第2節(jié)中的距離誤差函數(shù)式(10)最小化為:
教師通過點擊“管理”菜單中的“學(xué)生”選項打開添加學(xué)生頁面,通過瀏覽選擇或搜索已注冊到Moodle平臺中的學(xué)生用戶,手工添加學(xué)生到課程中,同時賦予學(xué)生進入學(xué)習(xí)網(wǎng)站時可以使用模塊功能的權(quán)限.
(12)
定義
式中:J為辨識方程的雅克比矩陣;m為迭代次數(shù)。
把誤差矩陣F在待辨識參數(shù)ηm處泰勒展開,略去二次及二次以上的項,可近似寫成方程形式如下:
(13)
式中:Δηm為第m次迭代時運動學(xué)參數(shù)誤差的修正值;I為單位矩陣;λ為阻尼因子且λ>0,迭代的具體算法如下:
步驟2:計算第m次迭代的球心距誤差矩陣Fm和雅克比矩陣Jm;
步驟4:根據(jù)ηm+1=ηm+Δηm更新運動學(xué)參數(shù);
步驟6:若Fm+1≥Fm,更新阻尼因子,令λ為10λ,返回步驟2重新計算Δηm;
步驟7:輸出最后所需結(jié)果ηm即為所需求的運動學(xué)參數(shù)誤差值。
在每個平臺方向上使用接觸式測頭分別在3個標(biāo)準(zhǔn)球上探測點,記錄下相應(yīng)關(guān)節(jié)角值,經(jīng)過最小二乘擬合后通過第3節(jié)介紹的迭代算法得到兩兩標(biāo)準(zhǔn)球之間的距離。旋轉(zhuǎn)萬向節(jié)改變平臺的方向,重復(fù)上述步驟進行其他4個平臺方向的實驗方程求解。由于計算量較大,選用矩陣計算功能強大的MATLAB編寫算法程序進行計算,辨識出的各運動學(xué)參數(shù)如表2所示。
表2 辨識的運動學(xué)參數(shù)結(jié)果Tab.2 Identification of kinematic parameter results
誤差補償是將辨識出的運動學(xué)參數(shù)誤差補償?shù)竭\動學(xué)參數(shù)名義值中得到準(zhǔn)確的運動學(xué)參數(shù)值,從而達到補償?shù)哪康腫17~19]。由于機器人的名義運動學(xué)參數(shù)在出廠時已確定無法修改,因此通過離線補償?shù)姆椒ㄔ诘芽柨臻g來進行誤差補償。在機器人控制器中指定理論末端位置,將名義運動學(xué)參數(shù)值代入逆運動學(xué)方程中得到名義關(guān)節(jié)角θ,再將所得的關(guān)節(jié)角θ和辨識后的運動學(xué)參數(shù)值代入到正運動學(xué)方程中得到機器人實際的末端位置,以此實際末端位置作為指令位置,控制機器人運動到該位置后進行驗證實驗。分別在每個球面上取10個指定位置,并用上述方法求得10個實際末端位置,用最小二乘擬合得到球心坐標(biāo),進而求得每2個球之間的球心距。用補償后的實際運動學(xué)參數(shù)求得的球心距分別與三坐標(biāo)測量機測得的球心距進行比較,進行了5個平臺方向的實驗進行驗證,每個平臺方向有3組球心距,共計15組球心距,標(biāo)定前和標(biāo)定后的球心距誤差如表3所示。
表3 球心距標(biāo)定前后誤差對比Tab.3 Comparison of errors before and after centroid distance calibration mm
由表3的數(shù)據(jù)分析可知,標(biāo)定前和標(biāo)定后的距離誤差相比,最大偏差由3.736 3 mm減小到 0.827 7 mm,減少了77.85%;平均偏差由2.681 2 mm減小到0.569 4 mm;減少了78.77%;標(biāo)準(zhǔn)偏差由 0.673 8 mm 減小到0.140 7 mm,減少了79.12%,從而證明了此標(biāo)定方法提高了工業(yè)機器人的定位精度。
針對工業(yè)機器人絕對定位精度較低的問題,建立了MDH模型,消除了傳統(tǒng)D-H模型的在平行關(guān)節(jié)處的奇異性問題。提出一種基于標(biāo)準(zhǔn)球和距離約束的標(biāo)定方法,通過在機器人末端執(zhí)行器安裝接觸式測頭,將標(biāo)定平臺的固定球心距離作約束條件,使機器人末端探針探測得到的球心距和其實際距離的誤差最小化,最后利用LM算法辨識出準(zhǔn)確的運動學(xué)參數(shù)。實驗結(jié)果表明:標(biāo)定前的平均偏差和標(biāo)準(zhǔn)偏差與標(biāo)定后的相比有明顯的減小,有效地提高了工業(yè)機器人的絕對定位精度。