PRN(20201231):驾驶人驾驶决策机制遵循最小作用量原理

2024-09-08 09:18

本文主要是介绍PRN(20201231):驾驶人驾驶决策机制遵循最小作用量原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

王建强, 郑讯佳, 黄荷叶. 驾驶人驾驶决策机制遵循最小作用量原理[J]. 中国公路学报, 2020, v.33;No.200(04):159-172.

观点:

为提升智能汽车的自主决策能力,使其能够学习人的决策智慧以适应复杂多变的道路交通环境,需要揭示驾驶人决策机制。

依据:

物理学中常用最小作用量原理解释自然界(包括物理和生物行为)极值现象。同时,最小作用量原理还用于解释蚂蚁在觅食过程中寻找到的最优路径和行人在草地上踩踏出的最优路径,以及解决机器人和生物力学中的任务级问题。最小作用量原理的意义在于:对于任一力学体系,存在名为作用量的积分 S S S,其对于实际运动有最小值,即它的变分 δ S \delta S δS 0 0 0

而人类驾驶过程和自然界中多种物理过程都具有对应的极值现象,因此可基于最小作用量原理建立驾驶过程所对应的作用量,通过求解和分析作用量的极值以揭示驾驶人决策机制。

方法与实验

驾驶人行为的极值特性

对33名驾驶人开展了共计32.5小时的试验,得车辆的车头时距、横向位置和加速度的分布规律如下图所示:
在这里插入图片描述
上图数据显示,90%的车头时距集中在0.6~ 3.6s,90%的车辆中心线与车道中心线距离保持在-0.77~0.69m(负号为向左偏),90%的加速度分布在-0.594 ~0.485 m . s − 2 m.s^{-2} m.s2。这些数据反映出,驾驶人纵向上习惯保持一定的车头时距,加速度力图稳定在0,横向上车辆与车道中心线的距离基本保持稳定,特征参数体现出一定的极值现象。

特征参数极值既反映了驾驶人的行为特性,又体现了驾驶人的决策目标,其根本原因在于:驾驶人“趋利避害”的决策机制,其基本策略和原则就是在获得较高的机动性和安全性()的同时,避免碰撞和违法()。

决策的理想目标是:安全和效率达到最佳平衡,使两者综合性能最优。

构建适用于驾驶过程的力学系统

驾驶过程中车辆将受到人-车-路闭环系统三方面作用:1)驾驶人期望目标的驱使;2)动态交通环境的影响;3)交通规则的约束。

交通流总是像物体进行自由落体运动一样朝着某一确定的方向定向移动,根据这种思想,将车辆的运动视为小球从U形槽的顶端向下滚动的过程:

在这里插入图片描述
然后,论文分别构建了自由行驶、跟车、换道以及任意场景下的驾驶过程力学模型:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面对涉及的几种力进行说明:

  • 虚拟驱动力G:代表驾驶人在当前道路中对机动性的追求,即代表了驾驶人对效率的追求。
  • 虚拟约束阻力R:反映驾驶人在交通环境中受到的影响。
  • 横向虚拟约束力 F l F_{l} Fl:反映驾驶人受车道线约束的作用。
  • 等效力 F i j F_{ij} Fij:代表 j j j车对 i i i车造成的不利影响,这种车与车之间的交互影响会产生行车风险。

此外,力学模型还对交通扰动进行建模:交通环境中当某一道路使用者的行驶状态与交通流中的其他道路使用者有明显的区别时,即产生交通扰动。

自由行驶场景

L i , e = 1 2 m i v i 2 − ∫ t 0 t f [ ( R i − G i ) v i , x + ( F l i , r − F l i , l ) v i , y ] d t (1) L_{i,e}=\frac{1}{2}m_{i}v_{i}^{2}-\int_{t0}^{tf}[(R_{i}-G_{i})v_{i,x}+(F_{li,r}-F_{li,l})v_{i,y}]dt \tag{1} Li,e=21mivi2t0tf[(RiGi)vi,x+(Fli,rFli,l)vi,y]dt(1)

其中:
G i = m i g sin ⁡ ( θ i , x ) G_{i}=m_{i}g\sin(\theta_{i,x}) Gi=migsin(θi,x), sin ⁡ ( θ i , x ) = k v d e r v l i m i t \sin(\theta_{i,x})=k\frac{v_{der}}{v_{limit}} sin(θi,x)=kvlimitvder,此处 k = 0.2 k=0.2 k=0.2
R i = m i g sin ⁡ ( θ i , x ) ( v i v l i m i t ) R_{i}=m_{i}g\sin(\theta_{i,x})(\frac{v_{i}}{v_{limit}}) Ri=migsin(θi,x)(vlimitvi), v i v_{i} vi为当前车速, v l i m i t v_{limit} vlimit为道路限速, v d e r v_{der} vder为驾驶的期望速度
F l i = 1.5 m i l t ( l w 2 − r l i ) F_{li}=1.5m_{i}l_{t}(\frac{l_{w}}{2}-r_{li}) Fli=1.5milt(2lwrli), l t l_t lt为车道线类型(如虚线取 l t = 2 l_{t}=2 lt=2,实线取 l t l_t lt=3), r l i r_{li} rli为车辆与道路边界的距离, l w l_{w} lw为车道宽度。

目前的参数还算简洁明了,也有建议的值。

代入欧拉-拉格朗日方程可以求得:

{ m i v ˙ i , x + ( R i − G i , x ) = 0 m i v ˙ i , y + ( F l i , r − F l i , l ) = 0 (2) \left\{\begin{matrix} m_{i}\dot{v}_{i,x}+(R_{i}-G_{i,x})=0 \\ m_{i}\dot{v}_{i,y}+(F_{li,r}-F_{li,l})=0\end{matrix}\right. \tag{2} {miv˙i,x+(RiGi,x)=0miv˙i,y+(Fli,rFli,l)=0(2)

进一步简化可得:

{ a i , x = 1.96 v d e r v l i m i t ( 1 − v i v l i m i t ) a i , y = 1.5 [ l t , r ( l w 2 − r l i , r ) − l t , l ( l w 2 − r l i , l ) ] (3) \left\{\begin{matrix} a_{i,x}=1.96\frac{v_{der}}{v_{limit}}(1-\frac{v_{i}}{v_{limit}})\\ a_{i,y}=1.5[l_{t,r}(\frac{l_{w}}{2}-r_{li,r})-l_{t,l}(\frac{l_{w}}{2}-r_{li,l})]\end{matrix}\right. \tag{3} {ai,x=1.96vlimitvder(1vlimitvi)ai,y=1.5[lt,r(2lwrli,r)lt,l(2lwrli,l)](3)

备注: a i , y a_{i,y} ai,y向左为正。

对公式(3)的解释:当前方没有其它车辆时,车的速度小于道路限速时,加速度为正,驱使自车速度趋近道路限速;反之,当自车速度小于车道限速时,则加速度为负,驱使自车减速至道路限速;而下方的公式会使自车尽量沿道路中心线行驶,但是因为有虚实线差别,当车道左右车道线虚实不同,则该公式会使自车略微向虚线一侧偏。

跟车场景

L i , , c f = 1 2 m i v i 2 − ∫ t 0 t f [ ( R i − G i ) v i , x + ( F l i , r − F l i , l ) v i , y ] d t − ∫ t 0 t f F j i ( v i − v j ) d t (4) L_{i,,cf}=\frac{1}{2}m_{i}v_{i}^{2}-\int_{t0}^{tf}[(R_{i}-G_{i})v_{i,x}+(F_{li,r}-F_{li,l})v_{i,y}]dt-\int_{t0}^{tf}F_{ji}(v_{i}-v_{j})dt \tag{4} Li,,cf=21mivi2t0tf[(RiGi)vi,x+(Fli,rFli,l)vi,y]dtt0tfFji(vivj)dt(4)

其中,
F j i = 1 2 m j v j 2 r 0 ( 1 d j i ∗ 2 − 1 d j i ′ 2 ) F_{ji}=\frac{1}{2}m_{j}v_{j}^{2}r_{0}(\frac{1}{d_{ji}^{*2}}-\frac{1}{d_{ji}'^{2}}) Fji=21mjvj2r0(dji21dji21),
d j i ′ d_{ji}' dji F j i F_{ji} Fji的最大有效作用距离,此处设置为2s的车头时距,
r 0 r_{0} r0为距车距离
d j i ∗ = k x x j i 2 + k y y j i 2 d_{ji}^{*}=\sqrt{k_{x}x_{ji}^{2}+k_{y}y_{ji}^{2}} dji=kxxji2+kyyji2 ,
k x = 1 , k y = A 2 B 2 , A = 1.5 v j , B = l w k_{x}=1,k_{y}=\frac{A^{2}}{B^{2}},A=1.5v_{j},B=l_{w} kx=1,ky=B2A2,A=1.5vj,B=lw,表示纵向距离 j j j车1.5s车头时距的A点处的风险与横向上距离 j j j车具有1倍车道宽的B处的风险等级相同。

与交通扰动带来的风险对应的拉格朗日量定义为:

L i , p = ∑ j = 1 n 1 2 m i ( v i − v j ) 2 − ∑ j = 1 n ∫ t 0 t f F j i ( v i − v j ) d t (6) L_{i,p}=\sum_{j=1}^{n}\frac{1}{2}m_{i}(v_i-v_j)^2-\sum_{j=1}^n\int_{t0}^{tf}F_{ji}(v_i-v_j)dt \tag{6} Li,p=j=1n21mi(vivj)2j=1nt0tfFji(vivj)dt(6)

换道场景

对换道意图构建虚拟驱动力
G i , x = m i g sin ⁡ [ a r c cos ⁡ ( cos ⁡ ( θ i , x ) cos ⁡ ( θ i , y ) ) ] cos ⁡ ( θ i , y ) G_{i,x}=m_{i}g\sin[arc\cos(\cos(\theta_{i,x})\cos(\theta_{i,y}))]\cos(\theta_{i,y}) Gi,x=migsin[arccos(cos(θi,x)cos(θi,y))]cos(θi,y)
G i , y = m i g sin ⁡ [ a r c cos ⁡ ( cos ⁡ ( θ i , x ) cos ⁡ ( θ i , y ) ) ] sin ⁡ ( θ i , y ) G_{i,y}=m_{i}g\sin[arc\cos(\cos(\theta_{i,x})\cos(\theta_{i,y}))]\sin(\theta_{i,y}) Gi,y=migsin[arccos(cos(θi,x)cos(θi,y))]sin(θi,y)
θ i , x = a r c sin ⁡ ( k v d e r v l i m i t ) \theta_{i,x}=arc\sin(k\frac{v_{der}}{v_{limit}}) θi,x=arcsin(kvlimitvder)与驾驶人在纵向上的驾驶期记有关
θ i , y = a r c sin ⁡ ( k c d i , a i m l w ) \theta_{i,y}=arc\sin(k_{c}\frac{d_{i,aim}}{l_{w}}) θi,y=arcsin(kclwdi,aim)与驾驶人的横向换道行为有关。

读后感

基于最小作用量原理,建立的最小作用量决策模型,通过构建各种虚拟力来对交通环境对自车的影响进行建模,模型以安全和效率综合性能最优为目标。这种思路挺有意思(当然,类似的想法早就有了,例如势场法)。在简单场景,如自由行驶场景下,建立的模型很直观。但是,随着场景的复杂,各种力之间的相互作也变得复杂,很难确保建立的模型在真实应用中有效。对于各个虚拟力的构建有依据,但是各种虚拟力合并在一起,就需要考虑各种力的平衡,以产生对自车合理的作用力,需要综合各种力来调整各个力的参数,很困难。

开头的实验数据,得出人类驾驶的行为满足极值特性,并阐述其内在动因是:驾驶人遵循”趋利避害“的基本决策机制。追求包含众多目标,例如保证行车安全、较高的通行效率、舒适的驾驶感受、尽可能节油等。

文中说,“研究中仅仅采用行车安全和通行高效作为驾驶人驾驶过程中趋利避害的目标,原因在于安全和高效是所有驾驶人在驾驶过程中的共性和根本的需求,也是常识性的驾驶目标;而舒适、节能等目标则是具有个性的驾驶人目标,通常不同的驾驶人群具有不同的需求。”对于这一解释,为什么只考虚安全与通行高效,而没有考虑舒适和节能的原因,本人不是很信服。你说个性,安全与效率,大多时候就是一个需要从中调和的量,他们俩互相制约。有些驾驶员在不同情况下,更注重效率,而少一点考虑安全性,例如逃命、紧急去医院等。安全与通行效率也是具有个性的驾驶人目标。所以,对于文中的解释,本人觉得有点自说自话了。本人觉得,安全、效率、舒适、节能都是一个驾驶员的个性维度。安全性不是一个二值型,它也是连续量,效率也是。绝对危险与绝对安全中间是连续的,效率也是。在优化的函数中,各个维度的权重确定了这个驾驶员的驾驶个性。

以上问题,也引出我一直以来一个疑问:对于自动驾驶汽车来说,需不需要个性?个性是指,在同样的场景下,不同的车作出的行为动作有区别。我个人觉得是没有必要的,自动驾驶汽车可以针对不同场景,表现出不同的行为,但是没必要不同的自动驾驶汽车在相同的任务场景下,作出不同的行为。也有说,这几个维度给用户自己调,得到一个适合他个性的自动驾驶汽车。我觉得对于社会价值、各种因素,是能找到一个最好的驾驶个性的,对人对已都好的驾驶个性。这不是追求个性,其他的个性在这种意义下都是次优的个性。

文中讨论部分提出:可以将驾驶人察觉到的主观风险与车辆运动学和动力学所反映的客观风险相结合,解析主观风险与客观风险的耦合关系,促进智能汽车的决策控制提供理论依据。

作者也对“智能汽车拟人化决策”是否有必要这一话题进行了讨论:能过学习驾驶人的驾驶技能以适其驾驶行为的研究途径一直颇具争议。原因如下:一方面,直接采用最优决策控制的方法开发智能汽车是一种有效的手段;另一方面,驾驶人的失误、不良驾驶习惯会削弱智能汽车拟人化决策方法研究意义。
作者认为:智能汽车发展的过程中,人工驾驶和智能驾驶混行情况将长期存在,开发智能汽车的重大挑战之一是如何在不影响其他人类驾驶人的情况下安全且高效地行驶。因此,探明驾驶人驾驶决策机制、开发拟人化决策算法对智能汽车的技术发展具有重要意义和促进作用。

针对拟人化决策算法的研究:

  • 揭示人的通用驾驶决策机制;
  • 学习人、模拟人、超越人、服务人的研究思路;
  • 提取驾驶人共性的决策机制;
  • 在共性决策机制的基础上,学习优秀驾驶人的驾驶行为,使智能汽车的决策过程规避驾驶人容易失误的情况,最终在驾驶决策的智能程度上超越驾驶人。

by toby
2021-01-01 元旦快乐!!!

这篇关于PRN(20201231):驾驶人驾驶决策机制遵循最小作用量原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147706

相关文章

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

Java中的xxl-job调度器线程池工作机制

《Java中的xxl-job调度器线程池工作机制》xxl-job通过快慢线程池分离短时与长时任务,动态降级超时任务至慢池,结合异步触发和资源隔离机制,提升高频调度的性能与稳定性,支撑高并发场景下的可靠... 目录⚙️ 一、调度器线程池的核心设计 二、线程池的工作流程 三、线程池配置参数与优化 四、总结:线程

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

java中反射Reflection的4个作用详解

《java中反射Reflection的4个作用详解》反射Reflection是Java等编程语言中的一个重要特性,它允许程序在运行时进行自我检查和对内部成员(如字段、方法、类等)的操作,本文将详细介绍... 目录作用1、在运行时判断任意一个对象所属的类作用2、在运行时构造任意一个类的对象作用3、在运行时判断

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语