机器鱼的控制方法、装置、设备及存储介质与流程

文档序号:20840748发布日期:2020-05-22 17:28阅读:202来源:国知局
机器鱼的控制方法、装置、设备及存储介质与流程

本申请涉及机器鱼领域,特别涉及一种机器鱼的控制方法、装置、设备及存储介质。



背景技术:

在自然界中,鱼类通过身体和/或尾鳍的摆动,获得快速高效的游动性能和极高的机动性,这些独特的游动性能吸引了越来越多的科研工作者。近年来,研究人员逐渐从流体力学等方面揭示鱼类高效游动的机理,但是,基于生物原型的仿生机器鱼不论在游动速度、推进效率还是在转弯机动性上均远远落后于自然界中的鱼类。

随着仿生机器鱼的问世,一代又一代的机器鱼样机产生,但是都避免不了一个核心的问题:效率低下。对比一下现有的机器鱼和生物鱼的推进效率明显可以看出他们相差甚远,生物鱼的推进效率高达90%,而机器鱼由于模仿流体的参数、试验条件等不同,得到的推进效率也不尽相同,但是最高也不会超过30-40%,所以即使将机器鱼做的小且精,但是解决不了效率的问题,机器鱼仍然是无法投入使用。



技术实现要素:

本申请的目的在于提供一种机器鱼的控制方法及装置,本发明旨在提高机器鱼的能源利用率问题,使电池续航时间更久,机动性更好,对环境的扰动小。

第一方面,本申请实施例提供了一种机器鱼的控制方法,包括:基于深度确定性策略梯度网络训练两关节机器鱼的两个关节的状态参数;根据所述两个关节的状态参数控制机器鱼两个关节的运动。

在一种可能的实现方式中,在本申请实施例提供的上述方法中,所述深度确定性策略梯度网络包括策略网络和评价网络;所述策略网络包括第一动作状态估计模块、第一动作状态现实模块、和策略梯度模块;所述评价网络包括第二动作状态估计模块、第二动作状态现实模块、和损失函数模块。

在一种可能的实现方式中,在本申请实施例提供的上述方法中,所述第一动作状态估计模块连接第二动作状态估计模块、策略梯度模块,并且所述第一动作状态估计模块输出所述状态参数,并接收奖励值;所述第一动作状态现实模块连接第二动作状态现实模块,并且所述第一动作状态现实模块接收所述奖励值;所述策略梯度模块连接所述第一动作状态估计模块、第二动作状态估计模块;所述第二动作状态估计模块连接所述第一动作状态估计模块、策略梯度模块和损失函数模块,并接收奖励值;所述第二动作状态现实模块连接所述第一动作状态现实模块、损失函数模块,并接收奖励值;所述损失函数模块连接第二动作状态现实模块和第二动作状态估计模块。

在一种可能的实现方式中,在本申请实施例提供的上述方法中,所述奖励值的计算过程如下:利用拉格朗日方程建立动力学模型,根据所述状态参数计算所述机器鱼的效率值,将所述效率值作为奖励值。

在一种可能的实现方式中,在本申请实施例提供的上述方法中,所述策略网络和评价网络分别为三层网络,策略网络和评价网络的参数选择相同,第一层是300个神经元,第二层是100个神经元,最后一层是要输出的维度;其中,策略网络包括两个输出作为两个刚度值;评价网络包括一个输出作为q值。

在一种可能的实现方式中,在本申请实施例提供的上述方法中,所述基于深度确定性策略梯度网络训练两关节机器鱼的两个关节的状态参数,包括:

s1、利用拉格朗日方程构建机器鱼的动力学模型的环境,并构建ddpg网络;

s2、重置环境得到起始需要的两个关节的状态参数;

s3、将所述状态参数送到ddpg网络中,由策略模块产生两个关节所需要的刚度值;

s4、将ddpg网络产生的刚度值送回到所述模型的环境中,解算出由此动作产生的机器鱼下一个状态的各个状态值、奖励值、完成值;

s5、将当前各个状态的状态值、ddpg产生的动作值、奖励值以及下一个状态的各个状态值存储到ddpg的记忆库中;

s6、判断记忆库是否已满,如果是则进入步骤s7,如果否则进入步骤s8;

s7、ddpg从记忆库中随机抽取固定数量的记忆来学习;

s8、判断完成值是否为1或达到一个回合最大,如果是则返回步骤s2,如果否则返回步骤s3。

第二方面,本申请实施例提供了一种机器鱼的控制装置,包括:ddpg模块,基于深度确定性策略梯度网络训练两关节机器鱼的两个关节的状态参数;控制模块,根据所述两个关节的状态参数控制机器鱼两个关节的运动。

在一种可能的实现方式中,所述深度确定性策略梯度网络包括策略网络和评价网络;所述策略网络包括第一动作状态估计模块、第一动作状态现实模块、和策略梯度模块;所述评价网络包括第二动作状态估计模块、第二动作状态现实模块、和损失函数模块。

第三方面,本申请实施例提供了一种电子设备,包括:存储器和处理器;

所述存储器,用于存储计算机程序;

其中,所述处理器执行所述存储器中的计算机程序,以实现上述第一方面以及第一方面的各个实施方式中所述的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现上述第一方面以及第一方面的各个实施方式中所述的方法。

与现有技术相比,本申请提供的机器鱼的控制方法、装置、设备及存储介质,可以实现机器鱼在不同状态下的自适应、自调整,将自己关节适应流体的变化,适时地做一些负功来提升自己的效率,最终训练的结果使得在融合ddpg的情况下比开环时效率提高了30%-40%。

附图说明

图1为本申请实施例一提供的机器鱼的控制方法的流程示意图;

图2为本申请实施例一提供的ddpg网络的结构示意图;

图3为本申请实施例提供的两关节机器鱼的模型示意图;

图4为本申请实施例提供的训练ddpg网络的流程示意图;

图5为本申请实施例二提供的机器鱼的控制装置的结构示意图;

图6为本申请实施例三提供的电子设备的结构示意图。

具体实施方式

下面结合附图,对本申请的具体实施方式进行详细描述,但应当理解本申请的保护范围并不受具体实施方式的限制。

除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。

本发明中使用的概念内涵如下:

强化学习:强化学习需要有环境、奖励函数、动作和状态这些要素。强化学习针对一个具体问题得到一个最优的策略,使得在该策略下获得的奖励值最大。而这里的策略就是针对不同状态响应出不同的动作。强化学习要先从要完成的任务提取一个环境,从中抽象出状态、动作、以及执行该动作所接受的瞬时奖赏。

经典控制理论——pid控制:根据给定信号和实际信号的偏差进行调节,有比例、微分、积分控制。通过对误差信号的这三种的调节达到跟随的效果。

本发明描述了一个机器鱼提高效率的方法:使用深度确定性策略梯度算法(deepdeterministicpolicygradient,以下简称ddpg),变刚度可做负功。该方法可以使机器鱼自适应不同状态下的流体,并有效提高机器鱼游动的效率。

图1为本申请实施例一提供的机器鱼的控制方法的流程示意图,如图1所示,该控制方法包括:

s101、基于深度确定性策略梯度网络训练两关节机器鱼的两个关节的状态参数;

s102、根据所述两个关节的状态参数控制机器鱼两个关节的运动。

如图2所示,为本发明的ddpg网络的结构及训练的流程。

environment是模仿流体中的受力以及姿态解算出来当前鱼两个关节的角度,并反馈给ddpg网络一个奖励值。

深度确定性策略梯度网络包括策略网络(actor)和评价网络(critic);

策略网络包括第一动作状态估计模块(eval-net)、第一动作状态现实模块(target-net)、和策略梯度模块(policygradient);

评价网络包括第二动作状态估计模块、第二动作状态现实模块、和损失函数模块(td_loss)。

第一动作状态估计模块连接第二动作状态估计模块、策略梯度模块,并且第一动作状态估计模块输出状态参数,并接收奖励值;

第一动作状态现实模块连接第二动作状态现实模块,并且第一动作状态现实模块接收奖励值;

策略梯度模块连接第一动作状态估计模块、第二动作状态估计模块;

第二动作状态估计模块连接第一动作状态估计模块、策略梯度模块和损失函数模块,并接收奖励值;

第二动作状态现实模块连接第一动作状态现实模块、损失函数模块,并接收奖励值;

损失函数模块连接第二动作状态现实模块和第二动作状态估计模块。

如图3所示,鱼的模型简化为两关节机器鱼模型,即身体-尾鳍波动推进模型,该机器鱼模型由三部分组成:头部(head),身体(body),尾部(tail)。假定机器鱼头部朝一个方向即运动方向不变,后面两个关节不断摆动,通过与前一个关节产生角度差来与流体相互作用,从而推动机器鱼向前游动。

机器鱼身体部分等效为简易的平板,身体部分质心处的法向速度作为来流速度,并且选取合适的流体粘滞阻力得到水给机器鱼的动力或阻力,经研究表明鱼类的关节是按照正弦摆动,所以本申请让这两个关节给定一个轨迹运动,让这两个关节跟随这个运动,在环境中本申请解算出来当前角度与标准角度的差值,根据ddpg网络给出的动作值就是当前状态下鱼的关节是什么刚度乘以差值,并利用拉格朗日方程建立动力学模型,解算出来当前关节的角度、角速度、角加速度等状态,并且可以得到这一瞬时间的效率大小,将此作为奖励函数反馈给ddpg。因为是跟随,所以偏差难免会有正有负,当产生的偏差是负的值时就会产生负功,由科学家得到的数据得知,生物鱼能够达到如此高的效率正是由于在适当的时候做一些负功,吸收了能量促使的。

如图2所示,本申请的ddpg网络采用双网络结构:actor-critic网络(策略-评价网络,actor是策略网络,产生一个动作,由critic网络来给演员打分),他们每个分别有两个模块:target-net和eval-net,但是本申请只需要训练动作状态估计模块(eval)的参数,而动作状态现实模块(target)的参数是由前面两个模块每隔一定的时间复制过去的。这样,本申请将环境提供的状态通过actor-evalnet模块产生一个动作,即本申请的当前应该产生的刚度值,并由critic-evalnet模块来给当前这个状态产生的动作值打一个分数,(q-value),q值越高代表这个动作越好,ddpg中还有自己的记忆库用来存放每个时刻的机器鱼的当前状态、动作、奖励值、下一时刻的动作,等到记忆库满了的时候,从中随机抽取数据开始训练actor和critic网络,每个步骤进行误差的反向传递来进行更新两个估计网络,经过这些步骤之后,再将最新的估计模块参数传给现实模块。

所以整体流程就是ddpg产生刚度值给环境,环境经过处理得到状态,奖励值等信息反馈给ddpg网络,每次不断的提升自身的参数逐渐趋于稳定值。

如图4所示,本申请实施例提供的训练ddpg网络的流程,包括如下步骤:

s1、利用拉格朗日方程构建机器鱼的动力学模型的环境,并构建ddpg网络;

s2、回合开始后,重置环境得到起始需要的两个关节的状态参数;

s3、将两个关节的状态参数送到ddpg网络中,由策略模块产生两个关节所需要的刚度值;

s4、将ddpg网络产生的刚度值送回到模型的环境中,解算出由此动作产生的机器鱼下一个状态的各个状态值、奖励值、完成值(done值,为1或0的变量,1代表效率在预设范围内,0代表效率不在预设范围内);

s5、将当前各个状态的状态值、ddpg产生的动作值、奖励值以及下一个状态的各个状态值存储到ddpg的记忆库(存储池)中;

s6、记忆库是否已满?如果是则进入步骤s7,如果否则进入步骤s8;

s7、ddpg从记忆库中随机抽取固定数量的记忆来学习,以提高产生动作的质量,提升评价网络给出评价动作值好坏的精度;

s8、判断完成值是否为1或达到一个回合最大?如果是则返回步骤s2,如果否则返回步骤s3。

本申请采用的状态值是两个关节相对于水平轴的夹角,速度以及加速度,动作是针对当前状态应有的刚度值,通过变刚度的思想跟随正弦摆动,其中通过适时地做负功来提升效率。

reward值设定为效率值,所以ddpg将使产生的刚度值最适于当前状态,最终在设定的流体参数下趋于稳定。

经具体试验验证,本申请的技术效果如下:现有技术的开环方法下:(给定刚度值),平均效率在15%左右而且波动较大。而本申请在加入ddpg训练(变刚度)后,效率在48%左右,而且较为稳定。

本申请的实施例中,都是用ddpg训练刚度值,但是神经元个数和层数不同的,或者参数不同的都属于替代方案。

本申请的实施例中,ddpg中的神经网络发现三层网络最佳,actor和critic网络参数选择相同,第一层是300个神经元,第二层是100个神经元,最后一层就是要输出的维度,actor网络就是2个输出:两个刚度值,critic就是一个输出:q值。两个关节的刚度值在300、15的正负11、1区间内发现效果是最佳的。

本实施方式中,不仅是针对集群的鱼类能提高效率,而且针对每只鱼来讲的,使得不管周围是如何的环境,都能保证每只鱼的效率是最高的。本实施例相比于模糊控制方法来说更加简便,模糊控制需要制作模糊规则表,而ddpg算法直接提供了当前状态的刚度,是直接与环境的交互之中采集数据作为数据库及时的训练。

图5为本申请实施例一提供的机器鱼的控制装置的结构示意图,如图5所示,该控制装置包括:

ddpg模块510,基于深度确定性策略梯度网络训练两关节机器鱼的两个关节的状态参数;

控制模块520,根据所述两个关节的状态参数控制机器鱼两个关节的运动。

图6为本申请实施例三提供的电子设备的结构示意图,如图6所示,该设备包括:存储器601和处理器602;

存储器601,用于存储计算机程序;

其中,处理器602执行存储器601中的计算机程序,以实现如上所述各方法实施例所提供的方法。

在实施例中,以一电子设备对本申请提供的机器鱼的控制装置进行示例。处理器可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。

存储器可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器可以运行程序指令,以实现上文的本申请的各个实施例中的方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。

本申请实施例四提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时用于实现如上所述各方法实施例所提供的方法。

实际应用中,本实施例中的计算机程序可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如java、c++、python等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

实际应用中,计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

前述对本申请的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本申请限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本申请的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本申请的各种不同的示例性实施方案以及各种不同的选择和改变。本申请的范围意在由权利要求书及其等同形式所限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1