一种无人机自主导航方法和系统转让专利

申请号 : CN201710760402.5

文献号 : CN107450593B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王剑王超张旭东

申请人 : 清华大学

摘要 :

本发明涉及一种能够应用于大尺度陌生复杂环境下的无人机自主导航方法和系统。该方法利用无人机的传感设备和定位设备获取无人机的状态,然后确定无人机的控制向量,根据无人机的状态和无人机所处的环境确定收益函数,基于收益函数进行深度增强学习,训练无人机从状态映射到控制的控制函数,利用训练得到的控制函数,根据无人机的状态生成相应的控制指令,控制无人机在大尺度未知复杂场景中进行自主导航。本发明仅仅利用无人机对周围环境的感知信息和位置信息,就能够自主完成导航任务,实现无人机在大尺度未知复杂环境中的自适应控制。

权利要求 :

1.一种无人机自主导航方法,包括以下步骤:S10,利用无人机的传感设备和定位设备获取无人机的状态;

S20,确定无人机的控制向量;

S30,根据无人机的状态和无人机所处的环境确定收益函数;

S40,基于收益函数进行深度增强学习,训练无人机从状态映射到控制的控制函数,包括以下步骤:S40.1,选择适用于控制无人机的深度增强学习算法,所述深度增强学习算法为循环确定策略梯度算法,包括以下步骤:S100,初始化操作-值函数循环神经网络Qw(at,ht)和控制函数循环神经网络μθ(ht),其中随机赋值网络参数w和θ;

S200,初始化目标操作-值函数循环神经网络Qw’(at,ht)和目标控制函数循环神经网络θ’μ (ht),其中令网络参数w’和θ’分别等于上述网络参数w和θ;

S300,初始化回放缓存R;

S400,按照预先设定的循环次数执行以下步骤:S401,初始化一个操作搜索随机过程;

S402,随机初始化无人机的出发位置和目标位置;

S403,获取无人机的初始状态s0,并初始化无人机的历史状态-操作轨迹h0=s0;

S404,将当前无人机历史状态-操作轨迹输入当前控制函数循环神经网络,并增加探索噪声Nt,获得对应的控制策略at=μθ(ht)+Nt;

S405,执行控制策略at,使无人机跳转到下一个状态st,并根据收益函数得到相应的收益rt,S406,判断无人机的状态st是否为结束状态:若是,执行步骤S413;若否,执行步骤S407;

S407,将跳转过程的相关参数(ht-1,at,st,rt)存储进回放缓存R中;

S408,更新历史状态-操作轨迹ht=[ht-1,at,st];

S409,从回放缓存R中均匀随机采样L组跳转过程的相关参数(hi,ai,si,ri),i=1,2,…,L;

S410,根据步骤S409采样得到的L组跳转过程的相关参数,分别计算它们对应的目标值yi=ri+γQw’([hi,ai,si],μθ’([hi,ai,si])),其中,i=1~L,γ是比例因子,其取值范围为0到1;

S411,根据计算得到的目标值yi,i=1~L,分别计算操作-值函数的梯度和控制函数的梯度,然后利用随机梯度下降法更新操作-值函数和控制函数的网络参数;其中,按照下式计算操作-值函数循环神经网络的梯度按照下式计算控制函数循环神经网络的梯度

利用随机梯度下降法,更新操作-值函数循环神经网络和控制函数循环神经网络的网络参数w和θ;

S412,按照以下算式,更新目标操作-值函数循环神经网络和目标控制函数循环神经网络的网络参数w’和θ’:w’=εw+(1-ε)w’

θ’=εθ+(1-ε)θ’

其中,等式左边的w’和θ’为更新后的目标操作-值函数循环神经网络和目标控制函数循环神经网络的网络参数,等式右边的w’和θ为更新前的目标操作-值函数循环神经网络和目标控制函数循环神经网络的网络参数’;ε表示网络参数的更新程度,其取值范围为0到1;

S413,判断状态跳转次数是否超过了给定的阈值:若是,执行步骤S414;若否,返回步骤S404;

S414,结束本次循环;

S500,结束;

S40.2,根据选择的深度增强学习算法设计相应的深度神经网络,作为所述控制函数;

S40.3,根据选择的深度学习算法和设计的深度神经网络学习所述控制函数的参数;

S50,利用训练得到的控制函数,根据无人机的状态生成相应的控制指令,控制无人机在大尺度未知复杂场景中进行自主导航。

2.根据权利要求1所述的无人机自主导航方法,其特征在于,所述步骤S10包括以下步骤:S10.1,利用无人机的传感设备,获得无人机与其所处周围环境障碍物之间的距离,作为无人机的环境状态;

S10.2,利用无人机的传感设备,获得无人机第一视角与正北方向的夹角,作为无人机的自身状态;

S10.3,利用无人机的定位设备,获得无人机当前位置与目标位置之间的距离和夹角,作为无人机的位置状态;

S10.4,将无人机的环境状态、自身状态和位置状态融合,作为无人机的状态。

3.根据权利要求2所述的无人机自主导航方法,其特征在于:所述步骤S10.4中,将无人机的环境状态、自身状态和位置状态融合是指将表征无人机的环境状态、自身状态和位置状态的三个向量拼接成一个状态向量。

4.根据权利要求1所述的无人机自主导航方法,其特征在于:所述步骤S20中,所述无人机的控制向量包括无人机的飞行方向、升降高度、飞行速度中的一部分或者全部。

5.根据权利要求1所述的无人机自主导航方法,其特征在于,所述步骤S30中,所述收益函数至少由以下三个函数组成:环境惩罚函数,用于表示当无人机在飞行过程中靠近任何物体时给予惩罚;

转移奖励函数,用于表示当无人机飞行指定时间后与目标之间的距离减小时给予奖励;

方向奖励函数,用于表示当无人机的第一视角面向其周围环境中最空旷的方向时给予奖励。

6.根据权利要求5所述的无人机自主导航方法,其特征在于:所述环境惩罚函数为指数函数;

所述转移奖励函数为线性函数;

所述方向奖励函数为常数函数。

7.一种无人机自主导航系统,其特征在于,包括:状态获取模块,用于获取无人机的状态;

控制向量模块,用于确定无人机的控制向量;

收益函数模块,其连接所述状态获取模块,用于根据无人机的状态和无人机所处的环境确定收益函数;

函数训练模块,其连接所述状态获取模块、控制向量模块和收益指定模块,用于基于收益函数进行深度增强学习,训练无人机从状态映射到控制的控制函数,所述函数训练模块包括:算法选择单元,用于选择适用于控制无人机的深度增强学习算法,网络设计单元,其连接所述算法选择单元,用于根据选择的深度增强学习算法设计相应的深度神经网络,作为所述控制函数,参数学习单元:其连接算法选择单元和网络设计单元,用于根据选择的深度增强学习算法和设计的深度神经网络,学习所述控制函数的参数;

自主导航模块,其连接所述函数训练模块和状态获取模块,用于利用训练得到的控制函数,根据无人机的状态生成相应的控制指令,控制无人机在大尺度未知复杂场景中进行自主导航。

8.根据权利要求7所述的无人机自主导航系统,其特征在于,所述状态获取模块包括:环境状态单元,用于利用无人机的传感设备,获取无人机与其所处周围环境障碍物之间的距离,作为无人机的环境状态;

自身状态单元,用于利用无人机的传感设备,获取无人机第一视角与正北方向的夹角,作为无人机的自身状态;

位置状态单元,用于利用无人机的定位设备,获取无人机当前所处位置,进而获取无人机当前位置与目标位置之间的距离和夹角,作为无人机的位置状态;

状态融合单元,其连接所述环境状态单元、自身状态单元和位置状态单元,用于将所述环境状态、自身状态和位置状态融合,作为无人机的状态。

9.根据权利要求8所述的无人机自主导航系统,其特征在于,所述收益函数模块至少由以下三个单元组成:环境惩罚单元,其连接所述环境状态单元,用于当无人机在飞行过程中靠近任何物体时给予惩罚;

转移奖励单元,其连接所述位置状态单元,用于当无人机飞行指定时间后与目标之间的距离减小时给予奖励;

方向奖励单元,其连接所述环境状态单元,用于当无人机的第一视角面向其周围环境中最空旷的方向时给予奖励。

说明书 :

一种无人机自主导航方法和系统

技术领域

[0001] 本发明涉及无人机智能自主导航领域,尤其涉及一种能够应用于大尺度陌生复杂环境下的无人机自主导航方法和系统。

背景技术

[0002] 小型无人机在军民领域的广泛应用,使得基于小型无人机的智能化应用得到了迅猛发展,例如利用无人机进行侦查、监控、航拍、送货等。利用无人机送货是各大网络零售平台最为推崇的技术愿景,但是由于技术的瓶颈,其应用一直局限于小范围的简单应用。因此,解决无人机在大尺度未知的复杂环境中的自主导航问题成为了实现无人机送货以及其它相似应用的前提条件。
[0003] 目前,在未知环境中的自主导航技术,主要分为三类。第一类技术就是即时定位于地图重建(SLAM)技术,它的主要思想是在利用周围场景给出定位的同时,重建出周围场景的地图。SLAM算法虽然已经成功应用到多种领域,但是并不适用于大尺度陌生复杂环境的导航问题。这是因为构建大规模场景会消耗大量的资源,然而对于无人机送货这种应用,并不需要构建出整个场景的地图。第二类技术是感知-避障技术,它的基本思想是利用传感器主动感知周围环境中的障碍物,如果障碍物恰好处在预定规划的路径之上,那么就采取避让功能躲避障碍物,之后再回到预定的规划路径上。这种技术已经成功地应用于亚马逊的第一代送货无人机PrimeAir上了。但是必须注意的是,这种技术往往只能应用在障碍物比较稀疏的场景下(例如乡村),并且往往需要提前规划路径。当该技术应用在复杂环境中的时候(例如城市),稠密的障碍物会极大地削弱该技术的性能。第三类技术是提前教学技术,它的基本思想是首先人工操作无人机从一个地方飞到另一个地方,然后令无人机直接按照这个路径飞行。这种技术的局限性非常大。首先无人机送货的出发点和终止点可能是随机的,因此提前教学的任务太大,往往无法完成提前教学任务,即使能够完成大规模的提前教学任务,该技术也并不智能。其次如果环境场景发生变化,无人机无法感知的话,该技术就会失效。

发明内容

[0004] 针对上述技术问题,本发明提出了一种基于深度增强学习的大尺度未知复杂场景的无人机自主导航方法和系统。
[0005] 本发明提供的大尺度未知复杂环境中的无人机自主导航方法包括以下步骤:
[0006] S10,利用无人机的各种传感设备和定位设备获取无人机的状态;
[0007] S20,确定无人机的控制向量;
[0008] S30,根据无人机的状态和无人机所处的环境确定收益函数;
[0009] S40,基于收益函数进行深度增强学习,训练无人机从状态映射到控制的控制函数;
[0010] S50,利用训练得到的控制函数,根据无人机的状态生成相应的控制指令,控制无人机在大尺度未知复杂场景中进行自主导航。
[0011] 根据本发明的实施例,上述S10步骤包括以下步骤:
[0012] S10.1,利用无人机的传感设备,获得无人机与其所处周围环境障碍物之间的距离,作为无人机的环境状态;
[0013] S10.2,利用无人机的传感设备,获得无人机第一视角与正北方向的夹角,作为无人机的自身状态;
[0014] S10.3,利用无人机的定位设备,获得无人机当前位置与目标位置之间的距离和夹角,作为无人机的位置状态;
[0015] S10.4,将无人机的环境状态、自身状态和位置状态融合,作为无人机的状态。
[0016] 根据本发明的实施例,上述步骤S10.1中,可以利用雷达、超声波、摄像头、激光测距等传感设备获取无人机与其当前所处环境的距离;例如可以利用双目摄像头获取的图像重建深度信息,进而反演出距离信息。
[0017] 根据本发明的实施例,上述步骤S10.3中,可以利用GPS定位设备获取无人机的当前位置,进而计算出其与目标位置之间的距离和夹角。
[0018] 根据本发明的实施例,上述步骤S10.4中,将无人机的环境状态、自身状态和位置状态融合是指将表征无人机的环境状态、自身状态和位置状态的三个向量拼接成一个状态向量。
[0019] 根据本发明的实施例,上述S20步骤中,无人机的控制向量主要由无人机的飞行方向、无人机的升降高度、飞行速度等维度中的部分或者全部维度组成;例如可以令无人机的飞行高度为常数,从而去掉无人机的升降控制维度。
[0020] 根据本发明的实施例,步骤S30中的收益函数可以至少由以下三个函数组成:
[0021] 1)环境惩罚函数:如果无人机在飞行过程中靠近任何物体,则给予惩罚;
[0022] 2)转移奖励函数:如果无人机经过一定时间的飞行之后,距离目标位置更近了,则给予奖励;
[0023] 3)方向奖励函数:如果无人机的第一视角面向其周围环境中最空旷的方向,则给予奖励。
[0024] 根据本发明的实施例,上述环境惩罚函数可以是指数函数,转移奖励函数可以是线性函数,方向奖励函数可以是常数函数。
[0025] 根据本发明的实施例,上述S40步骤包括以下步骤:
[0026] S40.1,选择适用于控制无人机的深度增强学习算法;
[0027] S40.2,根据选择的深度增强学习算法,设计合适的深度神经网络,作为控制函数;
[0028] S40.3,根据选择的深度学习算法和设计的深度神经网络,学习控制函数的参数。
[0029] 根据本发明的实施例,上述步骤S40.1中,可以选择现有的深度增强学习算法,例如循环确定策略梯度算法。
[0030] 根据本发明的实施例,上述步骤S40.1中,可以采用本发明自主设计的一种深度增强学习算法。该算法包括以下步骤:
[0031] S100,初始化操作-值函数循环神经网络Qw(at,ht)和控制函数循环神经网络μθ(ht),其中随机赋值网络参数w和θ;
[0032] S200,初始化目标操作-值函数循环神经网络Qw’(at,ht)和目标控制函数循环神经网络μθ’(ht),其中令网络参数w’和θ’分别等于上述网络参数w和θ;
[0033] S300,初始化回放缓存R;
[0034] S400,按照预先设定的循环次数执行以下步骤:
[0035] S401,初始化一个操作搜索随机过程;
[0036] S402,随机初始化无人机的出发位置和目标位置;
[0037] S403,获取无人机的初始状态s0,并初始化无人机的历史状态-操作轨迹h0=s0;
[0038] S404,将当前无人机历史状态-操作轨迹输入当前控制函数,并增加探索噪声Nt,θ获得对应的控制策略at=μ(ht)+Nt;
[0039] S405,执行控制策略at,使无人机跳转到下一个状态st,并根据收益函数得到相应的收益rt,
[0040] S406,判断无人机的状态st是否为结束状态:
[0041] 若是,执行步骤S413;若否,执行步骤S407;
[0042] S407,将跳转过程的相关参数(ht-1,at,st,rt)存储进回放缓存R中;
[0043] S408,更新历史状态-操作轨迹ht=[ht-1,at,st];
[0044] S409,从回放缓存R中均匀随机采样L组跳转过程的相关参数(hi,ai,si,ri),i=1,2,…,L;
[0045] S410,根据步骤S409采样得到的L组跳转过程的相关参数,分别计算它们对应的目标值yi=ri+γQw’([hi,ai,si],μθ’([hi,ai,si])),其中,i=1~L,γ是比例因子,其取值范围为0到1;
[0046] S411,根据计算得到的目标值yi,i=1~L,分别计算操作-值函数的梯度和控制函数的梯度,然后利用随机梯度下降法更新操作-值函数和控制函数的网络参数;其中,[0047] 按照下式计算操作-值函数的梯度
[0048]
[0049] 按照下式计算控制函数的梯度
[0050]
[0051] 利用随机梯度下降法,更新操作-值函数和控制函数的网络参数w和θ;
[0052] S412,按照以下公式,更新目标操作-值函数和目标控制函数的网络参数w’和θ’:
[0053] w’=εw+(1-ε)w’
[0054] θ’=εθ+(1-ε)θ’
[0055] 其中,等式左边的w’和θ’为更新后的目标操作-值函数和目标控制函数的网络参数,等式右边的w’和θ为更新前的目标操作-值函数和目标控制函数的网络参数’;ε表示网络参数的更新程度,其取值范围为0到1。
[0056] S413,判断状态跳转次数是否超过了给定的阈值:
[0057] 若是,执行步骤S414;若否,返回步骤S404;
[0058] S414,结束本次循环;
[0059] S500,结束。
[0060] 根据本发明的实施例,上述S50步骤中,首先在复杂环境中确定出发位置和目标位置;然后在每一个时间单位都执行以下步骤:获取无人机的状态,将状态输入到控制函数,得到控制指令,然后执行控制指令;如此实现无人机的自主导航。
[0061] 此外,本发明还提供了一种无人机自主导航系统,包括:
[0062] 状态获取模块,用于获取无人机的状态;
[0063] 控制向量模块,用于指定无人机需要被控制的维度;
[0064] 收益函数模块,其连接所述状态获取模块,用于根据无人机所处的状态和环境确定收益函数;
[0065] 函数训练模块,其连接所述状态获取模块、控制向量模块和收益函数模块,用于基于收益函数进行深度增强学习,训练无人机从状态映射到控制的控制函数;
[0066] 自主导航模块,其连接所述状态获取模块和函数训练模块,用于利用训练得到的控制函数,根据无人机的状态生成相应的控制指令,控制无人机在大尺度未知复杂场景中进行自主导航。
[0067] 根据本发明的实施例,所述状态获取模块包括:
[0068] 环境状态单元,用于利用无人机的传感设备,获取无人机与其所处周围环境障碍物之间的距离,作为无人机的环境状态;
[0069] 自身状态单元,用于利用无人机的传感设备,获取无人机第一视角与正北方向的夹角,作为无人机的自身状态;
[0070] 位置状态单元,用于利用无人机的定位设备,获取无人机当前所处位置,进而获取无人机当前位置与目标位置之间的距离和夹角,作为无人机的位置状态;
[0071] 状态融合单元,其连接所述环境状态单元、自身状态单元和位置状态单元,用于将所述环境状态、自身状态和位置状态融合,作为无人机的状态。
[0072] 根据本发明的实施例,所述收益指定模块主要包括:
[0073] 环境惩罚单元,其连接所述环境状态单元,用于当无人机在飞行过程中靠近任何物体时给予惩罚;
[0074] 转移奖励单元,其连接所述位置状态单元,用于当无人机飞行指定时间后与目标之间的距离减小时给予奖励;
[0075] 方向奖励单元,其连接所述环境状态单元,用于当无人机的第一视角面向其周围环境中最空旷的方向时给予奖励。
[0076] 根据本发明的实施例,所述函数训练模块包括:
[0077] 算法选择单元,用于选择合适于控制无人机的深度增强学习算法;
[0078] 网络设计单元,其连接算法选择单元,用于根据选择的算法,设计合适的深度神经网络,作为对控制函数的近似;
[0079] 参数学习单元:其连接算法选择单元和网络设计单元,用于根据选择的深度增强学习算法和设计的深度神经网络,学习所述控制函数的参数。
[0080] 根据本发明的实施例,所述算法选择单元可以直接选择已有的深度增强学习算法,例如循环确定策略梯度算法,也可以选择本发明自主设计的新的深度增强学习算法。
[0081] 根据本发明的实施例,所述测试模块连接状态获取模块和函数训练模块中的参数学习单元。首先在复杂环境中确定出发位置和目标位置;然后在每一个时间单位都执行以下步骤:利用状态获取模块获取无人机的状态,将状态输入到控制函数,得到控制指令,然后执行控制指令;如此实现了无人机的自主导航。
[0082] 与现有技术相比,本发明的一个或多个实施例可以具有如下优点:
[0083] 1)本发明利用深度增强学习解决小型无人机在大尺度未知复杂环境中的导航问题,实现了完全智能的无人机自主导航。
[0084] 2)本发明不需要无人机构建环境场景的地图,不需要提前规划路径,更不需要人为参与无人机的控制,仅仅利用无人机对周围环境的感知信息和位置信息,自主完成导航任务,实现了无人机在大尺度未知复杂环境中的自适应控制。
[0085] 3)本发明设计的深度增强学习算法,相比现有的其它深度学习算法,具有更好的性能。
[0086] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

[0087] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
[0088] 图1(a)至图1(e)是本发明的实施例中仿真系统所产生的五种大尺度复杂环境;
[0089] 图2是本发明的实施例中无人机进行自主导航的方法流程图;
[0090] 图3是本发明实施例中虚拟无人机的环境状态获取示意图,其中虚线表示虚拟无人机的第一视角方向;
[0091] 图4是本发明实施例中采用的FAST-RDPG算法的流程图;
[0092] 图5是本发明实施例中设计的操作-值函数神经网络结构;
[0093] 图6是本发明实施例中设计的控制函数神经网络结构;
[0094] 图7是本发明实施例中设计的FAST-RDPG算法与现有的RDPG算法的性能比较曲线;
[0095] 图8(a)和图8(b)分别是本发明实施例中选取现有的RDPG算法和利用设计的FAST-RDPG算法学习到的控制函数分别在一虚拟环境中进行自主导航的测试结果;
[0096] 图9是本发明实施例中无人机自主导航系统的组成结构示意图。

具体实施方式

[0097] 为使本发明的目的、技术方案和优点更加清楚,以下结合附图和实施例对本发明作进一步地详细说明。
[0098] 实施例一
[0099] 本实施例采用仿真手段验证本发明所提供的方法和系统的有效性。为了降低问题的复杂度并不失一般性,通过仿真产生虚拟无人机,并假设无人机飞行高度为常数,飞行速度为常数,只需要控制无人机的方向。鉴于无人机飞行高度是常数,所以通过仿真产生了如图1(a)~图1(e)所示的五种虚拟的二维复杂环境,每一个虚拟环境的覆盖面积为一平方公里。
[0100] 图2是本发明的实施例中无人机在大尺度未知复杂环境中的自主导航方法的流程图。下面结合图2详细地说明各个步骤及其原理。
[0101] 步骤S10,利用无人机的传感设备和定位设备获取无人机的状态。
[0102] 关于上述无人机的传感设备,需要说明的是:本实施例中涉及的无人机传感设备为五个虚拟测距仪,分别指向不同的方向(如图3所示)。然而在实际应用中,传感设备可以是雷达、超声波、摄像头等不同设备。关于上述无人机的定位设备,需要说明的是:本实施例中通过仿真产生虚拟环境,所以可以直接给出无人机的当前位置与目标位置之间的距离和夹角;而在实际应用中,上述定位设备可以是GPS等。
[0103] 具体过程如下:
[0104] 步骤S10.1,利用无人机的传感设备获取无人机的环境状态。
[0105] 在本实施例中,无人机的环境状态由五个虚拟测距仪给出,虚拟测距仪测量无人机不同方向距离周围环境障碍物的距离。将该状态记作senv=[d1,d2,d3,d4,d5],其中d1,d2,d3,d4,d5分别表示五个虚拟测距仪给出的五个距离。
[0106] 步骤S10.2,利用无人机的传感设备获取无人机的自身状态。
[0107] 在本实施例中,由于采用仿真手段,无人机的自身状态,即无人机第一视角与正北方向的夹角θ,可以不用传感器直接获取。将该状态记作sself=[θ]。
[0108] 步骤S10.3,利用无人机的定位设备获取无人机的位置状态。
[0109] 在本实施例中,由于采用仿真手段,无人机当前位置可以直接由仿真环境给出,因而其与目标位置之间的距离以及与目标位置之间的夹角可直接通过计算获得。假设无人机当前位置坐标为(X1,Y1),无人机的目标位置状态为(X2,Y2),则无人机和目标位置的夹角可以由以下公式给出:
[0110]
[0111] 将位置状态记作
[0112] 步骤S10.4,将无人机的环境状态、自身状态和位置状态融合,作为无人机的状态。
[0113] 在本实施例中,直接将表征无人机环境状态、自身状态和位置状态的三个向量拼接成一个状态向量即可,即s=[senv,sself,spos],这是一个七维的向量。
[0114] 需要指出的是,三种状态向量的容和方法不局限于上述方法。在实际应用中,环境状态可能完全由二维图像信号表征,位置状态却往往只能用一维向量表征,二者的的融合可以通过神经网络或其它方法实现。任何熟悉本技术的技术人员在不背离本发明的原理和思想的情况下,对上述方法步骤的调整或替换,都应在本发明的保护范围之内。
[0115] 步骤S20,确定无人机的控制向量。
[0116] 在本实施例中,由于利用仿真产生无人机,因此在控制无人机的过程中并不受实际物理过程的限制。为了简化问题,本实施例中假设无人机飞行高度为常数,飞行速度为2m/s,那么仅需控制无人机的飞行方向即可。因此无人机的控制向量只由飞行方向一个维度组成,记作a=[adir],其中adir表示方向控制。
[0117] 步骤S30,结合无人机的状态和环境确定收益函数。
[0118] 在本实施例中,收益函数至少由三个部分组成:环境惩罚、转移奖励和方向奖励。
[0119] 环境惩罚优选采用指数函数来表示,即如果无人机靠近障碍物,那么它收到的惩罚随着距离障碍物的距离减小而指数增加,环境惩罚函数penv可以表示(其中λ1和λ2为大于0的可调参数):
[0120]
[0121] 转移奖励优选采用线性函数来表示,即如果无人机飞行一个实践单位后,与目标之间的距离减小了,那么它收到的奖励正比于相对减小的距离;如果飞行一个单位时间后,与目标之间的距离增加了,那么不给于奖励。假设一个时间单位之前的位置为(X1,Y1),一个时间单位之后的位置为(X2,Y2),目标位置为(X3,Y3),那么转移奖励函数rtrans可以利用以下函数表示(其中β为大于0的可调参数):
[0122]
[0123] 方向奖励优选采用常数函数来表示,即如果无人机的第一视角指向它的环境传感器能感受到的最空旷的方向,那么给予常数的奖励。方向奖励函数rdir可以由以下函数表示(其中alpha为可调参数):
[0124]
[0125] 综上所述,无人机的收益函数r可以表示为:
[0126] r=penv+rtrans+rdir
[0127] 步骤S40,利用深度增强学习,训练无人机从状态到控制的映射函数,即控制函数。具体过程如下:
[0128] 步骤S40.1,选择能够解决无人机自主导航问题的深度增强学习算法,。
[0129] 由于无人机的控制向量的取值是连续的(无人机可以以任意角度旋转方向),因此必须选取适用于连续控制的深度增强学习算法。例如,现有技术中的循环确定策略梯度算法(RDPG)。在本实施例中,基于增强学习的actor-critic框架,设计了一种新的更高效的深度学习算法来解决无人机自主导航问题。在本发明中将该算法称为FAST-RDPG算法。如图4所示,该算法包括以下步骤:
[0130] S100,初始化操作-值函数循环神经网络Qw(at,ht)和控制函数循环神经网络μθ(ht),其中随机赋值网络参数w和θ;
[0131] S200,初始化目标操作-值函数循环神经网络Qw’(at,ht)和目标控制函数循环神经网络μθ’(ht),其中令网络参数w’和θ’分别等于上述网络参数w和θ;(以下,操作-值函数循环神经网络简称操作-值函数,控制函数循环神经网络简称控制函数)
[0132] S300,初始化回放缓存R;
[0133] S400,按照预先设定的循环次数执行以下步骤:
[0134] S401,初始化一个操作搜索随机过程;
[0135] S402,随机初始化无人机的出发位置和目标位置;
[0136] S403,获取无人机的初始状态s0,并初始化无人机的历史状态-操作轨迹h0=s0;
[0137] S404,将当前无人机历史状态-操作轨迹输入当前控制函数,并增加探索噪声Nt,获得对应的控制策略at=μθ(ht)+Nt;
[0138] S405,执行控制策略at,使无人机跳转到下一个状态st,并根据收益函数得到相应的收益rt,
[0139] S406,判断无人机的状态st是否为结束状态:
[0140] 若是,执行步骤S413;若否,执行步骤S407;
[0141] S407,将跳转过程的相关参数(ht-1,at,st,rt)存储进回放缓存R中;
[0142] S408,更新历史状态-操作轨迹ht=[ht-1,at,st];
[0143] S409,从回放缓存R中均匀随机采样L组跳转过程的相关参数(hi,ai,si,ri),i=1,2,…,L;
[0144] S410,根据步骤S409采样得到的L组跳转过程的相关参数,分别计算它们对应的目w’ θ’标值=ri+γQ ([hi,ai,si],μ ([hi,ai,si])),其中,i=1~L,γ是比例因子,其取值范围为
0到1;
[0145] S411,根据计算得到的目标值yi,i=1~L,分别计算操作-值函数的梯度和控制函数的梯度,然后利用随机梯度下降法更新操作-值函数和控制函数的网络参数;其中,[0146] 按照下式计算操作-值函数的梯度
[0147]
[0148] 按照下式计算控制函数的梯度
[0149]
[0150] 利用随机梯度下降法,更新操作-值函数和控制函数的网络参数w和θ;
[0151] S412,按照以下公式,更新目标操作-值函数和目标控制函数的网络参数w’和θ’:
[0152] w’=εw+(1-ε)w’
[0153] θ’=εθ+(1-ε)θ’
[0154] 其中,等式左边的w’和θ’为更新后的目标操作-值函数和目标控制函数的网络参数,等式右边的w’和θ为更新前的目标操作-值函数和目标控制函数的网络参数’;ε表示网络参数的更新程度,其取值范围为0到1。
[0155] S413,判断状态跳转次数是否超过了给定的阈值:
[0156] 若是,执行步骤S414;若否,返回步骤S404;
[0157] S414,结束本次循环;
[0158] S500,结束。
[0159] 该算法是基于增强学习中的actor-critic框架,通过函数近似的方法,得到从状态到策略的映射关系。所谓的actor是函数μθ(ht),实现从历史状态-操作轨迹ht到策略at=μθ(ht)的映射;函数μθ(ht)是用一个长短时记忆网络(LSTM)来实现的,该网络的输入就是ht,输出就是at,网络参数为θ。所谓critic,就是函数Qw(at,ht),其作用是对在当前历史状态-操作轨迹ht下采取策略at给予评价;也是用一个LSTM来实现的,该网络的输入就是ht和at,输出为一个标量值Qw(at,ht),网络参数为w。在本实施例中,这两个LSTM的具体形式如图5和图6所示。
[0160] 此算法结构基本清晰。其中,为了加快算法的收敛速度,优选地设置了回放缓存和目标操作-值函数神经网络以及目标控制函数神经网络。
[0161] 这是由于在一次从初始状态到达结束状态的过程中,相邻的两个状态st和st+1显然非常相似,存在着强相关性,因此会导致相邻的两个历史状态-操作轨迹ht和ht+1也非常相似,为了消除这种相邻状态强相关性而导致算法收敛缓慢的问题,在此设计了回放缓存,其基本思想就是:假设当前为ht,采取策略at之后,跳转到ht+1并得到奖励rt,下面不立即使用(ht-1,at,st,rt)对两个函数的参数进行更新,而是先把它们放入回放缓存中,并从回放缓存中随机地得到L组跳转过程的相关参数(hi,ai,si,ri),i=1,2,…,L,利用(hi,ai,si,ri),i=1,2,…,L进行参数更新。
[0162] 目标操作-值函数神经网络和目标控制函数神经网络是另一个防止算法发散的措施。其基本思想是:采用目标操作-值函数和目标控制函数来计算yi=ri+γQw’([hi,ai,si],θ’μ ([hi,ai,si]))。
[0163] 步骤S40.2,根据所选择的深度增强学习算法,设计合适的深度神经网络,作为控制函数。
[0164] 如上所述,在本实施例中,根据选择的算法,基于长短时记忆网络(LSTM),设计两w θ个神经网络Q(at,ht)和μ(ht)来分别近似操作-值函数和控制函数,其中w表示操作-值函数的网络参数,θ表示控制函数的网络参数。图5示出了操作-值函数的神经网络结构,其中输入层有8个神经元,第一层隐藏层有300个神经元,第二层隐藏层有400个神经元,控制指令在第一层隐藏层输入,LSTM层的输出再通过一个输出神经元;图6示出了控制函数的神经网络结构,其中输入层有8个神经元,第一层隐藏层有300个神经元,第二层隐藏层有400个神经元,LSTM层的输出再通过一个输出神经元。
[0165] 应当说明的是,对控制函数的神经网络近似并不局限于本实施例中所采用的神经网络。在具体的实施过程中,本领域技术人员可以根据实际需要对其进行设计。任何熟悉本技术的技术人员在不背离本发明的原理和思想的情况下,对上述方法步骤的调整或替换,都应在本发明的保护范围之内。
[0166] 步骤S40.3,根据选择的深度学习算法和设计的深度神经网络,学习控制函数的参数。
[0167] 在本实施例中,按照所设计学习算法的流程,学习出操作-值函数和控制函数对应神经网络的网络参数。待学习结束后,得到的控制函数。图7示出了上述步骤所设计算法在训练过程中的收益-迭代步数曲线。作为比较,图7同时示出了另一种连续控制的深度增强学习算法,即循环确定策略梯度算法(RDPG)在相同参数条件下的收益-迭代步数曲线。通过比较可以看出,本实施例中设计的算法相对于RDPG算法,能够在迭代更少的步数下获得更高的收益,因此性能要远好于RDPG算法。
[0168] 步骤S50,利用训练得到的控制函数,进行无人机在大尺度未知复杂场景中的自主导航测试。
[0169] 在本实施例中,首先在虚拟复杂场景中随机产生无人机的出发位置和目标位置。然后利用状态获取模块获得无人机状态;将该状态输入到控制函数中,得到控制信号;执行该控制信号;重复以上步骤,进行自主导航测试。图7示出了随机产生四组起始位置和目标位置后,无人机自主导航测试的测试轨迹。其中,图8(a)是基于现有的RDPG算法得到的无人机自主导航测试的测试轨迹,图8(b)是基于设计的FAST-RDPG算法得到的无人机自主导航测试的测试轨迹。从图中可以看出无人机能够成功的从任意起始位置,利用传感器装置和定位装置,完成在大尺度位置复杂环境中的自主导航任务。
[0170] 实施例二
[0171] 基于同一发明构思,本发明实施例中还提供了一种无人机在大尺度未知复杂环境中的自主导航系统。如图9所示,该自主导航系统10包括:
[0172] 状态获取模块100,用于获取无人机的状态;
[0173] 控制向量模块200,用于确定无人机的控制向量;
[0174] 收益函数模块300,其连接所述状态获取模块,用于根据无人机的状态和无人机所处的环境确定收益函数;
[0175] 函数训练模块400,其连接所述状态获取模块、控制向量模块和收益指定模块,用于基于收益函数进行深度增强学习,训练无人机从状态映射到控制的控制函数;
[0176] 自主导航模块500,其连接所述函数训练模块和状态获取模块,用于利用训练得到的控制函数,根据无人机的状态生成相应的控制指令,控制无人机在大尺度未知复杂场景中进行自主导航。
[0177] 进一步地,所述状态获取模块100包括:
[0178] 环境状态单元,用于利用无人机的传感设备,获取无人机与其所处周围环境的距离,作为无人机的环境状态;
[0179] 自身状态单元,用于利用无人机的传感设备,获取无人机第一视角与正北方向的夹角,作为无人机的自身状态;
[0180] 位置状态单元,用于利用无人机的定位设备,获取无人机当前所处位置,进而获取无人机当前位置与目标位置之间的距离和夹角,作为无人机的位置状态;
[0181] 状态融合单元,其连接所述环境状态单元、自身状态单元和位置状态单元,用于将所述环境状态、自身状态和位置状态融合,作为无人机的状态。
[0182] 进一步地,所述收益函数模块300至少由以下三个单元组成:
[0183] 环境惩罚单元,其连接所述环境状态单元,用于当无人机在飞行过程中靠近任何物体时给予惩罚;
[0184] 转移奖励单元,其连接所述位置状态单元,用于当无人机飞行指定时间后与目标之间的距离减小时给予奖励;
[0185] 方向奖励单元,其连接所述环境状态单元,用于当无人机的第一视角面向其周围环境中最空旷的方向时给予奖励。
[0186] 进一步地,所述函数训练模块400包括:
[0187] 算法选择单元,用于选择适用于控制无人机的深度增强学习算法;
[0188] 网络设计单元,其连接所述算法选择单元,用于根据选择的深度增强学习算法设计相应的深度神经网络,作为所述控制函数;
[0189] 参数学习单元:其连接算法选择单元和网络设计单元,用于根据选择的深度增强学习算法和设计的深度神经网络,学习所述控制函数的参数。
[0190] 需要说明的是,在本发明的描述中,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0191] 需要说明的是,本发明实施例的无人机在大尺度未知复杂环境中的自主导航系统的具体实施方式与本发明实施例的无人机在大尺度未知复杂环境中的自主导航方法的具体实施方式类似,具体请参见方法部分的描述。为了减少冗余,在此不做赘述。
[0192] 另外,本发明实施例的无人机在大尺度未知复杂环境中的自主导航系统的其它构成以及作用对于本领域的技术人员而言都是已知的,为了减少冗余,在此不做赘述。
[0193] 以上所述,仅为本发明的具体实施案例,本发明的保护范围并不局限于此,任何熟悉本技术的技术人员在本发明所述的技术规范内,对本发明的修改或替换,都应在本发明的保护范围之内。