因篇幅有限,本文仅列出核心图表;如需完整的定位文档(长达 15 页),请链接:锐米开源二:锐米LoRaGeo系统 http://www.rimelink.com/nd.jsp?id=89#_np=107_316
无所不在的定位 -- 这是“物联网”的核心算法之一,也是 智能算法+大数据 极富价值的应用之一(物联网其他核心包括:微电子、非硅组件、能源获取技术、无线智能网络、安全设计、软件仿真)。
现在,LoRa 有一种“本地定位”算法(不依赖 GPS、蓝牙等),它能“零额外成本”实现地理定位,这是物联网的“杀手级”应用:定位、导航、管理和跟踪。
锐米总结了 LoRa 的 3 大定位算法(RSSI, TOA 和 TDOA)的优缺点和实现算法。锐米即将推出“LoRa 定位系统”,届时,将成果分享给大家。
图1 定位技术比较
表1 各种定位技术的性能比较
定位技术 |
特点 |
LoRaWAN TDOA/RSSI |
|
WiFi |
|
BLE |
|
GPS/AGPS |
|
LoRaWAN定位系统支持现有WLAN (无线局域网)常用的三类定位算法:基于接收信号强度(Received Signal Strength Indicate,RSSI)算法、基于信号到达时间(Time of Arrival,TOA)算法、基于信号到达时间差(Time Difference of Arrival,TDOA)算法。
基于 RSSI 的定位可分为传播模型建模法与指纹库匹配法两大类。
(1)RSSI传播模型
RSSI 传播模型估计法首先用接收到的信号强度计算出信号的传播损耗,再利用理论和经验模型将传输损耗转化为距离,然后计算出节点的位置。
传统的 RSSI 估计法通常是对定位环境进行多次测量实验,得到这一环境下信号传播距离与路径损耗的关系,建立“距离—损耗”模型,其一般形式如下:
其中,d0 是参考点与信号源的距离,Pr0 是距离为d0时接收到信号源的RSSI,d 是真实距离,ζ~N (0, δ2) 是遮蔽因子, P 是待测点接收到信号源的RSSI, n 是路径损耗系数。当路径损耗系统已知,就可以根据接收信号强度计算出信号传播距离。
图2 三边定位模型
RSSI定位算法是基于距离的定位,距离估计的准确程度直接影响最终定位的准确度。估计终端设备与三个锚节点的距离后就可以用图 2所示三边定位模型估计目标的位置。用 RSSI得到的距离估计值往往会存在误差,使图2中三个圆并不交于一点,而是形成一块区域。
/**********************************************************/
算法推导,请参考《完整版》
/**********************************************************/
(2)指纹库匹配
指纹库匹配的定位系统一般由离线阶段、在线阶段两个部分组成。
1)离线阶段。场强数据库的建立阶段,即以场强为参数建立一个与目标所在位置有关的指纹库。
2)定位阶段。即根据接收到的场强数据与指纹库进行匹配,得到目标定位结果。位置估计算法大致可分为两类:一类是确定性算法,直接将测量的 RSSI 值通过平均等手段作为指纹库;另一类是概率型算法,在测量 RSSI值基础上,根据每个采样点的条件概率,以其概率最大值建立指纹库。
指纹库匹配的精度不仅取决于匹配算法的精度还与参考节点个数有关,参考节点数目越多,定位越精确。目前,指纹库匹配法的定位精度有待提高。
TOA 即到达时间,其主要是应用电磁波的传播来测量信号发射端到接收端的距离。假设信号从发射端到接收端的传播时延为td,由于信号传播的速度为电磁波在在空气中传播速度,一般近似取光速,设为c,则发射端与接收端之间的距离为 d=td * c。由于光的传播速度十分快,所以这种技术很容易产生误差。目前 TOA 技术主要应用于有 GPS和 UWB的定位系统中。
基于TOA的测距方法要求信号发送端与接收端之间必须保证严格的时间同步,这对硬件要求很高。根据 TOA 中发射信号和接收信号的对象是否相同,可将它的模式分为两类,即 A 类和B 类。A 类模式指的是信号在离开发射端与到达接收端时分别记录时间戳,求两个时间戳的差值,即可得到传播时延。
B 类模式也称为Time-of-flight(TOF,飞行时间)测距方法,该方法属于双向测距技术,其利用信号在发射端和接收端之间的往返飞行时间来测量两点间的距离,B类模式测距原理如图3所示。将发射端发出信号和接收到接收端应答信号的时间间隔记为Tt,接收端收到发射端的信号和发出应答信号的时间间隔记为Tr。则信号在收发两端的单向飞行时间Tf=(Tt-Tr)/2,两点间的距离d=c*Tf。在这类模式下,信号发射端的计时器的时钟脉冲宽度主要决定了它的定位准确度。
图 3 Time-of-flight测距方法
RSSI 和 TOA定位过程一般分两步实现,首先通过RSSI和TOA估计目标到各个锚节点的距离,然后采用三边定位方法确定目标的最佳位置。即RSSI 和TOA定位算法从原理上来说都是基于距离的定位,距离估计的准确程度直接影响最终定位的准确度。
在实际应用中,如果需要进一步提高定位准确度,通常需要将图2中的锚节点个数增加到3个以上甚至更多,此时三边定位变为多边定位。在此种情况下,除了采用前面所述最小二乘法确定目标位置,还可以尝试采用其他算法进行求解,如三角形质心算法,梯度下降法,牛顿法,拟牛顿法,以及遗传算法、模拟退火方法和粒子群算法等启发式算法,因为虽然最小二乘法无须迭代、速度快,但求得的最优解可能是局部最优,不是全局最优解。
/**********************************************************/
算法推导,请参考《完整版》
/**********************************************************/
(1)TDOA定位原理
由于实际应用中很难使发送端与接收端时钟同步,所以提出了 TDOA 算法。由于不需要检测信号传输时间,系统对时间同步的要求大大降低。在基于 TDOA 的定位技术中,定位过程分两步来完成,第一步是测量得到待定位节点到其中两个锚节点的TDOA及对应的距离之差,第二步就是对节点实现定位,估计其相对坐标位置。
图 4 3个网关实现LoRa TDOA定位
如上图所示, LoRaWAN TDOA的定位原理描述如下:
(2)双曲线定位算法
与 TDOA 相结合的基本定位算法是双曲线定位法,如果目标到两个锚节点的距离差d是已知的,由双曲线的几何意义可知,目标就位于一条以这两个锚节点为焦点,以d为到焦点的距离差的双曲线上。当有三个锚节点参与定位,则可以得到两个距离差,就可以得到两条双曲线,其交点就是目标的位置。
图5 双曲线定位示意图
/**********************************************************/
算法推导,请参考《完整版》
/**********************************************************/
Fange 算法线性化双曲线方程,然后计算得到移动台 MS 的位置估计。它基于 TDOA 方式,主要的优点是原理简单,计算复杂度低。由于 Fang 算法并不能利用冗余信息来提高定位精度,所以有且只能用三个基站的信息定位。
/**********************************************************/
算法推导,请参考《完整版》
/**********************************************************/
Chan 算法是非递归双曲线方程组算法,具有解析表达式解。其主要的特点为在测量误差服从理想高斯分布时,它的定位精度高,计算量小,并且可以通过增加基站数量来提高算法精度。该算法的推导的前提是基于测量误差为零均值高斯随机变量,对于实际环境中误差较大的测量值,比如在有非视距误差的环境下,该算法的性能会有显著下降。Chan 算法可分为只有三个基站参与定位和三个以上基站定位 2 种。
/**********************************************************/
算法推导,请参考《完整版》
/**********************************************************/