近年来,随着无线技术和移动通信的飞速发展,以及Bluetooth,Wifi,GPRS等无线技术的日趋成熟,同时,各种无线定位技术的出现,极大的方便了生活,推进了社会的发展。蓝牙技术(Bluetooth)作为一种短距离无线通讯技术,其实质内容是为固定设备或移动设备之间的通信环境建立通用的无线电空中接口(Radio AirInterface),将通信技术与计算机技术进一步结合起来,使各种3C设备在没有电线或电缆相互连接的情况下,能在近距离范围内实现相互通信或操作,实现数据共享。利用蓝牙设备近距离范围内相互通信的特性,结合TOA算法,并全面考虑实际应用中信号衰减、障碍物阻隔等情况,就可以实现较为精准的蓝牙定位系统,再进一步结合Web、数据库等后台支持,可以开发一套图书馆蓝牙自动导航系统,以实现移动终端书籍自助查询与导航功能。
1 系统结构及功能
图书馆书籍定位系统由三部分组成:安装在用户手机上的定位软件(客户端),后台服务器以及分布在图书馆里的蓝牙信号发射点,如图1所示。
客户端实现了用户在手持设备无线查询书籍以及用户的定位导航功能。用户首次登录软件后,软件通过无线网络自动从后台数据库下载地形和蓝牙点分布的XML文件,并根据文件描述绘制出图书馆地形图。之后用户可以在书籍查询界面以书名,作者,ISBN方式模糊查询所需要的书籍。用户选择书籍后,软件将所选书籍的位置标注在地图上,同时开启蓝牙,检测周边蓝牙信号点信号强度并进行定位。定位成功后软件自动计算用户从当前位置到书籍位置的最佳路径,并标注在地图上。同时,在用户找书的过程中,系统会实时测量用户所在位置,实时更新最佳路径,引导用户找到所需书籍。
后台服务器储存书籍详细信息、图书馆地形图以及各个蓝牙信号发射点分布情况。并及时响应用户的不同请求。
蓝牙信号发射点分布在整个图书馆内,信号范围覆盖整个图书馆,每个蓝牙信号发射点有自己惟一的ID标识号,当用户定位时通过标识号即可从配置文件中知道此蓝牙信号发射点的位置。
通过三个子系统的分工合作,系统实现了查询定位导航一体化的高效图书查询功能。
2 定位系统软件设计
2.1 定位系统客户端软件设计
软件采用Windows Mobile 6.0作为开发平台,多普达838手机作为软件测试平台,使用C#编程实现。目标手机内置蓝牙协议栈,直接调用Winsock API搜索周围蓝牙设备并得到信号强度信息。软件主要分为四部分:书籍搜索部分;地图绘制引擎部分;蓝牙定位部分;路径计算部分。
书籍搜索 用户在搜索界面里(图2)选择搜索条件(书名,ISBN,作者)输入关键字进行搜索,数据包利用HTTP协议通过无线网络以POST请求方式发送到服务器,服务器解析出关键字(Query Word)后查询数据库得到书籍详细信息,并序列化(Serialization)为标准XML,文档通过HTTP协议返回到用户手机。软件反序列化(Deserialization)这些信息并呈现给用户。
地图绘制引擎 在获得图书馆地形描述的XML数据后,绘制引擎解析文档中的地形轮廓、书架位置以及蓝牙点位置数据,当用户选择地图界面时,绘制引擎生成地图,并将人物当前位置、计算好的最佳路径绘制到地图上,最后显示在PietureBox中(图3)。
蓝牙定位 定位系统每隔2 min搜索周围蓝牙信号发射点,并把ID号有效的10个蓝牙信号发射点存人队列中。每10 s从队列中选取6个点并且三三组合测试信号强度并利用TOA算法估算出用户所在位置,最后从得到的20个点中计算中心位置作为当前用户位置。
路径计算 系统得到用户位置后,路径计算系统通过启发式搜索算法计算出用户到书籍的最短路径,并储存在内存中。[!--empirenews.page--]
2.2 定位系统服务器端软件设计
服务器端使用Asp.net开发,具备以下3项主要功能:在线书籍查询;在线帮助服务;客户端配置更新。
当接收到客户端书籍查询请求时,在线书籍查询根据请求类型查询数据库系统并以XML文档的形式返回结果。书籍信息包括书名,作者,所在的书架,这样通过书架位置就可以大致确定书的确切位置。所有数据利用无线网络传输,极大地方便了用户。
图书馆地形信息以及蓝牙点分布图的数据储存在数据库中。地形信息包括图书馆的形状以及各个书架的位置、长度,以数据库表的形式存放。蓝牙信号发射点分布图包括每个蓝牙信号发射点位置,惟一标识符(ID)。手机客户端可以通过客户端自动更新模块获得这些信息。
3 关键技术的设计与研究
3.1 蓝牙定位原理
3.1.1 传统测量算法
(1)通过传播时间测量方法
它通过在已知传播速度的情况下,无线电波传播的距离与它传播的时间成正比。但上述方法存在两个问题,影响了方法的使用性:
时钟精度 因为蓝牙信号的传播速度很快,又考虑到各种延迟,所以为了减小测量误差必须使用高精度的时钟,时间单位采用ns,这对硬件的要求过高,不实用。
时钟同步 参与同一个定位过程的参考点之间必须保证时钟的同步,这样才能保证测量结果的正确性和精度。
(2)信号衰减测量方法
在理想的传播环境下,无线信号的衰减与1/r2成正比(其中r为传播距离)。但实际上,无线信号在空间传播时能量的衰减是多种因素共同作用的结果,而不单单与传播距离有关。在一个地形地物较为复杂的环境中,无线信号传播时的衰减会受到反射、折射、多径效应等多种因素的影响,所以这种利用能量衰减测量距离的方法不如传播时间测量方法精度高。
3.1.2 改进的TOA算法
从可行性和精度两个方面综合考虑之后,我们决定采用依靠经验的定位方法:它同样是基于无线电波能量来定位的,不同的是它不是根据能量衰减与距离平方的正比关系来计算距离,而是通过一个数据库来记录一定数量的参考位置的信号强度,然后把待测物体检测到的信号强度与之相比而得到待测物体的信号强度。如果参考位置足够多的话,这种方法具有很好的精度,并且不受实际地理位置的影响,因为参考位置正是从实际的测量中来的。这种方法的一个缺陷是它要求每次实施时要测量大量的参考位置上的信号强度,并且随着时间推移,地理环境必定会有所改变,这时又要对所有的参考位置重新进行测量。
如图4所示,系统从检测到的有效蓝牙点(通过ID判断)选取三个点利用图3所示方法定位。我们检测到的信号强度值在263~230,随着距离增大而减小,但不是线性变化。通过数据分析发现0~3 m,3~6 m,6~9 m区间内可以近似成三个线性区间。于是分别测量并统计了一些蓝牙点0,3,6,9 m的信号强度值,用来辅助计算。蓝牙信号强度数据拟合结果如图5所示。
[!--empirenews.page--]
我们把用户便携设备(手机)接收到的信号强度值与它到该蓝牙信号发射点的距离拟合为三个线性的函数,信号强度与距离的函数关系为:
距离在[0,3]m时:Bi=257.323 1*di-1.028 8即di=(1.028 8+Bi)/257.323 1;
距离在[3,6]m时:Bj=255.192 6*dj-0.5045即dj=(0.504 5+Bj)/255.192 6;
距离在[6,9]m时:Bk=270.625 6*dk-3.083 3即dk=(3.083 3+Bk)/270.625 6;
此时,设用户手机终端(M)位置为(x,y),蓝牙信号发射点BSi,BSj,BSk的坐标分别为(xi,yi),(xj,yj),(xk,yk),用户从M到BSi,BSj,BSk的距离为:di,dj,dk,则下式成立:
每次定位用户手机终端从搜索到的有效蓝牙信号发射点中每10 s从队列中选取最多6个点并且三三组合测试信号强度。之后分别利用上述算法估算出用户所在位置,最后从得到的20个点中计算中心位置作为当前用户位置。如果搜索到的有效蓝牙信号发射点小于3个则休眠半分钟后继续寻找,直到找到为止。如果测试得到的信号强度值不在230~270之间,系统则会重新测试其信号强度,如果仍然没有得到正确结果系统会暂时抛弃这个蓝牙信号发射点,搜索其他有效蓝牙信号发射点进行定位。
3.2 寻路原理
寻路时使用启发式广度优先搜索算法。在盲目广度搜索算法中,人所在的每一个可行位置都可以有4个方向可以行走(前、后、左、右),向任意一个方向行走后如果没有遇到障碍,则将新的状态装在一个队列里,然后每次再从队列里取出一个新的状态来进行扩展,直到走到要找的书那里(终点)。人走的每一个新节点都要记录下来上一个节点的编号,最后经过回溯找到从起点到终点的路径。用一个自定义的结构体Queue来记录节点。
在找出路径后,将其记录在类的一个私有列表成员List<Path>TLP中,其中Path为自定义的结构体,记录路径上的横坐标和纵坐标。
4 结 语
通过蓝牙技术和定位导航技术相给合,实现了图书馆书籍定位导航系统。本文论述了书籍定位导航系统的设计,研究了改进的TOA定位算法在蓝牙定位中的应用。研制的系统极大地缩短了在图书馆查找图书的时间,方便了人们的生活,并且本系统在室内定位的实际应用中仍不断的改进,还可以做出各种改进以适应更多的具体应用,如在博物馆、展会等地方,实践证明本文给出的图书馆书籍定位导航系统具有广阔的应用前景。