UWB自动跟随的算法优化与功耗管理
今天我们从定位算法到功耗策略,一次性掰开揉碎。
一、为什么功耗问题比你想的更严重?
UWB芯片(比如 DW1000/DW3000系列)在主动测距时的功耗可以达到100 mA 级别。这对一台要全天运行的跟随机器人来说,是个不小的负担。尤其是:
- IMU、MCU、通信模块一起耗电;
- 小型消费电子(智能行李箱、跟随购物车)电池容量有限;
- 用户期望一次充电用一整天。
所以,算法必须不仅精准,还得“省着用”UWB。
二、算法优化的核心思路
定位算法的优化可以分成两类:
- 提升精度(在复杂环境下保持厘米级定位)
- 降低计算量和功耗(在不牺牲精度的前提下减少测距次数)
1. 提升精度:TOF / TDOA / PDOA 的融合
UWB定位的三种常见算法:
- TOF(Time of Flight,飞行时间法)
测距公式:

其中c是光速,trx是接收时间戳,ttx是发送时间戳。
优点:直观易算
缺点:时间同步要求高,对时钟漂移敏感。
- TDOA(Time Difference of Arrival,到达时间差法)
对两个基站A、B,有:

再利用双曲线定位公式解出位置。
优点:标签端功耗低(不必参与双向通信)
缺点:基站间需要精确同步(通常用光纤或无线同步)
- PDOA(Phase Difference of Arrival,相位差法)
通过比较两个天线接收到的载波相位差:
其中λ为载波波长,θ 为入射角。
优点:可以实现角度测量(AOA)
缺点:相位容易受多径和噪声干扰。
实际经验:
在室内复杂场景(比如超市货架区),单一算法很容易翻车——多径干扰导致TOF抖动大、TDOA同步失准、PDOA相位跳变。
所以我们更建议使用融合算法:
- 常规用TDOA 进行低功耗位置估计;
- 检测到信号质量下降时,切换到TOF+PDOA修正。
2. 降低计算量与功耗
下面是我们的几个项目经验:
(1)自适应测距频率
当IMU检测到目标和机器人相对速度很低时(比如用户停下来),将测距频率从 20 Hz 降到 2 Hz。
当加速度超过阈值时,立即恢复高频测距。
(2)运动预测 + 滑动窗口滤波
使用卡尔曼滤波或扩展卡尔曼滤波(EKF),将IMU、UWB 融合,预测目标位置:
这样即使UWB测距间隔变大,也能平滑轨迹。
(3)测距分组管理
如果有多天线/多基站布局,不必每次都全量测距,可以用上次结果筛选出最可能的位置区域,只测与该区域相关的基站。
三、功耗管理的硬核手段
硬件级功耗优化常被忽视,但效果往往比算法优化更直接。
1. 低功耗模式切换
DW1000/DW3000 等芯片有睡眠模式和空闲模式,合理利用可以降低数十 mA 的待机功耗。
2. 硬件唤醒
结合PIR传感器或蓝牙RSSI,当检测到用户接近时才唤醒UWB。
3. 射频输出功率动态调节
UWB发射功率越高,覆盖越远,但功耗也成倍增加。对于近距离(<5m)跟随,可以把功率降低 6~9 dB,延长续航。
四、项目案例
案例1:在超市环境里测试,发现UWB标签每隔几十秒位置就会跳到十米开外。原因是货架金属反射导致PDOA角度计算出错。解决办法是加上信号质量门限,低于门限时不更新位置。
案例2:一个智能行李箱项目在机场跑没问题,但在地铁站掉链子。原因是地铁站的UWB信号噪声背景高、时钟同步失效,精度崩溃。最后改成 TOF+PDOA+IMU 备用通道才救回来。
五、总结
UWB自动跟随要想做到既精准又省电,需要在算法和硬件两端同时下功夫:
- 融合TOF、TDOA、PDOA,提高鲁棒性;
- 自适应测距频率、运动预测滤波降低计算量;
- 合理利用低功耗模式、动态功率调节延长续航。