技术领域
[0001] 本发明属于无人艇多目标导航技术领域,具体涉及一种基于近端策略优化的多无人艇深度强化学习协同导航方法。
相关背景技术
[0002] 近年来,随着无人艇技术的发展,无人艇已广泛应用于狩猎、救援、检测等任务。与单一的无人艇系统相比,多无人艇协同作业可以完成单一无人艇不能高效完成或者无法完成的复杂任务,所以多无人艇协同作业在军事和民用领域得到广泛的应用。
[0003] 随着深度学习和强化学习的不断发展,逐渐衍生出一个新兴的交叉领域,即深度强化学习。它结合了深度神经网络的表征能力和强化学习的决策能力,为智能体提供了一种端到端学习策略的方式。一些基于深度强化学习算法多无人艇路径规划的相关研究,通过设计合理的奖励函数,完成了多无人艇在复杂多变的环境中自主导航的任务。
[0004] 虽然无人艇的运动控制已经取得丰硕的研究成果,但是现有的研究仍然存在一些局限性,如在导航方面,现在有的研究主要集中在单无人艇的目标导航问题,但随着海上作业任务日益复杂,无人艇单体能力受限,在实际的应用中往往需要多无人艇协同作业;在航海安全方面,现有的避障避碰方法只考虑了单无人艇的避碰问题,约束条件单一,而多无人艇避碰避障问题则更为复杂。无人艇不仅要避免与海洋环境中动静态障碍物发生碰撞,而且要避免与无人艇之间发生碰撞,防止多个无人艇可能因为选择同一个目标点而产生冲突的问题。
具体实施方式
[0020] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0021] 本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。
[0022] 如图1所示,本发明一种基于近端策略优化的多无人艇深度强化学习协同导航方法,包括以下步骤:步骤1、对单个无人艇进行数学建模,确定无人艇水平面运动的运动学模型及动力学模型;
步骤2、将多无人艇多目标导航问题建模为马尔科夫决策过程,确定马尔科夫决策过程单个无人艇的状态空间以及动作空间;
步骤3、根据多无人艇多目标导航的目标建立考虑无人艇与障碍物发生碰撞情况以及无人艇与其余的无人艇发生碰撞情况的差分奖励函数,以引导多无人艇实现多目标导航;
步骤4、基于步骤1‑3,获取多个无人艇的状态信息,输入多智能体深度强化学习模型,结合多智能体近端策略优化算法,得到多个无人艇的动作;
步骤5、采用训练后的多智能体深度强化学习模型进行多无人艇多目标导航。
[0023] 进一步地,步骤1包括如下子步骤:本发明实施例选择4.88m波浪自适应模块化船作为实施的研究对象。如图3所示,波浪自适应模块化船是一种双体船。该船船体的船尾侧配备了两个电力推进模块,电力推进模块提供前进的推力,并通过两个推进器中产生的转速差来产生转向运动;
无人艇的水平平面运动是路径规划问题主要关注的,所以本发明实施例主要研究
3自由度(纵荡、摇摆和偏航)的无人艇的运动。
[0024] 步骤11、无人艇的三自由度水平面动力学模型如下:;
其中M为无人艇的质量惯性矩阵,C(v)是科里奥利向心力矩阵,D(v)是阻尼系数矩阵,v是速度向量,v的组成为[u,w,r],其中u表示激荡速度,w表示摇摆速度,r表示角速度,f是推进力和力矩;
f可以表示为:
;
Tport和Tstdb表示左舷推进器推力、左舷推进器推力,L表示无人艇的横梁长度;
步骤12、动力学模型如下:
线性动力学模型:
;
A是一个2×2的系统矩阵, 是一个2×1的控制矩阵,Bbias是一个2×1的偏差矩阵;
表示激荡加速度、 表示摇摆加速度、表示角加速度;u表示激荡速度,w表示摇摆速度,r表示角速度;au,bu, 表示的是常系数;
线性动力学模型具体描述如下:
;
表示推力, 表示力矩。
[0025] 步骤13、无人艇的运动受到各种环境干扰的影响,如风、波浪和洋流特别是,洋流的影响在沿海地区可能是显著的,而由洋流引起的漂移的速度有时可以与无人艇自身的速度相当。本发明实施例中假设未知洋流是恒定且无旋转的,并且根据相对速度矢量定义船舶的运动学模型,无人艇的三自由度水平面运动学模型如下:;
;
;
[uc,wc]表示在坐标系b下的洋流的速度,[Vx,Vy]表示在坐标系c下的洋流速度,表示从坐标系b到坐标系c的旋转矩阵,其中c是惯性坐标系,b是以船体为固定框架定义的坐标系;
[u,w,r]是没有考虑洋流影响的速度向量,其中u表示激荡速度,w表示摇摆速度,r表示角速度;
[ur,wr]表示考虑洋流影响之后的相对速度向量,其中ur表示是艇的相对激荡速度,wr表示艇的相对摇摆速度;
分别表示水平方向的速度、垂直方向的速度,表示角速度, 表示航向角。
[0026] 进一步地,步骤2包括如下子步骤:步骤21、单个无人艇的状态空间表示为:
;
式中xi,yi表示无人艇i的横纵位置; 表示航向角,ui表示无人艇的激荡速度,wi表示无人艇的摇摆速度,ri表示无人艇i的角速度,aui表示无人艇i的激荡加速度,awi表示无人艇i的摇摆加速度,ari表示无人艇i的角加速度, 表示相对距离:无人艇i相对于目标点
1‑3的距离,无人艇i相对于其余无人艇的距离。
[0027] 步骤22、单个无人艇的动作空间表示为:;
Tport,Tstdb表示作用在艇左舷、右舷上的推力。
[0028] 进一步地,步骤3包括如下子步骤:差分奖励函数的设置:
为了避免多无人艇可能因为选择同一个目标而产生冲突,需要设计一个合理的差分奖励函数来引导无人艇完成任务。图2中U1,U2,U3表示无人艇1,无人艇2,无人艇3;T1,T2,T3表示目标点1,目标点2,目标点3;o1,o2表示障碍物1,障碍物2。图2中有三个处于不同位置的无人艇,它们的任务是通过协作导航到达不同的目标点。对于某个目标点来说,只要离它最近的无人艇更加靠近它,则环境返回更大的奖励,因此无人艇i的差分奖励函数可被设计为:
;
其中,r_o_collide表示无人艇与障碍物发生碰撞的情况,无人艇i与障碍物发生碰撞时r_o_collide为‑1,其余的情况r_o_collide为0;
r_u_collide表示无人艇与其余的无人艇发生碰撞的情况,无人艇i与其余的无人艇发生碰撞时r_u_collide为‑1,其余情况r_u_collide为0;
;
表示目标点1, 表示目标点2,表示目标点3;
表示在时刻t无人艇1, 表示在时刻t无人艇2;
表示在时刻t无人艇3, 表示在时刻t+1无人艇1;
表示在时刻t+1无人艇2, 表示在时刻t+1无人艇3;
表示在时刻t,三个无人艇中距离目标点1最近的距离;
表示在时刻t,三个无人艇中距离目标点2最近的距离;
表示在时刻t,三个无人艇中距离目标点3最近的距离;
表示 、 、 这三个距离之和;
表示在时刻t+1,三个无人艇中距离目标点1最近的距离;
表示在时刻t+1,三个无人艇中距离目标点2最近的距离;
表示在时刻t+1,三个无人艇中距离目标点3最近的距离;
表示 、 、 这三个距离之和;
表示在时刻t的差分奖励。
[0029] 进一步地,步骤4中多无人艇与环境进行交互,并对采用交互过程中产生的数据时刻t的状态,奖励,动作,时刻t+1的状态进行存储,经验池满了之后采用多智能体近端策略优化算法对多无人艇进行训练,清空经验池,重复上述过程直到训练到最大的回合数,完成对模型的训练,得到训练后的多智能体深度强化学习模型;具体包括如下子步骤:步骤41、多无人艇与环境进行交互:调用仿真环境的reset( )方法,得到多个无人艇的出发点,以及多个目标点,以及多无人艇的速度信息,生成多无人艇的状态向量;
步骤42、将多无人艇的状态向量输入到多智能体深度强化学习模型的策略网络中,得到多无人艇的动作向量,对于仿真环境生成的多无人艇的状态向量是基于步骤2中的状态空间进行采样得到的,对于多无人艇的动作向量是基于步骤2中的动作空间进行采样得到的;
步骤43、将多无人艇的动作向量送给仿真环境,仿真环境会基于步骤3建立的差分奖励函数、步骤1中模型返回奖励以及多无人艇执行动作向量之后的下一个状态向量,基于下一个状态向量执行步骤42,又会得到一个新的动作向量,重复执行步骤42,步骤43直到一个与环境交互回合结束,并将本回合过程中多无人艇与仿真环境交互的过程中产生的当前状态,奖励值,动作,下一个状态数据存储至经验池中;
步骤44、重复执行步骤41‑步骤43一直到与环境交互的回合数到32个回合,即经验池已满;
步骤45、从经验池中采样所有(32个)回合数据,基于多智能体近端策略优化算法更新多智能体深度强化学习模型的策略网络以及价值网络;
步骤46、清空经验池;
步骤47、重复步骤41‑步骤46,直至达到最大训练回合数,完成对多智能体深度强化学习模型的策略网络以及价值网络的训练,得到训练后的多智能体深度强化学习模型。
[0030] 进一步地,步骤41的具体过程为:调用仿真环境的reset方法,得到n个无人艇的出发点、n个无人艇要到达的目标点、n个无人艇初始的激荡速度、摇摆速度、角速度速度、n个无人艇的激荡加速度、摇摆加速度、角加速度,得到多无人艇的状态向量。
[0031] 进一步地,步骤42中提到的策略网络,是一个128,128,2的三层的全连接神经网络。策略网络的作用是输出当前状态下最优的动作。
[0032] 进一步地,步骤43的具体过程为:得到动作向量之后,仿真环境会根据无人艇的动作向量以及在步骤1中建立的数学模型,计算出无人艇的激荡加速度、摇摆加速度、角加速度,基于得到的加速度,进一步计算出激荡速度、摇摆速度、角速度,进一步计算出艇的位移,以及偏航的角度。基于这些信息,仿真环境就可以返回给艇的下一个时刻的状态向量。有了艇的位移,仿真环境会根据艇的位移变化以及在步骤3中设计的差分奖励函数,返回给艇奖励。基于下一个时刻的状态向量执行步骤42,又会得到一个新的动作向量,重复执行步骤42,步骤43直到一个回合结束。并将上述过程中多无人艇与仿真环境交互的过程中产生的当前状态,奖励值,动作,下一个状态这些信息放到经验池中进行存储。
[0033] 进一步地,步骤45的具体过程为:多智能体近端策略优化算法:MAPPO(multi‑agent proximal policy optimization)多智能体近端策略优化算法,是将单智能体算法PPO( proximal policy optimization)应用于多智能体任务中的变种,该算法采用Actor‑Critic架构,在有限算力的条件下,具有较高的学习效率,在多种合作任务上表现出较高的水准。
[0034] mappo关键技术:参数共享:策略网络和价值网络参数在所有的智能体之间都是共享的。
[0035] mappo裁剪:为了防止策略以及值函数在迭代期间发生剧烈变化,对重要性以及价值进行裁剪。裁剪参数 取0.2。
[0036] mappo的批量:mappo存在一个临界的批量大小设置,当批量大小低于这个临界点时,mappo的最终性能很差,进一步调整批量大小会产生最佳的最终性能和样本效率。然而,继续增加批处理大小可能不会导致最终性能的提高,而且实际上可能会降低样本效率。针对这个问题,本实施例通过对比不同的批量大小对实施结果的影响,最终确定使用的批量大小为32个回合。
[0037] mappo具体实现方式:训练两个独立的网络,分别为参数是θ的策略网络 和参数为 的价值网络 ,他们对所有同构的智能体共享网络权重。策略网络 将智能体i(即无人艇i)的局部观测si映射至连续动作空间的分布;价值网络 :S→R将全局状态映射至状态价值的估计。价值网络由三层大小分别为128、128、1的全连接层组成,策略网络由三层大小分别为128、128、2的全连接层组成;策略网络的损失函数为:
;
其中B表示批处理数,N是智能体,即无人艇的数量; 表示优势函数; 表示参数为θ的策略网络, 表示参数没更新之前的策略网络,是固定常数,取值为0.2, 表示在时刻k智能体采取的动作, 表示在时刻k智能体所处的状态,clip表示裁剪,具体如下:
;
价值网络 的损失函数为:
;
其中 表示参数为 的价值网络, 表示参数没更新之前的价值网络,表示折扣累积奖励。
[0038] 进一步地,步骤5采用训练后的多智能体深度强化学习模型进行多无人艇多目标导航包括:对训练的模型进行测试。多个无人艇从出发点出发,将多个无人艇的状态向量输入到训练好的模型中,得到无人艇的最优动作,执行无人艇的最优动作,得到一个新的多个无人艇的状态向量,将多个无人艇的状态向量输入到训练好的模型中,得到无人艇的最优动作,执行无人艇的最优动作,上述过程,重复下去,直到多个无人艇以最优的路径到达多个目标点。
[0039] 所述步骤5具体包括:(1)将多个无人艇的状态向量输入到训练后的多智能体深度强化学习模型中,得到无人艇的最优动作;
(2)执行无人艇的最优动作,得到一个新的多个无人艇的状态向量,返回(1),直到多个无人艇以最优的路径到达多个目标点。
[0040] 实施例本实施例给出了考虑多无人艇多目标导航任务的仿真环境,如图2所示,该环境模拟了长度500m×500m的正方形海洋区域,给出了三个无人艇、三个目标点、两个障碍物的位置坐标。在该环境中,多无人艇的目标是通过多个无人艇之间的合作,在艇与艇之间,艇与障碍物之间不发生碰撞的前提下,寻找到一条可以到达多个目标点的最短的路径。
[0041] 采用多智能体深度强化学习算法mappo,实现对多无人艇运动的控制。多智能体深度强化学习模型参数:价值网络由三层大小分别为128、128、1的全连接层组成,价值网络的学习率为
0.00001。
[0042] 策略网络由三层大小分别为128、128、2的全连接层组成,策略网络的学习率为0.00001;
批量是32个回合,更新次数为10,无人艇的最大步长是25,最大的训练回合数是
80000,Q值网络损失函数中的目标值计算所需的折扣因子γ=0.99,梯度裁剪参数是0.2,优化器使用Adam。
[0043] 本发明使用多智能体深度强化学习算法mappo,对多无人艇进行训练,训练结果如图4、图5所示。
[0044] 图4所示的实施结果是两个无人艇避障避碰以最短的路径到达两个目标点的训练曲线,训练的横轴表示训练的回合数,曲线的纵轴表示一个回合的所有智能体的收益和。通过训练曲线可以看出当训练到40000回合的时候,收益基本上是已经收敛的。训练好之后,对训练好的模型进行测试,加载训练好的模型,从动画效果上也可以看出,两个无人艇可以通过合作,在避障避碰的前提下,可以寻找到一条从出发点到目标点的最短的路径。
[0045] 图5所示的实施结果是三个无人艇避障避碰以最短的路径到达三个目标点的训练曲线,通过训练曲线可以看出当训练到40000回合的时候,收益基本上是已经收敛的。训练好之后,对训练好的模型进行测试,加载训练好的模型,从动画效果上也可以看出,三个无人艇可以通过合作,在避障避碰的前提下,可以寻找到一条从出发点到目标点的最短的路径。
[0046] 因此,本发明设计的差分奖励,这种奖励的设置方式可以解决了多个无人艇可能因为选择同一个目标点而产生冲突的问题,从而可以引导多个无人艇通过合作实现以最短的路径实现多目标点的导航。另一方面,本发明将深度强化学习算法多智能体近端策略优化应用到多无人艇的多目标导航问题上,可以实现多无人艇的多目标导航。
[0047] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
[0048] 此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。