首页 / 基于深度学习和强化学习的自主避障无人机

基于深度学习和强化学习的自主避障无人机公开 发明

技术领域

本发明涉及无人机在低空环境中的路径规划和自主避障领域,具体为基于深度学习和强化学习的自主避障无人机。

相关背景技术

当今,无人机技术的迅速发展与广泛应用,为许多领域带来了前所未有的机会和挑战。然而,在无人机的自主避障和路径规划方面,面对低空中复杂多变的环境,自主避障能力是无人机最关键的技术要点,传统的算法难以满足实际需求。因此,如何开发出一种既能够适应复杂环境又能够保证高效、准确的无人机低空自主避障和路径规划算法,一直是该领域研究人员的重点关注点。
无人机自主避障和路径规划领域广泛应用三种算法:传统算法、基于智能仿生学算法和基于深度强化学习算法。传统算法中例如A*算法、Dijkstra算法等在面对复杂环境和动态障碍物时,其性能和鲁棒性不足,而IIFDS算法虽然具有更高的效率和精确性,但处理复杂场景能力有限,无法应对超大规模的搜索空间。此外,基于智能仿生学算法更具有生物学启发性,如基于蚁群优化、遗传算法和粒子群优化等,能提高无人机的避障性能,但训练时间长、计算复杂度高,难以处理动态环境中的避障问题,限制了其实际应用的效果和适用性。
目前SAC算法在复杂动态环境中存在着一些问题:一是遇到复杂动态障碍物时,SAC算法存在着算法收敛速度慢、容易陷入局部最优等问题,从而影响了无人机的避障性能和稳定性。这些问题主要源于SAC算法采用的强化学习框架,无法快速适应环境变化并找到最优解。且对于动态环境中的障碍物运动方向的感知不够准确,导致无人机避障时存在着不必要的误判。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1‑图2,本发明提供技术方案:
基于深度学习和强化学习的自主避障无人机,所述路径规划及避障方法包括以下步骤:
S1、构建无人机的飞行控制模型,并初始化环境模型及神经网络参数;
S2、设定经验回放池,并对SAC算法的奖励机制进行设定;
S3、构建深度强化学习网络进行训练,使用LSTM网络对无人机当前的状态空间进行特征提取,并使用VAE对提取的特征进行优化;
S4、判断当无人机距离最近障碍物的距离大于最大预警距离时,将优化后的状态特征输入SAC网络中,决策下一步动作,并更新目标参数;
当无人机距离最近障碍物的距离小于最大预警距离时,计算新的目标点,并采用改进的IIFDS算法与SAC算法进行智能决策;
S5、增加时间步数,进行下一轮训练直至结束,得出训练好的模型。
在步骤S1中,构建飞行控制模型,初始化环境模型及神经网络参数的步骤如下:
S2‑1、设置无人机传感器的探测范围为d,无人机的最大警戒碰撞距离为dmin,无人机的偏航角速度和爬升角速度的最大值分别为vp和vs,最大爬升角为θmax,最大俯冲角为‑θmax;
S2‑2、构建三维地图与起点终点,并设置环境的时间步数和无人机初始状态空间,初始化静态障碍物和通过时间步长Δt来改变状态的动态障碍物,并分别加入到静态障碍物列表StaticB和动态障碍物列表DynamicB中;
S2‑3、对LSTM网络、VAE编码器网络、解码器网络的参数分别进行初始化,用随机的网络参数ω1、ω2和θ分别初始化SAC算法的Critic网络QQ,(s,a)、QUZ(s,a)和Actor网络πθ(s)。
在步骤S2中,设定奖励机制的步骤如下:
S3‑1、设定经验回放池R,对SAC算法的奖励机制进行设定:
rt=r1+r2+r3+r4+r5
其中r1表示为正常距离奖励,r2表示碰撞奖励,r3表示自由空间奖励,r4表示步数奖励,r5表示预警距离奖励,rt表示在该时间步数下无人机在环境内获得的总奖励值。
在步骤S3中,提取和优化特征的步骤如下:
S4‑1、对无人机的状态空间的特征进行提取;
S4‑2、将提取到的特征输入到VAE网络中,得到潜在变量集z,作为优化后的特征表示;
S4‑3、计算重构损失Lrec和KL散度,得出VAE的总损失Ltotal;
S4‑4、使用梯度下降法最小化总损失;
在步骤S4‑1和S4‑2中,所述得到优化特征表示的步骤如下:
S5‑1、将当前时间步数下的无人机状态空间特征输入到LSTM网络中,利用当前时刻的输入和上一个时刻的中间状态值来生成当前时刻的状态值;
S5‑2、将当前时刻的状态值与当前时刻的输入值合并,并将合并后的值输入到多层感知机中,多层感知机利用非线性函数对特征进行提取,将多层感知机的输出结果输入到VAE中;
S5‑3、采用编码器将特征信息x的分布经过卷积层、激活层和全连接层转码成类高斯分布di,编码器输出类高斯分布的均值μ和标准差σ,基础构建完美的高斯分布D,利用完美高斯分布D的均值μ和标准差σ来得到潜在变量集z,作为优化后的特征表示:
z=μ+σ⊙∈
其中∈表示一个服从高斯分布的噪声向量。
在步骤S4‑3和S4‑4中,计算总损失Ltotal和最小化总损失的步骤如下:
S6‑1、从潜在变量集z中随机抽取一个潜在变量zj用f∈(x)来表示编码器工作过程,根据不同维度的均值μ和标准差σ计算出KL散度DKL,公式如下:
式中i与zi中i的表示意义一样,都代表潜变量集z的维度;
S6‑2、解码器生成一个与zi相关的样本xi,用p(xi|zi)来表示解码器输入潜在变量zi后生成样本xi的过程,同时将优化后的特征表示z输入到SAC网络中;
在变分自编码器中,使用梯度下降法来最小化总损失,优化模型参数,计算VAE中的重构损失Lrec:
2
Lrec=EX~D[|x‑p∈(xi|f∈(x))|]
其中,|·|表示向量的二范数,D表示该过程运算后的数据集,Lrec表示这个生成样本与原始输入样本之间的平方误差的期望;
S6‑3、使用最小化重构损失和KL散度的加权和作为VAE的总损失Ltotal,公式如下:
Ltotal=Lrec+βDKL
其中,β是一个权重参数,用于平衡重构损失和KL散度之间的重要程度;
S6‑4、计算总损失函数关于模型参数的梯度
其中,θ为参数,α为学习率;
调节每次参数更新的步长大小,通过迭代更新参数,总损失逐渐减小,直到达到最大迭代次数或总损失的变化量小于设置的阈值。
在步骤S4中,使用SAC算法和IIFDS算法进行综合决策的步骤如下:
S7‑1、在当前时间步数下,根据当前策略将优化后的特征表示作为st输入到SAC算法的Actor网络的全连接层中,其中st为输入状态向量,将st进行线性变换,得到一个隐藏层的输出;
S7‑2、通过RELU激活函数进行非线性变换,并将非线性变换后的输出经过一个激活函数tanh得到最终动作at:
ht=ReLU(W1st+b1)
at=tanh(W2ht+b2)
其中,W1,W2,b1,b2分别表示Actor网络中的权重和偏置参数,ht表示隐藏层的输出,at表示最终的动作,θ为其网络的网络参数;
S7‑3、执行动作at判断是否到达终点,终止则设定e为1,否则为0,其中,e为是否终止训练的标志。
在步骤S4中,所述更新目标参数的步骤如下:
S8‑1、根据奖励公式得到rt,将(st,at,rt,st+1,e)存入回放池R和LSTM的数据集中,其中,st+1表示执行at后得到的下一步环境状态向量;
在训练轮数K截止之前,从R中采样N个元组 对
每个元组用目标网络计算TD目标yt:
其中, 为目标Q值函数,πθ为策略函数,at+1是根据Actor网络输入st+1后得到的下一步动作,但是本身不执行动作at+1,at+1仅用来计算TD目标,得到最小化损失函数,来更新SAC算法的Critic网络,γ代表折扣因子,αt是当前时刻的温度系数;
S8‑2、对SAC算法的两个Critic网络进行损失函数L的最小化,更新对应的神经网络的参数;
其中,j=1或2;Q.,(sva)和Q.,(GS,a)代表SAC算法的两个Critic网络在状态st下执行动作at的状态‑动作价值,yt表示TD目标,N表示从R中采样的元组个数;
S8‑3、用重参数化技巧采样动作 来更新当前Actor网络,得到其代价函数Lπ(θ),其中,α表示熵正则项的系数, 表示SAC算法的Actor网络函数,
表示两个Critic网络在状态st下执行动作 的状态‑价值的最小值;
S8‑4、更新熵正则项的系数α后,更新其目标网络参数 和07,直到e为1后终止训练。在步骤S4中,所述采用改进的IIFDS算法与SAC算法进行智能决策的步骤如下:
S9‑1、计算避障方向向量davoid:
其中,p表示预警范围内障碍物的三维坐标,n表示预警范围内障碍物的个数,pdrone表示无人机在空间中的三维坐标;
S9‑2、计算新的速度向量vnew:
vnew=vdrone+αdavoid
其中,α是调整避障权重的系数,vdrone代表无人机当前速度向量;
S9‑3、计算新的目标点pgoal:
pgoal=pdrone+vnewΔt;
S9‑4、根据原点与目标点位置得到方向,根据SAC算法的Actor网络和改进的IIFDS算法所得到的方向和速度进行综合决策,并根据dmin进行权重调整,以获得下一步动作:
Ofinal=(1‑w)·Onew+w·O’new
vfinal=(1‑w)·vnew+w·v’new
其中,Onew和vnew分别代表IIFDS算法所得到的方向和速度,O’new和v’new分别代表SAC算法所得到的方向和速度,Ofinal为最终的运动方向,vfinal为最终的运动速度,w是一个在[0,1]区间的权重系数,表示SAC算法和IIFDS算法对综合决策的重要程度;
S9‑5、根据距离最近障碍物的dmin进行动态调节w,w的计算方法为:
其中,k和b是人为设置的超参数,这个函数可以使得当dmin越大时,w越接近于1,SAC算法对综合决策的重要程度越高;当dmin越小时,w越接近于0,IIFDS算法对综合决策的重要程度越高;最终得到的Ofinal和vfinal能够作为无人机下一步的飞行方向和速度。
在步骤S5中,所述得出训练好的模型步骤如下:
S10‑1、增加时间步数,无人机进入新的状态空间,重新使用LSTM网络对无人机的状态空间进行特征提取,并通过VAE对LSTM网络输出进行优化,最终将优化结果作为特征直接输入到SAC网络中重新决策下一步动作;
S10‑2、若判断距离最近障碍物小于dmin,则综合SAC算法与IIFDS算法进行决策,直至达到预设的最大训练轮数或者达到预设的最大步数;
S10‑3、若在达到预设的最大训练轮数或者最大步数之前到达终点,将认为该轮训练成功,保存相应的模型参数,并结束整个训练过程;
若到达最大训练轮数或最大步数但仍未到达终点,则认为该轮训练失败,保存最后一次训练的模型参数,并结束整个训练过程;
S10‑4、当达到结束指标时,最后的结果为一个训练好的模型,能够直接用于实际场景中的无人机自主避障和路径规划任务。
在本实施例中:
步骤一:构建无人机飞行控制模型
限制无人机在偏航角度和速度、爬升角度和速度方面的最大值,同时设置无人机的最大测量距离以及最大警戒碰撞距离。
步骤二:初始化环境模型及神经网络参数
首先,需建立三维地图,确定起点和终点,并确定环境的时间步数和无人机状态空间的初始设置。接下来,初始化多个静态障碍物和动态障碍物,并利用时间步长Δt更新其状态,并将它们分别加入到静态障碍物列表StaticB和动态障碍物列表DynamicB中。此外,需要对LSTM网络、VAE编码器网络和解码器网络的参数进行初始化,采用随机网络参数ω1、ω2和θ,对SAC算法的Critic网络Q.,(s,a)、QUZ(s,a)和Actor网络πθ(s)进行初始化,复制相同的参数用于初始化目标网络。在此基础上,建立经验回放池R,并为SAC算法设定奖励机制。具体而言,设定奖励机制,包含正常距离奖励、碰撞距离奖励、自由空间奖励、步数奖励和预警距离奖励。
步骤三:开始训练
首先在在该时间步数下,使用LSTM网络对无人机此刻的状态空间进行特征提取,并使用VAE对提取的特征进行优化,将优化结果输入到策略网络生成一个动作向量,同时计算出此时无人机的速度向量及方向向量,判断此时离最近障碍物的距离是否小于最大预警距离,如果小于,使用改进的IIFDS算法计算避障方向与速度,再与SAC算法得到的速度与方向进行综合决策得到下一步动作并执行,否则,直接执行SAC算法决策出来的动作,判断是否终止,然后将该动作向量输入环境中得到下一步状态和奖励,将当前状态、当前动作、当前奖励、下一步状态和终止标志存入经验回放缓存中,从经验回放缓存中随机采样一批数据,用于训练Q值网络和策略网络。在训练Q值网络中,使用双Q网络结构来估计Q值,同时使用目标网络来计算Q值的目标。由于使用了最小化操作来计算Q值的目标,所以需要使用两个Q值网络来计算Q值,同时使用两个目标网络来计算Q值的目标,从而实现Critic网络的更新,即如下公式:
另外需要更新温度系数α:在SAC算法中,温度系数α用于平衡策略熵和奖励的影响。具体来说,α越大,策略熵的影响越大,α越小,奖励的影响越大。在SAC算法中,使用‑个自适应的方式来更新α的值,即使用以下公式来更新α的值:
α←α+γα(logπ(ai si)‑target)
其中,target表示目标熵的值,这里本发明设置为负动作空间的维度并使用一个指数移动平均值来平滑logπ(ai si)的值,从而使α的更新更加稳定。随后进入下一步时间,重复本步骤操作直至终止。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。
凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页 第1页 第2页 第3页
相关技术
学习自主相关技术
强化学习相关技术
王辉发明人的其他相关专利技术