??? 摘 要: 在機器人手眼系統(tǒng)位置控制" title="位置控制">位置控制中,用CMAC神經(jīng)網(wǎng)絡(luò)建立了機器人非線性視覺映射關(guān)系模型,實現(xiàn)了圖像坐標到機器人坐標的變換。該模型采用了一種新的多維" title="多維">多維CMAC網(wǎng)絡(luò)的處理方法——疊加處理" title="疊加處理">疊加處理法。實驗表明,與BP網(wǎng)絡(luò)相比,CMAC網(wǎng)絡(luò)能以較高的精度和較快的速度完成手眼系統(tǒng)的坐標變換。?
??? 關(guān)鍵詞: CMAC神經(jīng)網(wǎng)絡(luò)? BP網(wǎng)絡(luò)? 疊加處理法? 機器人手眼系統(tǒng)
?
??? 近年來,在智能機器人領(lǐng)域,關(guān)于機器人手眼系統(tǒng)位置控制問題的研究受到越來越多的關(guān)注。在研究中發(fā)現(xiàn)存在這樣一個問題,即如何以較高的精度和較快的速度實現(xiàn)機器人手眼系統(tǒng)位置控制,以使機器人能快速實現(xiàn)對目標物體的準確定位和自動抓取。這個問題也就是機器人手眼系統(tǒng)中非線性視覺映射關(guān)系模型的建模問題。采用精確的數(shù)學模型是機器人視覺系統(tǒng)傳統(tǒng)的建模方法。但由于這類問題是高度的非線性問題,參數(shù)多且其間的相關(guān)性強,故這種方法理論上雖然精確,但是建模困難、計算量大,實時性差且沒有容錯能力和自學習能力。而神經(jīng)網(wǎng)絡(luò)作為一種智能信息處理的新技術(shù),具有極強的非線性映射能力。因此采用神經(jīng)網(wǎng)絡(luò)的建模方法與傳統(tǒng)的方法相比具有極大的優(yōu)越性。
??? 作者已經(jīng)采用BP網(wǎng)絡(luò)建立了機器人視覺系統(tǒng)的映射模型,并作了初步的研究和實驗。結(jié)果發(fā)現(xiàn),采用神經(jīng)網(wǎng)絡(luò)建立機器人視覺映射模型是一種有效的建模方法。但采用BP網(wǎng)絡(luò)建立模型存在網(wǎng)絡(luò)規(guī)模大、訓練時間長、容易陷入局部最小解、定位精度較低等缺點。本文采用CMAC神經(jīng)網(wǎng)絡(luò)建立了機器人視覺系統(tǒng)的映射模型,取得了十分令人滿意的效果。
1 CMAC神經(jīng)網(wǎng)絡(luò)簡介
??? 小腦模型關(guān)節(jié)控制器神經(jīng)網(wǎng)絡(luò)(Cerebellar Model Articulation Controller Neural Network,即CMAC神經(jīng)網(wǎng)絡(luò))是Albus根據(jù)小腦的生物模型提出的一種人工神經(jīng)網(wǎng)絡(luò)。它學習速度快,具有局域泛化能力,能夠克服BP網(wǎng)絡(luò)容易陷入局部最小點的問題,且硬件易于實現(xiàn)。目前,CMAC神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于機器人控制、非線性函數(shù)映射、模式識別以及自適應(yīng)控制等領(lǐng)域[1]。
1.1 CMAC的基本結(jié)構(gòu)和原理
??? CMAC神經(jīng)網(wǎng)絡(luò)的模型結(jié)構(gòu)原理圖如圖1所示。它本質(zhì)上可看作是一種用于表示復(fù)雜非線性函數(shù)的查表結(jié)構(gòu)。
?
??? 圖1中,S為n維輸入矢量空間;A為聯(lián)想記憶空間;Y是輸出響應(yīng)矢量。輸入空間S中的每一矢量S(…,Si,…,Sj,…)被量化后送入存儲區(qū)A,每個輸入變量Si激活存儲區(qū)A中C個連續(xù)存儲單元" title="存儲單元">存儲單元。網(wǎng)絡(luò)輸出yi為這C個對應(yīng)單元中值(即權(quán)wi)的累加結(jié)果,對某一輸入樣本,總可通過調(diào)整權(quán)值達到期望輸出值。由圖1可以看出,每一輸入樣本對應(yīng)于存儲區(qū)A中的C個單元,當各樣本分散存儲在A中時,在S中比較靠近的那些樣本就會在A中出現(xiàn)交疊現(xiàn)象,其輸出值也比較相近,即這C個單元遵循“輸入相鄰,輸出相近”的原則,這種現(xiàn)象被稱為CMAC神經(jīng)網(wǎng)絡(luò)的局部泛化特性,C為泛化參數(shù)。C越大,對樣本的映射關(guān)系影響越大,泛化能力越好。
??? CMAC網(wǎng)絡(luò)的學習采用誤差糾正算法,計算量少,收斂速度快。其權(quán)值修正公式及輸出可表示如下:
???
??? 式中,η為學習步長,yd為期望輸出,mi為輸入變量Si激活存儲單元的首地址。修正方法可以采用每個樣本修正一次的增量學習方法,也可以采用所有樣本都輸入一輪后再修正的批量學習方法[2]。
1.2 多維CMAC網(wǎng)絡(luò)的計算方法
??? 由上述CMAC模型的算法可知,應(yīng)用傳統(tǒng)的多維CMAC概念映射算法會因輸入維數(shù)的增大而使存儲空間劇烈增大,從而使網(wǎng)絡(luò)計算量增大,收斂速度變慢[3]。這里采用一種新的多維CMAC網(wǎng)絡(luò)的處理方法——疊加處理法。即把輸入空間為n維的多維CMAC網(wǎng)絡(luò)看作是由n個一維CMAC網(wǎng)絡(luò)疊加而成,其輸出為n個一維子網(wǎng)絡(luò)的輸出的疊加[4~5]。
??? 當輸入空間的維數(shù)n=1時,對于每一個輸入變量,都激活C個連續(xù)存儲單元,即有C個對應(yīng)單元的權(quán)值輸出非零。它的激勵情況如表1所示。
?
??? 經(jīng)歸納,輸入變量Si激活存儲單元的首地址mi的計算方法如下:
???
其中,Si為輸入量的量化值;C為泛化參數(shù);Δ為相鄰輸入激活存儲單元的重疊單元數(shù)大小。若輸入矢量有q個量化級,則存儲區(qū)A需要q(C-Δ)+C個存儲單元。
??? 當輸入空間的維數(shù)n>1時,設(shè)輸入空間為n維矢量Si=(Si1,Si2,…,Sin),對于每個分量Sij,都可以看作圖1所示結(jié)構(gòu)模型的一維輸入量。由式(3)可得其對應(yīng)的輸出為
???
其中,mj為Sij所激活存儲單元的首地址。整個CMAC網(wǎng)絡(luò)可看作由n個如圖1所示的子網(wǎng)絡(luò)組成,Si對應(yīng)的輸出yi可看作n個子網(wǎng)絡(luò)輸出yij(j=1,2,…,n)的疊加。
???
??? 若每個輸入分量有q個量化級,每個子網(wǎng)絡(luò)中兩相鄰樣本有Δ個單元重疊?熏采用上述疊加方法共需存儲單元n×[q(C-Δ)+C]個。而對于傳統(tǒng)的多維概念映射算法來說,n維輸入空間中可能的輸入狀態(tài)為qn個。對于一些實際系統(tǒng),qn往往遠遠大于n×[q(C-Δ)+C]。例如8維輸入,量化級為200個等級,泛化參數(shù)C取為40,相鄰輸入激活存儲單元的重疊單元數(shù)大小Δ為35,則用疊加處理法需要11200個存儲單元,而用傳統(tǒng)的概念映射算法需要2008個存儲單元。對于傳統(tǒng)的概念映射算法所帶來的要求存儲空間過大的問題,最常用的方法是把A當作一個虛擬存儲區(qū),通過散射編碼映射到一個小得多的物理空間單元Ap中,從而減少存儲空間。但是這種地址壓縮技術(shù)隨機性很強,會帶來沖撞問題且不可避免。然而,對多維CMAC網(wǎng)絡(luò)采用疊加處理法,不但可以大大減少占用的存儲單元數(shù),而且還可以避免地址壓縮帶來的沖撞現(xiàn)象,大大提高網(wǎng)絡(luò)的映射精度和學習速度[5~6]。
2 實驗及仿真結(jié)果
??? 實驗是在山東大學現(xiàn)代物流實驗中心進行的。該機器人手眼系統(tǒng)由用于抓取物體的SK6機械手和用于視覺定位的Panasonic WV-CP410/G彩色攝像頭組成。攝像頭采集的圖像是二維的,而機械手運動到某一位置需要六自由度坐標。因此必須把二維圖像坐標轉(zhuǎn)換成機器人運動空間的六維坐標,才能控制機器人運動到指定的空間位置,這就是機器人手眼系統(tǒng)位置控制問題。本文采用CMAC神經(jīng)網(wǎng)絡(luò)實現(xiàn)了這一坐標變換,并對其結(jié)果與BP網(wǎng)絡(luò)進行了比較。
??? 本實驗共采集到793個輸入樣本,選取CMAC網(wǎng)絡(luò)的量化精度Q為1000,泛化參數(shù)C為80,學習步長η為0.30。圖2(a)和(b)分別為對CMAC網(wǎng)絡(luò)訓練25次和對BP網(wǎng)絡(luò)訓練5000次的誤差平方和" title="平方和">平方和曲面圖??梢钥闯?CMAC網(wǎng)絡(luò)在訓練次數(shù)少于BP網(wǎng)絡(luò)的情況下,其誤差平方和遠遠小于BP網(wǎng)絡(luò),且誤差分布比較均勻。圖3(a)和(b)分別為CMAC網(wǎng)絡(luò)和BP網(wǎng)絡(luò)的誤差平方和隨學習次數(shù)的增加而變化的曲線圖。由圖可知CMAC網(wǎng)絡(luò)的學習速度較BP網(wǎng)絡(luò)有較大提高。
?
?
?
??? 實驗結(jié)果表明,CMAC網(wǎng)絡(luò)與BP網(wǎng)絡(luò)相比,具有逼近能力強、學習速度快、泛化能力強、具有局部泛化能力等優(yōu)點,能大大提高機器人坐標變換的精度和速度,具有一定的實際應(yīng)用價值。
參考文獻
1 張乃堯,閻平凡.神經(jīng)網(wǎng)絡(luò)與模糊控制.北京:清華大學出版社,1998
2 李士勇.模糊控制、神經(jīng)控制和智能控制.哈爾濱:哈爾濱工業(yè)大學出版社,1996
3 周旭東,王國棟,李淑華.任意偏移矢量分布的N維CMAC映射算法及應(yīng)用.信息與控制,1997;26(1):7~11
4 Parks P C,Militzer J. Improved Allocation of Weights for Associative Memory Storage in Learning Control System. Proc1st IFAC Symposium on Design Methods of Control System. Zurich:Paragmon Press II,1991:777~782
5 楊勝躍,樊曉平.基于高階CMAC網(wǎng)絡(luò)的機器人自學習控制器.長沙鐵道學院學報,2000;(18)3:29~33
6 劉 慧,許曉鳴,張鐘俊.小腦模型神經(jīng)網(wǎng)絡(luò)改進算法的研究.自動化學報,1997;23(4):482~487