一种基于LSTM-RNN的UUV动态规划方法与流程

文档序号:14940518发布日期:2018-07-13 20:35阅读:477来源:国知局

本发明属于无人潜航器领域,尤其涉及一种基于lstm-rnn的uuv动态规划方法。



背景技术:

uuv在未知环境下的动态路径规划能力是体现其智能水平的重要指标之一。传统动态规划方法往往遭受着环境模型精度与规划实时性矛盾的困扰,且在具有大量随机运动障碍的复杂环境中,还需设计辅助策略才能实现理想的规避,这些辅助策略的设计是相当复杂的,而且需要大量的计算时间。因此,探寻一种简单、廉价、高效、易于实现的动态路径规划方法具有重大的理论和实践价值。

随着陆地资源消耗日趋枯竭,各国开始大量投入金钱、时间和人力开发水下资源,水下无人潜航器被重点所关注,而各种各样的无人潜航器在达到复杂作业及安全航行时,均要按照相应的航行路径进行操作,才能完成一次水下潜航。为了实施最佳航行计划、保持潜航器能在预定的航向上运行,要保证潜航器的操纵性,潜航器具备很好的操纵性时,能稳定维持行驶航向、深度及航速,又能快速对航向、深度及航速进行改变,正确的执行种种操作。水下无人潜航器路径的控制,也影响着无人潜航器的工作性能,需要对水下潜航器的路径进行有效的控制。

路径规划,即找到一条从起点到终点的无碰撞安全路径,并且使特定的规划指标如路径最短、风险最小、任务完成量最多等达到最优。路径规划算法在国内外已有相当多的研究,比较常用的有a*算法、dijkstra算法、蚁群和遗传等仿生智能算法。然而基于上述传统算法的实时路径规划系统,存在环境模型的精度以及路径的优化程度与规划的实时性相互矛盾的问题。深度学习是目前最具潜力的人工智能算法,其强大的非线性拟合能力可以为uuv提供一套简单、高效、易于实现的运动规划系统。这使得uuv具有了一定的自主学习的能力,从而减少了其对感知设备的依赖,增强了其在避碰过程中的灵活度。运动规划系统的规划能力随着uuv在运动的过程中的不断学习而逐步提高。

中国专利cn107368076a公开了一种智能环境下机器人运动路径深度学习控制规划方法,该方法使用深度学习dbn网络解决运载机器人全局路径规划问题。所提深度学习dbn网络包括一层输入层、三层隐藏层以及一层输出层,其中可视层与第一隐藏层构成第一层限制玻尔兹曼机rbm,第一隐藏层与第二隐藏层构成第二层限制玻尔兹曼机rbm,第二隐藏层与第三隐藏层构成bp网络层。该专利采用逐层训练的方法依次对两层限制玻尔兹曼机rbm和bp网络层进行训练。与全局路径规划不同,动态规划器需要根据过去一段时间内的环境信息实时输出规划结果。相较于限制玻尔兹曼机rbm,lstm-rnn具有处理较长时间序列的能力,且更适用于复杂的规划问题。



技术实现要素:

本发明的目的在于公开灵活度高,能够适应复杂环境的一种基于lstm-rnn的uuv动态规划方法。

本发明的目的是这样实现的:

一种基于lstm-rnn的uuv动态规划方法,包含如下步骤:

步骤(1):选择几何模型构建障碍环境模型:

对于椭圆形或圆形障碍,存储椭圆形或圆形障碍的两个对角点坐标,利用这两点坐标,计算出椭圆圆心和长短半径,获得椭圆形或圆形障碍的全部信息;对于多边形障碍,存储多边形顶点的坐标,由任意一个顶点开始,按顺时针或者逆时针顺序将多边形顶点依次存储于一个顺序链表中,通过顺序链表获取多边形障碍的全部信息。

步骤(2):利用蚁群算法建立用于获取数据集的uuv动态规划器:

蚁群算法信息素更新规则为:

上式中,i,j是状态点序号,m是蚁群中蚂蚁总数,ρ是挥发系数,q是常数,lk是蚂蚁k寻食付出的代价,即路径长度;

每一代蚂蚁中排名前四分之一的蚂蚁走过的路径的信息素强化规则为:

τij(t+1)=λ×τij(t+1)

上式中,d是起点到终点的欧式距离;

信息素浓度的限制处理:

上式中,τmin是自行设置的信息素浓度上限,τmax是自行设置的信息素浓度下限。

蚁群算法的状态转移规则如下:

为蚂蚁k处于i点处时下一步转移到i的可视点j的概率,allowi为蚂蚁k允许做状态转移的i点的可视点集合,η是启发式函数,取为i点到目标点距离的倒数,α为信息素的重要程度,β为启发函数的重要程度;

步骤(3):设计用于动态规划的lstm-rnn网络模型:

lstm-rnn网络模型:包括输入层,波束合并层,隐藏层,中间层以及输出层五个部分;

输入层:接收样本输入,接收样本有181维,前180维为模拟感知器探测的局部环境信息,最后1维为uuv当前位置与目标点在局部坐标下形成的夹角;

波束合并层:波束合并层是对输入层邻近波束求和后取平均;合并领域的大小为2,且不重叠,即该层每个单元对输入层每相邻两个单元的输出值求和取平均后输出;波束合并层共91维,其中前90维为合并后的局部环境特征,最后一维特征不做处理,直接输出;波束合并层的输出和一个偏置项一起作为记忆模块的输入,采用全连接形式;

隐藏层:包括10个记忆模块;记忆模块包括输入单元、输出单元、输入门、输出门、遗忘门、cell;输入单元、输出单元、输入门、输出门、遗忘门、cell的维度都为46;采用的序列长度为10,按序列展开后有10个记忆模块,上一时刻的模块输出反馈到下一时刻的模块中;假定第一个记忆模块虚拟的前驱模块输出恒为0向量;输入门、输出门、遗忘门的激活函数是sigmoid函数,输入单元、输出单元的激活函数是tanh函数;

中间层:第10个记忆模块的输出添加上偏置后以全连接方式输入到中间层,维度为23,激活函数是tanh函数;

输出层:中间层加上一个偏置项后以全连接方式输入到输出层,输出层维度为2,激活函数为线性函数,分别输出uuv的航向和航速。

步骤(4):获取数据集:

在全局坐标系中生成若干组随机地图,采用教师系统进行运动规划,水平覆盖角为360°、包含180个波束的二维仿真声呐在每个路径节点采集环境信息,所采集的信息为训练样本,训练样本构成训练集,将教师系统输出的航向及航速作为训练标签;

二维仿真声呐在每个路径节点采集的环境信息为:

上式中,为当前时刻第i个波束探测到的距离信息;

当第i个波束未探测到障碍时,

将t时刻仿真声纳探测到的距离信息做如下处理:

将t时刻uuv所在位置与目标点形成的角度表示为则t时刻lstm-rnn网络的输入向量为:

t时刻lstm-rnn网络的标签:

lt=[θt,vt],

上式中,θt表示期望的uuv的航向,vt表示期望的uuv的航速

步骤(5):利用数据集中训练集的数据训练lstm-rnn网络,得到基于lstm-rnn网络的动态规划器:

具体的训练步骤为:

步骤(5.1):初始化lstm-rnn网络各层权重,令i=0;

步骤(5.2):将训练集中的输入数据[xt-9,l,xt]馈入网络,经过lstm-rnn网络的前向传播过程得到对应输出yt:

步骤(5.3):计算网络输出yt与对应标签lt的误差;

步骤(5.4):判断是否训练集中数据均完成计算,若是,执行五,否则t=t+1,并返回步骤(5.2);

步骤(5.5):利用标准梯度下降误差反向传播算法更新lstm-rnn网络权重;

步骤(5.6):i=i+1,并判断imod500是否为零,若是,执行七,否则返回步骤(5.2);

步骤(5.7):在测试集中随机选取50个序列,使用当前网络进行测试,计算平均误差;

步骤(5.8):若测试集中均方误差连续10次没有减小,则停止训练,否则返回步骤(5.2)。

步骤(5.2)中的lstm-rnn网络的前向传播过程为:

输入门:

遗忘门:

记忆模块中的输入单元:

cell更新:

输出门:

记忆模块输出:

输出层:

计算损失:

上述式子中,x表示网络输入,y表示网络输出,g表示记忆模块的输入单元,s表示记忆模块的cell,h表示整个记忆模块;分别使用i、o、f表示输入门、输出门、遗忘门。w表示权值矩阵,wi-j表示i单元与j单元的权值;符号“·”表示向量或矩阵之间对应元素相乘;函数f为门控单元激活函数;函数g、h、y分别是输入单元、输出单元、输出层的激活函数;当一个完整的序列完成一次前向传播后,可以得到损失函数:

上式中,t为序列长度。

步骤(5.5)中的标准梯度下降误差反向传播算法为:

输出层局部梯度:

记忆模块局部梯度:

输出门局部梯度:

cell状态局部梯度:

遗忘门局部梯度:

输入门局部梯度:

记忆模块输入单元局部梯度:

步骤(6):将声纳探测信息及目标点信息输入至基于lstm-rnn网络的运动规划器,获

得uuv下一时刻的航向及航速。

本发明的有益效果为:

本发明利用了lstm-rnn在长时间序列上强大的非线性拟合能力实现了一个端到端的简单高效的动态规划器。设计的lstm-rnn网络,不仅有强大的学习能力,同时还具有非常强的泛化能力,这使得所实现的动态规划器适用于复杂的环境。同时,该动态规划器满足实时性的要求,并且所规划的路径符合uuv的运动特性。

附图说明

图1是一种基于lstm-rnn的uuv动态规划方法的lstm-rnn网络结构图。

图2是一种基于lstm-rnn的uuv动态规划方法的感知设备仿真示意图。

图3是一种基于lstm-rnn的uuv动态规划方法的角度示意图。

图4是一种基于lstm-rnn的uuv动态规划方法在静态环境中的仿真效果图。

图5是一种基于lstm-rnn的uuv动态规划方法在动态环境中不同时刻的仿真效果图。

具体实施方式

下面结合附图来进一步描述本发明:

一种基于lstm-rnn的uuv动态规划方法,包含如下步骤:

步骤(1):选择几何模型构建障碍环境模型:

对于二维的几何模型,遵循“使用最少的数据量,描述最完整的信息”的原则,将障碍物按形状分为椭圆形或圆形障碍,多边形障碍两种类型。

对于椭圆形或圆形障碍,存储椭圆形或圆形障碍的两个对角点坐标,利用这两点坐标,计算出椭圆圆心和长短半径,获得椭圆形或圆形障碍的全部信息。

对于多边形障碍,存储多边形顶点的坐标,由任意一个顶点开始,按顺时针或者逆时针顺序将多边形顶点依次存储于一个顺序链表中,这样就可以通过顺序链表还原多边形障碍的信息。

步骤(2):利用蚁群算法建立用于获取数据集的uuv动态规划器:

蚁群算法的信息素更新规则如下:

上式中,i,j是状态点序号,m是蚁群中蚂蚁总数,ρ是挥发系数,q是常数,lk是蚂蚁k寻食付出的代价,即路径长度。

为了加快收敛速度,对每一代蚂蚁中排名前四分之一的蚂蚁走过的路径做信息素强化:

τij(t+1)=λ×τij(t+1)

上式中,d是起点到终点的欧式距离。

为了使蚁群算法在搜索后期仍具有一定的探索能力,在信息素更新以及信息素强化完成后,再做信息素浓度的限制处理:

上式中,τmin是自行设置的信息素浓度上限,τmax是自行设置的信息素浓度下限。

蚁群算法的状态转移规则如下:

为蚂蚁k处于i点处时下一步转移到i的可视点j的概率,allowi为蚂蚁k允许做状态转移的i点的可视点集合,η是启发式函数,取为i点到目标点距离的倒数。α为信息素的重要程度。β为启发函数的重要程度

步骤(3):设计用于动态规划的lstm-rnn网络模型:

如图1,lstm-rnn网络模型包括输入层,波束合并层,隐藏层,中间层以及输出层五个部分。

输入层:接收样本输入,接收样本有181维,如图2,前180维为模拟感知器探测的局部环境信息,如图3,最后1维为uuv当前位置与目标点在局部坐标下形成的夹角;

波束合并层:波束合并层是对输入层邻近波束求和后取平均,利用相邻波束间的高度相关性,降低输入维度;

合并领域的大小为2,且不重叠,即该层每个单元对输入层每相邻两个单元的输出值求和取平均后输出;

波束合并层共91维,其中前90维为合并后的局部环境特征,最后一维特征不做处理,直接输出;

波束合并层的输出和一个偏置项一起作为记忆模块的输入,采用全连接形式。

隐藏层:记忆模块中cell的维度取为46,内部的输入单元、输出单元、输入门、输出门、遗忘门的维度都为46;采用的序列长度为10,按序列展开后有10个记忆模块,上一时刻的模块输出反馈到下一时刻的模块中;由于第一个模块没有实质的前驱模块,假定其虚拟的前驱模块输出恒为0向量;门控单元采用的激活函数都是sigmoid函数,输入、输出单元的激活函数是tanh函数;

中间层:第十个记忆模块输出添加上偏置后以全连接方式输入到中间层,维度为23,激活函数是tanh函数;

输出层:中间层加上一个偏置后以全连接方式输入到输出层,输出层维度为2,激活函数为线性函数,分别输出uuv的航向和航速。

步骤(4):获取数据集:

如图4,在全局坐标系中生成若干组随机地图,采用教师系统进行运动规划,水平覆盖角为360°、包含180个波束的二维仿真声呐在每个路径节点采集环境信息,所采集的信息为训练样本,将教师系统输出的航向及航速作为训练标签。

二维仿真声呐在每个路径节点采集环境信息为:

其中为当前时刻第i个波束探测到的距离信息,当第i个波束未探测到障碍时,

为了简化输入信息,将t时刻声纳探测到的距离信息做如下处理:

将t时刻uuv所在位置与目标点形成的角度表示为则t时刻lstm-rnn网络的输入向量

t时刻lstm-rnn网络的标签

lt=[θt,vt],

上式中,θt表示期望的uuv的航向,vt表示期望的uuv的航速。

步骤(5):利用训练集中数据训练lstm-rnn网络,得到基于lstm-rnn网络的动态规划器:

将训练数据中的二维仿真声呐在每个路径节点采集的环境信息作为输入数据,将训练集中相对应的训练标签作为输出数据,对lstm-rnn网络进行训练,从而获得基于lstm-rnn网络的动态规划器;

损失函数为平方损失函数;

在训练开始前对数据集中数据做如下预处理:数据集的归一化方法为减去列最小值后除以列最大值和列最小值的差。

在训练过程中输入数据和标签对应关系为:

若时刻t<10,则[x1,l,xt]对应标签lt,若t≥10,则[xt-9,l,xt]对应标签lt。

lstm-rnn网络的训练过程可表述为:

步骤(5.1):初始化lstm-rnn网络各层权重,令i=0;

步骤(5.2):将训练集中的输入数据[xt-9,l,xt]馈入网络,经过lstm-rnn网络的前向传播

过程得到对应输出yt;

步骤(5.3):计算网络输出yt与对应标签lt的误差;

步骤(5.4):判断是否训练集中数据均完成计算,若是,执行五,否则t=t+1,并返回步骤(5.2);

步骤(5.5):利用标准梯度下降误差反向传播算法更新lstm-rnn网络权重;

步骤(5.6):i=i+1,并判断imod500是否为零,若是,执行七,否则返回步骤(5.2);

步骤(5.7):在测试集中随机选取50个序列,使用当前网络进行测试,计算平均误差;

步骤(5.8):若测试集中均方误差连续10次没有减小,则停止训练,否则返回步骤(5.2)。

lstm-rnn网络的前向传播过程为:

输入门:

遗忘门:

记忆模块中的输入单元:

cell更新:

输出门:

记忆模块输出:

输出层:

计算损失:

上述式子中,x表示网络输入,y表示网络输出,g表示记忆模块的输入单元,s表示记忆模块的cell,h表示整个记忆模块;分别使用i、o、f表示输入门、输出门、遗忘门。w表示权值矩阵,wi-j表示i单元与j单元的权值。符号“·”表示向量(或矩阵)之间对应元素相乘。函数f为门控单元激活函数,一般取sigmoid函数;函数g、h、y分别是输入单元、输出单元、输出层的激活函数,根据具体任务选择适合类型的激活函数。当一个完整的序列完成一次前向传播后,可以得到损失函数:

上式中,t为序列长度。

标准梯度下降误差反向传播算法为:

输出层局部梯度:

记忆模块局部梯度:

输出门局部梯度:

cell状态局部梯度:

遗忘门局部梯度:

输入门局部梯度:

记忆模块输入单元局部梯度:

步骤(6):将声纳探测信息及目标点信息输入至基于lstm-rnn网络的运动规划器,获得uuv下一时刻的航向及航速。

在具体的工作过程中,本发明的使用过程是这样的:

第一步:将uuv布放在起始位置;

第二步:仿真声纳开始获取uuv当前位置的环境信息xt;

第三步:将仿真声纳获取的环境信息[xt-9,l,xt]输出到lstm-rnn,获得下一时刻uuv的航向及航速;

第四步:uuv执行运动指令,到达下一路径点;

第五步:判断uuv是否到达目标点,若是,动态规划器停止工作,否则返回第二步。

如图5,本发明在动态环境中不同时刻的仿真效果图。

本发明提供了一种基于lstm-rnn的uuv动态规划方法,利用了lstm-rnn在长时间序列上强大的非线性拟合能力实现了一个端到端的简单高效的动态规划器。设计的lstm-rnn网络,不仅有强大的学习能力,同时还具有非常强的泛化能力,这使得所实现的动态规划器适用于复杂的环境。同时,该动态规划器满足实时性的要求,并且所规划的路径符合uuv的运动特性。

这里必须指出的是,本发明所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。

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