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

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

poj 1287 Networking(prim or kruscal最小生成树)

题意给你点与点间距离,求最小生成树。 注意点是,两点之间可能有不同的路,输入的时候选择最小的,和之前有道最短路WA的题目类似。 prim代码: #include<stdio.h>const int MaxN = 51;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int P;int prim(){bool vis[MaxN];

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D

poj 1734 (floyd求最小环并打印路径)

题意: 求图中的一个最小环,并打印路径。 解析: ans 保存最小环长度。 一直wa,最后终于找到原因,inf开太大爆掉了。。。 虽然0x3f3f3f3f用memset好用,但是还是有局限性。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#incl

hdu 1102 uva 10397(最小生成树prim)

hdu 1102: 题意: 给一个邻接矩阵,给一些村庄间已经修的路,问最小生成树。 解析: 把已经修的路的权值改为0,套个prim()。 注意prim 最外层循坏为n-1。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstri

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

poj 2175 最小费用最大流TLE

题意: 一条街上有n个大楼,坐标为xi,yi,bi个人在里面工作。 然后防空洞的坐标为pj,qj,可以容纳cj个人。 从大楼i中的人到防空洞j去避难所需的时间为 abs(xi - pi) + (yi - qi) + 1。 现在设计了一个避难计划,指定从大楼i到防空洞j避难的人数 eij。 判断如果按照原计划进行,所有人避难所用的时间总和是不是最小的。 若是,输出“OPETIMAL",若