無(wú)線傳感器網(wǎng)絡(luò)的WiME系統(tǒng)路由設(shè)計(jì)
引 言
本文引用地址:http://www.ex-cimer.com/article/83489.htm隨著微機(jī)電技術(shù)、低功耗嵌入式技術(shù)和通信技術(shù)的飛速發(fā)展,具有感知能力、計(jì)算能力和無(wú)線通信能力的微型傳感器得到了廣泛的應(yīng)用。這些由無(wú)線微型傳感器組成的傳感器網(wǎng)絡(luò)能夠協(xié)作地實(shí)時(shí)監(jiān)測(cè)、感知和采集網(wǎng)絡(luò)分布區(qū)域內(nèi)的各種環(huán)境或檢測(cè)對(duì)象的信息,并對(duì)這些信息進(jìn)行處理,傳送到需要這些信息的用戶。這便是被美國(guó)商業(yè)周刊認(rèn)定的21世紀(jì)最具影響力的21項(xiàng)技術(shù)之一——無(wú)線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)。
在一個(gè)20層樓高、有著上千個(gè)房間的龐大醫(yī)院中,一位剛進(jìn)入大樓的坐在智能車中的老年人或殘障病人,如何可以輕松地到達(dá)自己要去的房間?我們正在嘗試為這樣的需求提供一種不需要外界干預(yù)的“室內(nèi)自動(dòng)導(dǎo)航系統(tǒng)”——稱為“無(wú)線復(fù)眼系統(tǒng)(Wireless Mosaic Eyes,WiME)”。概括地講,它是一個(gè)基于生物行為啟發(fā)的無(wú)線傳感器網(wǎng)絡(luò),通過空中大量分布的無(wú)線節(jié)點(diǎn)對(duì)智能車提供行為控制,因此是一個(gè)采用無(wú)線傳感器網(wǎng)絡(luò)實(shí)現(xiàn)的機(jī)器人導(dǎo)航系統(tǒng)。
WiME涉及兩個(gè)路由問題:一個(gè)是在地理空間的機(jī)器人路徑規(guī)劃,另一個(gè)是在分散的通信節(jié)點(diǎn)之間的信息通信路由。復(fù)眼可以作為機(jī)器人導(dǎo)航過程中的電子燈塔;無(wú)線復(fù)眼網(wǎng)絡(luò)可以被認(rèn)為是描述地理空間的一個(gè)拓?fù)鋱D、地理路徑規(guī)劃,也可以被簡(jiǎn)化為一個(gè)網(wǎng)絡(luò)拓?fù)鋱D中的路徑規(guī)劃。因此在WiME中,空間路徑規(guī)劃和信息通信路由可以以完全相同的方式工作,而路徑規(guī)劃將根據(jù)各分散節(jié)點(diǎn)的語(yǔ)義定義為基礎(chǔ)。
為了在WiME這樣一個(gè)采用無(wú)線傳感器網(wǎng)絡(luò)技術(shù)的系統(tǒng)的節(jié)點(diǎn)上實(shí)現(xiàn)完整地圖的機(jī)器人導(dǎo)航,本設(shè)計(jì)使用一種單步方向查詢的路徑存儲(chǔ)和查詢系統(tǒng)。為了進(jìn)一步減小資源有限的無(wú)線傳感器節(jié)點(diǎn)中的路徑信息的數(shù)據(jù)量,在WiME的設(shè)計(jì)中對(duì)每一個(gè)分組使用Bloom Filter來(lái)壓縮存儲(chǔ)。另外,由于路徑信息可能是動(dòng)態(tài)建立的,為了滿足頻繁修改的要求,將每個(gè)子表設(shè)計(jì)為計(jì)數(shù)型Bloom Filter。
2 WiME系統(tǒng)
2.1 WiME的生物啟發(fā)
自主機(jī)器人通常都配備有傳感器,能夠感知環(huán)境并自主移動(dòng),其配備的傳感器可以認(rèn)為是機(jī)器人的器官,它們所感知到的信息由機(jī)載電腦集中處理。這種集中構(gòu)架面臨如下三大問題:傳感器處理過程在真實(shí)環(huán)境中不魯棒;在動(dòng)態(tài)環(huán)境中,處理算法的計(jì)算量大;在非結(jié)構(gòu)化的環(huán)境中理解場(chǎng)景十分困難。
然而,與脊椎動(dòng)物的眼睛相比,更低級(jí)的昆蟲的眼睛是極具創(chuàng)造性和多樣性的。生物學(xué)研究發(fā)現(xiàn),一些昆蟲可以用很小的神經(jīng)系統(tǒng)來(lái)處理上萬(wàn)只小眼的信息。狼蛛復(fù)眼中的單眼功能不盡相同,一些用以提供前向視覺,而其他的則用來(lái)探測(cè)和提供周邊的視覺信息,這些視覺信號(hào)傳遞到大腦后可以融合并完成移動(dòng)檢測(cè)、距離估計(jì)、運(yùn)動(dòng)控制等。因此,通過分布式功能劃分和適當(dāng)?shù)膫鞲衅髀酚?,?fù)眼的信息處理機(jī)制的效率可以很高。
受此啟發(fā),建立WiME這樣一個(gè)基于無(wú)線復(fù)眼網(wǎng)絡(luò)的智能環(huán)境。其中,各單眼將由低分辨率的視覺傳感器節(jié)點(diǎn)構(gòu)成,通過IEEE 802.15.4協(xié)議通信并組織形成環(huán)境神經(jīng)系統(tǒng);通過探索仿生技術(shù)和算法,以支持無(wú)線復(fù)眼系統(tǒng)的智能信息處理(包括路徑規(guī)劃、行為協(xié)調(diào)、傳感器融合和路由等)以及視覺伺服。在WiME中,每個(gè)單眼都提供有明確的語(yǔ)義(定位信息和行為集),而它們的拓?fù)溥B接將采用行為網(wǎng)絡(luò)來(lái)隱式建立;行為將通過能量累積所產(chǎn)生的事件進(jìn)行激發(fā)。節(jié)點(diǎn)之間的連接包含了信息融合和路由的條件概率信息;機(jī)器人的導(dǎo)航將建立在具有明確語(yǔ)義的傳感器拓?fù)鋱D的基礎(chǔ)之上,而不是建立在非結(jié)構(gòu)的地理環(huán)境之上。
2.2 WiME的設(shè)計(jì)目標(biāo)
(1)基于無(wú)線通信的分布式復(fù)眼
以無(wú)線傳感器網(wǎng)絡(luò)為連接機(jī)制,將具有高運(yùn)算量和大數(shù)據(jù)量特征的局部視覺信息以具有明確語(yǔ)義概念的形式實(shí)現(xiàn)通信連接,完成低通信帶寬的視覺協(xié)同。
(2)基于語(yǔ)義和信息全息的路由算法
該算法是一個(gè)針對(duì)用戶詢問的最優(yōu)路徑搜索算法。路由算法應(yīng)充分考慮查詢語(yǔ)義,采用信息全息編碼方式壓縮可能查詢和全局路由表,最終實(shí)現(xiàn)快速尋優(yōu)。這也是昆蟲復(fù)眼信息流分布的具體體現(xiàn)。
(3)生物啟發(fā)的分布式行為協(xié)調(diào)
由于本研究將眾多運(yùn)動(dòng)行為分布在整個(gè)復(fù)眼系統(tǒng)中,機(jī)器人導(dǎo)航控制將面臨如何和諧地組織與激發(fā)行為。本研究將由生物神經(jīng)網(wǎng)絡(luò)為啟發(fā),探索脈沖(spike)激勵(lì)的動(dòng)作組織方式,以實(shí)現(xiàn)具有目標(biāo)驅(qū)動(dòng)和及時(shí)響應(yīng)特性的行為控制網(wǎng)絡(luò)。
2.3 無(wú)線復(fù)眼系統(tǒng)中的單視神經(jīng)元的設(shè)計(jì)
①基礎(chǔ)運(yùn)動(dòng)檢測(cè)器(EMD)。以生物視覺所特有的基礎(chǔ)運(yùn)動(dòng)檢測(cè)器(EMD)為藍(lán)圖,將低分辨率并可隨機(jī)讀取的CMOS視覺傳感器作為視網(wǎng)膜,與無(wú)線模塊連接構(gòu)成系統(tǒng)單眼。
?、诘头直媛蕡D像的語(yǔ)義提取。實(shí)時(shí)圖像語(yǔ)義提取的內(nèi)容包括:低分辨率的特征提取,包括顏色、紋理和區(qū)域形狀;融合紋理、顏色和形狀特征并給出解釋;區(qū)域分割和空間分析。這部分將采用降分辨率技術(shù),通過并行運(yùn)算與FPGA實(shí)現(xiàn)相結(jié)合,減少計(jì)算代價(jià)并把算法應(yīng)用到分布式視覺融合中。
?、蹖?duì)象跟蹤和模式識(shí)別。
?、軣o(wú)線傳感器節(jié)點(diǎn)。節(jié)點(diǎn)一方面通過外圍電路與EMD相連,另一方面通過IEEE 802.15.4協(xié)議的接收器與其他復(fù)眼及機(jī)器人進(jìn)行通信,從而提供復(fù)眼神經(jīng)系統(tǒng)的信道;同時(shí),復(fù)眼信息的融合與行為序列的產(chǎn)生這樣的運(yùn)算也要在節(jié)點(diǎn)上完成。
3 路由方式的選擇
所有的機(jī)器人導(dǎo)航都需要解決這樣的一個(gè)問題:機(jī)器人如何獲知通往目的地的道路。在無(wú)線傳感器網(wǎng)絡(luò)中,無(wú)線節(jié)點(diǎn)之間的信息通信路由也是一個(gè)首先要解決的問題。如前所述,由于地理信息固定,在WiME中空間路徑規(guī)劃和信息通信路由完全可以以相同的方式工作。因此下面以路徑規(guī)劃來(lái)說(shuō)明這樣一個(gè)路由存儲(chǔ)和查詢方式的選擇問題。
在無(wú)線傳感器網(wǎng)絡(luò)中,無(wú)線節(jié)點(diǎn)由于能量受限,采用的是低功耗嵌入式處理器,其計(jì)算能力和存儲(chǔ)空間都有限。WiME也不例外,一般無(wú)法直接存儲(chǔ)路徑信息或者將地圖信息存儲(chǔ)在節(jié)點(diǎn)上從而在需要時(shí)計(jì)算出最優(yōu)路徑。為此,首先考慮下面的4種方法。
方法1:作為一種常用的方法,可以查詢整個(gè)地圖的路徑信息。由于房間數(shù)n眾多(認(rèn)為n不小于1000),路徑數(shù)據(jù)巨大(存在n(n-1)/2條路徑),這樣的地圖可以由1臺(tái)或多臺(tái)主服務(wù)器提供。任何一個(gè)無(wú)線節(jié)點(diǎn)或鄰近的有限多個(gè)節(jié)點(diǎn)都滿足不了這樣的存儲(chǔ)量。一個(gè)自然的方法是將全局地圖存儲(chǔ)到服務(wù)器上,機(jī)器人終端在必要時(shí)從服務(wù)器上下載路徑信息。這類似于GPS設(shè)備的工作方式。
方法2:根據(jù)使用的廣播式無(wú)線路由通信協(xié)議,建立一條到目標(biāo)點(diǎn)的無(wú)線通信鏈路,并利用建立的這條通信線路作為地理導(dǎo)航線路。
方法3:利用動(dòng)態(tài)路徑規(guī)劃的思想,每個(gè)節(jié)點(diǎn)存儲(chǔ)與自身相關(guān)的一定范圍內(nèi)的地理信息,并生成最優(yōu)路徑信息。
方法4:每個(gè)節(jié)點(diǎn)存儲(chǔ)全局節(jié)點(diǎn)分布的地理信息和連接關(guān)系,在需要時(shí)與臨近的節(jié)點(diǎn)協(xié)同計(jì)算出最優(yōu)路徑。這是借鑒了計(jì)算機(jī)網(wǎng)絡(luò)中分布式計(jì)算的概念。
每種方法各有其優(yōu)劣。第1種方法修改容易,增加或刪除節(jié)點(diǎn)只需要在主服務(wù)器端更新。第2種方法不需要事先知道節(jié)點(diǎn)的地理位置信息,整個(gè)路徑信息是動(dòng)態(tài)建立和修改的。第3種方法可以隨著道路情況動(dòng)態(tài)調(diào)整最優(yōu)路徑。由于節(jié)點(diǎn)能夠?qū)崟r(shí)觀察到道路信息,可以引入?yún)?shù)來(lái)反映當(dāng)前周邊道路狀況,比如道路的堵塞程度,并由此動(dòng)態(tài)維護(hù)這樣一個(gè)包含自身及臨近區(qū)域的最優(yōu)路徑表。但是這3種方法都是在多跳通信的情況下完成的,返回完整的路徑信息需要較多的通信帶寬和較長(zhǎng)的通信延時(shí),這對(duì)通信協(xié)議的魯棒性提出了挑戰(zhàn)。第4種方法的存儲(chǔ)量相對(duì)要小,與節(jié)點(diǎn)個(gè)數(shù)同數(shù)量級(jí),但是多節(jié)點(diǎn)協(xié)同的最優(yōu)路徑的實(shí)時(shí)分布式計(jì)算對(duì)于無(wú)線傳感器節(jié)點(diǎn)無(wú)疑是一個(gè)困難的問題。畢竟當(dāng)前的分布式計(jì)算仍然局限在計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域。如何將分布式計(jì)算和最新的網(wǎng)格計(jì)算的思想運(yùn)用到無(wú)線傳感器網(wǎng)絡(luò)上,可能會(huì)成為嵌入式系統(tǒng)領(lǐng)域的下一個(gè)方向。
在本設(shè)計(jì)的WiME中并沒有主機(jī)這個(gè)概念,每個(gè)無(wú)線移動(dòng)節(jié)點(diǎn)同時(shí)充當(dāng)了主機(jī)和路由器——這是一個(gè)Ad-Hoc網(wǎng)絡(luò)。Ad-Hoc網(wǎng)絡(luò)的路由方式可以分為兩大類:基于路由表的路由和基于按需建立路由的路由。由于龐大的路徑數(shù)據(jù)量和極為有限的存儲(chǔ)空間,上面的方法2、方法3和方法4都采用了基于按需建立路由的路由方式;而方法1雖然是通過服務(wù)器的方式提供了基于路由表的路由,但是有限的服務(wù)器的數(shù)量并不適合這樣一個(gè)龐大的無(wú)線傳感器網(wǎng)絡(luò)。難道真的不能在每個(gè)無(wú)線節(jié)點(diǎn)上存儲(chǔ)這樣一個(gè)全局路由表,實(shí)現(xiàn)真正的基于路由表的路由方式嗎?
綜合考慮,本文提出了下面的方法——查詢目標(biāo)方向。這類似于人們?cè)诖蠼稚蠁柭?,?duì)方會(huì)告知該往哪個(gè)方向走;走到下一岔口時(shí),又只好重新問路;最終可以成功到達(dá)目的地,而被詢問者并不能提供這條路線的完整路徑,所能提供的只是一個(gè)大概方向。
相比而言,這種方法利用到了室內(nèi)相對(duì)固定的地理信息的先驗(yàn)知識(shí);每個(gè)節(jié)點(diǎn)只需要存儲(chǔ)自身到目標(biāo)點(diǎn)的方向信息,其存儲(chǔ)量只是O(n);查詢時(shí)也避免了多跳通信的發(fā)生,而且沒有增加額外的通信負(fù)擔(dān),顯然更適合無(wú)線傳感器網(wǎng)絡(luò)的特點(diǎn)。因此,WiME系統(tǒng)中的路徑查詢采用了這種方法,通信路由也基于這種方式建立。
4.1 路由信息的存儲(chǔ)和查詢
在參考文獻(xiàn)[3]中,作者提出了在無(wú)線傳感器網(wǎng)絡(luò)中實(shí)現(xiàn)帶有語(yǔ)義的路由,其具體方法是在每個(gè)節(jié)點(diǎn)存儲(chǔ)了一個(gè)語(yǔ)義檢索表,檢索表的每一點(diǎn)對(duì)應(yīng)一個(gè)區(qū)域分類。每個(gè)節(jié)點(diǎn)只存在有限的幾個(gè)區(qū)域分類或稱為“路由可能”。這樣,當(dāng)發(fā)生包含足夠?qū)傩缘恼Z(yǔ)義信息的路由查詢輸入時(shí),節(jié)點(diǎn)調(diào)用自己的規(guī)則引擎,通過計(jì)算匹配到檢索表中的某一點(diǎn),并從其對(duì)應(yīng)的區(qū)域信息獲取通往該區(qū)域的下一跳的信息。這與本沒計(jì)中的這種單步路徑查詢的方法有相似之處。本設(shè)計(jì)中也有這樣的一種規(guī)則引擎,即下文所要介紹的Bloom Filter。所不同的是,在本設(shè)計(jì)中,檢索表不是一個(gè),而是多個(gè);檢索表中的元素不再指示區(qū)域或路由的類別,而是指示輸入是否在當(dāng)前路由表中;而且查詢輸人不是抽象的語(yǔ)義信息,而是人名、房間號(hào)或單位名稱等這樣的含有明確語(yǔ)義的地理空間標(biāo)識(shí)。
下面可以看到,采用Bloom Filter不僅可以解決路由的分類和查詢問題,而且可以進(jìn)一步降低資源有限的無(wú)線傳感器節(jié)點(diǎn)中的路徑信息的數(shù)據(jù)量。進(jìn)而在WiME的設(shè)計(jì)中,對(duì)每一個(gè)分組使用計(jì)數(shù)型Bloom Filter實(shí)現(xiàn)了路由信息的動(dòng)態(tài)修改。下面介紹基本的Bloom Filter和計(jì)數(shù)型Bloom Filter這兩種“規(guī)則引擎”。
4.2 BIoom Filter概念
Bloom Filter的概念最早是由B.H.Bloom于1970年提山的。已知一個(gè)集合S含有n個(gè)元素,每個(gè)元素可以是人名、網(wǎng)址或者某個(gè)編號(hào)之類的能被計(jì)算機(jī)識(shí)別的獨(dú)有的一個(gè)或一組符號(hào)。我們定義一個(gè)含有m個(gè)元素的向量表v,v中的每個(gè)元素只使用1位表示,即每個(gè)元素只能表示為0或1。初始化v的每個(gè)元素為0。假設(shè)有k個(gè)獨(dú)立的hash函數(shù)H1,…,Hk,映射范圍為m。對(duì)S中的每個(gè)元素,將其進(jìn)行hash變換后在v中對(duì)應(yīng)的位置上置1。
如果要知道一個(gè)元素a是否在集合S中,可以參照?qǐng)D1對(duì)其進(jìn)行k個(gè)hash變換,并查詢v中對(duì)應(yīng)的元素是否為1。如果k個(gè)對(duì)應(yīng)元素均為1,就斷定a在集合S中。
舉例來(lái)說(shuō),如果S表示的是一個(gè)URL查找表,每個(gè)元素平均包含50個(gè)ASCII碼,則直接存儲(chǔ)需要400n位;而采用Bloom Filter存儲(chǔ),需要m位(m和kn同數(shù)量級(jí))。由于hash函數(shù)的計(jì)算需要花費(fèi)一定的時(shí)間,限制k的個(gè)數(shù)不會(huì)很大,使得存儲(chǔ)空間大大縮小,所以這是一種用時(shí)間換取空間的辦法。
4.3 最優(yōu)情況下Bloom Filter的正向誤檢概率
從上面可以看到,集合元素個(gè)數(shù)n、hash函數(shù)個(gè)數(shù)k和向量表長(zhǎng)度m是Bloom Filter的3個(gè)關(guān)鍵參數(shù)。BloomFilter中存在著這樣一種情況,即雖然一個(gè)元素不屬于集合S,由于hash函數(shù)的隨機(jī)性,有可能k個(gè)hash變換在v中的對(duì)應(yīng)元素均為1,從而該元素被誤認(rèn)為屬于集合S。這種情況稱為“正向誤檢(false positive)”。從概率上看,正向誤檢總是不可避免的。
將n個(gè)元素插入Bloom Filter表中后,每一位元素仍然為0的概率是(如無(wú)聲明,下面均認(rèn)為hash函數(shù)是均勻映射的):
4.4 計(jì)數(shù)型Bloom Filter
在生成Bloom Filter表的過程中,不可避免地會(huì)出現(xiàn)映射到v的同一位置的情況,這在存在增刪的情況下就會(huì)出現(xiàn)問題。如果一個(gè)元素從集合中刪除,則其對(duì)應(yīng)的Bloom Filter表中的元素都要從1變?yōu)?。那么,其他映射到該位置的元素在查詢自身是否屬于集合時(shí),就不會(huì)得到正確結(jié)果,這稱為“反向誤檢(false negative)”。計(jì)數(shù)型Bloom Filter可以解決這個(gè)問題,它將向量表中每個(gè)位置從1位表示改為多位表示。這樣,添加操作中每映射到某一位置1次,該位置就計(jì)數(shù)加1;刪除操作中時(shí),該位置減1。計(jì)數(shù)位數(shù)決定了所能計(jì)數(shù)的最大值。
4.5 Bloom Filter的其他改進(jìn)
除了計(jì)數(shù)型Bloom Filter,還有許多在嘗試提出改進(jìn)的Bloom Filter數(shù)據(jù)結(jié)構(gòu)。參考文獻(xiàn)[6]提出的壓縮型Bloom Filter探討了非最優(yōu)情況下m、n和k之間的相互關(guān)系;參考文獻(xiàn)[7]提出的域衰減Bloom Filter,針對(duì)無(wú)線傳感器網(wǎng)絡(luò)中洪泛查詢的特點(diǎn)提出了隨空間域衰減的方式,其Bloom Filter向量表中置1的位會(huì)隨著空間域的變化以一定概率清0,則Bloom Filer解碼時(shí)就變成了統(tǒng)計(jì)k個(gè)hash函數(shù)對(duì)應(yīng)位置上1的個(gè)數(shù)(個(gè)數(shù)越大可能性越大);參考文獻(xiàn)[8]提出的拆分型Bloom Filter,針對(duì)反復(fù)增刪最終導(dǎo)致最初設(shè)計(jì)的Bloom Filter表不可用的情況,提出將總表分割成多個(gè)子表來(lái)設(shè)計(jì)。
綜合考慮,筆者仍然認(rèn)為計(jì)數(shù)型Bloom Filter是簡(jiǎn)單、易用的,而且具有較好的性能。盡管參考文獻(xiàn)[5]建議使用4位計(jì)數(shù),但經(jīng)過對(duì)計(jì)數(shù)位數(shù)的理論分析和實(shí)驗(yàn)驗(yàn)證,筆者最終采用了2位計(jì)數(shù)。這已經(jīng)可以將進(jìn)行反復(fù)增刪可能造成的反向誤檢的概率降低到1.85×10-4。反復(fù)增刪5396次,才會(huì)出現(xiàn)1次反向誤檢,對(duì)1000個(gè)節(jié)點(diǎn)這樣的規(guī)模已經(jīng)是夠用的了。不過,對(duì)于這一問題的討論已經(jīng)超出了本文的范圍,這里不再贅述。
5 結(jié) 論
WiME是一個(gè)基于生物行為啟發(fā)的、使用無(wú)線傳感器網(wǎng)絡(luò)實(shí)現(xiàn)的智能復(fù)眼系統(tǒng)。它嘗試著從仿生的角度來(lái)有效地降低智能實(shí)現(xiàn)的復(fù)雜性,提高機(jī)器人的移動(dòng)能力;同時(shí)拓寬機(jī)器人的應(yīng)用范圍,使廉價(jià)移動(dòng)機(jī)器人也可以表現(xiàn)出卓越的移動(dòng)智能。這是從另一個(gè)視角解決集中式人工智能所面臨的應(yīng)用難點(diǎn)的一種新的理論嘗試。
WiME中的機(jī)器人導(dǎo)航技術(shù)采用單步的方向查詢方式,完成了一跳情況下的路由查詢?nèi)蝿?wù);而且使用了Bloom Filter來(lái)壓縮存儲(chǔ),空間進(jìn)行了高度優(yōu)化。這使在無(wú)線傳感器網(wǎng)絡(luò)這樣一個(gè)計(jì)算能力弱、資源嚴(yán)重受限的環(huán)境下完成路徑和通信路由查詢系統(tǒng)這樣一個(gè)包含大數(shù)據(jù)最的工作變成了現(xiàn)實(shí)。希望本設(shè)計(jì)的思路,對(duì)于其他的機(jī)器人導(dǎo)航應(yīng)用有很好的啟發(fā)作用。
評(píng)論