【论文笔记】Planning and Decision-Making for Autonomous Vehicles

news2024/11/16 1:35:41

在这里插入图片描述

文章目录

  • Summary
  • 1. INTRODUCTION
  • 2. MOTION PLANNING AND CONTROL
    • 2.1. Vehicle Dynamics and Control
    • 2.2. Parallel Autonomy
    • 2.3. Motion Planning for Autonomous Vehicles
  • 3. INTEGRATED PERCEPTION AND PLANNING
    • 3.1. From Classical Perception to Current Challenges in Neural Network–Based Perception Systems
    • 3.2. End-to-End Planning
  • 4. BEHAVIOR-AWARE MOTION PLANNING
    • 4.1. Cooperation and Interaction
    • 4.2. Game-Theoretic Approaches
    • 4.3. Probabilistic Approaches
    • 4.4. Partially Observable Markov Decision Processes
    • 4.5. Learning-Based Approaches
  • 5. VERIFICATION AND SYNTHESIS
  • 6. FLEET MANAGEMENT
  • 7. CONCLUSION

这是一篇MIT18年发布在《Annual Review of Control, Robotics, and Autonomous Systems》的文章。本着学习的精神对这篇文章进行阅读并记录相关笔记,可能会有纰漏,还请批评斧正。

Summary

本文主要讨论了自主驾驶车辆领域中规划和决策的最新趋势和挑战。涵盖了三种不同的方法:传统PipeLine式的规划、行为意识决策规划和端到端规划,并强调了智能感知和规划的整合以及基于机器学习的方法。同时,也讨论了验证和安全性方面的问题以及自主驾驶车队管理方面的挑战。

1. INTRODUCTION

人们在日常出行上需要花费大量的时间,同时交通事故也造成了人员的伤亡。然而,自动驾驶汽车极有潜力能够解决这些问题,自动驾驶汽车能够极大地方便人们的生活,提高生产力与效率,保证交通系统的安全性,但自动驾驶汽车的实现需要从车辆设计到控制、感知、规划、协调和人际互动等等方面的进步……

作者在这篇文章中主要关注以下问题:

  • 车辆如何决定下一步去哪里;
  • 车辆如何使用传感器提供的数据来做出短期和长期的决策;
  • 与其他车辆的交互对决策规划系统的影响;
  • 车辆如何从自身历史信息和人类驾驶信息中学习驾驶;
  • 如何确保车辆控制和规划系统的正确性和安全性;
  • 如何进行道路上的多车协同管理,以最有效的方式将人员和物资运送到目的地。

实现完全的自动驾驶还需面临技术、法律、社会等方面的挑战。作者介绍了DARPA挑战赛使得自动驾驶汽车能够在十分接近真实场景的环境中工作,但也指出无论是DARPA中的方案,还是现有(-2018)比较先进的方案,都只能在环境相对简单、低速的状况下进行。

自动驾驶汽车需要对复杂的、不可预测的动态环境进行及时的推理,即使在复杂的城市道路环境中,也需要达到人类驾驶员水平的安全性、可靠性。

在这里插入图片描述

作者将现阶段的决策规划方法分为三种类型:

  • sequential planning(传统的PipeLine式的planning)【第二章】
  • end-to-end planning(端到端)【第三章】
  • behavior-aware planning(行为意识决策规划)【第四章】

【第五章】主要是一些验证方法;【第六章】则是自动驾驶车辆编队运行的一些方法;【第七章】总结与展望。

2. MOTION PLANNING AND CONTROL

回顾一些传统的Control和Motion Planning的一些方法;还有parallel autonomy (人机共驾?);回顾现存决策规划的一些挑战。

2.1. Vehicle Dynamics and Control

对于一些低速的场景,使用运动学模型就足够,涉及到的控制方法有:PID、反馈线性化、MPC等等

对于高速或者驾驶行为比较激烈的场景,需要动力学模型的介入,涉及的方法有:非线性控制、MPC、反馈前馈控制。

作者还指出,不同的控制方法依赖于不同的车辆模型,并介绍了一些车辆模型识别的相关技术。这部分暂时还未接触过,不同的车辆应该有不同的高自由度模型以应对控制开发、仿真等需求。

2.2. Parallel Autonomy

作者首先介绍了常见自动驾驶控制系统的三种模式:

  • series autonomy:由人类驾驶员发布指令给车辆进行具体执行。
  • interleaved autonomy:人类驾驶员和控制系统交替控制。
  • parallel autonomy:我理解为人机共驾,驾驶员和控制系统并行决策,提升在遇到危险时的安全性。parallel autonomy也是作者在这一节中主要介绍的。

作者指出,一种比较直观的方式合并驾驶员的输入以及控制系统的输出是将二者进行线性组合;另一种则是基于优化的方式,将驾驶员意图和系统目标的偏差最小化。基于优化的方式有一种典型的策略能够将优化问题简化——给定车辆速度 V V V,只对转向角进行优化。

2.3. Motion Planning for Autonomous Vehicles

作者先推荐了两篇运动控制方向的经典文章:
[1] Real-time motion planning methods for autonomous on-road driving: State-of-the-art and future research directions
[2] A Survey of Motion Planning and Control Techniques for Self-driving Urban Vehicles

作者给出传统Motion Planning的三种解决方案:

  • 输入空间离散化+碰撞检测,比较经典的就是Lattice Planner和road-aligned primitives,比较适用于高速场景,这种方式简洁高效?(对计算量应该有不小要求)。空间离散化一般可以对状态空间或者控制空间进行操作。
  • 随机采样类的算法。例如RRT,PRM等等。算法计算量不小,非最优的。
  • 基于约束优化和滚动优化的方法,多应用于路径跟踪控制。考虑了车辆模型(动力学/运动学),轨迹通常比较平滑。这类方法需要考虑如何将问题转化为凸空间问题进行求解。

自动驾驶车辆还需要考虑到交通规则的约束问题,在一些情况(例如,超过非法停放的车辆)下,还需对一些规则作出违反。对此,可以将交通规则作为cost function,也可以将其作为逻辑函数。Minimum-violation routing这个问题还需面临环境、车辆模型等等诸多不确定的因素,单纯的基于规则的方法可能难以覆盖全部的场景。

作者提到的一些方法需要对交通参与者行为轨迹进行预测,但作者也指出,复杂场景以及交通参与者之间交互所产生的影响也是目前研究的一个方向与挑战。

3. INTEGRATED PERCEPTION AND PLANNING

3.1. From Classical Perception to Current Challenges in Neural Network–Based Perception Systems

感知的概述,我不是这个方向的,暂时不做深入理解。

3.2. End-to-End Planning

传统的Framework,各模块是相互解耦的,通过接口进行连接。作者在这里提到一种通过训练感知模块的部分功能去整合规划模块的任务。比如用弱监督学习的方式利用历史驾驶数据集进行轨迹预测与输出;用语义分割的方式生成路径……

更进一步的端到端,也可以称为行为映射法(behavior reflex approach),在1989年就有人用神经网络开始做了(ALVINN, Autonomous Land Vehicle in a Neural Network)。随着GPU算力的快速增长,网络层数不断加深,参数不断增多,end-to-end的效果也慢慢显露出来。NVIDIA在2006的工作中,通过建立原始前视摄像头与转向控制命令之间的映射关系,同时通过图像旋转、移动等等操作以及增加纠正样本的方法,能够使车辆适应一些更为复杂的场景。接着,作者介绍了一些关于通过观察输入图像的哪些区域对网络的输出贡献最大的研究(比如车道内的位置和方向)。

对于端到端规划到什么程度,有研究规划到决策层(直行、转向等等),也有规划到控制层(执行层,方向盘转角等等)。比如Xu et al利用LSTM去做的通过视频直接分别去学离散的决策和连续的控制的工作。

作者还介绍了DAgger,不仅仅是监督学习,强化学习等领域也是端到端应用的重点。下面是AI对DAgger (Dataset Aggregation)的介绍。

DAgger (Dataset Aggregation)是一种迭代式的强化学习方法,用于解决模型在测试时可能遇到的分布偏移问题。在DAgger中,首先通过人工指导或其他方法训练一个初始的模型,并用该模型对环境进行交互(比如在游戏中进行游戏),并收集一批“专家演示数据”。然后,使用这些数据重新训练模型,并用新模型再次与环境交互,生成新一批数据。这个过程可以重复多次,直到模型的性能足够好以满足需求。

DAgger的主要思想是将专家模型的知识与网络自己的探索相结合,以便让网络自己学习如何在新场景中进行操作。由于新模型的行动可能与专家演示数据不同,因此每次重新训练的数据集都在专家演示数据上添加了网络行为,这样新数据集就会更加接近真实场景,从而提高模型的性能。

DAgger是一种强化学习领域中效果比较好的方法,已被广泛应用于机器人控制、自动驾驶、游戏智能等领域。

机器人移动路径规划中也有经常运用端到端。机器人在需要能够现实世界中能够解决突发的各类问题以及适应未知环境,但像ensemble, bootstrap, 和Monte Carlo dropout等等用于量化神经网络不确定性的方法对于未知环境可能无法提供准确的不确定度的估计。遇到这情况时,可以将E2E的方法退回到传统的方法之中。

强化学习需要用到仿真环境,最后作者介绍了一些关于基于仿真环境训练强化学习的一些策略。

4. BEHAVIOR-AWARE MOTION PLANNING

第二章的大部分方法需要对其他交通参与者未来的行为进行预测,然而当环境拥挤时,预测每一个动态物体的运动是不现实的。

DARPA城市赛中有不少关于tactical planning(战术层规划)的方案,比如状态机、决策树等等,但这些rule-based的方案难以估计未知的、复杂变化的场景。

作者写到自动驾驶汽车和交通参与者之间能够进行交互、互相推断各自意图,基于所见进行推断但不需要明确的通信。这和V2X或者车路协同等等方式有些不太一致,没有明确的信息,可能会产生更大的不确定性,会威胁到整个交通系统的安全。

4.1. Cooperation and Interaction

多智能体之间的交互是十分重要的。一个智能体依赖于其他智能体作出决策,在遇到环境复杂、不确定的情况下,很可能会产生“不确定爆炸(exploding uncertainty)”和“机器人冻结问题”(freezing-robot problem,简单理解就是机器人面对过多的选择而无法进行决策)。对此,有以下三种主要的解决方案:

  • 更好的环境建模以及对未来预期的建模。但依然会存在Freezing-robot Problem。
  • 相当于假设所有其他机器人都是可控的:这会让策略非常激进,同时会带来潜在的风险。
  • 基于联合分布的方式:包括联合概率分布和联合代价(cost)分布。

下面是一篇关于协作式规划(cooperative planning)的综述,cooperative planning不考虑与其他车辆、基础设施通信的问题,即不考虑V2X。
Ulbrich S, Grossjohann S, Appelt C, Homeier K, Rieken J, Maurer M. 2015. Structuring cooperative behavior planning implementations for automated driving. In 2015 IEEE 18th International Conference on Intelligent Transportation Systems (ITSC), pp. 2159–65. New York: IEEE

4.2. Game-Theoretic Approaches

博弈论有一个前提:假设所有的agent都会以采取最优的策略进行决策。这类方法可以用类似于基于概率的方式去计算,比如最大似然估计和最大后验估计。

博弈论的方法和上一种方法的区别在于并非基于联合代价或分布进行的:在双方博弈中,自车首先计算一个动作,然后模拟其他车辆以最大化自身预期奖励,其结果可能是高度交互的而不是被动反应的。

但随着agent数量的增多,会使得博弈问题呈指数级增长。一种简答的解决方法是将动作空间进行离散化,然后去搜索所有的可能。比如采用决策树的方式,但决策树也会随着agent的增多,指数级增长。为了更快实现最优或近似最优,有采用Monte Carlo tree search的方式;为了减少计算复杂度,有只让车辆受到前车的影响,从而将问题的复杂简化到agent数量的二次方。

也有采用Stackelberg game的方法,考虑最坏的情况,从而使每个agent不完全依赖于其他所有agent。这种方式复杂度较低,与agent呈线性关系,但决策速度较慢,决策较为保守。

4.3. Probabilistic Approaches

这一节主要讲了概率方法在自动驾驶领域中的应用。其中提到了一些具体的方法,比如Wei等人基于高速公路并道场景,使用MDP(Markov decision process)作为决策方法,搜索出可能的策略集,再依据cost fuction,选出最优的策略;还有使用离散流形来进行轨迹采样,智能驾驶模型来描述车流中单个车辆的纵向位置和速度的动力学,以及使用粒子滤波器来估计行为参数等。此外,还介绍了如何使用概率图模型来描述观测数据之间的依赖关系。这些方法的目标是提高自动驾驶车辆在复杂交通环境中的决策能力和安全性。

4.4. Partially Observable Markov Decision Processes

这一节介绍了部分可观察马尔可夫决策过程(Partially Observable Markov Decision Processes,POMDP)的概念和应用。在概率情况下,这个问题通常被建模为一个部分可观察的马尔可夫决策过程,其中其他代理的意图和重新规划程序并不是直接可观察的。POMDP通常离线进行,不仅仅计算当前状态的最优策略,而是计算每一个可能观测状态的最优策略。

POMDP问题是PSPACE完备的,也就意味着POMDP问题的解决需要花上大量的计算时间,这与决策模块所要求的100ms是冲突的。有些研究通过在预先规划的路径上规划所有车辆的运动,降低了给定问题的状态空间维数,简化问题。

PSPACE是计算机科学中的一个概念,代表着一类计算问题的复杂度。具体来说,PSPACE表示能够在多项式空间复杂度内解决的问题,即问题的解决所需的计算空间与问题规模的多项式成正比。这类问题通常涉及到对大量状态或组合的搜索和存储,如棋类游戏的解法、自动机的行为分析等。PSPACE问题的解决通常需要使用高级算法和数据结构。

有些研究在POMDP中整合了其他车辆的意图以及道路信息。POMDP也可不考虑交通参与者之间的交互,只考虑自车能达到的状态。作者还指出规划的视野一般小于10s,在高速公路或者城市道路场景中,实际所需的驾驶动作还是相对不多的,所以规划只需要达到一定精度就行,不用达到最优的状态。同时在抽象的轨迹上进行规划而不是具体的轨迹上进行规划,能够显著降低复杂度。

为POMDP找到合适的符号表示是困难的,因为它在很大程度上取决于具体的任务和情况。通常的方法是使用连续空间的等距离散化。一方面,这样的离散化通常过于粗糙,不能代表足够的细节来找到问题的解决方案。另一方面,它对不需要高精度的信息进行冗余编码。

4.5. Learning-Based Approaches

主要介绍了基于数据驱动的学习方法,该方法被应用于自动驾驶中的行为感知和运动规划。这些方法通常会将决策和规划分离开来,通过使用监督学习方法,如支持向量机、高斯混合模型(Gaussian mixture models)和人工神经网络,来训练模型。此外,反向强化学习技术(IRL)也被广泛用于学习专家驾驶员的决策和行为模式,并用于生成自动驾驶的决策和规划。最后,该节还介绍了一些新兴的学习方法,例如最大熵深度逆强化学习和对抗生成式模型学习,这些方法可以直接从原始输入数据中学习自动驾驶的行为模式。

5. VERIFICATION AND SYNTHESIS

暂略

6. FLEET MANAGEMENT

暂略

7. CONCLUSION

  • 数据驱动的方式还是需要进一步的创新。
  • 要保证自动驾驶汽车(算法)的可验证性、安全性和可解释性。
  • 提升各类算法的泛化能力,以使自动驾驶汽车能够适应各类场景。

展望

  • 复杂环境下的安全性、系统兼容性以及交互性
  • 不确定环境下保证安全性能
  • 极端场景下的适应能力
  • 继续探索基于学习的方法
  • 算法需要验证与评估
  • 需要开发具有随机路线、在线性能和有限服务质量的大规模车队管理方法。

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

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

相关文章

一篇读懂辐射检测仪应用解决方案技术(附方案选型及原理分析)

关于常见的辐射检测仪应用方案: 辐射检测仪是用于测量环境中辐射水平的设备,常用于核电站、医疗机构、实验室和核辐射工作场所等地方。以下是一种可能的辐射检测仪应用方案: 实时监测:辐射检测仪可以实时监测环境中的辐射水平&am…

NIST测试包的可能问题

其实,大多数出现的问题,可能或多或少都可能跟数据集的大小相关。 如: Random Excursions Variant,在测试结果中,可能显示为横线,打开原始报告,可以看到: WARNING: TEST NOT APPLICABLE. THERE ARE AN INSUFFICIENT NUMBER INSUFFICIENT NUMBER OF C…

【C++ 学习 ⑰】- 继承(下)

目录 一、派生类的默认成员函数 二、继承与友元 三、继承与静态成员 四、复杂的菱形继承及菱形虚拟继承 五、继承和组合 一、派生类的默认成员函数 派生类的构造函数必须调用基类的构造函数初始化基类的那一部分成员。如果基类没有默认构造函数,那么必须在派生…

spring框架:简介+依赖注入

目录 一、spring简介 二、创建项目 三、spring创建对象 四、SpringBean管理 1.注入实现-XML 2.注入实现-注解 一、spring简介 spring诞生与2003年,是一个轻量级的、IOC( Inversion Of Control 控制反转)和AOP(Aspect Oriented Programming 面向切面编程)的jav…

linux挂载内网镜像源文件,支持yum安装

cd /etc/yum.repos.d/vim kylin_aarch64.repo 重建yum缓存 yum clean allyum makecacheyum repolist

【vue】实现高性能虚拟滚动的Vue代码解析

在前端开发中,当需要展示大量数据时,如何保持页面的流畅性是一个挑战。传统的滚动方式会将所有数据一次性渲染到页面,这可能导致页面加载缓慢甚至崩溃。而虚拟滚动技术能够解决这个问题,它只渲染可视区域内的数据,从而…

Vue2向Vue3过度Vuex核心概念actions

目录 1 核心概念 - actions1.定义actions2.组件中通过dispatch调用 2 辅助函数 -mapActions 1 核心概念 - actions state是存放数据的,mutations是同步更新数据 (便于监测数据的变化, 更新视图等, 方便于调试工具查看变化), actions则负责进行异步操作 说…

用Python写一个武侠游戏

前言 在本教程中,我们将使用Python写一个武侠类的游戏,大的框架全部搭好了,很多元素都可以自己添加,让游戏更丰富 📝个人主页→数据挖掘博主ZTLJQ的主页 个人推荐python学习系列: ☄️爬虫JS逆向系列专栏 -…

PHP自己的框架cookie()使用(完善篇七)

1、PHP自己的框架cookie() 2、cookie类&#xff08;CookieBase.php&#xff09; <?php class CookieBase {/*** 设置cookie*/public static function set($name, $value, $expire 3600, $path , $domain , $secure false, $httponly false) {setcookie($name, $valu…

Verilog 实现超声波测距

Verilog 实现超声波测距 教学视频&#xff1a; https://www.bilibili.com/video/BV1Ve411x75W?p33&spm_id_frompageDriver&vd_source19ae31dff4056e52d2729a4ca212602b 超声波测距原理 参考资料&#xff1a;STM32的超声波测距程序_超声波测距stm32程序_VaderZhang的…

cs231n assignment3 q5 Self-Supervised Learning for Image Classification

文章目录 嫌墨迹直接看代码Q5 Self-Supervised Learning for Image Classificationcompute_train_transform CIFAR10Pair.__getitem__()题面解析代码输出 simclr_loss_naive题面解析代码输出 sim_positive_pairs题面解析代码输出 compute_sim_matrix题面解析代码输出 simclr_lo…

37、springboot 为 spring mvc 提供的自动配置及对自动配置的一些自定义定制(大体思路)

springboot 为 spring mvc 提供的自动配置及对自动配置的一些自定义定制&#xff08;大体思路&#xff09; ★ Spring Boot主流支持两个MVC框架&#xff1a; Spring MVC&#xff08;基于Servlet&#xff09; Spring WebFlux&#xff08;基于Reactive&#xff0c;属于响应式AP…

开源双语对话语言模型 ChatGLM-6B 本地私有化部署

本文首发于&#xff1a;https://www.licorne.ink/2023/08/llm-chatglm-6b-local-deploy/ ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型&#xff0c;基于 General Language Model (GLM) 架构&#xff0c;具有 62 亿参数。结合模型量化技术&#xff0c;用户可以在消费级…

人员跌倒检测识别预警

人员跌倒检测识别预警系统通过pythonopencv深度学习网络模型架构&#xff0c;人员跌倒检测识别预警系统实时监测老人的活动状态&#xff0c;通过图像识别和行为分析算法&#xff0c;对老人的姿态、步态等进行检测和识别&#xff0c;一旦系统检测到跌倒事件&#xff0c;立即发出…

Vue2向Vue3过度Vuex核心概念state状态

目录 1 核心概念 - state 状态1.目标2.提供数据3.访问Vuex中的数据4.通过$store访问的语法5.代码实现5.1模板中使用5.2组件逻辑中使用5.3 js文件中使用 2 通过辅助函数 - mapState获取 state中的数据1.第一步&#xff1a;导入mapState (mapState是vuex中的一个函数)2.第二步&am…

Dubbo—流量管控

此任务基于一个简单的线上商城微服务系统演示了 Dubbo 的流量管控能力。 线上商城的架构图如下&#xff1a; 系统由 5 个微服务应用组成&#xff1a; Frontend 商城主页&#xff0c;作为与用户交互的 web 界面&#xff0c;通过调用 User、Detail、Order 等提供用户登录、商品…

为什么使用Nacos而不是Eureka(Nacos和Eureka的区别)

文章目录 前言一、Eureka是什么&#xff1f;二、Nacos是什么&#xff1f;三、Nacos和Eureka的区别3.1 支持的CAP3.2连接方式3.3 服务异常剔除3.4 操作实例方式 总结 前言 为什么如今微服务注册中心用Nacos相对比用Eureka的多了&#xff1f;本文章将介绍他们之间的区别和优缺点…

推荐前 6 名 JavaScript 和 HTML5 游戏引擎

推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建3D应用场景 事实是&#xff0c;自从引入JavaScript WebGL API以来&#xff0c;现代浏览器具有直观的功能&#xff0c;使它们能够渲染更复杂和复杂的2D和3D图形&#xff0c;而无需依赖第三方插件。 你可以用纯粹的JavaScript开…

Nuxt3打包部署到Linux(node+pm2安装和运行步骤+nginx代理)

最近&#xff0c;我们项目组的工作接近尾声&#xff0c;需要把项目部署上线。由于前端第一次使用Nuxt3框架&#xff0c;后端也是第一次部署Nuxt3项目&#xff0c;所以刚开始出现了很多问题。在我上网搜索很多教程后&#xff0c;得到了基本的流程。 1.服务器安装node.js环境 N…

Linux常用命令_文件搜索命令

文章目录 1. 文件搜索命令find2. 其他搜索命令2.1 文件搜索命令&#xff1a;locate2.2 文件搜索命令&#xff1a;which2.3 文件搜索命令&#xff1a;whereis2.4 文件搜索命令&#xff1a;grep 1. 文件搜索命令find 2. 其他搜索命令 2.1 文件搜索命令&#xff1a;locate 作为f…