首页
UWB 下行 TDOA 定位方案
- Details
- Written by: zhang
- Category: UWB 下行 TDOA 定位方案
“UWB 下行 TDOA 定位方案”是目前我们最新的 UWB 定位方案。它集成了我们最新的各种技术,实现了精确的 UWB 定位。
1. 下行 TDOA 的原理
下行 TDOA 定位的原理与 GPS/北斗定位的原理很相似。在需要定位的地方部署一些基站(Anchor),这些基站定期发送定位信息,接收终端(tag)收到基站发出的定位信号后,根据收到这些定位信号的时间差,计算自己的坐标。
1.1. 重要技术
1.1.1. 时间同步
因为是基于时间差进行定位,所以定位基站需要有统一的时间。只有各个基站都有统一的时间基准,才有可能对其进行比较。
为了让各个基站有统一的时间基准,需要在基站间进行时钟同步。
特别是,如果定位区域比较大,超过了单个基站的信号覆盖范围,这时需要进行多级时钟同步。
1.1.2. 坐标计算
本质上,tag 的坐标计算就是解方程。但是因为误差的存在,必然没有数学意义上的精确解,只能逐步求精,得到一个近似解。坐标的计算算法有很多,常用的有 LSR (Least Squares Range) 算法、Chan 算法、Taylor 算法、Chan-Taylor 混合算法、Gauss-Newton 算法等等。
2. 涉及的硬件
系统涉及的硬件有两种:Anchor(定位基站) 和 Tag(定位标签、定位终端)。
这两种硬件均使用 ESP32S3 作为主控 MCU。
2.1. Anchor 的功能和硬件介绍
与 GPS 系统相似,Anchor 扮演卫星的角色,它定期广播发送时钟同步数据包,这个同步数据包一方面供下级 Anchor 做时钟同步用,另一方面供 Tag 计算坐标用。
Anchor 的主控 MCU 是 ESP32S3,UWB 芯片是 DW3000。
样机使用 USB Type C 供电,使用 SLM6600 作为 DC-DC 锂电池充电管理,TPS631000 DC-DC 降压(3.7~5V 转 3.3V)。使用 CW2015 作为电池电量计。
集成了 WS2812 作为设备指示灯,可以通过管理程序控制。
为了适应不同的需求,Anchor 有各种硬件配置方案,最简版本的 Anchor 硬件使用:
- ESP32S3 作为主控 MCU
- DW3000 作为 UWB 收发器
- USB TypeC 供电,AMS1117 作为电压转换
- 高亮 2835 LED 作为设备指示
这个版本的 Anchor 目标是尽量降低 Anchor 的成本。
Anchor 使用 WiFi 联网,可以使用“AnchorConfig”程序对其进行配置和管理。
WiFi 配网使用 AnchorConfig 通过 USB HID 配置 WiFi SSID 和密码,以及管理员和密码。
支持 DHCP 客户端自动申请 IP 地址,也可以通过配置程序指定 IP 地址和网站等。
可以通过配置程序配置 UWB 芯片的相关参数,如使用频道、前导码等。
2.2. Tag 的功能和硬件介绍
与 GPS 系统相似,Tag 扮演接收终端的角色,它接收 Anchor 发送的时钟同步数据包,利用这个时钟同步包计算 Tag 自己的坐标。
Tag 的主控 MCU 是 ESP32S3,UWB 芯片是 DW3000。
样机使用 USB Type C 供电,使用 SLM6600 作为 DC-DC 锂电池充电管理,TPS631000 DC-DC 降压(3.7~5V 转 3.3V)。使用 CW2015 作为电池电量计。
集成了 WS2812 作为设备指示灯,可以通过管理程序控制。
Tag 集成了 OLED 显示屏,可以显示 Tag 的坐标,以及 SMS。
Tag 使用 WiFi 联网,可以使用配置程序对其进行配置和管理。
WiFi 配网使用配置程序通过 USB HID 配置 WiFi SSID 和密码,以及管理员和密码。
支持 DHCP 客户端自动申请 IP 地址,也可以通过配置程序指定 IP 地址和网站等。
可以通过配置程序配置 UWB 芯片的相关参数,如使用频道、前导码等。
Tag 内置了 LSR (Least Squares Range) 算法、Chan 算法、Taylor 算法、Chan-Taylor 混合算法、Gauss-Newton 算法等坐标计算算法。
Tag 可以通过 WiFi 把坐标发送到服务器端,由服务器转发到应用系统中进行后续的应用,如显示在地图上、控制有关的设备等。
3. 时钟同步
对于 UWB 系统的时钟同步,我们有丰富的经验。我们老的上行 TDOA 定位产品已经成功在很多用户的系统中应用。上行 TDOA 定位产品也使用了 UWB 无线时钟同步技术。
在天迹下行 TDOA 定位系统中,我们更进一步,采用了新的时钟同步算法,新算法带来更高的精度。时钟同步算法的要点:
- 基站分级,逐级向下发送时钟同步数据包。下级基站尽量保持自己的时钟与上级基站一致
- 第三方基站作为观察者报告时钟同步误差,供基站在时钟同步时纠偏
- 使用多阶卡尔曼滤波,过滤无效干扰,平滑有效数据
上图是时钟同步效果的可视化,系统由 4 个 Anchor 组成:A0/A1/A2/A3。其中 A0 是根时钟,它的下级是 A1,A1 的下级是 A2,A2 的下级是 A3。形成 A0→A1→A2→A3 这样一个时钟同步的路径。图中显示的是 A1/A2/A3 这 3 个 Anchor 收到的时间误差反馈报告。
大部分情况下,每次时钟同步时的误差在正负 40 tick 之间。这里的 tick 是 DW3000 的内部计时单位,大约 15.65ps。如果换算成标准时间单位,约 ±0.6ns;如果换算成距离单位,约 ±20cm。
这个图中还存在大量的无效干扰数据,虽然我们在后续的处理中可以过滤个,但是就时钟同步这个步骤来说,还有进一步提升的空间。
4. 坐标算法
Tag 集成了 LSR (Least Squares Range) 算法、Chan 算法、Taylor 算法、Chan-Taylor 混合算法、Gauss-Newton 算法等坐标算法。
对计算出来的坐标,还使用多阶卡尔曼滤波器进行滤波。
下图是使用 Chan-Taylor 混合算法计算出来的坐标。图中的蓝色圆圈是 Anchor 的位置,红色 Tag 是 Chan-Taylor 混合算法计算出的坐标,绿色 Tag 是经过卡尔曼滤波后的坐标。Tag 文字中方括号内的数字是坐标质量(应用系统可以通过坐标质量评估坐标的准确度)。
5. 软件
5.1. 设备配置程序
设备配置程序用于配置 Anchor 和 Tag。因为目前还在开发阶段,并未将 Anchor 和 Tag 的配置分开。未来会为 Anchor 和 Tag 创建不同的分支,以针对不同类型的设备有针对性的开发各种功能。
程序使用 C++和 QT 开发,作为 Windows 桌面程序运行。
程序与设备的通讯方式有两种:网络和 USB HID。
USB HID 通讯主要用于设备的初始配置。因为设备使用 WiFi 联网,在未联上网之前,无法通过网络配置设备,所以使用 USB HID 设置设备的 WiFi SSID 和密码,以及管理员和密码,使设备可以连接到指定的 WiFi AP,并且在设备联网后可以配置。
日常对设备的配置使用网络。设备作为 TCP Server,配置程序作为 TCP Client。在建立起 TCP 连接之前,设备与配置程序之前会使用 UDP 广播包进行交互,让配置程序可以发现局域网中的设备(IP 地址),然后配置程序会主动向设备发起 TCP 连接。
配置程序的界面如下:
上图是主界面,设备列表中的列可以让用户自定义。
上图是设备基本信息
上图是网络设置
上图是 UWB 设置
上图是时钟同步设置
5.2. 数据聚合程序 Aggregation
这是一个简单的服务器程序,主要起用于聚合设备消息。程序使用 C++编写。
程序作为 TCP Server 和 Websocket Server,把来自 TCP Client 的 json 消息转发给 websocket client。
设备上运行有一个 TCP Client,会主要建立与 Aggregation 的 TCP 连接,并把时钟同步消息(针对 Anchor)和定位结果(针对 Tag)发送给 Aggregation,Aggregation 再把这些消息转发给 websocket client(通常是运行在浏览器中)。
5.3. 简易前端地图
这是一个使用 js 写的简易前端,使用 openlayers 作为地图组件。在 node.js 环境下运行。
运行在浏览器中的 javascript websocket 会与 Aggregation 建立起 websocket 连接,接收来自 Aggregation 的消息,并显示在地图上。
这个地图主要用来看定位效果。我加了历史轨迹,让 tag 拖一个小尾巴,可以直观的看到定位精度。
红色是计算出来的坐标,绿色是经过卡尔曼滤波后的坐标。
从上图来看,大部分情况下精度在 20cm 以内。
5.4. 数据可视化
这是一个简单的 html 文件(包括配套的 js 文件),可以直接打开,不需要部署在 web 服务器上。加载到浏览器后,后建立与 Aggregation 建立 websocket 连接,接收来自 Aggregation 的消息,以曲线图的方式把数据展示在页面上。 数据可视化主要用于开发阶段对时钟同步效果、定位效果进行观察。例如:
6. 后续的工作
6.1. Anchor 固件
- 在线升级。把固件加密后编译在配置程序中,发送给 Anchor 在线升级
- 时间同步优化。现在的精度大约在 ±40 Tick,努力缩小到 30 tick 以下
- 省电。根据 UWB 收发计划,在空闲时休眠。
- 电池报警。在低电量时向后台发出更换 Anchor 或充电的报警信息
- 固件加密,保证固件不被读出。这块需要对 ESP32 的安全体系对梳理再进行。
6.2. Tag 固件
- 在线升级。把固件加密后编译在配置程序中,发送给 Tag 在线升级
- Anchor 跟踪优化。在计算坐标前需要对附近的 Anchor 进行跟踪锁定,本质上类似 Anchor 间的时间同步,优化后可以提高定位精度
- 省电。根据 UWB 收发计划,在空闲时休眠。
- 电池报警。在低电量时向后台发出电量不跑报警信息
- 固件加密,保证固件不被读出。这块需要对 ESP32 的安全体系对梳理再进行。 根据应用场景的需要,可能会增加磁力计、加速度计、陀螺仪等辅助定位、优化省电。 可以加上 SMS 消息接收,振动马达/蜂鸣器等
6.3. 配置程序
- 根据 Anchor 和 Tag 的不同,分成 2 个分支
- 实现固件升级
- 配合 Anchor 和 Tag 固件的变化,更改有关参数的配置
6.4. 服务器管理平台
可能会需要使用 nodejs 弄一个管理平台,配置参数、地图显示等等。目的是把定位系统的职责范围向应用端靠近。让用户可以有一个开箱即用的东西。
6.5. Tag 硬件
目前是使用 Anchor 的硬件刷 Tag 的固件当作 Tag 使用,以后为 Tag 设计专门的 PCB,找一个合适的外壳。
UWB 上行 TDOA 定位方案
- Details
- Written by: zhang
- Category: UWB 上行 TDOA 定位方案
这是一个已经量产的、久经考验的技术方案,已经部署了数万个基站在生产环境使用。
使用 Qorvo DW3000 作为 UWB 收发器,使用上行TDOA方式定位,精度达到10~30cm左右,已有实际应用案例。
可移动的定位标签定期发送定位数据包,固定安装的基站接收到定位数据包后,转发到定位引擎计算标签的坐标。
关于本站
- Details
- Written by: zhang
- Category: 帮助
这个站点正是为您创建的!
因种种原因,我们停止了UWB业务。我们不希望之前的工作成果被闲置浪费,所以我们决定把我们拥有的全部关于UWB方面的成果转让。
这个站点的目的就是介绍我们之前做了什么,您接手之后您得到什么。
点击这里查看《关于联创UWB超宽带精确定位系统》,这篇文章简单介绍了一个我们的UWB系统。
技术转让的方式有以下几种:
1、共享式全套技术转让。我们把我们拥有的全部UWB技术卖给您,您仅拥有使用权,您可以不受限制的销售这些技术生产出来的UWB产品,但您不能把这些技术转售给第三方。我们始终拥有这些技术的全部权利,我们可以再次卖给其他人。
2、部分技术转让。我们拥有UWB领域的多项技术,您可能仅仅只对其中的部分技术感兴趣,您可以仅购买您有兴趣的技术。您仅拥有使用权,您可以不受限制的销售这些技术生产出来的UWB产品,但您不能把这些技术转售给第三方。我们始终拥有这些技术的全部权利,我们可以再次卖给其他人。
我们最终决定以非独占式转让这些技术(代码和电路图)。以下是价格列表:
| 序号 | 项目名称 | 说明 | 单价 | 打包价 |
| 以下硬件不含固件,仅电路图和PCB图 | ||||
| 1 | 基站A1102电路图和PCB图 | 单网口/POE供电 | 1,000 | 10,000 |
| 2 | 基站A1106电路图和PCB图 | 双网口/POE供电受电/带网络交换机芯片 | 2,000 | |
| 3 | 外置基站A1108电路图和PCB图 | 2,000 | ||
| 4 | UWB模块SDWM1000电路图和PCB图 | 2,000 | ||
| 5 | UWB模块RFM-PA-LNA-ANT电路图和PCB图 | 3,000 | ||
| 6 | UWB模块UM2000电路图和PCB图 | 3,000 | ||
| 7 | 工牌标签T1201C电路图和PCB图 | 1,000 | ||
| 8 | 手环标签T1202W电路图和PCB图 | 1,000 | ||
| 9 | 工牌标签T1205C电路图和PCB图 | 带PA/LNA | 2,000 | |
| 以下软件提供源代码,并提供适当的帮助让你能正常编译 | ||||
| 1 | 定位引擎 | 95,000 | 100,000 | |
| 2 | 定位引擎管理界面 | 15,000 | ||
| 3 | 基站固件 | 50,000 | 80,000 | |
| 4 | 标签固件 | 3,000 | ||
| 5 | 固件加密软件 | 1,000 | ||
| 6 | 基站配置程序 | 20,000 | ||
| 7 | 标签配置程序 | 8,000 | ||
| 8 | 基站出厂初始化程序 | 25,000 | ||
| 9 | 标签出厂初始化程序 | 12,000 | ||
| 10 | 基站天线延迟计算分析程序 | 不单独销售 | - | |
| 11 | UWB研发文档 | 不单独销售 | - | |
说明:
1. 价格单位是人民币元。打包价是指同时购买多个项目时经过优惠后的合计总价。以上价格不含税,您需要支付适当的税款,纳税金额取决于您的开票类型。
2. 《天线延迟计算分析》不单独销售, 仅作为购买全套桌面程序和固件程序的赠品。
3. 《研发文档》不单独销售, 仅作为购买全部程序的赠品。
假设您的团队已经掌握了这些技术,可以确定,你付钱请人写代码和画电路图,肯定比直接购买我们的代码和电路图的成本高。
接下来的时间里,我们会不断公开相关的技术细节。如果您不想付钱购买,也没关系,您的团队可以根据我们公布的技术细节去写自己的代码。
另外一种低成本方案
也许您不想组建一个开发团队去进行进一步的开发,只想简单的把我们的产品拿去生产,直接销售给客户。如果是这样,您不需要定位引擎/配置程序和固件的源代码,您只希望有能用于生产或分发给客户的二进制文件就可以了。我们可以为您定制一个版本(定制仅限于公司标识和固件加密key, 不包含功能修改),提供编译好的基站固件、标签固件、基站配置程序、标签配置程序、定位引擎和管理界面等软件的二进制文件给您,价格1万元。如果将来有版本升级,您可以以半价(5000元)购买新版本二进制文件。
简而言之,您只需要花2万元就可得到能用于生产的硬件电路图和软件。
定制开发
如果您不想组建开发团队,但又希望在我们产品的基础上增加新的功能,您可以委托我们帮您开发新功能。
您看了我们提供的资料后,在实际测试之前,您也许不很确定这个系统的定位效果怎么样。您也许希望能有样品进行测试,在测试之后再做是否购买的决定。目前我们还有少量样品可供测试,如果您需要样品进行测试,您需要支付3000元押金,得到4个基站+2个标签。请注意,样品的目的只是为了测试系统能否正常工作,以及定位精度,您收到的样品不是全新的,是使用过的,甚至有早期未集成POE功能的版本。您支付的3000元是押金,测试结束后,请退回样品,我们在收到您退回的样品后把3000元押金退回给您。(特别说明:无论最终您是否购买我们的技术方案,我们都希望您能退回样品。之前我们的押金比较低,有用户测试完之后不退样品,导致我们的样品越来越少,搞得很尴尬。如果您购买了我们的技术方案,我们会协助您打样,确认技术资料的完整性和可用性,您不需要保留我们寄给您测试的样品)
如果您对这个项目有兴趣,可以通过联系我们(QQ 30823154, 电话 18985041403(微信同号), 邮箱