基于深度强化学习的无人车自适应速度规划

论文:Adaptive speed planning for Unmanned Vehicle Based on Deep Reinforcement Learning

编辑:东岸因为@一点人工一点智能

基于深度强化学习的无人车自适应速度规划本文对无人车辆的速度规划部分进行了一些改进。首先,将车辆速度与车辆与障碍物之间的角度耦合,并将这种耦合关系整合到奖励函数中。其次,使用DDQN算法替换无人车的局部路径规划模块;最后,在Gazebo仿真环境中完成了不同环境下的车辆速度规划测试icon-default.png?t=N7T8https://mp.weixin.qq.com/s/KM0UmY6qtRoh9K6XA8SuoA

01 简要

在未来技术的发展中,在线路径规划对于无人车辆尤其关键,尤其是在复杂的城市交通网络中。近年来,深度强化学习(DRL)已成为解决此类问题的前沿技术。

本文对无人车辆的速度规划部分进行了一些改进。首先,将车辆速度与车辆与障碍物之间的角度耦合,并将这种耦合关系整合到奖励函数中。其次,使用DDQN算法替换无人车辆的局部路径规划模块;最后,在Gazebo仿真环境中完成了不同环境下的车辆速度规划测试。

02 模型构建

2.1 DQN算法

深度Q网络(DQN)结合了Q-Learning原则和深度神经网络,以处理具有高维状态空间的环境。DQN算法通过使用深度神经网络来近似最优动作价值函数,从而在各种状态下做出明智的决策,这标志着强化学习领域的重大突破。

DQN算法的核心是动作价值函数的更新规则,该规则通过Q-Learning更新和梯度下降优化迭代改进策略。DQN算法利用Q-Learning框架推导出一个可优化的损失函数,用于训练神经网络。该更新方程定义如下(1):

训练过程涉及减少预测和目标Q值之间的差异的损失函数。根据方程(1),DQN算法的损失函数表示如下(2):

目标Q值代表预期的未来奖励,通过折扣因子γ进行折扣,对于学习过程的稳定性至关重要:

DQN算法采用一个单独的目标网络来稳定学习更新。目标网络的参数定期从主网络(θ)更新,以防止目标值的快速变化,这可能导致学习过程不稳定。

2.2 DDQN算法

双重深度Q网络(DDQN)通过解决DQN中Q值高估的问题,增强了原始DQN。DQN和DDQN都使用深度神经网络来近似Q值函数,在高维状态空间的环境中进行动作选择,这是强化学习领域的一个重要进步。

DDQN算法的关键创新在于将动作选择过程与Q值评估过程分离。通过这一微妙的改变,DDQN减少了在DQN中可能出现的高估值估计,从而产生更稳定和可靠的学习,并防止代理在策略开发过程中过高估计动作的价值。这反过来通常会导致在强化学习各种基准任务中取得更好的性能。

2.3 改进的奖励函数

在一些现有的强化学习算法中,奖励函数的设置简单,这会导致移动机器人过于关注避障,在进行转向控制和速度控制时,即使车辆与障碍物的偏差很大,性能也会大幅降低。速度是为了确保避障,在规划过程中不够灵活。类似的奖励函数如方程(4)所示:

因此,提出了一种基于动态奖励函数的改进算法,以防止移动机器人在驾驶时因接近障碍物而降低速度。本文将车辆速度与航向角的关系应用于奖励函数的设置,并通过选择不同的动作获得不同的奖励值,如方程(5)所示:

式中,v表示车辆的当前速度,¯v表示期望的车辆速度。

如图1所示,角度是根据自动驾驶车辆当前的行驶方向和障碍物的边缘位置确定的。这样可以确保在行驶过程中,车辆的速度规划不会受到车辆位置因素的干扰。如果车辆当前的行驶方向与障碍物一致,且距离较远,即使车辆靠近障碍物,也应保持正常速度而不会减速。当障碍物位于车辆的行驶路径上时,应适当减速以保持安全。

通过在奖励函数中加入高斯函数,可以根据车辆的实时状态动态改变奖励值。如果车辆当前的航向角与障碍物角度之间的偏差大于30度,此时应保持正常车速。

当车辆的航向角与障碍物的角度小于30度时,对于静态障碍物不应减速,只需以恒定速度通过。通过将无人车的奖励与无人车的当前速度耦合,在以安全角度通过障碍物时,无人车仍能保持适当的速度。

03 实验

所有实验均在装备有Intel(R)Core(TM)i7-7700HQ CPU@2.80GHz和NVIDIA GeForceGTX1080GPU的计算机上进行。所有实验基于ubuntu20.04操作系统和ROS,并在Gazebo中进行物理模拟。

实验环境如图2所示。我们在一个10✖15米的封闭空间中放置了许多障碍物来训练DDQN。

图3显示了模拟环境中单一规划的效果。如图所示,尽管环境中有很多障碍物,但无人车的平均速度仍能达到1.0以上。这种算法在障碍物多的环境中可以取得较好的结果。

表1显示了不同环境下不同奖励函数的平均行驶速度。我们在每个环境中进行了20次实验。可以看出,无论是10米✖15米环境还是25米✖25米环境,具有耦合关系的奖励函数在速度规划方面表现良好。我们设定的期望速度为1.2米/秒。从表中可以看出,普通奖励函数生成的速度规划的平均速度较低,而本文提出的具有耦合关系的奖励函数可以在不影响规划成功率的情况下使速度达到预期值。

04 结论

本文主要研究了通过将奖励函数与车速相互耦合来改进车辆速度控制。本文表明,使用DDQN模型和改进的奖励函数可以提高自动驾驶车辆的速度规划。通过更新系统对障碍物的响应方式,车辆能够在不必要减速的情况下保持稳定的速度。最后,通过Gazebo环境的模拟实验验证了该算法。

结果表明,改进的奖励函数可以根据局部环境和障碍物数量进行相应的速度规划,并在满足条件的情况下规划出符合速度要求的行驶速度。在模拟测试中确认了这些方法在各种障碍物环境中的良好效果。本文对奖励函数的改进可以使无人车在现实世界中更加可靠和高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/656144.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Excel中怎样将第一行建立好的规则套用到每一行?

考虑使用条件格式来完成,有两种方式可以尝试: 一、一次性创建条件格式 1.选中需要设置条件格式的区域,如果是不连续的区域,可以按住Ctrl键,然后用鼠标依次选中需要的数据区域 2.点击 开始选项卡,条件格式…

探索python循环逻辑的魅力:从无限到有限

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:循环逻辑的初步认识 二、无限循环:持续运转的引擎 三、有…

OpenHarmony Camera源码分析

一、简介 当前,开源在科技进步和产业发展中发挥着越来越重要的作用,OpenAtom OpenHarmony(简称“OpenHarmony”)赋予了开发者孕育创新的种子,也为数字化产业发展开辟了一片土壤。深开鸿是开源的坚定践行者&#xff0c…

云服务器平台AutoDL--基本介绍与使用感受

因为课程作业需要复现DreamBooth,找了几个教程之后,发现了AutoDL这个好东西,芜湖~ 相关概念 以下回答来自于ChatGPT。 云计算平台:云服务器平台是提供按需计算资源和服务的在线平台,通常包括存储、处理能力、数据库、…

所以研究生有不变胖的吗?

天天吃 记得和骏骏一样减肥 分享昨天无人机拍的照片

新零售收银解决方案:传统门店超市的数字化-亿发

在数字化浪潮的推动下,零售行业正经历着前所未有的变革。阿里巴巴提出的“新零售”概念,不仅仅是一个商业口号,它代表了一种全新的商业模式和运营理念。随着时代的进步和消费需求的不断升级,新零售的兴起已成为行业发展的必然趋势…

关于我转生从零开始学C++这件事:升级Lv.25

❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载,请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主,代码兴国!❤❤❤ OK了老铁们,又是一个周末,大伟又来继续给大家更新我们的C的内容了。那么根据上一篇博…

Python读取Excel表格文件并绘制多列数据的曲线图

本文介绍基于Python语言,读取Excel表格数据,并基于给定的行数范围内的指定列数据,绘制多条曲线图,并动态调整图片长度的方法。 首先,我们来明确一下本文的需求。现有一个.csv格式的Excel表格文件,其第一列为…

鸿蒙OS开发:【一次开发,多端部署】(音乐专辑主页)

一多音乐专辑主页 介绍 本示例展示了音乐专辑主页。 头部返回栏: 因元素单一、位置固定在顶部,因此适合采用自适应拉伸,充分利用顶部区域。专辑封面: 使用栅格组件控制占比,在小尺寸屏幕下封面图与歌单描述在同一行。歌曲列表: 使用栅格组…

【详细介绍WebKit的结构】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

2.搜索游戏中不可见的数据坐标

内容参考于: 易道云信息技术研究院VIP课 首先一般游戏在设计时会把人物相关的属性放到一起,在 1.搜索游戏中的数据与环境搭建 里也能证实,角色的等级、攻击力、生命值、经验等它们的内存地址都是相差4字节也就是用int类型存储的,…

QT学习(20):QStyle类

Qt包含一组QStyle子类,这些子类(QWindowsStyle,QMacStyle等)模拟Qt支持的不同平台的样式,默认情况下,这些样式内置在Qt GUI模块中,样式也可以作为插件提供。 Qt的内置widgets使用QStyle来执行几…

PostgreSQL入门简介

PostgreSQL 是一个功能强大、开源的对象关系型数据库管理系统,以其稳定性、可靠性和丰富的功能集著称。以下是对 PostgreSQL 的入门简介: 1. 什么是 PostgreSQL? PostgreSQL 是一个开源的关系数据库管理系统,支持 SQL(…

SpringBoot整合SpringSecurit,实现ajax的登录、退出、权限校验

1、本文章中SpringBoot整合SpringSecurity&#xff0c;只是基于session方式&#xff0c;并且没有使用到redis。 2、登录、登出都是通过ajax的方式进行。 项目目录&#xff1a; 1、pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xm…

栈的特性及代码实现(C语言)

目录 栈的定义 栈的结构选取 链式储存结构和顺序栈储存结构的差异 栈的代码实现 "stack.h" "stack.c" 总结 栈的定义 栈&#xff1a;栈是限定仅在表尾进行插入和删除操作的线性表。 我们把运行插入的和删除的一段叫做栈顶&#xff08;TOP&#xff…

JVM学习-彻底搞懂Java自增++

从字节码角度分析i和i的区别 public void method6() {int i 10;i; //在局部变量表上直接加1}public void method7() {int i 10;i; //字节码同i}public void method8() {int i 10;int a i; //通过下图可以看出先将局部变量表中的值push到操作数栈&#xff0c;然…

视频监控平台AS-V1000 的场景管理,一键查看多画面视频的场景配置、调用、管理(一键浏览多路视频)

目录 一、场景管理的定义 二、场景管理的功能和特点 1、功能 &#xff08;1&#xff09;场景配置 &#xff08;2&#xff09;实时监控 &#xff08;3&#xff09;权限管理 2、特点 三、AS-V1000的场景配置和调用 1、场景配置 &#xff08;1&#xff09;实时视频预览 …

数据库查询——kettle开发20

一、数据库查询 数据库查询就是数据库里面的左连接&#xff0c;左连接就是两张表执行左关联查询&#xff0c;把左边的表数据全部查询出来。 如图所示我们在进行数据库查询操作时&#xff0c;我们首先需建立数据库连接&#xff0c;输入表名和查询需要的关键字&#xff0c;最后…

29【PS 作图】宫灯 夜景转换

夜景转化 1 原图 2 选中要变换的图层,然后点击“颜色查找” 再3DLUT文件中,选择moonlight.3DL,可以快速把图层变成偏夜景的颜色 结果如下: 3 选择“曲线” 把曲线 右边往上调【亮的更亮】,左边往下调【暗的更暗】 4 添加灯光 新建一个图层

宝塔下应该用 Memcached 还是 Redis?

明月最近在跟几个使用宝塔面板的客户运维的时候发现不少站长不知道如何选择 Memcached 和 Redis&#xff0c;甚至都说不清楚 Memcached 或者 Redis 具体是用来干啥的&#xff1f;甚至还碰到过一个站长 Memcached 和 Redis 都安装了&#xff0c;但一个都没有用&#xff0c;就那么…