室内导航是目前导航领域比较热闹的话题,其背后潜藏着巨大的商业利用价值,而传统的定位导航系统,如GPS、蜂窝网络等技术均无法有效地解决该问题,近年来受到包括谷歌、百度、微软等互联网巨头的关注,这两天看了些相关的内容,记录下相关的技术要点,由于涉及到许多技术和算法,在这里并不对这些技术一一做详细的阐述,只是简单的罗列,整体上掌握室内导航实现的框架,而具体的技术细节,可以在实际工作中用到时再做进一步了解。
用WIFI实现室内导航涉及到两个步骤:测距和定位。总的来说,测距技术又包括以下三个关键步骤:测距方式、信号的滤波以及测距模型的选用。
测距方式包括TOA(Time of Arrival)、TDOA(Time Difference of Arrival)、AOA(Angle of Arrival)以及RSSI(Recieved Signal Strength Index)。TOA是利用接收机接收信号和AP发射信号之间的时间差来确定两者之间的距离,基本原理是在平面上如果能同时接收到三个以上的AP点信号,并且这些AP点位置已知的情况下,就可以利用三角测量的方式,唯一地确定出接收机的位置;类似地,TDOA也是基于三角测量,只不过它是基于接收机到两个AP点的距离差来进行定位,从数学上可以知道,如果接收点到AP1和AP2的距离差已知,那么接收点的平面位置只能是双曲线的一端,如果有AP2和AP3的距离差,那么两条曲线的交点就是接收机实际的位置;虽然TOA和TDOA的定位精度非常高,但是可以看出,这两种方式对于时间同步的要求非常高,由于电磁波的传播速度很快,时间上哪怕是微秒级的误差也会导致测距的几十米左右的误差,并最终影响定位精度,因此对设备的要求也比较高;而RSSI接收的是信号强度,然后再根据一定的模型将信号强度转换成距离,完成测距,常见的是利用WIFI信号来进行RSSI测距.
由于受到周围环境的各种其它因素的干扰,接收机接收的信号中可能含有随机性的误差,因此在进行处理之前,需要先对这些信号进行滤波处理,而滤波的方法有很多,目前主要的方法有均值滤波、高斯滤波、修正加权滤波及卡尔曼滤波,其中对于线性时域随机系统而言,卡尔曼滤波是表现最优秀的滤波器之一,并且它的计算公式较简单,易于计算机实现。另外,在利用RSSI的方式进行测距时,接收机接收的是信号的强度,如何把信号强度转化为实际的距离值,就需要用到相应的模型,目前的测距模型一般可分为经验模型和确定性模型,经验模型主要是根据实测数据来建立模型和参数回归,而确定性模型是根据信号的特性,选用一定的数学模型来拟合,常见的确定性模型包括Ericsson多重断点模型、对数距离路径损耗模型、衰减因子模型和K-M模型。
不管选择哪种测距方式,由于测量不可避免地会存在误差,因此三角测量理论上会集中于接收点,但实际上往往会形成三个圆两两相交成六个点的情况,如何利用这六个点来确定接收机位置的方法就称为定位算法,目前常见的定位算法包括三角质心算法、最小二乘算法和极大似然估计,总的来讲,这些算法相对来讲比较简单成熟,在这里就不多作阐述。
大体上,不管是利用WIFI,还是用红外,还是超声波,或者AGPS,基本的原理都是基于三角测量,而三角测量关键的一步是实现到不同基准点的距离测量,这点和GPS测量其实是一样的,只不过这里假设所有的基准点坐标是已知的,个人觉得在实际的应用中,这可能是个难点。另外,既然说到导航,不可避免地要提到电子地图,对于室内导航来讲,如何高效地获得建筑的室内地图,也是个不可小觑的难题;同时,以上说的这些方法都是在假设接收机不动的情况下才能适用,也就是单点定位,在对实时性要求比较高的应用中,这些方法的实用性还有待商榷。
参考自:《WiFi网络下的三维空间定位技术研究》---董莹莹,硕士论文