CMAC網(wǎng)絡(luò)在機(jī)器人手眼系統(tǒng)位置控制中的應(yīng)用
摘要:在機(jī)器人手眼系統(tǒng)位置控制中,用CMAC神經(jīng)網(wǎng)絡(luò)建立了機(jī)器人非線性視覺映射關(guān)系模型,實(shí)現(xiàn)了圖像坐標(biāo)到機(jī)器人坐標(biāo)的變換。該模型采用了一種新的多維CMAC網(wǎng)絡(luò)的處理方法——疊加處理法。實(shí)驗(yàn),與BP網(wǎng)絡(luò)相比,CMAC網(wǎng)絡(luò)能以羅高的精度和較快的速度完成手眼系統(tǒng)的坐標(biāo)變換。
近年來(lái),在智能機(jī)器人領(lǐng)域,關(guān)于機(jī)器人手眼系統(tǒng)位置控制問(wèn)題的研究受到越來(lái)越多的關(guān)注。在研究中發(fā)現(xiàn)存在這樣一個(gè)問(wèn)題,即如何以較高的精度和較快的速度實(shí)現(xiàn)機(jī)器人手眼系統(tǒng)位置控制,以使機(jī)器人能快速實(shí)現(xiàn)對(duì)目標(biāo)物體的準(zhǔn)確定位和自動(dòng)抓取。這個(gè)問(wèn)題也就是機(jī)器人手眼系統(tǒng)中非線性視覺映射關(guān)系模型的建模問(wèn)題。采用精確的數(shù)學(xué)模型是機(jī)器人視覺系統(tǒng)傳統(tǒng)的建模方法。但由于這類問(wèn)題是高度的非線性問(wèn)題,參數(shù)多且其間的相關(guān)性強(qiáng),故這種方法理論上雖然精確,但是建模困難、計(jì)算量大,實(shí)時(shí)性差且沒(méi)有容錯(cuò)能力和自學(xué)習(xí)能力,而神經(jīng)網(wǎng)絡(luò)作為一種智能信息處理的新技術(shù),具有極強(qiáng)的非線性映射能力。因此采用神經(jīng)網(wǎng)絡(luò)的建模方法與傳統(tǒng)的方法相比具有極大的優(yōu)越性。
作者已經(jīng)采用BP網(wǎng)絡(luò)建立了機(jī)器人視覺系統(tǒng)的映射模型,并作了初步的研究和實(shí)驗(yàn)。結(jié)果發(fā)現(xiàn),采用神經(jīng)網(wǎng)絡(luò)建立機(jī)器人視覺映射模型是一種有效的建模方法。但采用BP網(wǎng)絡(luò)建立模型存在網(wǎng)絡(luò)規(guī)模大、訓(xùn)練時(shí)間長(zhǎng)、容易陷入局部最小解、定位精度較低等缺點(diǎn)。本文采用CMAC神經(jīng)網(wǎng)絡(luò)建立了機(jī)器人視覺系統(tǒng)的映射模型,取得了十分令人滿意的效果。
1 CMAC神經(jīng)網(wǎng)絡(luò)簡(jiǎn)介
小腦模型關(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ò)。它學(xué)習(xí)速度快,具有局域泛化能力,能夠克服BP網(wǎng)絡(luò)容易陷入局部最小點(diǎn)的問(wèn)題,且硬件易于實(shí)現(xiàn)。目前,CMAC神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于機(jī)器人控制、非線性函數(shù)映射、模式識(shí)別以及自適應(yīng)控制等領(lǐng)域。
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,每個(gè)輸入變量Si激活存儲(chǔ)區(qū)A中C個(gè)連續(xù)存儲(chǔ)單元。網(wǎng)絡(luò)輸出yi為這C個(gè)對(duì)應(yīng)單元中值(即權(quán)wi)的累加結(jié)果,對(duì)某一輸入樣本,總可通過(guò)調(diào)整權(quán)值達(dá)到期望輸出值。由圖1可以看出,每一輸入樣本對(duì)應(yīng)于存儲(chǔ)區(qū)A中的C個(gè)單元,當(dāng)各樣本分散存儲(chǔ)在A中時(shí),在S中比較靠近的那些樣本就會(huì)在A中出現(xiàn)交疊現(xiàn)象,其輸出值也比較相近,即這C個(gè)單元遵循"輸入相鄰,輸出相近"的原則,這種現(xiàn)象被稱為CMAC神經(jīng)網(wǎng)絡(luò)的局部泛化特性,C為泛化參數(shù):C越大,對(duì)樣本的映射關(guān)系影響越大,泛化能力越好。
CMAC網(wǎng)絡(luò)的學(xué)習(xí)采用誤差糾正算法,計(jì)算量少斂速度快。其權(quán)值修正公式及輸出可表示如下:
式中,η為學(xué)習(xí)步長(zhǎng),yd為期望輸出,mi為輸入變量S激活存儲(chǔ)單元的首地址。修正方法可以采用每個(gè)樣本修正一次的增量學(xué)習(xí)方法,也可以采用所有樣本都輸入一輪后再修正的批量學(xué)習(xí)方法。
1.2 多維CMAC網(wǎng)絡(luò)的計(jì)算方法
由上述CMAC模型的算法可知,應(yīng)用傳統(tǒng)的多維CMAC概念映射算法會(huì)因輸入維數(shù)的增大而使存儲(chǔ)空間劇烈增大,從而使網(wǎng)絡(luò)計(jì)算量增大,收斂速度變慢。這里采用一種新的多維CMAC網(wǎng)絡(luò)的處理方法--疊加處理法。即把輸入空間為n維的多維CMAC網(wǎng)絡(luò)看作是由n個(gè)一維CMAC網(wǎng)絡(luò)疊加而成,其輸出為n個(gè)一維子網(wǎng)絡(luò)的輸出的疊加。par
當(dāng)輸入空間的維數(shù)n=1時(shí),對(duì)于每一個(gè)輸入變量,都激活C個(gè)連續(xù)存儲(chǔ)單元,即有C個(gè)對(duì)應(yīng)單元的權(quán)值輸出非零。它的激勵(lì)情況如表l所示。
表1 激活單元地址分布
si | a1 | a2 | a3 | a4 | a5 | a6 | a7 | a8 | a9 | a10 |
0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
3 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
4 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
5 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
6 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
經(jīng)歸納,輸入變量Si激活存儲(chǔ)單元的首地址mi的計(jì)算方法如下:
mi=Si(C-Δ)+1 (4)
其中,Si為輸入量的量化值;C為泛化參數(shù);△為相鄰輸入激活存儲(chǔ)單元的重疊單元數(shù)大小。若輸入矢量有q個(gè)量化級(jí),則存儲(chǔ)區(qū)A需要q(C-△)+C個(gè)存儲(chǔ)單元。.
當(dāng)輸入空間的維數(shù)n>1時(shí);設(shè)輸入空間為n維矢量Si=(Si1,Si2,…,Sin),對(duì)于每個(gè)分量Sij,都可以看作圖1所示結(jié)構(gòu)模型的一維輸入量。由式(3)可得其對(duì)應(yīng)的輸出為:
其中,mj為Sij所激活存儲(chǔ)單元的首地址。整個(gè)CMAC網(wǎng)絡(luò)可看作由n個(gè)如圖1所示的子網(wǎng)絡(luò)組成,S對(duì)應(yīng)的輸出yi可看作n個(gè)子網(wǎng)絡(luò)輸出yij(j=1,2,…,n)的疊加。
若每個(gè)輸入分量有q個(gè)量化級(jí),每個(gè)子網(wǎng)絡(luò)中兩相鄰樣本有△個(gè)單元重疊,采用上述疊加方法共需存儲(chǔ)單元n×[q(C-△)+C]。而對(duì)于傳統(tǒng)的多維概念映射算法來(lái)說(shuō),n維輸入空間中可能的輸入狀態(tài)為qn個(gè)。對(duì)于一些實(shí)際系統(tǒng),qn往往遠(yuǎn)遠(yuǎn)大于n×[q(C-△)+C]。例如8維輸入,量化級(jí)為200個(gè)等級(jí),泛化參數(shù)C取為40,相鄰輸入激活存儲(chǔ)單元的重疊單元數(shù)大小△為35,則用疊加處理法需要11200個(gè)存儲(chǔ)單元,而用傳統(tǒng)的概念映射算法需要2008個(gè)存儲(chǔ)單元。對(duì)于傳統(tǒng)的概念映射算法所帶來(lái)的要求存儲(chǔ)空間過(guò)大的問(wèn)題,最常用的方法是把A當(dāng)作一個(gè)虛擬存儲(chǔ)區(qū),通過(guò)散射編碼映射到一個(gè)小得多的物理空間單元Ap中,從而減少存儲(chǔ)空間。但是這種地址壓縮技術(shù)隨機(jī)性很強(qiáng),會(huì)帶來(lái)沖撞問(wèn)題且不可避免。然而,對(duì)多維CMAC網(wǎng)絡(luò)采用疊加處理法,不但可以大大減少占用的存儲(chǔ)單元數(shù),而且還可以避免地址壓縮帶來(lái)的沖撞現(xiàn)象,大大提高網(wǎng)絡(luò)的映射精度和學(xué)習(xí)速度。
圖2
2 實(shí)驗(yàn)及仿真結(jié)果
實(shí)驗(yàn)是在山東大學(xué)現(xiàn)代物流實(shí)驗(yàn)中心進(jìn)行的。該機(jī)器人手眼系統(tǒng)由用于抓取物體的SK6機(jī)械手和用于視覺定位的Panasonic WV-CP410/G彩色攝像頭組成。攝像頭采集的圖像是二維的,而機(jī)械手運(yùn)動(dòng)到某一位置需要六自由度坐標(biāo)。因此必須把二維圖像坐標(biāo)轉(zhuǎn)換成機(jī)器人運(yùn)動(dòng)空間的六維坐標(biāo),才能控制機(jī)器人運(yùn)動(dòng)到指定的空間位置,這就是機(jī)器人手眼系統(tǒng)位置控制問(wèn)題。本文采用CMAC神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了這一坐標(biāo)變換,并對(duì)其結(jié)果與BP網(wǎng)絡(luò)進(jìn)行了比較。
本實(shí)驗(yàn)共采集到793個(gè)輸入樣本,選取CMAC網(wǎng)絡(luò)的量化精度Q為1000,泛化參數(shù)C為80,學(xué)習(xí)步長(zhǎng)η為0.30。圖2(a)和(b)分別為對(duì)CMAC網(wǎng)絡(luò)訓(xùn)練25次和對(duì)BP網(wǎng)絡(luò)訓(xùn)練5000次的誤差平方和曲面圖??梢钥闯?,CMAC網(wǎng)絡(luò)在訓(xùn)練次數(shù)少于BP網(wǎng)絡(luò)的情況下,其誤差平方和遠(yuǎn)遠(yuǎn)小于BP網(wǎng)絡(luò),且誤差分布比較均勻。圖3(a)和(b)分別為CMAC網(wǎng)絡(luò)和BP網(wǎng)絡(luò)的誤差平方和隨學(xué)習(xí)次數(shù)的增加而變化的曲線圖。由圖可知CMAC網(wǎng)絡(luò)的學(xué)習(xí)速度較BP網(wǎng)絡(luò)有較大提高。