張海濤
摘要:隨著機(jī)器人技術(shù)的不斷發(fā)展,越來越多的自動(dòng)化生產(chǎn)采用機(jī)械臂來實(shí)現(xiàn),如何使機(jī)械臂在運(yùn)行過程中實(shí)現(xiàn)精確控制,是當(dāng)今機(jī)械工程方向研究的重點(diǎn)內(nèi)容。本文以某生產(chǎn)線運(yùn)行的六自由度機(jī)械臂為討論對(duì)象,討論基于神經(jīng)網(wǎng)絡(luò)的軌跡控制問題。由于神經(jīng)網(wǎng)絡(luò)在非線性處理方面的優(yōu)點(diǎn),因此嘗試將BP和RBF神經(jīng)網(wǎng)絡(luò)應(yīng)用于機(jī)械臂軌跡規(guī)劃的逆運(yùn)動(dòng)學(xué)求解中,以期取得較好的效果。
關(guān)鍵詞:六自由度;機(jī)械臂;神經(jīng)網(wǎng)絡(luò);軌跡控制
中圖分類號(hào):TP241? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號(hào):1674-957X(2020)21-0201-02
0? 引言
機(jī)械臂逆運(yùn)動(dòng)學(xué)求解就是在已知機(jī)械臂末端執(zhí)行器的目標(biāo)位姿的情況下來求解機(jī)械臂各關(guān)節(jié)的空間參數(shù)的變換規(guī)律,并最終求解出相應(yīng)狀態(tài)點(diǎn)的具體數(shù)值。在末端位姿已知的情況下,除了要求解機(jī)械臂各關(guān)節(jié)的具體的空間參數(shù)的數(shù)學(xué)描述外,各關(guān)節(jié)點(diǎn)在運(yùn)動(dòng)過程中的速度和加速度等相關(guān)參數(shù)也是至關(guān)重要的。較大的速度和加速度會(huì)引起機(jī)械臂非正常的振動(dòng),嚴(yán)重情況下會(huì)損壞機(jī)械臂。只有速度和加速度限定在一定范圍內(nèi),才能保證機(jī)械臂的平穩(wěn)運(yùn)行。機(jī)械臂的逆運(yùn)動(dòng)學(xué)求解采用傳統(tǒng)的求解方法,不僅速度慢,而且精度不高,數(shù)值也不能完全令人滿意。人工神經(jīng)網(wǎng)絡(luò)在求解非線性問題方面具有較多良好的特性。這包括較強(qiáng)的魯棒性、自適應(yīng)調(diào)整能力和并行處理能力等等,而這些正是機(jī)械臂在逆運(yùn)動(dòng)學(xué)求解過程中所需要的。本文將討論神經(jīng)網(wǎng)絡(luò)在機(jī)械臂逆運(yùn)動(dòng)學(xué)求解中的應(yīng)用。
1? BP神經(jīng)網(wǎng)絡(luò)
隨著計(jì)算機(jī)處理能力越來越強(qiáng),人工神經(jīng)網(wǎng)絡(luò)也在技術(shù)和算法方面得到了飛速的提升。人工神經(jīng)網(wǎng)絡(luò)采用分布式的運(yùn)算方式,在非線性問題和復(fù)雜問題求解方面有較好的應(yīng)用前景,能夠?qū)C(jī)械臂的運(yùn)行過程的求解提供新的解決方案。人工神經(jīng)網(wǎng)絡(luò)有很多種不同的分類,七模型的核心是針對(duì)的是不同的結(jié)構(gòu)算法,其中BP神經(jīng)網(wǎng)絡(luò)誤差反向傳播技術(shù)最為成熟。BP神經(jīng)網(wǎng)絡(luò)有的特點(diǎn)是當(dāng)神經(jīng)元的個(gè)數(shù)足夠多時(shí),可以對(duì)任何非線性模型進(jìn)行逼近運(yùn)算,并最終得到滿足要求的求解數(shù)值。網(wǎng)絡(luò)權(quán)值進(jìn)行求解通過以全局逼近的方式,信息分布在神經(jīng)元與神經(jīng)元之間的網(wǎng)絡(luò)權(quán)值之中,所以BP網(wǎng)絡(luò)具有較好的魯棒性和容錯(cuò)性。
由結(jié)構(gòu)如圖1所示,我們可以看出BP網(wǎng)絡(luò)是一個(gè)單向傳播的多層前項(xiàng)反饋網(wǎng)絡(luò)。主要包括三部分:輸入層、隱含層及輸出層。BP網(wǎng)絡(luò)的學(xué)習(xí)主要分為兩部分,一部分是信號(hào)的正向傳播,另一部分是誤差的反向兩部分構(gòu)成,如圖2。當(dāng)要計(jì)算出其具體的誤差變化,尤其在實(shí)際和期望值相差較大的時(shí)候??梢允褂锰荻认陆捣▉聿粩嗟男薷乃拈撝岛蜋?quán)值,使他達(dá)到期望的目標(biāo)。
2? RBF神經(jīng)網(wǎng)絡(luò)
RBF是一種具有很強(qiáng)的局部逼近能力的徑向基神經(jīng)網(wǎng)絡(luò)。圖3所示的結(jié)構(gòu)為RBF神經(jīng)元模型的隱含層結(jié)構(gòu)。
其中,向量wl表示網(wǎng)絡(luò)的權(quán)值,bl表示網(wǎng)絡(luò)閾值,向量Xq表示網(wǎng)絡(luò)的輸入。RBF神經(jīng)網(wǎng)絡(luò)的徑向基傳遞函數(shù)為:
其中,。
在RBF徑向基神經(jīng)元中它的輸出為1,則它的輸入自變量則為0。當(dāng)輸入向量和權(quán)值之間的距離 dist 不斷的縮小,而神經(jīng)網(wǎng)絡(luò)中的數(shù)值輸出是逐漸增加的,這體現(xiàn)了RBF徑向神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的數(shù)值收斂的能力。
3? 運(yùn)用BP和RBF的逆運(yùn)動(dòng)學(xué)求解
3.1 逆運(yùn)動(dòng)學(xué)求解
求解機(jī)械臂逆運(yùn)動(dòng)學(xué)問題本文采用了BP和RBF結(jié)合的方法來求解,從而將求解逆向運(yùn)動(dòng)學(xué)的問題轉(zhuǎn)化成有關(guān)訓(xùn)練神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值的問題來求解。
以PUMA560機(jī)械臂為列,逆運(yùn)動(dòng)學(xué)問題的求解就是在已知機(jī)械臂末端的執(zhí)行器位姿A的條件下,來求解各關(guān)節(jié)變量?茲1,?茲2,?茲3,?茲4,?茲5,?茲6。在A中的第四行的四個(gè)元素是常數(shù),所以整個(gè)網(wǎng)絡(luò)的輸入,選用剩下的12個(gè)元素,因此輸入向量為q=[nx ny nz ox oy oz ax ay az px py pz],將6個(gè)關(guān)節(jié)角作為整個(gè)神經(jīng)網(wǎng)絡(luò)的輸出,因此輸出向量為Z=[?茲1,?茲2,?茲3,?茲4,?茲5,?茲6]。
BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練的過程中,需要選擇合適的節(jié)點(diǎn)數(shù)量,數(shù)量太少時(shí),無(wú)法完成訓(xùn)練,數(shù)量太多時(shí)神經(jīng)網(wǎng)絡(luò)的泛化能力又會(huì)下降,本文中討論的神經(jīng)網(wǎng)絡(luò)訓(xùn)練節(jié)點(diǎn)的選擇在滿足訓(xùn)練能力的基礎(chǔ)上,盡可能較少的選擇節(jié)點(diǎn)數(shù)量,以期達(dá)到更好的訓(xùn)練效果。采用公式如下,即:
其中輸入神經(jīng)元的數(shù)目用n表示,神經(jīng)元輸出的數(shù)目用t表示。因此可以得出本文選取16作為BP隱含層神經(jīng)元數(shù)目。
根據(jù)上面的描述可以將機(jī)械臂的逆向運(yùn)動(dòng)學(xué)分為如下的幾個(gè)步驟:
①產(chǎn)生數(shù)據(jù)樣本集;②網(wǎng)絡(luò)的初始化;③選取訓(xùn)練樣本和測(cè)試樣本;④選用合適的訓(xùn)練數(shù)據(jù)進(jìn)行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練;⑤完成神經(jīng)網(wǎng)絡(luò)訓(xùn)練后,選擇最優(yōu)數(shù)據(jù)也就是網(wǎng)絡(luò)中誤差最小的數(shù)據(jù)作為系統(tǒng)最終輸出。
3.2 仿真分析
本文選取的案例是PUMA560機(jī)械臂,通過它來進(jìn)行仿真實(shí)驗(yàn),設(shè)置最初關(guān)節(jié)向量,位置PA=[0? 0? 0? 0? 0? 0]運(yùn)動(dòng)到終止關(guān)節(jié)位置PB=-? ? -? ?仔? -? 時(shí),利用MATLAB中Robotics Toolbox工具箱的相關(guān)函數(shù),通過正運(yùn)動(dòng)學(xué)方程式獲取2100組樣本數(shù)據(jù)。其中測(cè)試數(shù)據(jù)選用了1/3,剩下的作為訓(xùn)練樣本??紤]到系統(tǒng)測(cè)試的可行性,在仿真實(shí)驗(yàn)過程中使用了三種算法,分別是BP神經(jīng)網(wǎng)絡(luò)、RBF神經(jīng)網(wǎng)絡(luò)和LM算法,用初始化數(shù)據(jù)導(dǎo)入系統(tǒng),經(jīng)過訓(xùn)練后的數(shù)據(jù)如圖4所示。
為了進(jìn)行對(duì)比,表1中給出解決相同問題時(shí)所用的時(shí)間、訓(xùn)練步數(shù)和測(cè)試誤差,在不同的網(wǎng)絡(luò)結(jié)構(gòu)或算法情況下。為了達(dá)到良好的訓(xùn)練效果,在使用神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,需要使用不同數(shù)據(jù),不同訓(xùn)練次數(shù),從中選擇合適的最終數(shù)據(jù)。
從表1可以看出,LM算法僅用了10步就達(dá)到了誤差目標(biāo)。使用LM算法和RBF網(wǎng)絡(luò),LM算法收斂的時(shí)間沒有RBF網(wǎng)絡(luò)快,但是訓(xùn)練誤差指標(biāo)差不多。但是RBF網(wǎng)絡(luò)僅僅用了9步迭代就完成了系統(tǒng)的誤差訓(xùn)練,完成時(shí)間是0.39秒,訓(xùn)練完成的均方差為0.41×10-9。LM網(wǎng)絡(luò)僅僅用了10步就完成了系統(tǒng)的誤差訓(xùn)練,完成時(shí)間是1.57秒,訓(xùn)練完成的均方差為0.36×10-9。這兩種網(wǎng)絡(luò)算法能在很短的時(shí)間和很少的迭代次數(shù)中,就完成了測(cè)試誤差的訓(xùn)練,能夠迅速收斂,達(dá)到很好的效果。
BP網(wǎng)絡(luò)的迭代次數(shù)為4500步,訓(xùn)練時(shí)間為28.51秒,訓(xùn)練完成的均方差為5.62×10-3。在實(shí)踐和迭代次數(shù)上均比以上兩種網(wǎng)絡(luò)的算法慢,但是在并行算法網(wǎng)絡(luò)中,所取得的效果,比任何一個(gè)單神經(jīng)網(wǎng)絡(luò)算法的精度都要高,所用時(shí)間也會(huì)降低。
4? 結(jié)論
通過前面的仿真數(shù)據(jù)分析,我們可以得到如下的結(jié)論,即為了對(duì)機(jī)械臂的逆運(yùn)動(dòng)學(xué)進(jìn)行求解,神經(jīng)網(wǎng)絡(luò)BP和RBF算法在機(jī)械臂軌跡求解過程中有著良好的特性,可以使誤差在很短的時(shí)間和很少的步數(shù)情況下實(shí)現(xiàn)系統(tǒng)數(shù)值的收斂,是一種行之有效的求解方法。每一種網(wǎng)絡(luò)算法在單獨(dú)求解時(shí),可以實(shí)現(xiàn)良好的收縮特性,在并行網(wǎng)絡(luò)中,所取得的效果,比任何一個(gè)單網(wǎng)絡(luò)算法的精度都要高,因此在實(shí)際應(yīng)用中,可以采用兩個(gè)或三個(gè)神經(jīng)網(wǎng)絡(luò)并行運(yùn)行,以期達(dá)到更好的效果。神經(jīng)網(wǎng)絡(luò)的逆運(yùn)動(dòng)學(xué)求解,比傳統(tǒng)方法速度更快,計(jì)算量更低,收斂的速度更快,為機(jī)械臂在實(shí)際運(yùn)用中的逆運(yùn)動(dòng)學(xué)求解提供了一種新的解決方案。
參考文獻(xiàn):
[1]張盡.PUMA560機(jī)器人控制系統(tǒng)設(shè)計(jì)及雙重控制方法應(yīng)用研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2010.
[2]王濤.基于Matlab仿真的機(jī)器手臂笛卡爾軌跡規(guī)劃[J].湖南文理學(xué)院學(xué)報(bào)(自然科學(xué)版),2015(04).
[3]王海鳴,孔凡讓,趙曉偉.基于BP神經(jīng)網(wǎng)絡(luò)的機(jī)器人逆運(yùn)動(dòng)學(xué)新算法[J].機(jī)電一體化,2009(1):46-49.
[4]王海鳴.基于神經(jīng)網(wǎng)絡(luò)的機(jī)器人逆運(yùn)動(dòng)學(xué)求解[D].中國(guó)科學(xué)技術(shù)大學(xué),2008,05.