APP下载

基于Unity3D的虚拟驾驶系统的开发与应用

2017-09-18姜峰陈艳李滨城李明坤

智能计算机与应用 2017年4期
关键词:虚拟现实

姜峰++陈艳++李滨城++李明坤

摘要: 近年来,汽车驾驶模拟器的研究迅速发展。借助于Unity3D专业的游戏引擎以及逼真的画面效果,基于虚拟现实技术开发了车辆驾驶模拟器,提出了驾驶模拟器的各组成部分的功能及原理。设计了逼真的虚拟场景以及车辆动力学模型,使用户通过转向、离合、油门等操纵机构驾驶控制车辆,通过场景中车辆模型的运动姿态控制四自由度的运动平台,实现人机交互。经多次试验表明,该系统实时效果好,可以真实地模拟实际驾驶情况,该虚拟驾驶系统对于汽车虚拟驾驶具有重要的实际意义和应用价值。

关键词: 驾驶模拟器; 虚拟现实; Unity3D; 视景系统

中图分类号:TP391.9

文献标志码:A

文章编号:2095-2163(2017)04-0039-03

0引言

研究可知,虚拟驾驶技术就是利用虚拟现实技术仿真模拟真实车辆的驾驶过程,使得学员沉浸其中,以便训练掌握正确的驾驶操作[1-2]。驾驶模拟器可取代实车训练中的部分科目和内容,有利于驾驶培训正规化、科学化和规范化的目标流程确立,并具有节能、安全、经济和不受时间、气候、场地等培训限制,以及培训效率高等优点。传统的驾驶模拟器通常采用分布式虚拟现实技术以及Virtools引擎等方式来支持实现[3-5],但却由于其交互性不强以及场景画面效果并不理想而难以达到预期设定。基于此,本文研究提出了由专业的游戏引擎Unity3D快速构建虚拟驾驶视景仿真系统[6-8],并通过运动控制卡直接控制四自由度平台的运动,实现虚拟驾驶系统的人机交互。

1虚拟驾驶系统组成及功能

虚拟驾驶系统的开发与应用主要分为虚拟驾驶视景系统和四自由度运动平台的控制两部分。其中虚拟驾驶视景系统部分利用Unity3D引擎开发具有人机交互功能的视景系统,通过输入输出设备,以有效的方式实现人与计算机相互传递信息;而四自由度运动平台的控制部分则通过视景系统中的车辆的运动姿态解算得到电机的脉冲量,并通过运动控制卡控制四自由度的串并联运动平台。综上可得,虚拟驾驶系统的功能组成框架设计则如图1所示。

2视景系统的设计与实现

2.1虚拟场景设计与实现

汽车驾驶所需的虚拟场景都是由三维和二维物体模型构成的。将3DS Max处理后的车辆、建筑物、地形等三维模型导出为.FBX格式文件[9],并配置到Unity3D的资源文件夹Assets中,Unity3D将自动导入对应的三维模型及相应的贴图和动画文件。构建模型的过程中对模型的充分优化可以缩减最终执行文件的大小以及提高虚拟驾驶视景系统的流畅度,利于改善用户体验。

2.2虚拟交互设计及实现

虚拟交互系统接受驾驶员的输入,并对输入信号进行处理,场景对这个信号产生响应,使程序具有交互感。模拟驾驶的仿真机理是要能尽量真实地展现车辆模型对驾驶员操作信号的调控变化以及驾驶员对不同驾驶环境的认识和适应,所以程序对动力学模型的准确程度要求很高,要能准确地再现生成车辆的各种驾驶情况,如起步、加速、减速、停车和转弯等,而且虚拟场景也要让驾驶员体验特殊情况下的驾驶经历,因此仿真程序对各种场景的显示效果也将拓展加入一定的特殊要求。

视觉是虚拟现实系统与用户之间交流的显性渠道,为了使用户可以直接观察到车辆的运动状况,本文采用对车辆设计提供第三人称视角的虚拟展示。为主摄像机编写CarCamera.cs脚本,使主摄像机的位置总是处在车辆模型的后上方,并使摄像机对着车辆模型的中部,实现摄像机相对于车辆的伴随性移动,如图2所示。

车辆的运动模型是视景系统的核心部分,Unity3D中的制作赛车类游戏的关键组件WheelCollider是一种专为车辆轮子设计的特殊碰撞体[10],当为车轮模型添加該组件之后,赛车就可以地面上运动。在现实生活中,车辆的前进、后退、刹车、转弯等运动都是由轮子与地面的摩擦力驱使车辆而综合确定的。为研究得到在虚拟驾驶系统中更加方便地操纵车辆模型的运动,本文是通过对车辆对象刚体组件施加与车辆模型Z轴平行方向的力来实现车辆的前进、后退的功能,施加与车辆运动速度相反的力实现车辆的刹车功能;车辆的转弯是通过使车辆模型绕中心点(O)以转弯半径(R)旋转实现的,如图3a)所示。现实生活中的车辆行进时,车轮的运动由车辆的悬挂系统约束。为正确模拟车轮的转动姿态,在视景系统中当车辆行进时,前后车轮都绕其自身坐标系的X轴转动;当车辆转弯时,2个前车轮将绕其自身坐标系的Z轴产生转动,如图3b)所示。

在实际驾驶中,若车速非常快并且急转弯或者与障碍物相撞时,车身将容易发生倾斜并翻车。在视景系统中,设定若车辆的倾斜角度大于80°并超过一定的时间之后,则判定车辆处于翻车失控状态,将其速度、角速度、引擎牵引力均设置为0,模拟驾驶结束。

3输入输出设备通信功能实现

3.1虚拟驾驶系统的硬件连接

本文设计的汽车虚拟驾驶系统包括操控系统、执行系统与视景系统。其中,操控设备主要配置了方向盘、油门等汽车常用的部件,执行机构为四自由度的串并联运动平台,可以更准确地还原虚拟环境中汽车的运动情况。方向盘、油门、刹车等输入设备通过USB接口与计算机相连,运动控制卡一般都是以PCI插槽与计算机相连,运动控制卡通过端子板以及驱动器控制电机,电机带动丝杠转动控制动平台的运动,具体如图4所示。

3.2操控系统的设计及实现

虚拟驾驶仿真模拟器的输入设备一般都是仿照真实汽车驾驶界面定制设计的,比如方向盘、刹车、油门、档位等。由于虚拟驾驶系统是基于PC的,使其并不具备真实汽车操纵设备的条件,研究中的输入设备主要依靠方向盘、油门等输入信号,并将信号通过转换器发送给视景系统,操纵汽车模型在虚拟环境中行驶,并做出现实世界中汽车的一些驾驶动作。endprint

操控系统选用的是北通瞬风189方向盘套裝设备,内置硬件主要包括方向盘、档位、油门、刹车和其他附属按键。与通用的操纵手柄一样,该方向盘套装也需要安装对应驱动程序,此后则需要对硬件进行调试与设置。Unity3D默认为用户创建了若干映射方向盘等标准外设的虚拟按键,在输入管理中配置构建了虚拟按键,并且组织设定了方向盘各种属性之后,外设的输入消息就可以直接映射给虚拟按键,便可以在脚本里通过Input类中的GetAxis()以及GetButtonDown()方法对其直接加以使用,从而实现输入设备控制汽车模型的功能。

3.3执行系统的设计及实现

[JP2]虚拟驾驶仿真系统可用于试验研究,最重要的是需要其能够输出试验所需要的结果,并能够与现实的试验设备建立通信连接。虚拟驾驶仿真模拟器是将视景系统与四自由度平台借助通信连接,实现路况真实模拟,实时反映路况的试验设备。[JP]

视景系统与四自由度平台的通信连接主要是指视景系统与平台的控制设备的连接。由视景系统中的车辆模型的z轴变化量z、绕自身x轴的旋转角度α、绕自身y轴的旋转角度β以及方向盘转动角度γ通过逆解公式得到轴1的伸长量D1、轴2的伸长量D2、轴3的伸长量D3以及轴4的旋转量R4。研究可得各关系量的数学表述如下:

D1 = z+100sin β-(74 100-(100cos β-170))1/2 [JY](1)

[JP3]D2 =[ZK(]z-50 sin β+88.6 sin α cos β-(74 100-(85-

50 cos α+86.6 sin α sin β)2-(86.6 cos α-

150.62)2)1/2[ZK)][JP][JY] (2)

[JP3]D3 = [ZK(]z-50 sin β-88.6 sin α cos β-(74 100-(85-

50 cos α-86.6 sin α sin β)2-(86.6 cos α-

150.62)2)1/2[ZK)][JP][JY](3)

R4 = γ[JY](4)

本文的四自由度平台选用固高科技公司的GTS-400-PG-PCI-G运动控制卡实施控制处理。计算机以编程软件引用运动控制卡的动态链接库,向控制卡发送指令,并通过脉冲控制电机运动,驱动电机按指定的规律来生成状态演变,电机带动丝杠滑块,通过定长杆驱动动平台,还原汽车模型在视景系统中的路面情况。同时,控制卡上的I/O口也反馈电机运动的实际位置和其他运动状态。

4虚拟实验

为验证虚拟驾驶系统的实用性、稳定性以及执行功能,本文以Unity软件设计开发一个基于Windows系统的应用实例展开研究分析。

进入虚拟驾驶系统后,视野中首先可见的就是主界面,用户选按Enter键将正式开启游戏。此时,程序完成打开运动控制卡、配置运动控制卡成功、运动控制卡初始化等功能,并在显示器左上角给出提示,如图5a)所示,动平台也将从现时最顶端的初始位置运动到设定的位置。用户操纵方向盘以及油门、刹车控制车辆模型行进,可以观察到,动平台也会跟随车辆的姿态做出相应的动作。当车辆翻车后,模拟驾驶结束,给出提示,如图5b)所示。当用户按下Esc键退出系统时,动平台恢复到初始状态。

5结束语

通过反复的编程试验,本次研究开发的基于Unity3D的虚拟驾驶系统已经获得了成功的应用,并且呈现出良好的人机交互效果,同时也设计提供了软件与硬件之间的完善通讯功能,在此基础上采用四自由度运动平台为驾驶学员提供运动临场感,实现了图像与运动的有机统一。该虚拟仿真实验则对后续研究与开发虚拟驾驶模拟器具有重要的指导及一定的借鉴意义。

参考文献:

[WTBZ][ST6BZ][HT6SS][1] [ZK(#〗

姜显扬,唐向宏. 虚拟仿真无人驾驶汽车跨学科实验平台的构建[J]. 实验技术与管理,2016,33(11):117-120.

[2] 丁金华,刘畅,李明颖,等. 三维虚拟现实机电设备控制仿真系统[J]. 实验技术与管理,2016,33(9):106-110.

[3] 李勋祥,陈定方. 分布式汽车驾驶交互仿真系统的实现[J]. 计算机辅助设计与图形学学报,2008,20(1):129-135.

[4] 罗竹辉,周晓军,魏燕定. 基于Vortex与Vega Prime的车辆模拟器动力学与视景仿真[J]. 振动、测试与诊断,2014,34(4):709-713.

[5] 傅招国. 虚拟驾驶系统开发与应用研究[D]. 上海:华东理工大学,2012.

[6] 林德江,秦国伟,王国德,等. 基于Unity3D技术的某装备便携式虚拟训练系统研究[J]. 火炮发射与控制学报,2014,35(4):91-95.

[7] 吴景,赵运生,黄海峰,等. 基于Unity3D的多模块虚拟系统的设计与实现[J]. 机械工程与自动化,2015(6):59-61.

[8] 杨雪松. 基于Unity3D的发动机虚拟拆装系统研究[J]. 机械,2016,43(1):32-35,73.

[9] 杨亚联,王磊,杨果,等. 人在环路模拟驾驶仿真实验系统研发[J]. 重庆大学学报,2015,38(4):38-44.

[10]刘刚,孙文涛. unity 官方案例精讲[M]. 北京:中国铁道出版社,2015.endprint

猜你喜欢

虚拟现实
在虚拟现实中体验上课 Experiencing a class in VR
移动VR正照进现实
虚拟现实,让学习更“沉浸”
培训新势力从人工智能到虚拟现实
虚拟现实LG 360 VR眼镜
Facebook组建虚拟现实社交团队
View Master虚拟现实显示器