在超市逛逛的時候,作為乙個男生,相信大家都有這樣的經歷,我是誰,我在哪,我要幹啥?在嘈雜的**中迷失了。。。這時候我們假想這樣的乙個情景,我們帶著airpods,褚在乙個大型商場的某圪塔
me:siri,我在哪?
siri: 你在*****
me:。。。這個我用你告訴?
這時候,如果我們有比較良好的室內定位解決方案,siri可能真的就不會這麼智障了。
最近做了乙個室內點定位的專案, 在開發的過程中經歷了許多踩坑跳坑的過程,在這裡把開發過程遇到的一些事情來記錄下來。由於在建築物內,gps定位無法提供精準的定位服務,所以我們需要重新尋找可以實現室內定位的定位基準。
1,基於無線訊號發射裝置的wifi,ble,rfid,uwb。
-- 這種方式通過外圍已知裝置的輔助進行定位,根據訊號的強度來計算推演位置。
2,基於地磁
-- 地磁在一定範圍內是變化緩慢的,但由於建築內的影響磁場分布的物體存在,導致在室內的地磁會發生固定的變化。根據磁場的變化來進行位置推測
3,基於慣性導航
-- 假設某物體以一定變化率的運動方式進行軌跡變化,根據預先確定的位置、估計或已知的速度和時間來估計當前的位置
4,基於影象視覺
-- 基於影象識別
1,鄰近探測法
2,質心定位法
-- 根據移動裝置可接收訊號範圍內所有已知的信標位置,計算其質心座標作為移動裝置的座標(三點定位)
-- 基站定位精度不高,依賴參考點分布密度
3,多邊定位法
-- 通過測量待測目標到已知參考點之間的距離,從而確定待測目標的位置。(主要用於超聲波)
4,極點法
-- 測量相對某一已知參考點的距離和角度從而確定待測點的位置雷射掃瞄測量簡單,精度高,應用不廣(由於需要角度距離等引數,需要的裝置要求比較高)
5,指紋定位
-- 在定位空間中建立指紋資料庫,通過將實際資訊與資料庫中的引數進行對比來實現定位(knn,余弦相似度)
-- 前期工作量大,不適用於變化環境中
6,航位推算法
-- 根據預先確定的位置、估計或已知的速度和時間來估計當前的位置慣性導航資料穩定,無依賴,誤差隨時間積累
本專案基於布設成本的考量,採用ble和地磁組合來進行點定位,通過前期的資料採集,建指紋庫,之後進行指紋匹配進行定位。
實現方式為兩種:(具體實現後述)
1,根據採集的資料(ble-rssi和地磁)構建深度學習網路,對資料輸入量x以及輸出量y進行建模,得到乙個區域內的模型。
輸入:
[(rssi1.t1, magnetic1(x,y,z).t1, location(floor1,location1)),
(rssi1.t2,magnetic1(x,y,z).t2, location(floor1,location1)),
......
(rssi1.tn,magnetic1(x,y,z).tn, location(floor1,location1))]
..................
[(rssin.t1, magneticn(x,y,z).t1, location(floorn,locationn)),
(rssin.t2,magneticn(x,y,z).t2, location(floorn,locationn)),
......
(rssin.tn,magneticn(x,y,z).tn, location(floorn,locationn))]
輸出: 對上述資料進行dnn建模,建立關於點rssi和location的模型
model for(rssi1--location)
2,根據採集的資料,對資料進行濾波,濾波結束後得到某點的模型值,對測量點進行余弦相似度計算,來確定點位置。
輸入:
[(rssi1,t1, magnetic1(x,y,z).t1,location(floor1,location1)),
(rssi1,t2, magnetic1(x,y,z).t2,location(floor1,location2)),
......
(rssi1.tn,magnetic1(x,y,z).tn, location(floor1,location1))]
輸出: 對上述資料,進行濾波,可以得到某位置出現的rssi及地磁資料的分布函式。並濾波之後存放在資料庫中,定位的時候使用余弦相似度計算,當某值在某一定閾值內表示在該點。
本處使用地磁資料進行體現:(6個不同點的地磁資料採集xyz分量)
由上圖可知,在單個點中,地磁的資料是基本穩定在一定的區域內。接下來我們看在連續的區域內地磁的變化:(6次連續位置地磁分量測量)
由上圖可以得到,在室內連續的區域內,點之間的地磁變化基本是固定的。再由於固定點的地磁資料是穩定的,那麼我們就可以結合rssi進行指紋定位,或者余弦相似定位。由於rssi和地磁單一的採集量在定位的時候是無助的,不準確的,採用rssi和地磁的結合指紋將有效提高精確度。
要實現上述問題,需要一些資料處理,在後文中進行描述。
1D1A 1 插入排序
演算法導論第乙個演算法就是插入排序,思想簡單,如果是從小到大排序,就是從第二個數開始,和前邊的數比較,直到大於等於前邊那乙個數,然後放在那個位置。而且,先用python寫,就相當於偽 特別好,既有思路,還把python練習一下,然後再用c python def insertsort a for i ...
1 小試牛刀 1
1.echo e 包含轉義序列的字串 2.彩色列印 文字 重置 0,黑 30,紅 31,綠 32,黃 33,藍 34,洋紅 35,青 36,白 37 背景 40,41,42,43,44,45,46,47 example 1 echo e e 1 31m zhangjing e 0m 紅字 2 ech...
演算法(1) 遞迴演算法1
人理解迭代,神理解遞迴。綜上所述,還是不理解地好。遞迴三要素 1 明確遞迴的終止條件 2 給出遞迴終止時的處理辦法 3 提取重複的邏輯,縮小問題的規模 遞迴的兩種解決模式 1 在遞去的過程中解決問題 function recursion 大規模input if end condition endel...