TWR(Two Way Ranging)是一种基于双向飞行时间的定位技术,广泛应用于UWB(超宽带)系统中。它通过测量信号在设备间的往返时间来计算距离,并结合几何算法确定位置。
本文给出TWR定位的原理解析,无例程,如需程序,详见
:
- TWR(Two Way Ranging)双向测距技术的MATLAB例程(平面、SS-TWR):https://blog.csdn.net/callmeup/article/details/147113431
- 基于DS-TWR(双边双向测距)的平面定位MATLAB例程,包含模拟数据生成、距离计算和最小二乘定位:https://blog.csdn.net/callmeup/article/details/147116324
TWR的工作原理
TWR的核心是双向测距法,分为单边和双边两种模式:
- SS-TWR(单边双向测距法):基站向标签发送消息并记录时间戳,标签接收后延时回复,基站再次记录时间。通过分析这些时间差,可以计算出信号的往返时间,从而推算出距离。
- DS-TWR(双边双向测距法):与SS-TWR类似,但涉及更复杂的交互过程,以提高精度。
解算方法
三边定位算法
TWR通常使用三边定位算法解算位置:
- 至少三个已知位置的基站分别测量到目标标签的距离。
- 以每个基站为圆心、测得距离为半径画圆,三个圆的交点即为目标位置。
应用场景
TWR因其高精度和可靠性,适用于多种场景:
- 室内定位:商场、仓库、地下室(地下停车场)等环境中的人员或物品追踪。
- 无线传感器网络:用于监测和定位网络节点。
- 工业自动化:机器人导航、智能物流
公式推导
单边双向测距法(SS-TWR)
单边双向测距法(Single-Sided Two-Way Ranging, SS-TWR)公式推导过程及误差分析:
- 基本流程与时间参数定义
- 设备A(发起方)在本地时间戳 T A 1 T_{A1} TA1发送测距请求信号。
- 设备B(响应方)在本地时间戳 T B 1 T_{B1} TB1接收到信号,经过固定延迟 T r e p l y T_{reply} Treply后,在时间戳 T B 2 T_{B2} TB2回复响应信号。
- 设备A在本地时间戳 T A 2 T_{A2} TA2接收到响应信号。
定义以下参数:
- T r o u n d = T A 2 − T A 1 T_{round} = T_{A2} - T_{A1} Tround=TA2−TA1:设备A记录的信号往返总时间。
- T r e p l y = T B 2 − T B 1 T_{reply} = T_{B2} - T_{B1} Treply=TB2−TB1:设备B的响应延迟时间。
- T p r o p T_{prop} Tprop:信号在设备A与B之间的单程飞行时间。
- 理想情况下的公式推导
假设设备A和B的时钟完全同步,则飞行时间可表示为:
T p r o p = T r o u n d − T r e p l y 2 T_{prop} = \frac{T_{round} - T_{reply}}{2} Tprop=2Tround−Treply
推导依据:
- 总往返时间 T r o u n d T_{round} Tround包括两次飞行时间( 2 T p r o p 2T_{prop} 2Tprop)和设备B的响应延迟( T r e p l y T_{reply} Treply)。
- 因此,单程时间通过消去 T r e p l y T_{reply} Treply得到。
- 实际场景下的误差分析
实际中,设备A和B的本地时钟存在频率偏移( e A e_A eA和 e B e_B eB),导致时间戳测量误差。此时,真实的飞行时间计算需引入时钟偏移因子:
T ^ p r o p = 1 2 [ T r o u n d ( 1 + e A ) − T r e p l y ( 1 + e B ) ] \hat{T}_{prop} = \frac{1}{2} \left[ T_{round}(1 + e_A) - T_{reply}(1 + e_B) \right] T^prop=21[Tround(1+eA)−Treply(1+eB)]
误差表达式为:
Error = T ^ p r o p − T p r o p = 1 2 [ T r e p l y ( e A − e B ) ] + T p r o p ⋅ e A \text{Error} = \hat{T}_{prop} - T_{prop} = \frac{1}{2} \left[ T_{reply}(e_A - e_B) \right] + T_{prop} \cdot e_A Error=T^prop−Tprop=21[Treply(eA−eB)]+Tprop⋅eA
由于 T r e p l y ≫ T p r o p T_{reply} \gg T_{prop} Treply≫Tprop,误差可简化为:
Error ≈ 1 2 T r e p l y ( e A − e B ) \text{Error} \approx \frac{1}{2} T_{reply}(e_A - e_B) Error≈21Treply(eA−eB)
关键结论:
- 误差与设备B的响应延迟 T r e p l y T_{reply} Treply及两设备的时钟偏移差 ( e A − e B ) (e_A - e_B) (eA−eB)成正比。
- 例如,若 T r e p l y = 1 ms T_{reply} = 1 \, \text{ms} Treply=1ms,时钟偏移为20 ppm(百万分之一),则误差可达约10 ns,对应测距误差3米。
SS-TWR的局限性
- 时钟同步要求:设备间需近似同步时钟,否则误差随 T r e p l y T_{reply} Treply增大而显著增加。
- 响应延迟敏感:需尽可能缩短设备B的响应时间( T r e p l y T_{reply} Treply),以降低误差。
- 适用场景:适用于对精度要求不高(如分米级)但需要快速测距的场景,如低功耗物联网设备。
双边双向测距(DS-TWR)
TWR(Two-Way Ranging)定位方法通过双向通信来估计两个设备之间的距离,避免了严格的时钟同步要求。
-
定义变量:
- T_round1:设备A测量的第一次往返时间(从发送到接收回复)。
- T_reply1:设备B测量的第一次回复处理时间。
- T_round2:设备B测量的第二次往返时间(从发送到接收回复)。
- T_reply2:设备A测量的第二次回复处理时间。
- T_prop:信号的单程传播时间,距离 d = c ⋅ T p r o p d = c \cdot T_{prop} d=c⋅Tprop, c c c为光速(电磁波传播速度)。
-
时钟漂移建模:
- 设备A和B的时钟可能存在漂移,分别用 α \alpha α和 β \beta β表示其时钟频率与真实频率的比值。
-
时间关系方程:
- 第一次往返(A→B→A):
T r o u n d 1 ⋅ α = 2 T p r o p + T r e p l y 1 ⋅ β T_{round1} \cdot \alpha = 2T_{prop} + T_{reply1} \cdot \beta Tround1⋅α=2Tprop+Treply1⋅β - 第二次往返(B→A→B):
T r o u n d 2 ⋅ β = 2 T p r o p + T r e p l y 2 ⋅ α T_{round2} \cdot \beta = 2T_{prop} + T_{reply2} \cdot \alpha Tround2⋅β=2Tprop+Treply2⋅α
- 第一次往返(A→B→A):
-
消去时钟漂移:
- 通过联立方程并消去 ( \alpha ) 和 ( \beta ),推导出传播时间 ( T_{prop} ):
T p r o p = T r o u n d 1 ⋅ T r o u n d 2 − T r e p l y 1 ⋅ T r e p l y 2 T r o u n d 1 + T r o u n d 2 + T r e p l y 1 + T r e p l y 2 T_{prop} = \frac{T_{round1} \cdot T_{round2} - T_{reply1} \cdot T_{reply2}}{T_{round1} + T_{round2} + T_{reply1} + T_{reply2}} Tprop=Tround1+Tround2+Treply1+Treply2Tround1⋅Tround2−Treply1⋅Treply2
- 通过联立方程并消去 ( \alpha ) 和 ( \beta ),推导出传播时间 ( T_{prop} ):
距离
d
d
d计算公式为:
d
=
c
⋅
T
r
o
u
n
d
1
⋅
T
r
o
u
n
d
2
−
T
r
e
p
l
y
1
⋅
T
r
e
p
l
y
2
T
r
o
u
n
d
1
+
T
r
o
u
n
d
2
+
T
r
e
p
l
y
1
+
T
r
e
p
l
y
2
d = c \cdot \frac{T_{round1} \cdot T_{round2} - T_{reply1} \cdot T_{reply2}}{T_{round1} + T_{round2} + T_{reply1} + T_{reply2}}
d=c⋅Tround1+Tround2+Treply1+Treply2Tround1⋅Tround2−Treply1⋅Treply2
对比
维度 | SS-TWR | DS-TWR |
---|---|---|
消息交互次数 | 2次(单次往返) | 3次或4次(两次往返) |
误差来源 | 主要来自( T_{reply} )和时钟偏移差 | 通过对称性抵消部分时钟偏移误差 |
精度 | 较低(误差随延迟增加) | 较高(厘米级) |
适用性 | 低功耗、快速测距场景 | 高精度定位场景(如工业自动化) |
参考文献
- 刘姝廷,张媛媛,张贺,等.基于TWR的WLS和KF融合室内定位方法[J].沈阳理工大学学报,2024,43(06):8-12.
如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者