1. 引言
路径规划作为自主移动机器人、无人驾驶车辆和智能物流系统等领域的核心技术,其研究水平直接决定着智能体在复杂环境中的自主决策能力。路径规划本质上是一个优化问题,其目标是在环境等多种约束的情况下找到一条最优路径。目前路径规划的算法有很多,传统的路径规划算法比如A*算法[1]、Dijkstra算法[2]、快速搜索扩展树(RRT)算法[3]等,这些是全局路径规划算法,全局的环境信息都为已知。同时还有局部路径规划算法,比如动态窗口法[4]、强化学习[5]等。局部路径规划算法并不提前已知全部的环境信息,而是随着运动的进行逐步获得环境信息。
随着研究的深入,路径规划对处理复杂环境能力与实时性提出了更高的要求,而深度强化学习(DRL)能够很好地解决这一点。近年来,关于路径规划的DRL方法的研究呈现出显著的增长趋势。深度Q网络(DQN) [6]及其改进版本[7]已成功应用于连续状态空间的路径跟踪[8]和避障[9]。基于策略的DRL能够解决连续动作空间的路径规划问题。近端策略优化(PPO)在样本效率和学习稳定性之间取得了良好的平衡,并且应用于静态障碍物环境和动态障碍物环境[10]。深度确定性策略梯(DDPG)作为常用的连续空间的强化学习算法,它使用确定性策略函数选择动作,并采用演员–评论家网络结构。[11]通过设计类似APF风格的奖励函数增强了DDPG的避障性能。[12]使用DDPG训练运动规划器以跟踪A*提供的路径。
虽然DRL在路径规划问题的研究上已有很多进展,但仍然存在着收敛速度慢、面对复杂环境处理不佳、泛化能力不足等缺陷。因此更高效的路径规划DRL方法仍需要不断的研究与开发。
2. 问题描述
本文所要实现的目标是,在地图上随机分配一个目标位置
,智能体能够从出发点到目的地自动规划一条安全的路径。智能体的运动看成是二维平面上的运动,智能体的运动学方程为
3. 状态和动作空间描述
观测向量
包含三个部分。第一部分
是表示智能体当前位置与目标位置之间的相对位置差。具体而言位置差在局部坐标系中表示为
,其中
是智能体当前的坐标。
第二部分
表示智能体当前的自身状态,包括智能体的朝向
、线速度
和角速度
。这些值是导航控制的运动反馈。
第三部分
表示智能体与障碍物的位置关系,包括与每个障碍物的距离。为了能更好应对复杂环境,引入了时间序列信息,因此
包括最近的两个与障碍物的距离信息。
动作向量
包括线速度
和角速度
,即
。为了符合实际,我们规定线速度和角速度上限为
和
。因此,
,
。
4. 奖励函数
奖励函数是强化学习中机器重要的部分,影响着训练结果的好坏。本节设计了一系列奖励函数,用于提高学习的结果。奖励函数定义如下:
(1)
用于检测智能体在导航过程中是否发生碰撞,我们定义
如下:
其中,
表示成功到达目标时获得的奖励,
表示与障碍物发生碰撞时受到的惩罚。
是当前时刻智能体与目标之间的距离,
是当前时刻智能体与最近障碍物之间的最小距离,
是安全距离。
用于鼓励智能体往目的地前进。
定义如下:
其中
表示上一时刻与目标的距离,
和
分别表示上一时刻和当前时刻与目标方向的偏差。
和
分别表示在时间间隔内距离和方向的最大变化量。
通过智能体与障碍物的距离变化给予相应惩罚,防止进入危险区域。
定义如下:
其中
表示上一时刻智能体与最近障碍物之间的最小距离,
和
分别为靠近障碍物惩罚和原理障碍物奖励,
是障碍物的影响范围,
是调整惩罚强度的参数。
是根据人工势场法(APF)公式设计的,通过添加
项进行归一化。
最后,智能体在每个时间步会受到轻微的负奖励
,以鼓励其积极探索,加快学习过程。
5. 算法
本文采用的深度强化学习的基础算法是软演员评论家(SAC)算法,结合第4节提出的新的奖励函数实现智能体的路径规划。
SAC通过引入熵正则化项,在探索和利用之间取得了更好的平衡,从而提高样本的利用效率。同时它使用双重Q网络来估计Q值,减少了过估计问题,进一步提升了样本质量。此外SAC结合最大熵强化学习框架,具有良好的鲁棒性和策略泛化能力,能够避免策略过于贪婪而导致的不稳定。能够缓解深度强化学习在路径规划中存在的样本效率低和训练不稳定的问题。
算法:路径规划的改进SAC算法
初始化:初始化Q函数参数
、策略网络参数
、目标Q函数参数 、温度参数
、经验回放缓冲区
、学习率
。
迭代:
For回合
do
获取初始状态向量
For时间步
do
采样动作
获取新的状态向量
并根据公式(1)计算奖励函数
将转换
存储在回放缓冲区
For训练周期
从
中采样
个元组
更新Q函数参数
其中
更新策略网络参数
调整温度
更新目标网络参数
其中
End for
End for
End for
6. 实验
在我们的仿真实验中,我们使用了10 × 10的地图用于训练,它被表示为[0, 10] × [0, 10]的二维平面。在训练过程中,为了保证输入状态向量的多样性,初始位置是固定的,目标位置是在地图范围内随机分配的。
参数设置如下所示:
:0.005
折扣率
:0.99
全部学习率(Learning rate):0.001
小批量大小(Mini batch):256
训练回合数(Episodes):8000
每回合时间步数(Steps):300
时间间隔(Δt):0.1
回放缓冲区容量:100000
最大线速度
:0.6
最大角速度
:
:0.06
:
安全半径
:0.6
:7
:−10
:2
:0.5
:4
:1.8
:0.7
:−1
:0.5
:−0.01
训练完成后,测试的路径规划结果和奖励曲线如图1和图2所示,图1展示了智能体能够对不同目的地给出相应的路径,说明该算法能够实现智能体的路径规划。图2展示了训练过程中的奖励曲线。从图中可以看出,随着训练的进行,算法的奖励逐渐增加,并在后期达到了稳定状态,保持了较高水平。由于训练过程中存在随机探索,会存在一些波动但并未不影响算法的整体稳定性。这表明算法已经收敛到一个稳定的策略,并能够持续获得较高的回报,进一步证明了所提出的算法在训练过程中的有效性和稳定性。
(a) (b)
(c) (d)
Figure 1. Agent path planning
图1. 智能体路径规划
Figure 2. Reward curve
图2. 奖励曲线
7. 总结
本文设计了一系列奖励函数,包括碰撞检测奖励、目标导航奖励、障碍物避让奖励,其中融合了密集奖励和稀疏奖励,帮助智能体在快速学习和长期规划之间找到平衡,提高其在复杂环境中的适应性和泛化能力。最后结合提出的奖励函数,使用SAC算法实现了智能体对不同目标点的路径规划,并给出了训练和测试结果。