茅 晨 高 翔 徐國(guó)政 宋愛(ài)國(guó)
(1.南京郵電大學(xué)自動(dòng)化學(xué)院,南京,210023;2.東南大學(xué)儀器科學(xué)與工程學(xué)院,南京,210096)
傳感器的感知和反饋是機(jī)器人智能化的重要手段之一[1]。六維腕力傳感器安裝于機(jī)器人手腕和手爪之間,用于檢測(cè)機(jī)器人手在作業(yè)時(shí)與所處外界環(huán)境的作用力/力矩的大小及方向[2-4]。由于結(jié)構(gòu)設(shè)計(jì)的原因,六維腕力傳感器存在維間耦合的問(wèn)題,需要采用合適的解耦算法來(lái)消除維間耦合,提高傳感器的測(cè)量精度。常用的解耦算法有基于最小二乘求解標(biāo)定矩陣[5]、基于神經(jīng)網(wǎng)絡(luò)的解耦算法[6]等。前者容易產(chǎn)生病態(tài)矩陣,會(huì)導(dǎo)致解耦精度降低甚至導(dǎo)致解耦結(jié)果錯(cuò)誤[7];后者容易產(chǎn)生局部極小值從而導(dǎo)致過(guò)學(xué)習(xí)的情況[8]。
支持向量回歸機(jī)(Support vector regression,SVR)是在統(tǒng)計(jì)學(xué)理論和最優(yōu)化理論的基礎(chǔ)上發(fā)展起來(lái)的一種機(jī)器學(xué)習(xí)方法,能夠?qū)崿F(xiàn)結(jié)構(gòu)風(fēng)險(xiǎn)最小化,得到全局最優(yōu)解,同時(shí)避免了神經(jīng)網(wǎng)絡(luò)中局部最小值、過(guò)擬合的問(wèn)題[9]。SVR主要應(yīng)用在模式識(shí)別、回歸估計(jì)、概率密度函數(shù)估計(jì)等方面[10-11]。對(duì)六維腕力傳感器進(jìn)行解耦,即是利用標(biāo)定的輸入輸出樣本數(shù)據(jù)對(duì)傳感器的輸出特性進(jìn)行回歸估計(jì)的過(guò)程。因此,本文提出了基于多輸出支持向量回歸機(jī)(Multi-output support vector regression,MSVR)的六維腕力傳感器的解耦算法,并將其應(yīng)用到實(shí)驗(yàn)室研制的六維腕力傳感器上。實(shí)驗(yàn)結(jié)果表明,該算法穩(wěn)定可靠,能顯著提高傳感器的測(cè)量精度。
理想的六維腕力傳感器,每一方向輸出通道的電壓值僅取決于該方向作用力/力矩的大小,與其余五方向作用力/力矩大小無(wú)關(guān)。但實(shí)際上受傳感器的一體化結(jié)構(gòu)設(shè)計(jì)、機(jī)械加工精度、應(yīng)變片橫向效應(yīng)等因素影響[12],幾乎作用到傳感器上的每一維力/力矩分量都會(huì)對(duì)傳感器的各路輸出信號(hào)產(chǎn)生影響,這就是維間耦合[13]。維間耦合模型如圖1所示。
圖 1 中,F(xiàn)=(Fx,F(xiàn)y,F(xiàn)z,Mx,My,Mz)T為傳感器的 6個(gè)力/力矩分量輸入,U=(UFx,UFy,UFz,UMx,UMy,UMz)T為6路電壓分量輸出。由維間耦合模型可知,每一路的輸出電壓值同時(shí)受6個(gè)方向的力/力矩分量影響。必須對(duì)傳感器進(jìn)行解耦,減少維間耦合對(duì)測(cè)量精度的影響。
圖1 維間耦合模型Fig.1 Model of interdimensional coupling
傳感器的標(biāo)定分為靜態(tài)標(biāo)定與動(dòng)態(tài)標(biāo)定[14]。動(dòng)態(tài)標(biāo)定主要用于檢驗(yàn)傳感器動(dòng)態(tài)靈敏度、頻率響應(yīng)等動(dòng)態(tài)特性,靜態(tài)標(biāo)定主要用于測(cè)試傳感器靜態(tài)靈敏度、非線性、靜態(tài)耦合等指標(biāo)。本文研究的是多維腕力傳感器的靜態(tài)耦合,因此采用砝碼重錘式靜態(tài)標(biāo)定方法。其標(biāo)定裝置為本實(shí)驗(yàn)室自行研制的如圖2所示的加載實(shí)驗(yàn)臺(tái)[15]。
圖2 力/力矩加載實(shí)驗(yàn)臺(tái)示意圖Fig.2 Schematic diagram of force/torque loading test bench
六維腕力傳感器固定在分度盤上,傳力軸穿過(guò)傳感器的中軸線。標(biāo)定實(shí)驗(yàn)中力/力矩的加載方式采用拉力方式,通過(guò)調(diào)節(jié)左右滑桿的上下位置,將砝碼的垂直重力轉(zhuǎn)換為水平拉力。利用加載實(shí)驗(yàn)臺(tái),對(duì)六維腕力傳感器分別施加三維空間6個(gè)線性獨(dú)立的標(biāo)準(zhǔn)力/力矩分量。實(shí)驗(yàn)室研制的六維腕力傳感器的滿量程范圍為:Fx,F(xiàn)y,F(xiàn)z方向?yàn)?100~100 N;Mx,My,Mz方向?yàn)?30~30 N·m。力方向每隔20 N作為一個(gè)測(cè)量點(diǎn),Mx,My方向每隔2 N·m、Mz方向每隔1.6 N·m作為一個(gè)測(cè)量點(diǎn),各方向載荷從零開(kāi)始加載至滿量程,再逐步卸載至零。每個(gè)方向重復(fù)標(biāo)定3次,記錄下標(biāo)定數(shù)據(jù)。
在每一次標(biāo)定中,F(xiàn)x,F(xiàn)y,F(xiàn)z方向分別有24個(gè)測(cè)量點(diǎn),Mx,My方向分別有64個(gè)測(cè)量點(diǎn),Mz方向共有76個(gè)測(cè)量點(diǎn),每個(gè)測(cè)量點(diǎn)包含6路電壓輸出值和六維力/力矩輸入值,這些測(cè)量點(diǎn)共同組成一組數(shù)據(jù)。選擇其中兩組作為解耦算法的訓(xùn)練數(shù)據(jù)集;第3組為測(cè)試數(shù)據(jù)集,用來(lái)進(jìn)行誤差分析。
六維腕力傳感器屬于多輸入多輸出系統(tǒng),基于此特性結(jié)合1.1節(jié)提出的維間耦合模型,構(gòu)建了多輸出支持向量回歸機(jī)模型,如圖3所示。其中x,y分別為訓(xùn)練數(shù)據(jù)集的輸入和輸出,m和n分別為輸入輸出的維度。該模型將訓(xùn)練數(shù)據(jù)集空間按照輸出維度分割為n個(gè)子空間,每個(gè)子空間由m維輸入和1維輸出構(gòu)成,然后為每個(gè)子空間構(gòu)建1個(gè)SVR,用以回歸估計(jì)對(duì)應(yīng)子空間的輸出特性。應(yīng)用到六維腕力傳感器,6路電壓分量對(duì)應(yīng)模型中的輸入x,六維力/力矩分量對(duì)應(yīng)輸出,將這6個(gè)子空間的SVR組合即為傳感器的全量程輸出特性。
圖3 多輸出支持向量回歸機(jī)模型Fig.3 Model of multi-output support vector regression
MSVR算法是通過(guò)對(duì)樣本數(shù)據(jù)進(jìn)行訓(xùn)練進(jìn)而得出輸入輸出關(guān)系,實(shí)現(xiàn)對(duì)輸出的預(yù)測(cè)。對(duì)于訓(xùn)練集T={(x1,y1)...(xl,yl)}∈(X×Y)l,其中xi∈X=Rm為輸入,yi∈Y=Rn為輸出,fk(x)為回歸函數(shù),i=1,2,…,l為訓(xùn)練樣本數(shù),k=1,2,…,n,m,n為輸入及輸出變量的維數(shù)。采用ε-帶損失函數(shù)[16]:c(x,y,f(x))=|y-f(x)|ε=max{0,|y-f(x)|-ε},MSVR要解決的原始最優(yōu)化問(wèn)題為
式中:ε=θ-γ為訓(xùn)練時(shí)的精度;θ為測(cè)試時(shí)的精度;γ為損失間隔;C為懲罰參數(shù);ξ,ξ*為間隔松弛變量
引入Lagrange函數(shù)[17],其相應(yīng)的Wolfe對(duì)偶問(wèn)題為
為了測(cè)試本文提出的基于MSVR算法的性能,以實(shí)驗(yàn)室研制的六維腕力傳感器的標(biāo)定數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,分別用傳統(tǒng)的基于最小二乘求解標(biāo)定矩陣的解耦算法以及MSVR算法進(jìn)行解耦,并對(duì)結(jié)果進(jìn)行誤差分析和比較。兩種算法均在MATLAB平臺(tái)下實(shí)現(xiàn)。
任何加載到傳感器上的作用力都能夠分解為三維空間坐標(biāo)系中的3個(gè)力分量Fx,F(xiàn)y,F(xiàn)z和3個(gè)力矩分量Mx,My,Mz,在傳感器的載荷范圍內(nèi)主方向的力/力矩輸入與電壓輸出之間是線性關(guān)系,且輸出電壓可以進(jìn)行線性疊加,則輸入輸出可表示為
式中:F為6×l力分量矩陣(l為訓(xùn)練數(shù)據(jù)樣本數(shù));U為6×l電壓向量矩陣;H為6×6常數(shù)矩陣。
由求解矩陣方程最小二乘估計(jì)量的方法求得常數(shù)矩陣
在對(duì)傳感器進(jìn)行解耦時(shí),自變量為傳感器輸出的6個(gè)電壓向量,而作用在傳感器上的六維力/力矩分量是未知的,其關(guān)系式可表示為
聯(lián)列式(4,6)可求得
式中C即為標(biāo)定矩陣,又叫解耦矩陣,是一個(gè)6×6的矩陣。求解標(biāo)定矩陣C的過(guò)程實(shí)際上就是多元函數(shù)最小二乘擬合的過(guò)程。為了獲得較為準(zhǔn)確的標(biāo)定矩陣,要求標(biāo)定的測(cè)量點(diǎn)數(shù)要遠(yuǎn)大于六維力/力矩傳感器的維數(shù)。
根據(jù)標(biāo)定得到的訓(xùn)練數(shù)據(jù)集,利用MATLAB編程,得到標(biāo)定矩陣C為
基于MSVR解耦算法的實(shí)現(xiàn)步驟如下:
(1)根據(jù)1.2節(jié)的標(biāo)定結(jié)果,得到訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集,將訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集進(jìn)行校零和歸一化預(yù)處理;
(2)按照輸出維度將訓(xùn)練數(shù)據(jù)集拆分成6個(gè)子空間,對(duì)每個(gè)子空間進(jìn)行參數(shù)尋優(yōu),根據(jù)訓(xùn)練數(shù)據(jù)集和得到的最佳參數(shù)C,g,依據(jù)MSVR算法建立回歸模型;
(3)利用回歸模型對(duì)測(cè)試數(shù)據(jù)集進(jìn)行輸出預(yù)測(cè)。
各子空間的回歸模型及算法評(píng)估如表1所示。
表1 回歸模型及算法評(píng)估Tab.1 Regression model and algorithm evaluation
傳感器的精度指標(biāo)通常用綜合誤差(或Ⅰ類誤差)和耦合誤差(或Ⅱ類誤差)[19]來(lái)表示
式中:yi(F.S)表示i方向可施加力(或力矩)的滿量程值;ei(max)表示i方向?qū)嶋H施加的標(biāo)準(zhǔn)力(或力矩)值與預(yù)測(cè)得到的力(或力矩)值之差的最大值;yij(max)表示當(dāng)j方向施加力(或扭矩)值,其他5個(gè)方向無(wú)力(或扭矩)作用時(shí),i方向預(yù)測(cè)得到的最大力(或扭矩)值。Ⅰ類誤差是反映傳感器線性度好壞的指標(biāo),Ⅱ類誤差是反映傳感器各維度間耦合情況的指標(biāo)。
對(duì)第3組測(cè)試數(shù)據(jù)集,分別計(jì)算其在未解耦情況下、基于最小二乘求解標(biāo)定矩陣的解耦算法下(法1解耦)、以及本文提出的基于MSVR的解耦算法下(法2解耦)的兩類誤差,具體結(jié)果見(jiàn)表2。
為保證論文的嚴(yán)謹(jǐn)性,本文利用虛擬樣機(jī)技術(shù)對(duì)樣機(jī)模型進(jìn)行虛擬標(biāo)定[20],獲得更多仿真數(shù)據(jù)在兩種解耦算法下的精度對(duì)比,使實(shí)驗(yàn)結(jié)果更具有說(shuō)服力。具體步驟如下[15]:(1)根據(jù)實(shí)際傳感器參數(shù)尺寸,在ANSYS軟件下建立三維模型;(2)對(duì)模型進(jìn)行網(wǎng)格劃分,劃分后的模型共有296 328個(gè)節(jié)點(diǎn),200 381個(gè)單元;(3)按照彈性體的固定方式,對(duì)傳感器設(shè)置固定約束;(4)對(duì)傳感器施加滿量程范圍內(nèi)的、同實(shí)際標(biāo)定過(guò)程中相同的等間距力/力矩加載,以實(shí)現(xiàn)實(shí)際場(chǎng)景的遍歷,根據(jù)ANSYS的靜力學(xué)分析得出各方向應(yīng)變?chǔ)糯笮?;?)根據(jù)式(11)計(jì)算各路電壓分量大小。
式中:K=2.1為應(yīng)變片的靈敏系數(shù);E=12 V為應(yīng)變電橋的供電電壓。由此得到虛擬標(biāo)定數(shù)據(jù)集,計(jì)算在上述3種情況下的兩類誤差,如表3所示。
表2 傳感器未解偶時(shí)以及解耦后的精度對(duì)比(測(cè)試數(shù)據(jù)集)Tab.2 Precision comparison before and after decoupling(testing dataset) %
表3 傳感器未解偶時(shí)以及解耦后的精度對(duì)比(虛擬標(biāo)定數(shù)據(jù)集)Tab.3 Precision comparison before and after decoupling(virtual calibration dataset) %
分析表2,3可知,由于實(shí)驗(yàn)室研制的六維腕力傳感器對(duì)于主方向有著較好的線性度,在未解偶的情況下,傳感器的Ⅰ類誤差就比較小,解耦算法很難在此基礎(chǔ)上進(jìn)一步提高精度,兩種解耦算法解耦后的Ⅰ類誤差都在0.7%以內(nèi),因此兩種解耦算法對(duì)Ⅰ類誤差的影響不大。
未解耦時(shí),雖然各方向的Ⅰ類誤差很小,但Ⅱ類誤差很大,說(shuō)明維間耦合很大,傳感器已不能正常工作。經(jīng)兩種解耦算法解耦后,各方向的Ⅱ類誤差有著顯著減少,兩種解耦算法都能減小維間耦合的干擾。但是從表2,3的數(shù)據(jù)可以看出,基于最小二乘求解標(biāo)定矩陣的解耦算法對(duì)Fz方向的解耦效果很不理想,解耦后耦合誤差依然在9%以上;對(duì)其他5個(gè)方向的力/力矩解耦效果也一般,耦合誤差在0.8%~4%之間浮動(dòng)?;贛SVR的解耦算法的解耦效果比較穩(wěn)定,對(duì)各個(gè)方向的解耦結(jié)果較均衡,解耦后耦合誤差控制在2.5%以內(nèi)。
同時(shí),基于最小二乘求解標(biāo)定矩陣的解耦算法是建立在矩陣方程式求解的基礎(chǔ)上,如果在傳感器標(biāo)定實(shí)驗(yàn)過(guò)程中數(shù)據(jù)存在粗大誤差,或者傳感器的電壓輸出值域空間維數(shù)大于施加的力/力矩空間維數(shù)時(shí),計(jì)算式(7)中的H可能會(huì)接近共線性,進(jìn)而導(dǎo)致HTH成為病態(tài)矩陣,造成(HTH)-1中元素取值的極度膨脹,最終影響標(biāo)定矩陣C的穩(wěn)健性和精確度。而基于MSVR的解耦算法求解過(guò)程中設(shè)有間隔松弛變量ξ,ξ*,能有效剔除數(shù)據(jù)中的粗大誤差。
綜上所述,基于MSVR的解耦算法解耦效果較好且較為穩(wěn)定,能有效抑制維間耦合的干擾,具有較高的解耦精度。
本文研究了基于MSVR的解耦算法。以實(shí)驗(yàn)室研制的六維腕力傳感器為例進(jìn)行標(biāo)定并獲得標(biāo)定數(shù)據(jù),應(yīng)用傳統(tǒng)解耦算法以及MSVR算法對(duì)其進(jìn)行解耦計(jì)算。結(jié)果表明,基于MSVR的解耦算法可以避免病態(tài)矩陣的產(chǎn)生,具有高可靠性和高解耦精度,可以推廣應(yīng)用到各種維度的傳感器的解耦上。該解耦算法已經(jīng)應(yīng)用到多種實(shí)際工程案例中,例如安裝在肌電假手腕部用于感知外界作用力的三維力傳感器、具有力反饋功能的遠(yuǎn)程遙操作手控器、實(shí)驗(yàn)艙機(jī)械臂六維腕力傳感器、人服系統(tǒng)作業(yè)能力多維力/力矩綜合測(cè)試系統(tǒng)等,均取得了很好的解耦效果,滿足實(shí)際工程精度要求。