本发明属于微观交通流自动驾驶车辆跟驰,具体涉及基于swim-td3的自动驾驶车道保持方法。
背景技术:
1、面对当前复杂交通场景,自动驾驶技术的出现为解决以上问题提供了新的思路。相对于有人驾驶,引入自动驾驶将最大限度地减少司机失误,减少道路事故。道路上将不会出现酒驾,从而减少司机造成的事故数量。在地形复杂的地区停车或驾驶车辆也无需任何技能。自动驾驶技术是指通过计算机视觉、深度学习等技术,使汽车能够自主感知道路、规划路线、避免障碍物、并能够在不需要人类干预的情况下完成驾驶操作的技术。目前,基于深度学习的预测方法在自动驾驶技术的研究热点。但这种方法依赖人为设定的规则来指导智能体的决策,但在复杂和多变的驾驶环境下可能难以适应。此外,传统方法往往无法充分利用实时感知数据和交通环境信息,导致决策效果受限。深度强化学习不依赖人工规则,具有自主学习和适应环境的能力,能够提供更强大的决策能力。双延迟深度确定性策略梯度算法(td3)是深度强化学习中用于解决连续控制问题的经典算法。它采取的是双价值网络模块来缓解深度确定性策略梯度算法中的高估问题。但策略与价值网络在更新过程中存在未归一化的问题。
技术实现思路
1、本发明的目的在于提出基于swim-td3的自动驾驶车道保持方法,解决了自动驾驶技术中,在复杂和多变的驾驶环境下需依赖人为干预,自动驾驶效果受限的问题。
2、本发明所采用的技术方案是:基于swim-td3的自动驾驶车道保持方法,具体步骤如下:
3、步骤1:以小轿车为研究对象,基于真实数据集highd,提取引导车、自动驾驶车辆、跟驰车三车模式下的自动驾驶跟驰对;
4、步骤2:基于自动驾驶车辆状态设计马尔可夫奖励过程;
5、步骤3:设计swim激活函数;
6、步骤4:基于步骤3的swim激活函数构建基于swim-td3的自动驾驶车道保持网络框架,主要包括三车模式下的环境构建,经验池,策略网络及价值网络四部分组成;
7、步骤5:对经过步骤4的网络进行训练,得到基于swim-td3的自动驾驶车道保持模型;
8、步骤6:对经过步骤5的模型进行测试,验证模型的安全性、效率及舒适度。
9、本发明的特点还在于,
10、进一步地,所述步骤1具体如下:
11、步骤1.1:选择引导车,跟驰车在不改变车道的情况下保持跟车状态;
12、步骤1.2:选择跟车轨迹片段长度不小于15秒。
13、进一步地,步骤2的具体实施步骤:
14、步骤2.1:设计构造马尔可夫奖励过程,奖励函数由一个四元组组成:m=<s,a,r,γ>,其中m代表马尔可夫决策过程,s代表状态空间,a代表动作空间,r代表奖励函数,γ代表折扣因子,γ∈[0,1];
15、步骤2.2:设计马尔可夫奖励过程的状态空间s,自动驾驶车辆的跟车过程的状态空间被定义为一个向量,s=[δvls,δvfs,δyls,δyfs],
16、其中,δvls代表自动驾驶车辆与引导车之间的速度差,δvfs代表自动驾驶车辆与跟驰车之间的速度差,δyls代表自动驾驶车辆与引导车之间的相对距离,δyfs代表自动驾驶车辆与跟驰车之间的相对距离;
17、步骤2.3:设计马尔可夫奖励过程的动作空间a,由于自动驾驶车辆纵向速度控制主要基于加速度a,因此a=a;
18、步骤2.4:设计马尔可夫奖励过程的奖励函数。
19、步骤2.4.1:设计考虑安全性的强化学习奖励函数;
20、步骤2.4.1.1:选择碰撞时间(ttc)作为汽车安全性的标志。碰撞时间表示两车碰撞前的剩余时间,它与碰撞风险呈反比(值越小,碰撞风险越高,反之亦然),其计算公式如下所示:
21、
22、其中,t代表时间;n-1和n分别表示引导车辆和跟随车辆;n-1,n组合表示与前车和后车相关的变量,sn-1,n是间隙距离,δvn-1,n是相对速度(前车速度-后车速度)。
23、步骤2.4.1.2:设计考虑安全性的奖励,鼓励在车辆驾驶过程中选择更大的ttc值,具体公式如下所示:
24、
25、
26、其中,fsafety-l代表自动驾驶车辆与引导车的安全性奖励,fsafety-f代表自动驾驶车辆与跟驰车的安全性奖励;
27、步骤2.4.2:设计考虑效率的强化学习奖励函数;
28、步骤2.4.2.1:选择车头时距(th)作为汽车效率的指标。车头时距表示引导车和跟随车达指定点之间的经过时间。在安全范围内保持较短的车头时距可以提高交通流效率,其计算公式如下所示:
29、
30、其中:ln-1表示引导车车长,vn代表后车速度
31、步骤2.4.1.2:设计考虑效率的奖励,鼓励车辆在安全范围内保持较短的车头时距,具体公式如下所示:
32、
33、
34、其中,feff-l代表自动驾驶车辆与引导车的效率奖励,feff-f代表自动驾驶车辆与跟驰车的效率奖励,th表示在当前时刻下th公式的值;
35、步骤2.4.3:设计考虑舒适度的强化学习奖励函数;
36、步骤2.4.3.1:选择急动度(jerk)作为汽车舒适度的指标。急动度被定义为加速度的变化率,在驾驶过程中,急动度变化在0附近表示车辆没有急加速,急减速,具体公式如下所示:
37、
38、其中,an(t)代表自动驾驶车辆在t时刻的加速度,an(t-1)代表自动驾驶车辆在t-1时刻的加速度,δt代表t时刻与t-1时刻时间差;
39、步骤2.4.3.2:设计考虑效率的奖励,鼓励车辆保持较小的急动度,具体公式如下所示:
40、
41、其中,fcomfort代表自动驾驶车辆舒适度的奖励;
42、步骤2.4.4:三车模式下,考虑安全性、效率及舒适度的奖励函数为:
43、r=ωs(fsafety-l+fsafety-f)+ωe(feff-l+feff-f)+ωcfcomfort (9)
44、其中,ωs、ωe、ωc分别是安全、高效、舒适的特征权重。
45、进一步地,步骤3的具体实施步骤:
46、步骤3.1:swim是上无界、下有界、非单调和平滑的。swim及其一阶导数定义为:
47、
48、
49、其中,k是一个超参数。
50、步骤3.2:在网络更新参数时引入swim激活函数,通过其缓慢饱和负输入来缓解双延迟深度确定性策略梯度算法(td3)中缺乏规范化的问题。
51、进一步地,所述td3算法包括2个当前价值网络,2个目标价值网络,1个当前价值网络,1个目标策略网络和1个经验池;其中两个当前价值网络用于减少状态-动作值函数的过高估计,两个前价值网络的结构相同,但参数不同;目标策略网络、目标价值网络的结构与策略网络、价值网络相同,但是参数不同,目标网络采取软更新,以减少学习过程中的误差;经验池主要用来存储提取到的跟驰对信息。
52、进一步地,步骤4的具体实施步骤:
53、步骤4.1:初始化当前价值网络、当前策略网络、目标价值网络、目标策略网络参数、经验缓冲池参数;
54、步骤4.2:对于每一回合的每个时间步执行如下步骤;
55、步骤4.2.1:获取当前自动驾驶车辆状态st,并通过当前策略网络获得下动作at;
56、步骤4.2.2:在动作中引入正则项即高斯噪声ò得到随机动作
57、步骤4.2.3:执行随机动作,获取奖励函数值rt和下一时刻状态st+1;
58、步骤4.2.4:将(st,at,rt,st+1)存储到经验池中;
59、其中,st代表t时刻自动驾驶车辆的状态,at代表t时刻自动驾驶车辆的动作,rt代表t时刻自动驾驶车辆的奖励,st+1代表t+1时刻自动驾驶车辆的状态;
60、步骤4.2.5:从经验池中随机抽取一小批经验样本;
61、步骤4.2.6:基于经验样本通过目标策略网络获得下一时刻动作at+1;
62、步骤4.2.7:在下一时刻动作中引入正则项即高斯噪声ò得到随机动作
63、步骤4.2.8:通过两个目标价值网络的最小值和贝尔曼方程来对目标价值函数y进行更新,
64、其中,为第i个目标价值网络的取值;
65、步骤4.2.9:将目标价值函数与当前价值网络的均方差,作为损失函数,来更新当前价值网络;
66、步骤4.2.10:通过确定性策略梯度来更新当前策略网络,下面为确定性策略梯度:
67、
68、步骤4.2.11:对目标网络进行软更新,来稳定目标网络训练,更新方式为:
69、θ′i=1,2←τθi=1,2+(1-τ)θi′ (13)
70、φ′←τφ+(1-τ)φ′ (14)
71、其中,θi=1,2为当前两个目标价值网络的参数,θ′i=1,2为下一时刻两个目标价值网络的参数,φ为当前目标策略网络的参数,φ′为下一时刻两个目标策略网络的参数,τ为软更新参数τ∈[0,1];
72、进一步地,步骤5的具体实施步骤:
73、步骤5.1:提取引导车—自动驾驶车辆—引导车三车模式跟驰对,并将提取的跟驰对随机抽样80%作为训练集,20%作为测试集;
74、步骤5.2:设置adam优化器,学习率设为3e-4,折扣回报率为0.99,经验池大小为10e6,小批量数据大小为256;
75、步骤5.3:将提取跟驰对输入网络,对网络进行训练,每200回合之后计算当前自动驾驶车辆的避碰率及平均奖励;
76、步骤5.4:训练完成后保存模型;
77、进一步地,步骤6的具体实施步骤:
78、步骤6.1:加载训练好的模型,读取测试数据集;
79、步骤6.2:计算自动驾驶车辆在测试数据集的避碰率及平均奖励;
80、步骤6.3:为了证明模型的驾驶安全性,分别对自动驾驶车辆与前车和后车的碰撞时间进行检验,并与当前人类驾驶员进行对比;
81、步骤6.4:为了证明模型的驾驶效率,分别对自动驾驶车辆与前车和后车的车头时距进行检验,并与当前人类驾驶员进行对比;
82、步骤6.5:为了证明模型的驾驶舒适度,对自动驾驶车辆的急动度进行检验,并与当前人类驾驶员进行对比。
83、本发明的有益效果是:
84、与现有技术相比,本发明提出的基于swim-td3的自动驾驶车道保持方法,该方法缓解了双延迟深度确定性策略梯度算法中缺乏规范化的问题。在网络更新参数时引入swim激活函数,通过其缓慢饱和负输入来缓解双延迟深度确定性策略梯度算法中缺乏规范化的问题。并设计考虑驾驶安全性、效率及舒适度的强化学习奖励函数以提供更安全、高效和舒适的驾驶体验。此外,我们的方法可以实时感知道路交通信息,并基于这些信息做出及时的决策和行动,保证驾驶的安全性和准确性。并且,设计了“引导车—自动驾驶车—跟驰车”三车模式下的考虑驾驶安全性、效率及舒适度的强化学习奖励函数,使驾驶员更加关注周围车辆状态变化,并优化驾驶体验。本发明的方法,相较于以往的强化学习方法,对训练过程中没有经历过的驾驶场景也具有较好的泛化能力。