沿墻導(dǎo)航控制問題是指驅(qū)動(dòng)機(jī)器人在一定方向上沿墻運(yùn)動(dòng),或者更一般意義上的沿著物體輪廓運(yùn)動(dòng),并與墻保持一定距離。它可以看作是移動(dòng)機(jī)器人智能的低層行為,當(dāng)與其它高層的智能行為相結(jié)合時(shí),可以完成復(fù)雜的任務(wù)。墻體情況可分為以下幾種:
跟蹤一個(gè)未知的墻體。當(dāng)獲得的環(huán)境信息太少或無法獲得,機(jī)器人的軌跡可能會(huì)特定為“沿著右邊的墻體運(yùn)動(dòng)直到發(fā)現(xiàn)第一個(gè)門口”。另外,如果移動(dòng)機(jī)器人的任務(wù)是繪制全局模型,它就必須沿墻體行進(jìn)將地圖描述完全。
跟蹤一個(gè)已知墻體。機(jī)器人按照規(guī)劃好路徑跟蹤軌跡,為了使算法誤差保持在小范圍內(nèi)而跟蹤墻體。或者,路經(jīng)規(guī)劃中包括已知墻體,需要機(jī)器人沿墻行進(jìn)完成特殊的任務(wù)。
目前關(guān)于移動(dòng)機(jī)器人沿墻導(dǎo)航控制已有較多研究,大多采用聲納傳感器作為環(huán)境的感知設(shè)備。算法應(yīng)用則從早期的航跡推算法,發(fā)展到后來使用卡爾曼濾波,模糊控制,神經(jīng)網(wǎng)絡(luò)控制等。由于模糊邏輯技術(shù)和神經(jīng)網(wǎng)絡(luò)技術(shù)各自獨(dú)到的特點(diǎn),將模糊技術(shù)和神經(jīng)網(wǎng)絡(luò)有機(jī)結(jié)合組成模糊神經(jīng)網(wǎng)絡(luò)控制系統(tǒng),可實(shí)現(xiàn)模糊規(guī)則自動(dòng)提取、模糊隸屬函數(shù)的自動(dòng)生成及在線調(diào)節(jié)。因此本文采用模糊神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)移動(dòng)機(jī)器人的沿墻導(dǎo)航控制。
2 模糊神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
2.1 輸入輸出值模糊化
本文研究的移動(dòng)機(jī)器人沿墻導(dǎo)航控制融合機(jī)器人聲納檢測采集到的數(shù)據(jù),判斷機(jī)器人的位姿,然后通過模糊神經(jīng)網(wǎng)絡(luò)算法控制移動(dòng)機(jī)器人的動(dòng)作,使其在一定距離內(nèi)沿墻體運(yùn)。文中移動(dòng)機(jī)器人側(cè)壁上方安裝有16個(gè)聲納,按順時(shí)針排列從0#到15#。
移動(dòng)機(jī)器人要避免與墻體碰撞又要保持一定距離,所以本文為每個(gè)聲納設(shè)置一個(gè)閾值,當(dāng)聲納檢測到的距離值大于或小于這個(gè)閾值就采取相應(yīng)的動(dòng)作。這樣,將聲納采集的距離值與各自相應(yīng)的閾值相減得到差值△di(i=O,1,2,…,15)作為模糊神經(jīng)網(wǎng)絡(luò)的一個(gè)輸入;移動(dòng)機(jī)器人的角度信息θ作為另外一個(gè)輸入。將距離差值△di和角度θ輸入模糊化如下:
距離差值△di:較小(NB),小(NS),中(Z),大(PS),較大(PB)。
角度θ:左(L),偏左(LS),正(Z),偏右(RS),右(R)。
輸出變量為移動(dòng)機(jī)器人的左右輪速Vl、Vr,模糊化如下:
左右輪速Vl、Vr:左轉(zhuǎn)(TL),前進(jìn)(G),右轉(zhuǎn)(TR)。
2.2 模糊神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
模糊神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示,A為輸入層,輸入變量分別是前面所說的距離差值△di(i=0,l,2,3,4)和角度θ。A層的作用是將輸入值傳送到下一層。
B,C為模糊化層,即使用模糊語言來反應(yīng)輸入量的變化,隸屬函數(shù)采用高斯函數(shù),隸屬度計(jì)算公式如下:
連接權(quán)重We、Wd決定了隸屬函數(shù)的形狀。
D層為模糊推理層,目的是將輸入量進(jìn)行綜合處理,共采用了25條規(guī)則,它們由C,D,E的連接表示出來。模糊規(guī)則如下:
lf △di is M andθis N,then Vl is K and Vris L.
其中M=NB,NS,Z,PS,PB;N=L,LS,Z,RS,R;K,L=TL,G,TR。
E、F、G層為去模糊化層。F層有10個(gè)神經(jīng)元,5個(gè)對(duì)應(yīng)移動(dòng)機(jī)器人的左輪速度,5個(gè)對(duì)應(yīng)右輪速度。F層的結(jié)果隸屬函數(shù)使用三角形隸屬函數(shù),目的是把在E層模糊語言描述的隸屬函數(shù)轉(zhuǎn)化為具體數(shù)值的隸屬度。G層求解模糊結(jié)果,采用重心法,也叫加權(quán)平均法。求解過程是以控制作用論域上的點(diǎn)vi(i=l,2,…,n)對(duì)控制作用模糊集的隸屬度u為權(quán)系數(shù)進(jìn)行加權(quán)平均而求得模糊結(jié)果,對(duì)于離散論域vi:
3 沿墻導(dǎo)航控制計(jì)算模型
圖l所示即為本文采用的BP前饋型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),計(jì)算模型如下(I為該神經(jīng)元的輸入值,O為輸出值,上標(biāo)表示神經(jīng)元所在的層):
D層:由輸入變量自動(dòng)生成模糊規(guī)則。
F層:輸出隸屬函數(shù)使用三角形函數(shù),隸屬度計(jì)算公式如下:
4 實(shí)驗(yàn)結(jié)果
為了驗(yàn)證算法的有效性,本文設(shè)計(jì)了移動(dòng)機(jī)器人沿左墻行進(jìn)的實(shí)驗(yàn)。實(shí)驗(yàn)環(huán)境為有兩扇門的長方形走廊。其中,黑色實(shí)線為帶有兩扇門的墻體,藍(lán)色曲線為移動(dòng)機(jī)器人沿墻體行進(jìn)的軌跡。移動(dòng)機(jī)器人使用0#~4#聲納,圖2為基于航跡推算法的移動(dòng)機(jī)器人墻體跟蹤軌跡圖;圖3為基于模糊神經(jīng)網(wǎng)絡(luò)的移動(dòng)機(jī)器人沿墻導(dǎo)航控制軌跡圖。
圖3中,移動(dòng)機(jī)器人與墻體的距離聯(lián)合各聲納相對(duì)于移動(dòng)機(jī)器人正前方的角度作為模糊神經(jīng)網(wǎng)絡(luò)的輸入,經(jīng)過融和判斷來控制移動(dòng)機(jī)器人的動(dòng)作,靠近墻體或遠(yuǎn)離墻體。例如,O#(-90°)測得的數(shù)值為208mm,1#(-50°)測得的數(shù)值為324mm,2#(一30°)測得的數(shù)值為877mm,3#(一10°)測得的數(shù)值為1700mm,4#(10°)測得的數(shù)值為3000mm,說明移動(dòng)機(jī)器人距離墻體太近,需遠(yuǎn)離以避免碰撞,此時(shí)移動(dòng)機(jī)器人左輪速度為0.20m/s,右輪速度為O.08m/s。移動(dòng)機(jī)器人采用模糊神經(jīng)網(wǎng)絡(luò)進(jìn)行沿墻導(dǎo)航控制的均方誤差為0.0014。單一采用航跡推算法的均方誤差為0.0382。由此可見,采用模糊神經(jīng)網(wǎng)絡(luò)進(jìn)行移動(dòng)機(jī)器人沿墻導(dǎo)航控制,性能大大提高。
5 結(jié)論
本文給出了模糊神經(jīng)網(wǎng)絡(luò)的計(jì)算模型,利用BP網(wǎng)絡(luò)離線訓(xùn)練權(quán)值。此方法能夠根據(jù)移動(dòng)機(jī)器人聲納采集到的信息自動(dòng)生成模糊隸屬函數(shù),并且自動(dòng)提取模糊規(guī)則,增強(qiáng)了神經(jīng)網(wǎng)絡(luò)的泛化能力和容錯(cuò)能力。實(shí)驗(yàn)證明了此方法的有效性和可行性,能夠無碰撞地沿墻體行進(jìn),并保持一定的距離。