CMAC網(wǎng)絡(luò )在機器人手眼系統位置控制中的應用
表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激活存儲單元的首地址mi的計算方法如下:
mi=Si(C-Δ)+1 (4)
其中,Si為輸入量的量化值;C為泛化參數;△為相鄰輸入激活存儲單元的重疊單元數大小。若輸入矢量有q個(gè)量化級,則存儲區A需要q(C-△)+C個(gè)存儲單元。.
當輸入空間的維數n>1時(shí);設輸入空間為n維矢量Si=(Si1,Si2,…,Sin),對于每個(gè)分量Sij,都可以看作圖1所示結構模型的一維輸入量。由式(3)可得其對應的輸出為:
其中,mj為Sij所激活存儲單元的首地址。整個(gè)CMAC網(wǎng)絡(luò )可看作由n個(gè)如圖1所示的子網(wǎng)絡(luò )組成,S對應的輸出yi可看作n個(gè)子網(wǎng)絡(luò )輸出yij(j=1,2,…,n)的疊加。
若每個(gè)輸入分量有q個(gè)量化級,每個(gè)子網(wǎng)絡(luò )中兩相鄰樣本有△個(gè)單元重疊,采用上述疊加方法共需存儲單元n×[q(C-△)+C]。而對于傳統的多維概念映射算法來(lái)說(shuō),n維輸入空間中可能的輸入狀態(tài)為qn個(gè)。對于一些實(shí)際系統,qn往往遠遠大于n×[q(C-△)+C]。例如8維輸入,量化級為200個(gè)等級,泛化參數C取為40,相鄰輸入激活存儲單元的重疊單元數大小△為35,則用疊加處理法需要11200個(gè)存儲單元,而用傳統的概念映射算法需要2008個(gè)存儲單元。對于傳統的概念映射算法所帶來(lái)的要求存儲空間過(guò)大的問(wèn)題,最常用的方法是把A當作一個(gè)虛擬存儲區,通過(guò)散射編碼映射到一個(gè)小得多的物理空間單元Ap中,從而減少存儲空間。但是這種地址壓縮技術(shù)隨機性很強,會(huì )帶來(lái)沖撞問(wèn)題且不可避免。然而,對多維CMAC網(wǎng)絡(luò )采用疊加處理法,不但可以大大減少占用的存儲單元數,而且還可以避免地址壓縮帶來(lái)的沖撞現象,大大提高網(wǎng)絡(luò )的映射精度和學(xué)習速度。
圖2
2 實(shí)驗及仿真結果
實(shí)驗是在山東大學(xué)現代物流實(shí)驗中心進(jìn)行的。該機器人手眼系統由用于抓取物體的SK6機械手和用于視覺(jué)定位的Panasonic WV-CP410/G彩色攝像頭組成。攝像頭采集的圖像是二維的,而機械手運動(dòng)到某一位置需要六自由度坐標。因此必須把二維圖像坐標轉換成機器人運動(dòng)空間的六維坐標,才能控制機器人運動(dòng)到指定的空間位置,這就是機器人手眼系統位置控制問(wèn)題。本文采用CMAC神經(jīng)網(wǎng)絡(luò )實(shí)現了這一坐標變換,并對其結果與BP網(wǎng)絡(luò )進(jìn)行了比較。
本實(shí)驗共采集到793個(gè)輸入樣本,選取CMAC網(wǎng)絡(luò )的量化精度Q為1000,泛化參數C為80,學(xué)習步長(cháng)η為0.30。圖2(a)和(b)分別為對CMAC網(wǎng)絡(luò )訓練25次和對BP網(wǎng)絡(luò )訓練5000次的誤差平方和曲面圖??梢钥闯?,CMAC網(wǎng)絡(luò )在訓練次數少于BP網(wǎng)絡(luò )的情況下,其誤差平方和遠遠小于BP網(wǎng)絡(luò ),且誤差分布比較均勻。圖3(a)和(b)分別為CMAC網(wǎng)絡(luò )和BP網(wǎng)絡(luò )的誤差平方和隨學(xué)習次數的增加而變化的曲線(xiàn)圖。由圖可知CMAC網(wǎng)絡(luò )的學(xué)習速度較BP網(wǎng)絡(luò )有較大提高。
評論