当前位置:首页 期刊杂志

一种基于LoRa的动态识别和楼层判定方法*

时间:2024-05-22

韩一石,曾祥威,李 贤,陈佳瀚,洪远霖

(广东工业大学 信息工程学院,广东 广州 510006)

0 引言

针对室内定位技术研究,近年来中外学者提出了多种定位方法,例如基于ZigBee、超声波、红外线、RFID、蓝牙、无线局域网、超宽带(Ultra-Wideband,UWB)、可见光通信、计算机视觉、地磁等技术研究,这些定位算法普遍聚焦于二维平面的定位[1-3],对三维楼层识别的关注度相对较少[4],难以应对当前建筑环境下室内三维定位需求。精准的楼层识别可以减少空间搜索域并提高本地化准确性,在紧急情况下,准确的楼层信息对救援人员至关重要,可提供有效的紧急服务。

针对室内楼层定位问题,目前所提出的解决方案大多是基于Wi-Fi 信号衰减判别[5-6]和气压差分技术[7-8]等。文献[9]通过Wi-Fi 信号指纹匹配实现楼层识别,离线阶段将不同楼层的AP(Access Point)地址和信号范围作为指纹建立指纹库,在线阶段扫描AP 信息与指纹库匹配识别楼层,识别准确率有96%;文献[10]针对指纹库作出改进,在线阶段基于KNN(K-Nearest-Neighbor)算法进行楼层识别,识别准确率优于96%,但文献[9]-[10]的楼层识别方法在动态活动下识别准确率仅为88%。文献[11]提出在建筑物顶层与底层安设AP,将不同楼层中两个AP的信号差作为识别依据,接收来自不同楼层信号,识别准确率为95%,但Wi-Fi 等近距离通信技术存在通信距离短的劣势,若想实现室内信号全覆盖则设备成本较高。文献[12]-[13]通过上下楼活动识别记录上下楼的气压差分计算高度,但特殊情况下(如发生火灾时)室内气压不稳定,鲁棒性较差。文献[14]提出一种基于贝叶斯网络的楼层定位方法,利用贝叶斯网络融合扩展卡尔曼滤波算法[15]对惯性传感器数据和气压计数据进行融合推测行人在某一层的概率,准确率达99.3%,但该方法中的算法相当复杂,且须穿戴多种传感器,设备成本高且增加了穿戴人员的负重。

针对以上文献存在的问题,本文提出一种更易实现的、精准度高的、基于LoRa-RSSI(Received Signal Strength Indication,接收信号强度指示)的动态识别和楼层判定方法。近年来LoRa 技术在室内定位中有了许多应用[16]。LoRa-RSSI 楼层判定方法通过在各层楼梯口建立LoRa离线信号指纹库,区分不同楼层信号强度特征划分判定阈值,该阈值对应各楼层信号强度关键特征值,捕捉物体室内活动时无线信号接收强度的实时变化,最后实现上下楼活动快速精准的动态识别和楼层判定,解决了室内三维定位中垂直方向的楼层判定算法复杂度高、准确率低、易受外界环境影响等问题。

1 楼层判定方法

1.1 LoRa 信号指纹库建立

用于衡量定位性能的指标有定位规模、功耗、鲁棒性、实时性、部署成本等,常见的几种指纹技术指标比较如表1 所示。

表1 几种指纹技术指标比较

楼层判定常见场景的设备部署面积往往较大,信号衰减快,所以最佳指纹技术需同时考虑覆盖规模、鲁棒性、实时性和部署成本等。综合表1 信号指纹技术对比,LoRa 通信功耗低,定位规模大,部署成本更低,处于免频段,满足大小型室内楼层判定的正常需求,因此LoRa更适合用于大型室内信号指纹库技术。

LoRa 指纹库建立如图1 所示。信号指纹法包含离线和在线两个阶段。其中,离线阶段采用仿射传播聚类算法对采集的RSSI 指纹数据进行聚类,并将每个聚类确定为一个子数据库;在线阶段则将采集的待定位点处RSSI数据与每个子数据库的聚类中心进行匹配,选择最优匹配子数据库用于楼层识别,由此建立各楼层楼梯口的判定阈值指纹库,最后结合LoRa-RSSI 动态识别和楼层判定算法,获得楼层判定结果。

图1 LoRa 指纹库建立及楼层判定流程图

此外,在实际研究中了解到,人员室内动态活动状态下室内所测得的RSSI 值存在抖动性,需对LoRa 信号指纹数据库进行去噪处理,主要通过遍历RSSI 数据聚类后的每个子数据库,对每个数据点进行相对密度的离群点检测[17],当某数据点对应的离群系数大于给定门限时,则判定为离群点,从而达到去噪效果。

1.2 LoRa-RSSI 动态识别和楼层判定算法

图2 为本文提出的LoRa-RSSI 动态识别和楼层判定算法判定流程图。

图2 LoRa-RSSI 动态识别楼层判定算法

以图3 作为楼层判定的基本模型对图2 算法做详细的说明。在每层楼梯口处放置LoRa 信号发送节点,人员在室内水平或上下楼活动时接收来自不同楼层的RSSI。各层楼梯口建立离线信号指纹库划分判定阈值。假设人员当前在L2,分别接收L1rssi(L1的RSSI)、L2rssi(L2的RSSI)和L3rssi(L3的RSSI)。若 接收到L2rssi和L3rssi均在不断增强,可判断此时人员仍在L2,正靠近楼梯口;若接收到的L2rssi和L3rssi均在不断减弱,可判断此时仍在L2,正远离楼梯口;若接收到L2rssi不断减弱,而L3rssi不断增强,可判断正在上楼,当达到L3 判定阈值时,可判定抵达L3;若接收到L2rssi不断减弱,而L1rssi不断增强,可判断正在上楼,当达到L1 判定阈值时,可判定抵达L1,其他情况同理。

图3 楼层判定基本模型

2 实验验证分析

2.1 实验设备

实验设备发送接收节点结构如图4 所示,实物连接如图5 所示。实验发送和接收节点均采用Arduino 开发板作为MCU。无线通信模块采用SX1278-LoRa 扩频芯片,天线是433 MHz 弹簧天线,UAST/USB 串口用于代码录入。另外,接收端主板以I2C 通信方式接入一个LCD显示屏,可显示当前楼层。

图4 发送/接收节点结构图

图5 实物连接图

LoRa 信号实时监测自组网节点设计如图6 所示。首先开启LoRa 接收指令后产生入网随机时间延时,随后判断无线是否入网,入网后获取数据包发送时长和节点时间片,然后判断信号数据是否接收成功,若未接收成功判断是否达到定时数据发送时间,当数据接收完成,解析数据。

图6 RSSI 监测系统自组网节点设计

2.2 实验环境

不同楼宇对信号造成的衰减影响不同,为验证方法的精准度,实验分别选择Build-I、Build-II 进行分析,如图7 所示。其中,Build-I 建筑面积S 为30×100 m2,层高H 为3 m,楼板厚度T 为150 mm;Build-II 建筑面积S 为50×150 m2,每层高度H 为4 m,楼板厚度T 为200 mm2。在Build-I 和Build-II 1~4 层楼梯口处各放置一个LoRa信号发送端,设置波特率为9 600 b/s,接收端不断监测来自发送端的信号强度。实验者携信号接收器,分别模拟同层远离楼梯口、同层靠近楼梯口、上一层楼、下一层楼、跨多层楼等多组实验,每组各进行100 次实验,共1 000组实验。

图7 实验环境

2.3 判定阈值测定

建立判定阈值指纹库用于判定楼层,去噪后得指纹库值作为楼层判定算法中的判定阈值库。根据阈值指纹库建立的流程分别建立Build-I、Build-II 各为4 层的楼梯口的判定阈值区间,图8 为Build-I 各层楼梯口的判定阈值,图9 为Build-II 各层楼梯口的判定阈值(F1~F4:第1 层~第4 层),其中X、Y 轴表示平面坐标,Z 轴表示坐标对应信号强度。

图8 Build-I 阈值指纹库

图9 Build-II 阈值指纹库

由图8、图9 可得,不同楼宇的不同楼层指纹库阈值数据呈现信号递减的特征,Build-I 中F1~F4 楼梯口的信号阈值均值分别为45 dBm、63 dBm、78 dBm、100 dBm,Build-I 每层楼递减信号强度幅度约为18 dBm;Build-II中F1~F4的楼梯口的信号阈值均值分别为46 dBm、70 dBm、92 dBm、110 dBm,Build-II 每层楼递减信号强度幅度约为23 dBm。已知RSSI 测距公式[18],分析如下:

其中,d 为距离,单位是m;RSSI 为信号强度;A 为距离信号源1 m 时RSSI 值绝对值,最佳范围在45~49 之间;n 为环境衰减因子,最佳范围在3.25~4.5 之间。根据式(1),在垂直方向上相应高度的理论值与本文的实际测量值相符,证明了该判定阈值具有可行性。Build-I与Build-II的建筑面积(S)、层高(H)、楼板厚度(T)等建筑结构不同,是导致两组实验楼层判定准确率有所差异的主要原因。

2.4 验证分析

分析表面,人员在Build-I 正常行走状态下,上一层楼时间约需12 s,下一层楼约10 s;Build-II 上一层楼约需15 s,下一层楼约12 s。以Build-II 室内定位(H=4 m)为例,设定IDE 程序中delay=400,即每0.4 s 接收端接收一次信号强度(单位:dBm),上楼时信号强度变化趋势如图10 所示,图中上楼时,信号接收节点接收到来自同层的信号不断减弱,接收到L+1 层的信号不断增强,实际信号变化趋势符合理论变化值。下楼时信号强度变化趋势如图11 所示。结合判定阈值,最终通过实验获得的Build-I、Build-II 楼层判定准确率如表2 所示。

图10 行走上楼信号变化(Build-II)

图11 行走下楼信号变化(Build-II)

表2 行走状态实验组

由表2 可得,正常行走状态Build-I 组平均准确率达98.3%,Build-II 组平均准确率达98.1%。

另外,考虑到特殊情况下(例如发生火灾警情)出警人员速度较快,实验研究跑步状态楼层判断分析,其中Build-I 上一层楼约6 s,下一层楼约5 s;Build-II 上一层楼约需7 s,下一层楼约5 s。这里,仍以Build-II 为例,设定IDE 中的程序中delay=200,即每0.2 s 接收端接收一次信号强度,跑步上楼信号强度变化趋势如图12 所示,跑步下楼信号强度变化趋势图13 所示。结合判定阈值,最终通过实验获得的楼层判定准确率如表3 所示。

图12 跑步上楼信号变化(Build-II)

图13 跑步下楼信号变化(Build-II)

表3 跑步状态实验组

由表3 可得,跑步状态下Build-I 组平均准确率达97.4%,Build-II 组的平均准确率达97.8%。实验结果表明,基于无线信号强度值在动态活动下能实现高准确率的楼层判定,且跑步和行走状态下均能保持较高的准确率,在1 000 组实验中,平均判定准确率为97.9%。分析发现,存在少量误判的主要原因是:跨多层时建筑物障碍物增多,尤其是在室内人员快速移动情况下,信号强度稳定度下降。此外还包括设备自身偶然误差等因素造成。

将本文的楼层识别方法与文献[9]-[14]中其他方法进行对比,结果统计如表4 所示。可见,LoRa-RSSI 楼层识别方法准确率高于指纹匹配KNN 算法、指纹匹配差分手机及基站气压法、信号气压混合法,但低于贝叶斯网络法。由文献[14]知道,贝叶斯网络法算法复杂度过高,且测试人员需佩戴多种可穿戴式传感器设备,不适合普通大众场合及人员密集情况。

表4 识别方法结果对比

3 结论

本文提出一种基于LoRa 信号的楼层判定方法,该方法基于LoRa 传输距离远和穿透性强的特点,建立离线信号指纹库测得判定阈值,然后结合楼层判定动态识别算法,实现物体室内上下楼活动的动态识别和楼层判定。实验结果表明,基于LoRa-RSSI的楼层判定方法可通过实时追踪信号强度值变化实现动态识别和楼层判定,识别判定准确率高,算法复杂度低,且不受外界环境场合影响,可快速按需部署。此外,将本方法与成熟的室内二维定位技术结合,可简单实现人、物的快速室内三维定位,为室内三维定位技术提供了一种新的方法与思路。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!