自动驾驶仿真的虚拟交通信号系统分析及实现

2020-05-03 13:54王贺鹏李志斌王立
汽车实用技术 2020年7期
关键词:交通灯左转信号灯

王贺鹏 李志斌 王立

摘 要:自动驾驶必须使用仿真测试方法以便加快其落地,已成为业界共识。通过探究中国交通灯的特性,为自动驾驶仿真提供中国特色交通信号灯子系统。通过 3Ds Max 构建交通灯三维模型,Infraworks绘制道路以及路口三维模型,最终基于 UE4蓝图编程实现中国交通信号灯的变换机制,以及对背景车辆的约束。

关键词:自动驾驶仿真;虚拟交通信号系统;UE4;3Ds Max

Abstract: It is an industry consensus that autonomous driving must use simulation test methods in order to accelerate its landing. By exploring the characteristics of Chinese traffic lights, we provide a traffic light subsystem with Chinese characteristics for automatic driving simulation. Construct 3D models of traffic lights through 3Ds Max, Infraworks draws 3D models of roads and intersections, and finally implements the transformation mechanism of Chinese traffic lights and restricts background vehicles based on UE4 blueprint programming.

前言

世界衛生组织公布的全球十大死亡原因之一就是道路交通伤亡,据统计全球每年约有125万人死于交通事故。自动驾驶汽车的出现可以极大地降低交通事故出现概率,不像人类驾驶一样只有有限的环境感知能力,自动驾驶汽车具有360度视野,可以对潜存危机做出安全的反应,且其反应能比类驾驶更为迅速。极大地避免了行车距离过近、分心驾驶及危险驾驶等人为因素导致的交通事故。因此实现汽车自动驾驶具有一定的现实意义,在自动驾驶系统研发阶段需要有配套的仿真系统测试自动驾驶相关算法。

本文基于虚幻引擎UE4,借助蓝图编程实现交通信号灯机制,搭建了一个满足中国交通信号灯系统法规的仿真系统,为自动驾驶仿真系统提供了交通信号灯仿真环境。

1 UE4 引擎介绍

UE4引擎是一个全面整合的专业游戏引擎,是一个可以轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,被广泛应用于游戏制作、虚拟现实、模拟仿真等领域。

在本文中,使用UE4引擎来实现交通信号灯的三维表现及信号灯状态变化的底层逻辑实现。

2 自动驾驶仿真系统的交通信号灯系统需求分析

在自动驾驶车投入运行之前的训练需要大量数据,面对的是极其严苛的工况。虽然目前已经有许多功能齐全、先进的封闭测试园区,但是仅靠园区模拟测试是不可能穷尽所有的不可控、不可预见因素的。而且在封闭园区中采集成本高昂、效率低下,不具有复现功能。于是提出了整车在环仿真,这样不需要实际复杂的路况,就能让自动驾驶汽车的传感器与周围环境发生互动。

利用虚拟环境下环境感知传感器进行仿真建模测试,不仅可以在短期内实现对多种路况进行复现测试以及对危险的驾驶情况进行测试,而且可以突破时间限制,能够大大缩短产品测试周期,降低测试成本。

对于自动驾驶仿真系统来说,需要一个尽量和现实道路一致的场景。现有的商业或者开源的自动驾驶仿真系统,或者缺乏仿真场景,或者虽然有仿真场景,但是缺乏满足中国交通法规的场景。对于自动驾驶来说,有一个很大的特点——区域性。例如,因为缺少很多中国特色的交通元素的场景,在国外训练好的自动驾驶模型拿到国内来却未必能用。以国外的十字路口为例,国外是四个路口按照顺序依次放行;而中国大部分是对向的路口同时放行,同时有的路口还有待转情况以及右转忽略交通灯的情况。所以搭建一个具有中国特色的场景来做测试是非常必要的,其中最重要的组件之一就是交通信号灯。

3 交通信号灯仿真系统的总体设计

3.1 交通信号灯系统分析

根据《GB14886-2016 道路交通信号灯设置与安装规范》的要求,主要的交通场景包括十字路口、丁字路口、以及环岛等。本文根据道路车道数以及车流量的不同,选取了比较常见的两种机动车信号灯和方向指示信号灯的组合形式来进行实现,其它形式的实现与此相同:

常规组合1:用于左转车辆较少、不需要设置左转控制相位的路口,或直行左转共用的路口,如图1左所示。机动车信号灯中绿灯亮表示,准许车辆通行,转弯的车辆不得妨碍被放行的直行车辆、行人通行;机动车信号灯的红灯亮表示,禁止车辆通行,但右转弯的车辆在不妨碍被放行的车辆和行人通行的情况下,可以通行。

常规组合2:设置左转专用导向车道且左转车辆较多,需要设置独立的左转控制相位的路口,如图1右所示。机动车信号灯的绿灯亮,左转方向指示信号灯的红灯亮表示:直行和右转方向可通行,左转禁行;机动车信号灯中红灯亮,左转方向指示信号灯的绿灯亮表示:左转方向可通行,直行禁行,右转弯的车辆在不妨碍被放行的车辆、行人通行的情况下,可以通行;在设有左弯待转的路口,如果左转方向指示信号灯的红灯亮,机动车信号灯中绿灯亮,左转车辆可以进入待转区。

3.2 功能设计

自动驾驶仿真系统需要的交通场景包括静态场景和动态场景,较难实现的是动态场景的设计。动态场景主要包括交通流和交通信号灯等。因为仿真系统里的交通信号灯不仅要让被测自动驾驶车对应的hero车的视觉传感器来识别虚拟环境里的交通灯,检测自动驾驶算法,还需要约束大规模背景交通流,保证不会出现塞车、撞车的情况。为了节省资源,自动驾驶仿真系统里的背景交通流通过简单的自动驾驶方式来实现,而非视觉识别,这就需要将背景车的逻辑与红绿灯状态相互关联。具体的说,交通信号灯系统就不单单是实现交通灯颜色的变化,还要实现对背景交通流的约束。

通过蓝图编程,仿真系统中所有交通灯可以实现各自的状态变换。但如果没有统一的控制,在仿真开始后,系统里所有的交通灯会同时按照自身设置的时间同步变化。然后再加入控制蓝图实现交通灯之间的相互配合。

以有左弯待转的十字路口为例,如图2,总共有12条路线,右转不受交通灯约束,因此右转弯的4条路线的控制灯可以假设称为常绿状态,另外,其他的8条线路是两两为一组的,可以归为4组,所以,只需考虑图中为虚线的4条路线的控制灯的切换顺序。首先设置一个交通灯的状态变换顺序函数,当经过时间大于设置的时长,调用该函数让交通灯切换到下一状态。当一号交通灯黄灯时间经过结束后,调用冻结时间函数,若此时交通灯是红灯,则切换到二号交通灯变换,以此类推可以实现交通灯的复杂配合。

为了让背景交通流遵守交通规则,红灯时停在让行线内,需要触发器box trigger加到交通灯的蓝图里。当背景车行驶到box trigger处,如果此时不是绿灯,则会触发背景车的逻辑流程,使车速降低到零。

考虑到仿真场景里有多个交通灯,以及左弯待转情况,需要将同一悬臂上的直行和左转交通灯做蓝图通信来共享变量,以此完成待转情况时的boxtrigger触发,如图3所示。通过接口蓝图,把控制器里所设置的各个状态的时长传递给相应的交通灯,由此来切换交通灯的贴图,实现倒计时功能。

3.3 整体实现

交通信号灯仿真系统中所需要的交通灯的三维模型由3Ds Max完成,根据国家标准制作中国的信号灯,包括信号灯悬臂长度、信号灯安装高度等;根据国家标准提供的图片,由PS获得所需的贴图;交通场景里大量的道路及路口由Infra -works绘制,并导入到UE4 里。系统功能的最终展现形式主要是UE4,物体的材质选择和特效制作由 UE4 中材质和特效系统实现,交通信号灯的控制机制由蓝图编程实现。整个系统的搭建流程如图4。

将交通灯按照国家标准摆放在合理的位置,通过仿真系统的背景车辆生成程序给场景中添加背景交通流,让其遵守交通规则,实现交通信号灯系统对车流的控制,场景示意图如图5所示:

3.4 细节设计

为了方便使用,在UE4中建立了一个新的关卡,来放置已经做好的交通灯。如果在交通灯库里没有发现和现实生活匹配的交通灯,可以在做好的交通灯的基础上稍稍改动来获得。例如可以很容易的在交通灯悬臂上添加红绿灯组。也可以根据实际情况很容易地修改灯的颜色以及交通灯上的贴图。

在蓝图的视口选项里,添加Static Mesh,选择导入的交通灯悬臂模型,然后在heads里添加变量就可以直接添加一组交通灯,然后只需再调整位置或旋转坐标,就可以得到不同悬臂的交通灯,如图6所示。

在控制器蓝图里可以选择让哪些交通信号灯配合工作以及红黄绿保持的时间。,可以根据实际情况方便快捷的设置时间。交通灯的默认状态是红灯,Change指的是该悬臂上的交通灯按红绿黄变化完之后,切换到下一悬臂灯色开始变化之间的间隔时间;Green和Yellow分别指的是对应的颜色保持时间,如图7所示。

交通信号灯以及控制器的蓝图如图8、9所示:

4 结论

该系统在搭建过程中,首先用Infraworks和3Ds Max建好模型。然后导入UE4里完成场景设置、关卡设置、以及交通灯的蓝图,制作了符合中国特色的交通信号灯系统,并且达到了预期的性能,实现了一个逼真的交通信号灯系统。未来,我们可以加入更多的中国元素进一步优化场景,在自动驾驶仿真系统里添加中国特色。

参考文献

[1] 徐雯皓,李忠,苏鑫昊.基于3D引擎的汶川震前水文变化三维模拟演示系统设计[J].软件,2018,39(04):176-179.

[2] 中华人民共和国国家标准.GB14886-2016.道路交通信号灯设置与安装规范.

[3] 王昆博,陶志清,朱佳华,等.VR火灾模拟逃生仿真系统[J].科学技术创新,2018(22):64-65.

[4] 姚亮.虚幻引擎(UE4)技术基础[M].北京:电子工业出版社,2018.

[5] 彭浩,林晓辉.交通信号控制3D虚拟仿真实训平台的设计与实现[J].广东交通职业技术学院学报,2018,17(02):52-55+60.

[6] 裴金漪.基于SUMO和双流体模型的城市交通信号系统模拟[D].兰州交通大學,2015.

[7] 王德.车联网中虚拟智能交通灯的控制算法的研究[D].黑龙江大学,2018.

[8] 洪峰.智能汽车交通车辆的综合认知及其虚拟测试方法研究[D].吉林大学,2018.

[9] 李媛媛.基于虚拟现实的人群仿真技术研究[D].天津理工大学, 2019.

猜你喜欢
交通灯左转信号灯
不能左转
矿工灯
信号灯为什么选这三个颜色?
探索治堵新方法深圳实施“移位左转”有效果
为什么交通灯是红黄蓝三种颜色?
荷兰小城为“低头族”设置专属路面交通灯
《左传》战争中不同类型的人物形象
交通信号灯
信号灯为什么用