卞新玉,何圣超,王树军

(南京工业大学 浦江学院,江苏南京,211200)

0 引言

我国近年来大力发展汽车产业,频繁出台政策刺激汽车消费,在有效的政策驱动下汽车产业运行显着上升,处于绿灯区。为满足用户的停车需求,商场、乐园等场所修建了大量的室内停车场。由于室内停车场正逐渐向大型化,多楼层化发展[1],并且停车场区域环境相仿,标志物较少,不易分清方向。用户时常会面临停车位难觅,寻车困难的问题。本文设计了一种基于BLE+位置指纹的停车场内导航系统。利用BLE+位置指纹的方式实现用户定位。通过建立位置指纹库的方式,记录停车场中不同位置的RSSI 数值。用户手机扫描到蓝牙基站周期性发送的蓝牙广播,使用卡尔曼滤波处理数据。再使用KNN 最近邻算法进行用户位置的推算,并将推算结果上传至服务端。服务端使用弗洛伊德算法实现出发点到停车位的最短路径规划,为用户出行提供可视化的路线导航。

1 系统设计

硬件系统设计上,在停车场现场布设监测端,检测端使用高速Linux 单板计算机为核心的控制系统,外接摄像头捕获车牌图像,调用车牌识别算法扫描识别,并将扫描识别的结果打包成数据包,通过数据传输单元上传至服务器后台。在停车场布设多个蓝牙基站,基站基于CC26x2r1 芯片为核心开发,周期性地发送稳定的蓝牙广播,进入停车场的用户移动设备接收基站广播,采集基站蓝牙信号强度RSSI 值,将搜集到的RSSI 数据实时上传到云端服务器。系统整体框架如图1 所示。

图1 系统整体框架

在软件设计上,云端获取用户APP 上发送的RSSI 数据,调用卡尔曼滤波、KNN、指纹库对比等算法进行数据处理,计算用户车辆位置,并将计算结果上传至服务端,服务端以微服务框架为主要架构。客户端向服务端实时发送数据获取请求,进行位置数据获取,客户端获取位置数据后,将用户位置信息渲染至App 界面,实时展示用户当前位置。

用户在停车时,系统将会以最近原则推送附近的停车场信息、可用车位数量、收费标准等,供用户选择,帮助用户找到合适的停车场,停放车辆。用户进入停车场后,在手机应用程序中进入相应的停车场地图[2]。在地图显示的可用车位中选择自己所需的停车位,系统会自动将相关信息保存到本地记录中,以便停车结束后找车时使用。用户寻车时,系统以用户当前位置的定位结果为起点,将存储的停车位设置为终点,采用弗洛伊德路线规划算法,计算出最短路径,为用户提供寻车的路径导航。管理员在后台可通过Web 端页面实时查看可视化数据图表,以便及时掌握停车场相关状态,方便根据情况反馈系统管理员和及时动态调整停车场的管理调度。系统管理员可查看问题反馈,对所有停车场的整体数据情况进行导出操作,也可删除或者添加普通管理员以及停车场信息。

详细功能模块划分如图2 所示。

图2 系统功能模块划分

2 RSSI 定位技术

室内环境错综复杂,钢筋混凝土墙壁对信号有着巨大的干扰。本系统通过移动端获取蓝牙基站的RSSI 值,再匹配位置指纹库,最后确定目标的位置,减小环境因素对定位的影响。RSSI 值识别过程如图3所示。

图3 RSSI 值识别过程

系统在布设时首先确定蓝牙基站在停车场中的位置,部署蓝牙基站时要求蓝牙信号尽可能覆盖整个停车场。蓝牙发出的广播信号和RSSI 信号会随着距离而衰减,所以需要对RSSI 信号要做离线采集处理,本文对停车场定位系统进行了部署实测,蓝牙基站经测试调整后的布局图如图4 所示。

图4 蓝牙基站布局图

图5 卡尔曼滤波前后的对比

停车场的定位指纹库建立过程如下:

(1)所有的网关节点向其所覆盖的网络周期性发送广播信息,包含自身节点 ID 及基站的坐标位置。网络内的信标节点收到广播信息后,对同一网关节点的 RSSI 取均值,并记录与各网关节点的距离。

(2)所有的网关节点对信标节点回复的RSSI 数值进行滤波处理。

(3)各信标节点建立自己的优选信标节点列表。

(4)根据信标节点建立虚拟的信标节点列表并对各虚拟信标节点进行编号。

可以对经过离线处理的信标节点建立定位指纹库,再进行在线使用,通过与指纹库匹配就可以得到最合理的目标位置。

3 算法设计

■3.1 卡尔曼滤波算法设计

在现实复杂环境中,蓝牙信号会受到其他信号源的干扰,其强度会动态变化,呈现不规则信号强度衰减,无法按照标准的无线电信号传播模型进行计算。卡尔曼滤波算法在线性问题以及信号过滤方面卓有成效,因此,本系统选择使用卡尔曼滤波算法对接收到的蓝牙信号强度值RSSI 进行处理。

(1)多个蓝牙基站获取到同一移动设备的RSSI 数值,通过得到当前数据的高斯噪声方差;

(3)计算出估计值:

RSSI 经过过滤后,波形较原始波形有了明显的改善。得到的数据在滤除可能的误差因素影响后,更加精确。

其他过滤方法,如均值滤波,连续采集一段时间,获取短时间内的RSSI 均值。这些方法虽然可以在一定程度上减小干扰导致的误差,但是在出现较大的波动时,依然将较大波动计算在内,会影响指纹采集的精确度。卡尔曼滤波算法以预测的形式,结合预测值和测量值,可以得到当前状态(k)的最优化估算值,拟合出数值更加平滑,可以有效避免大的波动值对测量数据的影响。

■3.2 室内定位算法设计

本文系统考虑到蓝牙信号在常规环境下衰减带来的巨大误差,往往产生10dbm 的偏移。因此系统在录入位置指纹信息时,采用分割区域块的方式进行。将停车场分割成多个长宽相等的正方形区域。测量单个区域块时,通过移动蓝牙设备采集当前区域块蓝牙信号最强的三个蓝牙基站信号数据,实时上传蓝牙RSSI 数据信息。通过卡尔曼滤波处理后绘制图像,当图像稳定在0dbm~5dbm 左右时,则将当前三组数据作为当前区域块的RSSI 特征值并进行数据持久化处理。后续则是将移动蓝牙设备采集处理后的数据与特征值进行匹配,从而找到特征值所对应的区块实现室内定位。

信号的RSSI 或者接收功率取决于接收器的位置。RSSI的获取很简单,因为它是大多数无线通信设备正常运行中所必需的。很多通信系统需要RSSI 信息用来感知链路的质量,实现切换,适应传输速率等功能。RSSI 不受信号带宽的影响,因此RSSI 是一个很受欢迎的信号特征,并广泛应用于定位中。在本文系统中我们通过RSSI 为基础元素构建指纹库,通过移动蓝牙设备扫描获取固定位置上的蓝牙基站的蓝牙RSSI 数值以每组50 个为单位共获取10 组,通过卡尔曼滤波数据过滤后,用平均分获得平均特征,传递给服务器。并录入相关位置坐标服务器构建蓝牙位置指纹库。

效果如表1 所示。

表1 位置坐标信息

用户在进入停车场后,手机端会收集各个蓝牙信标的RSSI 数据值,然后将实时采集到的数据值与指纹库中进行匹配算法的比较,选取指纹库的最佳参考点。本文选取的匹配算法为KNN 最近邻算法[1],选取K 个相似度最高的位置指纹所对应的参考点的坐标。其中K 值的取值十分重要,K值较小,整体模型就会变复杂,易发生过拟合现象,K 值较大,更多的点影响着实验结果,增大了误差,为此采取了交叉验证来选定K 的最佳值,最终得出K=3 时系统误差最小,示意图如图6 所示。

图6 指纹对比示意图

蓝牙基站实时采集到的数据为[R1,R2,R3],Ri 为当前不同蓝牙基站监测到的同一蓝牙移动设备的RSSI 值。蓝牙基站将采集到的R 值与数据库中的参考点数据(S1、S2、S3)进行对比。计算当前采集值与参考值之间的欧氏距离D 为:

通过计算,可以得到多个欧式距离D,选取三个距离最小的位置指纹所对应的参考点,然后获取该参考点在位置指纹库记录的位置坐标。

■3.3 路径规划

本文系统的路径规划主要采用的是弗洛伊德最短路径规划算法,首先采用路径点法对路径进行建模,将物理的数据路径抽象为能进行路径规划计算的数据结构模型。本文系统将停车场平面图中的关键节点标上序号,经过数字转化得到图7。

图7 停车场关键节点数字化

接下来进行路径规划的第二个阶段,路径搜索。任意一点i 到另一点j 的路径只有两条,一种是i 点直接到达j 点,另一种则是i 点先到其他点再到j 点。定义二维数组G[i][j],设G[i][j]为点u 到点v 的最短距离。那幺只需要设中间点K,对全部顶点进行遍历,判断任意一点i 到任意点j 的距离G[i][j]是否会大于经过点k 的距离G[i][k]+G[k][j],如果大于,那幺就将G[i][j]重新赋值为G[i][k]+G[k][j]。最后遍历G[i][j]获取最短路线集。根据最优路径中的路径结果信息提供给用户端,在地图上显示,进而提供给用户导航指示。

4 结论

本文设计了基于低功耗蓝牙BLE+位置指纹实现定位的室内停车导航系统。采用建立指纹库并辅以卡尔曼滤波算法、KNN 最近邻算法,获取用户位置。通过弗洛伊德路线规划算法进行最短路径规划。移动端APP 采用flutter 跨平台开发框架,可以有效兼容当前手机,具有很好的便利性。用户在停车过程中,可以根据停车场信息,选择合适的停车位置。在完成停车后,系统进行车位记录。寻车过程中主要实现了室内定位与最短路径导航。综上所述,系统能够很好地解决室内停车场目标车辆的定位、导航问题,打通了室外与室内地图信息的隔阂[5],具有良好的应用前景。