UWB | 原理 / 应用 / 算法
注:本文为 “UWB ” 相关合辑。
图片清晰度受引文原图所限。
略作重排,如有内容异常,请看原文。
UWB 的主要作用与应用领域
酷酷的boy 于 2021-04-18 22:13:18 发布
前言
一、UWB 是什么?
UWB 技术是一种使用 1 GHz 以上频率带宽的无线载波通信技术,利用纳秒至微微秒级的非正弦波窄脉冲传输数据。由于脉冲时间宽度极短,因此可以实现频谱上的超宽带:使用的带宽在 500 MHz 以上。
其优点包括:穿透力强、功耗低、抗多径效果好、安全性高、系统复杂度低、能提供精确定位精度。
二、应用领域
- 工业/汽车:实时追踪资产和库存,改进流程,提高搜索效率,减少资源浪费。
- 物流仓储:跟踪条码阅读器和叉车,减少保险检查的环节,使仓储管理变得灵活。
- 军事:人员定位和设备追踪,例如城市作战训练、弹药仓库管理、高级研发。
- 医疗保健:实时跟踪病人,进行照顾和管理,利于病情分析和治疗改进,方便人力资源管理。
- 危险环境:定位个人和资源,安全位置紧急搜索,人员监控,优化管理过程,做到安全有效;例如煤矿。
- 重点安保区域:人员的进出管理、实时位置查询、禁区监管、隔离距离控制、人员调度,能对人员的位置、行进路线、距离、速度进行监控和统计。
- 体育:实时跟踪与计算运动员的方向和速度等,进行详细的性能分析,记录队伍的比赛实况,视频集成。
三、优缺点对比
定位技术 | 硬件部署 | 定位精度 | 抗干扰 | 功耗 |
---|---|---|---|---|
WIFI | 无 | 5-15米 | 弱 | 高 |
蓝牙 | 大量 | 5-10米 | 弱 | 低 |
RFID | 大量 | 3-5米 | 弱 | 低 |
ZIGBEE | 大量 | 3-5米 | 中等 | 低 |
UWB | 大量 | 10-30厘米 | 强 | 低 |
室内定位技术 | 优点 | 缺点 |
---|---|---|
超声波定位技术 | 精度较高,结构简单。 | 受多径效应和非视距传播影响很大,同时需要大量的底层硬件设施投资,成本太高。 |
蓝牙定位技术/iBeacon | 设备体积小、易于集成,容易推广普及。标识的体积比较小,造价比较低。 | 对于复杂的空间环境,蓝牙系统的稳定性稍差,受噪声信号干扰大。作用距离近,不具有通信能力,而且不便于整合到其他系统之中。 |
UWB 超带宽技术 | 穿透力强、功耗低、抗多径效果好、安全性高、系统复杂度低、能提供精确定位精度。 | 遇到遮挡物、金属等会有一定影响,价格略贵,离大规模生产仍有一段距离。 |
SLAM 技术 | 在自身位置不确定的条件下,在完全未知环境中创建地图,同时利用地图进行自主定位和导航。 | 图像数据量巨大,设备价格非常贵,适合研究,不适合量产。 |
四、影响因素
- 实体墙:一堵实体墙的遮挡将使得 UWB 信号衰减 60% - 70%,定位精度误差上升约 30 厘米;两堵或两堵以上的实体墙遮挡,将使得 UWB 无法定位。
- 钢板:钢铁对 UWB 脉冲信号吸收很严重,将使得 UWB 无法定位。
- 玻璃:玻璃遮挡对 UWB 定位精度有较大影响。
- 木板或纸板:一般厚度约 10 厘米的木板或纸板对 UWB 定位精度影响不大。
- 电线杆或树木:电线杆或树木遮挡时,需看其与基站或标签的距离,以及基站和标签的相对距离是否很小。例如,基站和定位标签距离 50 米,电线杆或树木正好在两者中间(25 米处),这种遮挡影响不大;若离基站或标签距离很近(小于 1 米),影响则很大。
五、发展前景
在物联网行业,室内定位是极为重要的组成部分之一。UWB 定位系统因具有高精度、高动态、高容量、低功耗等优点,被广泛应用。据市场调研机构 Market & Market 预测,全球室内定位市场规模将由 2017 年的 71.1 亿美元增长到 2022 年的 409.9 亿美元,并将保持 42%的复合增长率。据恒高科技统计,2018 年上半年较 2017 年下半年,恒高科技 UWB 定位系统的市场增量为 500%以上。因此,UWB 定位行业正处于快速发展时期。
在 2002 年以前,UWB 主要用于军事领域。2002 年,美国联邦通信委员会(FCC)对 UWB 做了严格的功率限制,将其解禁,准许进入民用领域。此后,UWB 技术进入高速发展期,各种技术方案围绕 UWB 国际标准的制定展开了激烈竞争。2007 年,IEEE 在 802.15.4a 标准中对 UWB 技术进行了标准化。经过近十年的发展,UWB 的标准也在不断完善。
发展前景良好。
UWB 模块的基本操作
酷酷的boy 于 2021-04-18 22:57:37 发布
前言
一、UWB Mini 3s 模块介绍
UWB Mini 3s 模块采用 STM32F103T8U6 单片机为主控芯片,外围电路包括 DW1000 芯片、电源模块、LED 指示模块、复位电路等。该模块既可以作为基站,也可以作为标签,通过 USB 指令进行切换。
二、支持频段与专业术语
UWB 发射功率比 WIFI 小,通常不会对人体造成伤害。根据 DW1000 数据手册,目前在中国可使用的信道仅为 Channel 5 和 Channel 7。
三、使用方式
1. ANCHOR 与 TAG 的模式配置
模式配置在出厂时已设置好,如无特殊情况,无需变更,模块到手即可测试。
2. 设置方式
将 Mini3s 通过 USB 线连接到电脑,打开串口调试助手 XCOM 软件,发送命令,结尾需加回车换行。例如:
- 将模块设置为基站,传输速率为 110 kbps,通道 2,地址为 3,应发送
AT+SW=10010110
。 - 将模块设置为标签,传输速率为 6.8 Mbps,通道 5,地址为 7,应发送
AT+SW=11101110
。
注意:基站的地址只能是 0、1、2、3,暂不支持超过 4 个基站;默认速率为 110 kbps,信道 2;在一套系统中,基站和标签的传输速率、频段应保持一致。
3. 设置方式模块默认配置指令
模块 | 指令 | 模块 | 指令 | 模块 | 指令 |
---|---|---|---|---|---|
基站 A0 | AT+SW=10010000 | 标签 T0 | AT+SW=10000000 | 标签 T4 | AT+SW=10001000 |
基站 A1 | AT+SW=10010010 | 标签 T1 | AT+SW=10000010 | 标签 T5 | AT+SW=10001010 |
基站 A2 | AT+SW=10010100 | 标签 T2 | AT+SW=10000100 | 标签 T6 | AT+SW=10001100 |
基站 A3 | AT+SW=10010110 | 标签 T3 | AT+SW=10000110 | 标签 T7 | AT+SW=10001110 |
串口烧录 AT 指令:
4. 产品摆放注意事项
基站和标签的摆放直接影响测距的准确性,进而影响定位的准确度与精确度。以下是几种常见的摆放错误:
- 将模块放在金属附近。无论是内置陶瓷天线还是外置棒状天线,遇到金属时,天线信号会被金属直接吸收。
- 将模块平放在桌面、黏在墙壁或手拿住天线,会影响 UWB 天线的波束,且可能造成一定的多径效应。
正确的安装方式如下图所示:
四、玩法
玩法 1:室内 2D 定位(3 基站 + 1 标签测试)
玩法 2:室内 3D 定位(4 基站 + 多标签测试)
例如,下面的上位机:
五、PC 上位机通讯数据格式
其中,1、2、3、4 为基站,其余为两标签的运动轨迹。
UWB 的定位算法(简单详细易懂)
酷酷的boy 于 2021-04-19 23:53:37 发布
前言
一、控制部分
二、UWB 的测距原理
双向飞行时间法(TW-TOF, two way-time of flight):每个模块从启动开始即会生成一条独立的时间戳。模块 A 的发射机在其时间戳上的 Ta1T_{a1}Ta1 时刻发射请求性质的脉冲信号,模块 B 在 Tb2T_{b2}Tb2 时刻发射一个响应性质的信号,被模块 A 在自己的时间戳 Ta2T_{a2}Ta2 时刻接收。由此可以计算出脉冲信号在两个模块之间的飞行时间,从而确定飞行距离 SSS。计算公式为:
S=C×[(Ta2−Ta1)−(Tb2−Tb1)]2S = \frac{C \times [(T_{a2} - T_{a1}) - (T_{b2} - T_{b1})]}{2} S=2C×[(Ta2−Ta1)−(Tb2−Tb1)]
其中,CCC 为光速。
图示:
UWB 定位的原理如下:
- 距离 = 光速 × 时间差 / 2;
- 在 XYXYXY 平面内,3 个圆可以确定一个点;
- 在 XYZXYZXYZ 空间中,4 个圆可以确定一个空间点。
三、TOF 数学计算
T1T_1T1 - T6T_6T6 会在下一节代码中标注出来,官方提供的代码主要使用此类算法。
四、Trilateration 三边测量法的原理与计算方法 (TDOA 平面)
三边测量法的原理如右图所示,以三个节点 A、B、C 为圆心作圆,坐标分别为 (Xa,Ya)(X_a, Y_a)(Xa,Ya)、(Xb,Yb)(X_b, Y_b)(Xb,Yb)、(Xc,Yc)(X_c, Y_c)(Xc,Yc),这三个圆周相交于一点 D,交点 D 即为移动节点,A、B、C 即为参考节点,A、B、C 与交点 D 的距离分别为 dad_ada、dbd_bdb、dcd_cdc。假设交点 D 的坐标为 (X,Y)(X, Y)(X,Y)。
计算公式为:
{(X−Xa)2+(Y−Ya)2=da(X−Xb)2+(Y−Yb)2=db(X−Xc)2+(Y−Yc)2=dc\begin{cases} \sqrt{(X - X_a)^2 + (Y - Y_a)^2} = d_a \\ \sqrt{(X - X_b)^2 + (Y - Y_b)^2} = d_b \\ \sqrt{(X - X_c)^2 + (Y - Y_c)^2} = d_c \end{cases} ⎩⎨⎧(X−Xa)2+(Y−Ya)2=da(X−Xb)2+(Y−Yb)2=db(X−Xc)2+(Y−Yc)2=dc
如图所示:
可以得到交点 D 的坐标为:
(XY)=(2(Xa−Xc)2(Ya−Yc)2(Xb−Xc)2(Yb−Yc))−1(Xa2−Xc2+Ya2−Yc2+dc2−da2Xb2−Xc2+Yb2−Yc2+dc2−db2)\begin{pmatrix}X \\Y\end{pmatrix}=\begin{pmatrix}2(X_a - X_c) & 2(Y_a - Y_c) \\2(X_b - X_c) & 2(Y_b - Y_c)\end{pmatrix}^{-1}\begin{pmatrix}X_a^2 - X_c^2 + Y_a^2 - Y_c^2 + d_c^2 - d_a^2 \\X_b^2 - X_c^2 + Y_b^2 - Y_c^2 + d_c^2 - d_b^2\end{pmatrix}(XY)=(2(Xa−Xc)2(Xb−Xc)2(Ya−Yc)2(Yb−Yc))−1(Xa2−Xc2+Ya2−Yc2+dc2−da2Xb2−Xc2+Yb2−Yc2+dc2−db2)
1. 三边测量法的缺陷
由于各个节点的硬件和功耗不尽相同,所测出的距离不可能是理想值,从而导致上面的三个圆未必刚好交于一点。在实际中,三个圆会相交于一个小区域,因此利用此方法计算出来的 (X,Y)(X, Y)(X,Y) 坐标值存在一定的误差。这就需要通过一定的算法来估计一个相对理想的位置,作为当前移动节点坐标的最优解。
2. Z 轴准确度比 X 轴、Y 轴差一些
如图所示,A0A_0A0、A1A_1A1、A2A_2A2 为 3 个基站,T0T_0T0 为标签,LA0T0LA_0T_0LA0T0、LA1T0LA_1T_0LA1T0、LA2T0LA_2T_0LA2T0 表示每个基站到标签的距离。在测距完全准确的情况下,解算的 Tag 坐标应该在 T0T_0T0,但实际测量值 LA0T0LA_0T_0LA0T0、LA1T0LA_1T_0LA1T0、LA2T0LA_2T_0LA2T0 可能偏大,解算的位置在 T0′T_0'T0′。因为 A0A_0A0、A1A_1A1、A2A_2A2 都在 xoy 平面,所以测距的误差绝大多数会累加到 z 轴上,造成 z 轴数据的抖动。
五、TDOA(3D 空间)
-
概念
到达时间差(Time Difference of Arrival,TDOA)是一种利用到达时间差进行定位的方法,又称为双曲线定位。标签卡对外发送一次 UWB 信号,在标签无线覆盖范围内的所有基站都会收到无线信号。如果有两个已知坐标点的基站收到信号,标签距离两个基站的间隔不同,那么这两个基站收到信号的时间点是不一样的。
-
举例
例如,小明的妈妈在村口喊“小明,回家吃饭啦!”。
根据距离 = 时间 × 速度,其中速度不变(声音在空气中的传播速度是 340 m/s),那么声音传播的时间是由距离决定的,因此村里的人听到小明妈妈声音的时间点是不一样的。同理,标签与不同基站的距离不同,不同基站收到同一标签信号的时间节点不同,因此得出一个“到达时间差”的概念。TDOA 定位的原理正是利用多个基站接收到信号的时间差来确定标签的位置。
-
图解
di12=r1−r2=(t1−t2)×cdi23=r2−r3=(t2−t3)×cdi34=r3−r4=(t3−t4)×cdi14=r1−r4=(t1−t4)×c\begin{align*} d_{i12} &= r_1 - r_2 = (t_1 - t_2) \times c \\ d_{i23} &= r_2 - r_3 = (t_2 - t_3) \times c \\ d_{i34} &= r_3 - r_4 = (t_3 - t_4) \times c \\ d_{i14} &= r_1 - r_4 = (t_1 - t_4) \times c \\ \end{align*} di12di23di34di14=r1−r2=(t1−t2)×c=r2−r3=(t2−t3)×c=r3−r4=(t3−t4)×c=r1−r4=(t1−t4)×c{di12=(x1−xi)2+(y1−yi)2+(z1−zi)2−(x2−xi)2+(y2−yi)2+(z2−zi)2di23=(x2−xi)2+(y2−yi)2+(z2−zi)2−(x3−xi)2+(y3−yi)2+(z3−zi)2di34=(x3−xi)2+(y3−yi)2+(z3−zi)2−(x4−xi)2+(y4−yi)2+(z4−zi)2di41=(x4−xi)2+(y4−yi)2+(z4−zi)2−(x1−xi)2+(y1−yi)2+(z1−zi)2\begin{cases} d_{i12} = \sqrt{(x_1 - x_i)^2 + (y_1 - y_i)^2 + (z_1 - z_i)^2} - \sqrt{(x_2 - x_i)^2 + (y_2 - y_i)^2 + (z_2 - z_i)^2} \\ d_{i23} = \sqrt{(x_2 - x_i)^2 + (y_2 - y_i)^2 + (z_2 - z_i)^2} - \sqrt{(x_3 - x_i)^2 + (y_3 - y_i)^2 + (z_3 - z_i)^2} \\ d_{i34} = \sqrt{(x_3 - x_i)^2 + (y_3 - y_i)^2 + (z_3 - z_i)^2} - \sqrt{(x_4 - x_i)^2 + (y_4 - y_i)^2 + (z_4 - z_i)^2} \\ d_{i41} = \sqrt{(x_4 - x_i)^2 + (y_4 - y_i)^2 + (z_4 - z_i)^2} - \sqrt{(x_1 - x_i)^2 + (y_1 - y_i)^2 + (z_1 - z_i)^2} \end{cases} ⎩⎨⎧di12=(x1−xi)2+(y1−yi)2+(z1−zi)2−(x2−xi)2+(y2−yi)2+(z2−zi)2di23=(x2−xi)2+(y2−yi)2+(z2−zi)2−(x3−xi)2+(y3−yi)2+(z3−zi)2di34=(x3−xi)2+(y3−yi)2+(z3−zi)2−(x4−xi)2+(y4−yi)2+(z4−zi)2di41=(x4−xi)2+(y4−yi)2+(z4−zi)2−(x1−xi)2+(y1−yi)2+(z1−zi)2
TDOA 技术不需要定位标签与定位基站之间进行往复通信,只需要定位标签发射一次 UWB 信号,工作时长缩短了,功耗也就大大降低了,故能做到更高的定位动态和定位容量。
六、优化定位,更加准确
UWB 模块测量值通常比实际距离要大一些;部分用户反馈,UWB 模块测量值比实际距离要小。这是由于现场环境不同,受经纬度、空气质量、环境障碍物、海拔等因素干扰,所以在产品化进程中,必须对模块进行校准。一般情况下,校准只需在现场进行一次,通过 1 个 Anchor 和 1 个 Tag 的测距,得到修正系数,无需每个 Anchor 和 Tag 都进行标定。
利用 Microsoft Excel 2016 软件进行数据拟合,并生成拟合公式。拟合公式有很多种,最简单的是线性方程。
测距值存在 instancegetidist_mm(0)
、instancegetidist_mm(1)
、instancegetidist_mm(2)
、instancegetidist_mm(3)
这四个变量中,每个距离都需要代入刚才计算出来的校准公式内。在 main.c
函数中,对于 mc 帧的程序:
修正后:
解释如下:
消息 ID 共有三类,分别为 mr、mc、ma。
- mr:代表标签 - 基站距离(原生数据)。
- mc:代表标签 - 基站距离(优化修正过的数据,用于定位标签)。
- ma:代表基站 - 基站距离(修正优化过,用于基站自动定位)。
七、图示测试
注意:其中一个基站必须与电脑的 USB 口相连。
四个基站,两个标签的运动轨迹。
UWB 代码讲解注释
酷酷的boy 于 2021-04-21 18:23:48 发布
前言
虽然官方代码注释较多,但略显杂乱。其原理其实很简单。
- 前面定义的代码无需过多关注,其目的只有一个:找出 T1T_1T1、T2T_2T2、T3T_3T3、T4T_4T4、T5T_5T5、T6T_6T6,求出飞行时间 TTT。所有代码都是围绕这几个值展开的。
- 从主函数开始阅读(从
main
开始)。 - 代码中存在许多延迟,大致是数据发送给天线,天线发送给芯片,芯片再发送给天线,天线再发送出去的过程(彩色部分为延迟时间,只需大致理解即可)。
- 基站到标签的距离 = 光速 × 飞行时间 TTT。实际距离可能受其他因素影响,可进行校正(上一章有校正方法)。
工程源代码.
链接:https://pan.baidu.com/s/1duk1rVdAu7vnes2i5zHsvg?pwd=lt0s
注: 评论区反馈,源码带加密。
via:
- UWB 的主要作用与应用领域_uwb 的应用-CSDN 博客
https://blog.csdn.net/qq_49864684/article/details/115839602 - UWBMini3s 模块详解-CSDN 博客
https://blog.csdn.net/qq_49864684/article/details/115841350 - UWB 的定位算法(简单详细易懂)_uwb 定位基站在同一直线上,定位标签距离-CSDN 博客
https://blog.csdn.net/qq_49864684/article/details/115870377 - UWB 代码讲解注释-CSDN 博客
https://blog.csdn.net/qq_49864684/article/details/115966219