APP下载

基于URWPGSim2D仿真平台水中机器鱼搬运策略分析

2020-03-23奉榆杰田锦波

科技风 2020年8期
关键词:运球调整方向

奉榆杰 田锦波

摘 要:基于URWPGSim2D仿真平台,提出在水中搬运项目上解决平台随机性给鱼带球动作带来的影响。设计鱼到洞的最佳路以及鱼带球进洞的最佳路线,设计出较好的鱼姿,同时在鱼运动到目标点的过程中采用虚拟洞的算法,让鱼能够高效的顶球进洞,最大程度上避免失误。实验结果表明:采用上述算法,能够有效的减少平台带来的随机性误差,鱼顶球进洞的效率大大提高。

关键词:URWPGSim2D仿真平台;鱼姿;虚拟洞

随着科技的发展,人类对未知领域了解的越来越多,海洋就是其中的一个代表。但是人类最大的下潜深度不足水下机器人下潜深度的十分之一,所以对于水下机器人的开发尤为重要。而URWPGSim2D仿真平台就是对鱼的动作的仿真,分析鱼的运动姿态和水波对运动造成的影响,控制这些随机因素,让鱼的运动更加顺畅。同时仿真就是解决前期存在的明显问题,为制造出更好的实物机器打下基础。

1 目标任务及尺寸

在URWPGSim2D仿真平台中两条鱼需要将如下图所示的右边六个球按顺序运到左边的洞里,鱼体矩形长*宽为160mm*45mm;仿真水球半径为58mm;洞的半径为80mm。

2 顶球的顺序及鱼的运动路线规劃策略

1号鱼先去顶5号球,再去顶4号球,最后顶2号球;2号鱼先顶3号球,再顶1号球,最后顶0号球。在找到最佳击球点的基础上我们去规划路径,在实践中我们会发现如果鱼从球的左边去顶球,最后会出现鱼追着鱼跑的情况,所以在鱼运动到球的过程中我们往往会重新设定一个X值大于鱼坐标的目标点,就会避免这种。但是这种策略安排会造成两条鱼的同步性非常强,最后会造成两条鱼到达目标的同时性非常强,所以我们会在时间上将两条鱼错开。

3 顶球进洞失误分析

经过多次的实验,我们发现此项目中出现次数最高的失误便是:

3.1 鱼推球的路径起始阶段偏离目标点过远

在大量的实践中我们发现,使用Dribble函数控制鱼带球时,鱼从触球开始到运动到接近洞的过程中常常不能保持直线前进,而是起先朝偏离洞的方向前进,随后在球的水平坐标接近洞时才开始重新触球调整。一旦出现这种情况将耗费大量的时间。

3.2 球在即将入洞时受干扰影响“错过”球洞

如下图所示,在球快要入洞时,我们发现此时球常常会偏移一段距离而导致球压线而过,错失进洞机会。如果在错失进洞后依旧不改变策略很可能还会导致鱼将球带入死角,使球再无进洞的可能性。

这两个问题存在共性,便是都存在球的偏移,在实验中我们还发现,这种偏移很大一部分都是沿着Z的正方向的。经过分析发现,问题产生是由于平台引入的随机干扰,以及鱼推着顶球点跑引起的。

4 解决措施

4.1 控制触球点及触球角度

首先通过posetopose函数让鱼运动到球的后方,为了提早调整时间,posetopose的目标点便应设置在洞与球连线的反向延长线上。随后便使用Dribble函数,设置较低的速度挡输入参数值,使鱼更精确地接近球。

4.2 运球优化策略

为了更大程度的避免两种情况的发生,优化运球过程,我们引入了一种虚拟洞算法,即在运球过程中,并不始终以真正的洞坐标点为最终目标点,而是根据球的位置不停地变化洞的坐标,夸大偏移量,以达到让鱼更快做出环绕球调整动作以及增强对抗干扰能力的目的。

4.3 算法描述

①虚拟洞坐标确定。在B处的球需要被运送到H处的洞,球与洞之间Z方向的坐标差的绝对值是deltaZ=H.Z-B.Z,以此参数为标准进行调整。当deltaZ>0时,此时球在洞的下方,如图所示(图),为使得鱼在Dribble函数的控制下能够更早地绕球调整方向,将假象的目标点向H的上方偏移,从而由洞口坐标算得的顶球点坐标相应的往球下方滑动。得到的虚拟的洞口坐标:

MH=(H.X,H.Y,H.Z+deltaZ)

在deltaZ<0时有类似的关系,此时球位于洞的上方,需将虚拟的洞口设置在H的下方,不过在实际测试中,球总是往Z轴正方向偏移的,此时依旧沿用上式可能会出现接近洞口时,向下调整过度而使球直接偏洞而过,所以我们在这里设置一个系数k来对deltaZ的值进行适当缩小,即:

MH=(H.X,H.Y,H.Z+k*deltaZ)

经过多次测试发现,当球与洞的横向距离deltaX>=100时k=0.4比较合适,而当deltaX<100时k=-0.7比较合适,使鱼既不会向Z轴正方向调整过度,也不会向Z轴负方向持续偏离控球。

②计算新的顶球点。在虚拟洞坐标的基础上计算顶球点,以虚拟洞和球中心的连线反向延长,得到随球的位置的变化不停调整的顶球点坐标MB,计算步骤如下:

θ=Arctan((MH.Z-B.Z)/(MH.X-B.X))

MB=(B.X+cosθ*r,B.Y,B.Z+sinθ*r)

③参数输入Dribble函数中。将得到的新的顶球点带入Dribble函数的输入参数中,实现运球过程中对目标点的控制,使鱼一次运球进洞的成功率提高。

猜你喜欢

运球调整方向
我不知道风是在哪一个方向吹
完形填空一则
工位大调整
幼儿园大班篮球运球活动的实践探索研究
股指震荡调整 创投概念兴起
沪指快速回落 调整中可增持白马
“双人运球”乐翻天
改变颜色和方向
位置与方向
18