劉江南,謝 瑋,馬家辰,2
(1.哈爾濱工業(yè)大學(威海)信息與電氣工程學院,山東 威海 264209;2.哈爾濱工業(yè)大學航天學院,黑龍江 哈爾濱 150001)
機械手的運動學逆解[1]是已知機器人末端執(zhí)行器在笛卡兒空間中的位置和姿態(tài),求取機械手各個關節(jié)變量值的過程。運動學逆解的求取通常很復雜。傳統(tǒng)的求解運動學逆解的方法主要有3 種:幾何法[2-3]、代數(shù)法[4-7]和迭代法[8-9]。迭代法求取運動學逆解只能得到單一的解,且該解與起始點有關。代數(shù)法是利用數(shù)學變換后矩陣對應元素相等,聯(lián)立方程得到關節(jié)變量的值,計算過程中可能出現(xiàn)多解問題以及關節(jié)值象限的判斷問題,這些都是耗時且復雜的。幾何法求解主要是利用三角函數(shù),求解過程難以避免冗長的數(shù)學步驟。當機械手關節(jié)較多時,利用上述3 種傳統(tǒng)方法求解必將是一項耗時的工程。
人工神經(jīng)網(wǎng)絡[10]是求解運動學逆解的另一方法,當實時性要求高時,利用人工神經(jīng)網(wǎng)絡求解運動學逆解的優(yōu)勢得到了顯現(xiàn),比如機器人的實時控制。傳統(tǒng)方法無法實現(xiàn)對于高自由度機械手模型運動學逆解的實時精確表述[11-12]。
模糊邏輯與神經(jīng)網(wǎng)絡的結(jié)合是近年來智能計算學科的一個重要研究方向[13]。兩者結(jié)合形成的模糊神經(jīng)網(wǎng)絡,兼具模糊邏輯和神經(jīng)網(wǎng)絡的優(yōu)點,為復雜系統(tǒng)的控制和建模提供了有效的工具。本文將以SCARA 機器人為研究對象,利用自適應神經(jīng)模糊推理系統(tǒng)實現(xiàn)機器人運動學逆解的求取,并與傳統(tǒng)基于BP神經(jīng)網(wǎng)絡求取運動學逆解的方法進行仿真對比分析。
機械手的運動學正解指的是在已知機械手的桿件參數(shù)和關節(jié)變量值的前提下,來推算末端執(zhí)行器的位置和姿態(tài)的過程[14]。機械手的運動學逆解指的是已知末端執(zhí)行器的位置和姿態(tài),以及機械手的關節(jié)桿件參數(shù),求取關節(jié)變量值的過程。如圖1 所示。
圖1 運動學正解與逆解
在實際應用中,通常是已知機械手末端執(zhí)行器在笛卡兒空間中的位置和姿態(tài),通過機器人逆運動學求取關節(jié)空間中關節(jié)變量值。因此對于笛卡兒坐標空間中的軌跡規(guī)劃,如何快速準確求取運動學逆解,對于提高軌跡規(guī)劃效率具有重要意義。
自適應神經(jīng)模糊推理系統(tǒng)(ANFIS)兼具模糊理論和人工神經(jīng)網(wǎng)絡的優(yōu)點,具有良好的非線性擬合能力。ANFIS 本質(zhì)上是基于Takagi-Sugeno 模型的模糊神經(jīng)網(wǎng)絡建立的。
基于Takagi-Sugeno 模型的模糊神經(jīng)網(wǎng)絡[9]是基于模糊系統(tǒng)模型構建的,網(wǎng)絡結(jié)構中的節(jié)點都依據(jù)實際背景物理意義而構建,各節(jié)點參數(shù)初值的設定可以利用模糊理論進行模糊定性描述。由于同時具有神經(jīng)網(wǎng)絡的特點,因此學習算法可以很快地對輸入輸出的對應關系進行描述。模糊神經(jīng)網(wǎng)絡相比于模糊邏輯理論,具有節(jié)點參數(shù)的收斂速度快,易于調(diào)整的特點。因此基于Takagi-Sugeno 模型的模糊神經(jīng)網(wǎng)絡可以同時具備模糊理論易于描述復雜系統(tǒng)的特點和神經(jīng)網(wǎng)絡強大的非線性擬合能力。
圖2 描述的是多輸入多輸出的模糊神經(jīng)網(wǎng)絡的構造圖,從圖中可以看出,該網(wǎng)絡由前件網(wǎng)絡和后件網(wǎng)絡2 部分組成,前件網(wǎng)絡主要是對模糊規(guī)則進行匹配,產(chǎn)生對應的適應度。后件網(wǎng)絡主要是計算每一條規(guī)則的后件。
圖2 基于Takagi-Sugeno 模型模糊神經(jīng)網(wǎng)絡的結(jié)構構造圖
前件網(wǎng)絡由4 層組成。第一層為輸入層。其作用是將x=[x1x2...xn]T輸入變量值傳遞至第二層,每個節(jié)點對應一個輸入值。第二層的作用是對每一個輸入變量值進行模糊分割,模糊分割數(shù)為m,并計算出每個分割的隸屬度函數(shù)。第三層是計算出每個分割的適應度函數(shù),其中各節(jié)點分別與模糊規(guī)則相對應。第四層實現(xiàn)的是歸一化計算。
后件網(wǎng)絡具有規(guī)則的結(jié)構,由多個子網(wǎng)構成。每個子網(wǎng)的第一層的作用是將輸入變量傳遞至第二層中,起著傳遞變量的作用。第二層中節(jié)點個數(shù)對應前件網(wǎng)絡的分割數(shù)m,各節(jié)點有對應的適應規(guī)則,輸出各規(guī)則的后件。最后一層計算系統(tǒng)的輸出。
基于Takagi-Sugeno 模型的模糊神經(jīng)網(wǎng)絡結(jié)構簡化圖如圖3 所示。
圖3 基于Takagi-Sugeno 模型的模糊神經(jīng)網(wǎng)絡結(jié)構簡化圖
可以根據(jù)算法的需要對各輸入元素的模糊分割數(shù)事先進行設置,因此學習算法重點對后件網(wǎng)絡中連接權值以及前件網(wǎng)絡中隸屬度函數(shù)的相關參數(shù)中心值cij、寬度值σij進行學習。設誤差代價函數(shù)為:
其中ti和yi分別代表期望輸出和實際輸出。參數(shù)的學習算法為:
其中,j=1,2,...,m;i=0,1,...,n;k=1,2,...,r。
前件網(wǎng)絡的第二層各節(jié)點隸屬函數(shù)的中心值cij和寬度σij的學習算法為:
其中,β >0,為學習率;i=1,2,...n;j=1,2,...,m。
如圖4 所示,利用D-H 表示法對SCARA 機械手進行表示。SCARA 機械手具有4 個自由度,θ1、θ2和θ4為3 個旋轉(zhuǎn)關節(jié),具有旋轉(zhuǎn)自由度;d3為滑動關節(jié),具有位移自由度。
圖4 SCARA 型機械手的D-H 模型表示
由于本次實驗選取的目標曲線為平面曲線,滑動關節(jié)d3為一恒定值。θ4與末端執(zhí)行器的姿態(tài)有關,因此只需要考慮θ1和θ2這2 個自由度。本次實驗雖然以平面曲線為例,但是求解方法同樣適用于三維空間曲線。如圖5 所示,左上角為笛卡兒空間中的花型目標曲線。
圖5 SCARA 機器人繪制笛卡兒空間曲線俯視圖
對目標曲線進行分段討論,在每一段笛卡兒曲線上選取起始點、終止點,以及少量中間點,利用運動學逆解的幾何法式(8)、式(9)和式(10)求得每個點對應關節(jié)變量θ1和θ2。
其中px、py和pz為機械手末端執(zhí)行器所在位置的笛卡兒坐標。θ1和θ2為機械手前2 個自由度關節(jié)值。機械手幾何模型及幾何求解表示如圖6 所示。
圖6 機械手幾何模型及幾何求解表示
每段曲線各點的θ1、θ2和d3分別構成了3 組關節(jié)值序列。以θ1的關節(jié)值序列為例,利用三次樣條插值,將得到的關節(jié)變量序列進行插值,求得關節(jié)空間中關節(jié)變量的變化曲線。如圖7 所示。
圖7 關節(jié)變量θ1角度曲線
同理可分別求得θ2和d3的關節(jié)值曲線。關節(jié)值曲線的自變量都是時間t,同一時間點的關節(jié)值θ1、θ2和d3與對應笛卡兒空間目標點坐標px、py和pz構成一組訓練樣本。
根據(jù)上述方法在關節(jié)空間曲線上隨機取6 000組樣本值,其中5 900 組數(shù)據(jù)用于ANFIS 的訓練,100組樣本用于測試訓練結(jié)果的準確性。
3.2.1 BP 神經(jīng)網(wǎng)絡
本小節(jié)用BP 神經(jīng)網(wǎng)絡求解逆解意在作為ANFIS方法的對比。BP 算法是廣泛用于非線性擬合的神經(jīng)網(wǎng)絡算法之一[15]。BP 算法基于誤差反向傳播的思想,采用最速下降法的方式將誤差值往后傳遞過程中修正各個節(jié)點的連接權值[16],直到誤差代價函數(shù)值最小[17]。
圖8 為BP 神經(jīng)網(wǎng)絡求取運動學逆解的示意圖,笛卡兒空間中目標點(x,y,z)經(jīng)過BP 神經(jīng)網(wǎng)絡,求得四自由度機械手的4 個關節(jié)變量(θ1,θ2,d3,θ4)。該神經(jīng)網(wǎng)絡有3 個輸入節(jié)點對應3 個笛卡兒坐標。中間隱含層節(jié)點個數(shù)為30 個,輸出層節(jié)點對應機械手的4 個自由度[18]。
圖8 利用BP 神經(jīng)網(wǎng)絡求取運動學逆解示意圖
首先將訓練樣本隨機排序,然后進行歸一化處理,將訓練數(shù)據(jù)統(tǒng)一到相同的數(shù)量級,保證每個樣本的影響力。調(diào)用Matlab 中newff 函數(shù)實現(xiàn)神經(jīng)網(wǎng)絡結(jié)構構建,隱含層節(jié)點個數(shù)選擇為30 個,2 層節(jié)點傳遞函數(shù)選取雙曲正切S 形傳遞函數(shù)(tansig)以及線性傳遞函數(shù)(purelin)。BP 神經(jīng)網(wǎng)絡的訓練算法為有動量的梯度下降算法(traingdm),網(wǎng)絡的權值閾值學習函數(shù)選取learngdm 型。學習率(η)和動量項因子(α)分別設定為0.3 和0.8。迭代容許誤差值為0.000 121。調(diào)用神經(jīng)網(wǎng)絡訓練函數(shù)train 實現(xiàn)網(wǎng)絡訓練。
3.2.2 ANFIS 訓練過程
如圖9 所示,笛卡兒空間中的目標點(x,y,z)直接傳輸給第一層的3 個節(jié)點。第二層將每個輸入變量進行模糊化,每個輸入變量對應著m 個模糊分割。μ 為根據(jù)需要選擇的隸屬度函數(shù)。第三層計算出每條規(guī)則的激勵強度。第四層實現(xiàn)歸一化計算。第五層計算輸出的關節(jié)變量值,節(jié)點數(shù)對應4 個自由度。
圖9 ANFIS 求取運動學逆解示意圖
在Matlab 模糊邏輯工具箱中,提供了對ANFIS的建模構造方法,相應的函數(shù)為anfis(),由于anfis函數(shù)只支持多輸入單輸出(MISO)系統(tǒng)的建模,可將多輸入多輸出(MIMO)模型分解成為多個多輸入單輸出(MISO)模型。因此本實驗三輸入四輸出模型可分解為4 個三輸入單輸出模型。
在具體實施過程中,首先對數(shù)據(jù)進行歸一化處理,采用genfis1 函數(shù)由訓練數(shù)據(jù)直接生成神經(jīng)模糊推理系統(tǒng),采用鐘型隸屬度函數(shù)(gbellmf),隸屬度函數(shù)個數(shù)定義為5 個,實驗中設置初始步長為0.01,步長遞減速度為0.9,步長增長速度為1.1。將測試數(shù)據(jù)代入,反歸一化后可得測試結(jié)果。
可以接受的誤差均方值設置為0.000 121。實驗結(jié)果如下。
1)ANFIS 預測輸出值與BP 神經(jīng)網(wǎng)絡預測輸出值對比。
圖10~圖13 是100 組測試樣本的測試結(jié)果,從這4 幅圖可以看出,BP 神經(jīng)網(wǎng)絡求取的運動學逆解與期望值略有偏差,而ANFIS 求取的運動學逆解與期望值偏差非常小。
圖10 BP 神經(jīng)網(wǎng)絡預測結(jié)果
圖11 BP 神經(jīng)網(wǎng)絡預測結(jié)果局部放大圖
圖12 ANFIS 預測結(jié)果
圖13 ANFIS 預測結(jié)果局部放大圖
2)ANFIS 預測誤差值與BP 神經(jīng)網(wǎng)絡預測誤差值對比。
從圖14 和圖15 的對比可以看出,BP 求解的誤差在0.08 弧度左右,而ANFIS 求解的誤差為6 ×10-4弧度??梢姡珹NFIS 求解精度高。
圖14 BP 神經(jīng)網(wǎng)絡預測誤差值
圖15 ANFIS 預測誤差值
3)ANFIS 預測誤差百分比與BP 神經(jīng)網(wǎng)絡預測誤差百分比對比。
從圖16 和圖17 的對比中可以看出,ANFIS 求解運動學逆解的誤差百分比為5 ×10-4,更加穩(wěn)定。
圖16 BP 神經(jīng)網(wǎng)絡預測誤差百分比
圖17 ANFIS 預測誤差百分比
4)算法訓練時間對比。
分別對2 種算法進行5 次訓練,訓練時間如表1所示。
表1 算法訓練時間對比
從表1 時間對比中可以看出,ANFIS 將三輸入四輸出分解成為4 個單輸出,運算次數(shù)大大增加,但是在相同的容許誤差條件下,運算時間仍然遠低于BP求解時間。
本文以SCARA 四自由度機械手為研究對象,提出了一種利用ANFIS 求取運動學逆解的方法,通過實驗驗證了ANFIS 求取運動學逆解的優(yōu)越性。ANFIS 具有運算速度快、精度高、可移植性強的特點,滿足求取機器人運動學逆解的實時性要求。與BP 算法相比較,預測輸出值的精確度明顯高于BP 算法,預測誤差小。除此之外,在相同可接受誤差條件下,算法運行時間明顯小于BP 算法的運行時間。
[1]蔣新松.機器人學導論[M].沈陽:遼寧科學技術出版社,1994.
[2]Featherstone R.Position and velocity transformations between robot end-effector coordinates and joint angles[J].The International Journal of Robotics Research,1983,2(2):35-45.
[3]Lee C S G.Robot arm kinematics,dynamics,and control[J].Computer,1982,15(12):62-80.
[4]Clark C M,Mills J K.Robotic system sensitivity to neural network learning rate:Theory,simulation,and experiments[J].The International Journal of Robotics Research,2000,19(10):955-968.
[5]Manocha D,Canny J F.Efficient inverse kinematics for general 6R manipulators[J].IEEE Transactions on Robotics and Automation,1994,10(5):648-657.
[6]Paul R P,Shimano B.Kinematic control equations for simple manipulators[C]// Proceedings of the 1978 IEEE Conference on Decision and Control Including the 17th Symposium on Adaptive Processes.1979:1398-1406.
[7]Fu K S,Gonzalez R C,Lee C S G.Robotics:Control,Sensing,Vision,and Intelligence[M].McGraw-Hill Education,1987.
[8]Korein J U,Badler N I.Techniques for generating the goaldirected motion of articulated structures[J].IEEE Computer Graphics and Applications,1982,2(9):71-81.
[9]Ahmad Z,Guez A.On the solution to the inverse kinematic problem[C]// Proceedings of the 1990 IEEE International Conference on Robotics and Automation.1990,3:1692-1697.
[10]Xia Youshen,Wang Jun.A dual neural network for kinematic control of redundant robot manipulators[J].IEEE Transactions on Systems,Man,and Cybernetics,Part B:Cybernetics,2001,31(1):147-154.
[11]K?ker R,?z C,?akar T,et al.A study of neural network based inverse kinematics solution for a three-joint robot[J].Robotics and Autonomous Systems,2004,49(3-4):227-234.
[12]楊萍,劉曉琴,張淑珍.基于BP 網(wǎng)絡的水輪機修復專用機器人運動學逆解分析[J].機械設計,2005,22(6):36-38.
[13]李國勇.智能控制及其MATLAB 實現(xiàn)[M].北京:電子工業(yè)出版社,2005.
[14]蔡自興.機器人學[M].北京:清華大學出版社,2000.
[15]焦李成.神經(jīng)網(wǎng)絡系統(tǒng)理論[M].西安:西安電子科技大學出版社,1990.
[16]張立明.人工神經(jīng)網(wǎng)絡的模型及其應用[M].上海:復旦大學出版社,1993.
[17]胡守仁.神經(jīng)網(wǎng)絡導論[M].長沙:國防科技大學出版社,1993.
[18]Guez A,Ahmad Z.Solution to the inverse kinematics problem in robotics by neural networks[C]// Proceedings of the 1988 IEEE International Conference on Neural Networks.1988,2:617-624.