付樹兵, 高興宇, 陸佳琪, 趙東升
(桂林電子科技大學(xué) 機(jī)電工程學(xué)院,廣西 桂林 541004)
機(jī)器人的定位誤差95%是由于初始運(yùn)動學(xué)模型不準(zhǔn)確所造成的[1]。提高機(jī)器人定位精度的方法主要有2類:1)提高機(jī)器人零件的加工及裝配精度,該方法對減少機(jī)器人幾何誤差,提高絕對定位精度有一定作用,但是對于高精度作業(yè)要求的機(jī)器人,提高精度效果不明顯,投入成本驟增;2)建立運(yùn)動學(xué)模型,測量末端位置誤差,辨識幾何參數(shù)誤差值,在控制器上進(jìn)行誤差補(bǔ)償,該方法是提高機(jī)器人精度標(biāo)定的主要方法,其中參數(shù)辨識算法是提高定位精度、降低成本最有效、最直接的方法。目前,使用最廣的辨識算法仍然是最小二乘算法,但是傳統(tǒng)的最小二乘算法對部分相關(guān)參數(shù)辨識精度低,且無法對冗余參數(shù)進(jìn)行辨識,從而導(dǎo)致部分參數(shù)誤差無法補(bǔ)償或補(bǔ)償精度低。張虎[1]采用DH建模,先后對比最小二乘法、優(yōu)化算法、遺傳算法和退火算法補(bǔ)償效果,最大定位誤差從17.966 8 mm降至1.350 0 mm,MDH模型比DH模型最大定位誤差降低了約0.001 0 mm。王坤[2]以HSR-JR605機(jī)器人為實(shí)驗(yàn)對象,采用二級標(biāo)定方法,采用不同的方法對幾何參數(shù)誤差和非幾何參數(shù)誤差進(jìn)行補(bǔ)償,機(jī)器人的平均定位誤差由4.111 3 mm降至1.060 8 mm。目前機(jī)器人標(biāo)定的最大定位誤差大多數(shù)還停留在毫米級。為此,提出一種基于分步式自適應(yīng)學(xué)習(xí)參數(shù)辨識方法,此方法辨識精度高,辨識結(jié)果穩(wěn)定,算法程序化方便,可執(zhí)行性強(qiáng),補(bǔ)償后最大定位誤差降低至0.2 mm以內(nèi)。
目前的工業(yè)機(jī)器人仍然主要采用經(jīng)典的D-H模型建模。此模型下,當(dāng)機(jī)器人相鄰關(guān)節(jié)旋轉(zhuǎn)軸線平行或近乎平行時,存在奇異點(diǎn),對末端位置精度影響很大[3-4]。為了減少辨識參數(shù),采用D-H模型與MDH模型相結(jié)合的運(yùn)動學(xué)模型,在平行或近乎平行的關(guān)節(jié)間引入繞Y軸的旋轉(zhuǎn)參數(shù)β,在不平行的關(guān)節(jié)間仍保留傳統(tǒng)的D-H模型。
以歐姆龍公司的Viper650機(jī)器人為實(shí)驗(yàn)對象,結(jié)構(gòu)參數(shù)名義值如表1所示,坐標(biāo)關(guān)系圖如圖1所示,MATLAB仿真各參數(shù)誤差預(yù)設(shè)值如表2所示。
表1 運(yùn)動學(xué)參數(shù)名義值
表2 運(yùn)動學(xué)參數(shù)誤差預(yù)設(shè)值
圖1 Viper650機(jī)器人坐標(biāo)關(guān)系圖
根據(jù)圖1,相鄰的2個關(guān)節(jié)坐標(biāo)系間的D-H變換矩陣為
(1)
其中,2、3關(guān)節(jié)間的MDH變換矩陣為
A2=
(2)
則機(jī)器人位姿矩陣
(3)
其中:n(nx,ny,nz)、o(ox,oy,oz)、a(ax,ay,az)為機(jī)器人末端法蘭相對于基坐標(biāo)系的姿態(tài)向量;p(px,py,pz)為機(jī)器人末端執(zhí)行器的位置向量。
機(jī)構(gòu)的雅可比矩陣能夠反映機(jī)構(gòu)位姿的微小變化以及各部件參數(shù)的微小變化之間的關(guān)系,可以描述機(jī)器人在末端執(zhí)行器微分運(yùn)動和各關(guān)節(jié)微分運(yùn)動之間的聯(lián)系[5]。機(jī)器人運(yùn)動學(xué)誤差模型為
(4)
其中Δp為實(shí)際位置pr與名義位置pn之差。式(4)簡化后模型為
Δp=J·Δδ,
(5)
其中:J為3×25的機(jī)器人誤差系數(shù)矩陣,又稱雅可比矩陣,
(6)
Δδ為25×1的幾何誤差參數(shù)矩陣,
Δδ=(Δθ1…Δθ6,Δd1…Δd6,Δa0…Δa5,
Δα0…Δα5,Δβ2)T。
(7)
因此,求解時應(yīng)選擇測量點(diǎn)數(shù)N>25/3,為了提高辨識精度,一般取N≥9構(gòu)成雅可比矩陣的超定方程組。當(dāng)雅可比矩陣列滿秩時可直接進(jìn)行求解,
Δδ=J-1Δp。
(8)
通過對雅可比矩陣的分析以及參數(shù)辨識的運(yùn)算發(fā)現(xiàn),其秩rank(J)<25,導(dǎo)致求解結(jié)果不唯一。因此,對J矩陣的列向量進(jìn)行冗余性分析,可對J矩陣進(jìn)行QR分解,
(9)
其中:Q為N×N的正交矩陣;R為25×25的上三角矩陣,R矩陣對角線上的元素為J矩陣的列特征值。特征值為0的列代表不起作用參數(shù)所對應(yīng)的參數(shù)列,特征值很小非常接近于0的列代表相關(guān)參數(shù)列,不起作用參數(shù)以及部分相關(guān)參數(shù)屬于冗余參數(shù),在最小二乘算法中無法辨識。通過QR分解獲知冗余參數(shù)后,對獨(dú)立參數(shù)進(jìn)行誤差補(bǔ)償。圖2為QR分解的x、y、z方向的各參數(shù)特征值除以1 000后的折線圖,圖3為傳統(tǒng)最小二乘算法在X、Y、Z軸的參數(shù)辨識折線圖。
圖2 QR分解特征值分布折線圖
圖3 傳統(tǒng)最小二乘算法參數(shù)辨識折線圖
由圖2、3可知,連桿長度誤差Δai和連桿偏移誤差Δdi的QR分解特征值趨于0,連桿長度誤差Δai和連桿偏移誤差Δdi的部分誤差值辨識結(jié)果不一致,同時參數(shù)辨識精度低,這也驗(yàn)證了當(dāng)QR分解特征值趨于0時,最小二乘法參數(shù)辨識精度較低。另外,冗余參數(shù)Δθ6、Δd5、Δa5、Δα6的參數(shù)辨識結(jié)果基本為0,根據(jù)文獻(xiàn)[5],Δθ6和Δα6對末端位置精度的影響基本可忽略,所以最終需要辨識和補(bǔ)償?shù)膮?shù)為23個。其中Δθi、Δαi、Δβ2的辨識采用傳統(tǒng)的最小二乘法,能基本滿足辨識精度要求。Δdi和Δai的辨識采用區(qū)域搜索法,q11、q12、q13、q14、q15、q16代表Δdi區(qū)域搜索后辨識結(jié)果。同理,p11、p12、p13、p14、p15、p16代表Δai區(qū)域搜索后辨識結(jié)果。
相同參數(shù)誤差條件下,不同位姿對末端位置造成的誤差存在差異性[5],因此在進(jìn)行參數(shù)誤差辨識之前,需要獲取n組合適位姿并進(jìn)行誤差測量。為此,采用方差作為參數(shù)辨識穩(wěn)定性指標(biāo)。其中,區(qū)域搜索環(huán)節(jié)步長不能設(shè)置過小,否則在參數(shù)誤差較大的情況下,容易陷入局部最優(yōu),步長過大則會影響區(qū)域搜索分辨率。鑒于此,采用多步長區(qū)域搜索法。具體操作流程為:
1)每個關(guān)節(jié)在活動范圍內(nèi)產(chǎn)生隨機(jī)數(shù),以40組數(shù)據(jù)為單位,對求解的雅可比矩陣進(jìn)行QR分解,區(qū)分獨(dú)立參數(shù)、相關(guān)參數(shù)和不起作用的參數(shù)。
2)補(bǔ)償獨(dú)立參數(shù)誤差。
3)設(shè)置步長0.03 mm進(jìn)行區(qū)域搜索,搜索完畢后進(jìn)行辨識精度微調(diào),分別設(shè)置步長為0.02、0.01 mm進(jìn)行單次搜索,逐次補(bǔ)償后方差為評判標(biāo)準(zhǔn),從100個40組數(shù)據(jù)中找到方差最小的一組,同時參考Δdi和Δai的辨識情況。重復(fù)步驟1)~3),直至篩選出合適的位姿且穩(wěn)定的參數(shù)辨識方程。
4)反求Δθ5和Δα5的經(jīng)驗(yàn)值,經(jīng)驗(yàn)值補(bǔ)償后重新辨識參數(shù)誤差。
5)重新設(shè)定誤差值,驗(yàn)證整體的參數(shù)辨識效果,證明本方法的辨識精度和可靠性。
經(jīng)實(shí)驗(yàn)證明,采用最小二乘法進(jìn)行參數(shù)辨識,Δθ5的辨識結(jié)果總是大于預(yù)設(shè)值,Δα5的辨識結(jié)果總是小于預(yù)設(shè)值,為了使區(qū)域搜索法參數(shù)誤差辨識結(jié)果更加精準(zhǔn),需要對這2個參數(shù)分別乘以一個經(jīng)驗(yàn)值。實(shí)驗(yàn)證明,這個經(jīng)驗(yàn)值不是定值。關(guān)節(jié)角Δθ5和扭角Δα5的誤差變化對Δθ5和Δα5的辨識精度影響不大,但會隨桿長偏差Δai和連桿偏移誤差Δdi的變化而變化。有無經(jīng)驗(yàn)值補(bǔ)償對整體定位精度影響不是很大,只會影響部分相關(guān)參數(shù)的辨識精度,所以可以先初步辨識各參數(shù)誤差,然后計算當(dāng)前參數(shù)誤差需要的經(jīng)驗(yàn)值。步驟3)是整個參數(shù)辨識的關(guān)鍵,主流程圖和區(qū)域搜索流程圖如圖4、5所示。
圖4、5中,Vr1代表當(dāng)前參數(shù)誤差補(bǔ)償后的方差,通過不斷遍歷,將Vr1最小值賦值給Vr。Vr2代表正向搜索參數(shù)誤差補(bǔ)償后方差,Vr3代表負(fù)向搜索參數(shù)誤差補(bǔ)償后方差。n1根據(jù)誤差預(yù)估值而定,l為搜索步長。暫定n1為40,li為0.03,則最終區(qū)域搜索區(qū)間為[-1.2,1.2]。輸出結(jié)果中,Mx、Vr、Av分別為參數(shù)誤差補(bǔ)償后的最大定位誤差、方差及平均誤差,Er為最終辨識的誤差參數(shù)矩陣,Tr為從隨機(jī)數(shù)中選取的40組較佳辨識位姿矩陣,Tr=[Tr1Tr2Tr3Tr4Tr5Tr6]T。若測量點(diǎn)選擇太少,部分參數(shù)的辨識精度可能會發(fā)生較大跳變,最終導(dǎo)致部分參數(shù)的補(bǔ)償精度不足;若測量點(diǎn)太多,一方面會增加參數(shù)的辨識時間,另一方面測量組數(shù)據(jù)增加時,辨識精度的提高不明顯,最終選定測量點(diǎn)數(shù)為40。測量位姿的確定猶如機(jī)器學(xué)習(xí)和訓(xùn)練的過程,根據(jù)隨機(jī)數(shù)的變化,不斷更新獲取最佳辨識位姿,辨識精度也不斷提高。
圖4 主流程圖
根據(jù)流程圖選出測量位姿,并進(jìn)行仿真實(shí)驗(yàn)。設(shè)置較小參數(shù)誤差和較大參數(shù)誤差2種情況,分別對Δθ5和Δα5有無經(jīng)驗(yàn)值補(bǔ)償?shù)谋孀R進(jìn)行對比。表3為不同預(yù)設(shè)值參數(shù)辨識結(jié)果對比。從表3可以看出:
1)Δθ5和Δα5的辨識精度對Δd5和Δa5的辨識結(jié)果影響很大。從QR分解的特征值分析,Δd5和Δa5屬于相關(guān)性較強(qiáng)的參數(shù),傳統(tǒng)最小二乘法對其辨識結(jié)果趨于0,為無法辨識。
2)Δθ5和Δα5的辨識精度對其他參數(shù)的辨識波動基本可以忽略,可以先根據(jù)初步辨識結(jié)果反求Δθ5和Δα5的經(jīng)驗(yàn)值,然后進(jìn)行二次參數(shù)辨識。
圖6為第1組誤差預(yù)設(shè)值未標(biāo)定前,X、Y、Z軸定位誤差分布,圖7~9為第1組誤差預(yù)設(shè)值參數(shù)辨識并補(bǔ)償誤差后的定位誤差折線圖。圖10~12為第2組誤差預(yù)設(shè)值參數(shù)辨識并補(bǔ)償后的定位誤差折線圖。從圖6~12可知:
圖5 區(qū)域搜索流程圖
表3 不同預(yù)設(shè)值參數(shù)辨識結(jié)果對比
圖6 未標(biāo)定前誤差折線圖
圖7 第1組X軸誤差分布折線圖
圖8 第1組Y軸誤差分布折線圖
圖9 第1組Z軸誤差分布折線圖
圖10 第2組X軸誤差分布折線圖
圖11 第2組Y軸誤差分布折線圖
1)當(dāng)整體參數(shù)都存在微小誤差時,對機(jī)器人末端位置的精度影響較大。
2)區(qū)域搜索法比傳統(tǒng)的最小二乘法參數(shù)辨識精度更高,誤差的補(bǔ)償效果更好。
3)當(dāng)參數(shù)誤差Δθ5和Δα5較小時,有無經(jīng)驗(yàn)值補(bǔ)償對定位誤差精度的提高效果不明顯;當(dāng)參數(shù)誤差Δθ5和Δα5較大時,經(jīng)驗(yàn)值補(bǔ)償可一定程度上提高機(jī)器人定位精度,特別是Z軸的定位精度。
4)Δθ5、Δd5、Δa5、Δα5誤差值對末端定位精度影響較小。
2種算法的誤差對比如表4所示。由表4可知,第1組數(shù)據(jù),與標(biāo)定前相比,區(qū)域搜索算法的最大定位誤差降低了99.33%,方差降低了99.99%,平均誤差降低了99.62%;與傳統(tǒng)最小二乘法對比,最大定位誤差降低了86.73%,方差降低了98.74%,平均誤差降低了85.38%。第2組數(shù)據(jù),與標(biāo)定前相比,
圖12 第2組Z軸誤差分布折線圖
表4 2種算法的誤差對比mm
區(qū)域搜索算法的最大誤差降低了98.95%,方差降低了99.99%,平均誤差降低了99.39%;與傳統(tǒng)最小二乘法相比,最大定位誤差降低了51.90%,方差降低了81.61%,平均誤差降低了98.76%。這也驗(yàn)證了基于區(qū)域搜索法參數(shù)辨識的高精度和高可靠性。
針對工業(yè)機(jī)器人標(biāo)定環(huán)節(jié)中最小二乘法部分參數(shù)辨識不穩(wěn)定、冗余參數(shù)無法辨識等問題,提出了一種分步式自適應(yīng)學(xué)習(xí)參數(shù)辨識方法??紤]到相同誤差值情況下,不同位姿對末端位置精度的影響各不相同,同時,不同位姿對參數(shù)辨識精度也會存在差異,為此,采用隨機(jī)數(shù)方法,MATLAB遍歷仿真,自適應(yīng)學(xué)習(xí)當(dāng)前型號機(jī)器人參數(shù)辨識的最佳位姿測量點(diǎn),測量點(diǎn)對相同型號的機(jī)器人參數(shù)辨識同樣適用,后續(xù)的參
數(shù)辨識可直接跳過測量位姿選取環(huán)節(jié)。經(jīng)驗(yàn)值的補(bǔ)償可提高相關(guān)參數(shù)的辨識精度,從而提高機(jī)器人整體定位精度。但單步長搜索分辨率不能設(shè)置過小,否則當(dāng)參數(shù)誤差值較大情況下,可能會陷入局部最優(yōu)。MATLAB仿真結(jié)果表明,機(jī)器人最大定位誤差降低至0.2 mm,證明本方法是有效的,為機(jī)器人精度標(biāo)定的實(shí)施提供了理論依據(jù)。