APP下载

基于改进DDPG算法的机器人路径规划算法研究

2021-09-08周盛世刘成林

南京理工大学学报 2021年3期
关键词:势场状态机器人

周盛世,单 梁,常 路,陈 佳,刘成林,李 军

(1.南京理工大学 自动化学院,江苏 南京 210094;2.江南大学 轻工过程先进控制教育部重点实验室,江苏 无锡 214122)

在移动机器人自主导航中,路径规划问题是一个基础又重要的部分,其目标可以描述为在一定的约束条件下,寻找1条从当前点到目标点的最优路径。常见的路径规划算法有A*[1]、蚁群算法[2-4]、遗传算法[5]、粒子群算法[6]等,但是这些算法存在运算时间长、迭代次数过多以及在未知环境下实时性差的问题。而人工势场法[7,8]可以根据机器人当前状态和环境确定下一步的运动状态,算法实时性高,但是存在容易陷入局部最小点的问题。近年来,深度学习和强化学习成为机器学习领域重要的研究热点。神经网络强大的特征提取和函数拟合能力使得强化学习可以应用到非常复杂的决策问题上[9,10],深度强化学习(Deep reinforcement learning,DRL)可以充分发挥深度学习的感知优势和强化学习的决策优势。

Google DeepMind通过结合Q学习(Q-learning)和深度神经网络提出了深度Q网络[11,12](Deep Q network,DQN),解决了高维输入引发的维度灾难问题,允许连续状态输入。随后以Actor-Critic算法为基础,将DQN和确定性策略梯度[13]相结合,提出了深度确定性策略梯度(Deep deterministic policy gradient,DDPG)算法[14,15],解决了动作空间离散的问题。文献[16]提出了一种根据优先级回放经验池的改进策略。文献[17]使用强化学习进行路径规划,但是状态和动作空间都是离散的,不符合实际机器人的运动模型。文献[18]通过分离经验缓存池,提出基于失败经验纠错的改进算法。文献[19]在训练后期增大了经验池,没有从根本上筛选训练样本,训练提升空间有限。

本文在现有研究[20-22]的基础上,提出了一种基于改进DDPG的路径规划算法,根据机器人周围环境和目标点的状态,利用人工势场法实时性避障的优点,引入其作为前期训练的辅助策略,并研究连续的回报函数,加快训练速度,最后进行实验仿真,验证了算法的有效性。

1 DDPG算法

1.1 基本原理

DDPG采用了异策略的演员-评论家(Actor-Critic)算法框架,使用类似双深度Q学习网络(Double deep Q-learning network,DDQN)的双网络结构用于解决收敛慢的问题。在DDPG算法中,智能体与环境交互得到状态,通过神经网络得到动作策略,智能体执行策略后,得到环境的反馈,再通过强化学习的决策能力对各个策略进行评价,之后对神经网络进行更新。DDPG算法网络结构如图1所示[14]。

图1 DDPG算法网络框架图

在Actor-Critic中,Actor和Critic都包含2个神经网络:Eval网络和Target网络。在Actor中,Eval网络根据当前状态st选择动作at,并负责更新策略网络参数θ;Target网络根据经验池采样的下一个状态st+1选择下一个最优动作at+1,网络参数θ′从θ中更新。使用对状态和行为的评价均值作为损失函数

Loss=-mean(Q(st,at,θ))

(1)

在Critic中,Eval网络根据状态st和动作at计算当前Q值Q(st,at),并负责价值网络参数ω的更新;Target网络根据st+1和at+1计算下一个状态的实际Q值Q(st+1,at+1),网络参数ω′通过ω更新。

QTarget=rt+1+γ·Q′(st+1,at+1,ω′)

(2)

式中:γ为折扣因子,表示时间的远近对奖励的影响程度,越小表示更看重当前奖励。

采用均方差构建网络可优化的损失函数

Loss=E[(QTarget-Q(st,at,ω))2]

(3)

1.2 环境探索

在训练过程中,网络模型需要权衡探索和利用功能。探索是为了寻找潜在的更优策略,所以在训练过程中引入随机噪声,将决策从确定性过程变为随机过程。

ε贪婪(ε-greedy)策略实现简单,但是探索效率低下,因为是随机选择,所以也没有记忆,会造成重复探索。在DDPG中引入了Ornstein-Uhlenbeck(OU)过程,OU过程是1个时间相关的过程,在惯性系统中探索效率更高,如图2所示。其连续形式如下

图2 OU噪声

dxt=θ(μ-xt)dt+σdWt

(4)

其离散形式为

xt-xt-1=θ(μ-xt)+σWt

(5)

式中:μ是均值,θ表示变化速率[14],σ表示噪声的范围,xt是状态,Wt是维纳过程。

2 改进DDPG算法

目前DDPG算法在机器人路径规划上的研究场景相对简单,状态和动作空间不连续,且存在训练时间长、不稳定等缺点。本文采用连续的状态空间和动作空间设计,更符合机器人实际运动学模型,并在回报函数中引入人工势场法来加快训练速度。

2.1 连续状态空间设计

状态空间是整个环境的反馈,是智能体选择动作空间的依据。状态包括2部分。

(1)激光雷达数据。机器人上装有激光雷达,探测距离为10 m,扫描范围是360°。考虑到精度和计算问题,只考虑机器人正前方180°,取9个方向的雷达数据,如图3所示。

图3 环境状态空间图

用dio表示雷达各个方位探测到障碍物的距离,使用雷达量程将dio进行归一化处理,最终方位状态信息为[D1o,D2o,D3o,D4o,D5o,D6o,D7oD8o,D9o]。

(6)

式中:D为激光雷达最大量程。

(2)为了使机器人能够朝向目标点运动,将机器人当前朝向与目标点的夹角β作为1个输入状态,如图4所示。目标点在机器人左侧时,β取值范围是[0,180°];目标点在机器人右侧时,β取值范围是(-180°,0)。

图4 目标夹角

2.2 连续动作空间设计

在机器人运动模型中,控制量包含线速度和角速度2部分,上限分别为vmax和ωmax,并且有最大加速度a和最大角加速度α。定义动作空间为线速度比值v和角速度比值ω,其中,线速度取值范围是[0,1],角速度取值范围是[-1,1],两者均为连续值,相对于低维离散动作更接近真实机器人运动模型。位置更新公式为

(7)

式中:dt表示位置更新周期,γ表示机器人朝向与x轴正方向的夹角,Px和Py表示机器人的位置[23]。

2.3 与人工势场法相结合的奖励函数设计

奖励函数用于评价深度学习框架决策的好坏,对每步决策给出1个奖励值,它对整个学习过程起着导向作用。神经网络根据状态做出具体的决策,环境根据决策执行更新,并计算出奖励值,神经网络根据反馈出来的奖励值更新网络参数,使网络下次计算时能够做出更优决策。奖励函数的好坏直接影响整个强化学习框架的有效性和收敛性。奖励函数设计如下

(8)

R=rate*norm(P0-P1)+(1-rate)*R

(9)

式中:d(t)表示当前时刻机器人距离目标点的距离;d(t-1)表示上一个时刻机器人距离目标点的距离;do表示障碍物的安全距离,小于该值即表示碰到障碍物;dg表示距离目标点的阈值,小于该值即认为到达目标点;dn表示靠近目标点的距离,到达该范围内给予1个正向奖励,可以促使机器人更快到达目标点。当机器人所处位置是障碍时,获得负奖励;当机器人到达终点,获得较大的正奖励;当机器人靠近目标点时,获得1作为奖励;当机器人原地不动时,获得-1作为奖励;其他情况获得-2作为奖励,这个奖励比1小是因为这样可以避免机器人出现来回运动去获得正奖励的情况,可以促使机器人寻找最短路径。总体来说,机器人只有靠近目标点以及到达目标点才会获得正奖励。

强化学习最大的缺点是训练的时间长且不稳定,如果前期能够很快到达目标点,训练的速度会很快,否则会探索很大的空间。为了解决传统算法盲目选择动作的问题,引入人工势场法作为前期训练的辅助,使系统能够更快训练出模型。在选择出动作空间后,先根据人工势场法计算机器人下一步的位置P0,然后再进行环境的更新得到机器人实际的位置P1。在原奖励函数的基础上,加上P0和P1的距离。式(9)中,norm(P0-P1)为计算2个位置的距离,rate是1个权重值,代表人工势场法的权重,在前期比重较大,引导机器人更快走向终点,随着训练次数的增加,权重逐渐下降。

2.4 优先级经验回放机制

DDPG使用经验回放池来消除输入样本间的相关性,每次从中随机选取小批量的样本来更新神经网络。这种方式将新老样本进行混合来更新网络,认为经验池中的所有样本的重要性都是一致的,但是会减弱样本之间的时序相关性。

在经验回放池中的样本中时序差分(Temporal-difference,TD)误差越大,对反向传播的作用也越大,算法的收敛速度会更快,同时也会提高训练过程的稳定性。因此引入经验回放的优先级,根据TD误差

Error=rt+γ·Q′(st+1,at+1,ω′)-Q(st,at,ω)

(10)

来衡量每个样本的学习价值,优先级高的样本更容易被选取。

3 算法流程

使用DDPG算法对机器人路径规划进行训练,程序流程如图5所示。

图5 DDPG算法流程图

4 仿真实验

为了验证改进的DDPG算法在机器人路径规划中的有效性和收敛性,本文采用Python语言,在不同地图下分别使用人工势场法、原始DDPG和改进的DDPG算法进行仿真对比实验。构建100×100的二维栅格地图,设置雷达量程为20,起点为(2,2),终点为(30,82),训练回合为500次,每回合训练次数最多为200次。机器人在地图内不断学习探索,如果成功到达目标点、碰到障碍物或者每回合训练次数超过200次,那么就会场景复位,开始下一回合训练。模型部分参数设置如表1所示。

表1 模型参数表

图6(a)、图6(b)分别是原始DDPG算法和本文提出的改进DDPG算法训练1000回合后的路径图。

图6 算法路径图

原始DDPG算法训练初期没有样本池,随机性较大,需要大量的样本才能够训练出模型。改进的DDPG算法通过结合人工势场法,在训练中能够给予模型一定的指引,减少训练的盲目性和随机性,从而大大加快训练时间,能够更早得到优化模型。

为了验证改进的DDPG算法在不同地图下的有效性,选取多个地图进行测试验证。图7是不同地图路径规划图。图8是原始DDPG算法和改进的DDPG算法训练成功率的对比图。原始DDPG算法在开始训练时随机性较大,训练结果不稳定,随着样本量增大逐步稳定,成功率最终为70%。改进的DDPG算法在40回合后成功率稳定上升,说明算法已经开始收敛,明显快于原始DDPG收敛速度。随着训练次数的增加,人工势场法作用逐步减小,成功率开始缓慢增加,训练1000回合的收敛成功率为92%。

图7 不同地图路径规划图

图8 算法改进前后的训练成功率曲线图

5 结束语

本文主要考虑了移动机器人在未知环境下的路径规划问题。在建模过程中考虑机器人的实际运动模型,提出了一种在未知环境下基于深度强化学习的路径规划算法。分析了DDPG算法的问题,引入人工势场法解决算法训练量大、随机性强和不稳定的缺点,增强了算法的鲁棒性,并且避免了人工势场法本身易陷入局部最小值的缺点,验证了算法的有效性。后续将研究多机器人协同编队的路径规划算法。

猜你喜欢

势场状态机器人
基于Frenet和改进人工势场的在轨规避路径自主规划
一种基于ResNet的车钩状态识别方法及其应用
基于改进人工势场法的维修分队机动路线规划方法*
融合前车轨迹预测的改进人工势场轨迹规划研究
基于势场搜索的无人车动态避障路径规划算法研究
状态联想
生命的另一种状态
机器人来帮你
认识机器人
机器人来啦