一种基于强化学习的AUV行为规划及动作控制方法与流程

文档序号:18894073发布日期:2019-10-15 22:36阅读:532来源:国知局
一种基于强化学习的AUV行为规划及动作控制方法与流程

本发明属于水下机器人技术领域,具体涉及一种auv行为规划及动作控制方法。



背景技术:

21世纪是海洋世纪,大力发展海洋事业已经成为世界各国的广泛共识。我国也发布并实施了重要海洋战略,由于我国目前正处于高速发展阶段,且属于人口大国,陆地资源受限,海洋资源已经成为支持可持续发展的重要资源空间。而海洋资源开发和勘探是实时海洋战略的重要前提基础,智能水下机器人(autonomousunderwatervehicle,auv)作为一种水下关键技术装备,在海洋民用、军用和科研等领域已经成为实用有效的开发工具,是海洋开发探索的重要手段。它的应用与技术研发升级将是未来重点关注的对象,是世界各国在海洋领域取得领先地位的重要途径。研制auv涉及到多种高端技术的应用才得以实现,覆盖面广泛包括导航定位、水下目标探测、通讯技术、智能控制技术、仿真技术、能源系统技术和规划技术等。

规划及控制技术是实现auv智能化的关键要素之一,是auv自主决策完成作业任务的前提基础。由于水下环境是复杂动态、非结构化的且不确定的,水下环境信息不易获取,使得auv在水下执行作业任务过程中难免要面对无法预知的突发事件。由于水下通信手段的限制,auv智能依靠自行决策处理突发事件,这就需要auv改变原有的规划指令,根据环境突发事件进行重新规划。本发明重点研究复杂环境下的auv规划技术,将有压输水隧洞作为复杂的水下环境,以隧洞探测任务为典型应用背景,提出一种基于强化学习的auv行为规划及控制方法。

有压输水隧洞检测是水利工程管理的重要内容之一,有压输水隧洞是用于连接水电站等水利工程的地下输水通道。目前中小型水库出险多数是输水隧洞隐患没有及时发现造成的,长时间运行隧洞中会出现沉积、腐蚀、渗漏和障碍物等缺陷问题,在汛期输水隧洞更易出现管道老化问题,直接影响到水下工程安全运行,因此对隧洞进行定期检测掌握水下工程情况越来越受到重视。但由于输水隧洞存在部分洞径小、汛期流速大以及水下工程环境复杂等问题,使得人员难以进入检测,需要依靠其他探测装置代替检测人员完成探测任务。

智能水下机器人(auv)作为良好的水下探测装备搭载平台,可以在水下长时间地、自主安全地执行目标任务,能够在隧洞复杂的水域环境中,具备较强的机动能力和状态保持能力,搭载水下探测设备和传感器满足探测需求,自主地完成隧洞探测任务,是未来隧洞探测的主要手段。本发明基于强化学习算法设计auv隧洞检测任务的行为规划及控制方法,增加了auv的环境自适应性,提高auv在突发态势下的决策能力。



技术实现要素:

本发明为了解决水下机器人完成复杂任务时,智能化水平不高、过于依靠人工经验的问题,以及现有水下机器人基于智能算法设计的控制方法需要精确的环境模型,从而导致训练经验非常局限,在现实环境中应用困难的问题。

一种基于强化学习的auv行为规划及动作控制方法,包括以下步骤:

水下机器人探测隧洞定义为总任务,即任务;完成任务对应的行为包括:趋向目标、墙壁跟踪和避障;将机器人在水下需要完成所规划的行为而产生的具体的控制指令定义为动作;

auv在执行隧洞探测任务时,根据探测的水下环境,使用深度强化学习dqn算法进行实时行为规划:构建基于多行为网络调用的行为规划体系结构;根据任务需求定义三个行为的环境状态特征输入和输出动作,构建对应的深度学习的行为网络,并设计奖惩函数;规划系统通过调用训练好的行为网络来完成隧洞探测任务;

控制系统通过调用训练好的动作网络来完成所规划出的行为。

所述的一种基于强化学习的auv行为规划及动作控制方法,构建对应的深度学习的行为网络并设计奖惩函数的过程包括以下步骤:

对于隧洞探测任务,任务被分解为行为序列,全局航路规划根据先验环境信息规划出一系列可行的路径点,auv从布放位置开始出发,依次达到各路径点;

由于路径点为已知环境下的全局规划,因此在航渡过程中,auv根据实时环境状态,调用避障行为安全达到路径点;隧洞探测任务中auv主要调用墙壁跟踪行为,按预定的探测目标完成任务;

决策模块包含全局数据、决策系统、行为库和评价系统;全局数据存储了任务信息、态势信息、规划知识;决策系统是结合dqn算法的自学习规划系统,决策系统先进行训练,在每次执行规划任务前先从行为库中提取训练好的网络参数,再以当前环境状态信息为输入,规划出当前行为动作;评价系统是强化学习算法的奖励函数系统,它在auv规划一个行为动作规划并执行后,根据状态环境和任务信息给出一个奖励,所有数据存储到全局数据库中;

所述行为中的趋向目标过程包括以下步骤:

趋向目标点的行为是使auv在未检测到障碍物时调整艏向角朝目标点航行,特征输入量主要考虑auv与目标点的位置和角度关系,具体设置为当前auv位置坐标(xauv,yauv)、目标点坐标(xgoal,ygoal)、当前艏向角θ和目标艏向角β总共6维的输入;其中目标艏向角β为当auv正向朝着目标航行时的艏向角;

奖惩函数:趋向目标行为驱使auv在无障碍物环境下朝目标点航行,奖励函数设置为两项,第一项r11考虑auv与目标点距离变化:

第二项r12考虑auv的艏向角变化,艏向角越接近目标,目标值奖励值越大,当前auv艏向与目标艏向夹角α为:

α=θ-β

当α绝对值越小,获取奖励值越大,具体为:

r12=kacos(α)

式中ka为趋向目标过程对应的奖励系数;

总奖励值为两项加权:

r1=k11r11+k12r12

其中k11、k12分别为权值;

所述行为中的墙壁跟踪过程包括以下步骤:

auv墙壁跟踪行为考虑auv与墙壁距离和相对角度信息;auv依靠一侧布置的前后两个测距声呐获取auv到墙壁的距离x4和x5;

通过磁罗经获取当前auv艏向角θ,则推算出当前墙壁角度θwall:

式中lauv为前后两个声呐的距离,墙壁跟踪行为的环境状态特征输入设置为x1、x2、x3、x4、x5、θ、θwall和目标跟踪距离lgoal,其中,x1-x5分别三个前视声呐和一侧设置的前后声呐所测得的数据;特征输入量个数为8,以上特征变量可以完整地描述auv与墙壁之间状态关系;声呐数据通过设置距离阈值进行判断,在训练过程中超出阈值则结束当前训练周期;

奖惩函数:使auv能够尽量保持与墙壁平行,并与墙壁保持在一定距离范围内;基于虚拟目标点的墙壁跟踪行为的奖励信号主要设置为四项,一般的墙壁跟踪行为的奖励信号主要设置为两项;

一项考虑auv与当前墙壁所成角度如下公式,当auv与墙壁角度增大并超过阈值时,获取一个负奖励值,当在减小时获取一个正奖励值:

第二项考虑auv前后两端与墙壁距离如下公式,当auv与墙壁距离与预设值的差值减小,则获取一个正奖励,当差值增大时获取一个负奖励,允许跟踪距离在预设值的±0.2m范围内,当进入跟踪范围内此项奖励值为0,这里与墙壁距离值为同侧面两个测距声呐数据的平均值;

一般的墙壁跟踪行为总的奖励r即为两项奖励加权:

r2=k21r21+k22r22

其中k21-k22分别为权值;

基于虚拟目标点的跟踪:为外直角和内直角墙壁构建的虚拟目标点;当环境为外直角时,由于前侧的声呐在没有检测到障碍物时输入为最大探测距离,构建虚拟墙壁,添加虚拟目标点;当环境为内直角时,当前视声呐检测到墙壁时,在auv相对当前目标墙壁的另一侧构建虚拟目标点;

根据虚拟目标点构建奖惩函数为:

r24=kbcos(α)

式中kb为墙壁跟踪过程对应的奖励系数;

基于虚拟目标点的跟踪行为总的奖励r即为四项奖励加权:

r2=k21r21+k22r22+k23r23+k24r24

其中k23-k24分别为权值;

当auv逐渐调整至跟踪下一段墙壁时,如外直角环境中测距声呐重新检测到目标墙壁或内直角环境中前视声呐不再检测到前方墙壁时,则取消虚拟目标点,调用一般的墙壁跟踪行为网络;

所述行为中的避障过程包括以下步骤:

针对auv避障行为的需求,环境状态特征输入包括三个前视声呐和两侧分别设置的前端声呐的数据;auv在避障机动过程中应同时向目标点方向靠近,特征输入还包括auv的当前位置坐标(xauv,yauv)、目标点位置坐标(xgoal,ygoal)、当前艏向角θ和目标艏向角β总共11维的输入;

奖惩函数:将奖励信号分为三项,第一项是依据auv相对于障碍物距离所得到的奖励值r31,当auv与障碍物靠近时,得到一个负奖励的警告;当auv与障碍物距离变远时,获得一个正奖励,鼓励auv远离障碍物航行,与障碍物碰撞时获取奖励值为-1并结束当前训练周期;

第二项是依据当前auv与目标点的距离产生的奖励值r32,鼓励auv在避开障碍物的同时朝着目标点航行,所以当auv远离目标点时获取一个负奖励,靠近时获取一个正奖励,当auv到达目标点时获取正奖励值1.0并结束训练周期;

第三项是根据auv与当前目标所成角度α产生的奖励r33,同样鼓励auv朝着目标点方向航行,但该项奖励主要在于让auv学习调整艏向角靠近当前的目标艏向,减小路径长度;

r33=kccos(α)

式中kc为墙避障过程对应的奖励系数;

最后总奖励信号就等于这三项奖励值加权:

r3=k31r31+k32r32+k33r33

其中k31-k33分别为权值;

强化学习是训练动作到环境的映射,将机器人当作环境,通过ddpg训练得到力和力矩作用于水下机器人,利用auv模型计算得到机器人的速度和角速度,根据速度和角速度与目标速度和目标角速度的误差设计奖励值r4=-|δv+δψ|,δv为速度误差、δψ为艏向误差;同时在训练过程中的auv模型中加入随机干扰力,从而训练出一个基于ddpg的控制系统;待控制系统训练完成后,由机器人的当前位置及目标路径,根据路径跟踪策略得到目标指令,利用ddpg控制系统控制机器人跟踪规划指令。

本发明的有益效果:

1、本发明设计的三层规划系统,将总任务分解为趋向目标和避障子行为,设计了环境状态模型和奖惩函数,通过在行为中进行策略寻优实现空间的降维,能在复杂环境模型中规划出一条安全无碰撞的路径,解决了“维数灾”问题。

同时本发明的智能化水平较高,不用依靠人工编程进行规划,不依赖与人工经验,就能够实现机器人的控制。

2、本发明将基于深度强化学习算法应用于行为规划系统,通过神经网络提取高维数据特征解决连续环境状态下的感知问题,再利用强化学习进行行为决策规划。针对隧洞探测任务需求定义了趋向目标点、墙壁跟踪和避障三个典型行为,分别为每种行为构建了行为网络,设计对应的环境状态变量和奖惩函数,针对墙角问题,提出基于虚拟目标点的跟踪方法。每种行为都达到了对应的目标,通过调用各个行为网络完成隧洞探测任务,算法稳定性高,泛化能力强。

3、本发明把auv的动力学模型当作环境,训练力到速度的映射关系,所以本发明的控制方法不需要精确的环境模型,并解决了训练经验非常局限,在现实环境中应用困难的问题;较之于其他智能控制算法的研究,具有普遍的适应能力,只需要成功训练一次即可应用于各种作业任务。

附图说明

图1为智能水下机器人任务划分为三个层次的示意图;

图2为任务分解示意图;

图3为墙壁跟踪行为示意图;

图4为外直角墙壁环境示意图;

图5为内直角墙壁环境示意图;

图6为避障行为示意图;

图7为auv声纳布置图。

具体实施方式

具体实施方式一:

本实施方式为一种基于强化学习的auv行为规划及动作控制方法。

本发明定义了智能水下机器人任务的三层结构,即:任务层、行为层及动作层;在遇到突发状态时进行auv行为规划,利用deepdeterministicpolicygradient(ddpg)控制器对auv进行动作控制。

实现过程包括如下三部分内容:

(1)智能水下机器人任务分层设计;

(2)行为规划系统构建;

(3)基于ddpg控制算法设计;

进一步的,所述内容(1)的过程如下:

为完成水下机器人隧洞探测任务的分层,定义智能水下机器人隧洞探测任务、行为和动作的概念:将水下机器人探测隧洞定义为总任务;为完成总任务定义趋向目标、墙壁跟踪和避障三种典型行为;将机器人在水下航行为完成所规划的行为而产生的具体的控制指令定义为动作,如:左转n度、右转n度、以n节的速度前进等。

如图1所示,将智能水下机器人的行为规划系统的体系结构划分为三个层次:总任务层、行为层、动作层。该模型是一个由底向上的分层框架,动作层可以看作是auv与环境交互的过程,auv执行动作并作用于环境,规划系统通过该层获取实时的环境和自身状态数据,通过与规划系统之前的学习经历进行学习训练,更新全局规划知识。将训练样本库中关于环境状态数据的历史经验信息与当前环境状态进行对比分析,然后将对比结果和规划知识更新数据反馈到总任务层;总任务层是规划系统较高级的层次,主要分析当前环境状态并按一定的内部策略输出规划结果,以行为动作序列的形式发给行为层,也就是根据当前环境状态数据规划出行为序列;行为层为中间层,主要考虑当前动作层获取的局部的环境状态数据,按照总任务层给出的高层规划结果,按照一定的策略选择行为。综上,总任务层根据环境状态数据给出高层规划结果,行为层根据高层规划结果进一步选择行为执行,动作层中auv再按行为策略执行基本动作,并负责感知环境状态变化,三层框架形成了一个自底向上学习的规划决策模型。

进一步的,所述内容(2)的过程如下:

auv在执行隧洞探测任务时,按任务需求依次达到全局航路规划给出的关键路径点。但在实际作业过程中,存在部分未知的环境信息如突发障碍物、隧洞洞壁损坏造成洞壁环境的变化等,这需要auv根据环境信息和自身状态做出及时机动以保证安全性。基于深度强化学习的行为规划系统采用一种基于反应式的规划体系结构,它通过构建环境状态和动作的映射关系,使auv根据环境变化快速规划动作,能够提高auv应对突发环境变化的能力。

本发明以一个智能有压输水隧洞探测auv为研究对象,借助其配备的水声设备和传感器等探测水下环境,使用深度强化学习dqn算法进行实时行为规划:构建基于多行为网络调用的行为规划体系结构;根据任务需求定义三个基本行为的环境状态特征输入和输出动作,构建对应的深度学习的行为网络,并设计奖惩函数;在墙壁跟踪行为中,针对墙角问题,提出基于虚拟目标点的跟踪方法。

本发明针对行为层的规划问题,以隧洞探测为典型应用背景,提出了趋向目标行为、墙壁跟踪行为和避障行为三个典型行为,定义了底层的基本动作,设计行为网络,规划系统通过调用训练好的行为网络来完成隧洞探测任务。对于隧洞探测任务,该任务可以被分解为行为序列,如图2所示,全局航路规划根据先验环境信息规划出一系列可行的路径点,auv从布放位置开始出发,依次达到各路径点。

其中航渡任务为auv从起点到达各个路径关键点,在每段航渡任务中可以设置不同的速度约束。由于路径点为已知环境下的全局规划,因此在航渡过程中,auv根据实时环境状态,调用避障行为安全达到路径点,因此每段航迹并不唯一。隧洞探测任务从路径点3开始到路径点4结束,auv主要调用墙壁跟踪行为,按预定的探测目标完成任务。

此外体系结构中的感知模块(包括声呐)负责获取auv传感器数据,根据行为需求通过解析数据,检测实时的auv状态信息和环境信息。决策模块是整个规划系统的核心,它包含了全局数据、决策系统、行为库和评价系统。全局数据存储了任务信息、态势信息、规划知识等;决策系统也就是结合dqn算法的自学习规划系统,决策系统先进行大量的训练,在每次执行规划任务前先从行为库中提取训练好的网络参数,再以当前环境状态信息为输入,规划出当前行为动作;评价系统也就是强化学习算法的奖励函数系统,它在auv规划一个行为动作规划并执行后,根据状态环境和任务信息给出一个奖励,所有数据存储到全局数据库中。

2.1)趋向目标

在auv执行隧洞探测任务过程中,auv都需要到达预先全局规划好的目标点,为保证路径最短,趋向目标点的行为是使auv在未检测到障碍物时调整艏向角朝目标点航行,因此在趋向目标行为过程中auv的实时艏向需要尽可能控制在目标方向附近。根据趋向目标行为的需求,如图2所示,特征输入量主要考虑auv与目标点的位置和角度关系,具体设置为当前auv位置坐标(xauv,yauv)、目标点坐标(xgoal,ygoal)、当前艏向角θ和目标艏向角β总共6维的输入。其中目标艏向角β为当auv正向朝着目标航行时的艏向角。

2.1.1)奖惩函数设计:趋向目标行为主要驱使auv在无障碍物环境下朝目标点航行,因此具体奖励函数设置为两项,第一项r11考虑auv与目标点距离变化,具体为:

第二项r12考虑auv的艏向角变化,鼓励auv调整至目标艏向航行,艏向角越接近目标,目标值奖励值越大,当前auv艏向与目标艏向夹角α为:

α=θ-β(2)

当α绝对值越小,获取奖励值越大,具体为:

r12=kacos(α)(3)

式中ka为趋向目标过程对应的奖励系数;

总奖励值为两项加权:

r1=k11r11+k12r12(4)

其中k11、k12分别为权值;

2.2)墙壁跟踪

由于大部分隧洞距离较长,整个水利工程可以达到十公里以上,且auv一旦进入隧洞入口,就再难以进行人工干预,这就要求auv能够根据隧洞环境自主的完成探测任务。为避免发生碰撞,auv需要距离墙壁一定安全距离,并且在水下受光源和能见度等限制,auv到墙壁之间的距离也直接影响图像采集的质量,因此就要求auv具备延墙壁航行并保持一定距离的功能。

2.2.1)根据上述auv墙壁跟踪功能的需求,这种行为主要考虑auv与墙壁距离和相对角度信息。如图3所示,以auv跟踪自身右侧墙壁航行为例,auv依靠右侧布置的前后两个测距声呐获取auv到墙壁的距离x4和x5;

本实施方式中auv共设置7个测距声呐,如图7所示,其中auv前端设置三个前视声呐(图7中的①②③),auv两侧各设有两个声呐(图7中的④⑤和⑥⑦),每侧的两个声呐分别在前、后各设有一个,前端的称为前端声呐,后端的称为后端声呐。

通过磁罗经获取当前auv艏向角θ,则推算出当前墙壁角度θwall:

式中lauv为前后两个声呐的距离,墙壁跟踪行为的环境状态特征输入设置为x1、x2、x3、x4、x5、θ、θwall和目标跟踪距离lgoal,其中,x1-x5分别三个前视声呐和一侧设置的前后声呐(本实施方式中表示编号①-⑤声纳)所测得的数据;特征输入量个数为8,包括前视声呐和侧面声呐的数据,前视声呐主要用于探测墙角环境下的前方墙壁距离x1,以上特征变量可以完整地描述auv与墙壁之间状态关系。声呐数据通过设置距离阈值进行判断,在训练过程中超出阈值则结束当前训练周期。

2.2.2)奖惩函数设计:在auv墙壁跟踪行为学习中,奖惩函数的目的是使auv能够尽量保持与墙壁平行,与墙壁所成角度维持在0°附近,并与墙壁保持在一定距离范围内。考虑以上因素,基于虚拟目标点的墙壁跟踪行为的奖励信号主要设置为四项,一般的墙壁跟踪行为的奖励信号主要设置为两项。

一项考虑auv与当前墙壁所成角度如公式(6),当auv与墙壁角度增大并超过阈值时,获取一个负奖励值,当在减小时获取一个正奖励值:

第二项考虑auv前后两端与墙壁距离如公式(7),当auv与墙壁距离与预设值的差值减小,则获取一个正奖励,当差值增大时获取一个负奖励,允许跟踪距离在预设值的±0.2m范围内,当进入跟踪范围内此项奖励值为0,这里与墙壁距离值为同侧面两个测距声呐数据的平均值。

一般的墙壁跟踪行为总的奖励r即为两项奖励加权:

r2=k21r21+k22r22(8)

其中k21-k22分别为权值;

2.2.3)基于虚拟目标点的跟踪方法:一般墙壁环境下,墙壁跟踪行为只需要考虑目标艏向角和目标跟踪距离,与趋向目标和避障行为不同的是,它没有实际目标点的引导,因此在墙角等特殊环境无法给出正确规划结果。墙角问题是auv墙壁跟踪行为的主要难点,本发明主要考虑两种墙角环境:外直角和内直角环境。由于墙角环境的特殊性,在外直角跟踪时,auv靠前的测距声呐会出现检测不到墙壁的情况,使auv不能及时调整艏向角而丢失目标,在内侧墙角时,基本奖惩函数设计没有考虑前方墙壁障碍物而发生碰撞。

针对此问题,本发明提出构建虚拟目标点来引导auv墙壁跟踪的方法。如图4和图5所示,为外直角和内直角墙壁构建的虚拟目标点。当环境为外直角时,由于前侧的声呐在没有检测到障碍物时输入为最大探测距离,因此构建虚拟墙壁如虚线所示,并在此基础上添加虚拟目标点。虚拟目标点位置由auv位置、测距声呐数据和安全距离l1确定:

xgoal=xauv+0.5(x4+x5)cos(θ)+[0.5lauvarcsin(θ+θwall)+l1]cos(θwall)-lgoalsin(θwall)(9)

ygoal=yauv-0.5(x4+x5)sin(θ)+[0.5lauvarcsin(θ+θwall)+l1]sin(θwall)+lgoalcos(θwall)(10)

当环境为内直角时,如图5所示,无法构建虚拟墙壁,考虑auv需要及时转向以避开前方墙壁障碍物,当前视声呐检测到墙壁时,在auv相对当前目标墙壁的另一侧构建虚拟目标点,虚拟目标点位置由auv位置、艏向角和安全距离l2确定:

xgoal=xauv+0.5lauvcos(θ)-l2sin(θ)(11)

ygoal=yauv+0.5lauvsin(θ)+l2cos(θ)(12)

在两种环境中都设置了安全距离l1和l2,取值大小经过仿真试验确定在目标跟踪距离左右,行为规划效果较好。根据虚拟目标点构建奖惩函数为:

r24=kbcos(α)(14)

式中kb为墙壁跟踪过程对应的奖励系数;

基于虚拟目标点的跟踪行为总的奖励r即为四项奖励加权:

r2=k21r21+k22r22+k23r23+k24r24(15)

其中k23-k24分别为权值;

奖惩系数k23和k24值相对比较大,使得auv在墙角环境时更倾向于虚拟目标点的引导。当auv逐渐调整至跟踪下一段墙壁时,即外直角环境中测距声呐重新检测到目标墙壁或内直角环境中前视声呐不再检测到前方墙壁时,则取消虚拟目标点,调用一般的墙壁跟踪行为网络。

2.3)避障

避障行为是行为规划系统的关键,体现auv自主决策水平能力,决定着auv能否安全地执行作业任务。

2.3.1)针对auv避障行为的需求,如图6所示,行为规划系统需要充分获取周围的障碍物环境信息,因此环境状态特征输入包括三个前视声呐和两侧分别设置的前端声呐的数据。auv在避障机动过程中应同时向目标点方向靠近,需要获取auv与目标点的相对位置信息,因此特征输入还包括auv的当前位置坐标(xauv,yauv)、目标点位置坐标(xgoal,ygoal)、当前艏向角θ和目标艏向角β总共11维的输入。

2.3.2)奖惩函数设计:避障行为的目的在于让auv有效避开突发障碍物并顺利到达目标点,因此将奖励信号分为三项,第一项是依据auv相对于障碍物距离所得到的奖励值r31,如公式16所示,当auv与障碍物靠近时,得到一个负奖励的警告;当auv与障碍物距离变远时,获得一个正奖励,鼓励auv远离障碍物航行,与障碍物碰撞时获取奖励值为-1并结束当前训练周期。

第二项是依据当前auv与目标点的距离产生的奖励值r32,鼓励auv在避开障碍物的同时朝着目标点航行,所以当auv远离目标点时获取一个负奖励,靠近时获取一个正奖励,当auv到达目标点时获取正奖励值1.0并结束训练周期。

第三项是根据auv与当前目标所成角度α产生的奖励r33,同样鼓励auv朝着目标点方向航行,但该项奖励主要在于让auv学习调整艏向角靠近当前的目标艏向,减小路径长度。

r33=kccos(α)(18)

式中kc为避障过程对应的奖励系数;

最后总奖励信号就等于这三项奖励值加权:

r3=k31r31+k32r32+k33r33(19)

其中k31-k33分别为权值;

进一步的,所述内容(3)的过程如下:

强化学习是训练动作到环境的映射,可以通过把机器人模型当作环境模型,训练动作到机器人模型的映射。所以本发明直接将机器人当作环境,建立一个模糊水动力参数的机器人运动学及动力学模型,即auv模型,通过ddpg训练得到力和力矩作用于水下机器人,利用auv模型计算得到机器人的速度和角速度,根据速度和角速度与目标速度和目标角速度的误差设计奖励值r4=-|δv+δψ|,δv为速度误差、δψ为艏向误差。同时训练过程中的auv模型中加入随机干扰力以模拟水下动态多变的环境,从而训练出一个基于ddpg的具有抗干扰能力的完整的控制系统。待控制系统训练完成后,由机器人的当前位置及目标路径,根据路径跟踪策略得到目标指令,利用ddpg控制系统控制机器人跟踪规划指令。

所述ddpg的控制系统对应动作网络,deepdeterministicpolicygradient(ddpg)是将actorcritic与dqn相结合的一种算法,提高了actorcritic的稳定性和收敛性。其思想是将dqn结构中的记忆库以及两套结构相同但参数更新频率不同的神经网络思想运用到actorcritic中。同时利用deterministic思想改变了原来actorcritic在连续动作区间上进行随机筛选的方式,只在连续区间上输出一个动作值。

对于critic系统,critic的学习过程跟dqn类似,以现实的q值和估计的q值的损失函数来进行网络学习,如下式:

loss=r+γmaxaq(s′,a)-q(s,a)(20)

上面的式子中q(s,a)是根据状态估计网络得到的,a是动作估计网络传过来的动作。而前面部分r+γmaxaq(s′,a)是现实的q值,与dqn不同的是,这里计算q值时,不再使用贪心算法来选择动作a′,而是动作现实网络得到这里的a′。总的来说,critic的状态估计网络的训练还是基于现实的q值和估计的q值的平方损失,估计的q值根据当前的状态s和动作估计网络输出的动作a输入状态估计网络得到,而现实的q值根据现实的奖励r,以及将下一时刻的状态s′和动作现实网络得到的动作a′输入到状态现实网络而得到的q值加和得到。

在actor系统中,基于下式进行动作估计网络的参数更新

s表示状态,st为t时刻的状态,a表示动作,θq和θμ表示网络的权重参数;

假如对于同一个状态,系统输出了两个不同的动作a1和a2,从状态估计网络得到了两个反馈的q值,分别是q1和q2,假设q1>q2,即采取动作1可以得到更多的奖励,那么根据policygradient的思想,增加a1的概率,降低a2的概率,也就是说,actor想要尽可能的得到更大的q值。所以actor的损失可以简单的理解为得到的反馈q值越大损失越小,得到的反馈q值越小损失越大,因此需要对状态估计网络返回的q值取个负号即可。

ddpg控制器的思想是将强化学习算法中的动作对应于机器人的推力及力矩,将算法中的状态对应于机器人的速度及角速度。对算法进行学习训练从而实现力到状态的映射关系。

将ddpg应用于auv控制,首先需要建立critic神经网络结构q(stat|θq)及actor神经网络结构μ(st|θμ),θq和θμ表示网络的权重参数。然后分别在critic和actor两个结构中建立两个神经网络:目标网络(target_net)和预测网络(eval_net)。然后将ddpg的动作输出看作控制系统的作用力τ,控制系统输出的作用力控制机器人运动,即可以将ddpg控制系统看作是auv当前状态s到机器人所受力的映射,结合公式(21)中的a=μ(st|θμ)用函数表示为:

τ=μ(st|θμ)(20)

机器人状态s主要体现于机器人的速度和艏向:

其中u,v,r分别为auv的纵向速度、横向速度和角速度;ψ为auv的艏向角;

因为是水平面运动,忽略v、r;所以,

τ=μ(st)=μ(u(t),ψ(t))(24)

该式即表示控制系统输出力控制机器人的速度、艏向和纵倾角达到目标指令。

具体实施方式二:

具体实施方式一中所述的建立一个模糊水动力参数的auv模型的过程就是普通的auv动力学建模过程,采用本领域的现有技术即可实现,为了使用上述过程更加清楚,本实施方式对建立一个模糊水动力参数的auv模型的过程进行说明,需要说明的是,本发明包括但不限于以下方式建立一个模糊水动力参数的auv模型。建立一个模糊水动力参数的auv模型的过程包括以下步骤:

建立水下机器人的水动力方程:

其中,f—随机干扰力;m—系统惯性系数矩阵,满足m=mrb+ma≥0;mrb—载体的惯性矩阵,满足ma—附加质量系数矩阵,满足—科氏力-向心力系数矩阵,满足crb—向心力系数矩阵;—科氏力(矩)系数矩阵,满足—粘性水动力系数矩阵,满足τ—控制输入向量;g0—静压载向量,为了研究方便取零;—回复力/力矩向量。

根据智能水下机器人的执行机构配置情况考虑其横摇较小,主要利用推进器做升潜、纵移、摇艏和纵摇运动,其动力学模型可以近似用五自由度方程来描述。

式中x、y、z、m、n表示水下机器人执行器产生的作用在水下机器人各个自由度上的力(力矩),包括:水下机器人受到的重力和浮力、推进器的推力、水下机器人运动引起的流体水动力和一些环境外力;

m为水下机器人水下全排水量的质量;

xg,yg,zg为水下机器人重心在艇体坐标系中的坐标;

iy,iz分别为水下机器人质量相对于艇体坐标系y,z轴的转动惯量;

u,v,ω,q,r分别为水下机器人艇体坐标系下纵向速度、横向速度、垂向速度、纵倾角速度、回转角速度;

为水下机器人艇体坐标系下相应自由度的(角)加速度;

xuu,yv等都为艇体的一阶或二阶水动力导数,可以通过理论计算、约束模型试验、辨识及近似估算可以得到。

实施例

本发明的最主要的目的是让水下机器人在水下环境中根据当前环境状态自主完成行为决策及动作控制,从而使人摆脱繁杂的编程过程,具体实现过程如下:

1)利用编程软件搭建基于深度强化学习的智能水下机器人的行为规划仿真系统,通过仿真训练的得到机器人的最优决策策略,具体步骤如下:

1.1)建立环境模型,确定初始位置和目标点,初始化算法参数;

1.2)确定当前t时刻环境状态以及机器人任务,将任务分解为行为:趋向目标、墙壁跟踪、避障;

1.3)根据当前状态选择趋向目标、墙壁跟踪或避障,将行为分解为动作;

1.4)执行动作a,观察新的状态s′,得到奖励值r;

1.5)训练神经网络得到各个动作的q值,根据最大q值输出动作;

1.6)更新q函数;

1.7)判断当前时刻状态,若抵达目标状态,转1.8);否则转1.4);

1.8)完成所选择的行为,更新q函数;

1.9)判断是否完成探测,若是,转1.10),否则,返回1.3);

1.10)判断q值是否收敛,若是,结束训练或规划,否则,初始化机器人位置,转1.2);

2)利用ddpg控制器控制机器人完成规划所输出的动作,具体步骤如下:

2.1)初始化参数;

2.2)进行外部循环:

2.2.1)随机生成目标艏向、目标速度;

2.2.2)进行内部循环:

2.2.2.1)运行ddpg算法,输出动作τ=a=μ(st|θμ);

2.2.2.2)根据auv动力学模型计算auv的加速度:

2.2.2.3)根据auv运动学模型计算auv速度及艏向角及纵倾角计算速度误差δv、艏向误差δψ及纵倾误差δθ,根据奖励策略获取奖励值:r=-|δv+δψ+δθ|;

2.2.2.4)如果控制误差为0,r+=1,结束小循环;

2.2.2.5)更新critic神经网络以获取最小损失:

loss=r+γmaxaq(s′,at|θq)-q(s,at|θq)

2.2.2.6)用梯度下降法更新actor:

2.2.2.7)更新网络参数θq′=ρθq+(1-ρ)θq′,θμ′=ρθμ+(1-ρ)θμ

2.2.2.8)若达到内部循环步数,结束内部循环;

2.2.3)若达到外部循环步数,结束外部循环。

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