唐 俊,杨友波,张 目,雷印杰
(四川大学电子信息学院,成都 610064)
避障导航算法是移动机器人自主智能中一个基础且重要的算法,其作用是引导机器人在空间中从起始点无碰撞地移动到目标点。避障导航算法通常可分为两种:动态环境导航避障和静态环境导航避障算法,前者空间中存在可移动的障碍物,后者仅存在不可移动的障碍物。通常,移动机器人工作在餐厅、机场、街道等场景中,这些场景中存在着大量移动且密集的人群,移动机器人往往需要穿过密集的人群到达目的地,同时避免发生碰撞。相较于只有静态障碍物的环境,这些环境中的障碍物状态不断变化且难以预测,导航与避障变得困难。因此,如何在这些未知密集的动态环境中自主导航和避障,依然是移动机器人自主智能中具有挑战性的问题,具有重要的研究意义[1‑2]。
目前,移动机器人导航算法主要分为两种:基于规则的算法[3‑5]和基于学习[6‑7]的算法。基于规则的算法通过设计一系列规则,并根据这些规则运动。经典的基于规则的导航算法如ORCA[3]、人工势场算法[4]、A‑Star[5]算法等。这些算法在静态场景中可以很好地完成任务。然而,当环境变为动态时,这些基于规则的算法往往产生不自然的运动路径,甚至导致导航失败。基于学习的算法主要为强化学习算法,如CADRL[6]、LSTM‑RL[7]等,这些算法包括训练和推理两个阶段。在训练阶段,算法不断与环境交互以获得奖励或者惩罚,从而不断改进策略以学习到在动态环境中导航的模型。在推理阶段,算法直接通过训练阶段获得的模型进行决策。虽然基于学习的算法在动态环境中取得了一些成果,然而随着场景中动态障碍物的数量增加,这些算法均出现了不同程度的性能下降,如:导航成功率下降和导航时间过长等。为了解决以上问题,本文提出了一种基于深度强化学习的导航避障算法,仅需八个距离传感器和机器人的运动状态便可引导机器人在未知的密集动态环境中导航和避障。该算法主要包括一个用于提取融合传感器特征并进行Q 值估计的神经网络RA‑DQN,以及一个受人工势场启发而设计的势能奖励函数PEFR。仿真实验结果表明,当环境中障碍物数量超过40 个时,本文提出的算法可以保持60%的成功率,而参与对比的其他算法成功率低于50%,本文算法可以有效提高在密集环境中导航避障的性能。
本文提出的算法框架如图1所示,其主要包括两个部分:基于残差卷积网络和注意力机制[8]的深度Q 网络(residual attention Q‑network,RA‑DQN),基于人工势能场的奖励函数(poten‑tial energy field reward, PEFR)。RA‑DQN 由带注意力机制的残差卷积网络和深度Q 网络[9]组成,其主要作用是提取来自传感器的状态信息,并获得当前状态下每个可选动作的Q 值,该值表征了当前状态下选择某一动作的收益期望。PEFR 通过特殊设计的势能场函数给予智能体(agent)奖励信号,即:当智能体发生碰撞时给予惩罚;当智能体靠近目标点时给予奖励,从而有效引导智能体学习在动态环境中的导航策略。
图1 导航避障算法框架
本文算法使用了两个RA‑DQN 网络。在探索阶段,使用其中一个RA‑DQN 与环境不断交互从而获得经验,并将这些经验储存在经验池(replay buffer, RB)中供训练时使用。在训练阶段,使用两个RA‑DQN 的TD‑error 作为损失函数训练,并按照一定频率更新与环境交互的网络。本文的RB 采用优先级经验回放池[10],可以有效提高探索样本的利用效率。
记r是机器人半径,其周围等距分布有8 个同构的距离传感器,每个传感器间隔45 度。机器人导航和避障任务通常被建模为马尔科夫决策过程。每个智能体的状态通常被分为可观测状态和不可观测状态,可观测状态包括位置坐标(x,y)、速度(vx,vy)、智能体半径r;不可观测状态包括目的地坐标(gx,gy)、偏好速度(v偏好)等。机器人可以获取的状态信息包括自己所有的状态(可观测和不可观测状态)以及来自传感器的状态(S传感器)。因此,本文算法的状态st的表达式为
在强化学习中,使用状态−动作函数来表征当前时刻动作的价值,也称作Q 函数,获得Q函数后便可根据Q 函数选择当前的动作,一般而言选择Q值最大的动作即为最佳动作。Q函数的表达式为
其中:Ras为即时奖励;s和s'分别为当前状态和下一时刻状态;a是当前执行的动作;Pass'为当前状态到下一状态的转移概率;γ是折扣因子。本算法中Q 函数使用神经网络进行值近似,并采用强化学习时间差分迭代的方式获得最优Q函数,即学习导航和避障的策略。
本文的RA‑DQN 网络的主要作用是估计当前状态下每个动作的Q 值,即当前状态下每个动作的价值。RA‑DQN的结构如图2所示。
图2 RA⁃DQN网络结构
RA‑DQN 主要由两个部分构成:基于残差卷积和注意力机制的状态特征提取网络RAF 和基于多层感知机MLP 的Q 值估计网络。RAF 的主要作用是利用残差卷积提取状态特征并利用注意力机制捕捉特征间的依赖关系,将这些特征加权融合。RAF 主要由多个注意力残差块ARB 组成。ARB 本质上是一个带通道注意力的残差卷积块,其将输入的特征首先输入一个卷积层,而后通过池化层生成通道注意力,最后将注意力值与卷积层提取的特征相乘以残差到的形式输出。Q值估计网络也称Q网络,其作用是通过输入RAF 提取得到的状态特征输出每个Q值。
PEFR 的基本思想是当智能体靠近障碍物或发生碰撞时给予惩罚,当智能体远离障碍物或靠近目标点时给予奖励,因此本文将期望智能体靠近的区域设置为低势能区域,并在将当前时刻t与上一时刻t−1的势能函数差值作为奖励。综合以上思想,在t时刻,奖励Rt的数学表达式如下:
其中:r碰撞< 0 是发生碰撞时的惩罚值;r到达> 0是到达目标点时的奖励值;Et和Et−1分别是t、t−1 时刻的势能场函数值。势能场函数E的表达式为
其主要包括两个部分:引力场函数和斥力场函数,引力场函数At的表达式为
斥力场函数是智能体与所有动态障碍物的斥力的总和,智能体与第i个障碍物之间斥力的表达式为
本算法包含两个RA‑DQN网络:目标网络和评估网络。在探索阶段,目标网络根据当前环境状态st得到每个动作的Q值,并依据e‑greedy 策略选择动作at从而获得下一时刻的状态st+1以及奖励rt,并将它们存入经验池(replay buffer,RB)中。其中e‑greedy的过程如下:
在训练阶段,从RB 中随机采样nbatch条经验,计算评估网络与目标网络的TD‑error,从而训练目标网络,每隔k轮探索,目标网络将会更新评估网络。其中,TD‑error的表达式如下:
本文使用Python 实现了所提算法,使用Py‑Torch来实现RA‑DQN。选择了当前广泛使用的动态环境导航避障算法, ORCA、 CADRL、LSTM‑RL与我们的算法进行对比。仿真环境长10米、宽10 米,有n个障碍。所有算法在n=10、20、30 和40 的情况下运行了100 次,并记录成功率、导航时间等指标。障碍物的起始位置是随机确定的,并均匀地分散在场景中,并且障碍物的目标也是随机和均匀地分散在整个场景中。强化学习算法的参数包括:0.01 的学习率,0.95 的折扣因子,探索率e按照线性衰减策略从0.5 下降到0.1。经验回放池的大小为20000。批训练的大小为64,并随着训练的进行逐步提升至256。训练使用了一张GTX2080Ti GPU。
每个算法在每个测试环境中均测试了100次,并对每个算法使用相同的随机种子。对于每个仿真环境,我们通过统计成功率、平均到达时间、平均到达距离以及平均奖励来评估算法的性能,显示了不同障碍物数量情况下,不同算法指标的变化情况,结果如图3所示。
图3 成功率和平均时间对比
当障碍物数量增加到40 个时,环境变得十分稠密,高度动态且拥挤,此时除本文算法,其余算法成功率均低于50%,ORCA、CADRL、LSTM‑RL 均难以完成导航任务。本文算法仍能保持69%的成功率,优于参与测试的所有算法。RA‑DQN 可以有效缓解障碍物数量上升时带来的性能下降,并能保持稳定的运行效率。
图4 展示了算法在具有20 个动态障碍物的随机环境中的轨迹特征。相比基于强化学习的算法,基于规则的ORCA 仅有少数情况下产生了直接通向目标的路径,且成功率较低。本文算法、CADRL 以及LSTM‑RL 算法均使用圆形运动以避免碰撞。然而与本文算法相比,CADRL算法轨迹波动程度更大。本文算法轨迹更加集中,稳定程度更高。LSTM‑RL 算法则产生了大量低效的迂回、且不自然的轨迹。相较参与测试的其他算法,本文算法可以完成可靠且稳定的碰撞规避,且导航过程中动作变更较少,更加高效。
图4 特征轨迹对比
本文提出了一种基于深度强化学习的密集动态环境导航算法,该算法使用基于残差卷积和注意力机制的深度Q 网络RA‑DQN 以获得当前最佳动作,并设计了一个基于势能函数的奖励函数PEFR 引导算法学习有效的导航策略。实验结果表明,本文提出的算法可以在高度动态的环境中完成导航和避障任务,同时与CADRL、LSTM‑RL 算法相比具有优势。本文提出的算法,结构简单且易于使用,只需要8个距离传感器的数据以及少量自身的位置信息便可完成导航避障任务。未来,我们会将算法整合到导航框架中,通过长距离的路径规划和本算法结合从而完成更长距离的导航避障任务。