基于iOS平台的地下停车场导航系统研究
2019-03-05,,,,
,, ,,
(1.苏州科技大学 江苏省建筑智慧节能重点实验室,江苏 苏州 215009;2.苏州市移动网络技术与应用重点实验室,江苏 苏州 215009; 3.苏州科技大学 电子与信息工程学院,江苏 苏州 215009)
0 引言
随着微波通信和互联网技术的不断普及,人们对定位服务的要求越来越高,已经不仅仅满足于室外全球定位系统了。如今业已完善的全球定位系统已经在作战侦查[1]、轨道运输[2]、农业灌溉[3]和工程项目[4]等领域获得了广泛的应用,但是GPS也有其技术劣势,GPS在环境较为狭小复杂的地域,定位精度并不稳定的[5],无法完全实现室内环境的精确定位。
人们对室内定位的呼声越来越高,但是基于GPS定位的技术又无法满足这以需求,对此,学术各界都提出了一些取代方案,总结下来有这样几种:使用Wi-Fi、超宽带、ZigBee和iBeacon来实现室内定位。在这些方案中,Wi-Fi定位可以说是应用最为广泛的了,很多现代建筑都已经开始使用Wi-Fi基站实现初步的室内定位系统,并且,大多数的移动平台都支持使用Wi-Fi技术,这就带来了将移动App作为客户端的解决方案。尽管Wi-Fi定位具有很多技术优势,但是其存在的问题也是致命的。使用Wi-Fi的消耗较高,并且其信号本身容易受到外界无线干扰,且Wi-Fi定位存在较大的定位盲区[6]。超宽带定位虽然能克服以上大部分的缺点,但其有线连接的方式已经注定其无法被应用于移动App[7];ZigBee可以说是最好的替代技术,但是其成本过高,想要推广使用很有难度。
对此,设计决定使用低功耗蓝牙技术iBeacon来设计方便快捷的室内导航系统。iBeacon是苹果公司推出的一款先进的定位技术,其信号质量高,且基站小巧便捷又十分低耗环保[8],加之主流的移动平台都已支持iBeacon的开发,使得iBeacon开发已经成为改善室内定位系统的焦点[9-10]。此外,iBeacon还可被用于区分远近的概念,iPhone可以直接通过接收的信号自动得出与目标物体的远近程度,可分为3个档次,即远(far)、中(medium)、近(near),从而使得iBeacon在目前基于位置的服务中的表现要远远好于GPS+WiFi的组合,这也使得iBeancon+蓝牙的组合在室内导航的方面有了较大的发展前景。
1 算法设计
系统使用三边定位算法,从所有基站信号强度rssi中,使用:
R=exp((-54.0 -rssi)/10.0)
(1)
计算手机到对应发射基站的距离R,选取信号强度最大的3处或3处以上的基站到手机的距离Ri,列出如下方程组:
(2)
由式(1)可得到当前用户所在位置坐标D(x,y)。
但是,室内环境有诸多变数,很难出现完美的三圆交点。针对这种情况,设计使用最小二乘法来解决这个问题:
(3)
之后对公式(3)进行化简,可得到:
AX=b
(4)
X即需要求的未知点坐标。各参数计算如下:
(5)
(6)
可以通过方程(7)求得定位坐标X:
X=(ATA)-1ATb
(7)
2 系统设计
2.1 系统框架
图1为系统的流程图,如图所示,室内导航系统主要分为如下三部分:1)基于iBeacon基站的定位硬件系统;2)基于iOS平台的室内及室外定位导航服务系统;3)基于前后端交互技术支持的地图管理系统及用户系统(编辑用户资料及管理用户的车辆)。
图1 系统流程图
2.1.1 系统操作
用户点击打开App后,首先需完善个人信息,具体而言,需要填写用户名、密码、选择头像和手机号等,点击获取验证码后提交便可完成注册。使用注册填写的手机号和密码进行登录,进入用户界面。如图2所示,在主界面中,用户可选择添加管理车辆,填写车牌及相关信息,一个用户可以用多个车牌,点击表格可以查看和删除当前车辆。同时,点击编辑按钮就可以修改自己的用户信息了。进入停车场选择界面,用户可以选择直接预订指定停车场的车位,也可以点击导航按钮直接进入地图界面。图3为室外导航界面以及到达目的地后室内导航的信息预览界面。若用户已选择车位便会自动加载室外导航;若没有,可以在地图上选择自己想去的停车位,点击相应大头针进行导航。在用户达到目标停车场后,系统将根据GPS定位自动加载该停车场的地图。
图2 用户及停车场管理界面
图3 室外及是室内导航信息预览界面
2.1.2 地图选择
图4所示为室内定位的流程图,地图的选取是整个流程中重要的一环。鉴于系统提供定位导航服务的停车场较多,并且将不断补足,系统将所有停车场的地图存储在云端,以减小手机客户端的存储压力,使得App看起来不臃肿。手机使用GPS获取用户位置并选取200米之内距离用户最近的停车场,使用URL向服务器发送请求加载该停车场的地图,用户只要打开室内导航界面时就能看到该地图了。
图4 定位流程图
2.1.3 室内定位
应用需要获得用户的蓝牙功能授权,才能调用手机的蓝牙接收周围基站发出的广播信号,通过应用数据层处理之后得到用户的实际坐标,并将坐标在地图上显示出来。当用户在前台界面选择了目的地并点击“开始导航”后,地图上会显示出规划的路径,随后会有语音提示信息,引导用户前往相应的停车场位,找到自己的车辆。
2.1.4 导航分析
室内定位是精确室内导航的基础,用户在停车场管理系统中选择目的地后,应用根据目的地和用户当前位置的关系,分析可通行区域并设计OPEN表(记录带扩展的点),然后运用A*算法:
F(n) =g(n) +h(n)
(8)
进行最短路径规划,并通过JavaScript将这条路径绘制在地图中,之后会有语音提示辅助导航。
2.2 硬件系统设计
基站使用以CC2541芯片为核心的蓝牙模块DX-BT05-A,该模块支持蓝牙4.0,该模块相比于其他拥有32位核心ARMCPU的蓝牙模块,具有价格低廉、简单易用的优势。模块使用UART接口,可以直接通过AT指令设置蓝牙模块广播信号的参数。
图5给出了手机如何通过解析该基站广播的数据包,提取出信号强度RSSI并交付数据处理层处理获得基站与手机的距离的过程。然后系统通过一系列公式获取当前用户的定位坐标,随后应用将坐标交付给程序的表现层并将坐标解析、绘制在地图中。
图5 硬件系统流程图
2.3 软件系统设计
从运行平台上分,软件系统主要包括两个平台:前端使用iOS开发技术以及网页形式的后台管理系统,后端使用Web服务器结合数据库的数据管理方式,图6为功能模块软件前后端的职能划分。前端主要包括以下几个功能点,地图选择、基站数据解析与定位以及室内导航。Web服务器提供地图的调度功能,做到地图的灵活切换,避免本地文件过多影响性能。
图6 软件框图
3 测试分析
3.1 测试环境
图7所示为算法的测试环境,其中真实环境为教学楼的地底停车场,停车场用围障和立柱隔成一个个车位。在图7的矢量图中主要存在橘红色的车位以及黄色的道路,黑色的边线为围障。
图7 场景展示图
3.2 测试平台
在导航系统中,基站大多数依赖电池供电。表1所示为系统使用的蓝牙模块基站参数,基站可以使用5号电池供电,该电池理论上最大容量可以达到2700 mAH,若使用3节,且不计模块的信号发射功率,则电池最大容量理论上可以持续供电12150小时,考虑到实际情况,电池一般可以使用半年左右,符合应用需求。
表1 基站参物有所数表
通过抓取的数据包,可以分析其中应该含有哪些信息。
服务器使用CentOS系统,在系统中安装Tomcat作为Web服务器的容器,并使用 JavaEE完成所有服务搭建工作,由Tomcat处理网络请求。在收到前端对地图资源的请求后,相应服务会先在数据库中搜索相应资源,然后将资源转换为JSON返回给前端,如果没有查找到资源,则返回查找失败。
3.3 测试结果
3.3.1 基站性能测试
之前算法分析中提到距离与蓝牙基站信号强度的关系,但是真实环境下仍然会有变数,需要采集数据绘制真实关系的图表。图8是在室内测得的RSSI与距离的关系,通过该曲线,可以大致获得A、n的估计值。由图可知当手机与蓝牙模块的距离在3米以内时,RSSI的值随着距离的变化幅度是比较明显的,同时手机的定位也会更加精确。
图8 RSSI与距离关系
通过测量获得的关系式与实测数据,可以分析静态定位误差,表2给出了实际距离与蓝牙实测数据、测试距离、定位误差之间的关系。结合图表可知,在3 m之内系统测量的距离是比较准确的,而在3 m之后系统误差将超过2 m在距离基站4 m之内,误差率不超出25%,在超过5 m之后误差就达到66%,超过50%误差率将极大影响定位精度的。出现如此大的误差,原因在于信号具有波动性,在同一位置上可以测量到信号强度在一个范围内波动,会带给测量数据的不可靠性,但是将测量数据结合图8的曲线变化变化规律可得,系统在3 m以内的测量精度较高,并且在2 m左右的精度为最高。
表2 误差分析表
考虑到定位时间对测算距离的影响,为了增加定位准确度,测试采用在同一固定位置多次测量获取数学平均值的方法重新测量了数据。图9为在距离基站1.5 m处测试20 s获得一段定位结果,并带有误差率随着时间变化的曲线。由图可知,在最初的4 s内定位误差超过了35%,但随着时间推移,信号强度趋于稳定,距离测量的误差率也保持在15%左右。由测试结果可知,如果要提高测量精度,可以在定位算法中加入一定延迟,以规避在最初的4 s内定位的失准问题。
图9 单一基站定位折线图
此外,人体的阻挡也会带来信号强度的不稳定性。表3表明测量的信号强度与未遮挡时信号强度的对比。可以发现,信号强度在同一距离上比视距传播多衰减到11 dB,并且平均下来将多衰减9 dB。如果用被遮挡时测得的数据进行定位,图10表明人体的遮挡会降低信号的强度,并且会影响曲线的走向,扰乱2~3 m之间的信号强度变化,造成测算距离有很大损失,可能影响定位精度。并且这个影响伴随整个距离波段,造成定位点的闪动问题。
表3 人体遮挡定位结果
在实际应用中,由于定位算法会使用多个基站的信号,而基站分布范围较为广泛,所以基站被人体完全遮挡的概率极小,通过软件方法构建滤波器,可尽量减少人体遮挡影响,可保证大多数基站数据的正常获取,因此人体阻碍导致的定位误差可以忽略。
图10 在有无遮挡下信号的变化曲线
3.3.2 系统性能测试
系统需要验证是否已经实现了室内定位导航的功能,对此需要对应用进行实地应用测试。系统需要确保使用定位和优化算法计算得出的定位接近实际位置,这样才能保证之后的导航运算不会发生较大的偏差。图11展示了刚开始5 s时的定位误差。可以看出定位精度误差在系统启动之时产生了峰值,但随着更多基站的信号强度被接收和加入运算,定位误差迅速减小并趋于平稳。
图11 5秒之内的定位误差
在室内导航中,用户将根据系统的导航结果移动,这时就要保证用户移动状态的定位精度。图12展示了120 s持续定位的定位效果,刚开始误差确实随着移动而出现波动,但随着移动状态的固定,误差也随着平稳下来。数据显示平均误差为1.65 m,由于信号强度始终在发生变化,且其本身具有跳跃的不稳定性,所以定位精度也会在一段时间中受其影响而产生巨大的波动。
图12 120秒内的导航误差
4 结论
通过对基站和系统的综合测试,发现距离基站在3 m之,定位精度相对较高,误差曲线较为平稳,在系统综合测试中,系统能在开启定位后3 s内逐步定位稳定,最终经过持续120 s的定位实验,系统最大定位误差不超过3 m,平均误差为1.66 m,导航时有84.7%的概率误差处于1.5 m左右,15.3%的概率误差处于5 m之下。