基于位置指紋算法的Android平臺WiFi定位系統
近年來(lái),隨著(zhù)城域無(wú)線(xiàn)基礎網(wǎng)絡(luò )的發(fā)展,熱點(diǎn)(AP)的覆蓋率大幅度提高,由于定位服務(wù)需求的增加以及WiFi應用領(lǐng)域的擴大,WiFi定位成為一種有效的定位方式。GPS衛星定位是最主要的定位方式,它需要在相對空曠、高層建筑不密集的地方獲得較準確的定位,當人們處在室內或高樓林立的市區,定位精度明顯降低甚至不能定位。此時(shí),利用無(wú)處不在的WiFi網(wǎng)絡(luò )將能夠彌補GPS定位的不足。目前大多數的WiFi無(wú)線(xiàn)定位算法主要為:基于到達時(shí)間、到達角度、到達時(shí)間差的模型定位及基于接受信號強度(RSSI)的位置指紋定位算法,由于位置指紋算法的無(wú)線(xiàn)定位方式不需要已知AP的位置信息及準確的信道模型,該算法在定位性能以及可用性上具有更大的優(yōu)勢。因此,本文首先設計了整體的系統框架,通過(guò)研究分析了該算法目前存在的問(wèn)題,提出了改進(jìn)方案,并在Android平臺上實(shí)現完整的定位系統。
本文引用地址:http://dyxdggzs.com/article/269657.htm1系統整體設計
本系統的設計目標是在Android智能終端上實(shí)現實(shí)時(shí)WiFi定位系統,該系統包括客戶(hù)端、數據服務(wù)器以及定位服務(wù)器。為了使定位過(guò)程和服務(wù)器通信過(guò)程相對獨立,分別設置了專(zhuān)門(mén)用于定位的AP熱點(diǎn)和客戶(hù)端與服務(wù)器之間的通信AP熱點(diǎn),可有效降低系統環(huán)境搭建的初期成本。本方案的系統框架如圖1所示。其中的通信AP熱點(diǎn)需要與局域網(wǎng)相連,保證定位區域內WiFi信號良好,確保數據傳輸及處理的及時(shí)性??蛻?hù)端和服務(wù)器端通過(guò)TCP連接實(shí)現可靠傳輸。

圖1系統框架圖
2系統實(shí)現
2.1客戶(hù)端模塊設計
本系統采用客戶(hù)端/服務(wù)器(c/s)的網(wǎng)絡(luò )架構,客戶(hù)端的定位過(guò)程主要包括WiFi無(wú)線(xiàn)信號掃描、數據傳輸、界面顯示等,該過(guò)程的流程圖如圖2所示。

圖2客戶(hù)端定位模塊流程圖
WiFi信號掃描是利用Android API提供的WiFiManager類(lèi)實(shí)現。首先,判斷WiFi是否開(kāi)啟;其次取得WiFiManager及WmInf0對象,通過(guò)startScan()、getScanResuits()等方法開(kāi)始掃描并得到掃描結果mScanResult;最后,將數據傳遞給服務(wù)器端進(jìn)行定位計算。Android平臺為用戶(hù)提供豐富的界面顯示控件,本設計使用ListView顯示服務(wù)器返回的定位位置信息。
2.2服務(wù)器端模塊設計
服務(wù)器端首先需要不斷監聽(tīng)指定端口,當監聽(tīng)到客戶(hù)端的請求時(shí),創(chuàng )建新進(jìn)程,該進(jìn)程負責處理客戶(hù)端的請求,其處理過(guò)程如圖3所示。監聽(tīng)數據,如果接收到該數據,則進(jìn)行CRC校驗并結束鏈接幀,根據請求內容查詢(xún)數據庫并進(jìn)行定位運算,最后返回定位結果,通過(guò)數據傳輸反饋給客戶(hù)端界面顯示定位信息。

圖3服務(wù)器端流程圖
3定位算法設計
在室內或室外環(huán)境下,由于信號傳播途中受地形、障礙物的影響和人體的阻擋,將引起無(wú)線(xiàn)信號的折射、衍射等多徑傳播、多址傳播,以不同的時(shí)間到達終端,造成傳播信號在幅度、頻率和相位上的改變。其使得在同一位置,不同時(shí)間采集到的RSS值很不確定,即使在同一時(shí)間相同位置使用不同的定位設備采集到的RSS大小也會(huì )不同,會(huì )影響定位的精確性,無(wú)線(xiàn)信號傳播的衰減模型難以良好地表征距離和信號強度間的映射關(guān)系。因此本文采用基于位置指紋的定位算法,同時(shí)針對造成定位誤差的主要原因,提出了改進(jìn)的定位算法以提高定位魯棒性。
評論