基于障碍物动态平衡的2D仿真生存挑战策略
来源:用户上传
作者:
摘 要:为充分合理地利用场地,增加防守鱼的生存时间,提出一种基于URWPGSim2D仿真平台的生存挑战策略:基于障碍物动态平衡的防守策略。介绍了防守策略的实现方法,一种可控速的位姿到位姿函数,对动态平衡路线加以分析。经过实验和比赛验证表明:防守策略表现出优秀的防御性能,能够有效地躲避进攻鱼的攻击,增加了防守鱼的存活率。
关键词:2D仿真;生存挑战;障碍物动态平衡;可控速的位姿到位姿函数
中图分类号:TP242 文献标志码:A 文章编号:2095-2945(2020)06-0139-02
Abstract: In order to make use of the site, increase the survival time of defensive fish, puts forward a survival challenge strategy based on URWPGSim2D simulation platform: defense strategy based on dynamic balance of obstacles. This paper introduces the implementation of defense strategy, a controllable speed function and analyzing dynamically balanced routes. The results of experiments and competitions show that: The defense strategy shows excellent defense performance, which can effectively avoid the attack of attacking fish and increase the survival rate of defending fish.
Keywords: 2D simulation; survival challenge strategy; defense strategy based on dynamic balance of obstacles; a controllable speed function
引言
URWPGSim2D仿真平臺提供一种仿真机器鱼的实时系统,采用面向对象思想。从对象建模的角度看,包括仿真机器鱼、仿真环境和仿真使命(比赛或实验项目)三类模型,以仿真使命模型为中心,较真实地仿真出仿生机器人的运动状态。笔者基于使用2018年URWPGSim2D仿真平台参加比赛时使用的策略对生存挑战项目进行研究和改进,提出一种围绕障碍物动态平衡的策略和一种可控速的位姿到位姿函数,能较好的使防守鱼和进攻鱼达到一种动态平衡状态,延长了防守鱼的存活时间。
1 生存挑战项目介绍
2D 仿真生存挑战是由2支队伍参与,每支队伍4条仿真机器鱼,生存挑战比赛项目比赛场地采用标准仿真场地(3000mm*2000mm)的1.5倍尺寸的场地,即规格为4500mm*3000mm,场地中央有三块固定的正方形障碍物,其边长为 400mm,中心点坐标分别为(0,700),(0,0),(0,-700)。
比赛初始状态时,防守方有4条机器鱼,1号鱼为特殊鱼,充当“防御手”的角色;2,3,4号鱼为常规鱼,充当“躲避手”的角色,进攻方只有一条鱼,为特殊鱼,充当“捉捕手”的角色。比赛总时长10分钟,分上下半场,一个半场时长5分钟,上下半场切换,进攻方和防守方亦交换。
比赛时,“捉捕手”要尽量抓捕“躲避手”, “躲避手”要尽量躲避“捉捕手”。比赛结束后,通过“捉捕手”抓捕的“躲避手”数量和抓捕时间判断输赢。
2 动态平衡路线分析
由生存挑战项目介绍可知,进攻鱼的最大速度档是15档,而防守2、3、4号鱼的最大速度档是8档。假设进攻鱼和防守鱼暴露在一条直线上,凭借进攻鱼在速度上的优势,进攻鱼可以很轻松的抓捕到防守鱼。而当进攻鱼的路线为一条曲线时,进攻鱼的速度不能时刻保持15档,运动曲线的半径越小,进攻鱼能达到的最大速度档越小。在此基础上,经笔者反复测试后得出结论:当运动曲线半径趋近于0时,进攻鱼的速度档位为0档;当进攻鱼的前进路线大致是一个半径约300mm的圆时,进攻鱼的速度在8档左右。考虑到障碍物对角线长约为566mm,对角线长度小于计划路径圆的直径600mm,所以当以平台的三个障碍物的中心为前进路线的圆心,300mm为半径时的前进路线时,防守鱼和进攻鱼之间至少存在一个障碍物,进攻鱼改变进攻策略时,防守鱼也有充足的时间和机会做出相应的调整,大大增加了防守鱼的容错率,使防守2、3、4号鱼的生存机会得到提升。
3 防守策略
针对目前主流的进攻策略,笔者以进攻鱼抓捕防守3号鱼为例来说明防守策略(防守2、4号鱼策略与防守3号鱼策略相同)。首先,以障碍物的对角线为分割可将平台分割为4个区域(如图1)。
根据进攻鱼所在区域,判断防守3号鱼的目标区域。具体代码如下:
Z31=mission.TeamsRef[(1+teamId)%2].Fishes[0].PositionMm.x; (1)
Z32=mission.TeamsRef[(1+teamId)%2].Fishes[0].PositionMm.x*-1; (2) 判断进攻鱼的X坐标与0的大小关系和Z坐标与Z31、Z32的大小关系,可以判断进攻鱼所在区域。而防守鱼所在区域,应是和进攻鱼所在区域相对的区域,这样才能确保进攻鱼和防守鱼之间至少有一个障碍物。
3.1 如果进攻鱼在1号区域
此时防守3号鱼目标点坐标应在3号区域。根据进攻鱼的坐标和障碍物的中心坐标可通过两点确定一条直线,将Z=300带入直线中,可以得到防守3号鱼的目标点X坐标。
3.2 如果进攻鱼在2号区域
此时防守3号鱼应在4号区域。根据进攻鱼的坐标和障碍物的中心坐标可通过两点确定一条直线,将X=300,带入直线中,可以得到防守3号鱼的目标点Z坐标。
以此类推,可以得到进攻鱼在3号区域、4号区域时防守3号鱼的目标点。通过控制防守鱼的运动轨迹可使进攻鱼的前进路线大致是一个半径约300mm的圆,初步达到预想方案。
4 可控速的位姿到位姿函数
防守鱼如果使用自带的PoseToPose函数,当目标点的变化程度较大时,防守鱼会出现先转向在前行的情况。在这种情况下,进攻鱼会以最大直线速度抓捕防守鱼,防守鱼毫无逃生机会。为不出现此类情况,笔者根据目标点和仿生鱼当前坐标开发了一个可控速的位姿到位姿函数,可根据具体的鱼体转向角度,调整转向速度、前行速度。有效的克服了仿生鱼先转向再前行的困难。
鱼体所需转向角度=仿生鱼此时的鱼体方向角度-目标点角度。其中,仿生鱼此时的鱼体方向可由TeamsRef [teamId].Fishes[i].BodyDirectionRad得到当前队伍第 i 条鱼鱼体方向。
目标点角度可通过此方式得到:目标点和鱼体前端刚体中心两点得到一个向量,将该向量单位化。因为场地是从正X轴到负X轴,顺时针为0~π,逆时针为0~-π,所以将单位化后的向量与(1, 0, 0)单位向量做点积运算,并对结果做反三角函数运算。应该注意的是所得到的角度应控制在-π~π之间。
最后,将-π~π区间划分为很多个小区间,为每一个小区间分配不同的速度值和角速度值,当某一时刻鱼体所需转向角度在该小区间内,就会按照设定速度档和转向档前进。鱼体所需转向角度不断变化,就会导致速度档和转向档变化,从而达到可控速的位姿到位姿的要求。
采用该区间的速度值、角速度值。不断调整后,可使防守鱼游动路线为一个半径约300mm的圆。当面临更加复杂的情况时,比如进攻鱼在一段时间没有任何进展时,采取掉头、停止等动作都可以离开设定的规划路线。
笔者根据所写防守策略和所使用的可控速的位姿到位姿函数分析,当进攻鱼采取掉头时,对于防守鱼来说,目标点变化程度不大且目标点均位于防守鱼原定路线的前方,防守鱼几乎不可能出现用鱼身塞住障碍物之间的通道。并且目标点和进攻鱼之间一直存在一个障碍物,当进攻鱼再次发动进攻时,防守鱼有充足的时间,调整路线,再次进入计划路线。当进攻鱼采取停止游动时,目标点没有變化,防守鱼到了目标点后也会采取停止游动的动作,而当进攻鱼再次发起进攻时,目标点同样会变化,防守鱼也同时游动,再次进入计划路线。
5 结束语
采用该防守策略,大大增加了防守鱼的生存率,增加了防守鱼的存活时间。而可控速的位姿到位姿函数不仅能应用躲避对方鱼的攻击,用于进攻鱼时也能达到比较好抓捕的效果。
参考文献:
[1]国际水中联盟2D仿真会.URWPGSim2D开发人员手册v1.2Rev
ised20120101[Z].北京:北京大学智能控制实验室,2012:1-2.
[2]夏庆锋,陆伟乾,顾隽逸.基于线性回归的2D仿真生存挑战策略[J].2018(11):93-96.
[3]谢良松,冯治国,赵驯峰,等.基于URWPGSim2D仿真平台的生存挑战策略[J].2018(3):9-11
[4]仇红剑,赵伟,夏庆锋.水中机器人2D仿真的策略优化[J].兵工自动化,2011(12):91-93.
[5]赵国冬,田璐璐,杨帅峰.2D仿真机器鱼生存挑战关键技术策略[J].兵工自动化,2018(9):21-23.
转载注明来源:https://www.xzbu.com/1/view-15119443.htm