技术领域
[0001] 本发明属于无人艇航迹控制领域,具体涉及一种基于深度强化学习的无人艇航迹控制方法。
相关背景技术
[0002] 近年来深度神经网络有了长足的发展,强化学习在结合了深度神经网络后在下棋,游戏,推荐系统等方面取得了显著成就。深度强化学习之所以能在这些领域取得良好的训练效果是因为这些领域的规则都是比较明确的,其状态的转移严格符合马尔科夫性,智能体在这些环境下受到的影响因素是较少而且可控的。而深度强化学习运用到无人艇时,无人艇受到的各种环境因素的影响很多,无人艇在不同环境下完成不同任务时我们考虑的环境因素有一定差别。无人艇能否获得足够多且足够精确的环境信息是影响深度强化学习学习效果好坏的重要因素。而无人艇的航迹控制是无人艇完成其他许多任务的基础,将深度强化学习运用到无人艇的航迹控制是无人艇自动控制迈向人工智能的重要一步。
具体实施方式
[0023] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024] 并且,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
[0025] 请参附图对具体的实施过程进行讲述:
[0026] (1)初始化网络参数中,若是第一次训练则随机初始化网络的权值参数,若不是第一次实验则将网络初始化为上一次试验结束时保存的网络参数。其中参数i用于评价网络的更新计数,评价网络更新n次后目标网络才更新一次。无人艇对环境数据采样间隔为Ts,每Ts决策网络更新一次,每n·Ts秒目标网络更新一次。
[0027] (2)获取的当前状态信息中包括无人艇的位置信息,由于目标航迹点的位置已知,因此以当前目标航迹点为原点,目标航迹方向为x轴正方向建立坐标系,可以计算出无人艇的坐标为Gt=(xt,yt);目标航迹方向到下一目标航迹的方向,方向变化的角度为△θt,‑180°< △θt≤180°;无人艇避障传感器的数据为Dt。
[0028] 由于计算板卡的计算耗时,电机响应延迟都是不可忽略的,且舵角和螺旋桨动力输出对无人艇的状态的影响是连续的,前一时刻的动作会对下一时刻的状态造成影响,因此要纳入状态信息。无人艇螺旋桨输出动力为Put,输出的舵角为Angt。当前总的动力输出为 Ft=(Put,Angt)。则将Ft‑1纳入动作空间。
[0029] 最终获得的当前状态信息为St=(Gt,△θt,Dt,Ft‑1)
[0030] (3)引入状态信息的微分量和积分量来消除无人艇的大迟滞性的影响。实际运用时我们离散地在时间轴上对数据进行采样。在离散系统中我们用差分量和延时量来代替微分量和积分量。预处理前的状态信息为St,预处理后的状态信息为St′。
[0031] 差分用来消除无人艇的大惯性的影响,舵角及螺旋桨的动作直接影响无人艇的加速度。无人艇速度的变化符合马尔科夫性,而位置的变化不符合马尔科夫性。下一时刻位置不但受当前输出动力的影响,还受当前速度的影响,因此将速度也列为状态信息的一部分。无人艇与距离或航向相关的信息及其差分量都应引入到状态信息。
[0032] 延时用来消除做出决策到动作响应到位的时间差带来的影响,将前λ时刻的状态的延时量都引入到状态空间。设实际延时为τ,T为无人艇系统采样间隔,λ的设置需满足关系式λt>τ。训练时与实际延时量最相近的时刻的状态信息对应网络的权值随着训练很快上升,没有对应上的数据在网络中的权值会由于其动作和行为不具有相关性或相关性很低很快就会衰减并接近于0。这样就自适应地解决了无人艇决策到动作有延时的问题。
[0033] 考虑到差分量可以由延时量线性表示,其对无人艇状态转移的影响都体现在神经网络的权值上,为简化深度神经网络,状态预处理最终简化为:
[0034] St′=(St,St‑1,St‑2…St‑λ)
[0035] (4)动作空间的设置,本系统运用于双桨单舵的水面无人艇上。两个螺旋桨由一个信号控制,动力输出相同。为了方便控制板卡对无人艇进行控制,设置了离散的动作空间。对于螺旋桨输出的推力Put,从推力为0到最大推力,设置10个档位。对于舵角Angt从‑60度到
60度分辨力为5度,设置25个角度。动作At=(Put,Angt)。
[0036] (5)奖励的设置,为了达到训练目标,详细设置了其奖励函数:
[0037] R=k.rv.ry+rs+rz
[0038] 下面对各分量进行单独解释,下式中单独的字母a,b,c,d,g,h,k都为常数。
[0039] rv为速度奖励,以靠近当前目标航迹点方向上的速度 设置奖励。
[0040]
[0041] rc为航迹控制奖励,无人艇航行贴线精度越高奖励越大,无人艇与目标航迹的垂直距离为yt(yt≥0)。
[0042]
[0043] rs为位置奖励,无人艇越靠近目标位置奖励越大,与目标航迹点距离越小,奖励越大。与目标航迹点距离为
[0044]
[0045] 无人艇只要到达目标航迹点的范围阈值d内,无人艇的当前航迹点就会更新为下一航迹点。因此上式中c/dt不会趋于无穷大。但考虑到无人艇开始航行,结束航行时可能会有非常靠近航迹点的情况,为了防止无人艇获得不合理的大奖励,设置上式中的分段函数来限制位置奖励的最大值。
[0046] rz为避障奖励,通过避障传感器无人艇可以获得无人艇前方障碍物信息。以无人艇航行速度的大小 设置动态的安全距离gvd,当小于安全距离时无人艇获得负奖励。
[0047]
[0048] 最终奖励函数为R=k.rv.ry+rs+rz。其中rv.ry项设置为相乘而不是相加,是因为无人艇靠近航迹点和航迹保持必须是同时进行的,如果两项奖励相加,会导致无人艇在保持航迹且停止向前运动时仍然可以得到不合理的中等大小的正奖励。
[0049] (6)设立两个结构相同的深度神经网络,决策网络Q和目标网络 Q′。具体更新过程如图1所示,数据流向如图2所示。决策网络Q用于当采集到环境信息后无人艇执行动作的选择。每进行一次动作的选择决策网络更新一次,更新的误差函数来源于目标网络Q′。而目标网络Q′不能每次都更新,否则目标一直在改变不利于参数的收敛。因此设置常量n,每当决策网络Q更新n次目标网络Q′更新一次。
[0050] (7)经验池数据的格式包括预处理后的状态信息和奖励,动作信息和下一状态的信息,即(St′,St+1,Rt′,At)。其中奖励函数也是预处理后的数据,预处理的理由与状态预处理一样不再赘述。
[0051] 经验池实际存储的数据还应该包括该条数据的唯一编号N,采样概率等级P以及该数据被采样的次数M。
[0052] 经验池中每一条数据的格式为(N,P,M,St′,St+1,Rt′,At)。
[0053] (8)经验池中数据的采样等级分为三级,采样等级高的数据被采样的概率更高。
[0054] 初始最新存储的数据采样等级为三级。以确保最新的数据投入经验池后可以尽快被利用。采样等级为三级的数据被抽样过三次后采样等级将为二级。采样等级为二级的数据被采样五次后被降低为一级。每次更新产生一条都会有十条数据被抽样。这样设置可以保证经验池里大部分数据抽样等级保持在一级。采样等级的设置可以提高数据使用效率,加快收敛。
[0055] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。