RTLS TDOA Algorithm
1、摘要
· 为了通过TDOA计算位置,并行使用了用于获取双曲线表面接触点的多边测量和在调整估计距离值的同时找到最佳位置的变体试验。
· 在使用上述算法计算位置之前,首先使用范围过滤器过滤在锚点处测量的TOA和TDOA值,并通过平滑过滤器将可变性降至最低。
· 如果有4个toa值,则执行Multilateration(多点定位)和Variant Trialateration(三边测量法)。比较并选择一个更合适的位置。
· 如果存在3个toa,则执行Variant Trialateration(三边测量法),但结果不能视为好的位置。
2、Multilateration(多点定位)
· 从至少4个锚点接收toa值,并通过计算3个tdoa来计算位置。
· tdoa根据四个toa值中的最小值计算剩余toa之间的差异。
· 存在与tdoa对应的双曲表面,并且可以从三个双曲表面的接触点得出位置。
优点
· 如果测量值没有错误,则可以计算出精确的位置甚至z坐标值。
缺点
· 由于双曲曲面的性质,由于杠杆效应,为小toa的误差值计算的位置值会有很大变化。它通常不被计算。
2.1、坐标转换
· 进行坐标变换以促进二次方程的计算。
· 当基于具有最小toa值的基本锚获得三个tdoa值时,tdoa值最小。
· 找到锚点并对其进行转换,以使两个锚点到达z轴上的对称点。
· 由于tdoa最小的双曲表面的斜率最平缓,因此接触的输出概率很高。
· 基本锚点的坐标是tdoa最小的锚点的坐标和两点中点的坐标。
· 完成后,坐标转换过程如下。
-
pm 翻译以匹配此原点
-
围绕z轴的旋转运动
-
绕x轴旋转
坐标转换完成后,(0,0,k)匹配(0,0,-k)。
2.2 、计算双曲方程和交点
· 当将转换为距离的tdoa值除以2时,p0 和pm 之间的双曲面方程如下。
· 另一方面,如果(0,0,-k)坐标与其他锚点(2h)之间的距离差为2h,
· 如下所示,如果将此与上面的双曲方程式结合使用,则该平面的方程式将如下计算,
· 该平面成为两个双曲曲面的切线平面。
· 以与上述相同的方式,可以获得另一个锚点坐标的切平面。
· 当两个切平面的方程如下时,可以如下获得两个平面的正交线的方程。
· 将上述直线的方程式代入第一双曲曲面的方程式(2),可通过以下二次方程式求解。
· 双曲正切平面和正交线示例
2.3、 3 Nodes Multilateration(三点定位)
· 如果仅给出三个锚点数据,则将从包含三个锚点位置的平面中获得两条双曲线,
· 找出两条双曲线的交点。
坐标转换
- 像Variant Trialateration(变体三边测量) 一样, 执行坐标转换,以使由三个锚点的坐标形成的平面成为xy平面。
- 原点应为两个锚点的中心并进行坐标调整,以使两个锚点位置在y轴上对称。
· 计算双曲方程和交点
- 当通过将和之间的tdoa除以距离除以2获得的值是d时,和之间的双曲线方程为
3、Variant Trialateration(三边测量法)
· 从至少3个锚点接收到toa值后,计算2 tdoa并指定虚拟距离值,
· 通过逐渐增加距离值来计算位置,以便出现三个圆的交点。
· 如果有4个toa值,则计算3个位置,并且在找到多个解时选择另一个位置。用过的。 或者,为避免锚点附近的计算错误,如果锚点太靠近锚点,请设置锚点的toa值。用作参考值。
优点
· 甚至toa的误差值也不会显着改变计算的位置值。
缺点
· 由于它是根据用于定位的三个锚点形成的平面计算的,因此z坐标值没有意义。
3.1、坐标转换
· 为了简化计算,将基础锚点的坐标与原点匹配,将三个锚点的坐标分别执行坐标变换,使该平面成为xy平面,过程如下。
- p0 翻译以匹配此原点
-可以通过以下等式获得三个点所属的平面的法线向量,其中三个锚点坐标。
- 求出旋转角度的变换,以使法向矢量V平行于z轴。
· 经过上述坐标变换,锚点位于xy平面中,坐标为(0,0,0)。
3.2、距离估算和位置计算
· p0 和标签的初始估计距离设置如下。
· 如果相交点的接近p2 的距离大于标签和p2的估计距离r2,则r的值将以一定比例的差值增加。
· 重复上述过程,直到交点的距离小于r2。
· 另一方面,如果初始接触点的距离小于估算的距离r2,则r的值也会以一定的差异比率增加,
· 重复直到p2与远交点之间的距离大于r2。
3.3、不合适的区域
· 如下图所示,当标签被放置时,即两个tdoa值接近两个锚点之间的距离,
· 存在计算值几乎为p0的问题。
· 在这种情况下,应将p0用作参考值,并在定位计算中使用其他锚点的坐标。
4、Smoothing(平滑处理)
· 测量的toa值由于测量误差而具有不规则的可变性,并且可以平滑处理。
· 在获得tdoa值之后,在选择性地应用移动平均值或Savitzky-Golay算法之后,
· 进行定位计算以最小化位置波动。
5、Range Filter(边界值过滤处理)
· 用测得的toa值计算tdoa时,如果超过某个阈值,则没有意义。
手绘计算过程