Decision making at Unsignalized Intersection for Autonomous Vehicles

[复制链接]
查看9014 | 回复0 | 2022-4-9 00:50:47 | 显示全部楼层 |阅读模式
原文标题太长放不下了,完整的在这里:
. v+ l6 j; ?& |8 y. t6 @Decision making at Unsignalized Intersection for Autonomous Vehicles: Left turn Maneuver with Deep Reinforcement Learning6 X! U7 ?% m" E
下面是原文链接:5 V7 S7 G- B9 m1 N1 D
文中的EVA表示的是我们需要设计的算法的智能车:Ego Automated Vehicle/ Y  q) M7 u3 I
I. INTRODUCTION
1 ^" b  c, T1 d- y
6 [! w8 V% J7 Z0 r      交叉路口决策的文献。方法一般分为两类:rule-based approaches 和 learning-based approaches。 rule-based approaches 通常由人类知识和工程经验构建,但缺点是很依赖于建模精度和构建的系统本身;learning-based approaches 应该说是现在研究比较多的方面,各种算法都能加进去跑跑,这篇文章提出了一种基于DQL的决策控制器,先建模,然后将决策问题转变为优化问题,最后对比了DQL和DDQL算法在最优策略搜索上的优劣。' U# A( m* @2 {0 N4 a
II. UNSIGNALED INTERSECTION AND VEHICLE MOVEMENTS
) M6 [$ c* A- S5 l0 l9 n+ O8 k; J+ G# j  G) V: f
      这部分主要分两块:1、构建一个四向交叉口场景,其中车辆想要做出左转决策;2、给出车辆运动模型(包括周围的车和左转的车),建立驾驶行为控制器来管理周围车辆的驾驶意图
' @# f* J7 j: [6 o/ W, K& g4 B$ QA. Driving Scenario of Intersection
& ]" }+ U' ?& T+ n      在四通路口下,所有车辆遵守通行权规定,无信号交叉口的通行权有四层:level4:水平直线移动和右转;level3:垂直直线移动和右转;level2:水平左转,level1:垂直左转。这里需要解释一下什么是水平垂直,从驾驶员视角来看,自己始终是处于垂直位置的,所以这个通行优先权的意思就是你得先让别人过,自己先等等。而该问题中的垂直左转处于通行权最低的情况,所以策略本身就应该是先减速或停止再转弯,避免碰撞的情况下尽可能快地到终点。% X6 `' b1 Y$ F% a+ |9 J8 C& F
4 P* |2 O7 u- B& U' b

# ~) e# T( Q( r/ ~( ^; A      这篇论文很亮眼的一个点在于:专门考虑了周围的车发生碰撞的情况。为了尽可能解决这个问题,提出的方案是:每辆车在三秒的时间范围内对周边车辆的位置进行预测,根据优先通行权,尽可能避免碰撞,更详细的运动由之后的分层结构管理。
5 z1 @  e8 r5 [7 i$ P      环境设置默认如下:周围车数量N=15,EAV考虑的行为为垂直左转,持续时间15s,模拟频率20Hz,采样时间为1s(每1s选择一次控制动作),每次实验起点终点相同。这边这个持续时间的选定,15s能否顺利完成一个左转动作,在周围有15辆车的情况下?我觉得有待考证。
8 W: d5 l+ b  U5 W9 S( P9 q' |B. Vehicle Movements& Z) Y) M8 @7 }- |; U% P
采用分层控制框架来调节周围车辆和EAV的行为,这里EAV和周围车辆应用的是不同的管理模型:对于EAV,高层是提出的支持DRL的决策策略,用于管理纵向行为,底层是用于横向控制的跟踪控制器;对于周围车辆,高层是智能驱动模型(IDM),底层也是跟踪控制器。
* C! u3 U- u+ W; S* R9 `      先介绍两者相同的底层管理:横向跟踪控制,主要包括位置控制和航向控制:% c$ }( b/ c: P& r! X& e0 m, a
位置控制的模型如下:
2 N. G9 l* b3 G9 d% k, Q' t) r
% m0 ~9 c: }- @% h' P
% g/ p4 p( L  M0 a/ ^+ {2 H$ Q( ?/ ~: Y  h& \) U

/ O4 v0 M0 Y' Z1 V. G9 ]! k其中 是目标横向速度, 是位置增益, 是车辆和目标航线中心的距离差,实际上就是偏移位置,通过一个反馈增益利用横向速度调节来进行修正; 表示的是因为横向速度调节引起的角度,
: v' @+ y" r: ]4 `& ~+ d, f5 l' y1 l. L  a  C

5 `1 B' a; Z$ u$ }# S2 Q& x  |航向控制的模型如下:
! U+ o% R: O' d1 r
& ]8 o6 s5 m9 l# ~- p" `8 E
' m0 ]4 W+ c# y; b4 v" n* F1 L( m! ]0 e; e% B

$ v9 u5 ]* V1 ?  {7 G8 S1 l3 @& \! v( U* F4 W8 @/ A9 P8 I. _1 v' k' w
/ [- A2 b$ ^1 E$ F
其中 表示车道本身的角度, 表示期望的前进角, 类似的,也是一个增益, 表示转向角, 表示汽车重心到前轮的距离,我推导了一下感觉跟论文中的表述不太一样,更详细的关于运动汽车的建模可以参考下文:
$ u6 S$ {3 O8 R$ [( I# ~2 f/ C. v. x6 l/ E6 y
8 m( {% |1 q) r0 f  E) T' L
以上就是两者共用的底层管理模型。) ?2 j* y! h! ~; r8 z9 Q5 Y, d
      下面介绍IDM,也就是周围车辆所用的纵向控制模型:5 [9 h7 `; w4 S' O

, e/ o8 U& E4 G# V - Z, ?" u2 f' ^8 V* Z4 ]+ s! {
其中 表示最大加速度, 表示期望的距离和速度, 表示与前面的车的距离, 是系数,这个式子可以看出v和 与加速度的关系,一个负相关,一个正相关,符合我们日常理解,同时在任意一个满足条件时汽车就开始减速。同时 可以被更近一步表示为:
3 ~$ ]3 m4 V0 b- @3 d- V
8 t! ~' |0 k4 ]9 p; a" b( K4 u: t+ n & o  W& K8 r" B) S
这里 表示最小相对距离,T可以理解为反应时间, 是速度差,b 是根据舒适的目的减速的值。可以说是比较人性化的设计,想要表达的意思,如果两车同速,那么安全距离应该是 ,在后面的车的速度追上前车时,可以拉近的距离为 ,至于最后这个式子的依据,我个人反而更倾向于分子是 .* F  z6 m2 }9 K; C8 [( }4 C2 y/ u

" J4 k& s# [4 @. i; W6 c
7 J3 a* [) @" o2 J  M5 X1 B8 z' }' QIII. DEEP REINFORCEMENT LEARNING APPROACHES8 X2 k  E0 ^2 x$ `! H

% l" u% v8 L) b' |  ]      现在就剩下对EAV进行基于DRL的建模了
  G- j0 W: h9 ~1 v1 b' |9 vA. Definition in RL
  |6 O8 w# t7 v/ k基于RL可以将这个问题视作MDP过程,并据此定义了reward和Q,这是我们比较熟悉的,根据贝尔曼最优方程:
+ I9 H& |" I+ y9 j1 ?" d/ G( g
+ l$ y9 \2 g) b- M5 ~; F6 a
# D7 ^. ~" w0 |- c0 D通过这种递归关系,可以使用RL中的参数化函数逼近器估计最佳动作值函数,并通过经验学习参数。例如,Q-learning使用线性函数近似器来估计最优行动值函数并导出最优策略。
9 s0 z! ]& _% j. T  L, L+ _B. Deep Q-learning
' W( }5 ]; |" R5 n# g在DQL中,智能体采用神经网络作为函数逼近器,当MDP的状态空间较大时,神经网络可以更有效地逼近动作值函数,V.Mith等人提出了一种DQL算法,它是Q-学习的一种变体。在DQL中,首次提出了经验重放(experience replay),以提高数据效率和避免分歧。经验重放中的转换 是通过epsilon贪婪策略获得的。DQL算法从经验回放中随机采样N个转换。然后,通过最小化损失函数,利用样本更新网络:5 ?7 _" S5 Z8 Y1 ?7 S2 O

4 k+ f' J5 p4 B  L9 K: y) t8 \! i2 a$ l- N& Y# @7 Z
其中目标 是由目标网络 用贪婪策略导出的:8 p3 j: d$ \8 d' h) W
, T, V3 r3 T; y5 J: x1 ]0 q+ v

! W! x% [; _( A: O每k个时间步更新 是评估采样状态动作对值的预测网络。 将在每个时间步通过损失函数的随机梯度下降进行训练:4 N* y# A% S8 K: h2 k4 k& o, D+ @
* B- I; ]- D  n5 `4 d
* j2 V/ Y+ A" Z( `9 L6 Z. n; ~
DQL的问题是可能存在大量过高估计,因此在下面引出DDQL算法, E+ r. I" U+ G$ x
C. Double Deep Q-learning) b1 |2 Q' D" h6 n+ C
通过两个网络对目标估计来减少过高估计,分别是预测网络和目标网络,预测网络用于在贪婪策略下选择动作,目标网络用于动作评估,目标可表示为:8 J: u# j  g* u  k
. w- [; U- S, z: k$ L( b

% {, M8 D/ B2 wD. Specification of the MDP
! C) d- u) ?, F- m. z/ Q      对MDP过程模型进一步具体化,前面的DQL和DDQL只是用来寻找最佳策略的算法,而MDP的建模是基础。对状态、行为。奖励函数、转移模型进行了描述。  z: z' M2 Y* m$ k* S) F
      该MDP中的状态空间被构造为 ,其中Δ表示周围车辆和EAV之间的相对关系。
$ D* ~7 o. L9 m# f' l. f. `- i0 Q" G! Y0 C- P/ F/ C
" A8 }6 v2 g6 D6 H7 H
      需要DRL建模的只有纵向动作,也就只有纵向加速度,转向角也在之前被计算了:* A, j) o- q9 J7 F
/ f7 p$ P, B  J2 W1 k' G
,这个加速度设置感觉随意了些,不晓得是为了简化问题还是有别的目的,为什么不设置成step更小,更能还原现实模型的形式呢?
5 y! z! b! |  Y5 F) Q      状态转移的模型就是我们司空见惯的运动学模型:
2 G" ~1 `0 n; o* q3 m3 o: y& N" n
1 P2 S  A. ^, {- l
5 _) m, S9 ~8 S: B: f7 \; X7 W' [& o* w3 v' x5 i+ s

4 y+ q) n! `/ b# y( P& l/ y) b, R
, l) J  B1 f9 G7 W8 Y" j3 X1 g
& l  D. E% E3 g6 {+ f) z* o  a" W# Q; j
2 {4 O& i" t3 a: X7 B5 x: t
其中 表示滑移角,其他的物理量应该还比较好懂,因此进一步得到水平垂直的速度表达式:
) ^! i& H( d) b$ \# B
4 F) C- w2 M" T6 W " F. m$ Y/ w+ ^2 W3 q
位移的表达式也类似:8 M5 D/ C  V$ M8 C

8 z( c+ Q1 Y$ J1 w5 M! G4 C" U7 X - i# Y2 e+ C( e" m
      最后是关于奖励函数,文中设置为:
! U7 ?# v( e2 V7 y; @( b) Q& @1 m+ y( F: F

1 [5 g# c# O- d3 r其中collision和highest speed都只有0和1两个取值。我觉得这个奖励函数的设置是很糟糕的,相比上一篇文章来说,不仅考虑的维度不够,权重也只是简单地1:1,更要命的是居然把这两作为布尔变量,很难理解
4 t9 w$ u; r: x% A* eIV. SIMULATION RESULTS
5 |/ I8 F  z. s& a( h
5 e- ?, [' B5 d0 f4 Q      这部分就是结果展示,作者主要分了两块来讲,第一块是对DQL和DDQL两种算法得到的结果进行了对比,第二块整体来看所得模型的鲁棒性和泛用性。
2 [6 q  ?& }* g  u+ y/ j0 p2 E      A. Comparison Analysis
) w6 ?/ |' n+ w7 _, P: Z3 F      从几个方面来看:9 k) {- @! c+ T8 J) h: d# K
首先是reward,可以看到DDQL最终得到的reward高于DQL,随着episode的增加这一结果越发明显,从直观的角度来说,reward随着经验增加而增加,说明机器确实在向着我们期待的方向学习6 e/ d' K2 w, s# t: T2 Q

; Q; w; A- e. V& q
" T* U2 R: n3 o  P1 \. J然后是行驶距离,行驶距离衡量的是完成度,有图可知DDQL行驶距离更长,说明完成度更高
8 Y4 l! R6 \  r( o# ~% u( t* C4 B& `
$ I2 T: ?5 F" C: X% z6 ?' l
然后是速度分布,这衡量的是效率,如果能保证安全的前提下,肯定是速度更快的策略更优秀通过两者的速度分布,可以看到DDQL大量样本集中的速度比DQL大量样本集中的速度要高,这也就意味着DDQL有着更高的效率
3 R- d- c9 e; ?6 `4 k' b- F2 ^$ w6 u; ?: N& @8 T4 D" [
7 |" Q  c' E5 {8 x
      最后是损失函数,loss function,损失函数表示的是整个训练过程收敛的速度,收敛的情况下应该是损失为0,也就是说,越快下降到0的算法,收敛的更快,下图可见,DQL拥有更快的收敛速度,但是考虑到我们并不采取on-line policy,因此收敛的比较慢,也是可以接受的(感觉这里有点硬吹DDQL了,不过这也算是后期需要优化的点吧); D% Y$ M# T  R9 t

" Q$ R7 e: k5 y" [# D' B4 A+ L( B' V% w  I; G5 j6 O
      B. Robustness Evaluation' N6 t; I7 U3 A. s  w- r
      最后是鲁棒性分析,为了验证策略的稳健性,采用了40个测试的episodes以及视频回放,考察不同的数据集,首先考察reward:从均值和最大最小值的方面来说,都是DDRL更好8 T/ i9 C( S6 s5 `6 k+ m7 Y! D' C

* `) [, c' k& M2 T4 T6 r2 T. U
7 R2 Q8 w. ^; G有意思的是,在这些数据集中,还真有周围车辆发生碰撞的情况,这起码说明DRL是优于IDM的:/ G( L! F/ B. I' c. i# _
: |/ I8 ]. D6 y+ H" @

3 P8 L5 `! C! j接着列出了两种算法下碰撞发生的概率:虽说下降效果明显,我寻思这还是很高啊!
9 ]- Q; ?( j- P4 q3 t1 G) _# Q4 p  k3 ^* x5 w  Q: m
* ~" i* c( p5 v# P  ~/ T
然后展示了动作分布,根据前面的加速度集合,其实一共也就三个动作可以选择,下面这个box distribution表示了两种算法下的动作分布,这个指数就对应着-5,0,5三种情况,指数越大肯定说明加速阶段多,也就是效率更高,这么看也是DDRL更优秀一些
% k0 N1 N. L( c9 l4 s: B1 E6 o) R& q2 u" }1 W) k7 U6 ^, Q

4 @; N2 F3 S& X# `# M# Y8 U: T/ l" e; {( _) {2 l4 `
论文到这里就结束了,总结
+ v7 B5 V9 C# `; Y( M, {1、文章其实一共建了三个模型,EVA和周围车辆共用一个底层,然后分别用IDM和RL的方法来做高层设计,在EVA的高层又尝试了DRL和DDRL两种算法,并对两者的结果进行了比较7 J; A! z5 _% f# C- w0 K) y
2、在构建模型过程中有相对过于简化的地方,明显还能再优化5 p8 H& R, M$ {
3、亮眼之处在于由于给环境周围车辆也设计了模型,因此能够考虑到周围车辆碰撞的情况;对两种算法比较的维度相当多,这对我也是一个启发,可以从收敛速度、效率、完成度等等方面进行比较;相比于上一篇文章,设置了15辆车之多,明显是更有说服力的实验。
/ \6 R& g3 _% W& L4、虽然动作集、奖励函数看上去有点随意,运动学模型的建立还是比较精细的,尤其是自动汽车的运动规划,我觉得也是我下阶段的学习重点。
" B! A1 ~. r- F/ U8 X" ~" ]7 Z/ ], C) C: h3 L# ^
我个人对于DRL和DDRL还不是太明白,这应该是涉及到深度强化学习的知识,我打算在先掌握一定程度的RL知识后再去学,因此这里就不专门做延伸,如果到时候学到了,我会在这篇文章加链接,也算是挖个坑吧。
: |- M' O- d3 a( S# @; s; h. x6 W
主要参考资料:- C  z6 q# ^$ S5 z+ l; T% L
1、这篇文章真的很棒,几乎涵盖了自动驾驶汽车的大部分运动学模型,学算法的同时也要懂得运动学建模啊!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

312

金钱

0

收听

0

听众
性别
保密

新手上路

金钱
312 元