一种多个自主式水下航行器协同作业防碰撞方法及系统
技术领域
本发明属于水下航行避撞技术领域,具体涉及一种多个自主式水下航行器协同作业防碰撞方法及系统。
背景技术
水下自主式水下航行器(又称AUV),能够在某一单独海域完成水底勘察、水文要素获取、打捞救援等人类无法亲自实现的特殊任务。随着AUV的广泛使用,它极大地拓展了人类探索的空间。同时,单AUV水下作业时,工作效率和工作局限性逐渐暴露。水下多AUV系统组群应用,越来越成为一种选择趋势,多AUV协同作业具有高度的并行性、冗余性,通过水下合作协调,可完成更为复杂的水下作业任务,大大提高了工作效率和探测目标的几率。随着多AUV协同作业的发展,水下AUV之间存在相互碰撞的风险,如发生碰撞事故,直接导致工作任务无法完成,以及因AUV本身价格高昂造成的巨大经济损失。因此,急需一种多自主式水下航行器协同作业防碰撞系统及方法,以解决上述不足。
发明内容
针对当前多水下AUV集群作业时,存在碰撞的风险。本发明提出的一种多个自主式水下航行器协同作业防碰撞方法及系统,可防止多AUV集群系统航行工作中,避免发生相互碰撞,本发明提供一种多个自主式水下航行器协同作业防碰撞方法和系统。
本发明提供如下技术方案:一种多个自主式水下航行器协同作业防碰撞方法,包括以下步骤:
S1:选取多个自主式水下航行器中的任意两个自主式水下航行器,作为第一水下航行器和第二水下航行器;
S2:简化所述自主式水下航行器的形状,将所述自主式水下航行器的首部和尾部简化为半球体,;确定第一水下航行器首部球心的坐标OA为(xA,yA,zA)、第一水下航行器尾部球心的坐标OC为(xC,yC,zC)、第二水下航行器首部球心的坐标OB为(xB,yB,zB)、第二水下航行器尾部球心的坐标OD为(xD,yD,zD);令第一水下航行器首部和尾部的半球体半径均为r1,第二水下航行器首部和尾部的半球体半径均为r2;
S3:计算第一水下航行器的首部球心与第二水下航行器的首部球心和尾部球心的距离:DAB、DAD;并计算第一水下航行器的尾部球心与第二水下航行器的首部球心和尾部球心的距离:DCB、DCD;
S4:根据所述步骤S3得到的DAB、DAD、DCD、DCB,计算第一水下航行器首部球体与第二水下航行器首部和尾部间的距离:ΔAB、ΔAD,并计算第一水下航行器尾部球体与第二水下航行器首部和尾部间的距离:ΔCB、ΔCD;
S5:将所述S4步骤得到的ΔAB、ΔAD、ΔCB、ΔCD与防碰撞安全系数值比较,若小于所述防碰撞安全系数值,则水面控制站通过水声通信发射器向第一水下航行器和第二水下航行器发出信号,调整两个水下航行器的航向,避免碰撞,若大于所述防碰撞安全系数值,则进一步计算第一水下航行器和第二水下航行器躯体间轴线间最小距离dmin;所述防碰撞安全系数值为10米;
S6:根据所述S5步骤计算得到的第一水下航行器和第二水下航行器躯体间轴线间最小距离dmin,计算得到第一水下航行器和第二水下航行器胶囊体之间的最小距离ΔCC,ΔCC=dmin-r1-r2,将所述ΔCC与所述防碰撞安全系数值相比较,若小于所述防碰撞安全系数值,则水面控制站继续通过水声通信发射器向第一水下航行器和第二水下航行器发出信号,调整两个水下航行器的航向;若大于所述防碰撞安全系数值,则水面控制站继续通过水声通信发射器向第一水下航行器和第二水下航行器继续保持现有航向航行;
S7:继续选择多个自主式水下航行器剩余其他的水下航行器中的任意两个重复所述步骤S1-S6,避免所有的自主式水下航行器在航行中碰撞情况的发生。
进一步地,所述S3步骤计算DAB、DAD、DCD、DCB的计算公式为:
进一步地,所述S4步骤计算ΔAB、ΔAD、ΔCB、ΔCD的计算公式为:
ΔAB=DAB-r1-r2;ΔAD=DAD-r1-r2;ΔCB=DCB-r1-r2;ΔCD=DCD-r1-r2。
进一步地,所述S5步骤包括以下步骤:
S51:将所述第一水下航行器和第二水下航行器的躯体中心线段长分别设为L1、L2,确定第一水下航行器的躯体中心线段首端点M的坐标为(x1,y1,z1)、尾端点N的坐标为(x2,y2,z2),确定第二水下航行器的躯体中心线段首端点P的坐标为(x3,y3,z3)、尾端点M的坐标为(x4,y4,z4);
S52:取第一水下航行器躯体中心线段任一点R、第二水下航行器躯体中心线段任一点K,构建R点和K点坐标计算模型:
其中,s为R点坐标计算参数,t为K点坐标计算参数;
S53:计算第一下航行器躯体中心线段任一点R与第二水下航行器躯体中心线段任一点K的向量RK:RK=(P-M)-s(N-M)+t(Q-P),并代入所述S51步骤确定的各个端点坐标,得到所述向量RK:
RK=[x3-x1,y3-y1,z3-z1]-s[x2-x1,y2-y1,z2-z1]+t[x4-x3,y4-y3,z4-z3];
S54:利用S52步骤构建的R点和K点坐标计算模型构建带有R点坐标计算参数s和K点坐标计算参数t的所述向量RK的计算模型;
并构建有关于参数s和t的第一水下航行器躯体中心线段任一点R和第二水下航行器躯体中心线段任一点K之间距离‖RK‖的计算模型f(s,t),求解两个水下航行器的躯体中心线段长L1和L2之间的最小距离,进而求解得到R点坐标计算参数s和K点坐标计算参数t;
再分别求点M、N到线段PQ,点P、Q到线段MN的最小距离,以及线段MN和线段PQ之间的公垂线距离dCOMM,将空间中两线段MN和PQ之间的最短距离转为点到线段间距离计算,进而构建第一水下航行器和第二水下航行器躯体间轴线间最小距离dmin的计算模型。
进一步地,所述S54步骤中构建的所述向量RK的计算模型为RK=[ax-scx+tbx,ay-scy+tby,az-scz+tbz],其中:
进一步地,所述S54步骤中构建的‖RK‖的计算模型f(s,t)如下:
f(s,t)=(‖RK‖)2=(ax-scx+tbx)2+(ay-scy+tby)2+(az-scz+tbz)2;
进一步地,所述S54步骤中求解两个水下航行器的躯体中心线段长L1和L2之间的最小距离转化为求解所述‖RK‖的计算模型f(s,t)的最小值问题,包括以下步骤:
S541:令所述‖RK‖的计算模型f(s,t)分别关于所述s和所述t的二阶导为0:
S542:进而得到求解所述s和所述t的计算公式:
进一步地,所述S54步骤中构建的第一水下航行器和第二水下航行器躯体间轴线间最小距离dmin的计算模型为:
其中,dM、dP、dN、dQ分别为点M到线段PQ的最小距离、点P到线段MN的最小距离、点N到线段PQ的最小距离、点Q到线段MN的最小距离,dCOMM为两线段公垂线距离。
进一步地,所述点M到PQ的最小距离的计算方法包括以下步骤:
B1:所述点M在不同位置时,分别过点M做PQ所在直线垂线,垂足为点C;
B2:构建点M到PQ的最小距离dM的计算模型:
其中,u为求解参数,|·|为两点之间的距离;采用点到线段距离求解的矢量法,定义参数u:
其中PM为点P和点M之间的向量,PQ为点P和点Q之间的向量;
B3:通过三角形面积相等条件,求解所述B2中的两点之间的距离|MC|、|MP|、|MQ|,以|MC|为例:
其中,MP为点M和点P之间的向量,MQ为点M和点Q之间的向量。
本发明还提供采用上述方法的多个自主式水下航行器协同作业防碰撞系统,所述系统包括作为控制中心的水面控制站和多个自主式水下航行器湿端,所述水面控制站与多个自主式水下航行器湿端双相通信连接。所述水面控制站包括控制工作站、高精度GPS定位模块和水声通信发射器;所述自主式水下航行器湿端包括安装在所述自主式水下航行器本体的首部声学应答器和尾部声学应答器,以及安装在所述自主式水下航行器本体中间的航行计程仪和高精度惯导模块。
本发明的有益效果为:
1、本发明提供的多个自主式水下航行器协同作业防碰撞方法为基于空间几何模型方法,计算量小、检测效率高,结果稳定,适合于实际应用。
2、本发明提供的多个自主式水下航行器协同作业防碰撞方法采取简化AUV模型,再预留安全余量,将空间问题转化为两线段的最短距离和点到线段间距离计算,简单可靠。
3)本发明提供的多个自主式水下航行器协同作业防碰撞系统基于现有成熟的高精度GPS、水声声学应答器、航行计程仪传感器,AUV设计和改造极为方便易实现。
4)本发明提供的多个自主式水下航行器协同作业防碰撞方法和系统基于水声通信,相对于其他防碰撞设计方式,成本低、后期维护便利等优点。
附图说明
在下文中将基于实施例并参考附图来对本发明进行更详细的描述。其中:
图1为本发明提供的方法流程示意图;
图2为本发明提供的方法中第一水下航行器与第二水下航行器首尾部端点坐标及连线示意图;
图3为本发明实施例2提供的方法中第一水下航行器与第二水下航行器躯体间示意图;
图4为本发明实施例2提供的方法中点M到PQ的最小距离dM的计算方法示意图;
图5为本发明提供的系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,为本实施例提供的一种多个自主式水下航行器协同作业防碰撞方法,包括以下步骤:
S1:选取多个自主式水下航行器中的任意两个自主式水下航行器,作为第一水下航行器和第二水下航行器;
S2:简化所述自主式水下航行器的形状,将所述自主式水下航行器的首部和尾部简化为半球体,;确定第一水下航行器首部球心A的坐标OA为(xA,yA,zA)、第一水下航行器尾部球心C的坐标OC为(xC,yC,zC)、第二水下航行器首部球心B的坐标OB为(xB,yB,zB)、第二水下航行器尾部球心D的坐标OD为(xD,yD,zD);令第一水下航行器首部和尾部的半球体半径均为r1,第二水下航行器首部和尾部的半球体半径均为r2;
S3:计算第一水下航行器的首部球心A与第二水下航行器的首部球心B和尾部球心D的距离:DAB、DAD;并计算第一水下航行器的尾部球心C与第二水下航行器的首部球心B和尾部球心D的距离:DCB、DCD;
S4:根据所述步骤S3得到的DAB、DAD、DCD、DCB,计算第一水下航行器首部球体与第二水下航行器首部和尾部间的距离:ΔAB、ΔAD,并计算第一水下航行器尾部球体与第二水下航行器首部和尾部间的距离:ΔCB、ΔCD;
S5:将所述S4步骤得到的ΔAB、ΔAD、ΔCB、ΔCD与防碰撞安全系数值比较,若小于所述防碰撞安全系数值,则水面控制站通过水声通信发射器向第一水下航行器和第二水下航行器发出信号,调整两个水下航行器的航向,避免碰撞,若大于所述防碰撞安全系数值,则进一步计算第一水下航行器和第二水下航行器躯体间轴线间最小距离dmin;所述防碰撞安全系数值为10米;
S6:根据所述S5步骤计算得到的第一水下航行器和第二水下航行器躯体间轴线间最小距离dmin,计算得到第一水下航行器和第二水下航行器胶囊体之间的最小距离ΔCC,ΔCC=dmin-r1-r2,将所述ΔCC与所述防碰撞安全系数值相比较,若小于所述防碰撞安全系数值,则水面控制站继续通过水声通信发射器向第一水下航行器和第二水下航行器发出信号,调整两个水下航行器的航向;若大于所述防碰撞安全系数值,则水面控制站继续通过水声通信发射器向第一水下航行器和第二水下航行器继续保持现有航向航行;
S7:继续选择多个自主式水下航行器剩余其他的水下航行器中的任意两个重复所述步骤S1-S6,避免所有的自主式水下航行器在航行中碰撞情况的发生。
实施例2
如图1所示,为本实施例提供的一种多个自主式水下航行器协同作业防碰撞方法,包括以下步骤:
S1:选取多个自主式水下航行器中的任意两个自主式水下航行器,作为第一水下航行器和第二水下航行器;
S2:简化所述自主式水下航行器的形状,将所述自主式水下航行器的首部和尾部简化为半球体,;确定第一水下航行器首部球心A的坐标OA为(xA,yA,zA)、第一水下航行器尾部球心C的坐标OC为(xC,yC,zC)、第二水下航行器首部球心B的坐标OB为(xB,yB,zB)、第二水下航行器尾部球心D的坐标OD为(xD,yD,zD);令第一水下航行器首部和尾部的半球体半径均为r1,第二水下航行器首部和尾部的半球体半径均为r2;
S3:如图2所示,计算第一水下航行器(即AUV1)的首部球心A与第二水下航行器(即AUV2)的首部球心B和尾部球心D的距离:DAB、DAD;并计算第一水下航行器的尾部球心C与第二水下航行器的首部球心B和尾部球心D的距离:DCB、DCD;
计算DAB、DAD、DCD、DCB的计算公式为:
S4:根据所述步骤S3得到的DAB、DAD、DCD、DCB,计算第一水下航行器首部球体与第二水下航行器首部和尾部间的距离:ΔAB、ΔAD,并计算第一水下航行器尾部球体与第二水下航行器首部和尾部间的距离:ΔCB、ΔCD;
计算ΔAB、ΔAD、ΔCB、ΔCD的计算公式为:
ΔAB=DAB-r1-r2;ΔAD=DAD-r1-r2;ΔCB=DCB-r1-r2;ΔCD=DCD-r1-r2;
S5:将所述S4步骤得到的ΔAB、ΔAD、ΔCB、ΔCD与防碰撞安全系数值比较,若小于所述防碰撞安全系数值,则水面控制站通过水声通信发射器向第一水下航行器和第二水下航行器发出信号,调整两个水下航行器的航向,避免碰撞,若大于所述防碰撞安全系数值,则进一步计算第一水下航行器和第二水下航行器躯体间轴线间最小距离dmin;所述防碰撞安全系数值为10米;
具体包括以下步骤:
S51:如图3所示,将所述第一水下航行器和第二水下航行器的躯体中心线段长分别设为L1、L2,确定第一水下航行器的躯体中心线段首端点M的坐标为(x1,y1,z1)、尾端点N的坐标为(x2,y2,z2),确定第二水下航行器的躯体中心线段首端点P的坐标为(x3,y3,z3)、尾端点M的坐标为(x4,y4,z4);
S52:取第一水下航行器躯体中心线段任一点R、第二水下航行器躯体中心线段任一点K,构建R点和K点坐标计算模型:
其中,s为R点坐标计算参数,t为K点坐标计算参数;
S53:计算第一下航行器躯体中心线段任一点R与第二水下航行器躯体中心线段任一点K的向量RK:RK=(P-M)-s(N-M)+t(Q-P),并代入所述S51步骤确定的各个端点坐标,得到所述向量RK:
RK=[x3-x1,y3-y1,z3-z1]-s[x2-x1,y2-y1,z2-z1]+t[x4-x3,y4-y3,z4-z3];
S54:利用S52步骤构建的R点和K点坐标计算模型构建带有R点坐标计算参数s和K点坐标计算参数t的所述向量RK的计算模型;
RK=[ax-scx+tbx,ay-scy+tby,az-scz+tbz],其中:
并构建有关于参数s和t的第一水下航行器躯体中心线段任一点R和第二水下航行器躯体中心线段任一点K之间距离‖RK‖的计算模型f(s,t):
f(s,t)=(‖RK‖)2=(ax-scx+tbx)2+(ay-scy+tby)2+(az-scz+tbz)2;
然后求解两个水下航行器的躯体中心线段长L1和L2之间的最小距离,进而求解得到R点坐标计算参数s和K点坐标计算参数t;
将求解两个水下航行器的躯体中心线段长L1和L2之间的最小距离转化为求解所述‖RK‖的计算模型f(s,t)的最小值问题,包括以下步骤:
S541:令所述‖RK‖的计算模型f(s,t)分别关于所述s和所述t的二阶导为0:
S542:进而得到求解所述s和所述t的计算公式:
再分别求点M、N到线段PQ,点P、Q到线段MN的最小距离,以及线段MN和线段PQ之间的公垂线距离dCOMM,将空间中两线段MN和PQ之间的最短距离转为点到线段间距离计算,进而构建第一水下航行器和第二水下航行器躯体间轴线间最小距离dmin的计算模型:
其中,dM、dP、dN、dQ分别为点M到线段PQ的最小距离、点P到线段MN的最小距离、点N到线段PQ的最小距离、点Q到线段MN的最小距离,dCOMM为两线段公垂线距离;
如图4所示,点M到PQ的最小距离dM的计算方法包括以下步骤:
B1:所述点M在不同位置时,分别过点M做PQ所在直线垂线,垂足为点C;
B2:构建点M到PQ的最小距离dM的计算模型:
其中,u为求解参数,|·|为两点之间的距离,即|MC|为点M和点C之间的距离,|MC|为点M和点P之间的距离,|MQ|为点M和点Q之间的距离;采用点到线段距离求解的矢量法,定义参数u:
其中PM为点P和点M之间的向量,PQ为点P和点Q之间的向量;其中,图4中的u≤0为图(a)所示的情况,0<u<1为图(b)所示情况,u≥1为图c所示情况;
B3:通过三角形面积相等条件,求解所述B2中的两点之间的距离|MC|、|MP|、|MQ|,以|MC|为例:
其中,MP为点M和点P之间的向量,MQ为点M和点Q之间的向量;
S6:根据所述S5步骤计算得到的第一水下航行器和第二水下航行器躯体间轴线间最小距离dmin,计算得到第一水下航行器和第二水下航行器胶囊体之间的最小距离ΔCC,ΔCC=dmin-r1-r2,将所述ΔCC与所述防碰撞安全系数值相比较,若小于所述防碰撞安全系数值,则水面控制站继续通过水声通信发射器向第一水下航行器和第二水下航行器发出信号,调整两个水下航行器的航向;若大于所述防碰撞安全系数值,则水面控制站继续通过水声通信发射器向第一水下航行器和第二水下航行器继续保持现有航向航行;
S7:继续选择多个自主式水下航行器剩余其他的水下航行器中的任意两个重复所述步骤S1-S6,避免所有的自主式水下航行器在航行中碰撞情况的发生。
实施例3
如图5所示,为本实施例提供的采用实施例2提供的方法的多个自主式水下航行器协同作业防碰撞系统,所述系统包括作为控制中心的水面控制站和多个自主式水下航行器湿端,所述水面控制站与多个自主式水下航行器湿端双相通信连接。所述水面控制站包括控制工作站、高精度GPS定位模块和水声通信发射器;所述自主式水下航行器湿端包括安装在所述自主式水下航行器本体的首部声学应答器和尾部声学应答器,以及安装在所述自主式水下航行器本体中间的航行计程仪和高精度惯导模块。
虽然已经参考优选实施例对本发明进行了描述,但在不脱离本发明的范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件。尤其是,只要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本发明并不局限于文中公开的特定实施例,而是包括落入权利要求的范围内的所有技术方案。