藍牙定位是iBeacon技術最常被應用的方向之一,基于藍牙定位可以實現諸如尋路、尋車、向導等很多商業需求,也是基于iBeacon技術實現的。藍牙定位又可以分為一維定位和二維定位,本文將介紹兩種藍牙定位技術的實現原理及實現方法。

藍牙定位一維定位

原理

藍牙定位的底層技術是藍牙測距,所謂一維定位其實就是對藍牙測距技術的最簡單應用,只要將藍牙信標設備部署在指定點,當接收設備(手機)足夠靠近信標時,就認為用戶到達了指定點。之所以稱之為一維定位,是因為定位結果完全依附于信標設備的位置,沒有任何其他維度上的擴展。

應用

這種方式通常用在固定路線的沿途部署,為路線上的用戶提供定位信息。

優點是部署成本和開發成本很低,缺點是只能應用在路線固定,并且定位點間隔不太密集的場景。典型的例子就是景區或者園區,景區內的路徑都是經過設計的,固定而且幾乎唯一;景點之間的距離也不會很近,至少在50m以上的間距。只要沿途以大致固定的間距部署信標設備,就可以為用戶提供相對實時而且準確的定位信息。

實現

一維定位的部署非常簡單,如上文所述,只要確定好信標設備的有效覆蓋范圍,然后沿途部署就可以。部署同時收集每個或部分信標設備的位置信息,作為程序的定位檢索依據。

開發方面,移動設備只要將收到的信號做距離排序,找到距離最近的一個信標設備,如果距離在指定范圍內,就檢索該設備的位置信息,認為用戶到達了該地區。

太簡單了,就不多說了。

藍牙定位二維定位

原理

二維定位顧名思義,就是可以實現二維空間中的任意定位。定位的主要理論依據三角形三邊關系公式。

如上圖,已知三角形三邊長度,CD是底邊AB的垂線,AD和BD的長度計算公式分別為

BD = (AB2+CB2-AC2)÷2AB

AD = (AB2-CB2+AC2)÷2AB

整體思路是,將信標設備在場地內按指定間距做網狀部署,使用戶在場地內任意點都可以接收到3個距離最近而且連線構成直角的定位點信息,如下圖

通過三角形三邊關系公式,可以計算出上圖中px和py的長度,也就是當前點在當前正方形網格中的坐標。

再根據當前所在正方形在整個矩陣中的位置,結合部署間距,算出當前點在整個矩陣中的坐標。

應用

二維定位理論上適用于任何場景,通常用在用戶活動路徑不固定的自由空間中,比如展會、商場。

優點是場地適應性更強,缺點是部署成本和開發成本相對較高。以商場為例,嚴格按照固定間距部署藍牙信標,往往需要結合實地情況選擇合適的距離,程序也要根據實際間距做相應的計算調整。另外還要考慮不規則區域的處理,往往會將一維定位和二維定位結合使用。

實現

上面原理部分說起來有點啰嗦,看圖其實很簡單。

假設現在有一個30m * 30m的場地,將信標設備以10m為間距網狀部署,共需要16個信標,每個信標都按下圖所示標注上坐標信息

此時用戶無論在場地內的任何位置,都將身處9個正方形網格中的一個(暫不考慮臨界情況),那么移動設備收到的距離最近的4個信標點,應該就是當前所在正方形的4個頂點。

假設當前用戶此時在左上角第一個正方形中,根據藍牙測距結果,得到距離最近的3個信標點,對應的距離分別為distance1, distance2, distance3,如圖

三個頂點距離已知,部署間距已知,根據三邊關系公式可以得px, py的值,也就是當前點在當前網格中的坐標。

在這之前先要解決一個問題,那就是三個點之間的關系。我們知道三個點肯定兩兩連線互為直角,但到底哪兩個點在橫軸上,哪兩個點在縱軸上。這需要結合點的坐標信息做進一步處理。

至此,就很容易算出定位點的橫軸坐標和縱軸坐標了,再分別加上當前網格在整個矩陣中的橫坐標和縱坐標,就得到了最終的定位坐標。

上例中的xAxisPoints和yAxisPoints已經對坐標信息做了排序,橫軸數組第一個點的x值,以及縱軸數組第一個點的y值,就是網格在整個矩陣中的橫坐標和縱坐標。

總結

一維定位和二維定位分別有各自的應用場景,其中二維定位對實施能力提出了較高的要求。現實環境中往往還需要將一維定位和二維定位結合使用,這里需要程序設計上處理好兩種情況的兼容。

得到定位信息,往往只是項目的第一步。比如在導航系統中,定位信息需要匹配最近的目標點,整個導航功能才可以開始使用。有機會后面會對導航系統的實現,做進一步的分享。

本文轉自網路,侵刪

上一篇: 物聯網系統安全之訪問控制
下一篇: 云里物里IOTE 2023載譽收官 毫米波雷達傳感器斬獲金獎!