基于增强现实的汽车驾驶仿真实验系统

2020-09-26 07:06方艳红庄永智王学渊张红英
实验技术与管理 2020年4期
关键词:汽车模型示警油耗

方艳红,庄永智,王学渊,张红英

(西南科技大学 信息工程学院 特殊环境机器人技术四川省重点实验室,四川 绵阳 621010)

增强现实(AR)技术又被称为扩增现实技术,是一种实时计算摄影机影像的位置及角度并加上相应图像的技术,已经在游戏、电视媒体、商业推广、导航、远程协作等方面有了广泛应用[1-4]。基于AR技术的汽车驾驶仿真实验系统能够让用户在虚拟与现实融合的AR场景中控制汽车前进、后退、转向等,同时向用户实时发送汽车行驶参数并进行安全预警。从实用角度来说,通过修改汽车模型的各项参数,可实现对真实汽车的模拟仿真,让用户足不出户就能体会到某车型的行驶状况。

1 汽车驾驶仿真实验系统设计

基于AR的汽车驾驶仿真实验系统以Unity3D引擎为开发平台[5-6],利用移动设备摄像头获取现实环境,采用Vuforia工具[7-8]扫描二维图像,并将虚拟场景与现实环境叠加融合,实现AR场景呈现和AR交互操作;运用C#语言编程实现汽车控制、行驶参数反馈、场景切换、环境隐藏等功能,通过录入真实的汽车参数,进行汽车驾驶模拟。汽车驾驶仿真实验系统结构框图如图1所示,包括UI交互模块、AR模块、汽车控制模块、行驶参数反馈模块。

图1 汽车驾驶仿真实验系统结构图

图 1所示的系统结构框图中,用户通过 UI交互模块来控制游戏的运行,读取汽车行驶过程中的参数,进行场景切换和环境隐藏;AR模块包括AR场景呈现以及特定模式的AR交互操作;汽车控制模块控制汽车的前进、后退、转向;行驶参数反馈模块读取汽车的状态,经过计算后得出反馈参数,并由 UI交互模块呈现给用户。

1.1 AR模块

AR模块实现包含两个部分:AR场景呈现和AR交互操作。AR场景呈现利用 Vuforia工具中的 AR Camera(AR摄像头)取代 Unity3D引擎中的 Main Camera(主摄像头),使用 ImageTarget作为 AR Camera的识别对象,即特定的识别图。虚拟模型、ImageTarget与AR Camera的层次关系如图2所示。

图2 虚拟模型、ImageTarget与AR Camera层次关系

由图2可见,所有虚拟模型RaceTrack、Scene、Car1均为ImageTarget的子对象。AR模块调用设备的摄像头来获取现实环境,令虚拟模型成为AR Camera的子对象后,虚拟模型就能叠加在摄像头所拍摄的画面中。当识别图被移动时,系统实时计算识别图的坐标位置,并更新虚拟模型的坐标,使虚拟模型跟随识别图移动。

AR交互操作的流程图如图3所示。图3中,系统进入车辆展示模式后,扫描识别图并加载AR场景,循环判断识别图上的特定区域是否被遮挡,若被遮挡,则认为虚拟按键被按下,显示车辆详细信息,如车型、油耗、尺寸、发动机型号等;若被再次遮挡,则隐藏车辆详细信息。

1.2 汽车控制模块

汽车控制模块主要包括汽车行驶控制和镜头追踪两个部分,实现流程如图4所示。

图3 AR交互操作流程图

图4 汽车控制流程图

图4 中,在移动设备上,用户通过操纵屏幕上的虚拟摇杆来控制汽车行驶,并根据虚拟汽车模型的位置和角度信息,实时更新镜头相对于虚拟汽车模型的位置和角度,实现镜头对汽车模型的追踪。

1.3 行驶参数反馈模块

行驶参数反馈模块包括实时速度监测、汽车行驶时间记录、偏离车道示警、碰撞损坏提示、实时油耗计算等功能,向用户显示和预警汽车的行驶状态。其中,汽车实时速度监测主要利用 Unity3D中 Velocity函数实时获取汽车刚体的速度,并将该速度乘以比例系数,即为汽车的实时速度。若实时速度超过最小阈值,则在UI界面实时显示,否则显示为0,以避免由于汽车模型轻微抖动引起的速度误差。

汽车行驶时间记录主要通过调用 Unity3D中InvokeRepeating函数完成。InvokeRepeating函数是一个延时循环执行函数,每隔指定时间执行一次。本文中的计时单位是 0.01 s。汽车触碰到起点线的触发器时InvokeRepeating开始计时,行驶结束时停止计时。

偏离车道示警有3种模式:(1)当汽车模型触碰到车道边缘的触发器时,UI界面会显示示警文字,提示用户偏离车道;(2)当汽车模型离开车道边缘的触发器,但又触碰到车道以外场景的触发器时,示警文字将持续显示;(3)当汽车模型离开车道边缘的触发器,且并未触碰到车道以外场景的触发器时,UI界面不再显示示警文字。

碰撞损坏提示主要利用 Unity3D提供的 Collider(碰撞器)实时监测汽车与场景物体的碰撞情况,通过C#脚本对碰撞次数进行统计,若碰撞发生,将碰撞次数+1;若达到示警阈值,则提示用户汽车即将损坏;若达到损坏阈值,则提示用户汽车已损坏。

实时油耗计算需要实时获取汽车当前速度,并根据微积分的思想对油耗进行统计,算法流程如图5所示。

图5 实时油耗计算流程

由图5可见,游戏开始时,实时油耗值置零;系统每隔0.02 s采集一次汽车速度,用当前时刻的汽车速度乘以0.02 s作为汽车的位移距离;再使用这个位移距离乘以车辆每m的油耗,则可近似算出0.02 s内汽车的油耗;将每个0.02 s的汽车油耗相加,可得出汽车的实时油耗。

1.4 UI交互模块

UI交互模块主要有游戏模式切换、环境隐藏、提示信息显示等功能。进入系统,用户可以通过按键选择游戏模式,包括AR游戏模式、AR车辆模型展示模式、普通游戏模式等。每一个游戏模式都对应一个游戏场景,另外还有一个AR镜头追踪模式场景。场景切换主要利用Unity3D提供的按键响应和场景切换脚本来实现。加载全景场景主要代码如下:

SceneManager.LoadScene(“ARCar-arfullview”);

在仿真实验中,虚拟场景有时会在屏幕上遮挡住摄像头获取的现实环境。为了便于用户通过屏幕观看真实场景,本设计添加一个通过按键来实现的虚拟环境隐藏功能,启用该功能后便会隐藏虚拟场景中的环境,只留下车道和车辆模型。

提示信息使用 Unity3D提供的Text类和3DText类进行显示,包括汽车速度、行驶时间、偏离车道示警、碰撞损坏示警、实时油耗等信息。

2 系统测试与分析

在Unity3D引擎下开发完成系统各功能模块后,将其打包发布在Android平台,进行系统测试。

2.1 AR场景呈现测试

本系统中设计了AR全景、车辆展示、AR镜头追踪3种实验模式,在实验过程中均需要呈现AR场景。图6是3种实验模式下的AR场景呈现。图6所示的3种实验场景模式可以相互切换,满足UI交互功能。

2.2 AR交互操作测试

AR交互操作主要添加在车辆展示模式中。图 7所示是手碰触识别图的AR场景显示。图7(a)为手碰触识别图后的响应操作,AR场景中显示汽车详细信息;图7(b)为手再次碰触识别图后的响应操作,汽车详细信息被隐藏起来。

由图 7可以看出,AR交互操作功能运行正常,可以正确识别用户的操作,并在虚拟模型上作出响应。

2.3 汽车控制及行驶参数反馈模块测试

汽车控制模块主要实现汽车的移动、转向功能。图8所示是系统分别在AR全景模式、AR镜头跟随模式下通过虚拟摇杆对汽车的行驶控制。可以看出,汽车可以在两种模式下正常运行,并实现移动、转向功能。

图6 不同模式下的AR场景呈现

图8 汽车控制模块测试

2.4 行驶参数反馈模块测试

汽车行驶参数测试包括实时速度监测、计时、实时油耗计算以及偏离车道示警等。图 9所示是在 AR镜头跟随模式下对上述参数的测试分析。可以看出,汽车行驶过程中的速度监测、计时、实时油耗计算以及偏离车道示警可以实时显示。

图9 汽车行驶参数反馈模块测试

2.5 UI交互模块测试

UI交互模块除了上述测试模块中用到的信息提示功能外,还包括场景切换、环境隐藏功能。图 10所示为以AR全景模式为例的环境隐藏前后对比图。可以看出,在AR全景模式中,点击了“隐藏环境”按键后,虚拟场景中车道周围的草地、围墙均被隐藏,仅有车道、护栏模型被加载。

图10 AR全景模式下环境隐藏前后对比图

3 结论

本文研究的基于AR的汽车驾驶虚拟仿真实验系统是一个集AR场景呈现与交互操作、汽车控制与行驶参数反馈等功能于一体的实验系统。该系统能让用户足不出户就可以近距离观察汽车的外形、内饰,体验汽车行驶状态,从而大大降低体验成本。

猜你喜欢
汽车模型示警油耗
童年从未远离,只是换了一种方式
浅谈气味搜索训练中口令“非”和无奖励的使用
麦茶杯
浅析搜爆犬跟随示警的训练方法及要点
双管齐下 YarisL致享综合油耗测试
血迹搜索嗅源的试验与应用
当打之年 上汽集团MG GT 1.6T 综合油耗测试
哪款汽车更省油?——百款汽车真是油耗数据对比
国产系列汽车模型赏评 东风EQF140-1载货车模型
天语车发动机故障灯常亮 油耗上升