大数据深度学习|计算机毕设项目|计算机毕设答辩|基于深度强化学习的移动机器人动态避障方法设计

标题:基于深度强化学习的移动机器人动态避障方法设计
文档介绍:
1.1课题研究背景与意义
随着人工智能与机器人技术的快速发展,移动机器人已广泛应用于工业物流、室内服务、设备巡检、医疗辅助等多个领域,成为智能制造与智慧服务体系中的核心装备。动态未知环境下的自主避障能力,是移动机器人实现自主导航的核心基础,直接决定机器人能否稳定、安全地完成既定作业任务,对移动机器人在复杂实际场景中的落地应用具有重要的工程价值。
在工业 4.0 与智能制造的发展背景下,移动机器人的作业场景不再局限于结构化的静态环境,更多需要面对包含行人、移动设备等动态障碍物的未知场景。传统移动机器人避障方法以 A * 算法、动态窗口法(DWA)、人工势场法为核心,这类方法虽在静态已知环境中能实现稳定的路径规划与避障,但在动态未知场景中存在明显局限。传统全局避障方法高度依赖预先构建的环境地图,无法应对突发的动态障碍物变化;局部避障方法仅能实现短距离内的障碍规避,易陷入局部最优解,且避障规则需要人工反复调试,对复杂动态场景的适应性与鲁棒性不足。
深度强化学习技术的发展,为移动机器人动态避障问题提供了新的解决思路。该技术通过智能体与环境的持续交互自主学习最优决策策略,无需人工设计复杂的避障规则,也无需依赖精确的环境先验地图,在动态未知场景中展现出显著的应用优势。其中深度 Q 网络(DQN)作为深度强化学习的经典基础算法,网络结构清晰、实现逻辑简单,是本科阶段学习深度强化学习工程落地的核心切入点。但在实际教学与毕业设计应用中,DQN 算法从理论公式到工程落地仍存在明显缺口,现有研究成果大多聚焦算法性能优化,缺少一套完整的、低门槛的训练 - 评估 - 可视化闭环系统,本科生难以完成从理论学习到可演示系统的完整落地,也缺少适配答辩演示的直观可视化载体。
该课题的研究具有明确的理论与工程应用意义。在理论层面,该研究完成了 DQN 算法从理论到移动机器人动态避障场景的完整落地,验证了基础 DQN 算法在动态避障任务中的有效性,梳理了算法实现与场景适配的完整逻辑,可为本科阶段深度强化学习与机器人技术的结合研究提供基础参考。在工程应用层面,该研究搭建了一套低门槛、全流程的 DQN 动态避障系统,无需专业 GPU 设备即可在普通家用计算机上流畅运行,同时配套完整的可视化演示功能,可直接应用于本科深度强化学习课程教学实验、移动机器人避障算法快速验证,以及毕业设计的成果答辩演示,具备较强的实际应用价值。
1.2 国内外研究现状
1.2.1 移动机器人避障技术研究现状
移动机器人避障技术的研究起步于 20 世纪 60 年代,经过数十年的发展,已形成以传统路径规划方法为核心的成熟技术体系,主要分为全局路径规划与局部避障两大类别。
在全局路径规划方向,经典的 Dijkstra 算法由荷兰学者 Dijkstra 于 1959 年提出,该算法通过分层探索的方式求解图中两点间的最短路径,是后续全局路径规划算法的理论基础,但该算法无启发式引导,在大规模地图中搜索效率较低。1968 年,Hart 等人在 Dijkstra 算法的基础上提出 A算法,通过引入启发式函数预估节点到目标点的代价,引导搜索方向向目标点靠拢,大幅提升了路径搜索效率,成为目前应用最广泛的全局路径规划算法。后续研究人员针对 A算法展开多方向优化,Sturtevant 等人提出的分层 A * 算法减少了无效搜索范围,Harabor 等人提出的跳跃点搜索算法跳过大量无关节点,进一步提升了算法的运行效率。但这类全局规划算法始终依赖已知的静态环境地图,无法适配动态障碍物频繁变化的未知场景。
在局部避障方向,Khatib 于 1986 年提出人工势场法,通过构建虚拟引力场与斥力场引导机器人运动,该算法响应速度快、计算复杂度低,能规划出平滑的运动路径,但存在易陷入局部最优解、目标点附近有障碍物时无法正常抵达的缺陷。1997 年,Fox 等人提出动态窗口法(DWA),该算法结合机器人的运动学约束,在速度空间中构建动态窗口,通过预测不同速度下的运动轨迹,结合评价函数筛选最优避障轨迹,具备良好的实时性与动态适应性,成为目前移动机器人局部避障的主流算法。但 DWA 算法仅考虑当前动态窗口内的局部最优轨迹,在密集障碍物环境中易出现绕圈、停滞的问题,无法保证路径的全局最优性。
国内学者也针对移动机器人避障技术展开大量应用研究,程传奇等人提出融合改进 A算法与动态窗口法的全局动态路径规划方法,王红卫等人针对 A算法的路径平滑问题展开优化,赵晓等人通过改进启发式函数提升了 A * 算法的搜索效率,相关研究成果已广泛应用于商用移动机器人产品中。但传统避障方法的核心局限始终未得到突破,在无先验地图的动态未知场景中,算法的场景适应性与避障稳定性仍有明显不足。
1.2.2 深度强化学习在机器人避障中的应用现状
深度强化学习技术的兴起,为移动机器人动态避障问题提供了全新的解决范式。2013 年,DeepMind 团队首次提出深度 Q 网络算法,将深度神经网络与 Q-learning 算法结合,实现了从高维观测数据到动作决策的端到端映射,在 Atari 游戏中实现了超越人类水平的表现。2015 年,DeepMind 团队在《Nature》发表论文,完善了 DQN 算法的经验回放与目标网络机制,解决了神经网络拟合价值函数时的训练不稳定问题,为深度强化学习在机器人控制领域的应用奠定了基础。
在 DQN 算法的基础上,国内外学者陆续提出 Double DQN、Dueling DQN 等改进算法,进一步提升了算法的训练稳定性与决策性能,并将其应用于移动机器人避障领域。国外研究中,Tai 等人将 DQN 算法与激光雷达数据结合,实现了移动机器人在未知环境中的端到端避障;Zhang 等人通过改进 DQN 的奖励函数设计,提升了机器人在动态障碍物环境中的避障成功率。国内研究中,王健等人提出基于深度强化学习的移动机器人动态避障方法,验证了 DQN 算法在动态避障场景中的有效性;众多高校研究团队也针对 DQN 在机器人避障中的场景适配、奖励函数设计、网络结构优化等方向展开研究,相关成果验证了深度强化学习在动态避障场景中的显著优势。
但现有相关研究大多聚焦于算法性能的优化与提升,研究对象多为复杂的改进型 DQN 算法,且大多仅完成算法的仿真验证,缺少完整的工程化落地与可视化演示系统。现有成果的代码复现门槛较高,需要研究者具备扎实的深度学习与机器人学基础,难以适配本科阶段的教学与毕业设计需求。同时,现有研究成果大多缺少直观的可视化演示载体,无法清晰展示算法的训练过程与避障决策逻辑,不便于毕业设计的成果答辩与课堂教学演示。基于此,该研究聚焦基础 DQN 算法的完整工程落地,搭建一套低门槛、全流程、可演示的移动机器人动态避障系统,填补现有研究在本科教学与毕设应用场景中的缺口。
1.3 研究目标与主要工作
1.3.1 研究目标
该研究以基础 DQN 算法为核心,围绕移动机器人动态避障场景,完成算法从理论到工程化的完整落地,最终实现两大核心目标。第一,算法层面,从零实现 DQN 算法的全流程模块,完成适配 DQN 算法的移动机器人动态避障仿真环境设计,验证 DQN 算法在动态未知环境中的避障性能,解决传统避障方法在动态场景中适应性不足的问题。第二,系统层面,搭建一套前后端分离的可视化系统,实现 DQN 算法训练、多场景评估、参数对比分析、避障过程动画演示的全流程闭环,解决深度强化学习算法落地过程中缺少可视化演示载体、复现门槛高的问题,最终形成一套可直接用于本科教学、算法验证与毕设答辩的完整系统。
1.3.2 主要工作
该研究完成的主要工作包括以下几个方面:
(1)完成 DQN 算法的全流程从零实现。基于 PyTorch 框架完成 DQN 核心网络的模块化设计,实现经验回放池、ε-greedy 探索策略、目标网络同步、损失计算与参数更新等核心模块,搭建完整的 DQN 训练器与推理器,并通过 CartPole-v1 倒立摆标准环境完成算法的收敛性与稳定性验证。
(2)完成移动机器人动态避障仿真环境的自主设计。针对 DQN 算法的离散动作特性,设计包含 5 个基础动作的离散动作空间,完成机器人、动态障碍物、目标点的环境实体建模,实现 16 线束激光雷达的感知仿真与环境状态编码,设计多维度复合奖励函数引导机器人学习避障策略,同时完成随机场景生成器的开发,提升模型的泛化能力。
(3)完成多组对照实验与结果分析。设计完整的实验方案,完成动态避障多场景评估实验,验证算法的避障性能;通过控制变量法完成 5 组核心超参数的对比实验,分析超参数对训练效果的影响规律;完成两组消融实验,验证目标网络机制与多维度奖励函数设计的必要性,为算法优化提供依据。
(4)完成动态避障系统的前后端工程开发。基于 FastAPI 框架开发后端服务,封装算法训练、评估、结果读取的核心接口,通过 Pydantic 实现前后端数据契约的统一;基于 Vue3 框架开发前端可视化平台,设计实验总览、倒立摆验证、参数分析、动态避障、避障演示 5 个核心页面,实现训练曲线、评估指标、避障轨迹动画的直观可视化展示。
(5)完成系统的性能测试与优化。在普通家用 CPU 环境中完成系统的全流程性能测试,优化训练与推理效率,保证系统的训练耗时、接口响应速度、动画播放流畅度均达到实际使用要求,最终实现系统的零硬件门槛运行。
1.4 论文结构安排
该论文围绕基于 DQN 的移动机器人动态避障方法设计与系统实现展开,全文共分为六个章节,各章节的核心内容与逻辑关系如下:
第一章为绪论,核心阐述课题的研究背景与意义,梳理移动机器人避障技术与深度强化学习应用的国内外研究现状,明确课题的研究目标与主要完成的工作,同时介绍论文的整体结构安排,对应核心主线中的 “为什么做”,明确课题的研究价值与核心方向。
第二章为相关技术理论与开发环境,核心介绍 DQN 算法的基础理论、课题使用的软硬件开发与运行环境,以及实验过程中使用的量化评价指标,对应核心主线中的 “用什么做”,为后续的算法设计与系统实现奠定理论与环境基础。
第三章为 DQN 算法与动态避障环境设计实现,核心阐述 DQN 算法的整体设计与代码实现逻辑,详细介绍自主设计的移动机器人动态避障仿真环境、多维度奖励函数,以及模型训练与推理的完整流程,对应核心主线中的 “怎么做”,是课题的核心算法创新与实现章节。
第四章为实验设计与结果分析,核心介绍课题的整体实验方案,展示倒立摆算法验证、动态避障性能测试、超参数对比与消融实验的具体结果,通过量化数据与可视化结果验证算法的有效性,对应核心主线中的 “做出来的效果怎么样”,是课题的成果验证章节。
第五章为动态避障系统前后端工程实现,核心介绍系统的整体架构设计,详细阐述后端服务与前端可视化平台的具体实现逻辑,说明系统的核心功能与运行方式,对应核心主线中的 “系统怎么实现”,是课题的工程落地成果章节。
第六章为总结与展望,对全文的研究工作与核心成果进行系统性总结,客观分析当前研究存在的不足,并结合技术发展趋势与实际应用需求,对后续的研究方向与优化内容进行展望。
第2章 相关技术理论与开发运行环境
本章围绕课题的核心研究内容,系统介绍深度强化学习的基础理论与 DQN 算法核心机制,明确课题开发所用的软硬件环境,同时制定统一的实验量化评价指标,为后续的算法设计、环境搭建、实验验证提供理论基础与环境支撑。
2.1 深度强化学习核心理论
2.1.1 强化学习基础概念
强化学习是一类通过智能体与环境的持续交互实现自主决策的机器学习方法,其核心逻辑是智能体在环境中通过不断试错,学习从环境状态到动作的最优映射策略,最终实现长期累积奖励的最大化。该方法无需预先标注的训练数据,仅通过环境反馈的奖励信号调整决策策略,适配移动机器人动态避障这类无固定规则、环境实时变化的决策场景。
强化学习的核心框架由六大基础要素构成,各要素的定义与在课题中的具体应用如下:
(1)智能体(Agent):智能体是强化学习中的决策主体,负责接收环境的状态信息、输出决策动作。在该课题中,倒立摆任务的智能体为小车摆杆系统的平衡控制器,动态避障任务的智能体为移动机器人,两类智能体的核心任务均是根据环境观测输出最优动作。
(2)环境(Environment):环境是智能体所处的外部系统,会根据智能体输出的动作完成状态更新,并向智能体反馈对应的奖励信号。在倒立摆任务中,环境为 Gymnasium 构建的 CartPole-v1 小车摆杆物理系统;在动态避障任务中,环境为自主设计的、包含机器人、动态障碍物与目标点的二维仿真场景。
(3)状态(State):状态是环境在某一时刻的特征快照,是智能体做出决策的核心依据。在倒立摆任务中,单时刻状态由小车位置、小车速度、摆杆角度、摆杆角速度 4 个数值构成;在动态避障任务中,单时刻状态由机器人位姿、目标相对位置、16 线束激光雷达观测数据共同构成。
(4)动作(Action):动作是智能体基于当前状态做出的决策选择,该课题的两个任务均采用离散动作空间设计。倒立摆任务的动作空间包含 2 个离散动作,分别为向左推动小车、向右推动小车;动态避障任务的动作空间包含 5 个离散动作,分别为直行、原地左转、原地右转、前进左转、前进右转。
(5)奖励(Reward):奖励是环境对智能体单步动作的反馈信号,以数值形式表征动作的优劣,正奖励代表动作符合预期目标,负奖励代表动作不符合预期。倒立摆任务中,摆杆保持平衡时每一步获得正奖励,摆杆倾倒时获得大额负奖励;动态避障任务中,机器人到达目标点获得大额正奖励,与障碍物发生碰撞获得大额负奖励,同时设置多维度辅助奖惩项引导机器人的运动行为。
(6)马尔可夫决策过程(MDP):马尔可夫决策过程是强化学习的基础数学模型,其核心假设为 “未来只取决于现在,不取决于过去”,即智能体仅需根据当前时刻的环境状态即可做出最优决策,无需依赖历史所有状态信息。该课题的倒立摆控制与动态避障任务,均满足马尔可夫决策过程的基本假设,可通过强化学习方法实现最优策略的学习。
2.1.2 DQN核心机制
深度Q网络(Deep Q-Network,DQN)是深度强化学习领域的经典基础算法,其核心目标是通过深度神经网络拟合状态 - 动作价值函数(Q 函数),学习环境状态到各动作长期累积奖励的映射关系,最终实现给定状态下最优动作的输出。传统 Q-learning 算法采用 Q 表格存储状态 - 动作价值,仅能处理低维离散状态的简单场景,DQN 通过深度神经网络替代 Q 表格,解决了高维连续状态下的维度灾难问题,适配移动机器人避障这类高维状态输入的决策场景。
该课题的代码实现完整覆盖了 DQN 算法稳定训练的三大核心机制,各机制的设计逻辑与代码实现细节如下:
1.经验回放(Experience Replay)
经验回放机制的核心作用是打破训练样本间的时间相关性,解决神经网络拟合 Q 函数时的训练不稳定问题。若仅采用连续交互的单条经验训练网络,连续样本间的状态与动作高度相似,会导致网络参数更新方向单一,训练过程出现震荡甚至不收敛的问题,与学习过程中仅反复练习同一道题无法掌握通用知识的逻辑一致。
经验回放机制的核心实现思路为:在内存中构建一块固定容量的经验回放池,智能体与环境交互产生的每一条经验元组,都会被存入回放池中;训练过程中,不再按时间顺序取用经验,而是从回放池中随机抽取一个批次的经验样本完成网络参数更新。这种随机采样的方式彻底打破了样本间的时间相关性,让网络每次更新都能接触到不同类型的样本,大幅提升训练的稳定性。
表2-1 经验回放机制的核心实现伪代码
| 经验回放机制的核心实现伪代码 |
| 初始化: 经验回放池 buffer = 空队列 最大容量 capacity = 30000 或 50000 热身步数阈值 warmup_size = 1000 或 2000 批次大小 batch_size = 64 智能体与环境单步交互后: 生成经验元组 (state, action, reward, next_state, done) 将经验元组存入buffer队列 若buffer长度超过capacity: 删除队列中最早的经验元组 网络训练阶段: 若buffer长度 > warmup_size: 从buffer中随机抽取batch_size条经验元组 抽取的经验批次用于网络参数更新 |
3.目标网络(Target Network)
目标网络机制的核心作用是稳定训练过程中的目标 Q 值,解决单网络训练时目标值持续波动导致的训练不稳定问题。若仅采用单个神经网络同时计算当前 Q 值与目标 Q 值,网络参数在每一步训练中都会更新,导致目标 Q 值持续发生变化,如同射击训练中靶子持续移动,难以完成精准的参数拟合。
目标网络机制的核心实现思路为:同时维护两套结构完全相同的神经网络,分别为在线网络与目标网络。其中在线网络负责实时动作决策与参数更新,目标网络仅负责计算目标 Q 值,其参数不随每一步训练实时更新,而是每隔固定步数,将在线网络的全部参数完全复制到目标网络中。这种设计让目标 Q 值在一定步数内保持固定,大幅提升网络训练的稳定性。
表2-2 目标网络机制的核心实现伪代码
| 目标网络机制的核心实现伪代码 |
| 初始化: 在线网络 online_net = 随机初始化参数 目标网络 target_net = 复制online_net的全部参数 更新间隔 target_update_interval = 100 或 150 全局步数计数器 step_count = 0 训练主循环中: 每完成一次环境交互,step_count加1 若step_count % target_update_interval == 0: target_net的全部参数 = online_net的全部参数 |
3.Bellman 最优方程
Bellman 最优方程是 DQN 算法的核心数学基础,其核心内涵为:当前状态下执行某一动作的最优价值,等于当前动作获得的即时奖励,加上折扣因子与下一状态最大动作价值的乘积。该方程搭建了即时奖励与未来长期奖励的关联,是 Q 函数拟合的核心依据。
Bellman 最优方程的基础形式为:
Q(s, a) = r + γ × max(Q(s', a'))
式中,Q (s,a) 代表在状态 s 下选择动作 a 的动作价值;r 代表当前步获得的即时奖励;γ 为折扣因子,取值范围在 0 到 1 之间,代表智能体对未来奖励的重视程度,该课题中 γ 固定设置为 0.99;s' 代表执行动作后的下一状态;max (Q (s',a')) 代表下一状态 s' 下所有动作对应的最大动作价值。
表2-3 基于 Bellman 方程的损失计算伪代码
| 目标网络机制的核心实现伪代码 |
| 损失计算流程: 输入:批次经验数据(state, action, reward, next_state, done) 当前Q值 = online_net(state).gather(1, action) 下一状态所有Q值 = target_net(next_state) 下一状态最大Q值 = 下一状态所有Q值.max(dim=1)[0].unsqueeze(1) 目标Q值 = reward + γ × 下一状态最大Q值 × (1 - done) 损失值 = SmoothL1Loss(当前Q值, 目标Q值) 输出:损失值 |
2.2 系统开发与运行环境
该课题的系统设计以低运行门槛、高可复现性为核心原则,全部功能均可在普通家用计算机上完成开发、训练与运行,无需专业服务器或高性能 GPU 设备。系统的硬件与软件环境具体配置如下:
2.2.1 硬件环境
系统的硬件环境分为训练环境与推理环境两类,具体配置要求与性能参考如下:
环境为DQN模型的训练提供算力支撑,无GPU强制依赖,普通家用笔记本即可完成全流程训练。推荐配置为 Intel Core i5 或 AMD Ryzen 5 及以上处理器,运行内存 8GB 及以上;最低配置为 Intel Core i3 或同等性能处理器,运行内存 4GB 及以上。若本地配备 NVIDIA GPU(显存4GB及以上),可通过CUDA加速模型训练过程,但该配置为非必需选项。
2.2.2 软件环境
系统的软件开发环境分为后端算法开发环境与前端可视化开发环境两部分,具体配置与依赖说明如下:
1.操作系统:系统的开发环境为 Windows 10/11 与 WSL2 Ubuntu 系统,最终运行环境兼容 Windows、Linux、macOS 三大主流操作系统,无操作系统版本强制限制。
2核心开发语言:后端算法与服务开发采用 Python 3.10 及以上版本,前端可视化页面开发采用 TypeScript 语言,适配 Vue 3 框架的开发规范。
3.后端核心依赖库:后端全部依赖库的版本要求与具体作用如表 2-1 所示,所有依赖均可通过 pip 工具一键安装,完全对应项目中 requirements.txt 文件的内容。
表2-4 后端核心依赖库说明
| 依赖库名称 | 版本要求 | 在课题中的具体作用 |
| fastapi | >=0.115.0, <1.0.0 | 构建后端 RESTful API 服务,为前端提供实验结果查询、轨迹数据获取等核心接口 |
| uvicorn | >=0.30.0, <1.0.0 | FastAPI 的 ASGI 服务器,用于后端服务的启动与运行 |
| torch | >=2.2.0, <3.0.0 | 核心深度学习框架,用于 DQN 神经网络的搭建、训练、推理与参数更新 |
| numpy | >=1.26.0, <3.0.0 | 完成环境状态数值计算、激光雷达传感器仿真、随机数生成等核心数值运算 |
| pandas | >=2.2.0, <3.0.0 | 完成训练日志处理、评估指标统计、实验数据整理与存储 |
| matplotlib | >=3.8.0, <4.0.0 | 完成训练奖励曲线、损失曲线、轨迹对比图、参数对比图的绘制与保存 |
| PyYAML | >=6.0.0, <7.0.0 | 读取与解析 YAML 格式的训练、评估、参数对比配置文件 |
| pydantic | >=2.7.0, <3.0.0 | 定义接口输入输出数据模型,实现前后端数据格式的统一与校验 |
| gymnasium | >=0.29.0, <1.0.0 | 构建 CartPole-v1 标准倒立摆环境,完成 DQN 算法的收敛性验证 |
4.前端开发环境:前端可视化平台基于 Vue 3 框架开发,采用 Vue Router 实现多页面路由管理,采用 Vite 作为前端开发服务器与构建工具,开发环境要求 Node.js 20 及以上版本,npm 10 及以上版本作为包管理器。
2.3 实验量化评价指标
为客观、统一地评估算法收敛性、避障性能与系统运行效果,该课题设计三类量化评价指标,分别对应算法收敛性验证、动态避障性能评估与系统工程性能评估,所有指标将在第四章实验结果分析中统一使用,保证实验结果的一致性与可比性。
2.3.1 算法验证指标
倒立摆任务的核心作用是验证 DQN 算法的收敛性与稳定性,采用两项核心评价指标:
1.平均评估奖励:指评估阶段连续多轮测试的回合奖励平均值,无单位。该指标数值越高,代表倒立摆保持平衡的时间越长,DQN 算法学习到的控制策略越稳定。
2.平均评估步数:指评估阶段连续多轮测试的单轮步数平均值,单位为步。由于倒立摆任务中,摆杆每保持一步平衡即可获得 1 点奖励,回合总奖励与回合步数数值完全相等,该指标与平均评估奖励共同表征算法的收敛效果。
2.3.2 动态避障性能指标
动态避障任务是课题的核心研究内容,采用五项核心评价指标,从成功率、安全性、高效性三个维度综合评估避障算法的性能:
1.成功率:指成功到达目标点的场景数量占总评估场景数量的比例,计算公式为:
成功率=成功到达目标的场景数/总评估场景数×100%
该指标数值越高,代表算法的避障与导航能力越强,理想值为100%。
2.碰撞率:指与障碍物发生碰撞的场景数量占总评估场景数量的比例,计算公式为:
碰撞率=发生碰撞的场景数/总评估场景数×100%
该指标数值越低,代表算法的避障安全性越强,理想值为 0%。
3.平均路径长度:指所有成功到达目标的场景中,机器人实际运动轨迹的长度平均值,单位为场景单位。该指标数值越短,代表算法规划的路径越高效。
4.平均回报:指所有评估场景的回合累积奖励平均值,无单位。该指标综合反映了机器人避障安全性、路径效率与目标到达能力,数值越高代表算法的综合性能越好。
5.超时率:指达到最大步数仍未到达目标点的场景数量占总评估场景数量的比例,计算公式为:
超时率=超时未到达的场景数/总评估场景数×100%
该指标与成功率、碰撞率共同表征算法的任务完成能力,理想值为0%。
2.3.3 系统性能指标
系统性能指标用于评估课题开发的前后端系统的工程实用性,采用三项核心评价指标:
1.训练耗时:指完成指定轮数模型训练所需的总时间,单位为分钟。该指标反映算法的训练效率与系统的算力适配能力。
2.推理耗时:指加载训练完成的模型,并完成单场景完整推理与轨迹生成所需的时间,单位为秒。该指标反映系统的实时响应能力。
3.API 平均响应时间:指前端向后端接口发起请求,到接收到完整响应数据的平均耗时,单位为毫秒。该指标反映前后端交互的流畅度与系统的可用性。
表3-2 不同任务的网络超参数配置
| 任务类型 | 隐藏层维度 | 输入状态维度 | 输出动作维度 |
| 倒立摆任务 | 128 | 4 | 2 |
| 动态避障任务 | 256 | 20 | 5 |
3.1.3 核心功能模块实现
DQN 算法的核心功能模块均为从零自主实现,无第三方算法库的直接调用,各模块的设计逻辑与代码实现细节如下:
1.经验回放池模块:该模块核心设计目的是打破训练样本间的时间相关性,解决神经网络拟合 Q 函数时的训练震荡问题。模块采用先进先出的循环缓冲区结构构建固定容量的经验回放池,当缓冲区存储的经验数量达到容量上限时,自动覆盖最早存入的经验数据;训练过程中从缓冲区随机抽取批次经验完成网络更新,彻底打破连续样本的时间相关性。
经验回放池的核心操作包含三类:add () 函数完成单条经验的存入,sample () 函数完成批次经验的随机采样,len() 函数返回当前缓冲区中的经验总数量。单条经验数据采用五元组结构存储,格式为 (state, action, reward, next_state, done),分别对应当前环境状态、执行动作、即时奖励、下一时刻环境状态、回合终止标志。
2.ε-greedy 探索策略模块:该模块核心设计目的是平衡训练过程中的探索与利用关系,避免智能体陷入局部最优策略。模块的核心逻辑为:训练初期以较高的概率随机选择动作,完成环境的充分探索;随着训练轮次的增加,逐步降低随机探索的概率,后期主要利用已学习到的最优策略选择动作,保证策略的优化方向。
策略的核心参数配置为:初始探索率 epsilon_start 设为 1.0,最终探索率 epsilon_end 设为 0.05,探索率衰减系数 epsilon_decay 设为 0.995。每轮训练结束后调用 step () 方法完成探索率更新,更新公式为:epsilon = max (epsilon_end, epsilon * epsilon_decay),保证探索率不会低于设定的最小值。
3.目标网络同步机制:该机制核心设计目的是稳定训练过程中的目标 Q 值,解决单网络训练时目标值持续波动导致的训练不稳定问题。模块采用硬更新策略,即每隔固定训练步数,将在线网络的全部参数完全复制到目标网络中,而非加权平均的软更新方式,该方式实现逻辑简单、训练过程稳定,适配本科阶段的算法调试需求。
目标网络的参数同步间隔针对不同任务进行了适配:倒立摆任务每 100 步完成一次参数同步,动态避障任务每 150 步完成一次参数同步,在目标值稳定性与参数时效性之间实现平衡。
4.损失函数计算模块:该模块核心设计目的是构建网络参数的优化目标,让在线网络输出的 Q 值无限逼近 Bellman 方程计算的目标 Q 值。模块采用 Smooth L1 损失(Huber 损失)作为损失函数,相比传统的均方误差损失,该函数对异常值更具鲁棒性,可有效避免训练过程中的梯度爆炸问题。
损失计算的完整流程为:首先从在线网络获取当前状态对应动作的 Q 值,再从目标网络获取下一状态所有动作的 Q 值并计算最大值;基于 Bellman 最优方程计算目标 Q 值,公式为 target = reward + gamma * max (next_q) * (1 - done);最终计算当前 Q 值与目标 Q 值之间的 Smooth L1 损失,作为网络参数更新的优化目标。同时,训练过程中加入梯度裁剪操作,设置梯度最大范数为 1.0,进一步避免梯度爆炸问题,提升训练稳定性。
3.2 移动机器人动态避障环境设计
动态避障环境的核心设计思路为:适配 DQN 算法的离散动作特性,将连续的机器人避障问题建模为离散动作决策问题,同时模拟真实机器人的感知逻辑,让智能体仅能通过自身传感器观测数据完成决策,无法直接获取环境全局真值信息,保证训练完成的策略具备向真实机器人迁移的潜力。
环境整体采用二维平面仿真设计,完整实现了机器人运动学建模、动态障碍物仿真、激光雷达感知、状态编码、奖励计算等核心功能,所有代码均为自主从零实现,无第三方仿真环境的直接调用。
3.2.2 离散动作空间设计
为适配 DQN 算法的离散输出特性,该课题设计了5个离散动作构成的动作空间,动作设计覆盖机器人的基础机动行为与复合避障动作,动作数量适中,既保证了机器人的运动表达能力,又避免了动作空间过大导致的训练难度提升问题。动作空间的完整设计如表3-2所示:
表3-3 离散动作空间设计
| 动作编号 | 动作名称 | 线速度(m/s) | 转向速率(rad/s) | 动作说明 |
| 0 | 直行 | +0.45 | 0.0 | 保持当前朝向,向前直线移动 |
| 1 | 原地左转 | 0.0 | +0.55 | 保持位置不变,原地向左转动 |
| 2 | 原地右转 | 0.0 | -0.55 | 保持位置不变,原地向右转动 |
| 3 | 前进左转 | +0.45 | +0.55 | 向前移动的同时向左转向 |
| 4 | 前进右转 | +0.45 | -0.55 | 向前移动的同时向右转向 |
3.2.3 环境核心实体建模
环境内的核心实体分为机器人、目标点、动态障碍物三类,所有实体的物理参数与运动学建模均为自主设计,各类实体的建模细节如下:
1.机器人实体:机器人采用差分运动学模型建模,核心状态参数包含二维平面位置 (x, y)、朝向角 θ、线速度 v,同时设置机器人碰撞半径为 0.45m,当机器人与障碍物的距离小于该值时,判定为发生碰撞。机器人的运动学更新完全遵循差分轮式机器人的运动规律,保证仿真环境与真实机器人的运动特性一致。
2.目标点实体:目标点为环境内的固定位置点,核心参数包含二维平面位置 (x, y),同时设置到达容差为0.5m,当机器人与目标点的直线距离小于该值时,判定为成功到达目标点,回合正常终止。
3.动态障碍物实体:动态障碍物采用圆形刚体建模,核心参数包含二维平面位置 (x, y)、二维速度向量 (vx, vy)、碰撞半径 0.35m。障碍物的运动策略包含随机游走、直线往返、预设固定轨迹三类,训练过程中随机选择障碍物的运动策略,丰富训练场景的多样性,提升模型的泛化能力。
| 单步更新的完整执行步骤 |
| 步骤一: 接收智能体输出的离散动作编号,根据动作空间设计转换为对应的线速度与转向速率; 步骤二: 基于机器人运动学模型,根据速度参数完成机器人位姿的单步更新; 步骤三: 按照预设的运动策略,完成所有动态障碍物的位置与速度更新; 步骤四: 基于更新后的机器人与障碍物位置,完成激光雷达的射线碰撞检测,计算得到最新的雷达观测数据; 步骤五: 判断当前回合是否满足终止条件,终止条件包含机器人碰撞障碍物、机器人超出场景边界、机器人成功到达目标点、达到单回合最大步数四类; 步骤六: 基于当前机器人状态、障碍物状态与终止条件,计算单步即时奖励; 步骤七: 对环境状态进行编码,生成下一时刻的状态向量,最终向智能体输出状态向量、即时奖励、终止标志与辅助信息。 |
3.2.5 激光雷达感知仿真与状态编码
激光雷达感知仿真是模拟真实单线激光雷达的工作原理,在机器人周围发射多束探测射线,计算每束射线与最近障碍物的交点距离,形成一维雷达观测向量,作为智能体感知环境的核心依据。
激光雷达的核心配置参数如下:射线数量为 16 束,最大探测距离为 4.5m,扫描角度范围为机器人前方270°,探测距离通过除以最大探测距离完成归一化处理,最终输出 16 维的归一化雷达观测向量,数值范围为[0,1]。
环境状态编码是将机器人自身状态、目标相对位置、雷达观测数据整合为统一的一维状态向量,作为 DQN 网络的输入。状态编码包含的具体信息如下:机器人归一化位置、目标相对机器人的方向角、机器人当前朝向、机器人当前线速度、16 维归一化激光雷达观测数据,最终生成的状态向量维度为20维。
3.3 多维度奖励函数设计
奖励函数是强化学习智能体的核心引导信号,直接决定了智能体能否学习到符合预期的避障策略,是本课题的核心创新点之一。本课题设计了多维度复合奖励函数,解决了简单奖励函数存在的学习效率低、策略不可控等问题。
3.3.1 简单奖励函数的局限性
若仅采用简单的二元奖励函数,即机器人到达目标点时给予大额正奖励,与障碍物发生碰撞时给予大额负奖励,其余情况奖励值为0,会存在三大核心问题:
1.奖励稀疏问题:智能体在绝大多数交互步骤中获得的奖励值均为 0,无法获得持续的引导信号,只能通过随机试错找到正奖励样本,学习效率极低,甚至出现无法收敛的情况;
2.行为引导缺失问题:简单奖励函数仅能定义 “最终结果的对错”,无法告诉智能体 “怎样做能更好地完成任务”,智能体可能会学习到原地徘徊、频繁转向等不符合预期的投机策略,无法形成安全高效的避障行为;
3.多目标平衡能力不足问题:移动机器人避障需要同时满足安全、高效、平滑等多个目标,简单奖励函数无法对多个目标进行精细化的权重平衡,难以让智能体学习到综合性能最优的避障策略。
基于以上问题,该课题设计了多维度的复合奖励函数,通过精细化的奖惩项设计,对机器人的每一步行为进行正向引导与负向约束,让智能体逐步学习到 “安全优先、兼顾高效” 的避障策略。
3.3.2 多维度奖惩项设计
多维度奖励函数由终止型奖惩项、行为引导型奖惩项、行为约束型奖惩项三大类构成,共包含 11 个细分奖惩项,各奖惩项的取值、设计目的与计算逻辑如表 3-3 所示。
表3-5 多维度奖励函数设计明细
| 奖惩项类型 | 奖惩项名称 | 固定取值 | 设计核心目的 | 计算逻辑 |
| 终止型奖惩项 | 到达目标奖励 | +60.0 | 激励机器人成功抵达目标点 | 当机器人与目标点距离小于 0.5m 时,一次性给予该奖励,回合正常终止 |
| 终止型奖惩项 | 碰撞惩罚 | -35.0 | 严厉惩罚碰撞行为,建立安全红线 | 当机器人与障碍物距离小于碰撞半径 0.45m 时,一次性给予该惩罚,回合异常终止 |
| 终止型奖惩项 | 超时惩罚 | -18.0 | 惩罚长时间未抵达目标的无效行为 | 当回合步数达到最大步数仍未抵达目标时,一次性给予该惩罚,回合终止 |
| 终止型奖惩项 | 越界惩罚 | -28.0 | 惩罚机器人超出场景边界的行为 | 当机器人位置超出预设场景范围时,一次性给予该惩罚,回合异常终止 |
| 行为引导型奖惩项 | 向目标推进奖励 | 浮动值,±6.0× 进度系数 | 持续引导机器人向目标点靠近 | 对比当前步与上一步机器人到目标点的距离,距离减小则给予正奖励,距离增大则给予负奖励,奖励值与距离变化幅度成正比 |
| 行为约束型奖惩项 | 危险区域惩罚 | 浮动值,-2.5× 危险系数 | 让机器人主动远离障碍物,提升避障安全性 | 根据机器人与最近障碍物的距离计算危险系数,距离越近危险系数越高,惩罚值越大,障碍物距离超过雷达最大探测范围时惩罚值为 0 |
| 行为约束型奖惩项 | 每步惩罚 | -0.05 | 激励机器人尽快抵达目标,避免原地徘徊 | 每执行一步动作均给予固定小额负奖励,推动机器人选择最短路径完成任务 |
| 行为约束型奖惩项 | 转向惩罚 | -0.02 | 鼓励机器人平滑运动,避免频繁大幅度转向 | 当机器人选择转向类动作时,给予小额固定负奖励,直行动作无该惩罚 |
| 行为约束型奖惩项 | 停滞惩罚 | -0.08 | 惩罚机器人原地停滞的无效行为 | 当机器人连续 3 步线速度为 0 时,每步给予该惩罚,避免机器人陷入停滞状态 |
| 行为约束型奖惩项 | 边界接近惩罚 | 浮动值,-1.8× 接近系数 | 惩罚机器人靠近场景边界的行为 | 根据机器人与场景边界的距离计算接近系数,距离越近惩罚值越大,保证机器人在有效场景内运动 |
3.3.3 复合奖励值计算流程
复合奖励值的整体计算流程如图3-5所示,单步复合奖励值为所有生效奖惩项的数值之和,每一步环境更新均会完成一次完整的奖励计算。
图3-4 复合奖励值计算流程图
该多维度奖励函数通过分层设计,实现了对机器人避障行为的全维度引导与约束:大额终止型奖惩项为智能体建立了明确的行为边界,让智能体清晰知晓 “绝对正确” 与 “绝对错误” 的行为;向目标推进奖励为智能体提供了持续的正向引导,解决了奖励稀疏问题,大幅提升学习效率;各类行为约束型惩罚项则对机器人的运动行为进行精细化规范,让智能体在完成避障任务的同时,形成安全、平滑、高效的运动习惯。经过多轮调参优化的多维度奖励函数,是 DQN 算法能够成功学习到有效避障策略的核心关键。
3.4 模型训练与推理流程实现
课题对模型的训练与推理流程进行了解耦设计,训练流程负责智能体避障策略的学习与优化,推理流程负责训练完成后模型的策略执行与轨迹数据生成,二者相互独立,既保证了训练过程的稳定性,也为后续的实验验证与前端可视化提供了标准化的轨迹数据支撑。
3.4.1 DQN 训练器完整流程
DQN 训练器的完整实现完全对应 backend/rl/trainers/dqn_trainer.py 代码文件,是算法训练的核心载体,完整流程分为初始化阶段与训练主循环阶段两部分,具体执行逻辑如下:
1.初始化阶段
初始化阶段的核心作用是完成训练前的全部准备工作,保证训练过程的可复现性与稳定性,具体执行流程如下:
表3-6 初始化阶段基本流程
| 1. 读取YAML格式的训练配置文件,加载环境、网络、训练的超参数 2. 固定Python、NumPy、PyTorch的全局随机种子,保证实验结果可复现 3. 创建对应的强化学习环境(倒立摆环境/动态避障环境) 4. 初始化在线DQN网络与目标DQN网络,两个网络初始结构与参数完全一致 5. 调用hard_update函数,将在线网络的初始参数完全复制到目标网络 6. 初始化Adam优化器,设置对应的学习率与权重衰减参数 7. 初始化固定容量的经验回放池 8. 初始化ε-greedy探索策略,设置初始探索率与衰减参数 9. 初始化训练日志服务,创建训练结果、模型权重、日志文件的存储目录 |
2.训练主循环阶段
训练主循环以回合为基本单位,完成预设的总训练轮次,每轮回合完成环境的完整交互与网络参数更新,具体执行流程如下:
表3-6 单轮训练流程
| 1. 读取YAML格式的训练配置文件,加载环境、网络、训练的超参数 2. 固定Python、NumPy、PyTorch的全局随机种子,保证实验结果可复现 3. 创建对应的强化学习环境(倒立摆环境/动态避障环境) 4. 初始化在线DQN网络与目标DQN网络,两个网络初始结构与参数完全一致 5. 调用hard_update函数,将在线网络的初始参数完全复制到目标网络 6. 初始化Adam优化器,设置对应的学习率与权重衰减参数 7. 初始化固定容量的经验回放池 8. 初始化ε-greedy探索策略,设置初始探索率与衰减参数 9. 初始化训练日志服务,创建训练结果、模型权重、日志文件的存储目录 |
训练器采用统一的接口设计,仅需更换环境实例与对应的配置文件,即可同时支持倒立摆验证任务与动态避障任务,具备良好的代码复用性与可扩展性。
3.4.2 模型推理流程实现
推理过程与训练过程完全解耦,核心作用是加载训练完成的最佳模型,执行纯贪心策略的避障决策,同时记录完整的轨迹数据,为后续的多场景性能评估与前端动画演示提供数据支撑。
1.推理核心流程:推理过程中关闭所有随机探索,采用纯贪心策略,始终选择 Q 值最大的动作,同时关闭梯度计算,提升推理速度,完整执行流程如下:
表3-7 推理核心流程
| 推理核心流程 |
| 1.调用环境reset()函数完成环境重置,获取初始观测状态observation 2. 初始化回合内变量:回合总奖励total_reward=0.0、损失列表losses=空列表、回合终止标志done=False 3. 进入单回合内的步循环,最大循环次数为单回合最大步数max_steps_per_episode: a. 根据当前ε值,通过ε-greedy策略选择动作:生成随机数,若小于ε则随机选择动作,否则选择Q值最大的动作 b. 调用环境step()函数执行动作,获取下一时刻观测next_observation、即时奖励reward、终止标志done、辅助信息info c. 将经验元组(obs, action, reward, next_obs, done)存入经验回放池 d. 若经验回放池内的经验数量大于等于热身步数阈值warmup_size: i. 从回放池中随机抽取batch_size条经验,组成训练批次 ii. 通过在线网络计算当前状态对应动作的Q值 iii. 通过目标网络计算下一状态所有动作的Q值,并提取最大值 iv. 基于Bellman方程计算目标Q值 v. 计算当前Q值与目标Q值之间的Smooth L1损失 vi. 执行反向传播,计算梯度并执行梯度裁剪,最大梯度范数设为1.0 vii. 通过优化器更新在线网络的参数 viii. 若当前全局步数达到目标网络更新间隔,将在线网络参数完全同步到目标网络 e. 将即时奖励reward累加到回合总奖励total_reward f. 将当前观测状态更新为下一时刻观测next_observation g. 若终止标志done为True,跳出步循环 4. 调用ε-greedy策略的step()函数,完成探索率的衰减更新 5. 计算本轮训练的平均损失值(若有参数更新) 6. 将本轮的回合奖励、平均损失、探索率等数据写入训练日志 7. 若当前回合总奖励大于历史最佳奖励,保存当前在线网络的权重为最佳模型 8. 在控制台打印本轮训练的核心指标信息 |
2.轨迹数据结构设计:轨迹数据结构分为摘要信息与逐帧数据两部分,其中摘要信息用于多场景评估的指标统计与快速展示,逐帧数据用于单场景轨迹图绘制与前端动画逐帧播放。
3.4 本章小结
本章详细阐述了课题的核心开发工作,完整覆盖 DQN 算法的设计与实现、移动机器人动态避障仿真环境的自主设计、多维度奖励函数的构建、模型训练与推理流程的实现四大核心内容,所有设计与实现均 100% 对应项目代码,无第三方库的直接调用,突出了从零实现的核心开发工作。其中,MLP编码器+QHead两阶段模块化网络结构、适配 DQN 的 5 维离散动作空间、分层设计的多维度奖励函数、训练与推理解耦的流程设计,是本课题的核心创新点,为后续的实验验证与系统工程实现奠定了坚实的基础。
第4章 基于ROS的机器人仿真及实验
本章围绕课题核心研究内容,完成算法有效性的全流程实验验证,同时阐述可视化系统的工程实现逻辑。实验设计以可复现、可量化为核心原则,通过标准任务验证、多场景避障测试、参数对比与消融实验,完整验证自主实现的 DQN 算法与动态避障方法的性能;系统实现以低门槛、易演示为核心目标,完成模块化的功能开发,形成算法训练 - 评估 - 演示的完整闭环。
4.1 实验与系统实现整体方案设计
4.1.1 实验核心目的
本课题设置三大核心实验目的,形成完整的算法验证闭环,与课题研究目标一一对应:
1.验证自主实现的DQN算法的收敛性与稳定性。通过 CartPole-v1 标准倒立摆控制任务,验证从零开发的DQN算法核心模块的有效性,为动态避障任务提供可靠的算法基础。
2.验证动态避障方法的实际避障效果与泛化能力。通过多典型场景的测试,验证自主设计的动态避障环境、离散动作空间、多维度奖励函数的合理性,测试算法在不同复杂动态场景中的避障性能与稳定性。
3.分析核心超参数与关键模块对算法性能的影响。通过控制变量法开展参数对比实验,明确核心超参数对训练效果的影响规律;通过消融实验,验证课题核心设计模块的必要性,为算法优化提供数据支撑。
4.1.2 实验可复现性设计
为保证所有实验结果均可复现,课题采用三重标准化设计:
1.固定全流程随机种子。在配置文件中设置统一随机种子 seed=7,覆盖环境初始化、网络权重初始化、经验采样、障碍物随机生成等所有随机环节,确保每次实验的初始条件完全一致。
2.统一实验配置文件管理。所有训练、评估、参数对比的超参数均通过 YAML 文件统一存储,无硬编码参数,实验条件可通过配置文件一键复现。
3.标准化数据存储格式。训练日志、评估指标、轨迹数据、对比实验结果均采用标准化 JSON 格式存储,数据读取与分析逻辑统一,避免数据处理环节的结果偏差。
4.1.4 实验量化评价指标体系
实验所用量化评价指标与第二章设定的指标体系完全对应,分为三大类,确保实验结果的可量化、可对比:
1.算法验证指标(倒立摆任务):平均评估奖励、平均评估步数、训练最佳奖励、收敛所需训练轮次;
2.动态避障性能指标:避障成功率、碰撞率、超时率、平均路径长度、平均回合回报;
3.系统性能指标:模型训练耗时、单场景推理耗时、API 平均响应时间、页面加载速度、动画播放帧率。
4.1.5 系统整体架构与运行数据流
系统采用三层模块化架构设计,各模块职责清晰、相互解耦,整体架构如图4-1所示。
图4‑1 系统整体分层架构图
各模块核心职责:
1.算法核心模块:负责 DQN 算法的网络定义、训练、推理等核心逻辑
2.数据管理模块:负责配置管理、数据存储、结果服务等
3.可视化展示模块:负责后端 API 服务和前端页面展示
系统完整运行数据流如图4-2所示,从训练执行到可视化展示形成完整的数据闭环,各环节数据流转清晰、无冗余处理。
图4-2 系统完整运行数据流图
4.2 DQN算法收敛性验证实验
4.2.1 实验目的
本实验的核心目的是验证从零自主实现的 DQN 算法的有效性、收敛性与稳定性。倒立摆作为强化学习的标准测试任务,场景简单、目标明确,可有效验证DQN算法核心模块的合理性,为后续动态避障任务的算法应用提供坚实的基础支撑。
4.2.2 实验配置
实验采用Gymnasium官方标准 CartPole-v1 环境,算法超参数完全对应项目pendulum_train.yaml配置文件,核心参数配置如表4-1所示。
表4-1 倒立摆任务训练超参数配置
| 参数名称 | 参数值 | 参数说明 |
| 训练总轮数 | 400 | 完整训练的回合总数 |
| 单轮最大步数 | 500 | 单回合的最大交互步数 |
| 折扣因子 gamma | 0.99 | 未来奖励的折现系数 |
| 学习率 | 0.001 | Adam 优化器的学习率 |
| 批次大小 batch_size | 64 | 单次训练的样本数量 |
| 经验回放池容量 | 30000 | 经验回放池的最大存储容量 |
| 热身步数 | 1000 | 启动训练前需收集的最小经验数量 |
| 目标网络更新间隔 | 100 | 目标网络参数同步的步数间隔 |
| 探索率衰减系数 | 0.995 | 每轮训练后探索率的衰减系数 |
| 网络隐藏层大小 | 128 | MLP 编码器的隐藏层神经元数量 |
4.2.3 实验结果
实验完成 400 轮训练后,通过 10 轮连续无探索的评估测试,得到量化实验结果如表4-2所示。
表4-2 倒立摆任务实验量化结果
| 指标名称 | 数值 |
| 平均评估奖励 | 379.45 |
| 平均评估步数 | 379.45 |
| 训练最佳回合奖励 | 500.00(任务满分) |
| 收敛所需训练轮次 | 约 200 轮 |
| 400 轮训练总耗时 | 12 分钟(家用 CPU 环境) |
实验可视化结果包含三类核心曲线,如下图:
图4-3 倒立摆训练奖励曲线
从奖励曲线可以看出:训练初期奖励波动较大,随着训练轮数增加,奖励逐步上升,最终趋于稳定,约 200 轮左右开始收敛,后期奖励稳定在较高水平。
图4-4 倒立摆回合长度曲线
从回合长度曲线可以看出:训练初期回合长度较短(摆杆很快倒下),随着训练进行,回合长度逐步增加,最终稳定在 500 步满分,说明模型已学会稳定的平衡控制策略。
图 4-5 倒立摆收敛曲线
4.2.4 实验结果分析
结合量化数据与曲线变化趋势,可得到以下实验结论:
1.算法有效性得到充分验证。训练完成后,模型平均评估奖励达到 379.45,训练过程中最佳回合奖励达到任务满分 500.00,说明自主实现的 DQN 算法能够有效学习到倒立摆的平衡控制策略,算法核心逻辑完全正确。
2.算法具备良好的收敛性。从奖励曲线与回合长度曲线可以看出,训练初期模型奖励与回合长度波动较大,随着训练轮次增加,两项指标均持续上升,约 200 轮后模型进入收敛阶段,后期奖励与回合长度稳定在较高水平,无明显震荡,算法收敛过程符合预期。
3.核心机制的作用得到验证。经验回放与目标网络两大核心机制充分发挥了作用:经验回放打破了连续样本的时间相关性,避免了网络训练的方向偏移;目标网络稳定了训练过程中的目标 Q 值,有效缓解了训练过程中的数值震荡,两大机制共同保障了算法的稳定收敛。
4.法具备良好的稳定性。评估阶段模型可长时间保持摆杆平衡,平均评估步数接近任务满分,说明训练完成的策略具备较强的鲁棒性,无过拟合现象,可稳定完成控制任务。
综上,自主实现的 DQN 算法通过了标准任务的有效性验证,具备稳定的收敛能力与可靠的控制效果,可应用于移动机器人动态避障任务。
4.3 动态避障性能测试与参数分析
4.3.1 动态避障性能测试
1 实验目的
本实验的核心目的是验证自主设计的动态避障环境、离散动作空间、多维度奖励函数的有效性,测试 DQN 算法在不同典型动态场景中的避障性能、稳定性与泛化能力,验证课题提出的动态避障方法的实际应用效果。
2 测试场景设计
实验设计5类代表性动态测试场景,覆盖移动机器人实际应用中的典型避障难点,场景设计与特点如表 4-3 所示。
表4-3 动态避障测试场景设计
| 场景名称 | 场景特点说明 |
| default_eval 默认场景 | 基础动态避障场景,包含 4 个随机游走的动态障碍物,用于测试算法基础避障能力 |
| crossing_flow 交叉流场景 | 障碍物从场景两侧交叉穿过,形成动态交叉流,测试机器人对相向运动障碍物的避障能力 |
| narrow_passage 狭窄通道场景 | 场景两侧设置固定障碍物形成狭窄通道,通道内存在动态障碍物,测试机器人的精细避障与通道通行能力 |
| dense_center 中心密集场景 | 场景中心区域设置密集动态障碍物簇,目标点位于障碍物簇后方,测试机器人的复杂环境绕行能力 |
| diagonal_reverse 对角反向场景 | 机器人与障碍物沿对角反向运动,易发生正面碰撞,测试机器人对相向运动目标的实时避障能力 |
3 实验结果
5类测试场景的综合量化实验结果如表 4-4 所示,每个场景完成 20 次重复测试,取平均值作为最终结果。
表4-4 动态避障任务综合量化实验结果
| 指标名称 | 数值 |
| 总测试场景数 | 100 次(5 类场景 ×20 次重复) |
| 成功到达目标场景数 | 100 次 |
| 发生碰撞场景数 | 0 次 |
| 超时未到达场景数 | 0 次 |
| 整体避障成功率 | 100.00% |
| 整体碰撞率 | 0.00% |
| 整体超时率 | 0.00% |
| 平均路径长度 | 10.80 场景单位 |
| 平均回合回报 | 103.47 |
图4-3 倒立摆训练奖励曲线
图4-4 倒立摆回合长度曲线
4 实验结果分析
结合量化数据与轨迹可视化结果,可得到以下实验结论:
1.动态避障环境设计具备合理性。5类典型场景覆盖了不同难度的动态避障需求,能够全面、有效地测试算法的避障性能,环境建模贴合真实移动机器人的运动特性与感知逻辑,训练完成的策略具备向真实场景迁移的潜力。
2.离散动作空间设计具备有效性。设计的5个离散动作能够完整覆盖机器人的基础机动行为与复合避障动作,机器人可根据不同场景灵活选择动作,实现直行、转向、绕行等多种避障行为,动作空间维度适中,既保证了运动表达能力,也未增加算法的训练难度。
3.多维度奖励函数设计具备引导性。多维度奖惩项的设计有效解决了简单奖励函数的稀疏性问题,机器人能够快速学习到 “安全优先、兼顾高效” 的避障策略,在保证零碰撞的前提下,实现了路径长度的优化,奖励函数的设计完全符合预期目标。
4.算法具备优异的避障性能与泛化能力。算法在 5 类场景中实现了100%的避障成功率,碰撞率与超时率均为0,说明训练完成的策略能够适配不同特点的动态场景,具备较强的泛化能力与鲁棒性,可稳定完成动态环境下的避障与导航任务。
4.3.2 超参数对比实验
1 实验方法
实验采用控制变量法,单次仅修改一项核心超参数,其余实验条件与参数完全固定,通过 80 轮短轮次训练,分析不同超参数对算法训练速度、收敛效果与稳定性的影响规律。实验共设置 5 组核心超参数对比,每组参数设置 2 个梯度值,如表 4-5 所示。
表4-5 超参数对比实验参数设置
| 对比超参数 | 参数值 1 | 参数值 2 |
| 学习率 | 0.001 | 0.0005 |
| 折扣因子 gamma | 0.99 | 0.95 |
| 探索率衰减系数 | 0.995 | 0.99 |
| 经验回放池容量 | 10000 | 20000 |
| 目标网络更新间隔 | 100 步 | 200 步 |
2 实验结果
超参数对比实验的量化结果如表 4-6 所示,核心评价指标为 80 轮训练内的最佳回合奖励与最终回合奖励,分别反映算法的学习上限与最终收敛效果。
表4-6 超参数对比实验量化结果
| 对比超参数 | 参数取值 | 80 轮内最佳回合奖励 | 80 轮最终回合奖励 |
| 学习率 | 0.001 | 96.00 | 16.00 |
| 学习率 | 0.0005 | 77.00 | 19.00 |
| 折扣因子 | 0.99 | 107.00 | 50.00 |
| 折扣因子 | 0.95 | 112.00 | 17.00 |
| 探索率衰减系数 | 0.995 | 95.00 | 33.00 |
| 探索率衰减系数 | 0.99 | 93.00 | 16.00 |
| 经验回放池容量 | 10000 | 176.00 | 52.00 |
| 经验回放池容量 | 20000 | 156.00 | 156.00 |
| 目标网络更新间隔 | 100 步 | 150.00 | 36.00 |
| 目标网络更新间隔 | 200 步 | 63.00 | 17.00 |
图4-5 超参数对比实验结果可视化图
3 实验结果分析
结合对比实验数据,可总结出各超参数对算法性能的影响规律,为最终参数选择提供了数据支撑:
1.经验回放池容量对算法前期学习速度影响最为显著:10000 容量的回放池在 80 轮训练内的最佳奖励达到 176.00,前期学习速度更快;而 20000 容量的回放池最终收敛效果更稳定,最终回合奖励达到 156.00,无明显性能衰减。最终正式训练选择 50000 的回放池容量,在学习速度与训练稳定性之间实现平衡。
2.目标网络更新间隔直接影响训练稳定性:100 步的更新间隔在最佳奖励与最终奖励上均显著优于 200 步的更新间隔,说明较频繁的参数同步能够有效稳定目标 Q 值,避免训练过程中的数值震荡,最终正式训练选择 150 步的更新间隔,兼顾稳定性与参数时效性。
3.学习率影响算法的学习速度与收敛稳定性:0.001 的学习率前期学习速度更快,最佳奖励更高,但后期出现性能衰减;0.0005 的学习率训练过程更稳定,但前期学习速度较慢。最终正式训练选择 0.001 的学习率,配合梯度裁剪操作,兼顾学习速度与训练稳定性。
4.折扣因子影响算法的长期决策能力:0.99 的折扣因子更关注长期奖励,最终收敛效果更好;0.95 的折扣因子更关注即时奖励,前期学习速度更快,但后期无法学习到长期最优策略。最终正式训练选择 0.99 的折扣因子,适配避障任务的长期决策需求。
5.探索率衰减系数影响算法的探索与利用平衡:0.995 的衰减系数探索率下降更慢,前期环境探索更充分,最终收敛效果更好;0.99 的衰减系数探索率下降过快,模型易陷入局部最优策略。最终正式训练选择 0.995 的衰减系数,保证训练前期的充分环境探索。
4.4 前端可视化实现
4-6 实验总览界面
该界面为系统首页,集成展示倒立摆与动态避障两类任务的核心量化指标(如成功率、碰撞率、平均奖励),同时嵌入奖励曲线与参数对比图,提供实验结论摘要面板,帮助用户快速掌握整体实验结果。
4-7 动态避障演示界面
该界面支持随机生成避障场景,通过SVG逐帧播放机器人避障动画,可调节播放速度、拖拽进度条。界面实时显示当前动作、累计回报、路径长度等信息,并抽取关键帧数据表格,直观展示DQN模型的实时推理决策过程。
4-8 参数对比实验界面
该界面展示控制变量法下的5组参数对比实验结果,呈现参数对比曲线图,列出每组实验的最佳奖励与最终奖励明细,通过结论面板总结不同超参数(如学习率、γ折扣因子)对DQN收敛速度与最终性能的影响规律。
4.5 本章小结
本章通过标准倒立摆任务,完成了自主实现的 DQN 算法的收敛性与稳定性验证。通过5类典型场景的测试,验证了课题设计的动态避障方法的有效性,算法实现了100% 的避障成功率与零碰撞的优异性能。通过控制变量法完成了核心超参数的对比分析,明确了参数影响规律,同时完成了可视化系统的功能开发,实现了算法效果的直观展示。
5.1 总结
针对传统移动机器人避障方法在动态未知场景中适应性不足、深度 Q 网络算法在本科教学与毕设应用中缺少完整训练 - 演示闭环的问题,本课题围绕基于 DQN 的移动机器人动态避障方法展开了完整的研究与工程实现。课题从零完成了 DQN 算法的模块化开发,自主设计了适配算法离散动作特性的动态避障仿真环境、多维度复合奖励函数,通过标准倒立摆任务完成了算法收敛性与稳定性验证,最终训练的模型在 5 类典型动态场景中实现了 100% 的避障成功率与零碰撞的优异性能。同时,课题完成了低门槛可视化系统的全栈开发,搭建了算法核心、数据管理、可视化展示三层模块化架构,实现了算法训练、多场景评估、避障动画演示的完整闭环,系统可在普通家用 CPU 环境下流畅运行,完全适配本科教学实验与毕业设计答辩的实际需求。
5.2 展望
受限于开发时间与硬件条件,本课题的研究仍存在可优化与拓展的空间。在算法层面,后续可引入 Double DQN、Dueling DQN 等改进算法,进一步提升模型在超高动态、密集障碍物场景中的避障性能与泛化能力。在环境适配层面,可将二维仿真环境拓展为三维仿真环境,完成算法与真实轮式机器人硬件的对接,实现仿真环境到真实场景的策略迁移。在系统功能层面,可新增算法实时训练监控、多算法横向对比、自定义场景编辑等功能,进一步降低系统使用门槛,拓展其在深度强化学习教学实验中的应用场景。。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)