系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、控制部分
  • 二、UWB 的测距原理是什么?
  • 三、TOF 数学计算
  • 四、Trilateration 三边测量法的原理与计算方法(TDOA平面)
    • 1.三边测量法的缺陷是:
    • 2.Z 轴准确度比 X 轴 Y 轴要差一些?
  • 五、TDOA(3D空间)。
  • 六、优化定位,更加准确。
  • 七、图示测试。
  • 八、总结。

前言


一、控制部分

二、UWB 的测距原理是什么?

双向飞行时间法( TW-TOF, two way-time of flight)每个模块从启动开始即会生成一条独立的时间戳。
模块 A 的发射机在其时间戳上的 Ta1发射请求性质的脉冲信号,
模块 B 在 Tb2时刻发射一个响应性质的信号,被模块 A 在自己的时间戳Ta2时刻接收。 有次可以计算出脉冲信号在两个模块之间的飞行时间,从而确定飞行距离 S。
S=Cx[(Ta2-Ta1)-(Tb2-Tb1)]/2 (C 为光速)

图示:

UWB 定位的原理是什么?1) 距离 = 光速 * 时间差 / 2; XY 平面, 3 个圆,能够确定一个点; 2) XYZ 空间, 4个圆,能够确定一个空间点;

三、TOF 数学计算


T1 -T6 会在下一节代码里标注出来,官方提供的代码主要用的就是此类算法。

四、Trilateration 三边测量法的原理与计算方法(TDOA平面)

三边测量法的原理如右图所示,以三个节点 A、 B、 C 为圆心作圆,坐标分别为(Xa, Ya), (Xb, Yb), (Xc, Yc),这三个圆周相交于一点 D,交点 D 即为移动节点, A、 B、 C 即为参考节点, A、 B、 C 与交点 D 的距离分别为da,db, dc。假设交点 D 的坐标为(X , Y)

计算公式:

如图所示:

可以得到交点 D 的坐标为:

1.三边测量法的缺陷是:

由于各个节点的硬件和功耗不尽相同,所测出的距离不可能是理想值,从而导致上面的三个圆未必刚好交于一点,在实际中,肯定是相交于一个小区域,因此利用此方法计算出来的(X, Y)坐标值存在一定的误差。这样就需要通过一定的算法来估计一个相对理想的位置,作为当前移动节点坐标的最优解。

2.Z 轴准确度比 X 轴 Y 轴要差一些?

如图所示, A0/A1/A2 为 3 个基站, T0 为标签, LA0T0 LA1T0 LA2T0
表示为每个基站到标签的距离。在测距完全准确的情况下,解算的 Tag 坐标应该在 T0, 但是, 由于实际测量值 LA0T0 LA1T0 LA2T0 可能偏大, 解算的位置在 T0’。 因为 A0/A1/A2 都在 xoy 平面,所以,测距的误差绝大多数会累加到 z 轴上,造成 z 轴数据的抖动。

五、TDOA(3D空间)。

  1. 概念

到达时间差(Time Difference of Arrival,TDOA)是一种利用到达时间差进行定位的方法又称为双曲线定位。标签卡对外发送一次UWB信号,在标签无线覆盖范围内的所有基站都会收到无线信号,如果有两个已知坐标点的基站收到信号,标签距离两个基站的间隔不同,那么这两个基站收到信号的时间点是不一样的。

2.举例

例如,小明的妈妈在村口喊“小明,回家吃饭啦!”,根据距离=时间*速度,其中速度不变(声音在空气中的传播速度是340m/s),那么声音传播的时间是由距离决定的,因此村里的人听到小明妈妈声音的时间点是不一样的。

同理,标签与不同基站的距离不同,不同基站收到同一标签信号的时间节点不同,因此得出一个“到达时间差”的概念。

TDOA定位的原理正是利用多个基站接收到信号的时间差来确定标签的位置

3.图解


TDOA技术不需要定位标签与定位基站之间进行往复通信,只需要定位标签发射一次UWB信号,工作时长缩短了,功耗也就大大降低了,故能做到更高的定位动态和定位容量。

六、优化定位,更加准确。

UWB 模块测量值,总是比实际距离要大一些;部分用户反应, UWB模块测量值比实际距离要小,这是怎么一回事呢?这是由于,我们使用的现场,环境都是不同的,受经纬度、空气质量、环境障碍物、海拔等等因素干扰,所以在产品化的进程中,必须要对模块进行校准。

一般情况下,校准只需要在现场进行一次,通过 1 个 Anchor 和 1 个 Tag 的测距,得到修正系数,并不需要每个 Anchor和 Tag 都进行标定。
利用 Microsoft 2016 Excel 软件,进行数据拟合,并生成拟合公式。拟合公式有很多,最简单的是线性方程。

测距值存在 instancegetidist_mm(0), instancegetidist_mm(1), instancegetidist_mm(2), instancegetidist_mm(3),这四个变量里,
每个距离,都需要代入刚才计算出来的校准公式内。在 main.c 函数中, 对于 mc 帧的程序:

修正后:

解释下:
消息 ID, 一共有三类,分别为 mr, mc, ma
mr 代表标签-基站距离(原生数据)
mc 代表标签-基站距离(优化修正过的数据,用于定位标签)
ma 代表基站-基站距离(修正优化过,用于基站自动定位)

七、图示测试。

注意:其中一个基站必须跟电脑的USB口相连。



四个基站,两个标签运动轨迹。

八、总结。

下一张讲代码,超级详细。有点累了,睡觉!晚安。

UWB的定位算法(简单详细易懂)相关推荐

  1. UWB高精度定位落地:UWB(超宽带高精度定位)赋能智慧工厂人/车/物位置感知服务

     智慧工厂宜采用基于UWB的场景定位(区域网格化)而非坐标定位 GNSS有全球标准的坐标系WGS84坐标系:各个国家.地方甚至行业也会以WGS84坐标系为参照,定义符合自身需要的坐标系.每种坐标系的映 ...

  2. UWB定位算法比较TDOA和TWR究竟哪个好

    使用UWB技术进行定位时,有两种基本定位算法:基于差分飞行时间(TDOA)和双向测距(TWR)的UWB定位算法,这两种算法各有优劣,下面将进行比较. 超宽带是一种可用于室内定位的短距离无线电通信.与蓝 ...

  3. 基于Powell共轭方向法的UWB室内定位构型优化算法

    基于Powell共轭方向法的UWB室内定位构型优化算法 阚昊宇 摘要: UWB室内定位系统的服务性能及定位精度很大程度上受UWB基站构型影响,而GDOP是衡量系统定位服务性能的重要指标.目前关于UWB ...

  4. 基于UWB的室内SDS_TWR测距算法优化和定位算法融合的研究

    1.内容简介 略257 2.内容说明 1.RSSI定位方法 基于接收信号强度RSS(Receive Signal Strength)[57]方法通过三个及以上己知位置的锚节点来测量移动节点发射的信号场 ...

  5. c语言写拼图游戏算法,[原创]拼图游戏移动算法,简单易懂

    [原创]拼图游戏移动算法,简单易懂 这是我第一次发表关于算法的贴子, 希望大家支持下 原理:判断用户点击的按扭的X或Y坐标是否与移动按扭相同, 并且移动按扭的X,Y坐标是否与用户点击按扭相邻. 拼图游 ...

  6. 如何在FPS游戏中快速实现简单的人体定位算法

    概述 最近在很多B站的视频上看到大佬们分享的AI应用案例,其中有一个引起了我的兴趣:基于深度学习网络, 在CSGO中实现人体定位算法,并进行自动瞄准与射击.当然,这种明显有悖于游戏公平性的行为我是不会 ...

  7. 超宽带定位算法matlab,毕业设计_--超宽带(UWB)无线定位技术.doc

    毕 业 设 计 题目: 超宽带(UWB)无线定位技术 学 校 院 系 专 业 姓 名 学 号 2012 年 6 月 论文题目: 超宽带(UWB)无线通信技术 专 业: 学 生: 签名: 指导教师: 签 ...

  8. 蒙特卡洛粒子滤波定位算法_ROS -- 最简单的自主ACML定位

    关于定位的原理和算法: ARUANTOU:自适应MCL(KLD采样)​zhuanlan.zhihu.com ARUANTOU:定位算法 -- MCL蒙特卡洛(粒子)滤波​zhuanlan.zhihu. ...

  9. RSA 加密解密算法实现(简单,易懂)!!!

    目录 一.什么是RSA算法 1.对称加密 2.非对称加密 3.非对称加密的应用 二.RSA算法的基础操作步骤 1.生成公钥和私钥 2.用公钥加密信息 3.用私钥解密信息 三.AC代码 六.RSA算法的 ...

最新文章

  1. @Query注解的用法(Spring Data JPA)
  2. Eclipse 的一些调试技巧
  3. Hi3520d uImage制作 uboot制作 rootfs制作
  4. MySQL 十大常用字符串函数
  5. java is-a_java中 is - a和 has - a的区别
  6. [Learn Notes] CSS学习笔记
  7. python云台控制原理_python伺服云台摄像头图像作为背景
  8. 宇视服务器硬盘序列号,宇视科技云存储服务器
  9. c语言程序文件夹里没看到prj,求教。如何调用编好的函数。如何使用prj文件
  10. php 七牛云 视频加水印
  11. win7计算机窗口无法最小化,Windows7系统任务栏不显示最小化窗口的解决方法
  12. 如何通过SEO思维收割各大平台的流量?
  13. 聊聊钟南山教授,带给我的思考
  14. iomega ix2 Android,Lenovo Iomega ix2系统安装
  15. C语言每日一练——第66天:委派任务问题
  16. 总结10个Python赚钱的接单平台 兼职月入5000+
  17. 惠普LaserJet M1005 MFP报错b2
  18. vue使用elementui实现表格中上下移动功能
  19. 动态规划-03-线性动态规划
  20. 练习题(困难) 百慕大三角 POJ1069

热门文章

  1. Linux 内存管理中的 RSS 、VSZ等的含义
  2. 高等数学——求解不定积分的经典换元法
  3. Visual Paradigm 在 Linux 和 Unix 系统电脑上安装教程
  4. html的css样式大全,css样式有哪些?
  5. 在VC中用GDI+绘制角度可变的颜色渐变效果-.NET教程,VB.Net语言[转]
  6. 论文笔记:Show, Control and Tell:A Framework for Generating Controllable and Grounded Captions
  7. 思维导图带你看遍花样百出的各类月饼?
  8. 操作系统中生产者/消费者问题(一)
  9. 企业集群平台架构设计与实现--LVS篇(二)
  10. 3、xx配音狂app登陆算法分析【Android逆向分析学习】