求一个小车轨迹追踪上位机设计论文的上位机软件部分怎么写!!!
老师的重点是上位机设计,我就很方。整个系统实现的就是定位小车+轨迹显示在上位机上。其实硬件电路部分对于我这个论文来说都不重要,主要是在QT的上位机怎么写。。包括用什么函数能实现什么功能,设计过程,GUI怎么设计的,这边我上传一个附件,大概就是这个样式,求助技术,帮我看看,有点急,谢谢啦自己顶一下帖 你这个问题问的很宽泛,大概说下上位机流程,很多细节需要你自己追代码。后期有细节问题可以单独发。
先说下上位机大概的流程:
上位机通过串口接收数据,收到数据后进行数据包解析,解析得到三个距离,配合上位机已经设定的三个基站的坐标,通过三边定位算法解算标签的坐标。如果坐标解算成功,把对应的点在界面上显示。
主要涉及到的文件:
1 SerialConnection.cpp这个文件负责串口初始化相关内容
2 RTLSClient.cpp
着重分析下数据处理流程,这部分功能是RTLSClient.cpp中实现的
1 函数void RTLSClient::newData()
当收到串口信息会调用这个函数,在这个函数中会判断是否接受到一个完整的数据包,这个数据包必须是固件和上位机约定的格式,例如头必须是mr。否则认为数据包无效。
2 函数 void RTLSClient:: ProcessData(void)
这个函数是当接收到有效数据包后,对数据包里的数据进行解析,解析主要内容有3个距离信息(如果是4基站定位有4个距离信息),标签的ID以及其它信息。
3processTagRangeReport(0, TAG_ID, range*10, lnum, seq);
这个函数是处理TAG和某个基站的距离信息,可以适当做校正,类似于滤波,把距离信息存放到某个大的结构体里。
4 trilaterateTag(TAG_ID, seq);
这个是解算标签坐标的入口函数,在这个函数会判断是有几个基站距离,然后调用calculateTagLocation 完成解算。
5 int RTLSClient::calculateTagLocation(vec3d *report, int count, int *ranges)
其实这个函数中进一步提前去基站设定的坐标,匹配距离信息送到GetLocation,GetLocation 是一个纯数学的东西了。
6emit tagPos(tid, report.x, report.y, report.z);
当calculateTagLocation 执行成功,标签的坐标解算出来,会emit这个信号,槽收到这个信号,将标签的坐标进行绘制。
总体代码流程就是这样。 具体细节需要仔细研读代码,并且对QT 的信号和槽有较深入的理解才能更好的追逐代码。
单个细节尽量自己追代码。有问题欢迎再交流,祝好!
本帖最后由 djs 于 2022-3-26 22:17 编辑
要把坐标显示到点的附近,要怎样修改上位机代码? 快乐那么大 发表于 2022-12-31 20:45
你好,我想要在上位机解算出来坐标后,增加一个串口回传功能,把这个定位坐标用串口发出去,具体代码思路是 ...
看下视频资料里 上位机代码分析
上位机代码有串口读写功能,默认是收取信息,也就是读数据
定位过程会计算标签坐标。
需要改动,将计算的结果,调用串口的写,送出去就好了 快乐那么大 发表于 2023-1-1 21:18
好的,知道了。谢谢您
还有一个问题是,这个串口是全双工还是半双工模式,
全双工 很有用,谢谢
页:
[1]