超宽带(UWB)学习笔记——TWR测距

文章目录

  • 前言
  • 1. 单边双向测距(SS-TWR, Single Side - Two Way Ranging)
    • 1.1 测距方式
    • 1.2 误差分析
  • 2 双边双向测距(DS-TWR, Double Side - Two Way Ranging)
    • 2.1 测距方式
    • 2.2 误差分析
  • 参考文献


前言

TOF(Time Of Fight)是指直接完成对飞行时间的测量,UWB定位系统中的TOF测距方式是指通过双向通信完成两个节点间的距离测量,即。该测距方式直接完成节点间距离测量,并进而可以实现节点间的时钟同步,是UWB定位系统中常用的一种测距方案。和TDOA相比,该方案可以直接测量两个节点间的距离,而不是通过搭建基站实现的位置解算。

1. 单边双向测距(SS-TWR, Single Side - Two Way Ranging)

1.1 测距方式

SS-TWR的过程如下图所示。
超宽带(UWB)学习笔记——TWR测距_第1张图片

过程描述如下:

  • 节点A发送poll消息,并记录发送时刻 TMARK p o l l A \text{TMARK}_{poll}^A TMARKpollA
  • 节点B接收到poll消息,并记录接收时刻 RMARK p o l l B \text{RMARK}_{poll}^B RMARKpollB
  • 节点B发送response消息,并记录发送时刻 TMARK r e s p B \text{TMARK}_{resp}^B TMARKrespB,消息中包含 RMARK p o l l B \text{RMARK}_{poll}^B RMARKpollB TMARK r e s p B \text{TMARK}_{resp}^B TMARKrespB,这里, TMARK r e s p B \text{TMARK}_{resp}^B TMARKrespB消息包含在消息内容中可以通过UWB芯片的延时发送功能来实现
  • 节点A接收到response消息,并记录接收时刻 RMARK r e s p A \text{RMARK}_{resp}^A RMARKrespA
  • 节点A可以通过上述过程计算出两节点之间的距离(即传输时间 T ^ p r o p \hat{T}_{prop} T^prop),计算方式如下:
    T ^ p r o p = T r o u n d − T r e p l y 2 \hat{T}_{prop} = \frac{T_{round}-T_{reply}}{2} T^prop=2TroundTreply
    其中:
  • T r o u n d = RMARK r e s p A − TMARK p o l l A T_{round} = \text{RMARK}_{resp}^A - \text{TMARK}_{poll}^A Tround=RMARKrespATMARKpollA
  • T r e p l y = TMARK r e s p B − RMARK p o l l B T_{reply} = \text{TMARK}_{resp}^B - \text{RMARK}_{poll}^B Treply=TMARKrespBRMARKpollB

1.2 误差分析

设节点A的钟差为 τ A \tau_A τA,钟漂为 δ A \delta_A δA,节点B的钟差为 τ B \tau_B τB,钟漂为 δ B \delta_B δB。因此有:

  • TMARK p o l l A = τ A + t t m a r k p o l l , A × ( 1 + δ A ) \text{TMARK}_{poll}^A = \tau_A + t_{tmark}^{poll,A} \times (1+\delta_A) TMARKpollA=τA+ttmarkpoll,A×(1+δA)
  • RMARK p o l l B = τ B + t r m a r k p o l l , B × ( 1 + δ B ) \text{RMARK}_{poll}^B = \tau_B + t_{rmark}^{poll,B} \times (1+\delta_B) RMARKpollB=τB+trmarkpoll,B×(1+δB)
  • TMARK r e s p B = τ B + t t m a r k r e s p , B × ( 1 + δ B ) \text{TMARK}_{resp}^B = \tau_B + t_{tmark}^{resp,B} \times (1+\delta_B) TMARKrespB=τB+ttmarkresp,B×(1+δB)
  • RMARK r e s p A = τ A + t r m a r k r e s p , A × ( 1 + δ A ) \text{RMARK}_{resp}^A = \tau_A + t_{rmark}^{resp,A} \times (1+\delta_A) RMARKrespA=τA+trmarkresp,A×(1+δA)

将上述四个公司带入两节点之间的传输时间的测量值计算公式,有:
T ^ p r o p = T r o u n d − T r e p l y 2 = ( t r m a r k r e s p , A × ( 1 + δ A ) − t t m a r k p o l l , A × ( 1 + δ A ) ) − ( t t m a r k r e s p , B × ( 1 + δ B ) − t r m a r k p o l l , B × ( 1 + δ B ) ) 2 = t r o u n d − t r e p l y 2 + t r o u n d δ A − t r e p l y δ B 2 = T p r o p + δ B T p r o p + ( δ A − δ B ) t r o u n d \begin{aligned} \hat{T}_{prop} &= \frac{T_{round}-T_{reply}}{2} \\ &= \frac{(t_{rmark}^{resp,A} \times (1+\delta_A) - t_{tmark}^{poll,A} \times (1+\delta_A)) - ( t_{tmark}^{resp,B} \times (1+\delta_B) - t_{rmark}^{poll,B} \times (1+\delta_B))}{2} \\ &= \frac{t_{round} - t_{reply}}{2} + \frac{t_{round}\delta_A - t_{reply}\delta_B}{2} \\ &= T_{prop} + \delta_B T_{prop} + (\delta_A - \delta_B) t_{round} \end{aligned} T^prop=2TroundTreply=2(trmarkresp,A×(1+δA)ttmarkpoll,A×(1+δA))(ttmarkresp,B×(1+δB)trmarkpoll,B×(1+δB))=2troundtreply+2troundδAtreplyδB=Tprop+δBTprop+(δAδB)tround
其中:

  • 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=2troundtreply为两个节点间的实际传输时间
  • t r o u n d t_{round} tround为节点A的实际round trip时间
  • t r e p l y t_{reply} treply为节点B的实际reply时间

从上述公式可知,单边双向测距的测距误差项为 δ B T p r o p + ( δ A − δ B ) t r o u n d \delta_B T_{prop} + (\delta_A - \delta_B) t_{round} δBTprop+(δAδB)tround,所以:

  • 节点间距离越远,误差越大,一般 δ A \delta_A δA的量级在 1 0 − 6 10^{-6} 106,因此该项误差可以忽略
  • 一次测量的round trip时间越长,误差越大,这一项是单边双向测距的主要误差源。实际应用中,可以测得两节点之间的钟漂差值 δ A − δ B \delta_A - \delta_B δAδB(也就是多普勒频率),则可以将这一项补偿掉,从而降低误差。另一方面,还需要尽量加快单次测量的round trip时间以降低误差。

2 双边双向测距(DS-TWR, Double Side - Two Way Ranging)

2.1 测距方式

DS-TWR相比SS-TWR多了一次传输,好处是测距精度与收发之间的切换延迟(即 T r e p l y T_{reply} Treply)无关。该过程如下图所示。
超宽带(UWB)学习笔记——TWR测距_第2张图片

过程描述如下:

  • 节点A发送poll消息,并记录发送时刻 TMARK p o l l A \text{TMARK}_{poll}^A TMARKpollA
  • 节点B接收到poll消息,并记录接收时刻 RMARK p o l l B \text{RMARK}_{poll}^B RMARKpollB
  • 节点B发送response消息,并记录发送时刻 TMARK r e s p B \text{TMARK}_{resp}^B TMARKrespB,消息中包含 RMARK p o l l B \text{RMARK}_{poll}^B RMARKpollB TMARK r e s p B \text{TMARK}_{resp}^B TMARKrespB,这里, TMARK r e s p B \text{TMARK}_{resp}^B TMARKrespB消息包含在消息内容中可以通过UWB芯片的延时发送功能来实现
  • 节点A接收到response消息,并记录接收时刻 RMARK r e s p A \text{RMARK}_{resp}^A RMARKrespA
  • 节点A发送acknowledge消息,并记录发送时刻 TMARK a c k A \text{TMARK}_{ack}^A TMARKackA
  • 节点B接收到acknowledge消息,并记录接收时刻 RMARK a c k B \text{RMARK}_{ack}^B RMARKackB
  • 节点B可以通过上述过程计算出两节点之间的距离(即传输时间 T ^ p r o p \hat{T}_{prop} 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 \hat{T}_{prop} = \frac{T_{round1} \times T_{round2} - T_{reply1} \times T_{reply2}}{T_{round1} + T_{round2} + T_{reply1} + T_{reply2}} T^prop=Tround1+Tround2+Treply1+Treply2Tround1×Tround2Treply1×Treply2
    其中:
  • T r o u n d 1 = RMARK r e s p A − TMARK p o l l A T_{round1} = \text{RMARK}_{resp}^A - \text{TMARK}_{poll}^A Tround1=RMARKrespATMARKpollA
  • T r e p l y 1 = TMARK r e s p B − RMARK p o l l B T_{reply1} = \text{TMARK}_{resp}^B - \text{RMARK}_{poll}^B Treply1=TMARKrespBRMARKpollB
  • T r o u n d 2 = RMARK a c k B − TMARK r e s p B T_{round2} = \text{RMARK}_{ack}^B - \text{TMARK}_{resp}^B Tround2=RMARKackBTMARKrespB
  • T r e p l y 2 = TMARK a c k A − RMARK r e s p A T_{reply2} = \text{TMARK}_{ack}^A - \text{RMARK}_{resp}^A Treply2=TMARKackARMARKrespA

2.2 误差分析

双边双向测距的误差可以由下式给出:
error = T p r o p δ A + δ B 2 \text{error} = T_{prop} \frac{\delta_A + \delta_B}{2} error=Tprop2δA+δB
即误差不受测量时间的影响,仅和两节点间的距离成正比。由于 δ A \delta_A δA δ B \delta_B δB都在 1 0 − 6 10^{-6} 106,所以DS-TWR测距的误差基本可以忽略。

参考文献

  • IEEE Standard for Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Peer Aware Communications (PAC), IEEE 802.15.8-2017

你可能感兴趣的:(学习,算法)