前视声呐
文章平均质量分 73
cabinx
这个作者很懒,什么都没留下…
展开
-
前视声呐目标识别定位(九)-声呐驱动
识别定位是需要声呐原始数据流,当时手头上的声呐为Oculus M750D,但我拿到时只有一个Oculus官网的Windows下的客户端,肯定是无法满足需求的,Oculus官网也没有相应的API或协议什么的。从采购员那拿到某个国内的代理供应商的联系方式,联系后只得到一句没有这种东西,商品售出后就不属于他们管的回复,然后无论说啥都不回复了。其中oculus_sonar_node.py是前文提及的软件框架中使用的,添加了与center_server的通信。代码很久远了,现在我已经无法测试了,仅供参考吧。原创 2024-04-04 00:39:49 · 446 阅读 · 3 评论 -
前视声呐目标识别定位(八)-代码解析之各模块通信
2、作为识别模块yolov5_humble_fls的服务器,通过端口8080与其通信。三、yolov5_humble_fls模块(yolov5_sonar.py)4、作为声呐驱动模块sonar_node的服务器,通过端口8082与其通信。3、作为control_center的服务器,通过端口8081与其通信。1、作为center_cerver的服务器,通过端口8088与其通信。2、作为client_test的服务器,通过端口8089与其通信。1、与center_server通信。原创 2024-04-04 00:31:11 · 481 阅读 · 0 评论 -
前视声呐目标识别定位(七)-代码解析之录制数据包
录制声呐数据包和启动结束各个模块大同小异,不多赘述了,核心代码位于control_center.py。数据包储存于/yolov5_humble_fls_tcp/record_data目录下,以开始录制的时间戳为文件名。原创 2024-04-04 00:17:49 · 261 阅读 · 0 评论 -
前视声呐目标识别定位(六)-代码解析之目标截图并传输
逐个将目标截图并压缩编码,每个目标截图长度和宽度均不小于300像素,通过image_min_length设置,通过image_quality(0-100)可以设置压缩图像的质量,质量越小,压缩后的图片大小越小,然后传输。根据'\ee\ff\ee\ff'判断为不带参数的指令,转control_center.py。此外关于目标识别模块,还有一个功能是实时将目标的信息传输给auv辅助导航,目标信息的协议参见协议文件。根据'\ff\bb\ff\bb'判断为启动识别程序。识别目标后,截取目标框大小的图片,压缩传输。原创 2024-04-04 00:13:11 · 1166 阅读 · 0 评论 -
前视声呐目标识别定位(五)-代码解析之修改声呐参数
根据‘\ee\aa\ee\ff‘判断为带参数的指令,转sonar_node。修改声呐参数,以将声呐量程修改为10m为例,其余参数修改可参照协议文件。4、sonar_node(此处以ros1版本中的驱动代码举例)数据包通过网口传输至声呐,声呐解码后进行参数调整。故模块将该数据包发送至auv_server。直接将指令转发至center_server。原创 2024-04-03 23:54:17 · 498 阅读 · 0 评论 -
前视声呐目标识别定位(四)-代码解析之启动识别模块
反馈信息至auv_server.py,self.cmd_callback_header + self.start_yolo_msg。根据\ee\ff\ee\ff判断为反馈信息,根据\ee\aa\ee\aa判断为识别程序成功启动信息。根据‘\ee\ff\ee\ff‘判断为不带参数的指令,转control_center.py。即/ee/ff/ee/ff/ee/aa/ee/aa/ee/aa/ee/ff。根据”\ee\aa\ee\aa”判断为启动识别程序。故模块将该数据包发送至auv_server。原创 2024-04-03 23:25:14 · 466 阅读 · 0 评论 -
前视声呐目标识别定位(二)-目标识别定位模块
根据前文介绍的前视声呐图像像素点位置解算的知识,需要声呐水平开角及量程信息。在此我为了开发方便,就将水平开角及量程信息以字符串的形式封装进sensor_msgs/Image中Header下的frame_id里。以水平开角120度,量程10m为例,在msg中的格式为:frame_id: '[120 10]'。再强调一次仅依靠二维声呐图像是无法实现三维位置的解算的,只能获得位置的距离及水平开角,缺少竖直开角的信息。中的rov目标图像合成的数据包。展示的目标框的注释为:目标种类-置信率:(水平开角,距离)原创 2024-04-03 23:10:02 · 882 阅读 · 8 评论 -
前视声呐目标识别定位(三)-部署至机器人
再者声呐的驱动及目标识别模块都是在ubuntu下使用ROS/ROS2进行开发,而AUV的导航模块是性能普通的工控机,还是特制的系统,使用水声通信模块必须借助工控机做中继,只能考虑其它通信方式;最近整理资料时在角落里发现了这些东西,虽然我也觉得整个框架粗糙且暴力,不尽如人意,但想着水下圈子这么小,资料这么少,把这个demo开源也许能为一些水下爱好者的研究开发提供一条不同的思路吧,同时也算是把这些工作做一个归档,日后可以查阅。最后关于目标图片,只截取目标部分的图片,然后压缩编码传输,以满足水声通信的限制。原创 2024-04-03 23:14:15 · 1201 阅读 · 1 评论 -
前视声呐目标识别定位(一)-基础知识
我们将球体经原点水平切开,得到一个圆的水平截面,再取一个角度alpha,就得到一个水平扇形平面,声呐检测到的所有空间点都会投影到这个平面,这个角度就是声呐的水平开角。同时,当r越大时,竖直扇形的弧度越长,由于目标点可能在弧线上的任何一点,此时目标点的不确定性也越大。首先要特别说明的一点是这里说的定位是不完全的定位,只能得到目标距声呐的距离和水平开角,缺少竖直开角这一个维度的信息。提供的就是声呐的原始数据,不仅包含了普通图像形式的声呐图,还包含了声呐相应的水平开角和量程等信息,方便研究者做各种研究。原创 2024-04-03 22:29:39 · 1381 阅读 · 6 评论