完成“LPS node 与Crazyflie在TWR协议下的成功双向测距”实现心路历程总结

article/2025/10/7 19:43:17

完成“LPS node 与Crazyflie在TWR协议下的成功双向测距”实现心路历程总结

  • 1.初识TWR协议
  • 2. TWR进阶1.0
  • 3.TWR协议进阶2.0
  • 4.TWR协议进阶3.0
  • 5.TWR协议进阶4.0
  • 6.总结

说来惭愧,这一点点东西做了快3个月[手动狗头.jpg]
但是这个协议的深入学习让我真正认识到研究生该怎样从零开始独自深入学习从未接触过的知识。一个人做科研确实很难。

1.初识TWR协议

暑假到9月中旬,在导师一点点引导下,我学习Crazyflie、TWR协议的一些基础知识。9月中下旬导师布置下来,希望我能实现lps node在TWR协议下同时作为anchor和tag通信,这个其实是已经实现的东西。在那之前我对TWR协议的了解只不过是lps固件中接收到report包的处理代码:

在这里插入图片描述
具体的测距计算公式代码:
在这里插入图片描述
于是,我的初步理解是,只要在接收和发送的两个回调函数里都写上四种数据包,不就能够实现lps node既能够作为tag发起测距,同时保持其作为anchor时的测距功能了?结果是,当然不可以!!![苦笑.jpg]

2. TWR进阶1.0

盯紧这个文件下的代码,我看了很久,发现实在是独自解决不了这个问题了,只能腾讯会议求助远在另一校区的师兄。其实都没和师兄见过面,很怕师兄不耐烦给我解答。还好师兄不仅给我解答了,还帮我拓宽了思路——我之前只局限于一个文件就是不对的,应该要从uwb这个模块出发,一点一点发掘。我这才发现我以前是多么傻,都读研究生了,还是会偷懒,自己觉得没有用的代码就没有看!

于是就从main开始,将整个uwb模块的逻辑梳理了一遍,终于理清了lps node中各个协议的调用逻辑!这对我了解整个模块的代码有很大的帮助。
当时画的结构框图
当时画的结构图,现在看来好粗糙,并且没重点!!!

3.TWR协议进阶2.0

到这里,其实整体框架已经能够出来了。但是还有一些细节,并且lps node串口输出我一直都还没实现(现在想想好傻!应该第一步就去实现这个的!!!)代码烧录进去后,我无法调试这个模块,导致我做了很多无用功。

这期间,我又去问了两次实验室跟我同级的同门,他也给了我很多帮助,帮我拓宽了我的思路,使得我可以从无人机那一端通过console调试。但是依旧没实现!!!于是老师让我实先两个无人机之间同时作为anchor和tag。其实这个比较好实现,因为这个只要无人机那一端的代码就好了,并且在此之前老师把他之前改过的无人机 通信代码发给了我。我照着写了一下,实现了两个无人机之间的通信。

但是 lps node和无人机之间的通信依旧没有实现!

4.TWR协议进阶3.0

于是我跟老师说,我想先实现lps node的串口输出(这个任务本来应该在完成TWR协议改写之后再做的)。因为我发现我如果不实现串口输出,根本无法知道我在lps node那一端修改的代码起了什么作用!

于是首先从翻看STM32开发手册开始,这里不得不说,开发手册是个多重要的东西呀!期间也向同门求助啦,最后算是自己独立解决了串口输出这个问题。从这里开始写blog了,这样每周周报就不用自己特地整理了,平时整理好发到blog上就好了。

现在终于可以调试lps node端的代码啦~~~

5.TWR协议进阶4.0

有了串口输出,就可以通过printf来调试啦,这是个笨但是非常有用的方法,安利给大家。但是在这期间,期末考试接踵而至,导致没有一个可以安安生生做科研的时间,进度被拉慢了许多,然后又赶上放假回家,又耽误了两三天。

前两天调试一直找不到出错的原因,就在每周周报中表示,希望能跟老师沟通下,拓宽下思路,老师安排了周二交流。于是我就想着今天再梳理下我的思路,好明天跟老师交流的时候思路清晰一点。
但是!没想到,这一梳理就把问题给解决了!!!hhhhhhh
竟然是因为我没有把lps node端的协议选择写死…

6.总结

这算是科研小白一学期以来的科研历程总结啦。

一个任务一学期才完成,期间好怕导师因为我太菜而不要我。不过不可否认,我真的花了很久的时间才进入到:我是一个CS专业的研究生的状态。期间也因为没有做什么东西被导师敲打了(是我的问题,导师真的很好,室友很羡慕我有这么好的导师)。

总的来说,不要担心成果,只要你继续走在科研的路上就OK啦!老师不会因为你不会而怪你,但是会因为你不做东西而怪你。

不写了不写了,中间有很多细节,以后慢慢补充。


http://chatgpt.dhexx.cn/article/pgvDwHqf.shtml

相关文章

惠普台式机EliteDesk TWR安装双系统

关于HP EliteDesk 800 G4 TWR安装双系统 磁盘分区BIos界面操作Linux系统安装 由于需要在Linux系统下跑ros,但电脑有安装win10系统,为了不破坏Win10系统内的资料,所以就选择安装双系统,根据我之前的安装经验,装个双系统…

24C02 Twr

连续写24C02,只有第一次能够成功,后面写都失败了。这次调整写的时间间隔。调成了5ms,才成功。 查看datasheet,发现有一个tWR参数。表示写的最小时间间隔。这个时间应该是内部写入所需要的时间,如果连续写的时间过短,就会失败。 但…

DWM1000 测距原理简单分析 之 SS-TWR代码分析1 -- [蓝点无限]

蓝点DWM1000 模块已经打样测试完毕,有兴趣的可以申请购买了,更多信息参见 蓝点论坛 正文: 这一篇内容主要是通过官方源码理解SS-TWR 细节 代码下载链接:https://download.csdn.net/download/duanfei255/10787882 所有代码使用方法:复制example 中的main.c到Keil MDK工…

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

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

HP EliteDesk 880 G2 TWR无法从U盘启用

一、客户需求 客户一台HP EliteDesk 880 G2 TWR台式机,想更换一块固态盘,于是即到哥带了一块固态盘上门给客户更换固态盘,重新安装系统。 更换完固态盘后,准备重新给客户安装系统。 客户的台式机型号是:HP EliteDesk …

java TWR是怎么优雅我们的代码的?

我们在编写IO代码的时候,有的时候真的是对对java IO那种模板化的代码感到厌倦,而且写出来的代码,很臃肿丑陋。像下面这样的代码: public void readFile(String filePath) {FileInputStream fis null;InputStreamReader inReader …

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

1、内容简介 略257 2、内容说明 1、RSSI定位方法 基于接收信号强度RSS(Receive Signal Strength)[57]方法通过三个及以上己知位置的锚节点来测量移动节点发射的信号场强强度,从而通过己有的传播损耗模型来估算移动节点距锚节点的距离,从而实现位置测量…

UWB-DW1000的TWR测距及代码(五)

UWB测距过程很简单,两个设备(A和B)。设备A先发送,设备B等待接收 设备A 发送 P 给 设备B,此时读取时间戳,也可以等收到应答再进行读取,发送时间戳和接收时间戳都会保留最新一次,只要…

UWB DW1000 TWR测距定位功能实现

3基站对1标签进行测距的流程如下: 1、标签发起测距poll,等待3个基站的回应resp;依次收到3个基站的resp后,发送携带时间戳的final; 2、基站等待poll;收到poll后,发送resp,再继续等待…

hp 800 g4 twr linux,【拆机】HP EliteDesk 800 G4 TWR—探究塔式机箱的秘密

惠普商务台式机在专业领域口碑一直强势,其优良的结构设计与出色的稳定性素来为用户所青睐。今天的拆机要为大家带来的是——HP EliteDesk 800 G4 TWR。这款商务台式机内部做工到底如何?今天我就为大家带来答案。 按照惯例先为大家介绍一下这款产品的外观。 作为一台商务台式机…

uwb最详细的DS-TWR测距

简介 •测距、定位和数据传输。 •利用双向测距(TOF)测量或单向到达时间差(TDOA)到达时间差,误差在10cm,经过一定的滤波可以达到更低。 •跨越 3.5 GHz 至 6.5 GHz 的 6 个 RF 频段。 •支持 110 kbps&…

DRAM知识整理系列(三):部分时序参数整理

目录 一、时序参数整理 第一时序: 1、tCL - CAS Lantency Control 2、tRCD - RAS to CAS Delay 3、tRP - Row Precharge Timing 4、tRAS - RAS Active Time 第二时序: 5、CWL - CAS Write Latency 6、tRC - Row Cycle Time 7、tRFC - Row Refr…

超宽带(UWB)学习笔记——TWR测距

文章目录 前言1. 单边双向测距(SS-TWR, Single Side - Two Way Ranging)1.1 测距方式1.2 误差分析 2 双边双向测距(DS-TWR, Double Side - Two Way Ranging)2.1 测距方式2.2 误差分析 参考文献 前言 TOF(Time Of Figh…

UWB定位的3种算法:TWR、TOA和TDOA算法

UWB定位的3种算法:TWR、TOA和TDOA算法 文章目录 UWB定位的3种算法:TWR、TOA和TDOA算法UWB定位技术一、TER定位算法二、 TOA定位算法三、 TDOA定位算法相关链接 UWB定位技术 UWB 定位原理和卫星导航定位原理相类似,由多个定位基站和定位标签组…

【提高准确率方法总结】

文章目录 1.数据集扩增2.增大数据集差异性,随机性3.使用tensor transform对数据进行预处理4.调节batch_size大小5.设置shuffleTrue6.调节学习率(learning rate)7.权重衰减 (weight_decay)8.适当增加训练轮次&#xff0…

准确率、召回率和mAP、AP50/75

1、准确率和召回率 真实值与预测值之间的关系如下左图所示,右图是二者之间的一个直观表示,同时也能清晰的看出准确率和召回率的具体含义。准确率 P P P 给出了“预测为真值的样本中确实有多少比例为真值”,召回率 R R R 则给出了“本来就是…

如何区分精确率(precision)、准确率(accuracy)和召回率(recall)

理解精确率(precision)、准确率(accuracy)和召回率(recall) 正样本 负样本 预测正例 TP FP 预测反例 FN TN TN,预测是负样本,预测对了 FP,预测是正样本,预测错了 FN,预测是负样本&am…

pytorch_cifar10 学习记录(91%准确率)

目录 一、首次尝试深度学习 1.1训练参数 网络结构: 1.2训练结果 1.3 总结 二、修改网络和学习率,初次使用GPU炼丹(kaggle线上炼丹) 2.1训练参数 三、cifar10数据增强后进行炼丹 3.1 参数设置 3.2训练记录 3.2.1 0-100轮…

精度评定中的准确率(Precision)和召回率(Recall)

在模式识别中,我们经常会使用到一些指标对目标识别或者影像分类的结果进行评价。 假设我们需要将一个样本集分类为苹果和非苹果两类,那么分类结果有四种情况: 第一种情况:True Positive,本来就是苹果被分类成苹果&…

机器学习:什么是召回率、准确率和精确率?

在机器学习中,经常会听到准确率、召回率及精确率三个专业评价指标,刚开始接触时,总是会傻傻的分不清,今天之后,就能准确区分了! —准确率:就是在预测的所有样本中预测正确的比率(包…