沿墻導(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ī)器人的軌跡可能會特定為“沿著右邊的墻體運(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è)對應(yīng)移動(dòng)機(jī)器人的左輪速度,,5個(gè)對應(yīng)右輪速度,。F層的結(jié)果隸屬函數(shù)使用三角形隸屬函數(shù),目的是把在E層模糊語言描述的隸屬函數(shù)轉(zhuǎn)化為具體數(shù)值的隸屬度,。G層求解模糊結(jié)果,,采用重心法,也叫加權(quán)平均法,。求解過程是以控制作用論域上的點(diǎn)vi(i=l,,2,…,,n)對控制作用模糊集的隸屬度u為權(quán)系數(shù)進(jìn)行加權(quán)平均而求得模糊結(jié)果,,對于離散論域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)合各聲納相對于移動(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),并保持一定的距離,。