✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。
🍎 往期回顾关注个人主页:Matlab科研工作室
🍊个人信条:格物致知,完整Matlab代码及仿真咨询内容私信。
🔥 内容介绍
动态窗口方法(Dynamic Window Approach, DWA)是一种广泛应用于移动机器人局部路径规划的算法。它通过在机器人当前速度附近的速度空间中采样,并预测未来一小段时间内机器人可能的轨迹,进而评估这些轨迹的优劣,选择最优的速度指令来驱动机器人。然而,DWA算法的性能严重依赖于其内部的多个权重参数,例如速度评价项、障碍物评价项和航向评价项的权重。这些参数通常需要人工经验或通过反复试验进行调整,过程繁琐且难以保证最优。本文提出一种利用深度Q学习(Deep Q-Learning, DQN)对DWA算法中各参数的权重进行学习的方法。我们将DWA算法的参数权重作为DQN智能体的动作空间,通过与环境(模拟或实际机器人环境)的交互,智能体学习在不同状态下调整这些权重以最大化累积奖励。奖励函数设计旨在反映机器人规划的有效性,例如规划成功率、避障效果、轨迹平滑度等。通过这种方式,DQN智能体能够自主探索参数空间,找到适合特定任务或环境的权重组合,从而提升DWA算法的性能和鲁棒性。
1. 引言
移动机器人的自主导航能力是其在复杂环境中执行任务的关键。路径规划作为自主导航的核心组成部分,旨在为机器人在已知或未知环境中找到一条从起始点到目标点的可行路径。路径规划通常分为全局路径规划和局部路径规划。全局路径规划在先验地图或全局地图上生成一条总体路径,而局部路径规划则在机器人感知范围内,根据实时环境信息进行短期内的路径规划,以规避动态障碍物或应对突发情况。
动态窗口方法(DWA)是目前广泛应用的局部路径规划算法之一 [1]。DWA算法的优势在于其计算效率较高,且能够考虑机器人的动力学约束。它通过在机器人当前速度的可行速度窗口内进行采样,预测机器人执行这些速度指令后在未来一小段时间内的轨迹,然后基于一个评价函数对这些预测轨迹进行评估,选择评分最高的轨迹所对应的速度指令作为机器人的输出。这个评价函数通常由多个项组成,例如:
- 目标评价项 (Heading evaluation):
衡量机器人预测轨迹终点朝向目标点的程度。
- 距离障碍物评价项 (Distance to obstacle evaluation):
衡量机器人预测轨迹与障碍物之间的距离,避免碰撞。
- 速度评价项 (Velocity evaluation):
鼓励机器人以较高的速度行驶。
- 轨迹平滑度评价项 (Path smoothness evaluation):
评估预测轨迹的弯曲程度,旨在生成平滑的轨迹。
这些评价项通过各自的权重加权求和得到最终的轨迹评分。DWA算法的性能好坏很大程度上取决于这些权重参数的选取。例如,如果障碍物评价项的权重过低,机器人可能更容易与障碍物发生碰撞;如果速度评价项的权重过高,机器人可能会为了追求高速度而忽略避障或轨迹平滑度。传统的参数调整方法通常依赖于专家的经验或通过大量的试错实验进行人工调整,这不仅耗时费力,而且调整结果往往难以达到最优,尤其是在面对多变的环境或任务需求时。
近年来,强化学习(Reinforcement Learning, RL)在机器人控制和决策领域取得了显著进展 [2, 3]。强化学习的核心思想是让智能体通过与环境交互,学习一个策略,以最大化累积奖励。深度学习(Deep Learning)与强化学习的结合催生了深度强化学习(Deep Reinforcement Learning, DRL),显著提升了强化学习处理高维状态空间和复杂任务的能力。深度Q学习(DQN)是DRL中的一种经典算法,适用于离散动作空间的问题 [4]。
受强化学习在参数优化方面的成功启发,本文提出利用DQN算法来学习DWA算法中各评价项的权重参数。我们将DWA的参数权重视为DQN智能体的动作,通过让智能体在模拟或实际机器人环境中执行不同权重的DWA规划,并根据规划结果给予奖励,从而训练智能体学习在不同环境状态下调整参数以获得最优性能。这种基于强化学习的参数学习方法有望克服传统人工调参的局限性,实现DWA参数的自适应优化。
2. 相关工作
DWA算法作为一种经典的局部路径规划方法,其研究和应用已经非常广泛。关于DWA参数优化的研究也取得了一定的进展。
一些研究尝试使用优化算法来自动调整DWA参数。例如,遗传算法(Genetic Algorithm, GA)和粒子群优化(Particle Swarm Optimization, PSO)等启发式算法被用于搜索最优的DWA参数组合 [5, 6]。这些方法通常需要在离线阶段进行大量的仿真实验来评估不同参数组合的性能,计算成本较高,且优化结果依赖于目标函数的选取和优化算法的参数设置。
机器学习方法也被应用于DWA参数的优化。例如,有研究利用监督学习方法,通过收集专家示教数据来训练模型预测最优的DWA参数 [7]。然而,获取高质量的专家示教数据通常比较困难。
强化学习在机器人控制和参数优化领域的应用日益增多。在路径规划方面,RL被用于直接学习端到端的导航策略 [8],或者用于优化传统规划算法的参数。例如,有研究利用RL优化基于采样的路径规划算法(如RRT*)的采样策略 [9]。也有研究利用RL优化人工势场法(Artificial Potential Field, APF)的参数 [10]。
将RL应用于DWA参数优化的研究相对较少。一些初步的探索尝试利用RL学习DWA的整体策略,但将DWA的参数作为RL的动作空间进行学习的研究目前并不多见。本文提出的方法直接针对DWA内部的关键参数进行学习,旨在利用DQN处理离散动作空间的优势,实现对DWA权重参数的有效优化。
3. 利用DQN学习DWA参数权重的方法
本文提出的方法将DWA算法的参数权重作为DQN智能体的动作空间,通过智能体与环境的交互来学习最优的权重组合。整个框架如图1所示。
[插入图1:系统框架图,包含机器人、环境、DWA模块、DQN智能体、状态提取、奖励计算等模块的流程图]
图1:基于DQN的DWA参数学习系统框架图
系统主要包含以下组成部分:
- 环境 (Environment):
指机器人所处的仿真或实际物理环境。环境提供机器人当前的感知信息(如激光雷达数据、位置信息)和目标点信息。
- 机器人 (Robot):
执行DWA规划生成的速度指令,并在环境中移动。
- DWA模块 (DWA Module):
根据机器人当前的状态、环境信息以及DQN智能体提供的权重参数,计算并输出下一步的速度指令。
- 状态提取 (State Extraction):
从环境中提取用于DQN智能体决策的状态信息。
- 奖励计算 (Reward Calculation):
根据机器人执行DWA指令后的结果,计算DQN智能体的奖励。
- DQN智能体 (DQN Agent):
接收环境状态作为输入,通过神经网络输出一个动作(即DWA参数权重组合),并根据接收到的奖励更新其网络参数,学习最优策略。
下面将详细介绍各个部分的具体设计。
3.1 状态空间设计 (State Space Design)
DQN智能体的输入是环境的状态。为了让智能体能够根据当前情况选择合适的DWA参数,状态空间应该包含能够反映机器人所处环境和规划任务相关信息。可能的状态信息包括:
- 机器人当前位置和姿态 (Robot current position and orientation):
反映机器人在环境中的绝对位置和朝向。
- 目标点位置 (Target point position):
指示机器人需要前往的目标位置。
- 与目标点的距离和方向 (Distance and direction to target point):
反映机器人距离目标点的远近以及朝向目标的相对方向。
- 最近障碍物的距离和方向 (Distance and direction to nearest obstacle):
反映机器人与障碍物的相对位置,用于避障决策。
- 局部地图信息 (Local map information):
例如,基于激光雷达扫描生成的局部栅格地图,提供更详细的环境信息。
- 机器人当前线速度和角速度 (Robot current linear and angular velocity):
反映机器人当前的运动状态。
- 规划进度信息 (Planning progress information):
例如,已完成路径的比例或与全局路径的偏差(如果存在全局路径)。
可以将这些信息进行编码或向量化处理,作为DQN网络的输入。为了提高状态信息的维度,可以考虑将连续的状态信息进行离散化,或者利用卷积神经网络(CNN)处理局部地图信息。例如,可以将激光雷达扫描数据转换为一维向量,或者将局部栅格地图作为二维图像输入CNN。
3.2 动作空间设计 (Action Space Design)
DQN算法适用于离散动作空间。因此,我们需要将DWA的参数权重离散化,构成DQN智能体的动作空间。DWA算法中主要的权重参数包括:
3.3 奖励函数设计 (Reward Function Design)
奖励函数是强化学习中至关重要的部分,它指导智能体学习最优策略。奖励函数的设计应该能够反映机器人规划的有效性和任务目标。对于DWA参数学习任务,奖励函数应该鼓励智能体选择能够实现以下目标的权重组合:
- 成功到达目标点 (Reaching the target point successfully):
机器人成功到达目标点时给予较大的正奖励。
- 避免与障碍物碰撞 (Avoiding collisions with obstacles):
机器人与障碍物发生碰撞时给予较大的负奖励。在规划过程中,也可以根据预测轨迹与障碍物的距离给予惩罚,距离越近惩罚越大。
- 规划效率 (Planning efficiency):
鼓励机器人尽快到达目标点,可以根据行驶时间或规划步数给予负奖励(惩罚)。
- 轨迹平滑度 (Path smoothness):
鼓励生成平滑的轨迹,可以根据角速度变化或轨迹曲率给予奖励或惩罚。
- 速度利用率 (Velocity utilization):
鼓励机器人在安全的前提下以较高的速度行驶,可以根据当前速度给予正奖励。
一个可能的奖励函数设计如下:
R=Rgoal+Rcollision+Rtime+Rsmooth+Rvelocity
需要对这些奖励项进行仔细的权重调整和归一化,以确保它们在总奖励中的相对重要性符合预期。
3.4 DQN算法实现 (DQN Algorithm Implementation)
3.5 训练过程 (Training Process)
训练可以在仿真环境中进行,以避免损坏实际机器人。仿真环境应该能够准确模拟机器人动力学、传感器数据以及障碍物和目标点的位置。训练过程如下:
- 定义任务场景:
设置不同的起点、目标点和障碍物布局。可以设计多种场景,以提高模型的泛化能力。
- 迭代训练:
进行多轮(episode)训练。每一轮从一个起始状态开始,直到机器人到达目标点、发生碰撞或达到最大规划步数。
- 探索与利用:
在训练初期,智能体更多地进行随机探索(较大的 ϵϵ 值),以发现不同的参数组合及其效果。随着训练的进行,逐渐减小 ϵϵ 值,更多地利用已学到的策略。
- 评估与调参:
在训练过程中,定期评估模型的性能,例如规划成功率、平均到达时间、碰撞次数等。根据评估结果调整DQN算法的超参数,如学习率、折扣因子、经验回放池大小、批量大小等。
4. 讨论与未来工作
本文提出的方法为DWA算法的参数优化提供了一种新的思路。通过利用DQN的自主学习能力,机器人能够在与环境的交互中找到更适合特定任务和环境的参数组合,从而提高DWA算法的性能和鲁棒性。然而,该方法也存在一些挑战和可以改进的地方。
4.1 挑战 (Challenges)
- 动作空间过大:
如果DWA包含多个权重参数,且每个参数的离散化粒度较细,动作空间会呈指数级增长,导致DQN训练困难。
- 奖励函数设计:
合理的奖励函数设计对于学习到有效的策略至关重要,需要仔细权衡各个目标。
- 训练效率:
DRL训练通常需要大量的环境交互,仿真环境的构建和训练速度是需要考虑的问题。
- 泛化能力:
在特定场景下训练的模型可能难以泛化到未见过的复杂环境。
4.2 未来工作 (Future Work)
- 改进动作空间设计:
探索更有效的动作空间表示方法,例如使用连续动作空间的DRL算法(如DDPG或SAC),直接学习权重参数的连续值。或者采用分层强化学习的方法,上层智能体决定大范围的权重调整,下层智能体进行微调。
- 多目标奖励函数优化:
研究多目标强化学习方法,更有效地平衡DWA算法中的不同评价项目标。
- 迁移学习:
研究如何将仿真环境中学习到的参数策略迁移到实际机器人上,克服仿真与现实之间的差异(Sim-to-Real gap)。
- 结合其他DRL算法:
探索使用其他DRL算法,如PPO或A2C,它们可能在训练稳定性和效率方面具有优势。
- 在线学习:
研究如何让机器人能够在实际任务执行过程中进行在线参数调整,以适应动态变化的环境。
- 可解释性:
分析学习到的参数权重,理解智能体在不同状态下做出决策的原因。
5. 结论
本文提出了一种基于深度Q学习(DQN)的DWA动态窗口方法参数权重学习方法。通过将DWA的权重参数作为DQN智能体的动作空间,智能体在与环境交互的过程中学习如何调整这些权重以最大化累积奖励。这种方法克服了传统人工调参的局限性,有望实现DWA参数的自适应优化,提高机器人在复杂环境中的局部路径规划性能。尽管存在动作空间设计和奖励函数设计等挑战,但本文提出的方法为DWA参数学习提供了一条有前景的途径,未来的研究可以进一步改进模型和训练策略,以实现更高效和鲁棒的机器人自主导航。
⛳️ 运行结果
🔗 参考文献
[1] 赵亮,李春轩,张玮奇,等.基于融合引-斥力与动态窗口法的机器人静动态局部路径规划方法优化[J].信息与控制, 2024, 53(2):226.DOI:10.13976/j.cnki.xk.2023.2578.
[2] 丰雪艳,李振璧.融合改进的A*算法和动态窗口法的机器人路径规划[J].兰州文理学院学报(自然科学版), 2024, 38(1):50-54.
📣 部分代码
🎈 部分理论引用网络文献,若有侵权联系博主删除
👇 关注我领取海量matlab电子书和数学建模资料
🏆团队擅长辅导定制多种科研领域MATLAB仿真,助力科研梦:
🌈 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱调度、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化、CVRP问题、VRPPD问题、多中心VRP问题、多层网络的VRP问题、多中心多车型的VRP问题、 动态VRP问题、双层车辆路径规划(2E-VRP)、充电车辆路径规划(EVRP)、油电混合车辆路径规划、混合流水车间问题、 订单拆分调度问题、 公交车的调度排班优化问题、航班摆渡车辆调度问题、选址路径规划问题、港口调度、港口岸桥调度、停机位分配、机场航班调度、泄漏源定位
🌈 机器学习和深度学习时序、回归、分类、聚类和降维
2.1 bp时序、回归预测和分类
2.2 ENS声神经网络时序、回归预测和分类
2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类
2.4 CNN|TCN|GCN卷积神经网络系列时序、回归预测和分类
2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类
2.7 ELMAN递归神经网络时序、回归\预测和分类
2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类
2.9 RBF径向基神经网络时序、回归预测和分类
2.10 DBN深度置信网络时序、回归预测和分类
2.11 FNN模糊神经网络时序、回归预测
2.12 RF随机森林时序、回归预测和分类
2.13 BLS宽度学习时序、回归预测和分类
2.14 PNN脉冲神经网络分类
2.15 模糊小波神经网络预测和分类
2.16 时序、回归预测和分类
2.17 时序、回归预测预测和分类
2.18 XGBOOST集成学习时序、回归预测预测和分类
2.19 Transform各类组合时序、回归预测预测和分类
方向涵盖风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、用电量预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
🌈图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
🌈 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、 充电车辆路径规划(EVRP)、 双层车辆路径规划(2E-VRP)、 油电混合车辆路径规划、 船舶航迹规划、 全路径规划规划、 仓储巡逻
🌈 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化、车辆协同无人机路径规划
🌈 通信方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化、水声通信、通信上传下载分配
🌈 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化、心电信号、DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测
🌈电力系统方面
微电网优化、无功优化、配电网重构、储能配置、有序充电、MPPT优化、家庭用电
🌈 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长 金属腐蚀
🌈 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合、SOC估计、阵列优化、NLOS识别
🌈 车间调度
零等待流水车间调度问题NWFSP 、 置换流水车间调度问题PFSP、 混合流水车间调度问题HFSP 、零空闲流水车间调度问题NIFSP、分布式置换流水车间调度问题 DPFSP、阻塞流水车间调度问题BFSP
👇