# 控制自动驾驶汽车驶过交叉路口方法的对比研究
## 第一章 引言
自动驾驶是人工智能新时代的一个重要课题。目前,自动驾驶汽车已经开始走出实验室,与普通汽车一起行驶在马路上。它们的出现减少了交通事故及交通拥堵的发生,并改善了我们在拥挤不堪的城市中的流动性。根据预测,到 2035 年,大多数汽车都将具备完全自动驾驶功能[[1](#_bookmark43)]。
在驾驶的过程中,在交叉路口发生碰撞的概率远比在道路中间发生碰撞的概率高。比起有信号灯的交叉路口,无信号灯的交叉路口面临更多的问题,比如需要判断对方司机的行为意图、需要尽可能少地妨碍其他车辆等。因此如何能让自动驾驶汽车安全地、无碰撞地通过无信号灯交叉路口,还能同时保证通行效率,是本文要讨论的问题。
目前已经有一些团队在通过交叉路口的问题上设计了通行策略。这些方法中有传统的方法,例如基于碰撞时间的方法(Time-to-collision,简称 TTC)[[2](#_bookmark44)]以及基于概率风险指标的算法(ProbabilisticRiskMetrics,简称 PRM)[[3](#_bookmark45)]。TTC 算法根据两车的距离与速度之差的比值大小来决定通行还是停车,而 PRM 算法则是根据当前对当前路口情况的风险评估来决定是否通过。还有一些团队使用了迁移学习的方法[[4](#_bookmark46)],他们的策略是从人类驾驶员的行为中学得的。但是这种方法的缺陷是,如果自动驾驶汽车发现自己处在一个从未遇到过的情况,即不在训练数据中,就有可能无法正确处理它们。除此之外,也有一些团队研究了基于强化学习的方法[[5](#_bookmark47)],即是在各种选择(加速、减速)中随机地尝试,并将成功或失败的方法存储起来,用于更新策略。
本文做出的贡献是重新实现了传统方法、研究了不同的强化学习方法,并对这些方法进行了对比分析。其中的强化学习方法我们采用了深度 Q 网络(DeepQNetwork,简称 DQN)[[6](#_bookmark48)]和邻近策略优化(ProximalPolicyOptimization,简称 PPO)[[7](#_bookmark49)]。结果显示,车流量小的情况下,传统方法能做到 100% 无碰撞通过路口;在车流量大且容许少量碰撞的情况下,强化学习方法比传统方法用时更少。
本文剩余的章节和内容安排如下:第二章重点介绍了本文所使用的方法,包括传统方法 TTC 和 PRM 算法,以及强化学习 DQN 和 PPO 算法,并详细介绍状态表示、动作集合等强化学习模型细节;第三章介绍了实验内容以及实验环境,并引入评估标准对上述 4 种算法进行考量;第四章深入分析了实验结果以及各个算法的特点;第五章对全文进行总结,对传统算法及强化学习算法的优势对比作了深入的分析,并展望未来可能的发展方向。
## 第二章 研究方法
自动驾驶汽车通过交叉路口的问题,可以用传统的 TTC 和 PRM 算法来解决,还可以建模成强化学习任务,进而用 DQN 和 PPO 的算法来解决。本章重点介绍了本文使用的研究方法,解释各算法的基本概念,并阐述建模的过程。
### 2.1TTC 算法
TTC 最早是由 HaywardJ.C.提出的[[8](#_bookmark50)]。TTC 方法反映了刹车过程中人们先是感觉到危险,后危险消退的主观感受。其将 TTC 方法定义为“两辆车以当前的速度和路径继续行驶,发生碰撞所需的时间”。它是随时间变化的度量值,也就是说,我们可以在任意一小段时间片段中计算出 TTC 的值。该方法后来用于确定驾驶员辅助系统激活紧急刹车的标准,以减少高速公路上的追尾事故数量[[2](#_bookmark44)]。TTC 作为一个指标,可以系统性地观察碰撞之前的过程,这有助于我们分析、诊断和解决交通安全问题。在交通事故的技术研究中,TTC 已被证明是评估碰撞严重性的有效方法。
在本问题中,我们引用了 BoutonM.etal.在交叉路口中 TTC 的定义[[9](#_bookmark51)]:考虑一条由本车中心为起点、往前进方向的一条射线,本车与另一辆车 i 的 TTC 为车辆 i 以当前速度沿当前方向与射线交叉所需要的时间。例如,在图 [2-1](#_bookmark3) 中,本车与车辆 i 的 TTC 为 di 与它速度 vi 的比值。
我们计算本车与其它所有车辆的 TTC,并取它们的最小值,记为 TTCsafe。如果在仿真时连续两帧中的 TTCsafe 值均大于 TTC 阈值,则令本车启动。一旦决定启动,本车将由 IDM 控制器接管,驶入路口并控制本车通过路口。
![](https://www.writebug.com/myres/static/uploads/2021/12/21/b45880163708e45c64e5b9a005b40f78.writebug)
图 2-1TTC 计算方法示意图
### 2.2PRM 算法
人类驾驶员经常由于疏忽大意或者错误判断而发生碰撞。对于自动驾驶汽车来说也是一样,自动驾驶汽车很难通过十字路口或者与人类驾驶的汽车进行互动。PRM 算法是 McGillS.G.etal.在 2019 年提出的新方法,他们为了解决这一挑战,对交叉路口发生碰撞的风险进行建模,并部署完整和共享的自动驾驶系统来提高车辆的安全性。他们提出了一个风险模型,该模型考虑了交叉路口的车流、遮挡、传感器的误差以及驾驶员注意力的集中程度,来估计本车通过路口的风险。
在我们的实验环境中,所有车辆都是无遮挡的,可以互相看见对方;传感器也是无误差的。因此我们的建模会比上面的建模方法简单很多。下面介绍我们的建模:令 tc 为本车从现在开始以当前速度 ve 完全通过交叉路口所需要的时间。考虑一辆速度为 vi、距离交叉路口 di 的车流车辆,我们定义这辆车的风险为
![](https://www.writebug.com/myres/static/uploads/2021/12/21/688c0e85942145810080200491452294.writebug)
其中 λa>0 是模拟车流车辆注意力的参数,λa 越大表示注意力越高,看得更远;ds 是车流车辆的刹车距离。若这辆车需要超过 tc 的时间来通过路口,则风险为 0;相反,如果车流车辆离路口的距离小于刹车距离,则风险为 1;其它情况则根据车流车辆离路口的距离与刹车距离的差指数衰减。在计算出每辆车流车辆的风险后,取这些风险的最大值 r 作为整个路口的风险。在进入路口之前,我们通过改变本车的速度
![](https://www.writebug.com/myres/static/uploads/2021/12/21/d6abe876da41cba55837327fdbe3deca.writebug)
来控制车辆,其中 rgo 表示风险阈值,de 表示本车离路口的距离,dnudge 表示本车的起点离路口的距离。当路口风险 r 超出阈值 rgo 时,我们控制速度让本车慢慢停车;其它情况维持原速度。进入路口之后,则尽快加速到最大速度。
### 2.3 强化学习
强化学习是机器学习中的一个分支。它能采取适当的行动,使得在特定的环境下最大化收益。强化学习与有监督学习的不同之处在于,在有监督学习中,训练数据有标记正确答案,因此模型可以使用正确答案来进行训练;而强化学习中没有答案,由强化智能体自主决定怎么样完成给定的任务。在没有训练数据的情况下,它必然会从经验学习。目前,强化学习方法已经被各种软件所使用,例如在计算机集群中进行资源分配[[10](#_bookmark52)],研究人员使用了强化学习算法自动学习为挂起的进程分配与调度计算机资源,目的是最大限度地降低运行速度的损失;再如在机器人技术应用中,研究人员让机器人通过训练学习策略,将视频图像映射到机器人的动作[[11](#_bookmark53)],将输入为 RGB 的图像通过卷积
控制自动驾驶汽车驶过交叉路口方法的对比研究.zip
需积分: 8 152 浏览量
2023-02-11
17:06:11
上传
评论 1
收藏 2.69MB ZIP 举报
一枚爱吃大蒜的程序员
- 粉丝: 1w+
- 资源: 85
最新资源
- Python 程序语言设计模式思路-行为型模式:策略模式:将算法封装成独立的类,并使它们可以互相替换及支付模式数据压缩
- main.py
- Last Loaded Test.DBK
- Screenshot_20240520_163011.jpg
- ubuntu-python3-whisper-tornado docker镜像 Dockerfile
- ubuntu-python3-whisper-tornado docker镜像07
- 新录音 8.m4a
- ubuntu-python3-whisper-tornado docker镜像
- ubuntu-python3-whisper-tornado docker镜像
- ubuntu-python3-whisper-tornado docker镜像09
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈