第二章 研究背景與相關研究
2.2 定位演算法原理 (Localization Algorithm)
2.2.4 Angle of Arrival Method (AoA)
AoA 必須具備額外的硬體,能夠判別訊號傳送端與接收端所形成的相對角 度,在至少獲得兩個已知位置的訊號傳送端的相對角度後,藉著所得到的角度 與三角學中 Sines Rule 與 Cosines Rule,我們可以計算出接收端的位置,如圖 2.8。而 AoA 的主要缺點為需要具備額外的指向性天線以判別訊號來源的角度。
α2 α1
Possible Location 圖 2.8 Direction-Based Localization 2.2.5 Signal Pattern Matching Method
訊號樣本比對法(Signal Pattern Matching Method)主要是利用已經建立好的 訊號樣本資料庫(signal pattern database),使用比對的方式,找出最接近的訊號 樣本(pattern),以決定目前的位置。例如 RADAR[5],優點為能夠追蹤室內使 用者的位置。要使用此系統必須分為兩個階段,第一個階段為離線階段(off-line phase),此時系統管理員必須走訪整個環境,在走訪的過程當中收集每個地方 所可以接收到的訊號樣本,用以建立訊號樣本資料庫,第二個階段為線上階段 (on-line phase),此時使用者用此刻所接收到的訊號樣本比對訊號樣本資料庫的 資訊,找到最接近的訊號樣本,由此訊號樣本的紀錄位置當作使用者目前的位 置。
此種系統相對於其他室內無線定位系統有相對較好的精確度,因為此種系
統在面臨 multipath 的問題時,會有比較好的解決能力,但此種系統需要基礎 建設的佈建,以及事先部署時必須花費時間成本以建立訊號樣本資料庫,則為 此種系統的缺點。
2.3 定位系統網路架構
我們在第 2.2 節當中介紹了目前無線網路或者無線感測網路上定位演算法 的各種原理。除了定位的原理之外,在無線網路的定位上若依系統網路架構來 區分,大致上可以分成兩種,第一種類型為 infrastructure class,這一類型的定 位 系 統 需 要 部 署 基 本 的 基 礎 建 設 , 通 常 針 對 mobile user 定 位 , 提 供 location-aware service。而另一類型為 ad-hoc class,此種類型的系統不需要預 先安裝的基礎建設,為 ad-hoc 系統,由系統裡的每個器執行分散式演算法計 算自己的位置,有關此兩種類別的定位系統,敘述如下:
z Infrastructure Class
Infrastructure class 的特色是需要先部署基本的基礎建設,而系統的使用 者可以使用此基礎建設所提供的定位功能。如前面所介紹的 GPS 系統,
它的基礎建設包含繞行於地球軌道上的 24 顆衛星,以及了追蹤及控制衛 星運轉,所設置的地面管制站。而 RADAR 同樣也是屬於 Infrastructure class 的系統之一,它必須依靠無線橋接器(Access Point)收集訊號強度資訊,而 使用者在系統中定位時,必須處於三個以上的無線橋接器覆蓋範圍,才能 夠得到精確的定位。
z Ad-hoc Class
在 這 一 類 別 的 定 位 系 統 較 為 稀 少 , 如 GPS-less Low Cost Outdoor Localization[10]及 AHLOS (Ad-Hoc Localization System)[11],這種系統的 前提是必須要有小部份的感測器知道自己的位置,這些已知位置的感測 器 為 系 統 的 reference point,我們透過這些 Beacon Node 及在每個 Unknown Node 上執行的 localization algorithm 來做定位。GPS-less Low Cost Outdoor Localization 收到 Beacon Node 的訊號後,計算這些 Beacon Node 的幾何中心當作自己的位置。而 AHLOS 是由每一個感測器執行分 散式的演算法,在測量距離方面提出了 RF-based 及 TOA 的方式,利用 前述其中之一的測距方式得到 Unknown Node 與 Beacon Nodes 的距離。
而估計位置方面則利用 Maximum likelihood 來定位,所以,每一個感測 器可由鄰近的 Beacon Nodes 推算出自己的位置,但也因為如此,感測器 必須要有額外的運算負擔,同時系統無法得知整個網路拓樸的情況。
GPS-less Low Cost Outdoor Localization 雖 然 在 分 類 上 屬 於 Connectivity-Based Method,但仍會受到訊號衰減而影響其精確度,凡是 使用訊號衰減與距離的關係來做定位的法則,皆會受到局部環境、障礙 物等的影響,而使定位的誤差增大,因為距離並不是影響訊號衰減的唯 一因素。
第三章 感測網路下具調適能力的定位演算法
這本章中,我們將詳細描述我們所設計的系統架構,包含架構中各個組成 單元,此系統架構的運作流程,介紹完系統架構之後,我們會提出在此架構上 所設計的感測網路下具調適能力的定位演算法。
3.1 系統架構
3.1.1 系統網路架構
在 AHLOS[11]中提出了一個分散式的無線感測網路架構,感應器具有一部 分運算能力並且能夠執行分散式演算法依附近的參考點自己運算出位置。我們 認為如此有兩個缺點:第一個缺點是感測器必須增加額外的計算負擔,而第二 個缺點則是如此感測器只知道局部環境的位置,系統無法掌握整個網路拓僕。
我們所提出的系統架構與傳統的無線感測網路一樣,所不同的是,感測器將不 會自己計算出位置,而是完全將接收到參考點的位置以及訊號大小傳遞給資料 收集中心,由具有強大計算能力的資料收集中心統一計算出所有未知位置感測 器的位置,除此之外,資料收集中心可因此了解整個網路拓樸,而掌握整個系 統內所有感測器的覆蓋範圍,也能提供系統 Georouting 或者 Geocasting 的需 求。首先,我們先介紹資料收集中心以及感測器的任務,描述如下:
z 資料收集中心
需收集每個感測器所得到的訊號大小以及參考點的位置,並執行集中式 (Centralized)演算法計算出所有感測器的位置。除此之外,尚須管理感測網路 上的感測器,並收集由感測器所感測的結果,將結果處理後轉為有用的資訊傳 回給觀察者。
z 感測器
此系統需要有部分的感測器來做為定位程式的參考點,我們稱這些已知位 置的感測器為 Beacon Node,而其他還未知位置的感測器則為 Unknown Node。
Beacon Node 可能是某部分裝置 GPS 模組的感測器,或者是透過人工設定部份 的感測器。在室內中,也可拿基礎建設的無線橋接器當作 Beacon Node。這些 已知位置的 Beacon Node 為系統中定位的參考點,當 Unknown Node 接收到 Beacon Node 的訊號之後,會將此資訊傳遞給資料收集中心,由資料收集中心 來計算 Unknown Node 的位置。除此之外,感測器尚須具備感測物理現象及轉 送資料的能力。
以上為系統中資料收集中心以及感測器的任務,由於我們主要所探討的對 象是在此架構上的定位演算法(Localization Algorithm),我們將不討論在此網路
上的繞徑、省電及安全機制等。整個網路系統架構如圖 3.1。
圖 3.1 Sensor Network Architecture
3.1.2 系統運作流程
當系統中的感測器部署完成時,必須由資料收集中心啟動定位程式,首先,
資料收集中心會先向系統中的所有感測器發出 Neighbor-Probe Request,系統 中的感測器接收到 Neighbor-Probe Request 後,會主動向資料收集中心建立連 結,並告知資料收集中心有關位置及接收訊號大小的資訊(Neighbor-Signals Response),其中 Neighbor-Signals Response 的格式如圖 3.2:
圖 3.2 Neighbor-Signals Response
其中,Sensor IP 紀錄發出 Neighbor-Signals Response 的感測器的 IP,而
Sensor IP Sensor Position
Neighbor Num
Neighbor 1 IP
Neighbor 1 RX_RSSI
Neighbor Information
Neighbor M IP
Neighbor M RX_RSSI Fusion Center
Observer
Unknown Node Wireless Link
Beacon Node
Sensor Position 紀錄感測器的 x 座標值以及 y 座標值,若為 Unknown Node 則 此欄位為 NULL,Neighbor Num 紀錄此感測器有幾個 Neighbor,在這裡我們 所謂 Neighbor 的意思是指可以接收到訊號的感測器,而 Neighbor Information 則 紀 錄 了 所 有 可 接 收 到 訊 號 的 Neighbor 的 訊 號 , 共 有 M 筆 Neighbor Information,其中 M 由 Neighbor Num 決定,而 Neighbor Information 中則紀錄 了每個 Neighbor 的 IP 以及 Received RSSI 值。
如圖 3.3,當資料收集中心發出 Neighbor-Probe Request 之後,會啟動計時 器(Timer),等待一段時間間隔由感測器回應 Neighbor-Signals Response,當等 待 的 時 間 到 期 之 後 , 資 料 收 集 中 心 會 統 計 共 有 幾 個 感 測 器 回 應 Neighbor-Signals Response,開始執行定位演算法計算所有 Unknown Node 的位 置。
圖 3.3 Fusion Center Data Flow
而在此必須考慮感測器是否移動的問題,在我們系統架構中,只允許小部 分感測器的移動,若是大部分的網路拓樸皆改變時,則必須由資料收集中心重 新發出 Neighbor-Probe Request,然後重新執行演算法。當感測器移動時,會 接收到不一樣的 Neighbor RF 訊號,若是接收到的 Neighbor 訊號與之前完全不 同 , 我 們 稱 此 感 測 器 移 動 , 他 會 向 資 料 收 集 中 心 發 出 Neighbor-Signals Response,而資料收集中心收到之後,會執行定位演算法單獨找尋此點的位 置,然後將位置訊息回傳給此感測器,若在資料收集中心計算此感測器的位置 同時,另有一個感測器同時發出 Neighbor-Signals Response,則資料收集中心 會重新發出 Neighbor-Probe Request,重新執行所有感測器的定位程式。
3.2 具調適能力的定位演算法 (Adaptive Localization Algorithm) 此演算法的基本假設在於部分的的感測器已經知道自己的位置,首先,除 了已知位置的 Beacon Node、尚未知道自己位置的 Unknown Node 外,我們稱 目前正在計算位置的 Unknown Node 為 Deal Node,而 Deal Node 附近所有 Beacon Node 個數的總和,我們稱之為此 Deal Node 的 Beacon Count,找到此 Deal Node 的估計位置後,此時系統會將它標示為 Calculated Node,因此 Calculated Node 的位置為計算而來,而非事先知道位置的 Beacon Node。演算 法如下:
圖 3.4 AdaptiveLocalization() Algorithm
如圖 3.4,AdaptiveLocalization()為系統定位演算法,在此函式裡,依照順 序 執 行 的 三 個 子 函 式 代 表 程 式 的 三 個 階 段 : CalLoc_MaxBeaconCountwithBound() 是第一個階段所要執行的函式,在這個 階段,程式只會在某個衰減範圍裡去尋找接收到最多 Beacon Node 訊號的 Unknown Node 來做定位,若找到 Unknown Node 的位置之後,則將此 Node 標示為 Calculated Node,再繼續尋找下一個符合條件的 Unknown Node,一直 到找不到 Unknown Node,或者找到的 Unknown Node 其接收到 Beacon Node 訊號的個數小於 3 個。由於衰減較小的 Beacon Node 對於 Unknown Node 來說,
相對地距離 Unknown Node 較近,彼此之間有障礙物的可能性較低,而且,距 離較近時,比較不會有 multipath 的問題,所以先由某個衰減範圍裡尋找到的 Beacon Node 來 定 位 , 會 有 較 好 的 精 確 度 。 CalLoc_MaxCalBeaconCountwithBound()為第二個階段執行的函式,在這個階 段,使用某個衰減範圍裡的 Beacon Node 以及 Calculated Node 當作參考點,再 尋找接收到最多參考點訊號的 Unknown Node 來做定位,同樣的,在找不到適 合的 Unknown Node 或者找到的 Unknown Node 的參考點個數小於 3 時便會進
相對地距離 Unknown Node 較近,彼此之間有障礙物的可能性較低,而且,距 離較近時,比較不會有 multipath 的問題,所以先由某個衰減範圍裡尋找到的 Beacon Node 來 定 位 , 會 有 較 好 的 精 確 度 。 CalLoc_MaxCalBeaconCountwithBound()為第二個階段執行的函式,在這個階 段,使用某個衰減範圍裡的 Beacon Node 以及 Calculated Node 當作參考點,再 尋找接收到最多參考點訊號的 Unknown Node 來做定位,同樣的,在找不到適 合的 Unknown Node 或者找到的 Unknown Node 的參考點個數小於 3 時便會進