一、概述
最近在做一个基于蓝牙的室内定位的项目,做了一个三角定位算法,由于室内的环境比较复杂,信号反射折射比较多,很多时候信号的大小(
RSSI
)跟距离并不是完全一一对应的,可能远的地方信号反而更强,三角质心定位算法就有点不合适了,因此想试用指纹定位算法,看一下指纹定位算法的效果。在此总结一下指纹定位算法。
二、指纹定位算法介绍
指纹定位算法是基于室内环境复杂,信号反射折射所形成的在不同位置形成的不同的信号强度信息而提出的一套算法,指纹算法能很好的利用了反射折射所形成的信号信息,离线先生成指纹信号强度数据库,在线定位中再通过实际测量的一组
RSSI
值来计算位置距离。
三、指纹算法的关键技术
1、数据库技术
通过一定的数据组织保存数据,数据记录包括不同点位置的不同信标的
rssi
值,位置(
x
,
y
),让后续空间匹配算法更加高效。
2、匹配算法
匹配算法是通过实际采集的数据与数组库中保存的位置指纹进行匹配,算出距离,比较常用的算法有
k
阶类聚算法,加权
k
阶类聚算法,神经网络算法。
3、信号滤波算法
因采集到的信号还是会收到各种干扰,人的走动,环境信号噪声等,需要对此采集到的信号进行滤波,离线数据采集是可以采集比较多的点采用平均滤波,高斯滤波等。在线实时定位时不可能采集很多点再滤波,只能采用输入输出为
1
:
1
的滤波算法,滑动加权滤波,卡尔曼滤波比较常用。
4、融合其他传感器进行定位
可以融合手机的加速度传感器,陀螺仪,方向传感器等实现惯性导航定位。
以上很多技术具体还没有实现,之前也没有接触过,需要在工作的过程中不断学习,只是列了一个大纲,后续会不断的补充。