2. 定位技术概述
各位好,欢迎来到第二章。上一章我们聊了UWB和BLE各自的特点,以及为什么要把它们放在一起。这一章,咱们得把UWB定位的底裤扒干净——说白了,就是搞明白UWB到底是怎么算出位置来的。
我个人习惯,学任何技术先看它的核心原理。UWB定位,本质上就是测量时间和角度。你想想看,电磁波在空气中传播的速度是固定的(光速),如果我们能测出信号从发射端到接收端飞了多久,那距离不就出来了?这就是TOF。如果我们能测出信号到达多个基站的时间差,那位置也能算出来,这就是TDOA。如果再狠一点,我们直接测出信号来的方向,那就是AOA。
嗯,这三种方法,各有各的脾气。我在项目里都折腾过,踩过不少坑。今天咱们一个一个说清楚。
2.1 TOF测距原理:最直观的距离测量
TOF,全称Time of Flight,飞行时间法。原理简单得令人发指:
距离 = 光速 × 飞行时间 / 2
为什么要除以2?因为信号从基站A发到标签B,标签B再发回来,一来一回,我们测的是往返时间。除以2才是单程时间。
听起来很简单对吧?但实际做起来,坑多得很。
核心要点:TOF测距的精度,完全取决于时间测量的精度。光速是3×10⁸ m/s,1纳秒的时间误差,就会带来约0.3米的距离误差。所以UWB芯片必须要有高精度的时间戳单元,分辨率得达到皮秒级。
我在项目中遇到过一个问题:两个UWB模块明明放在1米远的地方,测出来却是1.3米。查了半天,发现是天线延迟没校准。每个UWB模块的天线、PCB走线、芯片内部路径都会引入固定的延迟偏移。这个偏移如果不补偿,测距结果就会整体偏大或偏小。
避坑指南:我曾经在量产前才发现,同一批UWB模块的天线延迟居然有差异。后来我强制要求每块模组出厂前都要做单点校准,把天线延迟写入芯片的OTP区域。这个步骤不能省,省了就是给自己挖坑。
TOF的典型流程是这样的:
- 设备A发送一个测距请求帧,同时记录发送时间戳T1。
- 设备B收到请求帧,记录接收时间戳T2。
- 设备B经过一段固定延迟(Turnaround Time),在T3时刻发送响应帧。
- 设备A收到响应帧,记录接收时间戳T4。
- 设备A计算往返时间:T_round = T4 - T1,T_reply = T3 - T2。
- 飞行时间 = (T_round - T_reply) / 2。
这个算法叫双边双向测距(DS-TWR),它能抵消掉设备B的处理延迟,精度比单边测距高得多。我建议你在项目中优先使用DS-TWR,别图省事用单边测距。
2.2 TDOA定位算法:不需要标签发时间戳
TDOA,全称Time Difference of Arrival,到达时间差。它和TOF最大的区别是:TDOA不需要标签和基站之间来回握手,标签只需要发一次信号,多个基站同时接收,然后计算信号到达不同基站的时间差。
为什么会这样?因为TDOA只关心时间差,不关心绝对时间。基站A和基站B收到同一个信号的时间差,对应着标签到两个基站的距离差。这个距离差是一个双曲线方程。三个基站就能得到两条双曲线,它们的交点就是标签的位置。
数学本质:设标签位置为(x,y),基站i的位置为(xi,yi),信号到达基站i的时间为ti。那么TDOA的核心方程是:
√((x-x₂)²+(y-y₂)²) - √((x-x₁)²+(y-y₁)²) = c × (t₂ - t₁)
这是一个双曲线方程。三个基站可以列出两个这样的方程,求解得到(x,y)。
TDOA的优势很明显:标签只需要发一次信号,功耗低,而且支持更多的标签同时定位。但代价是基站之间必须要有精确的时间同步。基站的时间不同步,TDOA就是空中楼阁。
注意:TDOA对时钟同步的要求极其苛刻。1纳秒的时间同步误差,就会带来约0.3米的定位误差。所以TDOA系统通常需要有线时钟同步(比如用电缆传输时钟信号),或者使用高精度的无线时钟同步协议。我在一个项目中尝试过用WiFi做时钟同步,结果误差大得离谱,最后老老实实拉了根同步线。
TDOA的定位流程:
- 标签广播一个UWB脉冲信号。
- 多个基站同时接收这个信号,并记录到达时间。
- 基站将时间戳上报给定位引擎(服务器或边缘计算节点)。
- 定位引擎计算时间差,代入双曲线方程求解。
- 输出位置坐标。
2.3 AOA角度定位:用天线阵列看方向
AOA,全称Angle of Arrival,到达角定位。它不测时间,而是测信号来的方向。
原理是这样的:UWB标签发一个信号,基站用多个天线(天线阵列)接收。因为每个天线在空间中的位置不同,信号到达每个天线的相位也不同。通过测量这些相位差,就能反推出信号来的角度。
我举个例子你就明白了。想象一下,你站在操场上,远处有个人在喊你。你的左耳和右耳听到声音的时间有细微差别,你的大脑就能判断出声音来自哪个方向。AOA的原理一模一样,只不过把耳朵换成了天线。
核心公式:假设两个天线之间的距离为d,信号到达两个天线的相位差为Δφ,信号波长为λ,那么到达角θ满足:
Δφ = 2π × d × sin(θ) / λ
所以:θ = arcsin(Δφ × λ / (2π × d))
AOA的优点是不需要多个基站协同,一个基站就能定位。但缺点也很明显:天线阵列的尺寸和天线间距直接影响角度分辨率。天线间距越大,角度分辨率越高,但也会引入模糊度(相位缠绕)。
经验之谈:我建议天线间距取半个波长(λ/2),这样既能保证角度分辨率,又不会出现相位模糊。对于UWB的6.5GHz中心频率,波长约46mm,半波长就是23mm。这个尺寸在工程上是可接受的。
AOA的典型应用场景:
- 仓库中的叉车定位:一个基站就能知道叉车在哪个方向。
- 室内导航:结合TOF测距,AOA可以提供方向信息,帮助用户找到目标。
- 资产追踪:在货架上安装AOA基站,可以快速定位哪个货位上的标签在移动。
2.4 UWB信号特性:为什么它这么准?
聊完了定位算法,咱们得说说UWB信号本身。为什么UWB能做到厘米级定位,而WiFi和蓝牙不行?
核心原因就一个:UWB信号的带宽极宽。
| 参数 | UWB | WiFi (2.4GHz) | BLE |
|---|---|---|---|
| 信号带宽 | ≥500MHz | 20-40MHz | 1-2MHz |
| 脉冲宽度 | 约2纳秒 | 约50纳秒 | 约1微秒 |
| 时间分辨率 | 约0.3纳秒 | 约25纳秒 | 约500纳秒 |
| 理论测距精度 | 约10厘米 | 约7.5米 | 约150米 |
你看这个表格就明白了。UWB的脉冲宽度只有2纳秒左右,时间分辨率极高。WiFi的脉冲宽度是50纳秒,BLE更是到了微秒级。时间分辨率越差,测距精度就越差。
UWB信号的另一个特性是抗多径能力强。多径效应,说白了就是信号在房间里弹来弹去,反射路径和直射路径混在一起。WiFi和BLE因为脉冲宽,直射路径和反射路径容易重叠,分不清谁是谁。UWB的脉冲极窄,直射路径和反射路径在时间上是分开的,接收机可以轻松识别出第一个到达的脉冲(也就是直射路径)。
关键点:UWB定位的精度,本质上取决于能否准确检测到直射路径(First Path)的到达时间。如果直射路径被遮挡(比如标签放在金属箱子后面),接收机检测到的可能是反射路径,定位误差就会急剧增大。这就是为什么UWB在视距(LOS)环境下表现极好,但在非视距(NLOS)环境下会出问题。
UWB的频谱范围是3.1GHz到10.6GHz,不同国家有不同规定。中国目前开放的是6.0GHz到9.0GHz频段。UWB的发射功率极低(-41.3dBm/MHz),比WiFi和蓝牙都低,所以它不会对其他无线通信造成干扰。这也是UWB能和其他无线技术共存的原因。
2.5 三种定位方法的对比与选择
好了,三种方法都讲完了。咱们做个对比,方便你选型时参考。
| 特性 | TOF | TDOA | AOA |
|---|---|---|---|
| 所需基站数 | 至少2个(测距),3个(定位) | 至少3个 | 1个(角度),2个(定位) |
| 是否需要时钟同步 | 不需要(DS-TWR可抵消) | 需要(高精度) | 不需要 |
| 标签功耗 | 较高(需要双向通信) | 较低(只需发一次) | 较低(只需发一次) |
| 系统容量 | 中等 | 高(支持大量标签) | 中等 |
| 抗多径能力 | 强 | 强 | 中等(受天线阵列影响) |
| 典型精度 | 10-30厘米 | 10-30厘米 | 角度误差3-5度 |
| 工程复杂度 | 低 | 高(时钟同步是难点) | 中(天线阵列设计) |
我个人建议:
- 如果项目规模小,标签数量少,优先用TOF。实现简单,调试方便。
- 如果项目规模大,标签数量多(比如上百个),用TDOA。但要做好时钟同步方案。
- 如果只需要知道方向,或者基站部署受限,用AOA。但要注意天线阵列的校准。
当然,实际项目中往往是混合使用。比如用TOF做测距,用AOA做角度,两者融合得到更精确的位置。这就是我们后面章节要讲的内容了。
2.6 本章知识体系
最后,我用一张图把本章的核心逻辑串起来。这张图展示了UWB定位的三种方法、它们的输入输出以及适用场景。
这张图把本章的核心内容都串起来了。你可以看到,三种方法各有各的适用场景,没有绝对的好坏。关键是根据你的项目需求,选择最合适的方案。
嗯,第二章就到这里。内容不少,但都是干货。你如果能把这三种方法的原理和优缺点吃透,后面讲融合定位的时候就会轻松很多。