论文部分内容阅读
摘要:针对于在水中角力项目中,多数的策略只是顶最佳点的单一局势下,本论文主要讲解了一种基于划分区域的机器鱼水中角力策略。通过控制区和缓冲区的作用,能够使机器鱼更大程度的减少受到水流等环境的影响。同时采用机器鱼在不同的区域内,不同的游动方式,使鱼头能够始终保持水平的去撞击圆环。多次实验结果表明,该方法能够让机器鱼即便处于不同的水环境中,都能够较为高效进行角力比赛,并且比只顶最佳点的策略省时很多。该策略在实际比赛中也取得了不错的成绩。
关键词:多关节仿生智能鱼;水中角力;区域划分;力度控制;比赛策略
中图分类号:TP242 文献标识码:A 文章编号:1009-3044(2018)16-0179-03
Competition Policy Based on Robotic Fish in Water Divided Region
WANG Sheng-zhao, ZHANG Yan, XIA Qing-feng
(Jinling College of Nanjing University, Nanjing 210089, China)
Abstract:For the wrestling project in water, the general strategy is only a single situation with the best point. This paper mainly explains a wrestle strategy based on the region-divided machine fish. By controlling the area and the buffer zone, the robotic fish can be reduced to a greater extent by the influence of the environment such as water flow. At the same time, robotic fish are used in different areas and different swimming methods so that the fish head can always maintain a level to hit the ring. The results of several experiments show that this method can make robotic fish more effective in playing games even when they are in different water environments, and it saves a lot of time compared to the strategy that only has the best point. The strategy also achieved good results in the actual game.
Key words:Multi-joint robot fish; Water Competition; Competition strategy
國际水中机器人大赛是一项国际权威的机器人大赛,它以智能仿生机器鱼为主题,在水中进行各类竞赛,包括竞速、花样游泳、追逐和激烈对抗的水球比赛。作为水中机器人比赛中的一个新兴项目,水中角力不同以往的竞速类项目,它既考验选手们的编程策略的能力,同样需要选手们有着随机应变以及强大的思维和想象能力。在比赛中由于需要考虑诸多外界因素的干扰,因此多数策略并不能像理想中的那样高效率的完成比赛。本论文所介绍的基于划分区域的角力策略经过多次实验和改进,最终成了一种高效率的水中角力策略。
1全局视觉水中角力比赛的要求[1]
参赛队各派一条机器鱼参加比赛。以水池两个长边池壁的中点连线为分界线,将水池划分为左区和右区两个区域。比赛开始时,裁判员将漂浮物放入水中,要求其圆心与水池中心重合并保持静止,同时将比赛双方的机器鱼如图1所示位置静止放入漂浮物的内部。比赛开始后,A鱼将漂浮物顶向左区,B 鱼顶向右区。
2多关节仿生智能机器鱼
本论文所介绍的是如图2所示拥有类似于自然界中鱼体的外形、运动模式甚至交互模式的仿生智能机器鱼,它拥有“3沟道”,“3关节”设计,仿生人类最灵活的手指结构设计。“2.4G”自动调频设计,72M高速处理CPU,STM32控制系统。动力持久,采用7.4V、1800mAh锂电池超长待机。采用流体力学控制算法,运动更快、更流畅。
3比赛策略
3.1区域的划分
本论文所介绍的策略将整个圆环分为左右两大区域和上下两大区域,下面以向左进行角力为例来介绍一下该策略的具体区域划分方法。该策略将圆环左侧划分为上下对称的10个区域,其中白色区域代表缓冲区,黑色区域代表控制区。如图3所示:
对于控制区域宽度的调整,本论文在标准试验场地经过多次实验,最终得出如表1控制区域宽度为5厘米更为合适的结论。
其中表内控制区宽度单位为厘米,鱼头调整幅度为鱼头正方向与水平x轴较小夹角的变化程度。调整时间为机器鱼的鱼中心位置从控制区调整到缓冲区所用的时间。能否控制是指该控制区是否能将机器鱼调整回缓冲区。由表可见,控制区过于窄不能有效控制机器鱼的方向调整,而宽度过于宽会导致机器鱼在上下两个控制区内反复的调整,并不能将鱼控制在中心缓冲区内。
3.2控制算法
本论文将机器鱼的摆尾幅度分为十五个等级,0至6为向左摆尾,并且0力度最大,8至14为向右摆尾,并且14力度最大。同时将机器鱼的速度分为15个等级, 0为静止状态,14为最大游速状态。
本论文主要用到Roundp2p点对点的游动算法,并且在不同区域内做了相应修改。当鱼中心点FishPt和目标点aimpt之间的距离较远时算法如图4表示:
流程图中dist1为鱼中心点FishPt和目标点aimpt
之间的距离。距离方程为
dist1=[aimpt.x-FishPt.x2 aimpt.y-FishPt.y2]
dir1为鱼头和目标点之间的角度,dir1的方程为
dir1=atan2((aimpt.y-FishPt.y),(aimpt.x-FishPt.x))
dir1=dir1-FishDir
其中FishDir为图6所示的鱼头方向。
再把dir1换算成[-π~π]之间的数为:
dir1=Checkangle(dir1)*180/PI
图中action.direction為鱼的摆尾力度。此Roundp2p算法能够以较高的效率使机器鱼从一个点快速的游往另一个目标点。
3.3 不同区域间的控制
本论文将图3内上下的1区称之为正常区,即机器鱼在这个宽度为10厘米的带型区域中撞击圆环为最佳撞击区域,基于圆环的弧度影响,机器鱼在撞击圆环的同时将向图中最佳点靠近,由于惯性以及水流的制约,机器鱼势必将超过最佳点,并向另一侧的控制区域滑动。因此合理的控制机器鱼在中心1区顶圆环成了本策略的核心。
本论文让机器鱼在每个控制区内都执行速度为14,摆尾力度为7的算法,从而使鱼每分每秒都在尽力顶圆环。由于不同的机器鱼它的动力不尽相同,因此这个摆尾力度需要进行多次下水调试,本论文建议将该区域的力度设置为上方控制区摆尾力度为2,下方控制区摆尾力度为12。通过短暂的大力摆尾操作以起到修正鱼身和鱼头方向的作用。这种算法也在一定程度上解决了快速进攻与最佳进攻位置之间的矛盾[2]。也就是快速进攻使得机器鱼不能选择最佳的进攻位置,最佳进攻位置使得机器鱼的调整时间过长。
在圆环的右半部分,全部执行以鱼中心点和最佳点的Roundp2p策略,让鱼最快地进入到左半部分。从而开始执行相应代码。对于不同的控制区,例如图3-1-1上部分的2和4。如果机器鱼位于4控制区,说明机器鱼已经较大程度的偏离了正常区,从而需要更快地进行方向和力度的调整,因此2和4区域的代码也可以进行改进,本论文在比赛中将2区域的摆尾力度设置为2,将4区域的摆尾力度设置为1,下部分也进行相应整改。因此在比赛中取得了不错的表现。
3.4策略优势
其他策略可能会采取直接顶最佳点的算法,例如引入微分来进行建模,采取以最大速度一直顶住漂浮物的方式来进行建模分析[3],这也是一个很好的算法。但是相比于本论文所提到的策略来讲,基于区域划分的好处是能够使鱼无论在哪个区域内鱼头方向都能始终保持水平状态,这是一般策略所不能达到的效果。这样顶圆环会使鱼的动能更大化的作用于圆环上,如果只顶圆环最佳点,由于机器鱼各个关节的衔接机理并不是简单的铰链连接[4],所以势必鱼头的方向将不断的随水流而改变,由于角度原因使分力减少,从而就降低了机器鱼顶圆环的力度。
4 总结
(a)本论文所讨论的基于区域划分的水中角力策略已经成为一种较为高效的比赛策略。经过多次角力比赛的考验,本策略能够做到使机器鱼处于不同的水环境中都能较为高效地完成比赛。
(b)本论文所介绍的这种角力策略也有许多新的地方可以尝试,例如控制区数量和宽度的调整,控制区力度大小的调整。机器鱼从较远的缓冲区到控制区和从较近的缓冲区到控制区,代码也可以有所变化。希望本论文所提出的基于划分区域的机器鱼水中角力策略能够提供一个良好的启发。
参考文献:
[1]谢广明. 机器人水球比赛项目推介书[M]. 北京: 北京 大学工学院, 2009:1-5.
[2]谭焜予, 买智源, 向伟. 机器鱼水球比赛中精确与模糊 协作顶球策略[J]. 兵工自动化, 2013, 32(12): 72-74.
[3]于飞,李擎,苏中,原鑫.基于微分对策的水中机器人角力模型[J]. 兵工自动化, 2017, 36(12): 94-96.
[4]黄伯峥,董辉跃,史豪斌.水中机器人带球接力策略[J] . 兵工自动化 ,2013,32(12):5962.
关键词:多关节仿生智能鱼;水中角力;区域划分;力度控制;比赛策略
中图分类号:TP242 文献标识码:A 文章编号:1009-3044(2018)16-0179-03
Competition Policy Based on Robotic Fish in Water Divided Region
WANG Sheng-zhao, ZHANG Yan, XIA Qing-feng
(Jinling College of Nanjing University, Nanjing 210089, China)
Abstract:For the wrestling project in water, the general strategy is only a single situation with the best point. This paper mainly explains a wrestle strategy based on the region-divided machine fish. By controlling the area and the buffer zone, the robotic fish can be reduced to a greater extent by the influence of the environment such as water flow. At the same time, robotic fish are used in different areas and different swimming methods so that the fish head can always maintain a level to hit the ring. The results of several experiments show that this method can make robotic fish more effective in playing games even when they are in different water environments, and it saves a lot of time compared to the strategy that only has the best point. The strategy also achieved good results in the actual game.
Key words:Multi-joint robot fish; Water Competition; Competition strategy
國际水中机器人大赛是一项国际权威的机器人大赛,它以智能仿生机器鱼为主题,在水中进行各类竞赛,包括竞速、花样游泳、追逐和激烈对抗的水球比赛。作为水中机器人比赛中的一个新兴项目,水中角力不同以往的竞速类项目,它既考验选手们的编程策略的能力,同样需要选手们有着随机应变以及强大的思维和想象能力。在比赛中由于需要考虑诸多外界因素的干扰,因此多数策略并不能像理想中的那样高效率的完成比赛。本论文所介绍的基于划分区域的角力策略经过多次实验和改进,最终成了一种高效率的水中角力策略。
1全局视觉水中角力比赛的要求[1]
参赛队各派一条机器鱼参加比赛。以水池两个长边池壁的中点连线为分界线,将水池划分为左区和右区两个区域。比赛开始时,裁判员将漂浮物放入水中,要求其圆心与水池中心重合并保持静止,同时将比赛双方的机器鱼如图1所示位置静止放入漂浮物的内部。比赛开始后,A鱼将漂浮物顶向左区,B 鱼顶向右区。
2多关节仿生智能机器鱼
本论文所介绍的是如图2所示拥有类似于自然界中鱼体的外形、运动模式甚至交互模式的仿生智能机器鱼,它拥有“3沟道”,“3关节”设计,仿生人类最灵活的手指结构设计。“2.4G”自动调频设计,72M高速处理CPU,STM32控制系统。动力持久,采用7.4V、1800mAh锂电池超长待机。采用流体力学控制算法,运动更快、更流畅。
3比赛策略
3.1区域的划分
本论文所介绍的策略将整个圆环分为左右两大区域和上下两大区域,下面以向左进行角力为例来介绍一下该策略的具体区域划分方法。该策略将圆环左侧划分为上下对称的10个区域,其中白色区域代表缓冲区,黑色区域代表控制区。如图3所示:
对于控制区域宽度的调整,本论文在标准试验场地经过多次实验,最终得出如表1控制区域宽度为5厘米更为合适的结论。
其中表内控制区宽度单位为厘米,鱼头调整幅度为鱼头正方向与水平x轴较小夹角的变化程度。调整时间为机器鱼的鱼中心位置从控制区调整到缓冲区所用的时间。能否控制是指该控制区是否能将机器鱼调整回缓冲区。由表可见,控制区过于窄不能有效控制机器鱼的方向调整,而宽度过于宽会导致机器鱼在上下两个控制区内反复的调整,并不能将鱼控制在中心缓冲区内。
3.2控制算法
本论文将机器鱼的摆尾幅度分为十五个等级,0至6为向左摆尾,并且0力度最大,8至14为向右摆尾,并且14力度最大。同时将机器鱼的速度分为15个等级, 0为静止状态,14为最大游速状态。
本论文主要用到Roundp2p点对点的游动算法,并且在不同区域内做了相应修改。当鱼中心点FishPt和目标点aimpt之间的距离较远时算法如图4表示:
流程图中dist1为鱼中心点FishPt和目标点aimpt
之间的距离。距离方程为
dist1=[aimpt.x-FishPt.x2 aimpt.y-FishPt.y2]
dir1为鱼头和目标点之间的角度,dir1的方程为
dir1=atan2((aimpt.y-FishPt.y),(aimpt.x-FishPt.x))
dir1=dir1-FishDir
其中FishDir为图6所示的鱼头方向。
再把dir1换算成[-π~π]之间的数为:
dir1=Checkangle(dir1)*180/PI
图中action.direction為鱼的摆尾力度。此Roundp2p算法能够以较高的效率使机器鱼从一个点快速的游往另一个目标点。
3.3 不同区域间的控制
本论文将图3内上下的1区称之为正常区,即机器鱼在这个宽度为10厘米的带型区域中撞击圆环为最佳撞击区域,基于圆环的弧度影响,机器鱼在撞击圆环的同时将向图中最佳点靠近,由于惯性以及水流的制约,机器鱼势必将超过最佳点,并向另一侧的控制区域滑动。因此合理的控制机器鱼在中心1区顶圆环成了本策略的核心。
本论文让机器鱼在每个控制区内都执行速度为14,摆尾力度为7的算法,从而使鱼每分每秒都在尽力顶圆环。由于不同的机器鱼它的动力不尽相同,因此这个摆尾力度需要进行多次下水调试,本论文建议将该区域的力度设置为上方控制区摆尾力度为2,下方控制区摆尾力度为12。通过短暂的大力摆尾操作以起到修正鱼身和鱼头方向的作用。这种算法也在一定程度上解决了快速进攻与最佳进攻位置之间的矛盾[2]。也就是快速进攻使得机器鱼不能选择最佳的进攻位置,最佳进攻位置使得机器鱼的调整时间过长。
在圆环的右半部分,全部执行以鱼中心点和最佳点的Roundp2p策略,让鱼最快地进入到左半部分。从而开始执行相应代码。对于不同的控制区,例如图3-1-1上部分的2和4。如果机器鱼位于4控制区,说明机器鱼已经较大程度的偏离了正常区,从而需要更快地进行方向和力度的调整,因此2和4区域的代码也可以进行改进,本论文在比赛中将2区域的摆尾力度设置为2,将4区域的摆尾力度设置为1,下部分也进行相应整改。因此在比赛中取得了不错的表现。
3.4策略优势
其他策略可能会采取直接顶最佳点的算法,例如引入微分来进行建模,采取以最大速度一直顶住漂浮物的方式来进行建模分析[3],这也是一个很好的算法。但是相比于本论文所提到的策略来讲,基于区域划分的好处是能够使鱼无论在哪个区域内鱼头方向都能始终保持水平状态,这是一般策略所不能达到的效果。这样顶圆环会使鱼的动能更大化的作用于圆环上,如果只顶圆环最佳点,由于机器鱼各个关节的衔接机理并不是简单的铰链连接[4],所以势必鱼头的方向将不断的随水流而改变,由于角度原因使分力减少,从而就降低了机器鱼顶圆环的力度。
4 总结
(a)本论文所讨论的基于区域划分的水中角力策略已经成为一种较为高效的比赛策略。经过多次角力比赛的考验,本策略能够做到使机器鱼处于不同的水环境中都能较为高效地完成比赛。
(b)本论文所介绍的这种角力策略也有许多新的地方可以尝试,例如控制区数量和宽度的调整,控制区力度大小的调整。机器鱼从较远的缓冲区到控制区和从较近的缓冲区到控制区,代码也可以有所变化。希望本论文所提出的基于划分区域的机器鱼水中角力策略能够提供一个良好的启发。
参考文献:
[1]谢广明. 机器人水球比赛项目推介书[M]. 北京: 北京 大学工学院, 2009:1-5.
[2]谭焜予, 买智源, 向伟. 机器鱼水球比赛中精确与模糊 协作顶球策略[J]. 兵工自动化, 2013, 32(12): 72-74.
[3]于飞,李擎,苏中,原鑫.基于微分对策的水中机器人角力模型[J]. 兵工自动化, 2017, 36(12): 94-96.
[4]黄伯峥,董辉跃,史豪斌.水中机器人带球接力策略[J] . 兵工自动化 ,2013,32(12):5962.