网站开发语言分类,公司网站文件夹设计,本地网站建设,福田做商城网站建设哪家技术好前视声呐目标识别定位#xff08;一#xff09;-基础知识
前视声呐目标识别定位#xff08;二#xff09;-目标识别定位模块 开发了多波束前视声呐目标识别定位模块后#xff0c;自然期待能将声呐部署至AUV#xff0c;实现AUV对目标的抵近观测。原本规划着定位模块不…前视声呐目标识别定位一-基础知识
前视声呐目标识别定位二-目标识别定位模块 开发了多波束前视声呐目标识别定位模块后自然期待能将声呐部署至AUV实现AUV对目标的抵近观测。原本规划着定位模块不仅能将目标定位信息提供给AUV进行辅助导航还能借助水声通信模块在水面实现在水面开关声呐及调节声呐参数开关目标识别模块传输目标图像向观测者展示录制目标数据包以进行模型训练等。在先前的文章已经介绍了前视声呐目标定位只能提供目标距离及水平开角信息而缺少垂直开角的信息所以使用前视声呐定位是无法得到目标物具体坐标信息的只能起辅助作用。 先前的文章已经介绍了声呐目标识别及定位模块在部署过程中有许多问题比较关键的有三个。首先是目标识别模块需要GPU算力板算力板尺寸必须满足AUV布局的需求限制同时要考虑散热的问题再者声呐的驱动及目标识别模块都是在ubuntu下使用ROS/ROS2进行开发而AUV的导航模块是性能普通的工控机还是特制的系统使用水声通信模块必须借助工控机做中继只能考虑其它通信方式最后水声通信的带宽非常低是比较难满足图片传输的条件的。 虽然接到任务时时间紧需求多任务重鼓捣了一段时间还是开发出了一个小小的demo。不过开发完后整个项目都没有了所以也没有部署至AUV进行下水测试最终只能算是自娱自乐了。最近整理资料时在角落里发现了这些东西虽然我也觉得整个框架粗糙且暴力不尽如人意但想着水下圈子这么小资料这么少把这个demo开源也许能为一些水下爱好者的研究开发提供一条不同的思路吧同时也算是把这些工作做一个归档日后可以查阅。 项目github地址GitHub - cabinx/yolov5_humble_fls_tcp: yolov5_humble_fls with tcp/ip transmission 接下来处理上文提及的三个问题。首先综合考虑尺寸和算力后选择了NVIDIA XAVIER开发板在密闭的舱段内散热的问题倒是没有啥好办法。再者XAVIER板和AUV的工控机之间通过TCP/IP通信约定好协议就好。最后关于目标图片只截取目标部分的图片然后压缩编码传输以满足水声通信的限制。 整个软件的框架如下图。 在XAVIER板上center_server起一个处理中心的作用。其接收AUV工控机下发的指令信息并转发给相应各个模块。同时接收各个模块的数据封装后发送给AUV工控机。yolov5_humble_fls是目标识别模块和之前的识别模块相比主要添加了TCP通信模块和截图封装传输模块。sonar_node是声呐驱动模块当时选择的是Oculus m750d这款声呐。control center是指令转换模块将auv下发的指令解包转换为shell指令以执行相应任务非常粗暴并不是非常推荐只是当时简单地想着怎么简单怎么来。 在工控机上auv_server也起信息中转的作用接收水面指令转发给XAVIER板同时接收XAVIER板数据转发给水面但是需要根据协议解包目标数据以辅助导航。还有一个client test模块是我用来模拟水面发送指令的测试模块。 水声通信模块我没接触在此就不讨论了但只要知道协议无非是在auv server上再添加相应的编解码。 框架原先我是在ROS Neotic下写的测试时Oculus 750d声呐通过网线和XAVIER板连接然后用我的台式机模拟AUV的工控机直接用一根网线连接测试基本实现了各个功能。现在我用ROS2 humble大致重新整理了一遍测试就只在我的台式机测试了台式机既模拟XAVIER板又模拟AUV工控机。此外我手头上已经没有声呐进行测试了所以声呐驱动模块我就没有在ROS2重新整理以后我会将之前写的ROS版本的上传至github该版本是测试过是能正常接收发布声呐数据的。 目前只能使用离线数据包进行测试将声呐数据包下载至bag文件夹下启动auv_server.pycenter_sever.pycontrol_center.py。然后通过client_test.py脚本进行测试。后续我会通过几个例子介绍整个框架的信息流。
python3 client_test.py 1 1 #启动识别模块
python3 client_test.py 5 1 #播放离线数据包
python3 client_test.py 7 1 #对识别到的目标截图传输
python3 client_test.py 8 1 #开始录制数据包
python3 client_test.py 9 1 #结束录制数据包
python3 client_test.py 6 1 #结束播放离线数据包
python3 client_test.py 2 1 #结束识别模块python3 client_test.py 3 1 #启动声呐模块
python3 client_test.py 4 1 #关闭声呐模块python3 client_test.py 11 1/2 #切换声呐高低频1为低频2为高频
python3 client_test.py 12 100 #设定声呐gamma correction值为100
python3 client_test.py 13 20 #设定声呐量程为20m
python3 client_test.py 14 50 #设定增益为50
python3 client_test.py 15 1500 #设定声速为1500
python3 client_test.py 16 25 #设定盐度为25 当时还想过实际应用中把这些指令做个图形界面的话将会方便不少现在暂时不需要了。 当初ROS1版本时测试时台式机及XAVIER板的系统均为Ubuntu20.04ROS版本为NeoticROS2版本测试时台式机版本为Ubuntu22.04ROS版本为Humble。 ROS1 Neotic版本测试视频 yolov5-ros1-test 整理后ROS2 Humble版本测试视频 yolov5-sonar-test CSDN上传视频实在麻烦测试视频可以到知乎上看一下。 https://zhuanlan.zhihu.com/p/690658706