基于RSSI的室内蓝牙定位的设计与实现
2023-03-06朱晓君张兆雄何仁旺
朱晓君,张兆雄,李 权,何仁旺
(1.江西理工大学 软件工程学院,江西 南昌 330013;2.江西理工大学 能源与机械工程学院,江西 南昌 330013)
0 引 言
室内定位是一种相对小众且近几十年尚未深入开发的领域,但随着人们对智慧家居生活有着愈来愈高的需求,实现高精度且具有人性化的室内定位解决方案已经成为当下的研究热点。传统的卫星定位技术已不适用于室内定位场景,因为室内建筑物的阻挡作用对卫星定位的低穿透性信号的影响十分明显[1],卫星定位的效果差强人意。一般来说,人们使用室内定位技术作为卫星定位的拓展定位技术,解决卫星信号到达地面时强度较弱、不能穿透建筑物的问题。常见的室内定位技术主要有红外线定位技术、超声波定位技术、WiFi定位技术、蓝牙定位技术等。这些室内定位技术相比GPS技术而言有着成本低、实现方便和原理简单等优点,能够满足大型立体商场、城市图书馆和居民楼紧急救援等场景的定位需求。
人们一天中平均80%的时间在室内,80%的移动终端使用的数据连接在室内完成,这无疑为运用移动终端技术解决室内定位问题孕育了丰厚的土壤。蓝牙技术是多种室内定位技术方案中的一种,它是一种短距离低功耗的无线传输技术[2]。通过在室内适当位置安装多个蓝牙参考节点作为标定的基准位置,参考节点之间形成紧密联系的蓝牙定位网络,当未知节点进入该网络中,通过检测到各参考节点的信号或距离信息,将这些信息代入已知的系统方程,就可以实现目标节点的定位[3]。对于复杂的空间环境,蓝牙定位系统的稳定性稍弱,受噪声信号干扰大。故在实验中,应最大程度保持室内环境的简单及稳定,以保证环境衰减因子的不变性和RSSI信号的稳定性。
本文主要通过测量定位节点到参考节点间的蓝牙信号强度,利用对数损耗模型进行RSSI与距离的转换。由于三边定位法在实际应用中存在一些不足,文中实验过程对其进行了修正计算并得到结果。本文采用最小二乘定位算法进行定位效果的优化,经过比较,采用最小二乘定位算法获得了较三边定位算法更为精确的节点坐标值。
1 蓝牙RSSI与信号损耗模型
1.1 蓝牙RSSI
蓝牙(Bluetooth)是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换,其使用2.4~2.485 GHz的ISM波段的UHF无线电波[4]。蓝牙技术最初由爱立信公司于1994年提出,当时作为RS 232数据线的替代方案。蓝牙可连接多个设备,克服了数据同步的一些难题。
接收信号强度(RSSI)的英文全称是Received Signal Strength Indication,表示接收的信号强度指示,用来判定链接质量,以及是否增大广播发送强度。蓝牙等无线技术均有RSSI的相关概念,且其理论研究也比较成熟,故利用RSSI实现定位通常是无线定位方案中值得采取的一类方案。
基于蓝牙RSSI的测距法充分利用了信号的传播特性,无线信号的信号能量随着传播距离的延长,能量的衰减将随之增大,强度亦减弱[5]。因此,如果已知移动终端接收到信号强度值,并选择合适的信号衰落模型,将传播过程中的损耗值代入模型,就可以计算得到收发节点之间的距离。比如三边定位法利用三组RSSI值得到三边距离,求解三组方程,得到定位节点的坐标信息。
1.2 损耗模型选取
采用基于信号强度测距的方法实现比较简单,减少了过多硬件设备的成本[6]。在小区域空间范围内信号模型会较为接近理论值,因此室内定位多采用这种方法。但是由于实验中存在室内家具、人流等阻碍和无线信号本身具有的反射、绕射、多径效应等干扰[7],定位结果存在误差,因此选择一个合适的路径损耗模型具有非常重要的意义。常用的信号传播中的路径损耗模型包括自由空间模型、MK模型以及对数距离路径损耗模型。
自由空间模型的使用条件是发射节点和接收节点之间完全无障碍物干扰。自由空间中假设信号在真空中传输,其信号强度衰减模型可用公式(1)表示:
式中:Pt为发射节点的发射功率;Gt为发射端天线增益;Gr为接收端接收天线增益;λ为传输波长,单位为m;d为发射节点和接收节点的距离;β为与传播无关的硬件损耗因子(β≥1);Pr(d)为接收节点的接收功率。接收端天线增益与其有效截面A有关,即。
MK模型将室内信号在传输过程中障碍物的影响纳入了考虑范围,损耗模型要求能够很好地反应来自地板和墙壁的信号损耗,其修正传播模型损耗公式为:
式中:Lc为常数;Lf为穿过不同材质的墙体和地板的衰减;为穿过不同材质墙体和地板的数目。典型的参数取值为Lf=18.3 dB,软隔墙的损耗LWj=3.4 dB,硬隔墙的损耗LW2=6.9 dB[8]。该模型的损耗参数相对固定,不能较好地适用于不同环境,并且损耗相关参数也会受到室内家具等因素的影响。
在不同的室内环境中,无线信号损耗与自由空间模型相比有较大的不同,信号在传输过程中易受到多径效应、非视距等因素影响,因此接收到的信号强度值是多个信号的叠加。通过大量实验数据拟合和验证,科研人员得到了接收的信号强度与距离呈对数关系的规律,这就是对数距离路径损耗模型。可以表示为:
式中:d为移动节点和信标节点间的间距;d0为参考距离;n为信号衰减因子,表示损耗随距离增长的速率,由周围环境和建筑物所决定;Xσ是方差为σ的正态随机分布。对数距离损耗模型适用于室内无大型障碍物的环境,避免了多径效应等问题。本文基于对数距离模型,将RSSI值转化为距离d,减小了实验误差。
基于蓝牙RSSI的测距方法是利用无线电信号随距离增大而有规律衰减的原理来测量节点间的距离。接收信号强度RSSI与传输距离d的关系如下所示:
式中:n表示信号传播常数,即衰减因子;A表示距发送者1 m时接收信号强度的绝对值;d表示与发送者的距离。测距精度的高低受n与A实际取值大小的影响。A是一个经验参数,可以通过求取距离发送者1 m处的RSSI绝对值的平均值来获得较为准确的A值。n用来描述信号强度随距离增加而递减的参量,即衰减因子。衰减因子的取值主要受障碍物尺寸和人员流动等环境因素和无线信号在空气中的衰减、反射、多径效应等干扰,如果干扰较小,传播因子n值越小,信号传播距离越远,无线信号的传播曲线越接近于理论曲线,基于RSSI的测距就会越精确。
为得到最优的n值,本文中介绍的实验将先放置好所有参考节点,然后选取一些已知位置的节点,这些节点的数量可以尽可能大,通过在该节点测量对应参考节点的RSSI值。用标尺实测距离,代入n值公式求取平均值,并把它作为该室内环境的衰减因子。
三边测量法常用于全球定位GPS系统来确定目标节点的坐标[9],原理如图1所示。
图1 三边定位模型
参考节点A、B、C的位置坐标提前已知,三个圆相交于点O,设点O的坐标为(x0,y0),点A的坐标为(x1,y1),点B的坐标为(x2,y2),点C的坐标为(x3,y3),O点距离参考节点的距离分别为d1、d2、d3,其值的获得是由对数路径损耗公式计算得到的,公式如下:
2 三边测量法与最小二乘定位算法
一般情况下d0取1 m,ABS(RSSI(d0))用A表示,表示距离1 m远的RSSI值的绝对值,见式(4)。
通过上式可以求得d1、d2、d3,则:
联合方程可以得到:
通过求解上式即可得到未知节点的位置(x,y)。
由公式(7)及图1可知,三个圆相交的一点即为定位节点。但三边测量法的不足之处是如果信号的传播过程中伴随着噪声干扰,如图2所示,三个定位圆就不会准确相交于一点,这导致按照正常解法代入d1、d2、d3后无法求解出正确的坐标值。在本文的计算过程中,将三个圆两两相交的内部三点组合形成新三角形,如图2中箭头所指的三点形成的三角形,将该三角形外接圆的圆心作为目标节点,得到目标节点的拟合坐标。
图2 三边定位法出现的问题
鉴于三边测量法在实际应用中存在不足,故我们将三边测量法变形为多边测量法,已知A1,A2, ...,An节点的坐标分别为(x1,y1),(x2,y2), ..., (xn,yn)。其中,节点N到A1,A2, ...,An节点的距离为d1,d2, ...,dn,原理如图3所示。
图3 多边测量法
假设N的坐标为(x,y),那么得到公式:
采用最小二乘定位算法求解式(8),将前n-1个公式分别减去最后一个公式,得到:将公式转化线性方程组AX=b的形式,因此
由于测试可能存在的误差,因此合理的模型是:
式中,N为n-1维随机误差向量,为了得到最优解,求矩阵X的值需要使N=b-AX的值最小,其误差均方差为:
对式(14)进行求导,并令其值为0,得到式(15),进而可得到待测节点的坐标矩阵X,即式(16):
最小二乘法的优点是可以充分利用采集的节点信息来定位,在测距存在一定误差的情况下,仍然可以获得较高的定位精度,因此在很多定位方案中都会采用这种方法。
3 RSSI测量信号平台搭建
为满足测量某一未知节点到其他节点蓝牙RSSI值的便捷性要求,文中采用MIT App Inventor设计平台来独立开发一款蓝牙信号检测软件—Bluetooth Detector。当今时代的智能手机大部分都有蓝牙模块,具有普适性和便捷性等特点[10],因此采用手机作为终端检测设备是较优的选择。同时,由于许多如蓝牙耳机等电子设备均含有蓝牙模块,采用蓝牙作为检测指标解决了设备终端局限于智能手机的问题,普及面相比WiFi更广。
App Inventor是谷歌公司开发的一款手机编程平台,App Inventor用户能够通过该软件使用谷歌Android系列软件自行研发适合手机使用的任意应用程序。
MIT App Inventor能够将按钮、文字输入输出等软件代码编写成不同的模块。开发App Inventor软件时,设计者只需根据自身需求完成拼装即可。最后通过手机与电脑联接或者直接下载在手机上,程序就可以在用户的手机上运行使用。
App Inventor的设计理念是简约和操作容易,它们大部分是为操控硬件而产生的,通过导入相应的硬件控制模块,就可以实现几乎所有功能。本文中的Bluetooth Detector通过外部导入BluetoothLE1模块,满足了测量蓝牙RSSI的功能需求。手机APP截图如图4所示。
图4 手机APP截图
4 定位实验的研究与实现
4.1 实验介绍
本实验的应用场景是江西理工大学南昌校区第一教学楼某间教室,教室中的主线路分散布置了14个目标节点。在该室内平面建立了一个200 cm×200 cm的平面二维坐标系,并选取了3个参考节点A,B,C,坐标分别为(0,0),(50,200),(200,50),单位为cm,分别记为(x1,y1),(x2,y2),(x3,y3)。实验中采用3部不同MAC地址的蓝牙耳机作为发出蓝牙信号的主设备,放置在3个参考节点的位置。实验开始前需要对此间教室的环境参数进行初步确定,通过测量已知位置的2个节点之间的RSSI值,代入公式,求出A值及n值。之后依次在需要定位的14个目标节点处放置手机终端,在手机终端上打开蓝牙信号检测软件—Bluetooth Detector,通过查看APP中的设备列表测出该点相对于3台参考设备的RSSI值,记录数据,代入公式,列出方程求解未知节点的位置坐标。
4.2 数据处理及分析
实验正式开始前,在教室的平面坐标中,先随机选取10个节点,利用这些节点测出其相对一个参考节点的RSSI值,同时测出A值,通过皮尺测出真实的距离d,将实验数据记录在表1中,如下所列。
表1 选取10个样点的数据
MATLAB是一款用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理等领域的商业数学软件。本实验中将利用MATLAB软件进行RSSI数据的计算分析,导入表1。通过编写算法,计算出该教室的n值。最终计算所得n值为4.1,A值为47。
得到合理的n值后,我们使用的RSSI距离公式就有了更加精确的运用。为了更好地测量和记录未知节点的坐标信息,我在场地中选取的参考节点分别是(0,0),(50,200),(200,50),单位为cm,这时我们代入14组目标节点,每个节点通过稳定测量都得到了5组数据,求其平均值并运用。采用三边测量算法,通过MATLAB等计算方法得到这些点的坐标数据,实际坐标、测得坐标与误差见表2所列。
表2 三边法测得坐标与实际坐标对比 cm
为了更直观比较和分析误差,三边测量法下实际坐标点和测得坐标点在同一张坐标系中的绘制如图5所示。通过验算和比较,该算法下定位误差较大。
图5 三边测量法下测得节点与实际位置的比较
最小二乘定位算法对三边测量算法进行了优化和补充,这里通过对最小二乘定位算法进行MATLAB编写程序(添加由测量RSSI引起的误差噪声),输入3个参考节点的坐标位置,得到14个点的测得位置与实际位置的偏差,见表3所列。
表3 最小二乘法测得坐标与实际坐标对比cm
同样,为了更直观比较和分析误差,最小二乘定位算法下实际坐标点和测得坐标点在同一张坐标系中的绘制如图6所示。通过验算和比较,该算法测量精度较小。
图6 最小二乘定位算法下测得节点与实际位置的比较
5 结 语
本文基于蓝牙定位技术,利用Bluetooth Detector软件测出待测节点到参考节点间的蓝牙RSSI值,并通过对数损耗模型将RSSI值转化为距离,随后采用三边测量算法和最小二乘定位算法分别得到待测节点在平面中的位置信息。经实验误差计算和对比,结果表明,最小二乘定位算法在相同条件下得到的误差更小,具有稳定性高和精度大的特点。本文通过实验验证完成了2个室内蓝牙定位方案的研究与设计,对当下研究室内定位的问题具有一定的借鉴意义。