定位引擎产品由上至下分为四层,编码实现层、场景应用层、通用算法层、数据采集层,以及测试平台
编码实现层
主要工作:根据协定的接口,对外提供精确、稳定、可靠的、能够集成到Android SDK、IOS SDK、JS SDK的针对不同场景的算法库或者单独运行在服务器上的定位引擎程序;针对不同的系统平台,选择适当的定位算法组合,并在算法上提出一些针对性的处理,同时选择合适的语言框架实现定位算法。
主要的平台:Android、IOS、 H5+JS+微信公众号、Linux等
针对不同平台的编码要求:
针对H5+JS+微信公众号平台
1. JS不适合做大量的浮点型运算
2. 微信公众平台从Beacon获取的信息中缺少measuredPower(一米处RSSI值),而且对惯导的支持较差,只能选择基于RSS测距单一的算法或者指纹算法
输出成果:适合不同平台的针对不同场景的编程代码(JS、JAVA等语言可能需要对应平台人员根据伪代码完成开发)
场景应用层
主要工作:针对特定的场景,制定相应的测量策略,分析测量的数据,选择并提供合适的数据采集设备的部署方式、配置参数以及合适的定位算法、算法参数;在通用算法的基础上,针对具体的应用情形进行算法上的裁剪、定制,提供专用于某些场景的专用化算法。
主要的应用场景:室内停车场、大型室内商场、医院、养老院、会展中心、火车站、机场等
针对不同场景的定制要求:
针对停车场环境
1. 测量室内停车场环境下RSSI的波动及衰减情况,选择合适的信号滤波算法及其他步骤的算法,同时拟合出RSSI-Distance模型
2. Beacon的部署方式可以采用单条线型,仅在车道中间部署一排,部署间隔为多少,发射功率为多少,发包频率为多少,部署条件不允许的第二套方案
3. 单条线型部署,主要使用两点和单点定位,无论用户的实际位置在哪里,都将其定位坐标映射到最近的车道中央线上
输出成果:针对特定应用场景的算法说明文档 以及 C++测试版代码
通用算法层
主要工作: 研究现有的室内定位算法,总结出核心知识点,抽象出通用算法框架;针对不同的数据采集设备,向数据采样层提出所需的在理想环境下的测量数据,并分析这些数据,然后在框架的基础上对算法进行细化,最终以流程图和文字说明的方式提供完整、详细的算法实现方法。
主流的定位算法:基于RSS测距、基于RSS指纹库、基于地磁场、基于MEMS传感器的惯导、基于TOA的超宽带脉冲定位算法等
针对不同算法的研究要求:
基于RSS测距的定位算法
1. 核心知识点
RSS在室内传播时的多径效应:直接导致RSS的不稳定性和时变性 。(测量,分析)
无线电传播损耗模型:对数衰减模型、多项式衰减模型等
2. 定位算法框架
(1)信号滤波
常用的滤波方法:高斯滤波/均值滤波/边界滤波/Kalman滤波/其它
(2)公式转化成距离
常用的公式:标准的信道模型/自己拟合/其它
(3)几何定位算法得出坐标点
常用的算法:单点/两点/质心/最小二乘/三边/多点/其它/按比例计算
(4)定位点的滤波
常用的滤波:Kalman/其它
3. 根据测量数据得到理想环境下完整详细的算法
分析信号的衰减波动情况,选择一种合适的方法或多种方法的组合,以流程图和文档的形式提供完整详细的算法步骤。
输出成果:针对不同算法的研究文档、算法实现步骤说明文档及测量数据分析文档 以及 不同算法的C++测试版代码
数据采集层
主要工作:根据算法层的需求,完成设备数据的采集,并对采集的数据进行整理、分析,最终为算法层提供清晰、准确、符合实际规律的图文数据。
主流的定位数据采集设备:iBeacon、WIFI-AP、UWB、ZigBee、BLE、超声波、RFID...
针对不同设备的测量要求:
iBeacon的测量方法
在无线电波干扰较小的空旷环境下,针对单个iBeacon, 测量某种测试机在不同功率下、不同的发射频率下、不同距离下、不同采样次数下,获取到的RSSI数据。然后分析测量到的数据,提供不同情形下,在某点处的RSSI的波动直方图、RSSI随距离衰减的曲线图、数据采样的丢包率、不同功率下的最大信号覆盖范围。
输出成果:针对不同数据采集设备的测量文档
测试平台
算法层和场景层,在选择后合适的算法后,都需要编码实现,进行测试调整算法。测试方案有两个,
方案一:同时提供支持四端的算法包(Android、IOS、JS+H5、Linux)
方案二:对四端的测试工具提供统一的接口,通过UDP或者HTTP在云端服务器实现定位
方案一优点无网络延时,最切近程序实际运行环境,缺点则是替换包时十分繁琐;方案二尽管在测试过程中存在一定网络延时(可以接受),好处是只需在云端更新代码,就可以在四端看到效果,且四端测试客户端不用改动。因而选用方案二。
输出成果:在云端服务器研发一套算法测试平台,基于UDP或HTTP协议从测试客户端获取采集到的数据,返回给客户端定位结果。 需要Android、IOS、前端配合各提供一个测试客户端。
附:
室内定位技术的评价标准
1.定位精度
2.定位响应时间
3.实现复杂度
4.平台兼容性