APP下载

nRF51822与传感器融合的定位算法

2018-07-19姚瑞玲

计算机工程与设计 2018年7期
关键词:信号强度测距蓝牙

王 超, 姚瑞玲

(1.重庆商务职业学院 出版传媒系,重庆 401331;2.四川工商职业技术学院 轻工工程系,四川 都江堰 611830)

0 引 言

从本质上讲室内定位系统[1-3]的方法分为超宽带、ZigBee、wifi、蓝牙等,基于蓝牙的室内定位由于其功耗低,成本低的特性成为定位方法中的主流[4,5]。基于蓝牙的室内定位方法主要分为测距与非测距两大类,其中基于非测距的定位方法无需依靠特定硬件来获取节点距离信息,本文在综合考虑部署成本、系统稳定以及定位精度的基础上最终选取nRF51822低功耗蓝牙芯片作为定位终端[6],基于nRF51822的定位算法中普遍存在着终端姿态,人体遮挡等因素造成的定位点跳变问题,文献[7]中提出了基于蓝牙低功耗终端的定位算法,其算法替代了近场通信(NFC)技术,在接收机与发射机之间几厘米处的距离可以精确识别物体,但随着距离增加,nRF51822定位终端RSSI扰动曲线变得无序,导致最终定位精度明显下降。文献[8]提出了一种基于iBeacon的室内定位系统,其依靠nRF51822芯片广播的邻近度来解算物体位置,对于距离导致信号波动造成的定位误差问题,采取了改变AP布局、增加AP节点的方式,在一定程度上解决了定位点跳变问题,但算法每次需校准iBeacon单元程序来计算nRF51822芯片的广播范围,极大地增大了算法复杂度,提升了系统造价。该算法针对nRF51822定位中RSSI值易受物体遮挡、阴影衰落扰动造成定位点跳变的问题,引入LSM303DLHC传感器来补偿其造成的误差,最后通过欧式距离加权KNN算法得到定位坐标点[9],首先仿真实验结果表明了该算法的有效性,并与文献[7]、文献[8]中提及的算法进行了对比,最终结果表明,该算法抗RSSI扰动能力强,定位精度较高,开发出的系统具有较高的拓展空间与推广价值。

1 数学模型

1.1 蓝牙系统模型

一套完整的蓝牙系统是由广播端Broadcaster与阅读器Reader组成(如图1所示),本系统中采用nRF51822作为定位终端,其主要功能是向外发送广播。采用cc2541作为定位AP,当定位终端进入到Reader覆盖区域时,可阅读到Broadcaster向外发出的广播信息,其中包含定位终端MAC地址、信号强度RSSI等信息,蓝牙AP通过485集线器将接收到的数据传送至服务器。

图1 蓝牙系统模型

1.2 RSSI测距模型

RSSI测距模型描述了信号强度与传播距离的关系,其满足Shadowing传播模型[10]

(1)

在本算法的应用中采用简化后的Shadowing模型

(2)

式(1),式(2)中d0是参考距离,通常取值为1m,d为实际距离,p(d)和p(d0)分别是距离为d和d0时路径损耗值,是遣蔽因子,路径损耗值为初始发射信号与接收信号强度之差

(3)

式中:p(0)为初始发射信号强度,Rssi(d)和Rssi(d0)分别是距离为d和d0处的接收信号强度值。本算法中取d0=1m,A=-Rssi(d0), 从而得到实际应用的RSSI测距公式

Rssi(d)=-(10nlgd+A)

(4)

式中:A为距离信号发射源1m处接收到的信号强度平均值的模,n为信号传输常数,与信号传播环境相关。

1.3 方向角测距模型

定位终端重力加速度在载体坐标系下的分量即为加速度计的三轴数值,当定位终端水平放置时载体坐标系的初始姿态与参考坐标系重合,此时加速度计三轴分量(数据经标准归一化处理)为

G[0,0,0]=[0 0 1]T

(5)

当定位终端处于不同姿态时,其三轴分量为

G[γ,θ,ψ]=[GxGyGz]T

(6)

利用方向余弦矩阵

可得

G(γ,θ,ψ)=T(γ,θ,ψ)G(0,0,0)

(7)

俯仰角和翻滚角分别为

(8)

地磁场矢量H可分解为水平分量Hh,垂直分量Hv,Hh总是指向地磁的北极,Hh在两轴上的分量分别为Hx和Hy,由此可得水平放置时的方向角

(9)

2 系统设计与算法实现

本文提出的基于nRF51822与LSM303DLHC传感器融合的KNN定位算法分为系统设计与算法实现两个模块,系统设计中详细地描述了定位终端nRF51822的广播、通信协议设计、cc2541蓝牙AP电路设计和数据通信机制,算法实现模块则阐述了LSM303DLHC传感器融合算法、指纹库生成算法、KNN欧氏距离加权算法。

2.1 系统设计

(1)nRF51822定位终端设计

定位终端采用nRF51822,在低功耗模式下灵敏度可达-92.5 dB RX,可使用+4 dBm的输出功率,低于10 mA的峰值电流,使得一粒纽扣电池即可工作数月,定位终端设计中,加载协议栈SDK10,修改其私有广播数据(总长13 Byte)信息对接蓝牙AP,其字段值包括帧同步头、数据起始标志位、三轴加速度信息、方向角信息、电量信息、校验和等字段,nRF51822芯片如图2所示。

图2 nRF51822芯片

(2)cc2541蓝牙AP设计

蓝牙电子标签具有成本低、功耗低、易部署安装,体积小、轻便等特点。系统中使用的蓝牙标签为CC2541,工作频率2.4 GHz~2.5 GHz ISM微波段,通信协议BLE4.0,发射功率-23 dBm~+4 dBm,识别距离0~50 m(2 dBi全向天线),将蓝牙AP与6口集线器相连,外接12 V电源,可勘测定位终端的私有广播信息以及扫描回调信息,其中包含帧同步头、定位终端MAC地址、RSSI、三轴加速度、方向角、电量、校验和等信息,并将这些信息进行打包,打上AP自身的MAC地址透传至以太网网关即可。设计电路中I2C接口增加了STK3310环境光传感器、巴伦电路之后增加了电阻衰减网络,以方便进行射频信号的衰减,配合定位算法。

2.2 算法实现

本章节详细介绍了算法实现,其中包含LSM303DLHC传感器方向角的计算,指纹库生成算法以及欧式距离加权KNN算法,其中欧式距离KNN算法具体流程如图3所示。

图3 欧氏距离加权KNN算法流程

(1)LSM303DLHC传感器融合算法

在实际的定位过程中,定位终端不可能一直保持水平状态,则必须计算其俯仰角以及翻滚角,设当前定位终端的俯仰角为θ,翻滚角为γ,方向角为ψ,磁强传感器三轴分量数值M(γ,θ,ψ)=[MxMyMz]T, 水平放置时磁强传感器三轴数值M(0,0,ψ)=[MhxMhyMhz]T, 根据定位终端姿态与水平放置时的关系可得

(10)

式中:Rγ、Rθ——翻滚角取γ、俯仰角取θ时的旋转转化矩阵

(11)

将式Rλ、Rθ带入式(11)中可得

(12)

将其带入式(10)可得出

(13)

(2)KNN欧氏距离加权算法

为了消除信号传播,传感器遮挡、信号跳变等因素带来的影响,在信号强度处理阶段将RSS信号强度划分为若干簇,对筛选出的指纹库中的坐标集合做欧氏距离加权聚类,得到最终坐标。假设定位终端上传的实时向量M=(Rs1,Rs2,Rs3,…,Rsn), 其中Rsi为第i个AP勘测到的定位终端强度RSSI值,设实时向量M中最强的RSSI值为MaxRm,其对应第m个蓝牙AP,次强RSSI为SMaxRn,其对应第n个蓝牙AP,此时将实时向量与指纹库F=(Rs1,Rs2,Rs3…Rsn) 进行比对,取出指纹库中满足式(14)的指纹集合∪F,为指纹库F中满足式(14)的集合条目,指纹库匹配仿真程序设计如图4所示

(14)

计算实时向量M与∪F的欧氏距离,欧氏距离越小则

实时向量与指纹的匹配度越高,欧式距离计算公式为

(15)

那么该坐标的权值系数

(16)

为保证结果的精确性,算法中将权值做归一化处理,即n个待选坐标的权值系数集合满足式(17),欧式距离权值计算程序设计如图5所示

w1+w2+…wn=1

(17)

图4 指纹库匹配仿真程序设计

图5 欧式距离权值仿真程序设计

为了保证欧式距离的统一性,将实时向量M的维数与指纹库中匹配的指纹进行了维数匹配操作(指纹库F的维数与蓝牙AP的个数相同),若第k个AP未勘测到定位终端的RSSI(此处排除AP损坏的情况),则将其RSSI值赋值为-100 dBm,指纹库匹配仿真程序设计如图6所示。

离线勘测阶段实现:

(1)接口回调Url

图6 指纹库匹配仿真程序设计

数据库中将标签号BtId与对应地图的Url进行映射绑定,采集终端将勘测到的蓝牙信号上传至服务器,服务器通过接口回调与蓝牙信号对应的地图Url。

(2)Json数据通信

点击地图上任一点出现界面如图7所示:在地图上点击采集终端相应的位置可自动获取其坐标,根据融合至nRF51822上的LSM303DLHC传感器可实时获取手环当前的偏北角,将偏北角分为4个象限,分别对应东西南北,点击保存坐标按钮,即可将信息打包成Json数据上传至数据库中。

(3)生成定位指纹库

该算法的指纹库生成为参考点与信号强度绑定的过程,离线阶段指纹库的生成直接决定着后续定位精度,其基本步骤如下:

1)配置以太网网关的IP与Port,即可勘测到采集终端(nRF51822)的广播数据信息,APP链接数据库将接收到的蓝牙标签号+对应的信号强度+MAC地址+APP自动获取坐标打包上传推送到数据库。

2)当数据量达到指定阈值时停止信号采集操作,待指纹采集完成后,对数据进行滤波,将指纹按照坐标、方向进行聚类,形成最终指纹库。

以下为该算法中指纹库样表的生成过程:

(1)采集指纹人员佩戴采集终端(采集终端与定位终端广播标志位不同),打开采集APP,后台数据库中将AP基站的MAC地址与地图Url进行了绑定,会自动展示到APP界面中,如图7所示。

图7 指纹采集页面

(2)采集人员根据地图标注有序点击地图相应的位置,会弹出与实际位置对应的坐标点(如图7所示),采集终端会将获取LSM303DLHC实时方向,采集人员需将其参数输入到APP中,点击开始采集,则APP将不同AP接收到的nRF51822信息(包含MAC、RSSI、Orientation)上传至数据库中,当数据量到达200时会自动停止采集,并以toast的形式提示采集人员,采集人员更改终端朝向,重复该操作,当E、W、S、N这4个方向采集完成时,即完成该点的指纹采集。

下面选取了(0.8,0.8),(1.6,0.8),(2.4,1.6),(3.2,0.8),(4.0,4.0)5个坐标点的指纹库生成,将步骤(2)中采集到的信号强度值的过滤,聚类平均得到表1中的指纹库样表,Rmn为第n个AP基站的Mac地址缩写,Asn为n个AP基站收到的采集终端RSSI强度值。

表1 指纹库样表

最后将实时向量与对应的指纹库坐标集合加权聚类形成最终坐标点

(18)

式中:n代表与该实时向量匹配的指纹库坐标个数,算法匹配中,将实时采集的指纹库数据信息输入到仿真系统中,不同AP勘测到的定位终端RSSI数据信息作为实时定位向量,经过欧氏距离加权KNN算法可得出最终坐标,完整算法仿真设计如图8所示。

图8 系统整体架构设计

3 实验结果及分析

为了验证文中算法的有效性,首先在MatlabR2014a中进行仿真实验,并与文献[6]、文献[7]中提及的算法进行了对比实验,将系统在某栋建筑中进行了实地部署,具体运行环境及实验结果分析如下:

定位终端配置信息:SDK10.0.0;编译软件:Keil5.12。

硬件平台:nRF51822最小系统;蓝牙AP编译软件为IAR8.10.3;CPU:Intel®Xeon®E5-2600 v3/v4 系列处理器;8G DDR4;1TB,2.5寸SAS/SATA/SSD硬盘;通信服务器系统:centOs6.5;地图服务器系统:Ubuntu 14.0.2。

表2中给出了RSSI测距与本算法解算出的位置点,由于篇幅关系,表中仅列出了5个具有代表性的位置坐标,图9中直观地显示了RSSI测距、利用文中算法估算出10个不同位置点与实际位置的误差,通过误差线的距离(虚线表示RSSI测距估算出的位置与实际位置的误差距离,实线则表示本文算法解算出的位置与实际位置的误差距离)可直观看出,文中算法解算出的位置精度明显优于RSSI测距估算出的位置精度,通过大量的实验可得出本算法的平均误差为0.593 m,明显优于同等条件下RSSI测距估算出的位置,通过与文献[6]、文献[7]的对比发现,基于ZigBee的定位平均误差为2.952 m,其不仅误差较大,而且现阶段大厂商还未集成ZigBee的接收器,造成了其应用的局限性,文献[7]中基于wifi的是内定位,通过指纹采集,匹配算法。

表2 误差分析

图9 实验误差对比

将文中算法移植到平台上后,在某栋建筑中进行了实地部署与搭建,结果显示,通过文中定位算法所获得的位置信息具有较好的稳定性和实时性,平均定位误差小于0.5 m。其运行Demo如图10所示。

图10 定位Demo展示界面2

4 结束语

本文提出了一种基于nRF51822与LSM303DLHC传感器融合的KNN算法,设计阶段使用低功耗nRF51822芯片作为定位终端,融合了集加速度计和磁力计于一体的LSM303DLHC传感器,采用cc2541芯片作为AP基站,勘测定位终端广播数据中的RSSI、MAC等信息,并通过rs-485集线器上传至服务器;定位阶段根据航向角模型计算定位终端相对于坐标系的方向角,并以此来补偿RSSI因多径、遮挡带来的误差;最后通过欧氏距离加权KNN算法得到最终坐标。实验结果表明,该算法可以有效地提升定位精度、稳定性和实时性,开发出的系统具有较高的推广价值。

猜你喜欢

信号强度测距蓝牙
光学相干断层成像不同扫描信号强度对视盘RNFL厚度分析的影响
蓝牙音箱的直线之美
电子自旋共振波谱法检测60Co-γ射线辐照中药材
类星体的精准测距
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
室内定位信号强度—距离关系模型构建与分析
浅谈超声波测距
紧急:蓝牙指尖陀螺自燃!安全隐患频出
WiFi信号强度空间分辨率的研究分析