卡尔曼滤波后的KNN指纹定位在蓝牙室内定位中的应用

2020-08-04 10:20汤谨瑜辅智豪李高正赵学龙
数码世界 2020年7期

汤谨瑜 辅智豪 李高正 赵学龙

摘要:在地下停车场中,卫星信号较弱,无法满足定位的精度要求。随着智能手机硬件配置和性能的提升,蓝牙的性能也得到极大改善。在进行室內较封闭的环境定位时,利用安卓智能手机自带的蓝牙,搜寻室内所部署的蓝牙模块的RSSI信号值,可以满足地下停车场中停车、寻车的定位需求。定位时,采用KNN算法,将环境中的各个位置划分为小块,采集其指纹,设备通过指纹比照定位,误差在2.5m左右。针对RSSI信号白噪声较大的特点,采用卡尔曼滤波算法对其进行滤波,降低噪声干扰,提升定位精度。经测量,误差进一步降低到0.9m,效果显著。

关键词:蓝牙定位  KNN  卡尔曼滤波算法

引言

随着基于位置的服务(Location Based Service)的兴起,对于室内较封闭环境定位的需求越来越强烈。在商场、医院、停车场等环境中,部署定位服务可以给用户带来更好的服务体验。传统的卫星定位技术,如全球定位系统GPS技术,在室内电磁屏蔽强、卫星信号差的环境内无法应用;同时,民用GPS定位精度一般在200米以下,平均10米级左右,这样的定位精度无法满足室内定位覆盖空间小、精度要求高的需求。

室内定位的难点在于环境复杂、干扰较强,这种环境下单一信号的定位精度较低;如果能将多种定位技术科学地结合使用,可以使定位效果更好。目前室内定位主要采用蓝牙、WiFi、UWB等技术,但在不改进定位算法的情况下,定位精度低、结果误差大,部分成本也很高。目前这几种定位技术均需要部署anchor(即定位基站):WiFi定位需要部署AP,蓝牙定位需要部署iBeacon或蓝牙基站,UWB需要部署超宽带基站。其中,WiFi室内定位技术精度较高,传输距离远,但功耗较高;UWB定位技术定位精度最高,但其所需的超宽带基站数目多,价格高昂,硬件网建立难度高。相比而言,蓝牙定位所采用的iBecon基站是苹果主导研制的,其的显著优势是功耗相对较低;同时,如果部署一张专用的定位的网络对系统的可靠性而言要比兼顾数据传输和定位的WIFI网络要健壮,稳定性要好。蓝牙定位也可以利用手机和其他设备的蓝牙功能,省去了部分终端的部署。

蓝牙信号的ID、强度、传播时间、接收角度等信息都能被用于定位。其中,基于蓝牙信标的信号接收强度指示(Received Signal Strength Indication,即RSSI)在定位领域有广泛的应用。根据采用的算法不同,定位技术可以分为2类:基于信号传播模型的定位和基于位置指纹匹配的定位。基于信号传播模型的定位是对蓝牙信号的传播信道进行建模,这需要考虑如障碍物的大小、材质、朝向等复杂的现实情况,很难用数学模型进行较好的拟合,加大了定位建模的难度。而基于位置指纹识别的定位方法通过采集指纹数据、建立数据库,构建RSSI信息与位置信息之间的函数关系,不需要建立模型以确定位置,很大程度上降低了算法的难度,同时提升算法鲁棒性。

文献[1]将iBeacon和手机MEMS相融合,提高行人航迹推算(PDR)的精度;文献[2]将RSSI技术、加权质心算法、倒数距离加权插值定位思想结合,提出IIDWC定位算法,提高定位精度。受这些技术启发,本文利用K最近邻算法(K Nearest Neighbor, KNN)思想在蓝牙RSSI指纹定位的基础上,通过卡尔曼滤波处理数据,提高定位精度和定位结果的精确性。

1 蓝牙RSSI指纹定位

1.1 RSSI介绍

RSSI(Received Signal Strength Indication),即信号接收强度指示,是接受信号的进行定位的重要依据,RSSI值越大代表接受的定位信号越强。图1显示了140秒内分别记录下的三个不同位置的RSSI信息。

通过图片可知,由于信号传输受到环境干扰,RSSI值会反映出一定的波动。在应用中,为了定位减少误差,需要多次采集RSSI的指纹信息并计算平均值作为对应位置的RSSI值。

1.2指纹采集

蓝牙室内定位技术可分为两种:一是基于信号强度的传播模型测定法,通过接受信号强度与信号衰减模型来计算待定位点与参考点的距离,但是由于室内定位环境复杂、干扰强的特点,该算法存在多径效应,鲁棒性不佳;第二种则是本文所采用的指纹定位法,预先建立蓝牙指纹库,在定位时比照蓝牙指纹确定位置,但指纹法的缺点是需要采集指纹数据,需要维护数据库。

在测定时,将地图划分为一个个小方格,每一方格为一个指纹类。测试每个类接受到的特征,作为指纹保存。在实际测定时,每个类采集10份特征,取平均值作为特征值登入指纹数据库并将蓝牙模块的UUID等级为信标。

1.3指纹匹配——KNN算法

在录入指纹信息后,定位时需要将收到的蓝牙RSSI信号强度与指纹进行比照匹配,才能获得定位结果。本文采用的是KNN算法,即K最近邻算法。

K近邻算法的基本原理是:在采集样本后进行样本训练;定位时使用新的定位样本信息,在训练样本库中选择与新的定位样本距离最接近的K个样本,由这些样本对新的定位样本进行位置判定。假设在一次定位实例中有M个iBeacon基站,共采集N次指纹,训练样本库表示为:

由表可以看出,卡尔曼滤波后的KNN算法大幅度提高了原有KNN算法的定位精度。同时,算法定位时间虽然有所提高,但比已有的HMM算法精度更高,定位时间更短,具有实用性。

4 结语

在地下停车场定位测试实验中,我们通过KNN蓝牙指纹定位以及卡尔曼滤波处理进行了定位实验,比较了卡尔曼滤波前后的定位效果。与使用单一KNN算法或单一卡尔曼滤波算法相比,本例创新地将两者相结合,极大提升了算法的鲁棒性,于实际应用中得到显现。同时,该技术也能用于其他室内定位或密闭环境无微星信号的精确定位,应用前景广泛。实验验证卡尔曼滤波后的蓝牙指纹定位拥有更高精度。同时,算法简洁,易于实现,是可用于基于位置的服务LDS的定位技术。

参考文献

[1]谢红,曹欢,刘立国. 基于iBeacon和多自由度EMES的室内融合定位技术研究[J].应用科技,2017,44(5):85-92.

[2]林信川,游贵荣.基于iBeacon的室内定位算法优化研究[J].陕西理工大学学报(自然科学版),2017,33(3):67-73.

[3] R.E.Kalman. A New Approach to Linear Filtering and Prediction Problems[J]. Transactions of the ASME–Journal of Basic Engineering, 82 (Series D): 35-45.

[4] Bzarg. How a Kalman filter works,in pictures[J]. Mini-courses,2015.11.

[5] Sun, Z., Mao, X., Tian, W., Zhang, X.Activity classification and dead reckoning for pedestrian navigation with wearable sensors Measurement Science and Technology200920111001520310.1088/0957-0233/20/1/0152032-s2.0-63749117828.

[6] Weinberg, H. Using the ADXL202 in Pedometer and Personal Navigation Applications2002Analog Devices.

[7] 李文杰,李文明.基于k-近鄰算法的定位方法设计和仿真[J].计算机仿真,2009,26(4):194-196.

[8] Canedo-Rodriguez A, Alvarez-Santos V, Regueiro C V, et al. Particle Filter Robot Localisation Through Robust Fusion of Laser, WIFI, Compass, and a Network of External Cameras[J]. Information Fusion, 2016, 27:170-188.