一种基于安卓的蓝牙室内定位系统设计与实现

2016-09-30 15:18:11 sophie

摘要:随着智能手机的普及和移动互联网的发展,人们对室内定位的需求也日益增加。本文完成了一套室内定位系统的设计和实现。该系统采用蓝牙信标作为定位依据,基于指纹定位技术,选择目前最为流行的安卓系统作为实现平台,设计了一个面向办公室应用的室内定位软件,实现了地图显示、路径搜索、定位导航、人员考勤、物品搜索等功能。
随着智能手机的普及和移动互联网的发展,人们对室内定位的需求也日益增加。本文给出了一种基于安卓的蓝牙室内定位技术,设计了一个面向办公室应用的室内定位软件,实现了地图显示、路径搜索、定位导航、人员考勤、物品搜索等功能。


1 系统设计
1.1 系统架构
本系统采用C/S架构。系统客户端选择安卓平台进行开发。系统服务器端采用Tomcat搭配SSH框架开发。系统结构如图1所示。
当用户通过客户端软件发出定位请求时,手机通过蓝牙模块扫描周围信标,然后检查本地数据库是否有当前地图的指纹特征数据,如果有就用这些数据与采集到的信号进行匹配。否则通过HTTP请求把采集到的信号上传到服务器,由服务器处理,并将处理结果以JSON格式返回。定位结果将由手机以图形化形式展现给用户。
1.2 功能设计
(1)定位功能:当用户发起定位请求后,会跳转到地图页面,完成信标信号采集,获得设备方向,并将数据缓存起来。定位例程通过调用定位工具类中的定位算法进行定位并把结果返回给地图页面用以更新当前位置。
(2)物品搜索:用户在物品页面输入关键字,手机客户端发送HTTP请求到服务器查询满足关键字的物品。搜索结束后,手机客户端将搜索结果呈现出来,用户选择要查找的物品,客户端跳至地图页面并规划出到物品所在位置的最优路径。

一种基于安卓的蓝牙室内定位系统设计与实现

图1 系统架构图

表1 固定位置测试结果

一种基于安卓的蓝牙室内定位系统设计与实现

(3)考勤功能:选择主页面考勤功能,在弹出的对话框中选择签到或离开。手机客户端会采集用户当前的位置信息,并将之与用户ID一起发送给服务器。服务器接收请求后,会比对位置信息、用户ID和时间,然后综合评判考勤情况。
1.3 算法设计
定位开始后,定位例程首先从前一组采样值中找出最强的k个信号。这里规定用于分类的q组信号少于最终用来估算概率分布的k组信号,所以从k个信号中取出最强的q个信号子集。然后,例程用最强的q个信号得出当前位置的类型,并用方向和类型作为条件查询指纹数据库,找到用于匹配的特征数据。接着就用最强的k个信号与这些特征数据进行匹配,找出特征数据中概率最大的节点作为结果。在得到结果后,为了解决小尺度误差的影响,会将结果与上次定位位置比较,检查两者距离是否大于预设的阀值,如果不是,那么这次结果就是最终定位的结果。如果是,则查看补偿量是否用完(本系统中补偿量取原信号值的正负%4),如果是,那么判定这次定位失败,否则对最强信号进行补偿,并重新计算最匹配的位置。
2 系统测试
测试人员站在固定点1处,正常握持定位终端,依次朝向东南西
北四个方向测试。测试结果中实际定位点主要分布在表1中定位点1到7这7个位置,这7个点与实际位置的距离依次是0米,1.2米,1.4米,2.3米,2.2米,2.5米和2.3米。
以上结果可以看出,在2.5米精度内,四个方向的准确度均能达到92%以上。可见,目标软件在固定点能够达到预期的效果。
3 结论及展望
本文完成了一套基于安卓的室内定位系统的设计。阐述了系统的组织结构、各个功能模块的具体内容、核心定位算法。
本文实现的室内定位软件——办公室助手中,并未考虑时间因素对定位效果的影响。这也是在今后设计实现更完善的室内定位软件时需要完成的一个内容。