不确定性环境下的自动驾驶汽车行为决策方法

news2024/11/16 6:47:01
在高度交互的复杂驾驶环境中考虑不确定性因素的影响,做出合理的决策,是当前决策规划系统须解决的主要问题之一。本文提出了一种不确定性环境下的自动驾驶汽车行为决策方法,为消除不确定性的影响,将行为决策过程转化为部分可观察马尔可夫决策过程(POMDP )。同时为解决 POMDP 模型计算复杂度过高的问题,首次将复杂网络理论应用于自动驾驶汽车周围微观的驾驶环境,对自动驾驶汽车驾驶环境进行动态建模,实现了车辆节点间交互关系的有效刻画,并对重要车辆节点进行科学筛选,用于指导自车的行为决策,实现对关键车辆节点的精准识别和决策空间的剪枝。在仿真环境中验证了所提方法的有效性,实验结果表明,与现有最先进的行为决策方法相比,所提出的方法拥有更高的计算效率,且拥有更好的性能和灵活性。
关键词:自动驾驶汽车;行为决策;部分可观察马尔可夫决策过程;复杂网络

前言

近年来,自动驾驶和高级辅助驾驶技术取得了重大进展,尤其深度学习和其他人工智能技术的快速发展,自动驾驶汽车的感知能力有了显著提升。但在实际驾驶环境中,由于目标识别、检测和跟踪过程均存在误差或噪声,要获得“完美”的感知数据几乎是不可能的。更为重要的是,实际交通场景下,自动驾驶汽车与周边多交通主体行为之间存在很强的关联交互影响,导致难以准确预测周边多目标的行为意图和未来轨迹。如何在高度交互的复杂驾驶环境当中,考虑感知和预测等存在的不确定性因素影响,建立一套兼顾效率和性能的行为决策系统,是当前自动驾驶汽车急需解决的主要问题之一。
近年来,许多学者已经对自动驾驶汽车的行为决策方法做了大量研究 。基于规则的方法具有结构简单、易于实现等优点,因此在早期的研究工作或现阶段低级别的自动驾驶汽车中十分流行,此类方法 根据驾驶任务或驾驶状态,在人工制定的规则或知识库中选择适当的行为决策策略。然而随着自动驾驶汽车须解决的驾驶环境越复杂,且感知及预测模块输入存在多模态与不确定性等特点,用有限的规则来涵盖包含无限可能的真实驾驶环境,往往会迫使自动驾驶汽车采用十分保守的行为决策策略。
近些年随着深度神经网络( DNN )和强化学习(RL )的兴起,许多学者尝试将其与自动驾驶汽车的行为决策方法相结合。Chen 利用道路状况、车距、车道标记距离等信息作为感知输入训练深度神经网络,利用训练好的神经网络对驾驶行为进行评估,从而生成决策策略。Desjardins 提出了一种基于强化学习的自适应巡航控制系统。然而实际的驾驶环境往往具有很高维度,只依靠强化学习很难对复杂驾驶环境进行处理,因此将深度学习应对高维输入的能力与强化学习相结合的深度强化学习(DRL )的方法成为了研究热点,很多学者   都尝试使用相似的方法对模型进行训练,生成基于 DRL 的自动驾驶决策系统,相比于经典的行为决策方法,这些方法面对高维不确定性的驾驶环境时,通常有着更好的表现。此外,一些学者尝试在 DRL当中融入基于规则的方法,以充分发挥两种方法的优点,Fu等   将专家知识库和深度强化学习相结合,提出了一种融合规则的混合式自学习行为决策方法。然而现阶段几乎所有的基于学习的方法都假设驾驶环境是完全可知的马尔科夫决策过程(MDP ),但由于感 知误差以及交通参与者难以预测随机性行为,真实驾驶环境当中自车的行为决策不可避免地会受到不确定性因素的影响,且由于DNN 本身的“黑盒”特性,也使这些方法难以应用于真实的驾驶环境。 为适应高度交互的不确定性驶环境,大量学 者将行为决策方法表述为 POMDP   过程, POMDP 给出了在不确定性环境下进行决策的原则性方法,且在数学逻辑上是严谨的,但当驾驶环境越发复杂时,POMDP 问题将变得难以求解。因此,许多学者在经典的POMDP 模型上进行改进,并提出了一系列在线求解器   。依托于在线求解器的研究成果,一些工作 已经将 POMDP 应用于自动驾驶汽车 的行为决策,然而这些研究工作的计算效率依然较低,难以满足真实驾驶场景中实时性的要求,且用于验证的实验场景十分简单。
为解决计算效率的问题, Cunningham 提出了一种十分具有代表性的方法对经典的 POMDP进行简化,即多策略决策(MPDM ),该方法首先设计了一组语义级策略,然后进行闭环的前向仿真模拟以 评 估 挑 选 最 佳 的 行 为 决 策 策 略 。Nishi 用DRL 的方法替换了 MPDM 前向仿真模拟的过程,实现了更高的计算效率,但是由于引入了 DRL 的方法,使其难以应用于真实的驾驶场景。Ding 在MPDM基础上进行了一系列改进,提出了 EPSILON算法,通过引入引导分支及新的前向仿真模型进一步提升算法的计算效率及鲁棒性。然而上述方法在提升算法效率的同时牺牲了部分 POMDP 模型的精确性,这限制了行为决策的“智能”水平。
本文在 EPSILON 算法的基础上引入基于复杂网络理论的建模方法对动态交互的驾驶环境进行抽象,并通过可变高斯安全场实现驾驶场景中各交通参与者交互关系的有效刻画,并提取重要车辆节点、生成风险树,用于指导 POMDP 的决策过程,在进一步提升算法效率的同时,提升算法的精确度,实现更灵活的行为决策。
复杂网络理论起源于图论,经过不断的发展和完善,其研究内容涵盖了个体动力学、交互耦合、空间拓扑、时间演化等方面   ,通过对复杂系统的合理抽象,复杂网络理论为复杂系统的认知提供了基础的研究方法和分析工具。自动驾驶汽车所处的 驶环境具有高维性、多样性和动态性等特征,是一个典型的复杂动态交通网络演化过程,且在大多数的驾驶场景中,驾驶员并不需要关心环境中的全部车辆。因此,通过复杂网络理论对驾驶环境进行抽象,可以将复杂的真实驾驶环境简化为关键车辆节点对之间的关系,降低 POMDP 决策模型复杂度,加速求解并实验更灵活的行为决策。
综上所述,本文将复杂网络理论与基于 POMDP的行为决策方法相结合,提出了一种不确定性环境下的自动驾驶汽车行为决策方法。首先,将驾驶环境中的交通参与者建模为复杂网络中的动态节点,应用提出的可变高斯安全场实现车辆节点的状态认知和风险关联认知,按照各认知域内节点的重要程度,提取重要节点、生成风险树;随后,POMDP 模型利用提取的重要节点对决策空间进行剪枝;然后,将自车与重要车辆节点可能的行为意图设定为一个场景进行闭环前向仿真模拟,并对重要节点所形成的风险树中的车辆节点的行为意图进行更新;最后,从仿真模拟的场景中挑选最优的行为决策策略。结果表明本文所提出的方法可以较明显地提升运算速度,且具备更优越的性能,并做出更加灵活的决策行为。综上所述,本文的主要贡献如下。
1 )提出了应用复杂网络理论对驾驶场景进行动态建模的方法。首次将复杂网络理论应用于驾驶环境中的微观网络,实现了对驾驶环境的动态建模。
2 )通过将复杂的驾驶环境抽象为动态的网络模型,根据提出的可变高斯安全场理论,实现车辆节点动态交互关系的有效刻画,并按照各认知域内节点的重要程度,提取重要节点、生成风险树,用于指导自动驾驶汽车的行为决策。
3 )通过复杂网络建模提取关键车辆节点,使自车只须关注对其产生较大影响的车辆节点,而不是去关注环境中的所有车辆,从而使算法利用更少的算力实现更高的计算效率,且由于可以精确地识别环境中的重要车辆节点,算法可以实现更高的精确度并做出更灵活的行为决策策略。

1 基本原理与实施细节

1. 1 框架概览

本文所提出的行为决策系统框架如图 1 所示。驾驶环境建模位于系统的上层,其由 3 个过程组成,即车辆节点建模、认知域划分、节点间风险认知。车辆节点建模包括对驾驶环境中的车辆进行运 动学与动力学建模,同时根据提出的可变高斯安全场评估节点间的风险态势,然后根据人类驾驶员的反应时间将模型的认知范围划分为 3 个区域,最后根据不同认知域内节点间风险等级的不同评估重要节点并提取风险树。
下层同样由 3 个过程组成,即决策空间构建、前向仿真模拟、策略评估。决策空间构建过程中根据评估出的重要节点拓展自车的语义级行为序列,同时对重要车辆节点可能的意图组合进行预测。在场景实现过程中,通过将自车行为序列与重要车辆节点可能的意图相结合,形成一个个仿真场景,进行闭环前向仿真模拟,并在模拟过程中对风险树中的车辆节点的预测意图进行更新,最后对各场景的决策策略进行评估,挑选出最佳的行为决策策略输出至轨迹规划模块和控制模块。

2 实验设计

2. 1 仿真环境搭建

所采用的实验平台搭载了一块 RTX 3070 GPU和 一 块 AMD R7 CPU 的 笔 记 本 电 脑 ,实 验 环 境 为Ubuntu18. 04,算法采用 C++11 实现,并依托 ROS 搭建仿真环境进行仿真模拟。将车辆设置为 ROS 中的节点,通过话题通信的方式接发车辆节点的位姿、速度等信息,模拟道路为双向四车道的高速公路,并通过匝道口模拟车道合流的场景。此外可以实现人为控制各车辆节点的转向、加减速,模拟自车在突发情况和不确定环境下的决策行为,并通过 rviz 实现仿真场景的可视化。

2. 2 对比实验

为分析所提出方法的有效性,将其与其他方法进行对比实验。EPSILON 为目前基于 POMDP 的自动驾驶行为决策中最先进的方法,因此本文在相同的场景下对两种算法进行了仿真实验。

2. 2. 1 算法运算效率分析

首先对两种算法的运算效率进行分析,通过改变自车周围车辆的数量,对比了 5 组不同场景下两种方法的运算效率,并对每种场景20 次仿真实验中15 s内的平均运算速度进行了统计分析。仿真过程中除自车外的其他车辆均采用定速巡航模式,两种算法在完全相同的实验环境中进行,以保证实验结果的可靠性。
实验结果如图 7 所示。可以看出两种方法的计算效率随着自车周围车辆数的增加而降低,但本文所提出的方法相对于EPSILON 算法计算效率有较大提升,且随着场景复杂度的增加,所提方法的运算速度优势越明显,当自车周围车辆数增加到 15 辆时,本文所提出的方法仍然能保持 20 Hz 以上的运行频率,能更好满足实时性的要求。

2. 2. 2 算法性能分析

为评估所提出的方法在运算效率提升的同时,是否仍然能够保证算法的性能,在相同的实验场景下对两种算法的性能进行了对比分析。实验场景中自车周围车辆的数量均为10 辆。
实验结果如图 8 所示,其中上 4 幅图 A D 为EPSILON做出的决策行为,下 4 幅图 A D 为本文所提方法做出的决策行为。可以看出 EPSILON 算法的自车面对多车场景,会选择保守的车道保持策略,而本文所提出的方法由于可以更精准地识别场景中的风险车辆,会伺机选择更为灵活的换道超车策略。通过统计分析 20 次仿真实验中 15 s 内自车的行驶速度和舒适度来定量分析算法的性能,其中舒适度为 15 s 内每一帧加速度变化的绝对值,加速度变化越小,则表示舒适度越高,实验结果如表1 所示。
由于本文所提出的算法排除了非风险车辆对自车决策行为的影响,使自车偏向于选择更加稳定、高效的决策行为,从而拥有更高的行驶速度和舒适度。

3 结论

提出一种不确定性环境下自动驾驶汽车行为决策方法。首先引入复杂网络理论对驾驶环境进行抽象,识别重要车辆节点,对决策空间进行剪枝;并 此基础上将自车的行为决策转化为 POMDP过程,实现不确定性环境下的行为决策;最后在仿真场景下评估行为决策方法的性能。结果表明所提方法在复杂的场景下拥有更高的运算速度,且拥有更好的性能和灵活性。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用ssm实现基于jsp的快递管理系统的开发

TOC ssm226基于jsp的快递管理系统的开发jsp 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规…

达梦数据库的系统视图v$db_object_cache

达梦数据库的系统视图v$db_object_cache 达梦数据库(DM Database)中的 V$DB_OBJECT_CACHE 视图提供了数据库对象缓存的相关信息。这些信息包括缓存中的各种数据库对象(如表、索引、存储过程等)的具体状态和属性。通过 V$DB_OBJEC…

基于SpringBoot的滴答拍摄影项目

你好,我是计算机专业的学生,专注于摄影项目的开发与实现。如果您对我的项目感兴趣或有任何建议,欢迎随时联系我。 开发语言 Java 数据库 MySQL 技术 SpringBoot框架 工具 MyEclipse、Tomcat服务器 系统展示 首页 管理员功能模块 用…

网络安全-安全渗透简介和安全渗透环境准备

文章目录 前言1. 安全渗透简介1.1 什么是安全渗透?1.2 安全渗透所需的工具1.3 渗透测试流程 2. 使用 Kali Linux 进行安全渗透2.1 下载ISO镜像2.2 下载VMware Workstaion软件2.3 Kali Linux简介2.4 准备Kali Linux环境2.5 Kali Linux初始配置2.6 VIM鼠标右键无法粘贴…

石碑文字全排列重组(华为od机考题)

一、题目 1.原题 有一个考古学家发现一个石碑, 但是很可惜,发现时其已经断成多段, 原地发现n个断口整齐的石碑碎片。 为了破解石碑内容, 考古学家希望有程序能帮忙计算复原后的石碑文字组合数, 你能帮忙吗&#xff1…

C# 三种定时器的用法

目录 1.System.Timers.Timer 2.System.Windows.Forms.Timer 3.System.Threading.Timer 4.简单的封装 这里介绍三种常用的定时器,方便查阅资料或直接复制使用。 1.System.Timers.Timer System.Timers.Timer 类定义了一个计时器,该计时器按固定间隔触…

大二必做项目贪吃蛇超详解之上篇win32库介绍

文章目录 1. 游戏背景2. 游戏效果演示3. 项目目标4. 前置知识5. Win32 API5. 1 控制台程序(Console)5. 2 控制台屏幕上的坐标 COORD5. 3 GetStdHandle5. 4 GetConsoleCursorlnfo5. 4. 1 CONSOLE_CURSOR_INFO5. 4. 2 SetConsoleCursorlnfo 5. 5 SetconsoleCursorPosition5. 6 Ge…

“汤姆猫除了不会捉杰瑞啥都会”之作为Web服务器,tomcat的常用部署方式 (Tomcat+memcached实现高可用)

目录 企业级WEB应用服务器TOMCAT一、tomcat的功能介绍1.1 安装 Tomcat1.2 tomcat的文件结构和组成1.3 生成tomcat的启动文件 二、结合反向代理实现tomcat部署2.1 常见部署方式介绍2.2 利用 nginx 反向代理实现2.3 实现tomcat中的负载均衡2.3.1 HTTP的无状态,有连接和…

Linux驱动学习之中断与等待队列

本篇分为设备树部分和API接口部分 设备树 想要使用中断,设备树中需要有两个属性: interrupts // 表示要使用哪一个中断, 中断的触发类型等等。 interrupt-parent // 这个中断要接到哪一个设备去? 即父中断控制器是谁 父中…

一种更快成像的新技术

斯旺西大学(Swansea University)的研究人员为中性原子束显微镜创造了一种新的成像方法,可大大加快显微镜图像的获取速度。中性原子束显微镜已成为科学研究的一个重点,因为它能够对商用显微镜无法成像的表面进行成像,例…

mysql集群从零开始搭建

文章目录 MySQL集群linux下部署mysqlmysql主从复制master配置配置slave新的slave加入延迟复制慢查询多线程原理 半同步模式原理gat模式启动半同步模式 mysql高可用之组复制(MGR)实现mysql组复制 mysql路由具体实现 mysql高可用之MHAMHA部署实施安装MHA软…

Codeforces Round 968 (Div. 2 ABCD1D2题) 视频讲解

A. Turtle and Good Strings Problem Statement Turtle thinks a string s s s is a good string if there exists a sequence of strings t 1 , t 2 , … , t k t_1, t_2, \ldots, t_k t1​,t2​,…,tk​ ( k k k is an arbitrary integer) such that: k ≥ 2 k \ge 2 k≥…

接口自动化测试利器,使用Rest Assured进行REST API测试

我们在做接口测试时,一般在代码中会使用HttpClient,但是HttpClient相对来讲还是比较麻烦的,代码量也相对较多,对于新手而言上手会比较难一点,今天我们来看下另一个接口测试工具包REST Assured REST Assured是一个流行…

Blazor官方文档学习记录

Blazor官方文档学习记录 1 官方文档2 Blazor教程-生成首个应用3 项目结构4 基础知识4.1 生态4.2 Razor组件指令顺序4.3 Razor组件的初始化方法 5 注意 1 官方文档 https://dotnet.microsoft.com/zh-cn/apps/aspnet/web-apps/blazor2 Blazor教程-生成首个应用 https://dotnet.…

Python | Linux | 解析Himawari-8/9 | Standard Data

写作前面 之前一个相关的工作需要解析Himawari-8/9 Standard Data文件,因为他是二进制的,之前没有处理过,导致完全摸不着头脑。在网上找了中英文搜索找了好久,虽然也找到了公开的解析代码,但是放在自己的数据这感觉总是…

趣味算法------猴子吃桃(循环,递归双重解法)

题目描述 猴子第一天摘下若干个桃子,当天吃了一半,后面又多吃一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。后面每天猴子都吃了前一天剩下的一半零一个。到第十天想再吃时,只剩下一个桃子。求第一天共摘了多少桃子。 …

鸿蒙(API 12 Beta3版)【获取音视频元数据】音频播放与录制

使用AVMetadataExtractor可以实现从原始媒体资源中获取元数据,本开发指导将以获取一个音频资源的元数据作为示例,向开发者讲解AVMetadataExtractor元数据相关功能。视频资源的元数据获取流程与音频类似,由于视频没有专辑封面,所以…

【中仕公考怎么样】公务员备考小建议

2025年国考在即,掌握正确的备考方法很重要!中仕为大家简单分享4点小技巧。 1. 在提升行测分数时,可以采用大量的练习题、整理题以及关注往年核心考点的方式。无论处于准备过程的哪一阶段,对各类题型进行深入分析并掌握相应的解题…

C++ | Leetcode C++题解之第373题查找和最小的K对数字

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<vector<int>> kSmallestPairs(vector<int>& nums1, vector<int>& nums2, int k) {int m nums1.size();int n nums2.size();auto count [&](int target){long long …

怎么用AI生成PPT演讲稿?5个方法教你快速生成

想象一下&#xff0c;你正在准备一场关于“墨西哥是如何走到今天这一步的”演讲&#xff0c;而你却苦于如何将复杂的历史背景、经济变迁以及文化特色等内容有机地整合进一份PPT中。 这时候&#xff0c;一款好的AI自动生成PPT的工具就能派上用场了。它不仅能够帮助你快速构建起…