UWB室内定位选型与部署:精度来源、多径抑制与工程排障

市面上能拿来做室内定位的技术,两只手数不完:Wi-Fi 指纹、蓝牙信标、蓝牙到达角、无源 RFID、地磁匹配、超声波、视觉、激光雷达,还有一个这几年被问得最多的——UWB。我做过几个不同行业的定位项目,从厂房人员管理到叉车防撞,从训练场的数据采集到近场开锁,最后真正拍板选 UWB 的占了多数。但“更多人选择 UWB”这句话得说准确一点:不是所有人都在选它,而是那些把误差、刷新率、并发数量写进验收条款的项目,UWB 出现的概率明显高出一截。

这背后不是谁更时髦的问题。定位技术选型本质上是一道算术题加一道工程题:算术题算的是“我要的精度和容量,哪种物理机制给得起”;工程题算的是“在这栋楼、这批货架、这群人的实际环境里,哪种方案能稳住”。UWB 之所以在这两道题上都交得出答案,靠的是它那套看起来有点“反常识”的设计——用五百兆甚至上吉赫兹的带宽,去换一段纳秒级的脉冲;用极低的功率谱密度,把信号藏在噪声底下;用时间测量代替信号强度测量,从而绕开了 RSSI 那一整套靠“猜衰减”的方法。

这篇我想把 UWB 这件事从头拆一遍:它的精度到底从哪来、和蓝牙和 Wi-Fi 比到底差在哪、基站怎么摆、天线延迟怎么标、哪些场景上它划算、哪些场景纯属浪费钱。写给两类人看:一类是正在做定位方案选型、被各种供应商的 PPT 绕晕的;另一类是手上已经有套 UWB 设备,但精度死活跑不到标称值、正在怀疑人生的。

1. 一个仓储项目把蓝牙方案逼到墙角:精度需求到底怎么定

1.1 从“能看见人在哪”到“能分清在哪条通道”

我参与过一个仓储改造项目,原始需求写得很朴素:能看到人和叉车在哪个货位。第一版方案用的是蓝牙信标加 RSSI 加权质心,基站密度按覆盖走,单点成本低,施工也简单。上线之后问题来了:货架通道净宽 2.2 米,两侧各一排高位货架,蓝牙解出来的坐标在相邻两条通道之间来回跳,一个人明明在 A 通道,屏幕上显示在 B 通道,过两秒又跳回来。

这个案例说明一件很重要的事:需求方说的“精度”,和工程上要交付的“精度”,往往不是一个东西。客户不会说“我要 30 厘米”,他会说“我要知道他在这条通道而不是旁边那条”。这两句话翻译成技术指标,差别巨大:

业务描述换算出的技术指标说明
分清相邻通道横向误差 ≤ 1.1 米(通道宽一半),实际留余量取 ≤ 0.5 米误差有方向性,纵向宽松、横向严格
叉车防撞预警距离误差 ≤ 0.3 米,延迟 ≤ 200 ms延迟比精度更要命,晚 1 秒预警等于没有
人员考勤/区域统计区域判定正确率 ≥ 98%关心的是边界判断,不是坐标本身
货位级找货误差 ≤ 0.5 米且 z 轴能分层立体货架必须做三维,二维解算没法分层

看第二行和第四行就知道,两个需求对“精度”的定义完全不同。防撞要的是实时的距离准确性,找货要的是三维坐标的空间准确性。很多项目之所以最后落成一地鸡毛,不是设备不好,是需求阶段没把这层换算做掉,直接照着供应商的“厘米级定位”签了合同。

1.2 被忽略的三个隐性指标:刷新率、并发量、可用性

精度是明面上的指标,另外三个才是真正决定项目成败的。

刷新率决定了系统“跟不跟得上人”。一个人正常步行 1.2 m/s,如果标签更新率是 1 Hz,两次定位之间人已经走出去 1.2 米,轨迹看起来是一串跳跃的点。做防撞、做机器人避障,刷新率低于 10 Hz 基本没法用;做人员区域统计,1 Hz 绰绰有余。

并发量决定了系统能撑多大场面。蓝牙信标方案在这点上很占便宜,因为信标只管广播,标签只管收,理论上可以无限加人;UWB 的测距是双向交互,信道是共享资源,一个区域里几百个标签同时高频测距,时隙是要算的。这点我在后面第 6 章会专门算一笔账。

可用性最容易被忽略——指的是“遮挡发生时,系统是输出一个错误坐标,还是老老实实告诉你这里不可信”。前者对业务是灾难,因为运营人员没办法分辨屏幕上的点是真是假。UWB 在这方面有天然优势也有天然短板:优势是它能靠首径检测区分直射和反射,短板是遇到金属遮挡照样会给出偏大的距离值,而且偏得很“平滑”,看起来特别像真的。

2. UWB 精度不是玄学:纳秒计时、超宽带宽和那段“看不见的脉冲”

2.1 为什么 1 纳秒等于 30 厘米

把定位做准,本质是把时间测准。光在真空里 1 纳秒走 0.3 米,这个换算关系是所有基于时间的测距技术的命门:

  • 想要 1 米精度,时间测量精度得到 3.3 纳秒
  • 想要 10 厘米精度,时间测量精度得到 0.33 纳秒
  • 想要 1 厘米精度,得进到 33 皮秒

33 皮秒是什么概念?光在这段时间里只走了 1 厘米,而普通石英晶振的一个周期大概是几十纳秒。所以指望靠“数晶振周期”来测距是做不到厘米级的,必须靠测量脉冲到达的相位/边沿,也就是用相关器把接收信号和本地模板做互相关,找出峰值位置。

这里就引出了带宽的价值。UWB 用的脉冲极短,几百皮秒到两纳秒量级,频域上就摊开成几百兆甚至上吉赫兹的带宽。带宽越宽,互相关函数的峰越尖锐,时间估计的方差越小。业内有条经典的关系式描述距离分辨率:

$$\Delta d = \frac{c}{2B}$$

代入数字:B = 500 MHz 时,Δd = 0.3 米;B = 1.5 GHz 时,Δd = 0.1 米。注意这说的是分辨两个目标的能力,不是绝对精度,但它决定了下限——两个反射路径在时间上差不到这个量级,就会被糊成一坨,你根本分不清哪个是直射。

顺带说一句理论精度。在理想高斯噪声下,时延估计的克拉美罗界大致和 $1/(B\sqrt{SNR})$ 成正比。取 B = 500 MHz、信噪比 20 dB(线性 100),粗算出来的标准差在毫米量级。实测是几厘米,差的那一截来自硬件时基抖动、天线色散、多径残留和时钟同步误差——理论告诉你天花板在哪,工程告诉你地板在哪。

2.2 那份 -41.3 dBm/MHz 的功率预算,是 UWB 能落地的关键

UWB 的发射功率被限制在极低的功率谱密度上,常见的限值是 -41.3 dBm/MHz。乍一看这个数字很吓人,好像弱得没法用。算一下总功率就明白了:

$$P_{total} = -41.3 + 10\lg(500) = -41.3 + 27.0 = -14.3\ \text{dBm}$$

换算成毫瓦大概 37 微瓦。这个功率级别意味着 UWB 信号在频谱上看就是贴着噪底的一片“毛刺”,对同频段的其他系统干扰极小,所以它才能和 Wi-Fi 6E、卫星通信、微波链路共用 6~8 GHz 这一段。换句话说,UWB 不是靠“喊得响”取胜,是靠“听得清”取胜:功率低但带宽极宽,能量摊薄在很大的频段里,接收端用匹配滤波把这点能量重新聚合起来。

代价也在这里。带宽宽、功率低,意味着单个脉冲携带的能量小,有效通信距离受限,室内视距通常几十米,穿墙能力比想象中弱得多。一堵承重墙后面信号掉得很快,两堵墙基本就断了。这一点在方案阶段一定要说清楚,不然客户会拿“Wi-Fi 能穿三堵墙”来质疑你。

顺便算一下路损,心里有个数。自由空间路损公式:

$$PL = 20\lg d + 20\lg f - 147.55$$

取 f = 6.5 GHz、d = 10 米,得到 68.7 dB。加上人体遮挡、货架反射,实际链路预算还要再留 15~25 dB 的余量。这也是为什么基站布点不能只按“半径 50 米画个圆”来算。

2.3 单边、双边、TDOA:三种体制的取舍账

UWB 设备之间怎么“问距离”,主流有三条路,选错了会在项目后期付出很大代价。

单边双向测距(SS-TWR):A 发一个包,B 收到后等一小段时间回一个包,A 收到后根据往返时间减去 B 的处理时间算出飞行时间。问题出在 B 的处理时间是用 B 自己的时钟量的,A 的往返时间是用 A 的时钟量的,两个时钟存在偏差。误差大概是:

$$\varepsilon \approx \frac{T_{reply} \cdot \Delta e}{2}$$

假设回包延迟 300 微秒,两个时钟偏差 20 ppm,误差就是 3 纳秒,折合 0.9 米。这个量级足以毁掉整个方案。所以单边测距只适合对精度不敏感的场合。

双边双向测距(DS-TWR):多发一次,让两个时钟的偏差在公式里互相抵消,代价是空中交互从 3 次变 4 次(有的实现是 3 次消息的变形版本),空中时间翻倍,功耗和容量都受影响。精度要求高的场景,这是默认选项。

TDOA(到达时间差):标签只发一次,多个基站同时收,靠基站之间的时间差解算位置。标签侧功耗极低、容量大,非常适合几百上千张人员卡的场景。但它引入了新的成本:基站之间必须严格同步,要么拉同步线,要么用无线同步模块,要么靠 GNSS 授时。同步误差直接变成定位误差,1 纳秒的同步误差就是 30 厘米。

体制标签功耗单区容量典型精度额外成本适合谁
SS-TWR中中0.5~2 m无粗定位、防丢
DS-TWR高中低10~30 cm无高精度、防撞、数字钥匙
TDOA低高20~50 cm基站同步大规模人员/资产
PDOA(到达角+测距)中中15~30 cm天线阵列单基站覆盖、安装受限

选型时我一般先问两个问题:标签是电池供电还是取电?在线数量是几十还是几百?这两个答案基本就把体制钉死了。

3. 把 UWB 和蓝牙、Wi-Fi、RFID、视觉摆在一张表里比

3.1 主流定位技术的真实能力边界

网上的对比表很多,但大多把参数写成了理想值。下面这张表我按实际项目里见到的水平填,环境默认是“有货架、有人员走动、有金属反射”的室内场景:

技术典型精度刷新率标签成本单基站覆盖抗多径主要短板
Wi-Fi RSSI/指纹3~8 m1 Hz 以下零(复用手机)20~30 m弱需大量指纹采集,环境一变就漂
蓝牙信标 RSSI3~5 m1 Hz极低10~30 m弱信号强度受人体遮挡剧烈
蓝牙 AoA0.5~1.5 m1~10 Hz低10~20 m中角度误差随距离线性放大
无源 RFID区域级 / 1 m 级按需极低5~10 m弱基本只能做“在不在”,做不了连续轨迹
地磁 + 惯性2~5 m(会累积漂移)高零无基站—需要频繁校正,走远了就废
超声波/红外房间级低低5~8 m强(不穿墙)需要视距,人多就乱
视觉/激光 SLAM厘米级高高(算力+传感器)—中光照敏感、成本高、隐私顾虑
UWB10~30 cm10~100 Hz中20~50 m(视距)强成本、遮挡、需要布站

看这张表要抓重点:UWB 是唯一一个同时满足“亚米级精度 + 高刷新率 + 强抗多径”的技术。它不是在每一项上都最强——视觉的绝对精度可以更高,RFID 的成本低到没法比——但三项叠加起来,其他方案就很难接招了。

3.2 蓝牙 AoA 为什么没有全面替代 UWB

这是我这几年被问得最多的问题。蓝牙 5.1 之后支持到达角测量,标称精度也能到米级,芯片便宜、生态成熟、手机原生支持,听起来像是“性价比最优解”。但实际用下来,它有几个绕不开的物理限制。

最要命的一条是角度误差会随距离放大。到达角估计算的是信号入射方向,横向位置误差近似等于“距离 × 角度误差(弧度)”:

$$\Delta x \approx d \cdot \Delta\theta$$

距离 10 米、角度误差 5°(约 0.087 弧度),横向误差就是 0.87 米。距离拉到 20 米,误差接近 1.75 米。而 UWB 的距离误差基本不随距离线性增长,只随信噪比缓慢恶化。这个差异决定了蓝牙 AoA 在“远距离、宽视野”的场合天生吃亏。

第二条是阵列天线的工程复杂度。AoA 基站要用多天线阵列测相位差,天线之间的一致性和校准要求很高。金属货架、吊顶龙骨、成排的桥架都会让相位失真,标定一次不够,环境变了还得重标。相比之下 UWB 基站的安装宽容度高得多——它只要求你告诉它“你在哪”,不需要它“看得准”。

第三条是抗欺骗能力。蓝牙的到达角同样基于信号强度/相位,信号可以被放大转发,测出来的位置就跟着跑。而 UWB 的时间测量配合加密时间戳,能做到“距离不可伪造”,这是数字钥匙场景的硬需求。

3.3 那几十块钱的标签差价,到底该记在谁头上

选型会上最常见的争执就是成本。UWB 标签的硬件成本比蓝牙标签高出一截,甲方一看报价单就皱眉。但真正的账不能只算标签数量乘单价。

我一般会把总成本拆成这几块摆给对方:标签数量、基站数量、布线施工、调试标定、后期运维、以及定位不准造成的业务损失。前三项蓝牙确实便宜;后三项往往是 UWB 反超。举个具体的:某车间做叉车防撞,蓝牙方案解出来的位置抖动 ±3 米,为了不误报,告警阈值只能放到 5 米,等于形同虚设;换成 UWB 后误差 30 厘米,阈值收到 1.5 米,才真正起到预警作用。省下的那点标签钱,抵不上一次碰撞的损失。

提示:成本对比一定要把“基站密度”算进去。UWB 视距覆盖半径能到 40~50 米,蓝牙信标为了做定位通常要 10~15 米布一个。基站数量差三倍的时候,总账可能完全反过来。

4. UWB 真正的护城河:多径分离能力与“测距不可伪造”

4.1 30 厘米的分辨率,是怎么把反射径“切开”的

室内环境里的无线电传播从来不是一条直线。信号从标签出发,一条直达基站,另外几条打到地面、货架、天花板再折回来。窄带系统(蓝牙、Wi-Fi)的带宽只有几兆,时间分辨率是微秒量级,对应几百米的距离分辨——所有反射径和直射径在接收端糊成一坨矢量叠加,信号强度忽高忽低,这就是 RSSI 定位抖动的根源。

UWB 的脉冲只有一两纳秒宽,500 MHz 带宽给出的距离分辨率是 30 厘米。这意味着什么?意味着直射径和反射径在时间轴上能拉开 30 厘米以上的间隔时,接收端就能把它们当成两个独立的峰,然后挑第一个峰作为真实距离。这个能力叫首径检测,是整个 UWB 定位精度的物理基础。

我之前在一个钢结构的厂房里做过对比测试:同一个位置,蓝牙 RSSI 在 1 分钟内波动接近 8 dB,折算成距离误差超过 6 米;同一位置的 UWB 原始测距值,标准差只有 3 厘米,偶尔出现的离群点都能在数据里一眼看出来并剔除。这种“数据本身干净”的价值,做算法的人最懂——你后面所有的滤波、融合、平滑,都是在跟噪声搏斗,前端噪声小一个量级,后端能省掉一个月的调参。

4.2 加密时间戳带来的副产品:从车门到支付

UWB 在近场交互领域火起来,靠的不只是精度,还有一项窄带技术很难做到的能力:安全测距。

原理不复杂。标准的测距报文里,脉冲的位置是随机化的,接收方必须知道一串只有双方共享的伪随机序列,才能把脉冲对上、把时间戳解出来。攻击者如果只是简单放大转发信号,转发过程引入的额外延迟会被测出来——因为测出来的距离会明显大于真实距离。而如果攻击者想伪造一个“更近”的距离,就必须在不知道密钥的情况下提前构造脉冲,做不到。

这一条在近场开锁场景里是刚需。用信号强度判断“设备在不在三米内”的方案,可以被一个放大器轻松骗过:把车边的信号放大转发到十米外,车以为钥匙就在旁边,门就开了。基于时间测量的方案没有这个漏洞,因为距离是由光速和时间戳共同决定的,你没法让信号跑得比光速快。

我在做类似方案时踩过一个坑:早期版本只做了测距,没做双向认证,结果被安全评审打回来,理由是“距离可信不代表设备可信”。后来改成测距+挑战应答绑定,才算闭环。这个经验对做门禁、支付、设备配对的人都适用——安全测距解决的是“距离真实性”,不是“身份真实性”,两者必须叠加。

4.3 非视距依然会让 UWB 翻车

说了这么多优点,必须把短板说透。UWB 最怕的场景是完全非视距:标签和基站之间隔着一堵混凝土墙、一片金属货架、或者一个站着不动的人。

非视距造成的误差有个特点:几乎总是正偏差。因为信号绕路或者穿透介质,走的路程永远比直线长,测出来的距离永远比真实距离大。这跟窄带系统的随机抖动不一样,它是有系统性方向的,而且很“稳定”——连续几十个测量值都偏大 1.5 米,滤波算法压不住,因为它看起来像真值。

缓解手段有几条,我在项目里都用过:

  • 冗余基站:任何一个位置至少能看到 4 个以上基站,用残差检验剔除被遮挡的那个。这是最有效也最贵的一招。
  • 信道冲激响应特征:首径功率和总接收功率的比值、首径上升沿的斜率,都能作为非视距的判据。很多芯片会直接给出首径功率指标,拿来用就行。
  • 自适应卡尔曼滤波:把观测噪声矩阵 R 设成随非视距置信度动态变化,被判定为非视距的观测直接降权甚至丢弃。
  • 物理上避开:这条最土但最有效。基站装在货架通道的端头而不是货架背后,标签尽量戴在肩部而不是腰部贴身。

5. 部署实测:基站怎么摆、天线延迟怎么标、坐标系怎么对齐

5.1 布站几何:GDOP 比“覆盖半径”重要得多

新手布站最容易犯的错是照着覆盖半径画圆,结果基站全排成一条直线。UWB 的定位解算是基于距离交会的,几何构型直接决定了误差放大倍数,这个放大倍数就是 GDOP(几何精度因子)。

几条我在现场反复验证过的经验:

  • 高度:室内吊装一般 2.5~3.5 米。太低了标签和基站容易被人挡住,太高了垂直方向的几何变差,z 轴精度会崩。
  • 不要共线:三个基站排成一条直线时,标签在直线延长线附近的解是发散的。宁可牺牲一点覆盖,也要保证每个工作区域至少被一个“三角形”包住。
  • 间距:视距条件下,基站间距控制在 20~35 米比较稳。密一点精度好但成本高,稀一点边缘区域就开始抖。
  • 重叠:相邻覆盖区至少要有 1.5 倍的重叠,标签在移动过程中才不会在切换时丢点。
  • 避金属:远离大面积金属板、桥架、通风管道。实在躲不开,让基站的法线方向斜着穿过通道,别和货架面平行。

二维定位(只关心平面坐标)最少三站可见,三维定位最少四站,而且要保证这四站不共面。立体货架的场景我一般建议按 3D 布,宁可多花两个基站的钱,也别指望用二维解算加人工分层——分层逻辑写起来是无底洞。

5.2 天线延迟标定:那二三十厘米的系统误差从哪来

所有 UWB 设备都有一个出厂参数叫天线延迟,指的是信号从芯片引脚到天线辐射出去(以及反向)所花的时间。这个延迟会直接叠加到测距结果上,1 纳秒就是 30 厘米。不同批次、不同天线、不同外壳的基站,这个值都不一样。

混用不同批次基站而不标定,是我见过最多的“精度不达标”原因。症状很典型:所有测出来的距离都整体偏大或偏小一个固定值,而且不同基站偏的量还不一样,导致解算出来的坐标整体偏移、旋转。

标定流程我用的是这套:

  1. 找一块开阔场地(室外停车场就行),避开金属和地面强反射。
  2. 把基站按实际安装高度架好,标签放在三脚架上,天线朝向和实际佩戴姿态一致。
  3. 在 1 米、3 米、5 米、10 米、15 米五个距离点,每个点采集不少于 200 组原始测距值,取中位数(不要取平均,离群点会拉偏)。
  4. 用最小二乘拟合“实测距离 = 真实距离 + 偏移”,得到每个基站的偏移量。
  5. 如果偏移量随距离有明显斜率,说明存在时钟比例误差,要同时拟合比例因子。

这里有个细节:标定时标签的高度和姿态要跟实际使用一致。人体本身就是个介质,标签贴在胸前和举在手上,测出来的距离能差十几厘米。我在一个项目里就是因为标定时把标签放在桌上、实际佩戴在胸前,导致上线后系统整体偏差 15 厘米,查了两天才定位到原因。

5.3 坐标系对齐:为什么你的轨迹整体旋转了 5 度

UWB 系统输出的坐标是它自己定义的一套坐标系,和建筑图纸的坐标系不是一回事。对齐这一步做不好,会出现“所有点位整体平移”或者“整体旋转”的现象。

标准做法是:在场地里选 4 个以上分布均匀、通视良好的基准点,用全站仪或者激光测距仪测出它们的真实坐标,然后让标签依次放在这些点上采集 UWB 坐标,用最小二乘求解一个刚体变换(旋转矩阵 + 平移向量)。残差控制在 2 厘米以内算合格,超过 5 厘米说明基准点选得不好或者有非视距干扰。

验收的时候我坚持用两个指标,而不是一个:

  • 平均误差:看着漂亮但会掩盖问题,一个 3 米的野点能把平均值带偏,也能被大量好点稀释掉。
  • 95 分位误差:这个才是业务实际感受到的。我一般要求 95 分位误差不超过标称精度的 1.5 倍。

测试路径也有讲究。别只在一个点上站着测,要按地面画的 1 米网格走“井”字,把通道中间、拐角、货架端头、门口这些位置全走到。UWB 的精度在开阔中心区最好,在边角和遮挡区最差,只测中心区等于自欺欺人。

5.4 从原始测距到稳定坐标的一条数据链

硬件给的是原始距离,业务要的是平滑坐标,中间这条链子得自己搭。我常用的一套处理流程大致是这样:

import numpy as np def robust_position(anchors, ranges, last_pos=None, k=1.5): """ anchors: Nx3 基站坐标 ranges: N 维测距值 返回: 位置估计 + 参与解算的基站索引 """ # 1. 粗解:加权最小二乘 def residual(p): d = np.linalg.norm(anchors - p, axis=1) return d - ranges from scipy.optimize import least_squares res = least_squares(residual, x0=last_pos if last_pos is not None else anchors.mean(0)) p0 = res.x r0 = residual(p0) # 2. 残差检验:剔除偏离过大的基站(NLOS 判据之一) mad = np.median(np.abs(r0 - np.median(r0))) + 1e-6 mask = np.abs(r0) < k * 1.4826 * mad if mask.sum() >= 4: res2 = least_squares(lambda p: residual(p)[mask], x0=p0) p0 = res2.x # 3. 卡尔曼滤波平滑(简化版,实际按需扩展状态维度) if last_pos is not None: p0 = 0.7 * p0 + 0.3 * last_pos return p0, np.where(mask)[0]

这段代码里有两个关键点值得说。第一,残差检验的阈值用中位数绝对偏差(MAD)而不是标准差,因为标准差本身会被野点污染,MAD 稳健得多。第二,滤波不要过度:很多项目为了让轨迹“好看”,把平滑系数调到 0.1,结果人已经拐弯了,屏幕上的点还在直线上滑行。防撞、机器人避障这类场景,宁可抖一点也不能延迟。

6. 六个真实问题的排查链路

6.1 标签靠近金属货架时距离突然多出 2 米

现象:叉车开到某排货架端头,定位点突然跳到货架另一侧。

排查链路:先把原始测距值打出来看(不要看解算后的坐标,坐标会把问题糊掉)。发现某个基站的测距值在这个位置稳定偏大 1.8~2.2 米,其他三个基站正常。判断为非视距。现场核实,该基站与货架端头之间正好有一根钢立柱,叉车经过时标签与基站之间被完全遮挡。

处理:把该基站沿墙面平移 1.5 米避开立柱,同时在解算里启用残差剔除。这个案例的教训是——布站前一定要拿着建筑图纸和现场照片做一次视线检查,尤其是钢结构厂房,立柱、行车梁、管道都是隐形杀手。

6.2 电池电压掉到 3.0 V 以下后定位断续

现象:标签用了一周之后开始间歇性丢失,换新电池立刻恢复。

排查链路:查标签的发射功率和电压关系。很多低功耗标签用 DC-DC 升压,电压降到某个阈值以下时,脉冲的峰值功率会下降,链路预算变紧,边缘基站的测距就开始丢包。同时,低电量时固件往往会自动降低刷新率以延长续航,进一步加剧“看起来丢了”的观感。

处理:把低电量告警阈值从 2.8 V 提到 3.0 V;在解算端对“某标签突然只剩两个基站可见”的情况做特殊标记,不要直接输出低置信度坐标。运维层面上,标签电量必须能在管理后台看到,别指望现场人员主动换电池。

6.3 两个基站编号搞反,导致整片区域坐标整体旋转

现象:系统上线后,所有轨迹相对真实位置整体旋转了大约 20 度,但相对关系是对的。

排查链路:这种现象几乎百分之百是坐标标定或者基站安装位置录入错误。核对后台录入的基站坐标和现场实测坐标,发现有两个基站的位置填反了。因为这两个基站在对角位置,填反之后整个解算几何被镜像加旋转。

处理:重新录入并复测。后来我养成了一个习惯:每个基站贴一张带编号的标签,安装完拍照存档,录入坐标时对着照片核。这个动作花不了十分钟,能省掉一整天的返工。

6.4 固件版本不一致,时间戳单位悄悄变了

现象:新采购的一批基站混进原有网络后,测距值系统性地差一个倍数关系,约 0.5 倍。

排查链路:抓原始报文看时间戳字段。老固件的时间戳单位是 1 微秒,新固件改成了 0.5 微秒且没有改版本号里的兼容标志。上层解算按老单位换算,距离就整体缩了一半。

处理:统一固件版本,并且在接入层加一个“单位自检”逻辑——用两个已知距离的基站做交叉验证,测出来的距离和录入坐标算出来的距离差超过阈值就报警。多批次设备混用是定位项目里最隐蔽的坑之一,能统一批次就统一批次。

6.5 人员密集时的容量瓶颈

现象:车间里 50 人以下时一切正常,超过 80 人后开始随机丢点,刷新率肉眼可见地下降。

排查链路:算信道占用。DS-TWR 一次完整测距要 4 个报文,单报文空中时间按 200 微秒估(含前导码),一次测距约 0.8 毫秒;一个标签要跟 4 个基站测距,就是 3.2 毫秒;10 Hz 刷新率下,单个标签每秒占用 32 毫秒。80 个标签就是 2.56 秒——已经超过 1 秒的信道容量了,必然要排队。

处理:三个方向。一是改用 TDOA 体制,标签只发不收,容量能提一个数量级;二是降刷新率,人员定位 2 Hz 完全够用;三是做分区,把大区域切成几个子网,不同子网用不同信道。实际项目里我一般是二和三组合用,改造成本最低。

6.6 高度方向(z 轴)精度明显差于平面

现象:平面误差 20 厘米,高度误差能到 1 米以上。

排查链路:看基站高度分布。现场所有基站都装在同一个标高 3 米,几乎共面。共面布站时,z 方向的几何约束极弱,GDOP 在垂直方向非常大,微小的测距误差会被放大成很大的高度误差。

处理:如果业务只需要平面坐标,直接锁定 z 值做二维解算,别让算法去猜;如果确实要分层(立体货架、多层厂房),必须让基站有高低差,比如部分装在 2.5 米、部分装到 4.5 米,制造垂直方向的基线。这一条在方案阶段不提,后期基本没法补救。

7. 什么场景该上 UWB,什么场景别硬上

7.1 值得上 UWB 的四类典型场景

第一类:安全相关的距离判断。叉车防撞、人车分离、危险区域闯入、施工机械与人员的最小间距告警。这类场景的共同点是误报和漏报都要付代价,精度不够就等于没做。

第二类:近场身份与距离绑定。设备靠近自动解锁、靠近自动配对、区域权限控制。这类场景对“距离不可伪造”的要求高于对精度的要求,UWB 的安全测距能力是核心卖点。

第三类:高刷新率的运动追踪。体育训练里的跑动轨迹和姿态分析、机器人室内导航、AGV 调度、VR/AR 手柄与头显的六自由度追踪。这些场景对延迟极其敏感,几十毫秒的滞后就会让体验崩掉。

第四类:复杂多径环境下的资产管理。金属密集的车间、立体仓库、医院设备管理。这些地方窄带方案基本没法用,UWB 的抗多径能力是刚需。

7.2 不建议硬上 UWB 的场景

只需要房间级判断的。比如“这个人在会议室还是在工位”,蓝牙信标或者 Wi-Fi 关联信息完全够用,误差三五米无所谓,成本差一个数量级。

大规模、低价值、长周期的资产标签。几千上万个托盘、周转箱,用无源 RFID 更划算。UWB 标签要供电、要维护、要换电池,规模一上去运维成本是灾难。

室外广域场景。室外有卫星定位,虽然精度只有几米,但覆盖是免费的。UWB 在室外要做广域覆盖,基站和供电的成本根本不现实,除非是小范围的室外作业区(比如装卸货场)。

对成本极度敏感、精度只要“差不多”的场景。如果业务方能接受 2~3 米误差,那选蓝牙就是对的,没必要为用不上的精度付钱。技术选型最忌讳的就是“用最好的”,合适比先进重要。

7.3 一张可以拿去开会的选型决策表

判断维度倾向 UWB倾向其他方案
精度要求≤ 0.5 m≥ 2 m(选蓝牙/Wi-Fi)
刷新率要求≥ 5 Hz≤ 1 Hz
环境金属密集、多径严重开阔、无遮挡
安全要求需要防中继/防欺骗无特殊要求
标签规模几十到几百几千以上(选 RFID)
供电条件可换电池或取电必须无源
预算可接受基站+施工投入只接受标签成本

这张表不要单独用,要结合前面第 1 章那套“业务需求换算”。我一般的做法是先按表做个初筛,然后一定要做 POC——在真实场地上,用真实标签数量,跑真实业务路径,至少连续跑 72 小时。POC 阶段暴露出来的问题,改起来只要几天;上线之后再发现,改起来就是几个月。

我个人在这些项目里最深的一条体会是:UWB 卖给你的从来不是那个“10 厘米”的数字,而是在恶劣环境里依然可解释、可验证、可追溯的定位能力。当系统输出的每一个坐标都能回溯到具体的测距值和基站组合时,问题排查才有抓手,方案才敢往生产环境里放。反过来说,如果一个方案只能告诉你“结果是准的”,却说不清为什么准,那它在真实现场迟早会给你惊喜。