网站首页 > 技术文章 正文
雷锋网新智驾按:4月24日,雷锋网(公众号:雷锋网)新智驾联合MMC在2017年上海车展举办“构建智能驾驶的关键”主题沙龙,本文来自清华大学自动化系统工程研究所教授姚丹亚的分享。本文讲述了V2X技术在自动驾驶中的一个重要应用场景,即自动驾驶汽车在路口会车时的通行决策问题。
*清华大学自动化系统工程研究所教授姚丹亚在上海车展新智驾&MMC沙龙现场
有一篇来自清华大学的论文名叫《基于完全信息动态博弈的无灯控交叉口的车辆协同驾驶模型》(作者:杨卓,姚丹亚),它试着解决了一个可能很多人都想过但还没有解决的问题,那就是使自动驾驶汽车在路口会车时相互协调,最终彼此配合完成通行决策。
你可以将它看作V2X助力自动驾驶决策的应用之一。对于V2X对自动驾驶的作用,人们谈得更多的是V2X在环境感知中的作用,即除汽车自身的传感器感知外,借助V2X完成更大范围的环境感知。
但V2X还有一个重要作用,就是协同决策。目前我们能做到在自主感知的基础上决策,但V2X环境使“群决策”成为可能,在可能在未来会是自动驾驶中的一个重要应用。
如何基于V2X实现群决策?
以一个具体的场景为例,即无信号交叉路口的车车协同。两辆车抵达路口,在没有控制中心的情况下,听谁的?它们之间是一个博弈的关系,要通过博弈,保证双方安全又顺利地通过交叉路口。
首先,做一个简单的场景描述。
1、存在参与车辆,左边驶来一辆车,下方驶来一辆车,已知彼此的速度、加速度和位置,以及达到路口会车点的距离。
2、路口为无信号交叉路口,即在没有信号灯控制。
3、存在V2X环境,车车间可以进行交互。
以上是前提假设。接下来将问题拆分。
第一,判断车辆间是否存在冲突。我们选择一个指标来描述这个冲突,这个指标就叫作“冲突时间差”,即两辆车到达冲突点的时间差值。该差值越小,就越有可能相撞,如为零则相撞,如差值很大,则代表在完全不同的时刻通过交叉点,定不会相撞。
第二,如果存在冲突,如何提前避免。在这个部分要考虑的因素很多,为了保证安全,当两辆车存在冲突时,需要用一个算法保证它们最后不相撞。因此,二者通过路口可以看成一个博弈问题。博弈包括三个要素。
要素一:对象,要存在博弈双方,此处的对象是车辆。
要素二:策略,忽略具体的油门、刹车等不同操作,用一个“加速度”来作为各种操作的表现形式,加速度构成了策略。
要素三:收益,需要定义博弈的收益。我们在模型里定义了三种收益,即安全、快速、舒适。安全是首要需求,即不能撞车;快速指的是使车辆尽快通过路口;舒适指符合人的驾驶习惯,不能过度加速和减速,保证驾驶舒适。
以上就是一些决策的基本场景假设。
基于此,两辆车的路口博弈在数学上可以看作一个有约束的多目标规划问题。即,将不同加速度组合的情况下,使获得的收益“Ω”达到最大。其中涉及一些数学问题,如多重纳什均衡、求最优解等,我们在这个模型中是用遗传算法求取最优解。
下面就具体地来计算这个问题。
对于两辆车,首先要判断其是否进入冲突区。博弈系统的实例模型如下所示,红点表示冲突点(碰撞的点),通过车辆到达冲突点的时间差判断是否进入冲突区域。
*出自该模型作者曾发表的论文
若两辆车并未进入冲突区,则不需要博弈,正常行驶即可。一旦进入冲突区,博弈即开始,通过博弈使得收益最大。前面讲到三个收益指标(安全、快速、舒适),此时就要具体定义这三个指标。
1、安全性指标。安全性指标指已到达冲突点的时间差,在这个模型中,该差值一定要大于某个给定的阈值,才能确保安全。这个公式比较简单,基本是中学时候关于距离、速度、时间的简单公式。
2、快速性指标。指的是两个周期内速度的变化,是当前时刻加速度值的直接反应。
3、舒适性指标。舒适性指标其实可以直接用加速度的绝对值来表示,绝对值越大,舒适型越差,在这个模型中我们基本选择0.25g加速度指标来进行博弈。当然,前提还是要安全,如果要发生碰撞了,那么舒适性指标是可以牺牲的。此外,舒适性指标也定义了一些不良加速度行为,如加速度增幅达到200%,或是该加速时变成反向加速度等。
对于以上三个收益值,需要做一个标准化的工作。三种数据的量纲不同,有的是时间,有的是加速度,如何求和呢?这其中就涉及到标准化问题。这里不具体解释,基本的计算方法是将当前值减去期望值除以标准差。最后,需要用到遗传算法,尽可能得到全局最优解。
仿真实验
对于这套理论,我们还没有用在实车控制中,只是进行了仿真实验。这是个具体的仿真例子。两辆车初始速度分别为60km/h和50km/h,距离冲突点的距离分别为250米和150米,设定约束条件:最大速度不能超过70km/h,最小速度是零(即停车),加速度值控制在±0.3g之间。用于求解的遗传算法在此不赘述,它主要用于获得最优解的。下图,是两车路口会车的仿真实验结合曲线图。
*出自该模型作者曾发表的论文
从上图可以看出,这次仿真实验得到了蛮有意思的结果。在这个场景下,两辆车出现了两次博弈的过程。第一次,计算得出到冲突点的时间差小于给定阈值,进行了一轮博弈后,冲突危险解除,判断安全后又开始自由驾驶;自由驾驶一段时间以后又进入了一次博弈过程,最后直到车辆安全通过路口。
上面的图给出了许多博弈曲线。第一排曲线是收益曲线,红色、蓝色代表两辆车分别的收益,绿色表示两辆车的总收益。第二排是加速度曲线,拿加速度曲线来说,博弈的效果不是特别好,因为跳动很大,博弈算法还有些需要完善的地方。第三排是速度曲线。
最后一排的碰撞时间差(TDTC)。我们为TDTC设置一个阈值,当TDTC小于阈值的时候,就会告知存在碰撞风险,开始博弈。而这个过程是变化的,一旦TDTC超出阈值,就证明没有风险,双方就可以自由驾驶。最后车辆安全驶离交通路口,这是一个完整的博弈过程。
在一些具体参数上,主要考虑三点。
第一,收益。如图,对于第一辆车而言,它得到的是负收益,第二辆车是正收益,我们的博弈规则,是将二者相加,尽量使得整体收益最大。
第二,高速度占比和不良加速度。
第三,收益函数的系数。这是一个很重要的参数,这个系数会直接影响最后博弈的效果。具体的确定的方法,我认为是值得研究的。比如,α大是更强调安全,β大是强调快速性,γ大是强调舒适性,看你如何选择评估方式。
总结
该模型的研究,考虑到了驾驶安全、舒适等指标之间的博弈和决策,避免碰撞是最重要的部分,同时也要尽可能避免那些降低舒适性的操作。未来,通过丰富策略集,可以在模型的基础上,有更多方向、更多方式的相关研究。
同时,群决策算法是一个亮点。刚才只是两辆车的模型,我们的博士生还在研究路口多车博弈的通用模型。
当然,我们现在的实验还在仿真基础上,不过也在做一些实用的产品。我们课题组和一个叫作星云互联的公司合作,开发了一些V2X的产品,如智能车载终端、路侧通信机、路侧主机等,其中内置了多种通信模块,支持多种通信方式接入,完成车车、车路之间的数据交互。目前我们的产品,主要应用在各种自动驾驶和智能驾驶测试场,同时,还推出了了一些实际应用。例如我们在校园公交系统中装入了路侧系统、校园公交车上安装了车载装置,用以测试和积累数据。此外,我们还在芜湖交警支队的支持下,在中心城区路口建设了V2X基础设施。之后,我们还和很多的企业和测试场开展更多的合作,在实际的项目中进行测试。
猜你喜欢
- 2024-10-30 不同编程语言的运行差距有多大? 不同编程语言的特点
- 2024-10-30 纪念纳什 | 如何用“纳什均衡”约约约?
- 2024-10-30 算法练习题——纸牌博弈 博弈论纸牌游戏
- 2024-10-30 [算法学习Day160]除数博弈-博弈论-奇数与偶数性质
- 2024-10-30 笔试题:了解穷举算法吗?如何用代码实现
- 2024-10-30 运营和算法之间的几次博弈 运营是方法还是思维
- 2024-10-30 突破!人工智能在游戏领域再进一步
- 2024-10-30 共识算法与分布式一致性算法 分布式共识方式
- 2024-10-30 人工智能在游戏领域再进一步 人工智能游戏用到的主要技术错误的是
- 2024-10-30 聊聊博弈论中巴什博奕问题的必胜策略
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)