0755-23080616 吴小姐: 15813701668 范先生:15813708988 林先生:15813708868 宋先生:19192162070

校准过了还是不准,UWB 测距误差来自哪里

2026-08-28 03:30

分享到:

锚点装好了,标签也装好了,天线延迟也校过了,串口打出来的距离还是对不上卷尺。

有时读数一遍遍量都是同一个数,但和实际距离始终差一截。有时空旷环境下测得正常,一到现场,遇到墙、人体遮挡或者安装位置变化,距离就开始持续偏大。

这些现象都可以表现为“测不准”,但排查方法并不一样。先看读数是一直偏在一边,还是围绕某个值上下跳;再改变距离、遮挡和安装位置,看偏差会不会跟着变。

读数稳,不等于量得准

在GitHub 上 thotro/arduino-dw1000 的第 228 号问题里,有用户报告实际距离为 196.5 cm,锚点测出来却是 274 cm。这个案例的问题不在于数据来回跳,而是读数可以很稳定,却始终偏离实际距离。

另一种情况是数值围绕某个中心上下跳,比如这一秒 1.8 m,下一秒 2.3 m。这类波动和前面的固定偏差不是一回事。

接收信号电平对 DW1000 测距的影响曲线图

接收信号电平对 DW1000 测距的影响。理想情况下(红线)测距值恒定,实际测距值(蓝线)随接收信号电平变化出现系统性偏离。数据来源:Qorvo APS011 v1.1(DW1000 实测数据)

平均、卡尔曼滤波主要处理随机抖动,可以让上下波动的数据更稳定。如果测量中心本身已经偏了,滤波不会把它拉回真实距离。一个稳定但存在固定偏差的读数,滤波之后仍然会停在错误的位置。

调试时先看读数是在真实距离附近上下跳,还是稳定地偏在一边。前一种可以考虑平均或滤波;后一种要继续检查天线延迟、校准环境和传播路径。

固定偏差先看天线延迟

如果不同距离下都存在相近的固定偏差,可以先检查天线延迟。

芯片记录时间戳的位置并不在天线实际的辐射口。芯片内部基准点到天线之间存在一段固定时延,这部分时间没有发生在空气传播过程中,却会一起进入 ToF 计算。

UWBRFAT+ANTDELAY 用来补偿这段固定时延。

发射端与接收端天线延迟示意图

发射端与接收端天线延迟示意。芯片内部时间戳到天线辐射口之间存在固定时延,TX 端和 RX 端各占一段。

这个命令的取值范围是 0 到 65535,出厂默认值为 16400。不同天线使用的推荐值并不相同:

  • UWB-PCB-X:16433
  • UWB-PCB-D:16476
  • UWB-ZT50:16408

Qorvo 给出的换算单位是每个计数值 15.65 ps。不同天线的推荐值相差几十个计数,换算到距离后已经可能达到十几到几十厘米,足以直接影响最终的测距结果。

如果更换了天线,却继续使用另一款天线的推荐值,测量结果就可能出现稳定的固定偏差。

天线延迟与具体的天线和射频链路有关。更换其他天线后,应按实际硬件重新校准 ANTDELAY。

这里还要区分 +DISTOFFSET。

+DISTOFFSET 的取值范围是 ±500 cm,默认值为 0。它是人为设置的距离偏置,可以用于粗调,但没有改变物理 ToF 链路中的天线时延。它和 +ANTDELAY 处理的是两个不同的问题。

天线延迟的六步校准流程和 Antdelay_cal.exe 的使用方法,可以参考 UWB650 高精度指南(第四篇)

校准时还要控制基准距离、周围反射和参与解算的模块,这些因素都会影响最后得到的校准值。

哪些条件会影响校准结果

基准距离量错

校准时需要输入实际距离。如果这个距离本身量错了,算法会按照测量值和输入值之间的差异计算校准参数,基准距离中的误差也会随之进入结果。

校准前要先确认基准距离准确。基准距离存在的误差,可能一起进入最终的校准参数,并在参数保存到 Flash 后持续影响测距结果。

校准环境里有反射

桌面、支架、线束以及附近物体都可能产生反射。如果校准环境中已经存在明显多径,这部分距离偏差也会进入延迟计算,最后得到的 ANTDELAY 就不再只反映天线和射频链路的固定时延。

安装位置变化后,周围的反射路径也会发生变化,需要重新检查校准后的距离是否仍然准确。

多模块联合解算存在耦合

在某论坛中,有人替换三块模块中的一块并重新校准后,原来两块模块的校准结果也发生了约 200 mm 的变化。

在这种联合解算方式下,校准结果不完全由单块模块决定。参与测量的模块发生变化,重新解算出的参数也可能跟着变化。

现场如果出现“只换了一块模块,其他模块的校准值也变了”,可以先检查当前的校准组合和解算方式。

先看偏差怎么变化

排查测距问题时,不要只看某一次距离值。改变距离、遮挡条件和参与测距的模块,更容易看出误差来自哪里。

测量现象

优先检查

处理方向

不同距离下都存在相近的固定偏差

天线型号、ANTDELAY、基准距离

检查参数并重新校准

更换安装环境或参与测距的模块后,固定偏差发生变化

校准环境或联合解算

在实际安装条件下重新验证

墙或人体挡住后,距离明显偏大

非视距传播

调整锚点高度、标签位置或遮挡条件

数值围绕某个中心上下波动,但平均值接近实际距离

随机抖动

平均或滤波

近距离校准正常,拉远以后出现整体偏差

近距离多径

拉开距离重新校准

判断时不能只看读数稳不稳。遮挡出现后是否偏大、距离或安装位置变化后偏差是否跟着变化,更能帮助定位原因。

近距离为什么不适合直接校准

两块板放在桌面上,相距 50 cm 做校准,操作很方便,但近距离下的传播条件可能会影响校准结果。

发射功率较高时,在约 100 cm × 100 cm 的近距离范围内,多径更明显,数据波动也会增大。

距离较近时,板子、桌面、线束和附近物体产生的反射会一起进入接收信号。如果此时根据测距误差反推天线延迟,校准结果里可能同时包含近距离多径带来的偏差。

50 cm 附近校出来的值可能很准,但一拉到更远距离,整体误差又出现了。

拉开距离,或者适当降低发射功率,都可以减少近距离多径对校准结果的影响。

DW1000 还存在一类与接收电平有关的系统性偏差。Qorvo 的 APS011 应用笔记给出了对应的实测数据,零偏点大约在 -81/-77 dBm,接收电平偏离这个范围后,测距值会产生系统性变化。

DW3000 使用数字增益控制(DGC),这类接收电平相关偏差已经明显减弱。官方用户手册也不再沿用 DW1000 的接收电平修正表。因此在 DW3000 方案中,排查近距离校准误差时,应优先检查多径影响。

实际校准时可以拉开距离。如果必须在较近距离操作,也可以按照《 UWB650 高精度指南(第四篇):天线延迟校准与部署》的建议适当降低发射功率,减少近距离反射对校准结果的影响。

建议校准时避开 range bias 明显的近距离区域,并保持足够的最小距离。

非视距时,测距为什么容易偏大

墙挡住直射路径,或者人体站到标签和锚点之间以后,接收机可能主要收到穿透、绕射或反射信号。

这些传播路径通常比原来的直线路径更长。在 NLOS 场景中,测量结果主要表现为正偏,也就是测得比实际距离更远。

多径传播示意图

多径传播示意。无线信号除直射路径外,还会经墙体、地面、金属面等反射或绕射,形成比直线更长的传播路径。当直射路径被遮挡时,接收机主要依赖这些更长路径,测距结果因而容易偏大。

天线延迟属于链路内部相对固定的时延,可以通过固定参数补偿。NLOS 改变的是信号实际经过的传播路径。

如果为了补掉遮挡状态下的距离偏差,直接设置一个固定距离补偿,恢复视距后同一个补偿仍然存在,原本正常的距离就会被改错。

材料不同,UWB 信号的衰减和反射情况也不同。

NIST 1997 年的测试数据中,203 mm 混凝土在 6.515 GHz 下的衰减约为 54 dB,钢筋混凝土约为 63 dB。直射信号严重衰减后,接收机更容易依赖其他传播路径,测距也更容易出现正偏。

轻质隔墙和木板的影响相对较小。金属面对 UWB 信号的反射则很明显,直射路径被遮挡后,接收到的信号可能主要来自反射路径。

IEEE Access 2020 的一篇论文中,NLOS 场景的测距误差超过 300 mm,未校正平均误差约 214 mm,校正后降到约 58 mm。

人体也是常见的遮挡源。

IEEE Sensors Journal 2019 的一项实验比较了七种标签佩戴位置,额头位置的平均误差最低,约 20 cm,胸部位置表现最差。标签佩戴位置会直接影响人体对传播路径的遮挡程度。

现场部署时,下面几种情况需要特别注意:

  • 实体墙不能按正常视距场景处理;
  • 隔着拐角仍能测到距离时,信号可能来自反射路径,测量结果不能直接按视距精度判断;
  • 障碍物距离天线 1 m 以内时容易出现严重漂移;
  • 玻璃幕墙也会明显影响测量结果。

如果使用 SPI 直接访问 DW3000,还可以读取首径功率和峰径功率。

视距情况下,两者通常比较接近。首径功率与峰径功率的比值低于约 0.9 时,可以作为判断 NLOS 的一个参考。

需要使用这项判据时,可以通过 DW3000 的 SPI 直连方案读取 CIR 和相关诊断数据。

批量部署时,还要考虑天线延迟和温度

批量部署时,不同设备之间的天线延迟可能存在差异。

元件公差、PCB 材质和天线型号都会影响最终时延。

对一般应用,可以从规格书推荐值开始使用。对绝对距离精度要求更高的项目,再按实际设备逐台校准。

温差增大,达到约 20 ℃ 后,接收链路也可能需要重新校准。(Qorvo 用户手册里对 PLL 随温度变化重新校准的要求)

650 系列和 3000 系列的温度规格不同。用于冷库、室外或温差明显的环境时,选型和校准都需要结合对应型号的工作温度范围。

还要考虑时钟误差

DS-TWR 可以降低系统对单边应答时间的依赖,但不能把时钟相关误差完全消除。

残余误差与两次应答时长之差有关。应答时长控制在 10 ms 量级时,附加误差不超过约 2 cm。

用现有接口怎么排查测距问题

UWBRFAT+RANGING 可以返回距离和 RSSI。测距失败时,距离返回 -1,RSSI 返回 0.00。

+LOCATION 可以返回坐标、距离和 RSSI。

开启 +RXSHOWSRC=1 后,模块在收包时可以输出源地址和 RSSI。

串口接口可以直接读取 RSSI。排查时可以把 RSSI 和距离变化、遮挡情况一起看,确认距离异常是否在遮挡出现或信号变弱时发生。

可以调整的参数包括:

  • +ANTDELAY:0 到 65535,默认值 16400
  • +DISTOFFSET:±500 cm
  • +FLASH:保存参数到 Flash

TWR、TDoA 和 AoA 的原理及适用场景可以参考 UWB 测距原理:TWR、TDoA 与 AoA

不同产品对应的接口形式也不同。

650 和 650Pro 是贴片模块,内部由 DW3000、PA、MCU 和串口固件组成。653Pro 是 USB 直插成品。3000F00、F00-X1 和 F27 提供 DW3000 原生 SPI 接口。

650 系列通过 TTL-USB 转接连接 PC 上位机。3000FXX 评估板对应 F00 和 F27。

具体型号参数可以查看 UWB 产品页

串口方案适合常规测距和 RSSI 判断。需要进一步读取首径功率、CIR、前导码累加值等 DW3000 底层诊断数据时,可以使用 SPI 直连方案。

前面提到的首径功率与峰径功率判据也属于这一类底层诊断方法。

遇到“已经校准,但距离还是不准”时,可以继续从测量现象判断。

数值只是在真实距离附近上下跳,可以先做平均或滤波。

如果整体稳定地偏离真实距离,先检查天线延迟、基准距离和校准环境。

如果遮挡出现、距离改变或安装位置变化后,误差也明显跟着变化,就从传播路径和部署位置继续排查。

站内延伸阅读

参考资料