1.一种基于声呐图像的水下机器人定位方法,其特征在于,包括以下步骤:S1,通过高斯滤波对声呐图像进行处理;
S2,通过对经过步骤S1处理后的图像灰度值设置阈值,对像素点进行分类,将检测目标与背景分离;
S3,通过中值滤波去除经过步骤S2处理后的图像底边两侧的强噪声;
S4,对经过步骤S1‑S3处理后的图像进行边缘检测;
S5,采用线段检测算法对步骤S4处理后的声呐图像进行线段提取;
S6,对检测的线段长度设置阈值,排除较短的线段,利用检测到线段的斜率和声呐图像原点对线段进行分类以此来确定池壁的位置信息;
S7,计算声呐图像原点到被检测线段的像素距离,利用声呐图像的像素高度和当前声呐最大量程的对应关系,换算出像素距离转化为实际距离的比例尺;
S8,以步骤S7得到的比例尺将像素距离转化为实际距离,得到距离参数;
S9,以步骤S8得到实际距离确定机器人位置坐标,对产生的坐标进行筛选,将产生的坐标每M个分为一组,按升序排序,计算中间N个坐标的平均值得到最终坐标,将坐标传入可视化界面进行显示,记录运动轨迹,若水池的宽度为已知量,可以利用水池宽度对机器人进行辅助定位;
S10,设置危险距离报警,当机器人距离池壁小于一定距离时提醒机器人停止前行。
2.根据权利要求1所述的一种基于声呐图像的水下机器人定位方法,其特征在于:S1中高斯滤波器的模板系数随着与模板中心的距离增大而减小,服从二维高斯分布规律,其核心函数如下:其中f(x,y)为图像所对应的灰度值,σ为方差,μ为均值,由于计算均值的中心点为原点,因此均值为0,可以得到:
3.根据权利要求1所述的一种基于声呐图像的水下机器人定位方法,其特征在于:S2中实现目标与背景分离的方式如下;
阈值分割的阈值是一个变量,具体操作是将输入的灰度图转化为数组形式,对数组中的所有灰度值按升序进行排序,取数组后30%数量的灰度值的均值作为阈值,所取的30%是以池壁的成像面积所占整张图像的比例大小为依据;
按阈值将灰度值设置为0或者255,以此来实现图像的二值化,其函数如下:其中,dst(x,y)为阈值分割后像素坐标对应的灰度值,src(x,y)为未处理前像素坐标对应的灰度值,tresh为阈值分割的阈值,maxvel为最大灰度值255。
4.根据权利要求1所述的一种基于声呐图像的水下机器人定位方法,其特征在于:S6包括以下子步骤;
S6.1,对线段进行分类确定池壁位置信息,若声呐垂直于水池底边进行探测,成像环境中位于机器人正前方的水池底边池壁成像接近水平,位于水池两侧池壁成像接近两条垂直线段;但机器人在水下空间作业时,由于机器人的旋转和晃动,声呐设备的探测方向难以一直保持垂直于底边;为此提出利用检测线段的斜率和声呐图像原点(x0,y0)进行池壁三边的区分,即使声呐在一定程度的旋转范围内,也能实现线段的检测和分类;
S6.2,在机器人刚放入水下时,声呐垂直于水池底边进行探测,经过LSD线段检测返回得到线段两个端点(x1,y1)与(x2,y2),并结合已知的声呐图像原点(x0,y0),可以通过以下公式对线段进行分类;
当检测到的线段是水平线时,那么该线段属于水池的底边;当检测到的线段垂直时,那么该线段属于水池两条竖边中的一条,需要借助声呐图像原点的横坐标x0进一步判断,当检测到线段的中点横坐标小于x0时,该线段属于左竖边;当检测到线段呢的中点横坐标大于x0时,该线段属于右竖边;但声呐发生旋转时,若左竖边线段中点横坐标大于x0,或者右竖边线段中点横坐标小于x0,就很难保证左右竖边的区分正确,这时就必须对声呐实现线段检测的旋转角度进行计算;
S6.3,计算声呐实现线段检测的最小旋转角度,在机器人刚进入水池且距离左竖边刚好等于安全工作距离SD,这时机器人与底边的距离BD最长,那么声呐旋转角度θ的最小值为,若声呐以垂直底边为基准向左旋转角度小于θ,左竖边不会与声呐中轴线相交,此时线段分类正确;若声呐向左旋转角度超过θ,声呐中轴线与左竖边相交,此时线段分类出现错误;同理,当声呐在起点也与右竖边距离等于机器人安全工作距离,声呐向右旋转角度小于θ,右竖边也不会与声呐中心轴相交造成线段分类错误;
S6.4,由S6.3可知声呐以垂直于底边为基准,旋转角度在‑θ到θ范围内旋转时,左右竖边的区分不会出现错误,之后可以利用检测到线段的斜率对竖边和底边进行区分;
tan(‑θ)
(slope>tan(90°‑θ))∪(slope
5.根据权利要求1所述的一种基于声呐图像的水下机器人定位方法,其特征在于:S7所述包括以下子步骤;
S7.1,当声呐只发生旋转不发生位移时,声呐原点与检测到线段的垂直距离不会发生改变,当检测到线段斜率不存在时,即x1等于x2;则声呐图像原点到被检测线段的像素距离公式如下:S7.2,当检测到线段的斜率存在时,即x1不等于x2时,利用两个端点(x1,y1)和(x2,y2),可以得到被检测直线的方程,并变换为:Ax+By+C=0
其中A、B、C均为直线方程表达式的系数,通过计算可以得到,
利用点到直线的距离公式,
将声呐图像原点坐标代入,
其中距离d也就是水下机器人到池壁的像素距离,将声呐图像原点与左竖边的距离记为xL,与右竖边的距离记为xR,与底边的距离记为y;
S7.3,利用声呐图像的像素高度和声呐当前最大量程的对应关系换算出像素距离到实际距离的比例尺,公式如下:式中s为像素距离到实际距离转化的比例尺,range为当前声呐的最大量程,height为声呐图像的像素高度。
6.根据权利要求5所述的一种基于声呐图像的水下机器人定位方法,其特征在于:步骤S8中根据S7.3得到的比例尺s,将像素距离转化为实际距离,公式如下:其中XL是声呐图像原点与左竖边的实际距离,XR是声呐图像原点与右竖边的实际距离,Y是声呐图像原点与底边的实际距离,当机器人位于水池起点时,可以得到:其中Width为水池的宽度,Length为水池的长度。
7.根据权利要求1所述的一种基于声呐图像的水下机器人定位方法,其特征在于:步骤S9中已知水池的宽度为W,按下面的方式进行辅助定位提高精度,W‑0.1
其中XL与XR分别为声呐与水池左右竖边的距离。
8.根据权利要求1所述的一种基于声呐图像的水下机器人定位方法,其特征在于:还包括步骤S11,机器人定位精度分析;具体实现方式如下,将声呐放置于机器人上,机器人在水池中移动检测所产生的坐标为(XL,Y),人为测量的真实坐标为 用坐标的偏移量来表示定位精度;
9.根据权利要求1所述的一种基于声呐图像的水下机器人定位方法,其特征在于:步骤S4中采用Canny边缘检测算法;步骤S5中采用LSD线段检测算法。