本发明涉及一种机器鱼顶球控制方法,属于机器人控制领域。
背景技术:
机器鱼水球比赛是一项涉及自动控制、程序设计、图像采集、水下通讯、抗干扰技术和流体力学等多门学科的机器人水下对抗项目。对于机器鱼水球比赛来说,机器鱼的顶球技术是决定比赛胜负的关键因素。然而,由于机器鱼具有多关节的结构特殊性,其只能前进不能后退。在控制机器鱼进行顶球时,常常会遇到出现擦边球或者机器鱼所处位置和角度不适合顶球的问题。
技术实现要素:
本发明为解决现有机器鱼水球比赛中,机器鱼顶球常常遇到出现擦边球或者机器鱼所处位置和角度不适合顶球的问题,提出了一种基于区域划分与临时点辅助的机器鱼顶球控制方法。
本发明所述的基于区域划分与临时点辅助的机器鱼顶球控制方法,用于在机器鱼水球比赛中控制机器鱼撞击水球;
所述机器鱼顶球控制方法包括:
步骤一、根据对方球门所在方向对机器鱼水球比赛场地二维图像进行区域划分,并给定每个分区对应的顶球策略,转入步骤二;
步骤二、判断机器鱼头部位置点a与水球位置点b的间距
步骤三、判断以机器鱼头部位置点a为起点、水球位置点b为终点的向量
步骤四、根据水球位置点b所在分区对应的顶球策略驱动机器鱼顶球;
步骤五、根据向量
步骤六、设置临时点d,临时点d与水球位置点b的间距
步骤七、驱动机器鱼运动,使机器鱼头部位置点a沿向量
作为优选的是,步骤一采用以下方式对机器鱼水球比赛场地二维图像进行区域划分:
建立机器鱼水球比赛场地二维图像的平面直角坐标系,其中,原点o为己方球门线中点,x轴正方向为对方球门线所在方向,y轴正方向为上边线所在方向;
对所述平面直角坐标系进行区域划分:
以原点o为圆心、r1-r5为半径做圆c1-圆c5,半径r1-半径r5依次增大,半径r1大于球门的深度,半径r2小于球门线的半长,半径r3等于边线的半长,半径r4大于原点o与上边线中点的间距,半径r5等于边线长度与球门深度的差值;
圆c1-圆c5在己方球门立柱间线段所在直线、上边线、对方球门立柱间线段所在直线与下边线的合围区域内的残留弧线依次为al1-al5;
将己方球门立柱间线段所在直线与弧线al1的合围区域定义为a区;
将己方球门立柱间线段所在直线、弧线al1与弧线al2的合围区域定义为b区;
将弧线al2、圆c2的上水平切线、弧线al3与圆c2的下水平切线的合围区域定义为c区,x轴将c区自下而上划分为c1区和c2区;
将己方球门立柱间线段所在直线、圆c2的下水平切线、弧线al3与下边线的合围区域定义为d1区;
将己方球门立柱间线段所在直线、上边线、弧线al3与圆c2的上水平切线的合围区域定义为d2区;
将圆c2的下水平切线与圆c3的交点至对方球门下立柱位置点的线段定为ls1;
将圆c2的上水平切线与圆c3的交点至对方球门上立柱位置点的线段定为ls2;
将弧线al3、线段ls2、弧线al4与线段ls1的合围区域定义为e区,x轴将e区自下而上划分为e1区和e2区;
将弧线al3、线段ls1、弧线al4与下边线的合围区域定义为f1区;
将弧线al3、上边线、弧线al3与线段ls2的合围区域定义为f2区;
将位于线段ls1与线段ls2之间的垂直x轴并将弧线al4与弧线al5之间的x轴平分的线段定义为ls3;
将弧线al4、线段ls2、线段ls3与线段ls1的合围区域定义为g区,x轴将g区自下而上划分为g1区和g2区;
将弧线al4、线段ls1、弧线al5与下边线的合围区域定义为h1区;
将弧线al4、上边线、弧线al5与线段ls2的合围区域定义为h2区;
将弧线al5、对方球门立柱间线段所在直线与下边线的合围区域定义为i1区;
将弧线al5、上边线与对方球门立柱间线段所在直线的合围区域定义为i2区;
将线段ls3、线段ls2、对方球门立柱间线段与线段ls1的合围区域定义为j区,x轴将j区自下而上划分为j1区和j2区。
作为优选的是,每个分区对应的顶球策略为:
a区:驱动机器鱼以速度v1将水球顶离该区;
b区:驱动机器鱼以速度v1将水球顶向对方球门方向;
c1区:驱动机器鱼以速度v2将水球顶向对方场地,速度v2小于速度v1;
c2区:驱动机器鱼以速度v2将水球顶向对方场地;
d1区:驱动机器鱼以速度v3顶球,直至将水球顶离该区域,速度v3小于速度v2;
d2区:驱动机器鱼以速度v3顶球,直至将水球顶离该区域;
e1区:驱动机器鱼将水球顶向g1区中点;
e2区:驱动机器鱼将水球顶向g2区中点;
f1区:驱动机器鱼将水球顶向e1区中点或g1区中点;
f2区:驱动机器鱼将水球顶向e2区中点或g2区中点;
g1区:驱动机器鱼以速度v2将水球顶向对方球门;
g2区:驱动机器鱼以速度v2将水球顶向对方球门;
h1区:驱动机器鱼以速度v3将球顶向g1区中点或j1区中点;
h2区:驱动机器鱼以速度v3将球顶向g2区中点或j2区中点;
i1区:驱动机器鱼以速度v2将水球定向j1区中点;
i2区:驱动机器鱼以速度v2将水球定向j2区中点;
j1区:驱动机器鱼以速度v1将水球顶向对方球门;
j2区:驱动机器鱼以速度v1将水球顶向对方球门。
本发明所述的基于区域划分与临时点辅助的机器鱼顶球控制方法,基于机器鱼头部位置点a与水球位置点b的间距
本发明所述的基于区域划分与临时点辅助的机器鱼顶球控制方法,通过引入顶球区和临时点,能够控制机器鱼对水球进行准确有效的撞击,进而解决了现有机器鱼水球比赛中,机器鱼顶球常常遇到出现擦边球或者机器鱼所处位置和角度不适合顶球的问题。
附图说明
在下文中将基于实施例并参考附图来对本发明所述的基于区域划分与临时点辅助的机器鱼顶球控制方法进行更详细的描述,其中:
图1为实施例所述的基于区域划分与临时点辅助的机器鱼顶球控制方法的流程框图;
图2为实施例提及的机器鱼水球比赛场地的分区示意图;
图3为实施例提及的顶球区示意图,其中,α为向量
具体实施方式
下面将结合附图对本发明所述的基于区域划分与临时点辅助的机器鱼顶球控制方法作进一步说明。
实施例:下面结合图1至图3详细地说明本实施例。
本实施例所述的基于区域划分与临时点辅助的机器鱼顶球控制方法,用于在机器鱼水球比赛中控制机器鱼撞击水球;
所述机器鱼顶球控制方法包括:
步骤一、根据对方球门所在方向对机器鱼水球比赛场地二维图像进行区域划分,并给定每个分区对应的顶球策略,转入步骤二;
步骤二、判断机器鱼头部位置点a与水球位置点b的间距
步骤三、判断以机器鱼头部位置点a为起点、水球位置点b为终点的向量
步骤四、根据水球位置点b所在分区对应的顶球策略驱动机器鱼顶球;
步骤五、根据向量
步骤六、设置临时点d,临时点d与水球位置点b的间距
步骤七、驱动机器鱼运动,使机器鱼头部位置点a沿向量
本实施例的步骤一采用以下方式对机器鱼水球比赛场地二维图像进行区域划分:
建立机器鱼水球比赛场地二维图像的平面直角坐标系,其中,原点o为己方球门线中点,x轴正方向为对方球门线所在方向,y轴正方向为上边线所在方向;
对所述平面直角坐标系进行区域划分:
以原点o为圆心、r1-r5为半径做圆c1-圆c5,半径r1-半径r5依次增大,半径r1大于球门的深度,半径r2小于球门线的半长,半径r3等于边线的半长,半径r4大于原点o与上边线中点的间距,半径r5等于边线长度与球门深度的差值;
圆c1-圆c5在己方球门立柱间线段所在直线、上边线、对方球门立柱间线段所在直线与下边线的合围区域内的残留弧线依次为al1-al5;
将己方球门立柱间线段所在直线与弧线al1的合围区域定义为a区;
将己方球门立柱间线段所在直线、弧线al1与弧线al2的合围区域定义为b区;
将弧线al2、圆c2的上水平切线、弧线al3与圆c2的下水平切线的合围区域定义为c区,x轴将c区自下而上划分为c1区和c2区;
将己方球门立柱间线段所在直线、圆c2的下水平切线、弧线al3与下边线的合围区域定义为d1区;
将己方球门立柱间线段所在直线、上边线、弧线al3与圆c2的上水平切线的合围区域定义为d2区;
将圆c2的下水平切线与圆c3的交点至对方球门下立柱位置点的线段定为ls1;
将圆c2的上水平切线与圆c3的交点至对方球门上立柱位置点的线段定为ls2;
将弧线al3、线段ls2、弧线al4与线段ls1的合围区域定义为e区,x轴将e区自下而上划分为e1区和e2区;
将弧线al3、线段ls1、弧线al4与下边线的合围区域定义为f1区;
将弧线al3、上边线、弧线al3与线段ls2的合围区域定义为f2区;
将位于线段ls1与线段ls2之间的垂直x轴并将弧线al4与弧线al5之间的x轴平分的线段定义为ls3;
将弧线al4、线段ls2、线段ls3与线段ls1的合围区域定义为g区,x轴将g区自下而上划分为g1区和g2区;
将弧线al4、线段ls1、弧线al5与下边线的合围区域定义为h1区;
将弧线al4、上边线、弧线al5与线段ls2的合围区域定义为h2区;
将弧线al5、对方球门立柱间线段所在直线与下边线的合围区域定义为i1区;
将弧线al5、上边线与对方球门立柱间线段所在直线的合围区域定义为i2区;
将线段ls3、线段ls2、对方球门立柱间线段与线段ls1的合围区域定义为j区,x轴将j区自下而上划分为j1区和j2区。
每个分区对应的顶球策略为:
a区:驱动机器鱼以速度v1将水球顶离该区;
b区:驱动机器鱼以速度v1将水球顶向对方球门方向;
c1区:驱动机器鱼以速度v2将水球顶向对方场地,速度v2小于速度v1;
c2区:驱动机器鱼以速度v2将水球顶向对方场地;
d1区:驱动机器鱼以速度v3顶球,直至将水球顶离该区域,速度v3小于速度v2;
d2区:驱动机器鱼以速度v3顶球,直至将水球顶离该区域;
e1区:驱动机器鱼将水球顶向g1区中点;
e2区:驱动机器鱼将水球顶向g2区中点;
f1区:驱动机器鱼将水球顶向e1区中点或g1区中点;
f2区:驱动机器鱼将水球顶向e2区中点或g2区中点;
g1区:驱动机器鱼以速度v2将水球顶向对方球门;
g2区:驱动机器鱼以速度v2将水球顶向对方球门;
h1区:驱动机器鱼以速度v3将球顶向g1区中点或j1区中点;
h2区:驱动机器鱼以速度v3将球顶向g2区中点或j2区中点;
i1区:驱动机器鱼以速度v2将水球定向j1区中点;
i2区:驱动机器鱼以速度v2将水球定向j2区中点;
j1区:驱动机器鱼以速度v1将水球顶向对方球门;
j2区:驱动机器鱼以速度v1将水球顶向对方球门。
本实施例所述的基于区域划分与临时点辅助的机器鱼顶球控制方法,以己方球门线中点为原点o、对方球门线所在方向为x轴正方向、上边线所在方向为y轴正方向的方式建立机器鱼水球比赛场地二维图像的平面直角坐标系。该平面直角坐标系不仅方便区域划分和临时点的设置,而且在下半场双方交换场地时,只需改变分区的设置方向即可。
本实施例所述的基于区域划分与临时点辅助的机器鱼顶球控制方法,将机器鱼水球比赛场地细分为多个区域,给定每个分区对应的顶球策略。这种对机器鱼水球比赛场地进行精细分区的方式有利于对机器鱼的精细控制。
虽然在本文中参照了特定的实施方式来描述本发明,但是应该理解的是,这些实施例仅是本发明的原理和应用的示例。因此应该理解的是,可以对示例性的实施例进行许多修改,并且可以设计出其他的布置,只要不偏离所附权利要求所限定的本发明的精神和范围。应该理解的是,可以通过不同于原始权利要求所描述的方式来结合不同的从属权利要求和本文中所述的特征。还可以理解的是,结合单独实施例所描述的特征可以使用在其他所述实施例中。