李 軍, 張觀東
(蘭州交通大學 自動化與電氣工程學院,蘭州 730070)
對于機器人軌跡跟蹤控制系統(tǒng)設計而言,建立準確且可靠的系統(tǒng)模型,有利于改善控制的動靜態(tài)品質[1]。但是在實際工程中,由于機器人是一個非線性和不確定性系統(tǒng),難以獲取其精確的數(shù)學模型。因此,實際中常采用神經網絡[2-3]和模糊系統(tǒng)[4]等方法對機器人建模與辨識,以實現(xiàn)對機器人的高精度跟蹤控制。近年來,SVM[5-7]、ELM(Extreme Learning Machine)[8-9]等新的計算智能方法在一般非線性系統(tǒng)辨識、機器人建模與控制方面也已取得成功應用。
SVM方法在算法實現(xiàn)中將優(yōu)化問題的求解轉化對偶的全局二次凸優(yōu)化問題,LS-SVM作為SVM的延伸,僅涉及到求解KKT線性方程組問題,但都存在隨著訓練數(shù)據規(guī)模的增加而引起的核矩陣運算困難等問題。另外一類如KPCA[10]等方法也存在著求解過程中內存消耗較大的類似問題。文獻[11]提出一種FVS方法,它將輸入數(shù)據通過核技術映射至高維特征空間,從特征空間上的訓練數(shù)據集中選取相關的數(shù)據向量構成特征空間的一個基底,稱之為特征子空間,再將訓練數(shù)據投影至子空間,應用經典的線性判別或線性回歸方法建立分類或回歸模型,在基準分類及回歸問題上取得了很好的效果。文獻[12]將FVS與支持向量數(shù)據描述(SVDD)方法結合,成功應用于TE化工過程監(jiān)控中。
另一方面,考慮到標準SVM方法不能處理多輸出的問題,通常僅考慮對系統(tǒng)的每一輸出單獨應用單輸出的SVM方法進行辨識或控制,但這忽視了系統(tǒng)多輸出之間的耦合性,具有一定的應用局限性。文獻[13]給出了一種多輸出SVM方法,并成功應用于超光譜圖像的遙感生物物理學參數(shù)估計中。多輸出SVM方法保持了在ε不敏感損失函數(shù)下具有緊湊與稀疏解的優(yōu)點。鑒于FVS與MSVM方法的各自優(yōu)點,針對復雜的機器人系統(tǒng)非線性辨識問題,本文提出一種FVS-MSVM方法,通過應用于液壓驅動機器人油壓辨識、6 自由度(Degree Of Freedom,DOF)工業(yè)機器人PUMA 560逆向運動學辨識及7 DOFSARCOS仿生機器人逆向動力學辨識的實例中,還與現(xiàn)有的其它辨識方法及相關文獻的結果在同等條件進行比較,以驗證本文方法的有效性。
FVS方法在高維特征空間選取相關的數(shù)據,即特征向量,形成特征子空間的基底,從而抓住了特征空間中全部數(shù)據向量的幾何結構特性。
給定數(shù)據{x∈Rn,yi∈RQ},i=1,2,…,M,變換至特征空間F上, 即有x→φ(x)∈RN。 定義X={φ(x1)φ(x2)…φ(xM)}, 核函數(shù)k(xi,xj)=φ(xi)Tφ(xj), 簡記為ki,j, 則有核矩陣K=XTX, 其元素為ki,j。
對核矩陣可進行中心化處理, 特征空間的數(shù)據φ(xi)簡記為φi, 則有數(shù)據均值
(1)
式中:bj=1/M。 因此,核矩陣中心化后為
(2)
式中: 單位矩陣IM∈RM×M, 矩陣BM的列向量為b=(b1,…,bM)T。
(3)
式中:ΦS={φS1,…,φSL}, 權系數(shù)向量ai∈RM×L。
(4)
(5)
為了使δi取得最小值, 則需將式(5)對ai求偏導, 可得
(6)
(7)
因此,
(8)
針對FV的內積, 可定義核矩陣KSS及核函數(shù)向量kSi如下:
式(8)可變形為
(9)
針對F中所有數(shù)據xi(i=1,2,…,M;xi∈Rn)為找到滿足最小化式(9)的特征子空間S, 則有
(10)
由式(10)針對給定的集合S, 可分別定義局部適應度(local fitness)JSi與全局適應度(global fitness)JS,即有
(11)
(12)
由式(11)與式(12)可知,求解式(10)可轉化為
(13)
注意,一旦全體φ(xi)∈S, 式(12)的最大值為1, 式(4)的δi值為0。 因此, 隨著L的增加, 僅需使用(M-L)個余下的數(shù)據計算選取式(13)。
FVS方法是一種前向順序選擇FV的迭代方法。在第一次迭代時,選擇具有最大全局適應度的數(shù)據作為FV, 即使得JS為最大。 與此同時,基于局部適應度JSi選擇下一個候選基向量, 對于目前的基向量而言, 該JSi的值最小, 即在幾何結構上,候選基向量與當前基向量之間夾角θi最大。 除第一次迭代之外,算法實現(xiàn)過程中用最小的JSi選擇新的基向量, 也就是特征向量(FV)并計算全局適應度。JS是單調遞增的, 因為新的FVs與前一次的FVs一樣,可以重構出所有的數(shù)據。隨著迭代過程的進行,所選擇的FVs近似于正交,最終使得數(shù)值解滿足要求且穩(wěn)定。
另外,在每次迭代時,均需計算新的全局適應度,與此同時,還需再次用局部適應度尋找下一個最好的候選FV。為避免計算矩陣的逆,從降低計算復雜度方面考慮,可采用分塊求逆法,僅當KSS不再是數(shù)值可逆時,終止該操作。
為完成算法的遞推實現(xiàn)過程,在第L次迭代過程中,也即選擇第L個FV時, 需由式(11)計算第個局部適應度, 式(12)分子項可表示為
(14)
式中:S(L)={S1,…,SL}表示第L次迭代時的基向量集合, 因此它包含了L個已選擇的FVs。為遞推計算的方便,定義:
(15)
則式(14)等價于
(16)
且有
(17)
式中:kS(L)i∈RL是第(L-1)次迭代時向量kS(L-1)i的增廣, 即第L次迭代時增加了所選擇的FV=SL, 這也表明
S(L)=S(L-1)∪{SL}
(18)
考慮到核矩陣KS(L)S(L)的分塊求逆, 由式(16)及式(17),式(15)變換為
(19)
式中:cL=ψS(L-1)SL-kSLSL為標量,hS(L)i∈RL。
算法的停止條件是JS達到設定值,或者FV達到預置數(shù)目。FVS方法的算法具體實現(xiàn)步驟如下:
步驟1設置迭代終止參數(shù): 全局適應度JS的上界maxFitness, 及應選擇FVs的數(shù)目N并且置迭代次數(shù)L=0及特征子空間S為空, 適應度變量fitness=0,由式(2)對核矩陣K中心化。
步驟4判斷是否達到終止條件,若未達到則重復執(zhí)行步驟3,否則,選取FV的過程結束,S={S1,…,SL}。
第一次迭代時,涉及到全部數(shù)據的核矩陣計算,所以計算復雜度為O(M2),L>1的迭代過程由于使用遞推計算,其計算復雜度為O(ML2)。
FVS方法中的核函數(shù)可以選取常見的高斯核函數(shù),其形式為
k(xi,xj)=exp{-‖xi-xj‖2/(2δ2)}
(20)
特征子空間S被選定后, 所有數(shù)據可投影至該特征子空間中??紤]以點積形式計算xi在S中的投影zi時,zi應為
(21)
考慮以正交投影形式計算xi在S中的投影zi時,zi應為
(22)
考慮到SVM方法在建模方面的優(yōu)勢,將FVS方法看作數(shù)據預處理,可以與SVM方法組合,形成一類新的建模方法。
所有訓練數(shù)據點xi均由式(21)經點積投影至特征子空間,變換后數(shù)據集為(zi,yi)。 由于標準的單輸出ε-SVM無法處理多輸出問題,核嶺回歸(KRR)可處理多輸出問題但失去了解的稀疏性。在單輸出ε-SVM的基礎上, 可給出多輸出ε-SVM方法, 此時需考慮每一單獨輸出之間的耦合關系,可能會獲得更精確的結果。設MSVM的權值矩陣W=[w1,…,wQ], 偏置b=[b1,…,bQ], 需對如下所示的目標函數(shù)進行最小化優(yōu)化求解,即有
(23)
受KRR方法的啟發(fā), 可使用L2范數(shù)的ε不敏感損失函數(shù),各維輸出能在唯一的限制條件下產生單一的支持向量。因此,式(23)中的ε-損失函數(shù)L(u)為
(24)
為了不增加計算復雜度,式(23)的優(yōu)化求解可通過迭代重加權最小二乘(IRWLS)[13]算法進行, 直至找到最優(yōu)解。 令k為迭代次數(shù),Wk,bk為當前解。 首先,對式(23)中的L(u)進行一階泰勒展開, 式(23)的近似表達為
(25)
此時,可對式(24)進行二次逼近,即
(26)
式(26)表明它是一個加權最小二乘問題,權值與考慮yi各個輸出的先驗知識的上一次求解有關。為優(yōu)化式(23),可通過優(yōu)化式(25)求得其下降方向,然后用基于線性搜索算法計算下一步的解。因此, IRWLS算法的具體實現(xiàn)步驟如下:
步驟2由式(25)的解求得WS,bS, 定義式(23)的下降方向為
(27)
步驟3計算下一步的解,即
式中:ηk為步長,它的計算可應用文獻[14]提出的反向跟蹤算法。
求解WS,bS時,由于各維輸出之間無耦合,故可令式(26)的梯度方程為零,即
(28)
式(28)可表示為線性系統(tǒng)方程,即
(29)
式中:yj=[y1j,…,yMj], (Da)ij=[aiδ(i-j)],δ為脈沖函數(shù),Ψ=[φ(z1),…,φ(zM)]T,a=[a1,…,aM]T,I為所有元素為1的列向量。
(30)
式中: (K1)ij=k1(zi,zj)。 對于單輸出的ε-SVM, 則有
(31)
圖1 FVS-MSVM方法的流程圖Fig.1 Flowchart of FVS-MSVM method
液壓驅動機器人(hydraulic actuator)由液壓驅動器中油壓實施控制,即通過液壓驅動器閥門開度位置u控制油壓y的大小,閥門燃油進入驅動器給機器人臂供能。因此,通過控制閥門的開度u,可控制油壓y的大小,進而可控制機器人臂的所處位置。數(shù)據來源于文獻[16],實際采集過程中,閥門的開度位置u為輸入,油壓y為系統(tǒng)輸出,共獲取1 024組數(shù)據。圖2給出了閥門開度位置u與油壓y的實際測量值波形,由圖可知,當閥門開度位置u呈現(xiàn)階躍變化時,由于機械共振現(xiàn)象,油壓測量值顯現(xiàn)出震蕩行為。
圖2 閥門開度與油壓測量值的時間序列Fig.2 Measured values of opening and pressure
對于液壓驅動機器人油壓系統(tǒng),其辨識模型可表示為
(32)
式中:ny,nu分別為模型輸出及輸入的階次。實驗中前一半為訓練數(shù)據,余下部分為測試數(shù)據。取辨識模型的ny=3,nu=2。 FV的最大數(shù)目N=50, 全局適應度閾值JS=0.989, 式(20)中的δ=2。
圖3(a)給出了基于FVS-MSVM液壓驅動機器人油壓在線辨識結果,圖中黑色實線為期望輸出,黑色虛線為FVS-MSVM實際輸出,圖3(b)給出了全局適應度JS與FV數(shù)目之間的變化關系曲線,隨著FV數(shù)目的增加, 當JS=0.989時, FV的數(shù)目為34。由圖3可見,所提方法可呈現(xiàn)出較好的辨識效果。
表1進一步給出了FVS-MSVM方法與其它不同方法的訓練時間對比,及在測試數(shù)據集的辨識結果數(shù)值比較。其中,基于文獻[17]的AR-SOM神經網絡方法, 選取13×14的二維網絡結構, 鄰域寬度σ0=5.65,σT=0.01; 在ELM方法中,隱含層節(jié)點考慮可加性節(jié)點,節(jié)點數(shù)目為30,隱含層節(jié)點參數(shù)在[-1,1]之間隨機確定;KPCA-SVM方法中,取非線性主元為8。由表1可知, FVS-MSVM方法在訓練時間及辨識精度上均具有明顯的優(yōu)勢。
圖3 油壓輸出的辨識結果Fig.3 Identification result of oil pressure output
本文方法還與文獻[16]采用小波神經網絡方法的結果進行了對比。其中,文獻[16]的RMSE=0.467, 本文方法的結果明顯占優(yōu)。
表1 不同方法的性能指標對比Tab.1 Evaluation of performance indicator for different method
采用FVS-LR/SVM實現(xiàn)了對6 DOF工業(yè)機器人PUMA 560逆向運動學系統(tǒng)的辨識以及7 DOF SARCOS仿生機器人動力學系統(tǒng)建模。實驗中,針對不同的辨識對象,分別選取不同的全局適應度閾值與特征子空間基向量數(shù)量N等參數(shù),所有辨識對象FVS均使用高斯核函數(shù)。
本節(jié)實驗選擇FVS-MSVM方法對復雜的PUMA 560工業(yè)機器人的運行軌跡進行建模與重現(xiàn),PUMA 560工業(yè)機器人具有6有自由度,其所有關節(jié)均為旋轉關節(jié),文獻[18]給出PUMA 560機器人D-H (Denavit-Hartenberg)參數(shù)及詳細的工作過程。這個任務的目標是在執(zhí)行可能包含重復狀態(tài)的任一軌跡時,估計PUMA 560機器人手臂的關節(jié)角度。因此,描述末端執(zhí)行器的軌跡的笛卡爾空間 (任務空間)坐標x(t)∈R3為輸入變量,6個關節(jié)角θ(t)∈R6為輸出變量。完成這一任務的逆向運動學辨識模型為
(33)
式中:nx、nθ分別為模型輸入及輸出的階次。
實驗中,使機器人末端執(zhí)行器在任務空間內執(zhí)行“figure-eight”路徑任務,使用文獻[19]的Matlab robotics toolbox,可獲取數(shù)據{x(t),θ(t)}。共收集700組數(shù)據,其中600組為訓練樣本,余下部分為測試樣本。
實驗中,選取FV的最大數(shù)目N=300,全局適應度JS的閾值0.99, 式(20)的δ=5。 令辨識模型中的nθ=9,nx=1。 圖4(a)給出了在測試數(shù)據集上對PUMA 560機器人6個關節(jié)角的模型估計值與實際值的對比結果,圖中的實線為關節(jié)角的實際輸出,虛線為FVS-MSVM模型的估計輸出。圖4(b)給出了FV 與全局適應度JS之間的關系曲線, 當JS達到閾值時, FV等于14,此時,算法停止。圖4(c)則給出了末端執(zhí)行器在笛卡爾空間內再生軌跡與實際的“figure-eight”軌跡對比的效果圖,圖中的符號“?!睘槟┒藞?zhí)行器軌跡的實際輸出,“*”為FVS-MSVM的模型估計輸出。由圖4的結果看出,針對MIMO機器人任務空間的辨識,F(xiàn)VS-MSVM方法具有很好的應用效果。
表2進一步給出了FVS-MSVM方法與其它不同方法的訓練時間對比,以及在測試數(shù)據集的辨識結果數(shù)值比較。其中,基于AR-SOM神經網絡方法, 選取34×36的二維網絡結構,鄰域寬度σ0=3.5,σT=0.01; 在ELM方法中,隱含層節(jié)點考慮可加性節(jié)點,節(jié)點數(shù)目為30,隱含層節(jié)點參數(shù)在[-1,1]之間隨機確定;KPCA-SVM方法中,取非線性主元為12。由表2可知, FVS-MSVM方法無論在訓練時間上還是在辨識精度方面均具有明顯的優(yōu)勢。
圖4 PUMA560機器人逆向運動學辨識結果Fig.4 Identification result of inverse kinematics for PUMA 560
表2 關節(jié)角6辨識結果對比Tab.2 Comparison of identification results for angular trajectories of joint 6
本節(jié)實驗考慮具有7 自由度(DOF)的SARCOS仿生機器人臂的逆動力學建模問題。數(shù)據集取自文獻[20],由48,933輸入-輸出數(shù)據對構成。建模任務是為規(guī)劃機器人的軌跡由某個起始狀態(tài)至規(guī)定狀態(tài),需要在每一時刻確定機器人的關節(jié)位置、速度及加速度,由此計算出為實現(xiàn)這一軌跡所需要的關節(jié)力矩,這是一個逆動力學建模問題。模型輸入的第1~7維為關節(jié)位置,8~14維為關節(jié)速度,15~21維為關節(jié)加速度,模型輸出則為7個關節(jié)轉矩,即由21維輸入映射至7維輸出。由機器人在任務空間中運動約7.5 min,以50 Hz的采樣頻率可獲得數(shù)據。實驗選取第20 000~30 000個數(shù)據對,其中95%為訓練數(shù)據集,余下數(shù)據為測試集。
考慮到訓練數(shù)據的規(guī)模使得計算核矩陣時易導致內存溢出等問題,將數(shù)據分區(qū),然后對每個區(qū)域內的數(shù)據子集進行特征向量選取,最終進行合并,形成一個特征子空間。將訓練數(shù)據按5個分區(qū)分別選取特征向量,每個分區(qū)的FV最大數(shù)目均為N=500,JS的閾值為0.999 98, 核參數(shù)δ=2。
圖5僅給出了基于FVS-MSVM 方法對關節(jié)轉矩2與關節(jié)轉矩4的建模效果與實際值的對比,圖中實線為關節(jié)轉矩的實際輸出,虛線為模型的估計輸出。由圖5看出本文方法具有較好的建模精度。圖6給出了訓練時,數(shù)據分區(qū)1至分區(qū)4的FV與其全局適應度之間的關系曲線。由圖6可知,當各分區(qū)的JS達到預先設置的閾值時,分區(qū)1的FV為136,分區(qū)2的FV為141,分區(qū)3的FV為197,分區(qū)4的FV為128,分區(qū)5的FV為130。因此,總的FV數(shù)目為737。
圖5 基于FVS-MSVM轉矩2與轉矩4辨識結果Fig.5 Comparison of identification results for torque 1 and torque 4 using FVS-MSVM method
圖5僅給出了基于FVS-MSVM 方法對關節(jié)轉矩2與關節(jié)轉矩4的建模效果與實際值的對比,圖中實線為關節(jié)轉矩的實際輸出,虛線為模型的估計輸出。由圖4看出本文方法具有較好的建模精度。圖6給出了訓練時,數(shù)據分區(qū)1至分區(qū)4的FV與其全局適應度JS之間的關系曲線。由圖6可知,當各分區(qū)的JS達到預先設置的閾值時,分區(qū)1的FV為136,分區(qū)2的FV為141,分區(qū)3的FV為197,分區(qū)4的FV為128,分區(qū)5的FV為130。因此,總的FV數(shù)目為737。
表3進一步給出在測試數(shù)據集上,針對關節(jié)轉矩1,本文方法與其他方法的建模結果對比。其中, AR-SOM神經網絡方法,選取16×22的二維網絡結構, 鄰域寬度σ0=80,σT=0.001; ELM方法的隱含層節(jié)點考慮可加性節(jié)點,節(jié)點數(shù)目為40,隱含層節(jié)點參數(shù)在[-1,1]之間隨機確定;KPCA-SVM方法中,取非線性主元為100。由表3可知, FVS-MSVM方法在訓練時間及建模精度上均具有較明顯的優(yōu)勢。
圖6 FV與全局適應度關系曲線Fig.6 FV and global fitness relationship curve
表3 轉矩1辨識結果對比Tab.3 Comparison of identification results using different method for torque1
針對復雜的機器人非線性建模與辨識問題,鑒于FVS與MSVM方法的各自優(yōu)點,本文提出一種FVS-MSVM方法。FVS方法具有對數(shù)據包含的內在特征進行預提取的優(yōu)點,對映射至高維特征空間的數(shù)據,考慮幾何結構,由核技術提取相關的數(shù)據向量,張成高維特征空間的一個基底,所選擇的特征向量形成一個特征子空間。在此基礎上,可將訓練數(shù)據投影至該特征子空間上,基于MSVM方法建立辨識模型,MSVM方法保持了基于標準ε不敏感損失函數(shù)的單輸出SVM方法所具有的緊湊與稀疏解特性。
為驗證FVS-MSVM方法的有效性,應用于液壓驅動機器人的油壓辨識、PUMA 560工業(yè)機器人逆向運動學辨識、SARCOS仿生機器人逆向動力學建模中。在同等條件下與AR-SOM、SVM、LS-SVM、ELM、KPCA-SVM及FVS-LR方法進行了比較。結果表明,所提方法具有很好的建模與辨識精度,模型的泛化性能好。進一步的研究是探討不同核函數(shù)對建模精度的影響,以及延伸應用非線性系統(tǒng)控制中。