面向人类智慧提取的无人车虚拟训练系统

2019-05-16 01:39王国庆
智能计算机与应用 2019年2期
关键词:信号灯摄像机无人

周 龙,王国庆,杨 康,黄 鑫

(长安大学工程机械学院,西安710064)

0 引 言

最早的虚拟驾驶系统主要应用在航空航天领域,用来对飞机驾驶员进行培训,以此来降低飞行训练的危险系数以及训练成本[1]。近年来,随着计算机图形技术和仿真技术的发展,以及全世界汽车保有量的迅速提高,无人车虚拟驾驶系统应运而生[2]。国内外都对虚拟驾驶系统进行了深入的研究:文献[3]建立了自主车行驶的虚拟环境及典型障碍物模型;文献[4]建立复杂道路口的三维虚拟场景和实现了场景的指定路径漫游,并将其运用于车辆导航系统;文献[5]采用三维图像技术结合虚拟仪表技术推出了模拟驾驶培训系统;文献[6]开发了低成本计算机上的分布式驾驶模拟技术,完成3D环境和车辆的重复数据采集;文献[7]设计了逼真的虚拟场景以及车辆动力学模型,使用户通过转向、离合、油门等操纵机构驾驶控制车辆,通过场景中车辆模型的运动姿态控制四自由度的运动平台,实现人机交互。

然而现阶段虚拟驾驶系统只是单纯地作为演示或者驾驶培训系统,并没有真正发挥虚拟系统的潜在价值。因此,提出一种面向人类智慧提取的无人车虚拟训练系统,通过搭建虚拟场景记录人类操控车辆的数据信息,提取人类的驾驶智慧。系统大幅降低了无人车研发成本、缩短研发周期、降低安全风险。同时虚拟训练系统可运行于多个主流平台。

1 人类智慧提取的整体思路

人类在驾驶车辆过程中,利用人类感官判断车辆与周围环境的相对速度、方向、距离等信息,根据信息变换相应的驾驶动作,操控车辆行驶。而无人车在研发过程中,控制程序复杂,需要在不同的场景下进行长时间的道路测试。如果将人类的驾驶智慧应用于无人车的研发,将在保证可靠性的同时极大简化研发流程。但人类操控车辆的智慧是难以定量表达的,如果采用数学建模分析人类驾驶技能,过程复杂。为提取人类驾驶模式,提出一种面向人类智慧提取的无人车虚拟训练系统。

在虚拟场景中,驾驶员操控无人车行驶,不断变换的虚拟场景使驾驶员沉浸其中,驾驶员根据虚拟场景中反馈的道路、车辆位置和障碍物等信息,不断变换相应的驾驶动作,与此同时,虚拟传感器记录相关数据信息,达到对车辆进行训练的目的。通过对人类驾驶数据的处理与分析,形成人类操控车辆的数据模版,再将数据模版输入无人车控制器,最终实现对无人车的控制,其整体设计思路如图1所示。

图1 人类智慧提取的整体思路Fig.1 The overall idea of human intelligence extraction

2 系统整体架构

系统提出面向人类智慧提取的无人车虚拟训练系统架构如图2所示。

由图2可见,系统主要由虚拟场景、车辆动力学模型、虚拟驾驶及智能化驱动算法三部分构成。

其中,利用Unity3D引擎开发具有高度沉浸感的都市虚拟场景,为数据采集丰富的场景信息;车辆动力学建模部分综合考虑车辆的驱动、制动和转向三个方面,简化车辆动力学并建立车辆动力学模型,模拟真实的驾驶感;虚拟驾驶和智能化驱动算法部分将对车辆动力学模型的分析进行脚本化,从而通过脚本控制场景中的车辆运动。

图2 虚拟训练系统整体架构Fig.2 The overall architecture of virtual training system

3 虚拟场景搭建

当前,都市场景中面临更复杂的交通状况,以现代都市为背景,基于层次细节技术和视景分块调度技术,搭建具有高度真实感的虚拟场景。对此可得阐释分述如下。

3.1 公路交通网络

在城市交通网络规划中,按照公路建设标准建模,设计了道路交通标识、交通信号灯、护栏、人行道等公路元素。为丰富驾驶场景,还设计了“S”型弯道、“U”型弯道和立交桥。不同类型的道路模型如图3所示。

图3 不同类型的道路模型Fig.3 The different types of roads

3.2 城市建筑

在城市建筑群的搭建中采用 LOD(Level Of Detail)技术。根据摄像机距离景物的远近,使物体的网格具有不同的细节层次。当物体距摄像机远时,显示物体低细节网格,反之,显示物体高细节网格。场景中某一建筑物的2个层次网格模型如图4所示。该技术降低平台对硬件的要求,提升平台运行流畅度。同时,虚拟场景中还包括街道场景及其各类附属物,为驾驶数据采集提供丰富的场景信息。

图4 同一建筑不同细节层次网格模型Fig.4 Grids of different detail levels of the same building

3.3 交通信号灯

交通信号灯是现代交通中的重要组成元素,系统设计了常用的机动车信号灯和人行横道信号灯。信号灯的时序变换是信号灯设计的关键,以十字路口为例,将其分为横向车道和纵向车道,则将十字路口机动车信号灯时序变换分为4个状态,依次循环,变换顺序见表1。

表1 十字路口交通信号灯的变换顺序Tab.1 Change order of traffic lights at crossroads

其中,横向车道的2个机动车信号灯的红灯时长为T0+T1,绿灯时长为T2,黄灯时长为T3;纵向车道的2个机动车信号灯的红灯时长为T2+T3,绿灯时长为T0,黄灯时长为T1,由此设计出机动车信号灯时序变换的关键函数详见如下。

private IEnumeratorChangeToGreenA(floatdelay){

yield return newWaitForSeconds(delay);//黄灯延时

ChangeGreenA();//切换绿灯

StartCoroutine(ChangeToYellowA(Managers.TrafficLights.green_time)//设置绿灯时间

3.4 路灯照明系统

路灯在都市交通中发挥着重要作用,为模拟路灯真实照明效果,每个路灯都包含一个点光源(Point)和一个圆锥形的灯光网格模型(LightShape),改变路灯的enabled属性可控制路灯的亮灭,路灯照明效果如图5所示。

图5 路灯夜晚照明效果Fig.5 Lighting effect of street lamps at night

3.5 天气管理系统

驾驶员的驾驶行为与天气状况有很大关系,天气管理系统能模拟一天中早、中、晚等不同时段的云和光线的变化。还能模拟下雨、下雪、大雾等不同的天气环境,并配有雨声、风声、雷电声等相关音效,丰富了驾驶员的驾驶体验。

系统中的降雨和降雪利用粒子系统(Particle System)实现。如果将雨雪效果覆盖整个场景,会大大降低系统运行效率,因此将粒子发射器在以车辆为圆心,半径25 m的圆形区域内产生雨雪效果,节省系统资源。

雾天采用雾效模拟实现,其原理是依据平台中景物与摄像机的远近,将物体的颜色和雾的颜色按一定比例混合成新的颜色。假设场景中任意像素原本颜色为Ci,雾效颜色为Cf,雾效果影响因数为f,则该像素点经过雾效果处理后的颜色C为:

其中,Ci与Cf为常数,雾效果的实现主要通过改变影响因数f,其取值范围是0~1。f的值由场景中的摄像机与物体距离来确定。当摄像机与物体距离越远,f值越小,即该处像素点的颜色越接近雾色;当摄像机与物体距离越近,f值越接近1,即该像素点颜色越接近物体本来的颜色。

雾效果的影响因数f用二次指数模式(Exponential Squared)计算,公式如下:

其中,D表示雾的浓度,z表示摄像机距物体的距离。

分析可见,使用二次指数模式模拟雾效,f随z变化速度更快,雾效变化明显。

4 车辆的动力学建模

为模拟车辆的真实行驶状况,对车辆的横向和纵向动力学进行分析,考虑车辆的驱动、制动和转向部分,建立车辆的动力学模型。车辆的驱动动力学分析如图6所示。

图6 车辆正常行驶受力分析Fig.6 The stress analysis of vehicles in normal driving

由以上分析以及牛顿第二定律可知,车辆在正常行驶时的运动学方程为:

其中,M为车辆的总质量;v为车辆的速度;t为车辆行驶时间;Ft为车辆驱动力;Ff为滚动阻力;Da为空气阻力;Fa为加速阻力;Fθ为坡度阻力。

5 虚拟驾驶及智能化驱动算法

为模拟真实驾驶场景,给计算机控制的车辆和行人设计智能化驱动算法,使车辆和行人在虚拟场景中自由运动,实现整个系统的信息交互。这里,将给出分析阐述如下。

5.1 车辆运动模拟

碰撞检测技术是虚拟对象之间产生物理现象的基础,也是车辆运动模拟的关键部分。利用层次包围盒算法来检测车辆与建筑、植被等模型之间的碰撞。给车辆模型添加碰撞体组件(Collider)、刚体组件(Rigidbody)以及车轮碰撞器(WheelCollider),使模型由静态碰撞体变为动态碰撞体。此时模型可接受外力或外力矩,便能检验碰撞是否发生。但仅用这些组件来模拟车辆行驶,其效果远不如真实车辆,因此本系统以这些组件为基础,将对车辆运动学分析的解算通过脚本的形式与这些组件相结合,然后加入车辆传动系统模型,从而模拟出真实车辆的性能。车辆运动模拟的主要函数详见如下。

voidUpdate( ){

……

Inputs( );//获取用户输入信息

GearBox( );//车辆变速箱模拟

Clutch( );//车辆离合器模拟

Sounds();//车辆殷勤,制动等声音模拟

ResetCar();//重置车辆

……

voidFixedUpdate( ){

……

Engine();//车辆引擎驱动力模拟

Braking();//车辆制动力模拟

AntiRollBars( );//车辆平衡杆模拟

SteerHelper( );//车辆转向角度模拟

rigid centerOfMass=transform.InverseTransform Point(COM.transform.position);//设置车辆的重心

5.2 车辆的跟随摄像机设计

为使驾驶员直接观察到车辆的运动状态,对车辆的跟随摄像机设计了3种视角。为摄像机编写脚本,实现摄像机相对于车辆的伴随性移动,方便用户观察周边环境。

5.3 智能化驱动算法

车辆智能化驱动算法使计算机控制的车辆实现自主寻路、自动检测信号灯、自主超车等功能。算法的主要函数详见如下。

voidFixedUpdate( ){

Engine( );//引擎控制

Navigation( );//路径规划

FixedRaycasts( );

if(trafficLight!=null)

TrafficLightStatus( );

Resetting( );//碰撞倒车

AntiRollBars( );

给计算机控制的车辆挂载Navigation组件,并设置目标点,车辆便会根据目标点自动避开障碍物来寻找最短路径。将公路网络的属性设置为“Navigation Static”,调整相关参数对道路进行“Bake(烘培)”,车辆可以在公路网络上进行导航。导航轨迹如图7所示。计算机控制的车辆到达信号灯检测区域后,自动检测前方交通信号灯状态,并按照交通规则行驶。同时,车辆在行驶的过程中实时向前方0°、右前方10°、右前方20°以及右方90°发射4条射线,检测并判断其它车辆的位置,实现自主超车。将车辆的层(Layer)属性设置为“Vehicle”,将射线的触发层设置为“Vehicle”,避免射线检测到非车辆物体被触发。

图7 车辆导航网络Fig.7 The vehicle navigation network

行人智能化驱动算法使行人通过在行走时产生随机数来生成动态漫游路线,同时利用动画组件进行条件判断使行人播放行走或者空闲等待动画。

6 系统测试

对车辆仿真进行测试,给车辆设置不同参数,可以仿真不同的车辆类型,极大提高了平台的拓展性。将车辆最高时速设置为140 km/h,驱动方式为前轮驱动。分别测试最大驱动扭矩为150 N·m、200 N·m和230 N·m时车辆的加速过程曲线如图8所示,可验证车辆符合实际加速过程。

图8 不同驱动扭矩时车辆的加速过程曲线Fig.8 The acceleraion process of vehicles with different driving torque

对系统进行交互测试,虚拟传感器能准确记录车辆与周围环境的交互数据及人类面对不同状况的判断动作。其记录的车辆速度,及车辆距车道左右标线距离如图9所示。

图9 虚拟传感器记录的部分数据信息Fig.9 The partial data recorded by virtual sensors

7 结束语

针对现阶段无人车研发面临的迫切问题,创造性地提出一种面向人类智慧提取的无人车虚拟训练系统。完成了系统的搭建,并进行了单元测试和集测试,测试结果表明,该系统立体沉浸感强,可靠性高,呈现出良好的交互效果,能有效收集人类驾驶车辆的数据信息,为推动无人车更好的发展提供了一个切实可行的新方案,具有可观的发展前景。

猜你喜欢
信号灯摄像机无人
HUMS在无人直升机上的应用与展望
反击无人机
用迷你摄像机代替眼球
信号灯为什么选这三个颜色?
诗到无人爱处工
无人岛上的试验
安装在路面的交通信号灯
信号灯为什么用
高清新阵营
看透佳能心FS11摄像机构造揭秘