蔣周翔,蘇 瑞,秦鵬舉,龍忠杰,宋 寶,唐小琦
(1.北京信息科技大學 機電工程學院,北京 100192;2.華中科技大學 機械科學與工程學院,湖北 武漢 430074)
機械臂絕對定位精度是評價工業機器人技術水平的重要指標之一。
絕對定位精度主要受:機械臂連桿制造裝配及關節傳動誤差[1]的影響,表現為桿長、桿間扭角、桿間偏置以及關節轉角等參數的誤差。
連桿參數(Denavit-Hartenberg parameter,DHpar-ameter)的標定能顯著提高末端執行器的絕對定位精度[2]。
目前,廣泛采用的標定方法包括4個關鍵技術環節:(1)運動學誤差建模;(2)位姿測量;(3)誤差參數辨識;(4)補償[3]。
研究人員通常將傳感器安裝在機械臂末端,操作機械臂末端抵達運動空間若干點位,同時測量末端位姿,并據此建立辨識模型用于解算DH參數實際值,最后將參數值錄入控制系統進行誤差補償。
基于上述流程,學者們提出了一系列行之有效的機械臂標定方法。其中,在測量環節,使用了三坐標測量儀[4]、激光跟蹤儀[5,6]、球桿儀[7]、攝像頭[8]、測量臂[9]、觸發式探頭[10]或自制裝置[11]對末端執行器位姿進行了采集,達到了良好的測量精度。
部分學者還進一步圍繞測量構型規劃方法開展了研究。吳德烽等人[12,13]依據辨識矩陣條件數,建立了采樣點陣,從而提高了測量精度,減小了隨機誤差干擾。黎田[14]通過分析辨識矩陣奇異值,提出了一種觀測指數,并以此為約束條件,建立了最小構型集合,使誤差參數對末端定位誤差影響達到最大化,既保證了辨識模型的魯棒性,又縮短了測量的時長。JOUBAIR A等人[15]在測量構型優化問題上的性能表現方面,進一步分析比較了5種典型觀測指數,為不同自由度機械臂標定時的選取觀測指數提供了有價值的參考。
現有標定方法絕大多數基于辨識模型求解DH參數,屬于間接標定,需增強辨識模型的魯棒性以保證參數辨識精度[16]。為此,研究人員通常先在位姿測量環節采用相關算法規劃合理測量構型。然而,這些構型難以與機械臂的實際作業軌跡保持一致,因此,要求機械臂停工來配合位姿采集。此外,合理的測量構型必須均勻分布于機械臂的整個運動空間[17],但安裝在工位上的機械臂極有可能受限于非結構工作環境而導致運動空間被壓縮或割裂,即使停工也無法滿足測量構型對空間的要求。
綜上所述,基于辨識模型的標定方法無法繞開測量構型的規劃與執行,因此,只能通過定期、重復停工的方式,配合位姿信息的采集用于標定,以此維持機械臂末端的絕對定位精度,這顯然降低了生產效率,增加了維護成本。
面對上述現狀,筆者采用新方法將靶標安裝于機械臂各個關節,利用雙目視覺的多目標識別能力,同步、實時獲取所有關節位姿,以期實現DH參數誤差無模型、不停工直接辨識目的,避免有限工作空間內的測量構型規劃,消除高維病態矩陣導致的辨識誤差,實現標定精度和效率的統一目的。
機械臂標定系統整體框架如圖1所示。

圖1 機械臂標定系統示意圖
系統的運行步驟為:
(1)為各關節分配具有獨立ID的Arucomarker作為靶標以示區分;
(2)安裝雙目相機和機械臂,視場范圍應能夠覆蓋機械臂各關節完整作業軌跡,且能夠在指定測量點處捕獲到完整靶標圖像;
(3)用激光跟蹤儀對機械臂進行首次標定;
(4)在指定測量點處,用雙目相機實時采集靶標圖像并傳輸至上位機,解算出靶標采集位姿,同時機械臂的控制系統將當前關節指令實時傳輸給上位機,計算出各關節名義位姿;
(5)上位機通過相應算法建立靶標采集位姿到對應關節名義位姿的變換矩陣;
(6)機械臂進入實際作業狀態,同時視覺系統實時解算靶標位姿,并基于所得變換矩陣預測當前各關節實際位姿;
(7)當各關節位姿精度因DH參數變化而衰減到設定閾值時,上位機根據各關節實際位姿解算出變化后的DH參數并補償至控制系統中,以實現機械臂實時無模型標定。
筆者將分別針對關鍵步驟(4~7)中的關節名義位姿計算、變換矩陣建立、關節實際位姿估計以及DH參數求解進行詳細闡述。
機械臂坐標系分布如圖2所示。

圖2 六自由度機械臂關節坐標分布
圖2中,{Xi,Yi,Zi}表示第i關節坐標系的3個坐標軸,i=1,2,…,6;{X0,Y0,Z0}表示基坐標系。
機械臂各關節名義位姿通過正運動學中的齊次變換矩陣連乘來獲得:
(1)
式中:0Ti—機械臂基座標系到第i關節坐標系的齊次變換矩陣;i-1Ti—第i-1關節到i關節坐標系的齊次變換矩。
i-1Ti可表示為:
i-1Ti=Rx(αi)Tx(ai)Rz(θi)Tz(di)
(2)
式中:Rx(*),Rz(*)—旋轉矩陣;Tx(*),Tz(*)—平移矩陣;{αi,ai,θi,di}—第i關節的DH參數。
若令ki為第i關節任意一個可達位姿對應的關節指令集合{θ1,θ2,…,θi,},則相機采集到的靶標位姿可表征為:
(3)
式中:cT0—相機坐標系到基坐標系的變換;(i)Tti—i關節到其固連靶標的坐標變換,均為固定值;iT(i)(ki)—機械臂高速運動時各關節軌跡的輪廓誤差;0Ti(ki)—第i關節坐標系矩陣。
由于視覺系統存在誤差,因此,需用tiT(ti)(ki)表示i靶標真實位姿到其采集位姿的變換。該矩陣與靶標在視場中的位置相關,因此,也是ki的函數。

各坐標系關系如圖3所示。

圖3 與標定相關的坐標系間變換關系
手眼標定法雖能建立相機坐標系到機械臂基坐標系的變換矩陣cT0,但該方法僅適用于精度不高的場合,難以滿足機械臂標定的高精度要求。因此,此處由視覺系統導致的手眼標定誤差不可忽略[18-21]。
因此,根據真實情況,式(3)可等效為:
(4)

由于誤差ΔcT0未知,因此,無法通過式(3)準確計算變換矩陣iT(ti)(ki)。筆者會在第4節關節實際位姿算法中解決該問題。
在機械臂的實際作業過程中,同樣能依據關節實際位姿0Tia和靶標采集位姿cT(ti)a之間的變換矩陣建立下式:
(5)
對于同一關節的相同指定測量點,可認為式(3)和式(5)的iT(ti)相同。原因是iT(i)(ki)和tiT(ti)(ki)分別來源于輪廓誤差[22-23]和視覺系統誤差,其大小分別與關節位姿和靶標位姿相關,而DH誤差所致的上述位姿變化較小,因此,由此引起的輪廓誤差和視覺系統誤差的變化量可以忽略不計。
根據式(3,5)可得第i關節的位姿誤差為:
Δ0Ti=[0Ti(ki)]-10Tia(ki)
(6)
省略(ki),則上式可進一步改寫為:
Δ0Ti=iT(ti)[cT(ti)]-1cT(ti)a[iT(ti)]-1
(7)
由于實際使用時存在手眼標定誤差,筆者在采用式(3)求解iT(ti)時,所用cT0為式(4)中并不準確的cT0a,導致求解的iT(ti)不準確,其包含誤差ΔiT(ti)。
若令iT(ti)=iT(ti)a[ΔiT(ti)]-1,且ΔcT(ti)=[cT(ti)]-1cT(ti)a,則應根據實際使用情況將式(7)進一步改寫為:
Δ0Ti=iT(ti)a[ΔiT(ti)]-1ΔcT(ti)ΔiT(ti)[iT(ti)a]-1
(8)
由于ΔiT(ti)為微小偏差,則忽略高階微小項時,可證明[ΔiT(ti)]-1ΔcT(ti)ΔiT(ti)=ΔcT(ti),因此上式可等效為(證明過程省略):
Δ0Ti=iT(ti)aΔcT(ti)[iT(ti)a]-1
(9)
至此,關節i的位姿誤差可以通過式(9)求得,進而可將式(6)改寫為下式,即可獲得關節i實際位姿估計值^0Tia(ki):
^0Tia(ki)=0Ti(ki)Δ0Ti
(10)
在已知^0Tia(ki)的基礎上,即可確定ki處各關節實際DH參數{αia,aia,θia,dia}的值,其方法如圖4所示。

圖4 任意ki處的實際DH參數值確定方法
方法說明如下:
(1)把關節1的DH參數實際值規定為名義值,即α1a=α1=0°,a1a=a1=0 mm,θ1a=θ1=0°,d1a=d1,則據此建立的新基坐標系會與名義基坐標系間產生偏差0T0a。因此,在修正控制系統內的DH參數后,應先將末端執行器在原作業軌跡每個點處的齊次變換矩陣左乘(0T0a)-1,以生成新的作業軌跡,再交由控制系統解算所需關節指令,實現DH參數誤差的補償;
(2)關節2、3的Z軸接近于平行,其公垂線的位置和方向因為α3a的微小變化而發生劇變,使a3a、θ2a、θ3a、d2a、d3a的辨識結果產生很大誤差。為避免這種影響,此處用關節3和關節2的坐標系原點間在X2a軸方向上的平移作為a3a,用X2a和X1a軸間夾角作為θ2a,用X3a和X2a軸間夾角作為θ3a,用關節2和關節1的坐標系原點間在Z2a軸方向上的平移作為d2a,用關節3和關節2的坐標系原點間在Z3a軸方向上的平移作為d3a;
(3)關節6的DH參數解算需要用到完整的關節實際位姿坐標系矩陣^0T6a。其中,由^0T6a原點位置可以確定d6a,然后由X6a軸與X5a軸的夾角可確定θ6a。而α6a和a6a的解算方法則與其他關節相同;
(4)對各DH參數在所有測量點處的辨識結果取平均值,作為該DH參數實際值的最終辨識結果。
為了驗證基于多目標識別的機械臂無模型DH參數標定方法的準確性,筆者設計了仿真試驗。該試驗是在真實測量場景下,對靶標位姿采集結果產生影響的各種因素進行模擬,以復現真實的靶標位姿采集環境。
仿真流程如圖5所示。

圖5 仿真流程示意圖
首先,要為機械臂首次標定后的DH參數建立運動學模型,與之對應的機械臂關節坐標系分布與圖2一致。
DH參數名義值如表1所示。

表1 機械臂DH參數名義賦值
然后,需為各關節設置指定測量點,根據逆運動學得到各關節指令,如表2所示。

表2 指定測量點對應的關節指令
由此,根據式(1)計算出各點對應的關節名義位姿。
機械臂位姿如圖6所示。

圖6 指定測量點對應的機械臂位姿
首先,需要設定式(2)中的固定變換矩陣(i)Tti和cT0。其中,(i)Tti各項參數如表3所示。

表3 變換矩陣(i)Tti賦值
cT0各項參數如表4所示。

表4 變換矩陣cT0賦值
然后,還需模擬視覺系統誤差所致靶標位姿采集誤差tiT(ti)。主要影響因子有殘余鏡頭畸變、內參標定誤差以及光照不均勻等。
6.2.1 殘余畸變的影響
在殘余桶形畸變影響下,靶標越靠近視場邊緣,則采集結果在X方向上越向Y軸偏移,在Y方向上越向X軸偏移,在Z方向上越遠離相機;在XOY平面上,越靠近視場邊緣,則采集結果繞Z軸附加旋轉越明顯,旋轉方向與坐落區域有關;在XOZ平面上,越靠近+X視場邊緣,采集結果繞Y軸正向附加旋轉越明顯,反之附加旋轉則為負向;在YOZ平面上,越靠近+Y視場邊緣,采集結果繞X軸負向附加旋轉越明顯,反之附加旋轉則為正向;靶標越靠近相機,則上述繞X、Y軸的附加旋轉角越大。
上述現象可模擬為:
(11)
式中:[xtd,ytd,ztd,θxtd,θytd,θztd]T—殘余桶形畸變所致的靶標采集坐標系的原點相對偏移和相對歐拉角;{kd1,kd2,kd3}—殘余畸變系數;{xmax,ymax,zmax}和{xmin,ymin,zmin}—相機坐標系下的視場邊界;{αmax,βmax,γmax}—靶標真實坐標系因視覺系統誤差產生的繞Xc、Yc、Zc軸的最大附加旋轉角。
式(11)參數賦值如表5所示。

表5 視覺系統各項參數賦值
6.2.2 相機內參數標定誤差的影響
由視覺系統各坐標系變換關系可知:當相機內參數存在標定誤差時,實際采集靶標坐標系與真實坐標系間將產生一個恒定的坐標變換矩陣Tce,所致靶標采集坐標系的原點相對偏移和相對歐拉角假定值,如表6所示。

表6 相機內參數標定誤差所致采集結果偏差Tce賦值
6.2.3 光照差異的影響
假設采用與相機光軸同向的平行光源,則靶面與光向量夾角減小時,將導致圖像變暗,使實際采集圖像面積增大。
根據透視原理,靶標各邊緣在圖像坐標系中向外擴張相同尺寸時,視覺系統解算出的靶標遠端邊緣擴張量要略大于近端。
上述現象可模擬為:
(12)
式中:[xtl,ytl,ztl,θxtl,θytl,θztl]T—光照差異所致靶標采集坐標系的原點相對偏移和相對歐拉角;[xn,yn,zn]T—靶標可視面在基坐標系中的法向量;{kl1,kl2,kl3,kl4,kl5,kl6}—光照誤差系數。
式(12)參數賦值如表5所示。
根據式(11,12)所得坐標系原點相對位置與相對歐拉角,筆者可進一步計算出對應的變換矩陣Ttd和Ttl,最后由Ttd,Tce,Ttl可求得視覺誤差所致采集結果偏差的變換矩陣tiT(ti):
tiT(ti)=TtdTceTtl
(13)
筆者首先根據式(3),正向模擬出視覺系統采集的靶標坐標系cT(ti)(ki)。其中,cT0、(i)Tti和tiT(ti)(ki)可根據上述的假定值進行求解,0Ti(ki)可由式(1)求得,而iT(i)(ki)可根據關節轉角跟蹤誤差來計算。
假定跟蹤誤差為恒定值,如表7所示。

表7 各關節轉角位置跟蹤誤差賦值
根據式(4)描述可知:在實際情況下,需要辨識式(3)中的iT(ti)(ki),但所用手眼標定結果為不準確的cT0a=cT0ΔcT0。為此,筆者先假定ΔcT0的原點相對偏移和相對歐拉角,其數值如表8所示。
依據表8數值求出cT0a后,替換式(3)中的cT0,然后可解得iT(ti)a(ki)為:

(14)
接下來,筆者假定機械臂長期作業后出現關節磨損、變形,導致DH參數發生改變[24]。
假定實際DH參數值如表9所示。

表9 機械臂DH參數實際賦值
筆者將表9參數代入式(1),得到ki處的各關節實際坐標系0Tia(ki);將0Tia(ki)真實值代入式(5),得到DH參數變化后視覺采集所得靶標坐標系cT(ti)a(ki),再將其與式(14)的變換矩陣iT(ti)a(ki)一并代入式(9),即可算出Δ0Ti(ki);
將其與初始DH參數對應的0Ti(ki)代入式(10),可得各關節實際位姿的估計結果^0Tia(ki);將0Ti(ki)和^0Tia(ki)進行對比(以測點6處為例,其他測點處結果類似),結果如圖7所示。

圖7 測量點6處各關節實際坐標系真實值與估計值
圖7結果表明:各關節實際坐標系的真實值與估計值基本一致。其中,第1、2關節的估計誤差相對較小(原因是這2個關節運動精度未受到更多前置關節誤差的影響);從第3關節開始,僅表現出坐標系原點位置估計誤差。
接下來,筆者將驗證此類估計誤差是否對DH參數標定精度產生明顯影響。
因為基坐標建立方法要求第1關節DH參數不變,所以筆者無需通過DH參數辨識結果,來評價該關節標定精度。
對于第2~6關節,筆者先按照第5節所述方法辨識出估計值^DHia,再令DHi和DHia分別表示i關節表1中的DH參數初始值和表9中的真實值,并計算出各DH參數估計誤差與和真實偏差的比值,即:
(15)
其結果如表10所示。

表10 第2~6關節DH參數標定精度
表10結果顯示:DH參數的辨識誤差在0%~4%,1/2的參數辨識誤差接近于0%,表明該方法能夠實現高精度的機械臂運動學標定。
由于該方法的標定精度并不受視覺系統誤差和輪廓誤差的影響,僅需保證首次DH參數標定和手眼標定的精度即可。而這些要求在現有技術條件下很容易滿足,由此可見,該方法具有良好的工程價值與應用潛力。
筆者首先圍繞各類誤差來源,對機械臂DH參數標定精度的影響進行了理論分析,然后基于微小誤差準則,建立了機械臂各關節實際位姿的估計公式,進而根據各關節的空間位置關系,提出了一種DH參數無模型辨識方法,最后采用仿真對該方法的準確性進行了驗證。
研究結論如下:
(1)在無模型辨識方法中,視覺系統誤差和輪廓誤差并不影響各關節實際位姿的估計精度,也并未產生DH參數辨識誤差;
(2)影響DH參數辨識精度的關鍵因素是首次標定結果的準確性,以及手眼標定誤差的大小。依靠現有技術手段及設備,這兩項指標容易達到較高水平;
(3)該方法對DH參數的辨識誤差在4%以下,即使在高精度場合也可以忽略不計,因此,其在多種領域均具有良好的應用潛力。
筆者下一步的研究計劃是,搭建試驗平臺驗證該方法在現實場景下的標定精度,以對該方法進行實際工況下的優化與完善;同時,還將探索如何降低初始DH參數準確性對無模型實時標定精度的影響程度,以減少該方法對高精測量設備的依賴程度。