掌桥专利:专业的专利平台
掌桥专利
首页

一种抗走水浮漂系统以及控制方法

文献发布时间:2024-04-18 19:52:40


一种抗走水浮漂系统以及控制方法

技术领域

本发明涉及基于图像识别技术的智能抗走水浮漂系统,具体涉及一种抗走水浮漂。

背景技术

随着钓鱼爱好者群体的不断扩大,人们对浮漂功能的需求也日益增多,由于传统浮漂在流动水域里无法正常使用,给广大钓鱼爱好者带来了深深的困扰。目前市面上暂无自身有动力的主动抗走水浮漂,仅有无动力的被动抗走水浮漂。无动力的被动抗走水浮漂主要使用以下两种方案:

1.在漂身增加螺旋纹路:主要通过漂身螺纹将流水的冲力转化为漂身旋转,从而实现一定程度的抗走水作用。无动力被动抗走水,抗走水效果极弱,且转动起来有绕线风险。

2.减小漂身迎水面积:主要通过减小漂身的迎水面积来减小漂身受到的水流冲力,从而实现一定程度的抗走水作用。基本无抗走水效果,与普通浮漂差别不大。

发明内容

本发明的上述技术问题主要是通过下述技术方案得以解决的:

一种抗走水浮漂系统,包括

视觉定位设备:采集智能浮漂图像并根据图像解析智能浮漂位置信息并根据位置信息给出控制信息控制智能浮漂;

智能浮漂:包括漂身以及分别固定在漂身头尾的漂脚和漂尾;所述漂身中设有控制电路以及与控制电路连接的电池与驱动机构;所述控制电路能够接收控制信息并控制驱动机构驱动智能浮漂。

作为优选,视觉定位设备包括

图像采集模块:用于获取到智能浮漂在水中的图像;

图像处理模块:用于计算出智能浮漂在水中的位置变化信息,并通过智能浮漂位置变化信息给出由航向角和速度大小组成的控制指令;

蓝牙通讯模块一:用于发出控制指令以及用于接收智能浮漂部分返回的状态帧。

作为优选,控制电路包括:

蓝牙通讯接收二:用于接收控制指令和发出状态帧;

姿态采集模块:基于MPU9250芯片,用于采集智能浮漂自身的姿态;

姿态控制模块:用于根据控制指令,控制驱动机构。

一种抗走水浮漂系统的控制方法,包括

获取到智能浮漂在水中的图像,图像识别算法计算出智能浮漂在水中的位置变化信息;

抗走水算法通过智能浮漂位置变化信息给出由航向角和速度大小组成的控制指令,

将包含航向角和速度大小的控制指令发送给智能浮漂,

智能浮漂解析控制指令的数据帧后执行控制指令,并将当前状态数据帧给视觉定位设备并显示当前状态数据帧。

作为优选,图像识别算法基于轻量级目标检测模型YOLOV5S,包括:

Backbone网络:包括一个替换Backbone网络中第一个CSP1-1模块的注意力机制模块,用于提取输入图像的特征;其作用是逐渐减小特征图的尺寸,并提取不同层次的特征表示,以捕捉不同尺度的目标信息;

Neck网络:用于将来自主干网络的多层特征图进行融合,以更好地捕捉不同尺度和语义的特征信息;它通过在不同尺度上应用不同大小的卷积核来聚合特征,以提高目标检测的精度和鲁棒性

Head输出层:用于生成检测框和类别预测;它使用卷积和全连接层来对来自Neck网络的特征图进行处理,并输出检测框的位置和大小信息,以及对每个框内物体类别的概率分数;

总的来说,YOLOv5s的Backbone网络负责特征提取,Neck网络用于特征融合,而Head输出层则生成最终的目标检测结果。

作为优选,注意力机制模块包括

两个池化核:分别将输入图像数据的水平方向和竖直方向进行池化,再将输出的特征图进行合并,

一阶卷积核:对合并后的特征图进行卷积,生成过渡特征图并将过渡特征图分解为单独的特征图;

二阶卷积核:对特征图进行卷积,得到与输入相匹配的通道数量;

激活函数:使结果与输入进行相乘作为输出。

作为优选,水流方向向左,以观察者右手方向为X轴正方向,以水面指向观察者的方向为Y轴正方向,建立直角坐标系,智能浮漂实时位置坐标(X,Y),目标区域范围:x1

步骤7.1、当y<=y1时:v=v+90,c=270;

步骤7.2、当y>=y2时:v=v+90,c=90;

步骤7.3、当y1

步骤7.4、当y1(x1+x2)/2时;v=20,c=0;

Kp系数为速度调节比例系数,x1和x2分别为目标区域X轴方向的最小和最大值;y1和y2分别为目标区域Y轴方向的最小和最大值。

作为优选,水流方向向右,以观察者右手方向为X轴正方向,以水面指向观察者的方向为Y轴正方向,建立直角坐标系,智能浮漂实时位置坐标(X,Y),目标区域范围:x1

步骤8.1、当y<=y1时:v=v+90,c=270;

步骤8.2、当y>=y2时:v=v+90,c=90;

步骤8.3、当y1(x1+x2)/2时:v=Kp*(x-(x1+x2)/2),c=180;

步骤8.4、当y1

Kp系数为速度调节比例系数,x1和x2分别为目标区域X轴方向的最小和最大值;y1和y2分别为目标区域Y轴方向的最小和最大值。

因此,本发明具有如下优点:1.本产品可以对抗流水,在水中实现定点,解决了在流水中无法使用浮漂的痛点。2.可玩性高,用户可以通过手机控制流水浮漂稳定在流水中的任意位置实现精准“打窝”,或者以特定路线运动来吸引攻击性鱼类捕食。3.0TA 升级,可以通过手机 APP 对智能浮漂内部驱动软件进行 OTA 升级实现性能优化与玩法升级。

附图说明

图1 为本发明的硬件连接结构示意图。

图2为本发明的充电部分电路图。

图3为本发明的供电部分电路图。

图4为本发明的主控部分电路图。

图5为本发明的传感器部分电路图。

图6为本发明的电机驱动部分电路图。

图7为本发明的入水检测电路部分电路图。

图8为本发明的爆炸图。

图9为本发明的硬件结构示意图。

图10为本发明实施例中,抗走水算法的示意图(水流向左)。

图11为本发明实施例中,抗走水算法的示意图(水流向右)。

具体实施方式

下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。图中,漂尾1、醒目豆2、上壳3、防水隔板4、电路板5、电池6、滑漂导管7、下壳8、顶针插座9、弹簧顶针10、螺纹帽11、堵头12、防挂罩13、螺旋桨14、电机15、重物16、弹簧17、漂脚18。

实施例:

一、本发明用于解决流水环境下无法使用浮漂钓鱼的难题,提供了一种主动抗走水的智能浮漂解决方案。智能抗走水浮漂系统主要由视觉定位部分和智能浮漂部分组成。

视觉定位部分:指安装了“智能浮漂”应用的手机、平板、电脑等具有摄像头、蓝牙通讯功能及图像处理能力的智能设备。

智能浮漂部分:与常见的由漂尾、漂身、漂脚组成三段式浮漂外观结构相似,本发明的创新点是在漂身中集成了控制电路、电池与推进电机,从而使浮漂具有姿态调控能力,进而实现抗走水功能。

以安装了“智能浮漂”应用的智能手机作为视觉定位部分为例,智能抗走水浮漂系统的工作过程如下:

“智能浮漂”应用通过调用手机摄像头获取到智能浮漂在水中的图像,由图像识别算法计算出智能浮漂在水中的位置变化情况,抗走水算法通过智能浮漂位置变化情况给出由航向角和速度大小组成的控制指令,然后使用蓝牙模块将包含航向角和速度大小的控制数据帧发送给智能浮漂,智能浮漂解析控制数据帧后执行控制指令,并使用蓝牙通讯返回由浮漂当前航向角、目标航向角、速度大小、电量等信息组成的状态数据帧给控制手机,并在应用内显示。

1、视觉定位部分,基于图像识别算法和抗走水算法。

1.1图像识别算法。

本发明的图像识别算法基于轻量级目标检测模型YOLO V5S。YOLO V5S主要由Backbone网络,Neck网络,Head输出层三部分组成。 YOLO V5S模型利用残差网络融合高、低特征层之间的特征信息,有效解决了卷积过深导致的小目标特征丢失问题,在此基础上本发明增加Coordinate attention(CA)注意力机制进一步提升了小目标检测精度,使模型更适合用来检测体积很小的智能浮漂。而且轻量级目标检测模型YOLO V5对硬件算力要求较低,能方便的部署在智能手机、平板、笔记本电脑等便携移动智能设备上。

智能浮漂放入水中后,只有漂尾部分漏出水面,智能浮漂露出水面的漂尾部分实际大小一般在4mm*12cm左右,离岸较近时浮漂图像比较清晰,模型对浮漂的检测效果较好;10m以外由于图像中漂尾所占的像素点很少,很容易漏检测。为了解决检测远处小目标时目标特征信息丢失检测效果较差的问题,本发明加入Coordinate attention(CA)注意力机制,让算法模型集中在需要关注的区域,有效提高了对远处漂尾检测的精度。

CA模块首先使用两个池化核分别将输入图像数据的水平方向和竖直方向进行池化,再将输出的特征图进行合并,使用一阶卷积核对合并后的特征图进行卷积,生成过渡特征图,然后将过渡特征图分解为单独的特征图,再使用一阶卷积核对特征图进行卷积,得到与输入相匹配的通道数量,最后利用激活函数,使结果与输入进行相乘作为输出,从而使小目标的特征信息得到强化。

简而言之,本发明创新性的改进了YOLO V5S 中的Backbone网络,使用CA模块替换原Backbone网络中的第一个CSP1-1模块,经过自主采集浮漂图片数据集训练后,YOLO V5S模型可以精确识别离岸20m远处水面上的浮漂,识别率可达90%,基本实现对智能浮漂的连续目标追踪,但还存在一定的误检测。

1.2、抗走水算法。

一般而言定位的前提是确定并统一坐标系。本系统涉及大地坐标系,载体坐标系与图像坐标系。大地坐标系用以确定物体在现实世界位置的三维直角坐标系;载体坐标系就是由智能浮漂部分中MPU9250确定的三维直角坐标系;图像坐标系就是由智能浮漂部分以采集到图像的左上顶点为原点建立的二维直角坐标系,单位长度为一像素。

根据第一性原理,既然人眼可以直接确定浮漂在水中的位置,那么我们也能使用摄像头实现这个过程,而且这个过程显然不涉及复杂的坐标系转换,所以我们直接使用图像坐标系作为本系统中的唯一坐标系,舍弃复杂繁琐的坐标系转换过程,事实也证明这样做是可行的。具体而言,首先将载体坐标系与大地坐标系的X、Y、Z轴正方向对齐,让载体坐标系与大地坐标系统一;然后将图像坐标系可以看作大地坐标系在摄像头上的投影,这个过程一般是非线性不可逆的。为了简化问题,我们做出如下假设:将水面近似为大地坐标系中与Z轴垂直的一个二维平面,不考虑镜头对投影画面的畸变。于是这个投影过程显然满足下面两个关系:

①点对应关系:图像坐标系中的点在大地坐标系中有且仅有唯一对应的点。

②线对应关系:图像坐标系中的直线在大地坐标系中也是一条直线。因此,有:

③当我们控制图像画面中的浮漂到达图像坐标系中的目标点时,大地坐标系中的浮漂也达到了实际的目标点。

④当我们控制图像画面中的浮漂在图像坐标系中走直线时,大地坐标系中的浮漂也在走直线。

进一步我们可以得到:

⑤当我们控制图像画面中的浮漂在图像坐标系中靠近目标时,大地坐标系中的浮漂也在靠近目标点。由此,我们使用第一性原理避免了定位中复杂的坐标系转换过程。下面介绍基于图像坐标系的抗走水算法。

本发明采用原创的抗走水算法,抗走水算法示意如图10和图11所示,假设观察者面对水面站在岸边,以观察者右手方向为X轴正方向,以水面指向观察者的方向为Y轴正方向,建立直角坐标系。智能浮漂实时位置坐标(X,Y),目标区域范围:x1

假设水流方向向左时,记浮漂的实时速度为v;浮漂的运动角度为c,v位于[0,180]区间,c位于[0,360]区间,则有:

1.当y<=y1时:v=v+90,c=270;

2.当y>=y2时:v=v+90,c=90;

3.当y1

4.当y1(x1+x2)/2时:v=20,c=0;

其中:

Kp系数为速度调节比例系数,在本项目中,Kp系数设置为1.1。

假设水流方向向右时,记浮漂的实时速度为v;浮漂的运动角度为c,v位于[0,180]区间,c位于[0,360]区间,则有:

1.当y<=y1时:v=v+90,c=270;

2.当y>=y2时:v=v+90,c=90;

3.当y1(x1+x2)/2时:v=Kp*(x-(x1+x2)/2),c=180;

4.当y1

目标检测算法检测出的浮漂位置经抗走水算法处理后输出控制数据帧,视觉定位部分的蓝牙模块将控制数据帧发送给智能浮漂部分。

航向角范围:[0°,360°),因为2^16>360>2^8,所以使用两个字节表示航向角。速度大小范围:[0,180],因为2^8>180>0,所以使用一个字节表示速度大小。

控制数据帧由四个字节组成:

Byte0:帧头,表示该帧数据的功能。数值具体含义见帧头功能说明表。

Byte1:航向角高八位数据。

Byte2:航向角低八位数据。

Byte3:速度大小八位数据。

上表所示数据帧,帧头:0X24,运行;航向角:0X005A(90);速度大小:0X64(100)。该帧数据含义为:将航向角调整到90°,将速度调整到100档。

帧头功能说明表

二、如图8所示,本发明涉及的智能浮漂结构上由漂身和滑漂两部分组成。

漂身部分由浮漂外壳、电池6、电路板5、蓝牙天线、电机15、螺旋桨14、防水隔板4、防挂罩13、醒目豆2、滑漂导管7、重物16、充电口、堵头12等部分组成。浮漂外壳分为上下壳,下壳8内装有电池6、电路板5、蓝牙天线,滑漂导管7穿过浮漂外壳,防水隔板13盖在电路板5上,防水隔板13中间孔洞穿过滑漂导管7和蓝牙天线。上壳3盖在下壳8和防水隔板13上方,上壳3中间孔洞穿过滑漂导管7和蓝牙天线。醒目豆2装在上壳3上方,将滑漂导管7和蓝牙天线藏在醒目豆2中。电机15装上搭配的螺旋桨14装在浮漂下壳8下部装电机15的位置。防挂罩13罩在螺旋桨14周围。充电口塞在浮漂下壳8的右端,充电口由弹簧顶针10、顶针插座9、螺纹帽11组成。堵头12拧在充电口上,重物16挂在滑漂导管7下方用于拉低浮漂重心。滑漂导管7内穿过滑漂。滑漂由普通漂尾1、漂脚18和弹簧17组成。漂尾1和漂脚18上下对接,弹簧17一端固定在滑漂导管7,一端固定在漂脚18上。详细情况请查看附图8。

三、如图1-7所示,电路板包括

电源部分:一个与弹簧顶针连接的充电部分电路,一个LDO稳压电路,一个供电部分电路,用于给整个系统供电,所述充电部分电路与LDO稳压电路连接后与充电电池连接,充电电池通过供电部分电路与电机驱动IC连接;

主控部分:包括BLE主控IC,通过蓝牙天线与手机端通信,根据手机端的指令调节电机转速,实现浮漂直线运行,转弯,定点;

传感器部分:同时与BLE主控IC连接,包括一个IMU姿态传感器,包含三轴加速度计,三轴陀螺仪,三轴磁力计,用于测量浮漂电机对应地磁方向,以对应浮漂在视觉中运动方向;

入水检测电路:与BLE主控IC连接,用于检测浮漂是否在水中,以控制浮漂运行状态;

两个电机驱动IC:同时与BLE主控IC和两个电机连接,用于驱动电机给浮漂提供水下动力。

1.1、姿态获取模块:本发明采用MPU9250九轴传感器来获取浮漂当前的姿态信息。

MPU9250包含三轴加速度计、三轴陀螺仪和三轴磁力计,是常用的运动姿态传感器。MPU9250可以通过IIC接口直接向外输出X,Y,Z三轴的加速度、角速度、磁力值,也可以通过其自带的运动处理器(DMP)使用三轴加速度和三轴陀螺仪数据解算出姿态控制领域常用的欧拉角:俯仰角(pitch), 横滚角(roll), 偏航角(yaw)。

当浮漂在水中时,我们主要关心浮漂的偏航角(yaw),但当浮漂被水流推动倾斜时会导致偏航角(yaw)发生较大变化,这是不利于浮漂状态控制的。为了解决浮漂倾斜对偏航角(yaw)的影响,本发明将DMP解算出的欧拉角与三轴磁力计值结合,利用旋转矩阵根据坐标系转换原理,得到修正后的航向角(yaw_now)。

记X、Y、Z轴的磁力计读数分别为

1.2、姿态调控模块:本发明采用由PWM波驱动的空心杯电动机带动螺旋桨推水来调控浮漂的姿态。通过主控输出不同占空比的PWM,可让电机以不同功率运行,占空比越大电机运行功率越大,当占空比为0时,电机不工作,占空比为1时,电机全速运行。

记左侧电机输入的PWM波占空比为PL,右侧电机输入的PWM波占空比为PR。当PL=PR时,左右两侧电机运行功率相等,浮漂向前运动;当PL>PR时,左侧电机运行功率大于右侧电机运行功率,浮漂将向右转动;当PR>PL时,右侧电机运行功率大于左侧电机运行功率,浮漂将向左转动。

理论上当PL=PR时,两侧电机运行功率相等,浮漂应向前走直线,但由于浮漂结构上无法完全做到左右对称,左右电机的安装位置与推力无法做到完全一致,以及存在外界水流干扰等原因,当PL=PR时,浮漂会有很大晃动,无法实现理想的走直线效果。为了解决浮漂姿态控制的问题,本发明使用经典控制算法位置式PID实现了浮漂的自稳与走直线。

PID就是比例(proportional)、积分(integral)、微分(derivative)的缩写,具体而言就是将误差(err)的比例项、积分项、微分项组合起来作为控制的输出。位置式PID算法的离散形式如下所示:

记当前状态为

误差项:

比例项:

积分项:

微分项:

输出项:

在本新型实用中,

该位置式PID算法实现了当浮漂往右偏时,右侧电机开启,推动浮漂向左转动;浮漂往左偏时,左侧电机开启,推动浮漂向右转动;且偏移角度越大,电机输出功率越大,从而实现了浮漂的自稳。

运动控制是在自稳的基础上实现的。在运动控制里,将输入电机占空比分为两部分:

假设浮漂当前速度大小

计算Speed:

航向角误差项:

输出项:

如果

如果

随着实际航向角

1.3、状态数据帧。

智能浮漂会以每秒一次的固定频率向视觉定位部分返回由浮漂当前的航向角、目标航向角、速度大小以及电池电量组成的状态信息帧。

航向角范围:[0°,360°),因为2^16>360>2^8,所以使用两个字节表示航向角。速度大小范围:[0,180],因为2^8>180>0,所以使用一个字节表示速度大小。电池电量范围:[0,100],因为2^8>100>0,所以使用一个字节表示电池电量。

该状态数据帧的含义为:目标航向角90°,当前航向角90°,当前速度大小100档,电池电量98%。

需要注意的是:本发明需要保护的上述描述的硬件及其连接结构,对于涉及到信号的处理方法和过程,是为了解释本发明的硬件结构的工作原理,不属于本发明的保护范围,采用本发明的硬件连接结构后,信号处理的过程均能够通过现有技术实现。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

尽管本文较多地使用了漂尾1、醒目豆2、上壳3、防水隔板4、电路板5、电池6、滑漂导管7、下壳8、顶针插座9、弹簧顶针10、螺纹帽11、堵头12、防挂罩13、螺旋桨14、电机15、重物16、弹簧17、漂脚18等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。

技术分类

06120116329697