基于LoRa的长距离室内定位的研究
2018-05-03唐周益丹姜宁康
唐周益丹 姜宁康
(华东师范大学计算机科学与软件工程学院 上海 200062)
0 引 言
近年来,出行导航、智能服务等行业的需求日益增加,室内位置的价值再次体现。已有的室外定位技术如全球定位系统(GPS)等由于受到建筑物的遮挡和多径效应的影响[1],定位精度急剧降低,无法满足室内位置服务需要。现有的室内定位主要通过Wi-Fi、Bluetooth、ZigBee、蓝牙、红外线以及可见光等实现。这些技术在传输距离、定位精度和抗干扰能力方面等方面都有各自的优缺点。
本文使用LoRa(一种低功耗广域网(LPWAN)中的长距离、低功耗的无线通信技术)来实现室内定位。其技术特点是远距离、低功耗,信噪比(SNR)较强,并且拥有高于常用的无线通信技术的接收灵敏度。Semtech公司在2013年8月提出LoRa,同时发布了基于1 GHz以下的LoRa芯片——SX1276/77/78/79。本文中使用SX1276搭建LoRa环境,实现长距离室内定位。
1 基于RSSI的室内定位原理和方法
在无线传感器网络中,定位节点接收到参考节点的接收信号强度指示RSSI可以用于计算位置。本文使用位置指纹库以及距离损耗模型实现LoRa环境下的室内定位。
1.1 位置指纹定位
在一个特定的区域内放置若干个信号发射装置(信号源),由于无线电波受周围环境的影响,RSSI与位置形成一一对应的关系,即“指纹”。位置指纹定位就是通过位置与RSSI进行匹配,从已有的指纹库中找出与待测位置RSSI最接近的位置指纹,从而得出待测点的位置。由于信号在传播过程中受到反射、衍射等情况的影响[2],在采集RSSI之后,需要对波动较大的跳变数据进行处理。本文采集一个参考点处连续采集30 s内的RSSI值,取中间20 s内稳定的一段数据,再进行滤波处理,去除产生跳变的RSSI值。假设一组RSSI值为RSSI(rssi1,rssi2,…,rssim,…,rssin),计算每两个相邻RSSI的差值Δm=rssim-rssim-1,并求这些差值的平均值Δ。然后将每个Δm与Δ比较,大于Δ的部分为产生跳变的RSSI值,需要将这些值剔除。最后将剩下的RSSI取平均值,作为该参考点的位置指纹存入指纹数据库。
本文使用朴素贝叶斯分类作为匹配算法,通过统计分析,得到各信号节点的RSSI值的分布情况,从而提高定位的精度和实时性。将待测点接收到的来自各信号源的RSSI值的概率分布作为位置指纹的特征。找出与待测点距离最近的参考点,计算RSSI位置指纹样例S在距离待测点最近的4个参考点范围内每个位置处的后验概率[3]。假设一个RSSI位置指纹样例R,包含有来自m个信号源的信号强度值,R=(R1,R2,…,Rm)。将位置集合L=(L1,L2,…,Li)作为训练样本,计算每个类别在训练样本中的出现频率P(Li),以及每个特征属性划分对每个类别的条件概率估计,即待分类的RSSI出现在各不同位置的先验概率P(S/Li)。由于各个位置接收到的RSSI值是相互独立的,于是有公式:
P(R|Li)=P(R1|L1)×P(R2|L2)×…×P(Rm|Li)
(1)
且:
(2)
式中:P(R)对于所有类别为常数,并且位置Li出现的概率P(Li)也可以视为均等。因此,当P(R|Li)取最大值时,可以得到最大后验概率,并用来估计待测点的位置,即:
L=maxP(Li|R)
(3)
用高斯概率分布来近似计算P(R|Li),则有:
(4)
式中:u和σ分别表示信号强度的平均值和标准偏差。
1.2 信号强度定位——经典距离损耗模型
该定位方法是在信号源发射功率已知的情况下,将待测点收到的RSSI代入距离转化模型,即距离损耗模型进行计算,得出待测点相对信号源的位置。
先假设无线信号强度与距离符合一定的无线信号传播损耗模型,即RSSI是距离的函数。根据信号强度得到距离,然后根据多边测量法来计算得到移动节点的位置。本文的实验2中,两个信号源与所有待测点均位于同一直线上,因此可以直接通过距离得出待测点与信号源的相对为位置。
由于室内结构会引起入射信号的反射、绕射、折射和散射,因此信号在到达接收端时会有延时,强度也会发生变化,接收到的信号强度一般考虑服从对数正态分布[4]。常用的对数距离路径损耗模型遵从公式:
(5)
式中:
P——待测点接收到的信号源的RSSI;
P0——距离为d0时接收到的RSSI;
d——参考点与信号源的距离;
n——路径损耗系数即环境因子;
ξ——与传播距离无关的随机变量,本文将其作为与环境相关的变量进行修正。
2 LoRa环境搭建
上文介绍的指纹库和路径损耗模型已经在基于Wi-Fi或ZigBee的室内定位中都得到了运用。本文将搭建LoRa无线通信环境,运用上述方法进行室内位置计算。
控制单片机使用意法半导体公司8位单片机STM8系列中的STM8L101F3p6,包含有超低功耗MCU[5],与LoRa的低功耗特性相匹配。使用E19-868MS100射频模块与STM8L单片机连接,该模块包含LoRa射频芯片SX1276以及滤波电路。
SX1276提供从7.8 kHz到500 kHz的通信带宽,以及范围在6~12的扩频因子,能够覆盖现在所有可用的频段[6]。本文选择500 kHz带宽,根据LoRa SX1276用户手册设置实验中其他各参数如表1所示。
表1 实验参数设置
通信的建立至少需要一个发送端(Tx)和一个接收端(Rx),如图1所示。在采集RSSI之前,需要先对连接状况进行确认,以保证采集到有效的RSSI。
图1 LoRa环境
单片机与SX1276的通信接口是SPI, 同时读取DIO引脚获得芯片的状态信息。 采集到的RSSI值最终会通过TLL转USB返回到PC端。
SX1276芯片的工作状态在接收和发送数据的过程中不断变换,具体流程如图2所示。
图2 发送/接收数据
LoRa模式下的RSSI有两种形式。一种是currentRSSI,即当前的RSSI;一种是Packet Strength,即所接收到的数据包的RSSI。在计算时,需要根据频率和信噪比(SNR)的不同,对读取到的RSSI值进行修正。如式(6)、式(7)所示:
(6)
PacketStrength=
(7)
式中:HF(High Frequency port)表示高频端口,频率高于860MHz;LF(Low Frequency port) 表示使用端口,频率低于860 MHz。
3 实验与结果分析
由于RSSI受室内环境影响,因此本文的实验分别在三种不同的场景中进行:短距离室内区域、宽阔室内区域以及狭长的室内区域。将上述LoRa通信设备放置于室内的不同位置,采集各个位置上的RSSI。同时,本文还在实验场景中搭建Wi-Fi环境,使用与LoRa相同的定位方法进行定位,将结果与LoRa实验结果进行比较。对于狭长的室内环境和短距离室内环境,使用路径损耗模型计算待测点位置,对于宽阔的室内环境,使用位置指纹库进行定位。
由于通信距离与功率有关,在相同的接受功率即接收灵敏度条件下,距离越远,需要的发射功率越大[7],而LoRa的接收灵敏度比Wi-Fi好。因此,实验中需要使LoRa和Wi-Fi的发射功率保持一致,为最大20 dBm。本文使用E103-W01 Wi-Fi模块以及E103-W01-BF串口 WiFi 模块的测试工具组成Wi-Fi信号发射器作为Wi-Fi环境,使用无线网络测试软件WirelessMon读取Wi-Fi的RSSI值。
3.1 实验场景一:短距离室内区域
该实验的场景设置在华东师范大学的理科楼B214室,该区域为7.2 m×13.2 m的长方形,如图3所示。矩形的三个顶点处为三个信号源,三个人形标记处为待测点,位置坐标如图4所示。每个点都会分别收集30 s内来自三个信号源的RSSI。
图3 理科楼B214平面图
图4 理科楼B214坐标位置图说
3.1.1 采集单个待测点信号强度
对于个别参考点的数据出现跳变的情况,需要将突变的数值剔除,然后再求平均值,以保障RSSI值的准确。整理后得到各采样点的LoRa和Wi-Fi的RSSI如表2、表3所示。
表2 待测点LoRa RSSI
表3 待测点Wi-Fi RSSI
3.1.2 计算环境因子n与ξ
由于三个信号源处于不同位置,为了更准确地使用路径损耗模型定位,需要分别计算个信号源的环境因子。实验中在各信号源周围选取若干点,已知各点位置d和d0,采集RSSI值作为路径损耗模型的P、P0。式(5)中的计算环境因子n、ξ如表5、表6所示。
表5 LoRa环境因子
表6 Wi-Fi环境因子
3.1.3 测试与定位结果
根据路径损耗模型式(5),计算各待测点与各信号源距离的测量值。已知三个信号源的位置坐标,(x1,y1),(x2,y2),(x3,y3),以及待测点到这三个点的距离d1,d2,d3,列方程组计算待测点的坐标(x,y)[8]。根据这些已知量列方程组求解待测点坐标。
(8)
如图5所示,已知信号源的位置,以及待测点到各信号源的距离,计算待测点的坐标。为了方便计算,本文假定各信号源和待测点均位于同一平面上,即只计算x,y方向上的平面距离。
图5 计算位置坐标
计算待测点a、b、c的坐标如表7所示。
表7 Wi-Fi环境因子
与实际坐标位置比较如图6、图7所示。LoRa定位偏差范围在0~5 m。Wi-Fi定位偏差范围在0~3 m。
图6 LoRa定位偏差
图7 Wi-Fi定位偏差
从实验结果来看,对于短距离室内区域,使用Wi-Fi或LoRa进行定位都存在一定的偏差,其中现有的常用定位技术Wi-Fi的偏差较小,但LoRa与其相差不大。因此LoRa作为室内定位的技术是可行的,在后续的研究中,可以通过改进定位算法提高来精度,以减少LoRa的定位偏差。
3.2 实验场景二:矩形宽阔室内区域
该实验的场景设置在上海虹桥火车站的F2候车厅,该区域为409.7 m×162.0 m的长方形。
3.2.1 采集指纹库
实验中共设置4个信号源,分布在矩形的4个顶点处,如图8所示,五角星符号表示信号源。
图8 虹桥火车站F2平面图
图8的中间部分表示设置参考点的区域,各参考点分布如图9所示。
图9 参考点位置分布
AP1-AP4分别为4个信号源1、2、3、4,中间区域每50 m设置一个参考点,采集来自4个信号源的RSSI 值。
使用Wi-Fi进行位置指纹采集时,在各个参考点位置均未检测到Wi-Fi信号。参考点1的位置为(31,24),与信号源1的距离为49.98 m,实验测量了从信号源1到参考点1之间Wi-Fi的RSSI值变化。如图10所示,Wi-Fi信号在48 m处消失,RSSI的最小值约为-90 dBm。
图10 Wi-Fi RSSI
本文的位置指纹由各个参考点的信号强度和参考点的坐标组成。假设某个参考点的坐标为(x,y),参考点测得的来自4个信号源的信号强度分别为RSSI1、RSSI2、RSSI3、RSSI4,则该点的位置指纹表示为(RSSI1,RSSI2, RSSI3,RSSI4,x,y)。实验时,在每个参考点测量来自各信号源的信号强度, 发送端向接收端发送数据包,接收端的SX1276每隔0.5 s测量一次信号强度,采集时间为30 s。将60组信号强度取平均值,并保留小数点后4位作为参考点处的信号强度。在上述的实验场景中,有24个参考点,对应于指纹数据库就是24组位置指纹。使用LoRa采集到的位置指纹如表8所示。
表8 LoRa位置指纹
续表8
3.2.2 位置指纹库测试与定位结果
选取邻近参考点7、10、15、19、23的位置进行定位测试。表9中记录了各点测得的RSSI值,使用贝叶斯算法计算P(Li/S),得到与指纹数据库中相匹配的位置,所有待测点均匹配正确。本次实验定位场景面积较大,边长较长,位置指纹网格比较稀疏,测试点均选择在参考点位置,意在检测LoRa定位在长距离的宽阔室内场景中的可行性。此外,从实验结果可以看出,与Wi-Fi相比,LoRa在通信距离和抗干扰能力方面有较明显的优势。
表9 定位结果
3.3 实验场景三:矩形狭长室内区域
该实验的场景设置在上海世博源,平面图如图11所示。主体建筑南北总长1 045 m,东西宽80~130 m。本次实验选择在长800 m,最大宽度25 m的室内购物街进行。图中轴线的两端各设置一个信号源, 轴线上由南向北每隔50 m设置一个RSSI采样点,共15个,如图12所示。每个点都会分别收集30 s内来自两个信号源的RSSI。
图12 采样点分布
3.3.1 采集单个待测点信号强度
对于个别参考点的数据出现跳变的情况,需要将突变的数值剔除,然后再求平均值,以保障RSSI值的准确。整理后得到各采样点的LoRa RSSI如表10所示。
表10 采样点LoRa RSSI
使用Wi-Fi进行位置指纹采集时,在各个采样点位置均未检测到Wi-Fi信号。采样点1的位置为(50,0),与信号源1的距离为50 m,实验测量了从信号源1到采样点1之间Wi-Fi的RSSI值的变化。如图13所示,由于该实验场景中的行人密集,有商铺、玻璃门等障碍,因此Wi-Fi信号在37 m处消失,RSSI的最小值约为-90 dBm。
图13 Wi-Fi RSSI
3.3.2 计算环境因子n与ξ
由于RSSI值受环境影响,本文对路径损耗模型中的环境因子进行分段计算,即不同的区段使用不同的环境因子计算待测点距离。根据周围环境的变化,将室内区域的矩形的长边分为6段。 每段选取若干已知位置d和d0的点,采集RSSI值作为路径损耗模型的P和P0。根据式(5),计算环境因子n、ξ,如表11所示。
表11 环境因子
3.3.3 测试与定位结果
本实验中有两个信号源,对于轴线上的一个待测点,分别计算待测点到距离两个信号源的距离,再求两个位置间距离的平均值,从而确定待测点的坐标。通过RSSI值计算出坐标,结果如表12所示。D1和D2分别表示与信号源1、信号源2之间的距离。
表12 LoRa定位结果
本文分别将两处信号源定位的位置与实际位置进行比较,如图14、图15所示。结合信号源1和信号源2的定位结果,求平均值,得到的最终定位结果,如图16所示,偏差较单个信号源明显减小。实验中的12个测试点定位偏差如图17所示,范围在0~10 m。
图14 信号源1定位结果
图15 信号源2定位结果
图16 定位结果
图17 定位偏差
从实验结果来看,对于狭长的室内区域,使用LoRa进行定位的优势是比较明显的。Wi-Fi的通信距离在无遮挡的环境下最长为300 m左右,普通室内环境为100 m左右[9],但接收灵敏度不高,抗干扰能力较差。因此在本实验中,Wi-Fi的实际通信距离仅为37 m,而LoRa的通信距离达到800 m。此外,实验场景中有行人,门窗以及Wi-Fi和手机信号的干扰,能一定程度上说明LoRa在室内定位中的抗干扰能力。
4 结 语
LoRa无线通信技术在定位方面的应用克服了
Wi-Fi等其他无线通信技术在传输距离和抗干扰能力方面的缺点,为长距离室内定位提供了比较可行的解决方案。本文的实验意在测试LoRa在长距离定位方面的可行性,实验样本数量和定位算法可在今后的工作中进一步增加和优化。在本文的实验中,通过LoRa定位的结果还存在一定的偏差,下一步可以通过以下几个方面来提高定位精度:1) 增加信号源数量以及参考点的数量,以获得更准确的指纹数据库;2) 单个参考点采集更多的RSSI数据,便于去除突变数据,使RSSI值更精确;3) 选取更多参考点来修正距离损耗模型中的环境相关参数。
[1] 王杨,赵红东.室内定位技术综述及发展前景展望[J].测控技术,2016,35(7):3-8.
[2] 刘小康,郭杭.基于Zigbee室内定位系统的指纹库优化算法[J].计算机工程,2014,40(2):193-198.
[3] Chen L,Li B,Kai Z,et al.An Improved Algorithm to Generate a Wi-Fi Fingerprint Database for Indoor Positioning[J].Sensors,2013,13(8):11085-11096.
[4] 王静.基于信号强度室内定位技术的研究与实现[D].北京:北京工业大学,2009.
[5] STMicroelectronics,STM8L101Datasheet[OL].[2009-09].http://www.st.com.
[6] Semtech Corporation.SX1276/77/78/79用户手册[EB/OL].[2016-06].http://www.semtech.com.
[7] 黄玉兰.物联网射频识别(RFID)核心技术详解[M].人民邮电出版社,2016:122-123.
[8] 景博,孙勇.智能网络传感器与无线传感器网络[M].国防工业出版社,2014:230-233.
[9] 李晓阳.WiFi技术及其应用与发展[J].信息技术,2012(2):196-198.