前言
又到一年毕业季。
蓝牙定位也断断续续做了快一年多了,以后可能不会再做这一块了,趁记忆还新的时候把遇到的一些问题稍微总结一下,帮助后来的朋友少走一点弯路。
补充点小知识
ibeacon和蓝牙
Ibeacon是一项低耗能蓝牙技术技术,工作原理类似之前的蓝牙技术。iBeacon 是苹果公司2013年9月发布的移动设备用OS(iOS7)上配备的新功能。(来自百度百科)
目前做定位的蓝牙其实都是基于ibeacon的。
算法的意义
理论上来说,已知不在同一条直线的三个点坐标,以及定位点分别到三点的距离,我们是可以直接求出定位点的。
那么还需要算法有何用呢?因为蓝牙定位信号不稳定(跟蓝牙发射端和蓝牙接收端的质量还有环境有关),计算蓝牙信标到定位点的距离往往非常不精确,所以无法直接确定定位点,需要通过算法来模糊定位。
主流算法
主要是三点定位法和指纹法。
三点定位法:此三点已非彼三点了。三点定位法原本是已知三点坐标和三点到未知点的距离,求未知点用的方法,但是由于在实际运用中三点距离并不是精确距离,所以只能求到一个模糊解,三点法也就有了各种各样的变种,当然还是可以统称三点定位法。三点不是真的指三点,实际运用中可以用多点,不过在蓝牙这个领域常用的是3~5点,具体的实现方式有很多种,比如权值法、最小二乘法、均值法。根据具体的实现可以分成很多方法。
指