APP下载

基于ZigBee 的室内指纹定位算法应用

2023-10-24时子皓高常青张瑞年王国锋

物联网技术 2023年10期
关键词:信号强度室内环境测距

时子皓,高常青,张瑞年,王国锋

(1.济南大学,山东 济南 250022;2.山东交通学院,山东 济南 250357)

0 引 言

随着无线技术网络的发展,基于位置的服务在人们生活中起着重要作用[1]。目前,全球定位系统(GPS)是室外环境应用最广泛的系统之一,该系统的高精度以及高可靠性使其应用在多个领域中。由于室内环境复杂,墙壁等障碍物使卫星信号在传播过程中会产生衰减,导致对室内环境的定位精度降低[2]。所以也就产生了多种室内定位技术,主要包括红外线定位、蓝牙、WiFi、超声波定位以及ZigBee 等[3]。其中,ZigBee 具有低功耗、低成本、可移动性高等特点,逐渐成为室内定位的研究热点[4]。定位算法分为测距以及非测距两种。测距算法包括到达时间算法、到达时间差算法、到达角度算法接收信号强度(RSSI)算法;非测距算法包括质心法、极大似然估计法和DV-Hop 算法。本系统采用ZigBee 技术中的CC2530 芯片作为硬件模块,建立RSSI 值指纹库,利用无线网络进行节点的测量定位。

1 整体方案设计

本系统设计方案主要分为两个部分:

(1)离线数据采集RSSI 值并建立数据指纹库;

(2)在线定位,通过未知节点的RSSI 值与指纹库中的数据进行对比计算,得出坐标位置。

指纹定位原理如图1 所示。

图1 指纹定位原理

本系统在建立数据指纹库后,通过在线采集未知节点接收到的参考节点的RSSI 值,将接收数据传输到协调器,再经协调器发送到PC 主机端,将采集到的数据与指纹库中的数据进行对比,利用差距最小的数据进行计算,得到未知节点的坐标。

2 设计原理

2.1 硬件要求

CC2530 是无线传感器网络中较为常用的芯片,能够以低成本建立较强的网络节点。最大输出功率为4.6 dBm,具有较强的兼容能力,使用外接元件即可很好地满足网络通信的相关要求[5]。该芯片对应的射频收发部分可对数据信息进行可靠安全的传输,且具有较强的数据接收或发送功能。

2.2 离线采集阶段

本文系统采用ZigBee 技术,利用上位机开发环境IAR Embedded Workbench采集节点模块的RSSI值,并建立指纹数据库,为后续未知节点的匹配定位提供参考[6]。指纹库建立流程如图2 所示。

离线阶段是指在定位区域内指定n个参考节点,将该区域分成i个指纹点,在指纹点上记录未知节点接收的参考节点的RSSI 值,并生成指纹点对应的RSSI 值,即{RSSIi1,RSSIi2, ..., RSSIin}。集合中各元素表示未知节点所在i点测得的各个参考节点的RSSI 值,i=1, 2, ...,n。由所有参考节点以及对应的指纹点组成位置指纹库,未知节点接收到的RSSI值可建立一个与指纹点关联的数据库[7]。

2.3 在线匹配阶段

2.3.1 RSSI 测距算法

采用ZigBee 技术进行定位,最常见的方式就是利用RSSI 值定位。该测距原理是根据接收到的无线通信信号强度,利用测距公式计算出距离。当设备发射功率已知时,将接收到的信号强度由数学模型表示出传播损耗与距离之间的换算关系,公式如下:

式中:Pr(d)表示发射节点与接收节点距离为d时接收到的信号强度,单位为dBm;Pt(d0)是一个经验参数,表示两节点距离为d0时的信号强度值,一般可取1 m 时的信号强度大小;n为路径损耗指数,大小会因环境的不同而改变;X表示随机噪声,实验中可忽略不计。信号强度值会随着距离的增大而减小,由于环境等影响因素,信号强度在接收过程中会发生波动或者突变,并且距离越远时引起的误差就越大[8],所以在接收信号强度时,为了减小定位误差,可进行滤波处理。

2.3.2 定位匹配算法

可利用邻近法找到最接近的指纹点坐标以及相应的RSSI值,然后根据最接近的指纹点确定未知节点的区域,并根据未知节点与区域内指纹点的距离,采用多边定位算法计算出未知节点的坐标。

匹配最邻近的RSSI 值也就是利用欧氏距离得出最近的指纹,欧氏距离公式为:

2.3.3 定位坐标计算

在经过邻近法匹配到距离最近的指纹点后,以该区域内三个指纹节点为圆心、三个节点到未知节点距离为半径画圆,通过三边定位算法计算出未知节点的位置坐标。假设未知节点的坐标为(x0,y0),区域内指纹节点坐标分别为(x1,y1)、(x2,y2)、(x3,y3)。第n个指纹节点到未知节点的距离为dn(n=3),且dn的值已知。根据已知条件可得未知节点与指纹节点位置关系如方程组(3)所示,利用该方程组可计算出未知节点的坐标(x0,y0)。

3 测试与分析

该实验在3 m×3 m 的室内环境进行,在定位区域内选择4 个点为参考节点,用来放置定位模块,定位模块的编号依次为A、B、C、D,其坐标分别为(0,30)、(30,0)、(30,30)、(0,0)。场地及节点布置如图3 所示。在定位区域采集数据时首先规划指纹点,各指纹点之间间隔设置为0.6 m,在各个指纹点上依次采集4 个参考节点的RSSI 值,记录在数据库中保存,并且在采集过程中可进行滤波处理,减弱或者消除噪声。指纹点采集图如图4 所示,其中“三角点”为参考节点,“圆点”为指纹点,“五角星”为随机未知节点。

图4 指纹点采集图

随机未知节点的实际坐标为(23,19),测量的该点信号强度值数组为{-55,-42,-57,-52}。与该点实际距离相近的4 个指纹点坐标分别为(18,18)、(18,24)、(24,18)、(24,24)。对应的RSSI 值数组为{-52,-51,-50,-54}、{-56,-50,-52,-60}、{-68,-45,-49,-58}、{-54,-41,-47,-60}。

利用公式(2)对4 组数据进行计算,得出D1=11.96,D2=12.41,D3=16.67,D4=12.88;通过计算,与该点数据最相近的3 个指纹点为(18,18)、(18,24)、(24,24)。再利用RSSI 值计算出未知节点与3 个指纹点之间的距离,得出d1=1.86 dm,d2=1.91 dm,d3=1.99 dm。采用这3 个指纹点与未知节点之间的距离进行三边定位计算,将得出的距离代入式(3)可得:得出理论坐标为(20.97,20.99)。

4 结 语

本文设计一种基于ZigBee 的室内指纹定位算法。采用CC2530 模块作为无线通信设备,结合ZigBee 技术,采集RSSI 值进行室内指纹定位。该系统方案可以在室内环境下进行无线通信,实现室内定位的功能。建立数据指纹库,减小定位误差,并在采集未知节点接收信号强度后,计算出与该点数据差距最小的3 组数据,再利用三边测量的方法计算出未知节点坐标。

猜你喜欢

信号强度室内环境测距
光学相干断层成像不同扫描信号强度对视盘RNFL厚度分析的影响
类星体的精准测距
室内环境检测及控制系统设计
多肉植物垂直绿化在室内环境中的应用探究
室内定位信号强度—距离关系模型构建与分析
植物在航站楼室内环境中的应用
浅谈超声波测距
WiFi信号强度空间分辨率的研究分析
室内环境下移动机器人三维视觉SLAM
基于改进接收信号强度指示的四面体模型井下定位研究