室內導航學習筆記 以WIFI為例

2021-06-19 03:30:10 字數 1379 閱讀 6104

用wifi實現室內導航涉及到兩個步驟:測距和定位。總的來說,測距技術又包括以下三個關鍵步驟:測距方式、訊號的濾波以及測距模型的選用。

測距方式包括toa(time of arrival)、tdoa(time difference of arrival)、aoa(angle of arrival)以及rssi(recieved signal strength index)。toa是利用接收機接收訊號和ap發射訊號之間的時間差來確定兩者之間的距離,基本原理是在平面上如果能同時接收到三個以上的ap點訊號,並且這些ap點位置已知的情況下,就可以利用三角測量的方式,唯一地確定出接收機的位置;類似地,tdoa也是基於三角測量,只不過它是基於接收機到兩個ap點的距離差來進行定位,從數學上可以知道,如果接收點到ap1和ap2的距離差已知,那麼接收點的平面位置只能是雙曲線的一端,如果有ap2和ap3的距離差,那麼兩條曲線的交點就是接收機實際的位置;雖然toa和tdoa的定位精度非常高,但是可以看出,這兩種方式對於時間同步的要求非常高,由於電磁波的傳播速度很快,時間上哪怕是微秒級的誤差也會導致測距的幾十公尺左右的誤差,並最終影響定位精度,因此對裝置的要求也比較高;而rssi接收的是訊號強度,然後再根據一定的模型將訊號強度轉換成距離,完成測距,常見的是利用wifi訊號來進行rssi測距.

由於受到周圍環境的各種其它因素的干擾,接收機接收的訊號中可能含有隨機性的誤差,因此在進行處理之前,需要先對這些訊號進行濾波處理,而濾波的方法有很多,目前主要的方法有均值濾波、高斯濾波、修正加權濾波及卡爾曼濾波,其中對於線性時域隨機系統而言,卡爾曼濾波是表現最優秀的濾波器之一,並且它的計算公式較簡單,易於計算機實現。另外,在利用rssi的方式進行測距時,接收機接收的是訊號的強度,如何把訊號強度轉化為實際的距離值,就需要用到相應的模型,目前的測距模型一般可分為經驗模型和確定性模型,經驗模型主要是根據實測資料來建立模型和引數回歸,而確定性模型是根據訊號的特性,選用一定的數學模型來擬合,常見的確定性模型包括ericsson多重斷點模型、對數距離路徑損耗模型、衰減因子模型和k-m模型。

不管選擇哪種測距方式,由於測量不可避免地會存在誤差,因此三角測量理論上會集中於接收點,但實際上往往會形成三個圓兩兩相交成六個點的情況,如何利用這六個點來確定接收機位置的方法就稱為定位演算法,目前常見的定位演算法包括三角質心演算法、最小二乘演算法和極大似然估計,總的來講,這些演算法相對來講比較簡單成熟,在這裡就不多作闡述。

大體上,不管是利用wifi,還是用紅外,還是超聲波,或者agps,基本的原理都是基於三角測量,而三角測量關鍵的一步是實現到不同基準點的距離測量,這點和gps測量其實是一樣的,只不過這裡假設所有的基準點座標是已知的,個人覺得在實際的應用中,這可能是個難點。另外,既然說到導航,不可避免地要提到電子地圖,對於室內導航來講,如何高效地獲得建築的室內地圖,也是個不可小覷的難題;同時,以上說的這些方法都是在假設接收機不動的情況下才能適用,也就是單點定位,在對實時性要求比較高的應用中,這些方法的實用性還有待商榷。

171114 逆向 以CM為例學習MFC機制

1625 5 王子昂 總結 2017年11月14日 連續第410天總結 a.謎之crackme b.就不說啦,總之是個mfc程式,執行介面如下 可以看到沒有確認按鈕,一般來說是由定時器訊息或text內容改變訊息觸發check函式 確認無殼後拖入ida查詢字串,輕鬆定位到sub 401cd0 但是向上...

資料庫學習記錄(以MySQL為例)

docker pull mysql latest docker run restart always name study mysql p 3306 3306 e mysql root password 123456 d mysql latest 登入容器 docker exec it study ...

程式設計師如何高效學習(以 Java 為例)

身處乙個需要終身學習的時代,如何高效的學習是一件非常值得研究的事。對於程式設計師來說更是如此,2 年不學,你可能就被時代拋棄了。對於初學者來說,最大的幸運就是在一開始就找對了方向。怎麼去學,學到什麼程度,學習方式是什麼,要學多久。如果一開始就能有乙個概念,那麼學習過程中就會事半功倍。對於有了一定經驗...