随着低功耗蓝牙(BLE)技术的不断发展,蓝牙定位的测距算法也越来越多,比如RSSI(接收信号强度指示)、AoA(到达角)、AoD(出发角)、ToA (到达时间)、TDoA(到达时间差)、ToF(飞行时间)等。不同测距算法的实现难度、功耗及精度不一样,大家可以根据自己的预算及精度要求选择相应的测距算法。在众多测距算法中,RSSI是最具性价比的,其具有功耗低、成本低、使用简单的优势。本文将介绍RSSI定位系统的原理。
RSSI是Received Signal Strength Indication的简称,是接收的信号强度指示,无线发送层的可选部分,用来判定连接质量以及是否增大广播发送强度。通过接收到的信号强弱测定信号点与接收点的距离,进而根据相应数据进行定位计算的一种定位技术。 蓝牙RSSI定位是指基于蓝牙4.0以上协议,利用蓝牙RSSI信号衰减与距离之间的相关性关系来计算出蓝牙终端所在位置的一种定位方式。在实际应用过程中,发射端通常为蓝牙信标,接收端通常为智能手机。
蓝牙设备在广播中,信号接收端离发射端越远,接收到的RSSI场强值就越弱;信号接收端离发射端越近,接收到的RSSI场强值就越强。接收端收到的无线信号dBm一般都是负值,信号值越大代表信号越强,RSSI信号范围在0~-100之间,0是理想情况,在实际应用中并不存在。
根据不同的应用要求,蓝牙定位一般可分为存在性检测定位和三角精准定位。存在性定位通常应用于巡更考勤,一个发射端和一个接收端即可完成应用,即可证明存在于某个区域,应用原理简单;接下来重点介绍下RSSI三角定位原理。
三角定位原理:发射端的位置是固定的,比如一个区域有3个 发射端,也即铺设了三个蓝牙信标,BS1(x1,y1),BS2(x2,y2)以及BS3(x3,y3)。
如图:E点接收 BS1、BS2、BS3发出的信号,获取到不同点位的RSSI,三角定位算法通过已知的三个坐标反推出E点的坐标。
三个发射端(BS1,BS2,BS3)的坐标是固定的,利用三点定位原理即可近似计算出接收端所在的位置,也即发射端信号向外360度扩散形成球面的交点,进而计算出E(x,y)所在的位置;
在实际应用中算法可不只如此简单,还要考虑到不同环境的不同衰减因子,以及利用滤波算法过滤信号的干扰,让定位点更加平稳。在有些定位算法中,还会加入惯导算法。即便如此,利用蓝牙RSSI场强计算出的位置仍是近似位置。