李文博,曹 兵,張?jiān)撇?/p>
(南京理工大學(xué) 機(jī)械工程學(xué)院, 南京 210094)
?
基于BP神經(jīng)網(wǎng)絡(luò)的排爆機(jī)械臂逆運(yùn)動學(xué)分析
李文博,曹兵,張?jiān)撇?/p>
(南京理工大學(xué) 機(jī)械工程學(xué)院, 南京210094)
機(jī)械臂逆運(yùn)動學(xué)是已知末端執(zhí)行器的位姿求解機(jī)械臂各關(guān)節(jié)變量,主要用于機(jī)械臂末端執(zhí)行器的精確定位和軌跡規(guī)劃,如何高效的求解機(jī)械臂運(yùn)動學(xué)逆解是機(jī)械臂軌跡控制的難點(diǎn);針對傳統(tǒng)的機(jī)械臂逆運(yùn)動學(xué)求解方法復(fù)雜且存在多解等問題,提出一種基于BP神經(jīng)網(wǎng)絡(luò)的機(jī)械臂逆運(yùn)動學(xué)求解方法;以四自由度機(jī)械臂為研究對象,對其運(yùn)動學(xué)原理進(jìn)行分析,建立BP神經(jīng)網(wǎng)絡(luò)模型并對神經(jīng)網(wǎng)絡(luò)算法進(jìn)行改進(jìn),最后使用MATLAB進(jìn)行仿真驗(yàn)證;仿真結(jié)果表明:使用BP神經(jīng)網(wǎng)絡(luò)模型求解機(jī)械臂逆運(yùn)動學(xué)問題設(shè)計(jì)過程簡單,求解精度較高,一定程度上避免了傳統(tǒng)方法的不足,是一種可行的機(jī)械臂逆運(yùn)動學(xué)求解方法。
機(jī)械臂;逆運(yùn)動學(xué);神經(jīng)網(wǎng)絡(luò);最優(yōu)化算法
排爆機(jī)器人用于代替排爆人員搬運(yùn)、轉(zhuǎn)移和銷毀可疑爆炸物及其它有害危險品,有效避免了不必要的人員傷亡。目前,排爆機(jī)器人在發(fā)達(dá)國家應(yīng)用廣泛,而我國由于起步較晚,仍處于快速發(fā)展階段。排爆機(jī)器人的機(jī)械臂運(yùn)動學(xué)包括正運(yùn)動學(xué)和逆運(yùn)動學(xué)兩部分[1]。其中機(jī)械臂逆運(yùn)動求解問題是機(jī)械臂運(yùn)動學(xué)分析的難點(diǎn),一直受到國內(nèi)外機(jī)器人研究者的關(guān)注。
機(jī)械臂逆運(yùn)動學(xué)求解是正運(yùn)動學(xué)求解的反過程,屬于非線性問題。機(jī)器人逆運(yùn)動學(xué)求解的傳統(tǒng)方法有迭代法、解析法和幾何法[2]。Paul等提出的機(jī)械臂運(yùn)動學(xué)解析解法對后來的機(jī)械臂逆運(yùn)動學(xué)問題研究具有指導(dǎo)性的作用[3]。Regnier等提出一種基于迭代法和分布式的算法,能夠求出多種結(jié)構(gòu)的六自由度機(jī)械臂的位置逆解[4]。徐德等系統(tǒng)地分析了5自由度機(jī)械臂的正運(yùn)動學(xué)和逆運(yùn)動學(xué),證明該機(jī)械臂不存在奇異性位姿問題[5]。蔣宏超等采用矩陣逆乘的解析解法求解機(jī)械臂的正運(yùn)動學(xué)模型,得到六自由度機(jī)械臂逆運(yùn)動學(xué)的完整解析解[6]。李憲華等針對六自由度模塊化串聯(lián)機(jī)械臂,提出采用幾何方法求解機(jī)械臂前3個關(guān)節(jié)、使用反變換法求解后3個關(guān)節(jié)的組合解法,得到了機(jī)械臂逆運(yùn)動學(xué)的完整解析解[7]。以上方法都可以求解機(jī)械臂逆運(yùn)動學(xué)問題,但具有一定的局限性,而且求解過程復(fù)雜,涉及多解和奇異性等問題。隨著科技的發(fā)展,機(jī)器人的設(shè)計(jì)要求越來越高,這些傳統(tǒng)方法已經(jīng)滿足不了機(jī)器人的性能需求。因此,有必要尋求一種新的方法來求解機(jī)械臂逆運(yùn)動學(xué)。近年來,人工神經(jīng)網(wǎng)絡(luò)作為一種新技術(shù)引起了研究者的興趣,神經(jīng)網(wǎng)絡(luò)是一種模仿人類神經(jīng)網(wǎng)絡(luò)行為特征,進(jìn)行分布式并行信息處理的算法數(shù)學(xué)模型[8]。
機(jī)械臂逆運(yùn)動學(xué)求解是一個復(fù)雜的非線性問題,而BP神經(jīng)網(wǎng)絡(luò)具有較好的非線性擬合能力,LM(Levenberg-Marquardt)最優(yōu)化訓(xùn)練方法收斂速度快,特別適用于數(shù)據(jù)量較大的復(fù)雜模型。因此,文中結(jié)合BP神經(jīng)網(wǎng)絡(luò)和LM優(yōu)化算法設(shè)計(jì)一個三層BP神經(jīng)網(wǎng)絡(luò)模型來求解機(jī)械臂逆運(yùn)動學(xué),重點(diǎn)分析四自由度機(jī)械臂的逆運(yùn)動學(xué)求解,通過仿真不斷調(diào)整神經(jīng)網(wǎng)絡(luò)的模型參數(shù),選取出仿真結(jié)果較好的參數(shù),并對仿真結(jié)果進(jìn)行分析。
文中以實(shí)驗(yàn)室自主研發(fā)的排爆機(jī)械臂為分析對象,該機(jī)械臂由5個步進(jìn)電機(jī)驅(qū)動,包含4個轉(zhuǎn)動關(guān)節(jié)和一個末端夾手,末端夾手只控制夾取物體,與運(yùn)動學(xué)無關(guān),所以運(yùn)動學(xué)分析時忽略夾手關(guān)節(jié),其余的4個關(guān)節(jié)分別為底座回轉(zhuǎn)、大臂回轉(zhuǎn)、小臂回轉(zhuǎn)、手爪回轉(zhuǎn)。
1.1建立機(jī)械臂坐標(biāo)系
(1)
圖1 機(jī)械臂坐標(biāo)系
桿件i關(guān)節(jié)變量αiaidi1θ190°0d12θ20a203θ390°004θ400d4
1.2正運(yùn)動學(xué)分析
(2)
nx=c1c2c3c4+s1s3c4;ny=-c1s3c4
nz=s1c2c3c4;ox=-c1c2c3s4-s1s3s4+s1c4
oy=c1s3s4-c1c4;oz=-s1c2c3s4
ax=c1c2s3+c1s2c3;ay=0
az=s1c2s3+s1s2c3-c2c3
px=d4c1s23+a2c1c2;py=0
pz=d4(s1s23-c2c3)+a2(s1c2+s2)+d1
其中:si=sinθi;ci=cosθi;sij=sin(θi+θj)
1.3逆運(yùn)動學(xué)分析
(3)
(4)
令式(3)式(4)的對應(yīng)項(xiàng)(2,1)相等可以求得關(guān)于θ1的兩組解:
(5)
(6)
令式(3)式(4)的對應(yīng)項(xiàng)(1,3)(1,4)分別對應(yīng)相等可以求得θ2的解:
(7)
?{mathop{ m c} olimits}2=
(8)
令式(3)式(4)的對應(yīng)項(xiàng)(2,3)相等可以求得θ3的解:
(9)
(10)
令式(3)式(4)的對應(yīng)項(xiàng)(3,1)相等可以求得θ4的解:
(11)
(12)
以上是基于矩陣逆乘的解析法求解機(jī)械臂逆運(yùn)動學(xué),求得該四自由度機(jī)械臂存在兩組解析解。但這種方法求解逆運(yùn)動學(xué)時存在兩點(diǎn)不足:1)機(jī)械臂各關(guān)節(jié)角度間存在復(fù)雜的耦合關(guān)系,使得解耦過程非常復(fù)雜;2)機(jī)械臂各關(guān)節(jié)角度與機(jī)械臂末端的空間位置是多對一的關(guān)系,傳統(tǒng)的解析解很難得到單一的優(yōu)化解,此時需要根據(jù)機(jī)械臂的結(jié)構(gòu)特點(diǎn)選取優(yōu)化解。而使用神經(jīng)網(wǎng)絡(luò)求解機(jī)械臂逆運(yùn)動學(xué)可以避免解析法的不足,提高運(yùn)算速度,滿足系統(tǒng)實(shí)時性的需求。
機(jī)械臂逆運(yùn)動學(xué)求解實(shí)質(zhì)就是由決定機(jī)械臂末端執(zhí)行器位姿的12個變量去求解機(jī)械臂4個關(guān)節(jié)變量,這一過程可以使用神經(jīng)網(wǎng)絡(luò)模型來完成。神經(jīng)網(wǎng)絡(luò)具有非線性特征,能夠很好的逼近任意復(fù)雜的非線性系統(tǒng),能夠處理多輸入多輸出系統(tǒng),非常適合于多變量系統(tǒng)。
2.1神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)
典型的BP神經(jīng)網(wǎng)絡(luò)包括輸入層、隱含層和輸出層,層與層之間采用全互聯(lián)方式,同層之間不存在連接,隱含層可以有一層或多層,典型的三層網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖2所示。
圖2 典型三層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
(13)
神經(jīng)網(wǎng)絡(luò)的輸出是機(jī)械臂的4個關(guān)節(jié)變量,構(gòu)成輸出向量o,如式(14)所示。
(14)
網(wǎng)絡(luò)的學(xué)習(xí)速率決定每一次循環(huán)訓(xùn)練中所產(chǎn)生的權(quán)值變化量,一般情況下,傾向于選取較小的學(xué)習(xí)速率以保證系統(tǒng)的穩(wěn)定性,學(xué)習(xí)速率的選取范圍在0.01~0.8之間。隱含層的傳遞函數(shù)為tansig函數(shù),由于整個網(wǎng)絡(luò)的輸出為任意值,所以輸出層的傳遞函數(shù)為purelin函數(shù)。
2.2改進(jìn)神經(jīng)網(wǎng)絡(luò)算法
基本BP神經(jīng)網(wǎng)絡(luò)的算法包括信號的前向傳播和誤差的反向傳播,即計(jì)算實(shí)際輸出按從輸入到輸出的方向進(jìn)行,而權(quán)值和閥值的修正從輸出到輸入的方向進(jìn)行[10]。誤差的反向傳播首先由輸出層開始逐層計(jì)算各層神經(jīng)元的輸出誤差,然后根據(jù)誤差梯度下降法來調(diào)節(jié)各層的權(quán)值和閥值,使修正后網(wǎng)絡(luò)的最終輸出能接近期望值。系統(tǒng)對P個訓(xùn)練樣本的總誤差準(zhǔn)則函數(shù)為:
(15)
BP算法的實(shí)質(zhì)是求解誤差函數(shù)的最小值問題。它采用非線性規(guī)劃中的最速下降方法,按誤差函數(shù)的負(fù)梯度方向修改權(quán)值,但這種算法在函數(shù)訓(xùn)練中存在學(xué)習(xí)效率低,收斂速度慢,易陷入局部極小狀態(tài)等問題,所以需要對BP算法進(jìn)行改進(jìn)。
BP算法的改進(jìn)主要有兩種途徑,一種是采用啟發(fā)式學(xué)習(xí)算法,另一種是采用基于數(shù)值最優(yōu)化理論的訓(xùn)練算法。文中使用LM最優(yōu)化方法對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。BP算法中牛頓法的收斂速度快,但在每一次的迭代中,牛頓法都需要求出表現(xiàn)函數(shù)的二次導(dǎo)數(shù)Hessian陣Ak,如式(16)所示,這就使得計(jì)算量變得很大,而LM方法不需要計(jì)算Hessian陣,Hessian陣可以用式(17)來近似替代:
(17)
其梯度為:
(18)
其中,J是雅克比(Jacobian)矩陣,它含有網(wǎng)絡(luò)訓(xùn)練誤差的一階導(dǎo)數(shù),是權(quán)值和閥值的函數(shù)。e是網(wǎng)絡(luò)訓(xùn)練誤差向量。則權(quán)值和閥值的調(diào)整公式如式(19)所示:
(19)
當(dāng)μ=0時,式(18)變成具有近似Hessian陣的牛頓法。當(dāng)μ較大時,LM算法就更接近小步長的梯度法。在迭代過程中,如果訓(xùn)練成功,就減小μ的值,如果訓(xùn)練失敗,就增加μ的值,這樣表現(xiàn)函數(shù)最終會減小到一定值[11]。
MATLAB是一種用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級技術(shù)計(jì)算語言和交互式環(huán)境,內(nèi)部含有豐富的調(diào)用函數(shù)。文中使用MATLAB的robotics工具箱和神經(jīng)網(wǎng)絡(luò)工具箱對機(jī)械臂進(jìn)行建模和仿真。
3.1仿真設(shè)計(jì)
利用MATLAB的Robotics工具箱建立四自由度機(jī)械臂的模型,依據(jù)機(jī)械臂的結(jié)構(gòu)確定各關(guān)節(jié)變量的取值范圍,如表2所示。
表2 各關(guān)節(jié)變量的取值范圍
將各關(guān)節(jié)變量的取值范圍均分為500份,在Robotics工具箱中進(jìn)行正運(yùn)動學(xué)求解,如此即可得到500組仿真數(shù)據(jù)。從500組數(shù)據(jù)中隨機(jī)選取部分?jǐn)?shù)據(jù),將其代入到第二節(jié)所求的機(jī)械臂運(yùn)動學(xué)方程中,求得的結(jié)果與模型一致,如此可以驗(yàn)證MATLAB所建模型是正確的。最后在500組數(shù)據(jù)中每隔9組選出1組作為神經(jīng)網(wǎng)絡(luò)的測試數(shù)據(jù),共選出50組測試數(shù)據(jù),其余的450組作為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)。由于樣本數(shù)據(jù)之間的差異比較大,不利于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,所以在訓(xùn)練前對樣本進(jìn)行歸一化處理。
實(shí)驗(yàn)數(shù)據(jù)選定后,使用MATLAB神經(jīng)網(wǎng)絡(luò)工具箱對BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程圖如圖3所示。實(shí)驗(yàn)過程中不斷的調(diào)整網(wǎng)絡(luò)參數(shù),經(jīng)過一系列的仿真實(shí)驗(yàn),對比實(shí)驗(yàn)結(jié)果,最后選定神經(jīng)網(wǎng)絡(luò)的基本參數(shù)如表3所示。
圖3 神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程圖
網(wǎng)絡(luò)參數(shù)設(shè)定值net.trainParam.epochs1000net.trainParam.goal0.001net.trainParam.lr0.05
3.2結(jié)果分析
文中分別采用不同的方法對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練結(jié)果如表4所示,由于測試數(shù)據(jù)有50組,為便于對比分析,所以將變量的50組絕對誤差表示為取值區(qū)間。對比訓(xùn)練結(jié)果可知,常規(guī)梯度下降法收斂速度較慢,誤差較大;有動量的梯度下降法學(xué)習(xí)過程容易發(fā)生動蕩,導(dǎo)致訓(xùn)練失敗,而且其收斂速度慢,誤差較大;有自適應(yīng)lr的梯度下降法的收斂速度較快,誤差較小;相比前3種方法,采用LM方法收斂速度最快,僅用了6次就達(dá)到訓(xùn)練的目標(biāo)精度,絕對誤差較小,仿真結(jié)果較好。
目前選取隱含層的神經(jīng)元數(shù)在理論上還沒有一個明確的規(guī)定,一般根據(jù)經(jīng)驗(yàn)采取嘗試法,通過對不同神經(jīng)元數(shù)進(jìn)行訓(xùn)練對比,依據(jù)對比結(jié)果進(jìn)行選取。當(dāng)采用LM最優(yōu)化方法訓(xùn)練神經(jīng)網(wǎng)絡(luò),使用不同組合的隱含層與輸出層的神經(jīng)元數(shù)得出的仿真結(jié)果如表5所示,仿真結(jié)果表明雖然不同的隱含層與輸出層神經(jīng)元數(shù)組合對仿真結(jié)果有影響,但其影響較小,小于使用不同訓(xùn)練算法對神經(jīng)網(wǎng)絡(luò)的影響。
表4 使用不同算法的仿真結(jié)果
表5 不同神經(jīng)元數(shù)組合的仿真結(jié)果
圖4 網(wǎng)絡(luò)訓(xùn)練誤差曲線
圖5 輸出變量θ1的仿真曲線
圖6 輸出變量θ1的絕對誤差
圖7 輸出變量θ1的相對誤差
文中基于BP神經(jīng)網(wǎng)絡(luò)提出一種機(jī)械臂逆運(yùn)動學(xué)求解方法,并對神經(jīng)網(wǎng)絡(luò)的訓(xùn)練算法進(jìn)行改進(jìn),最后使用MATLAB神經(jīng)網(wǎng)絡(luò)工具箱對該方法進(jìn)行仿真驗(yàn)證,仿真結(jié)果表明該方法是可行的,并由仿真結(jié)果得出以下結(jié)論:不同的BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法對仿真結(jié)果有較大的影響,不同算法得出的仿真結(jié)果差別顯著,相比有其他3種方法,采用LM法的收斂速度較快,精度較高;神經(jīng)網(wǎng)絡(luò)采用LM訓(xùn)練方法時,改變不同的隱含層與輸出層的神經(jīng)元數(shù)組合對仿真結(jié)果的影響較小。文中采用改進(jìn)算法的BP神經(jīng)網(wǎng)絡(luò)求解機(jī)械臂逆運(yùn)動學(xué)具有較快的收斂速度和較高的求解精度,可以滿足復(fù)雜機(jī)械臂逆運(yùn)動學(xué)求解的需求。
[1]John J Craig. 機(jī)械臂學(xué)導(dǎo)論[M].北京:機(jī)械工業(yè)出版社, 2006.
[2]臧慶凱,李春貴. 基于3個并行BP神經(jīng)網(wǎng)絡(luò)的機(jī)器人逆運(yùn)動學(xué)求解[J].計(jì)算機(jī)測量與控制, 2012,20(8):2244-2247.
[3]Paul R P,Shimano B E,Mayerg. Kinematics control equations for simple manipulators[J]. IEEE Transactions on Systems, Man and Cybernetics, 1981,11(6):445-449.
[4]Regnier S, Ouezdou F B,Bidaud P.Distributed method for inverse kinematics of all serial manipulators[J].Mechanism and Machine Theory,1997 ,32(7):855-867.
[5]Xu D,Calderon C A,Gan J Q. An analysis of the inverse kinematics for 5-DOF manipulator [J].International Journal of Automation and Computing, 2005,2(2):114-124.
[6]蔣宏超,劉士榮,張波濤。六自由度模塊化機(jī)械臂的逆運(yùn)動學(xué)分析[J].浙江大學(xué)學(xué)報(工學(xué)版),2010,44(7):1348-1354.
[7]李憲華,郭永存,張軍,郭帥。模塊化六自由度機(jī)械臂逆運(yùn)動學(xué)結(jié)算與驗(yàn)證[J].農(nóng)業(yè)機(jī)械學(xué)報,2013,44(4):246-251.
[8]劉曉玉,方康玲.基于神經(jīng)網(wǎng)絡(luò)的機(jī)械臂視覺伺服研究[J].計(jì)算機(jī)應(yīng)用,2008(3):149159.
[9]孟慶鑫,王曉東.機(jī)器人技術(shù)基礎(chǔ)[M], 哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2006.
[10]劉冰,郭海霞. MATLAB神經(jīng)網(wǎng)絡(luò)超級學(xué)習(xí)手冊[M].北京:人民郵電出版社, 2014.
[11]董長虹. MATLAB神經(jīng)網(wǎng)絡(luò)與應(yīng)用[M]. 北京:國防工業(yè)出版社, 2007.
Inverse Kinematics Analysis of Anti-bomb Robot Based on BP Neural Network
Li Wenbo, Cao Bing, Zhang Yunbo
( School of Mechanical Engineering, Nanjing University of Science and Technology, Nanjing210094,China)
Manipulator inverse trajectory which means to solve the joint variable by the end of the mechanical arm position is mainly used in the accurate location and trajectory planning of the end executor. How to efficiently solve the inverse solution of kinematics of robotic is the difficulty. In view of the traditional algorithm of robot arm inverse kinematics is complex and there are multiple solutions, this paper proposes a mechanical arm inverse kinematics method based on BP neural network. With four degrees of freedom mechanical arm as the research object, analyses its kinematics principle, on the basis of improving the BP neural network algorithm, the mechanical arm are simulated and modeled by using MATLAB toolbox. The results show that using BP neural network model to solve inverse kinematics which avoids the disadvantages of traditional methods is simple in design and precision; it is a feasible manipulator inverse kinematics solution.
robot arm; inverse kinematics; neural networks; optimization algorithm
2015-07-19;
2015-08-28。
李文博(1988-),男,河南周口人,碩士研究生,主要從事機(jī)電一體化方向的研究。
曹兵(1967-),男,河南南陽人,副教授,碩士研究生導(dǎo)師,主要從事彈藥工程與爆炸技術(shù)方向的研究。
1671-4598(2016)01-0207-05
10.16526/j.cnki.11-4762/tp.2016.01.057
TB183;TP242
B