本文档为面向iBeacon架构的BLE室内定位整体框架设计说明。
文档中所涉及的
算法,在无特殊说明的情况下,可面向通用室内定位系统。
本文档涉及以下内容:
1.室内定位理论与公开算法实现
2.室内定位工程实施通用流程
本文档不涉及以下内容:
1.经验算法与模型,包括但不限于:基于工程的定位经验算法,基于场景的
定位校正算法,室内定位勘测方案
2.室内定位工程实施细节
基于移动终端的室内定位,一般利用可检测的无线信号,如wi-fi与蓝牙,进行定位,包括以下三种基本方法:
标签定位
标签定位指利用信号源作为定位锚点,将用户位置固定到某一个锚点上。
标签定位流程如下:
1.预先取得室内信号源的位置,包括水平坐标,楼层
2.扫描信号
3.当扫描到数据库对应的信号源信号,以rssi最大的信号源所在的位置作为
当前的定位位置
标签定位的优点是:
1.没有计算量
2.部署简单
3.定位不会出现不合理的偏差
标签定位的劣势是:
1.定位精度取决于信号源部署密度
2.无法覆盖区域,只能标识热点区域
三角定位
三角定位通过rssi值计算用户与信号源间的距离(rssi-dist mapper),再通过基本的几何运算计算确定用户的位置。
定位流程如下:
1.预先取得无线信号源的几何位置,包括水平坐标,高度
2.扫描信号
3.当扫描到至少三个已知信号源信号,根据预置的rssi-dist mapper计算出
用户与各个对应信号源的直线距离
4.根据3中换算的直线距离,进行三角定位计算,得出当前的水平位置坐标
三角定位的优点:
1.无须勘测
2.计算量小
3.便于快速部署
三角定位的缺点:
1.精度一般
2.需要部署硬件
3.rssi-dist mapper容易受室内环境影响,如反射,障碍
指纹定位
指纹定位是三角定位的变种,指纹定位通过比较已知的无线信号强度分布(指纹)与用户采集的信号强度,寻找出定位区域最匹配的区域。
定位流程如下:
1.预先取得室内无线信号强度的区域分布,即勘测区域
2.扫描信号
3.当扫描到已知信号源的rssi值,按rssi强弱顺序,选取一个信号源rssi,
计算它和勘测区域中所有位置该信号源的rssi差值,将差值最小位置集合
作为最优定位区域。
4.通过3计算来自不同信号源的信号强度差值,获得每个信号源的最优定位
区域。
5.计算所有信号源最优定位区域的重叠部分,重叠部分的质心即为定位估测。
指纹定位的优点:
1.无须硬件部署
2.精度可以根据需求调节
指纹定位的缺点:
1.需要勘测,且勘测质量决定定位准确性
2.计算量大
3.容易出现区域干扰,即不同的勘测区域或为勘测区域具有一样的无线信号
指纹
基本混合定位:
1.三角定位与指纹定位可以通过BLE,RFID,二维码等信号模块,为室内设
置一些定位锚点,可以有效地降低定位误差与定位位置跳动。
例如,当使
用指纹定位时,如果两个区域具有相同的指纹,则可在其中的一个区域附
近布置一个iBeacon,通过检测iBeacon信号的存在进行区域的选择
2.同时使用三角定位与指纹定位,在某些场合可以提高定位的准确度。
例如,
当信号强度非常大的时候,指纹定位由于不同区域的指纹太过接近而跳动,而三角定位则可以避免这种跳动
整体架构
一个完整的三角定位系统,由两部分构成,工程部分(Engineering section, 以
下简称Eng),代码部分(Coding section,以下简称Cod)
•Eng主要负责提供:
i.定位区域信号源分布图,包括信号源的水平坐标,高度,其他的位
置标识数据,如楼层,部署方式(天花板,墙面,门框等),ID,
信号源其他属性。
这部分数据一般称作勘测数据(surveyData)ii.基于应用场景的rssi-dist映射模型
•Cod主要负责提供以下代码实现:
i.三角定位引擎,用于封装各种定位算法,在这里,指三角定位类算
法
ii.勘测数据库的生成与管理器,提供面向定位引擎的查询与导入接口
iii.GIS,基本功能包括:
iv.Map,一个可供定位应用的地图显示,支持基本的操作如缩放,旋转,偏移,图层加载
v.GisInfo,负责将地图信息数字化,显示基本的信息如文字识
vi.Marker,一个可以基于Map与Gis添加额外标识(坐标,路径,热点区域,等)
•为便于勘测数据管理与维护,可提供以下辅助app 4. 基于GIS的勘测数据生成与管理app 5. 基于应用场景与硬件设备的rssi-距离映射模型校正
app
三角定位引擎架构
为了简化引擎架构,以下描述了三角定位应用场景
1.基于BLE的广播数据进行定位,采用iBeacon兼容架构,以下简称iBeacon
2.终端主动定位:终端手机主动扫描iBeacon获取其rssi值进行定位计算,
引擎本地实现
3.Eng部分已完成,即surveyData和rssi-distance模型已提供。
三角定位引擎流程
定位本质是引擎对定位请求数据进行时间与空间上的滤波。
一次完整的定位由两阶段(phase)组成,空间滤波(spatial filtering,SFilter),时间滤波(temporal filtering,TFilter),如下图所示:
为了保证实时定位,即定位不存在时延,一般不采取SFilter与TFilter迭代,即对信号反复进行SFilter-TFilter-SFilter。
在精度差错允许的范围内,引擎采用级
联结构,首先利用三角定位对每次定位数据进行位置估测,然后在时间上滤除不合理的位置估测。
定位流程如下:
1.用户发起连续的,或一定长度的Positioning request,向引擎传送监测
iBeacon信号
2.引擎首先对每一次Positioning request按照如下流程进行三角定位,即
SFilter
3.获取至少3个iBeacon的信号
4.根据iBeacon的几何信息与对应的rssi-dist mapper,计算用户-iBeacon
绝对距离
5.根据下图计算用户-iBeacon水平距
离
6.根据基本的几何关系,可以算出各iBeacon对应的水平距离的半径圆的交
点,如下图
7.取交点中靠得最近的一些点,如上图中A,B,C三点,求它们的质心
(A+B+C)/3,即是最终定位点
8.实际计算中,可根据更多的iBeacon信号进行以上的定位计算,存在两种
方法:
9.选取iBeacon中rssi最强的信号进行定位,这种方法最合理,但容易受环
境干扰
10.选取不同的3个iBeacon信号组合进行定位,获取一组定位位置,这种方
法得到的是一组位置估测,需要配合时间滤波进行选择
11.选取所有的iBeacon信号,计算每两个iBeacon的距离半径圆交点,计算
靠得近的一组的交点的质心,这种方法性能类似1
12.获得了一次的定位信号,将其放入Position buffer, 进行TFilter,TFilter
可采用多种方法,如LP滤波,Kalman滤波,kNN
13.完成TFilter,对外输出定位位置。
引擎流程架构
三角定位引擎由四个部分构成,附功能描述:
1.engine:引擎核心
2.rssi-dist mapper:距离计算
3.survey data base:存储surveyData并供engine and rssi-dist mapper调
用
4.positioning buffer:缓存定位记录
引擎整体流程如下图所
示
##Rssi-Dist 距离计算原理
Rssi是系统对送入基带信号处理模块之前的信号强度,rssi的计算模型如下:•rssi = txPower+txGain+rxGain+pathloss
其中,txPower为发射功率,txGain为发射端增益(包含系统增益与天线增益),rxGain为接收端增益,pathloss为信号传播的路径损耗。
在以上公式中,仅pathloss与信号传播的路径长度有关,而其他的参数,一般认为是恒指,因此上式可以简化为:
•rssi = gain + pathloss
其中gain是通信的整体信号增益
理想的室内2.4GHz路径损耗服从线性关系
•pathloss [db] = C + N*lg(d)
其中,d为iBeacon与用户的绝对距离,lg()是底数为10的对数函数,N为适配参数。
因此,可以将rssi计算模型简化为:
•rssi = Const + N*lg(d)
rssi校正,即确定Const与N,分两步:
1.选取d = 1 m, 则rssi = Const
2.选取d = 2 m,则N = (rssi-Const)/0.3。