基于轨迹预测的交通冲突预警系统仿真研究
2020-05-14任润雨昆明理工大学交通工程学院云南昆明650000
任润雨 (昆明理工大学 交通工程学院,云南 昆明650000)
REN Runyu (School of Traffic Engineering, Kunming University of Science and Technology, Kunming 650000, China)
0 引 言
随着我国交通运输行业的迅猛发展,汽车保有量不断增多,随之而来的交通事故问题越来越成为我国交通运输行业的一个重大难题。仅2017 年我国交通事故总数就达到了203 049 起,其中机动车事故182 343 起,汽车事故139 412 起[1]。可以看出,交通事故的严重危害,尤其是机动车交通事故。针对这样的问题,我国交通安全领域的专家和学者对此进行了大量的研究,其中车辆碰撞预警系统的应用被认为是可以减少交通事故的方法之一。
在车辆碰撞预警系统中,需要对车辆的实时位置或运动轨迹进行估计和预测。肖献强、王其东等建立视觉概念,通过车速预估车辆的行驶轨迹,根据TLC 对驾驶员发出车辆跑偏告警[2]。王建强、迟瑞娟、张磊通过对车辆实时位置的简单估计,提出了追尾报警算法[3]。随着通信技术和定位技术的不断发展,V2X 技术可通过基站或其他车辆采用特定的通信方式得到环境信息,同时,差分全球定位系统,载波相位差分技术等定位技术的精度更高,响应也更灵敏[4-6]。这些技术广泛应用于车辆主动安全系统中,所以也对车辆碰撞预警的算法提出了新的要求和目标[7-8]。盘朝奉、丁亚强等根据简单卡尔曼滤波算法,固定基本运动状态对车辆的运动轨迹进行了实时预估[9]。湖南大学的宋晓琳等人结合车联网的应用前景,通过对车辆位置的预测,搭建了一种协同碰撞预警系统,朝着更加实用的方向研究进行[10]。李刚、王野等通过卡尔曼滤波算法对电机电动汽车的行驶状态进行估计,且预估效果显著[11]。通过对以上文献的分析,现有车辆轨迹预测算法中的误差问题依然是问题的重点。在实际应用的过程中,北京航空航天大学的马玉喆、张顺舟、丁能根等人通过弯道补偿和多级预警的方法改善了经典碰撞预警算法在弯道情况表现不佳的问题[12]。冯弟瑶、陈君毅、王宏雁等人通过仿真研究,优化了在追尾冲突中的车辆碰撞预警算法中的关键参数[13]。而且在车辆碰撞预警算法中,遇到出现交通冲突情况时,经典碰撞预警算法虽然保障了安全性,但是对于交通冲突的出现,并不能准确地进行预警,影响了驾驶员的驾驶安全。
所以本文针对这样的问题,对车辆基本状态的参数进行合理选择,来建立一种能够减少误差影响的车辆轨迹预测算法。并结合该方法,设计了一种车载交通冲突预警系统,对道路中出现交通冲突进行甄别,在保障安全的情况下,提高预警的准确度。最后通过仿真实验验证了其有效性。
1 基于容积卡尔曼滤波的车辆轨迹预测
卡尔曼滤波算法以其简便的计算和准确的预估大量应用于物体的状态估计和预测[14-15]。其中容积卡尔曼滤波算法较其他几种滤波方法相比,滤波的精度和稳定性都有所提高。由于容积卡尔曼滤波算法所具有的优点,而且根据已有研究可以看出,标准卡尔曼滤波与扩展卡尔曼滤波在轨迹预测方面依然存在着误差较大的问题,所以本文选用容积卡尔曼滤波算法对车辆的基本状态进行估计和预测[16]。
本文中讨论的车辆基本状态预估问题根据车载传感器得到车辆的位置信息(x,y,z)、纵向加速度ax、侧向加速度ay、横摆角速度γ、航向角δ 等信息,然后通过卡尔曼滤波去估计车辆的位置信息(x,y,z)、纵向速度vx、侧向速度vy和横摆角速度γ。因此,设状态向量为:
系统输入为:
观测向量为:
则可得车辆系统离散化的状态方程和观测方程为:
式中:wk和vk分别为状态估计的过程噪声和观测噪声,二者相互独立,均为零均值的高斯白噪声,设它们的协方差矩阵分别为Q和R。CKF 算法步骤如下。步骤1:时间更新
式中:Sk|k为Pk|k的平方根;Xi,k|k为计算的容积点;为通过状态方程传播输出的容积点;为状态向量的一步预测值;Pk+1|k为误差协方差一步预测值。
步骤2:量测更新
式中:Sk+1|k为Pk+1|k的平方根;Xi,k+1|k为计算的容积点;Zi,k+1|k为通过测量方程传播输出的容积点;yˆk+1|k为测量的一步预测值;Pyk+1yk+1为信息协方差矩阵;Pxk+1yk+1为交叉协方差矩阵的一步预测值;Kk+1为卡尔曼增益矩阵;xˆk+1|k+1为当前时刻的状态向量;Pk+1|k+1为当前时刻的误差协方差矩阵。
通过上式更新时间间距ΔT,对车辆的运动状态进行估计,可以提高估计准确度,减少噪声的影响,得到更加精确的车辆运动状态数据,为之后的车辆轨迹预测作铺垫。
利用Matlab/Simulink 仿真软件,通过仿真实验进行验证,假设车辆以2m/s2的加速度从0m/s 加速至10m/s 后匀速运动5s,通过容积卡尔曼滤波算法对如上所述的仿真场景中的车辆运动状态进行估计,将车辆位置和车速的测量误差与估计值误差进行对比,仿真结果如图1、图2 所示。
通过对比可以看出,测量值在噪声的影响下有着一定的误差,而估计值在经过容积卡尔曼滤波算法的滤波之后,减少了一定的误差。在本次实验中,车辆位置的测量值误差平均数为1.55m,误差最大值为2.33m,估计值误差平均数为0.41m,误差最大值为0.87m,滤波之后的误差减少了1.14m,误差最大值减少了1.46m;车辆速度的测量值误差平均数为0.74m/s,误差最大值为1.57m/s,估计值误差平均值为0.22m/g,最大值为0.54m/g,误差平均值减少了0.52m/s,最大值减少了1.02m/s,提高了估计的精度。当车辆的运动状态发生变化时,测量值和估计值都会发生大幅的扰动变化,但是通过滤波之后,削弱了这方面的影响。而且无论是车辆位置,还是车速的变化状态与测量值相比都更为精确,这保证了之后的车辆轨迹预测的精确度。
图1 车辆位置测量值误差与估计值误差对比
图2 车速测量值与估计值误差对比
而车辆轨迹的预测需要容积卡尔曼滤波算法每经过ΔT,对车辆的基本运动状态进行状态估计,得到所估计的数值后,再将式(6) 重复,计算N次,即可得到NΔT后的车辆位置。保存记录每一次的所预测的位置就可以得到车辆的预测轨迹。
为验证所设计的车辆轨迹预测算法,本文通过运用Prescan 软件,进行典型场景的仿真试验,并与基于扩展卡尔曼滤波算法的车辆轨迹预测算法进行对比。其中Prescan 仿真软件搭载的模拟传感器可以为本文提供数据支持[17]。
(1) 直线场景。车辆起步经两次加速至15m/s,如图3 所示。
由图3 可知,由于加速度的变化,使得两种车辆位置预测算法都受到了加速度变化的影响,且产生了一定的滞后。但是扩展卡尔曼滤波的整体预测精度不如容积卡尔曼滤波。而且容积卡尔曼滤波稳定性更好,可以在很短的时间内进行调整,使之精度提高。
(2) 弯道场景。车辆匀速入弯及出弯,车速为15m/s,弯道半径40m。
根据图4 可以看出,车辆在转弯时,随着车辆的运动状态发生变化,车辆位置的预测也会受到干扰,此时两种预测方法都受到了影响。但是依然可以看到扩展卡尔曼滤波的预测误差明显高于容积卡尔曼滤波,且调整的能力不如容积卡尔曼滤波算法。容积卡尔曼滤波算法的精度更高,稳定性更好。
图3 直线加速场景2.5s 位置预测误差
图4 弯道场景2.5s 位置预测误差
2 交通冲突预警系统设计
车辆碰撞预警系统作为车辆主动安全技术的一项重要技术手段广泛应用于现代车辆之中,通过雷达等传感器感知外界的信息,对可能形成的车辆碰撞提供预警[18]。但是经典的车辆碰撞预警系统在运用于交通冲突情形时,会出现预警准确度不高,预警次数过于频繁的问题。在道路交通可观测的情况下,不同道路使用者之间在时空上互相干扰,这一干扰逼迫其中(至少) 一方采取避让行为,否则就会发生碰撞,这种状况被称为交通冲突[19]。这是由于常规的预警算法针对的是当前时刻的他车运动状态做出的反应,而且局限于碰撞。而交通冲突发生时,他车可能会做出避让操作,所以若他车在较为安全的距离改变自身运动状态,可能不再会对本车造成安全方面的影响,这时经典碰撞预警算法就不能准确的进行预警。
本文针对以上所出现的问题,基于车辆的轨迹预测算法,对未来的车辆之间可能形成的交通冲突现象进行预测和判断。所以本文将所设计的车辆碰撞预警系统称为交通冲突预警系统。本文所设计的交通冲突预警系统集中于对车—车之间的交通冲突进行预警,通过车辆本身所搭载的传感器获取本车数据,通过V2X 系统获取他车的运动状态数据,从而达到安全预警的作用。
预警机制根据所预测的危险状态分为二等。根据车辆的减速操作分为普通危险状态预警和极限危险状态预警。极限危险状态即为在当前情况下必须马上进行紧急刹车制动否则一定会造成碰撞的状态。该状态以极限安全距离为基准进行判定,极限危险状态预警示意图如图5 所示。
图5 极限危险状态示意图
其中安全距离的确定,根据研究我们选取极限制动距离作为基准进行合理的设置[20]。车辆制动距离与车辆制动特性、车速等有密切的关系。根据研究,总的制动距离为:
t1为驾驶员把右脚移动到制动踏板上所需要的时间;t2为开始踏下踏板到汽车上出现制动力所经过的时间;t3为制动力增长时间;t4为制动力达到最大值以后的持续制动时间;t5为停车后到制动力解除所需要的时间。jmax为汽车最大制动减速度(m/s2),如表1;V0为汽车制动初速度(m/s)。
根据我国车辆设计标准GB877258-87,车辆制动系统协调时间,经测定t2的均值为0.09s,则t3值如表2 所示。
表1 各类型车辆的最大制动减速度表
表2 制动系统协调时间及制动力增长时间表
根据以上制动的计算,以制动距离为限进行危险状态的判定。
由于车辆轨迹预测算法考虑的是与时间的关系,所以普通危险状态的确定则以时间为判断的标准,同时还要考虑驾驶员的判断反应时间。驾驶员从感知到危险状况到做出反应的时间约为0.3s~0.8s,为驾驶员预留1s 的时间,以此作为普通危险状态的判断依据,从而使驾驶员有足够的时间判断当前的状况并进行合理的操作。所以根据以上论述,基于容积卡尔曼滤波的车辆轨迹的预测时间为3s,则普通运动状态的判断时间为2.5s。普通危险状态预警示意图如图6 所示。
预警系统根据以上所划定的危险状态进行预警,通过灯光和振动结合的方式对驾驶员进行提醒,提醒驾驶员进行合理的操作[21]。预警系统的基本预警机制:(1) 在驾驶员进行合理的操作后,系统判断脱离危险状态则预警结束;若驾驶员虽然进行了减速操作但是预警系统判定没有脱离危险状态,则会继续进行提醒且增强灯光闪烁频率和振动力度,直至预警系统判定脱离危险状态。(2) 若预警发生后,危险源所在车辆主动进行减速操作,预警系统判定危险源不会对本车造成危险,使得本车脱离危险状态,则预警结束。(3) 若预警系统进行预警,而驾驶员没有进行合理的操作进行规避,从而进入极限危险状态时,则预警系统会强制进行减速操作以避免交通事故的发生。
图6 普通危险状态预警示意图
3 典型路况的仿真对比实验
通过仿真实验对所设计的交通冲突预警系统进行模拟和验证。根据实际道路上所出现的交通冲突问题搭建典型路况下的仿真场景,路况中的车辆基本数据也根据实际进行合理设置。与车辆碰撞预警算法中的Honda 模型算法进行对比仿真实验,Honda 模型是本田汽车开发的用于车辆碰撞预警和防避撞的算法模型,公式如下:
其中:V是本车车速,Vrel是两车相对车速,V2是目标车车速,a1、a2分别是本车和目标车的最大减速度,t1、t2分别是系统延迟时间和制动时间。其中,a1、a2都取7.4m/s2、t1=0.5s、t2=1.5s。
仿真实验利用Prescan 仿真软件进行,该软件可以通过模拟传感器获得所需要的数据,方便我们构建预警系统进行仿真实验。
(1) 追尾冲突仿真实验。深颜色的A 车和浅颜色的B 车以Vkm/h(V取60km/h) 速度匀速行驶,二车相距40m,行驶10s 后A 车进行紧急制动,减速至停止。实验A 车在制动停止2s 后重新启动以2.5m/s2的加速度加速至60km/h 后匀速行驶。实验B 车分别搭载冲突预警系统和基于Honda 算法模型的碰撞预警系统,若实验B 车发生制动,在制动停止后,实验B 车重新启动以3m/s2的加速度进行加速至60km/h,对不同的预警系统进行仿真实验并进行对比,仿真场景如图7 所示。
根据多次仿真实验,可以发现在追尾冲突仿真场景下,二者都可以成功防撞,没有事故的发生。但是基于Honda 算法的碰撞系统的预警次数都比基于轨迹预测的冲突预警系统要多,而且基于轨迹预测的冲突预警系统准确预警了可能发生的冲突,说明在追尾冲突的情况下,基于轨迹预测的冲突预警系统要比基于Honda 模型的碰撞预警系统更为准确,仿真结果对比如表3 所示。
(2) 侧面冲突仿真实验。假设有一个十字交叉口,深颜色的A 车以45km/h 的速度匀速直行通过交叉口,浅颜色的B 车以45km/h 的速度匀速左转通过交叉口,二车起始位置相距100m,二车行驶4s 后实验B 车紧急制动至停止,停止1s 后重新启动,以2.5m/s2的加速度加速至45km/h,实验A 车分别搭载冲突预警系统和基于Honda 算法模型的防避撞系统,若实验A 车发生制动,在制动停止后,实验A 车重新启动以3m/s2的加速度进行加速至45km/h,对不同的预警系统进行仿真实验并进行对比,若两车会在交叉口发生碰撞,仿真场景如图8 所示。
图7 追尾冲突仿真实验示意图
表3 追尾冲突实验仿真结果对比
图8 侧面冲突仿真实验示意图
根据表4,由仿真实验可以看出,在侧面冲突仿真实验场景下,二者都成功实现了避免碰撞,没有事故的发生。当他车发生运动状态的变化时,基于轨迹预测的交通冲突预警系统准确判断到了这一变化,并反馈给驾驶员。说明它的预警更准确,预警次数也更少,增强了安全性,仿真对比结果如表4 所示。
4 结 论
综上所述,可以得到以下结论:(1) 基于容积卡尔曼滤波算法,建立了基于该算法的车辆轨迹预测算法模型。进行了不同算法的对比试验,试验表明,基于容积卡尔曼滤波的车辆轨迹预测算法车辆运动状态估计更精确,误差更小。(2) 设计了基于轨迹预测的交通冲突预警系统,针对在发生交通冲突时经典碰撞预警算法中出现的预警不准确的问题,与基于Honda 模型算法的经典碰撞预警系统做仿真对比实验。建立仿真实验场景并经过多次仿真实验进行验证,实验表明基于轨迹预测的交通冲突预警系统能够使预警更为准确,使驾驶安全性有所增强。
表4 侧面冲突实验仿真结果对比