收稿日期:2018-07-04      修回日期:2018-11-13      网络出版时间:2018-12-21
基金项目:国家自然科学基金(51278058);交通部基础应用项目(S 2013JC 9397);中央高校基本科研项目(300102248403)
作者简介:徐志刚(1976-),男,博士,副教授,研究方向为车联网与无人车理论与技术㊁交通基础设施无损检测㊁交通图像处理;胡常英(1990-),男,硕士研究生,研究方向为虚拟现实㊁计算机图形学㊁Unity 游戏开发㊂
网络出版地址:http ://knski /kcms /detail /61.1450.TP.20181221.1445.020.html
基于Unity3D 的虚拟汽车试验场漫游系统
徐志刚,胡常英
(长安大学信息工程学院,陕西西安710064)
摘 要:虚拟汽车测试试验场是智能汽车虚拟测试的基础,它的研究和创建对智能汽车虚拟仿真测试具有重要意义㊂文中以长安大学渭水校区汽车测试试验场的数字化虚拟漫游的研究为主要内容,利用3Dmax 建模软件和游戏引擎工具Unity3D,开发出了一套虚拟汽车试验场漫游系统仿真软件㊂该系统采用多场景
建模方法,构建虚拟汽车测试试验场的三维场景,如模拟汽车测试试验场的高速环道㊁坡道㊁弯道㊁龙门架㊁交叉口㊁S 弯等真实场景,并结合驾驶模拟器以第一人称视觉进行虚拟汽车试验场的漫游,驾驶员可直接控制虚拟场景里的车辆行驶,增强人机交互的体验㊂通过漫游效果可知,该系统为智能汽车的虚拟仿真测试提供了高逼真度的真实测试环境,简化了室外汽车道路测试的步骤,大大地节约了测试成本,对智能汽车性能的测试提供了一种新的测试途径㊂关键词:虚拟漫游;三维建模;虚拟测试场;人机交互;Unity3D
中图分类号:TP391.9      文献标识码:A      文章编号:1673-629X (2019)05-0112-04doi:10.3969/j.issn.1673-629X.2019.05.024
汽车的Virtual Vehicle Test Field Roaming System Based on Unity3D
XU Zhi -gang ,HU Chang -ying
(School of Information Engineering ,Chang ’an University ,Xi ’an 710064,China )
Abstract :Virtual vehicle test field is the basis of virtual testing for intelligent vehicle ,and its research and creation is of great significance to the virtual simulation test of intelligent vehicle.Based on the research of digital virtual roaming in the automobile test field of Weishui campus of Chang ’an Universit
y ,we use the 3Dmax modeling software and game engine tool Unity 3D to develop a set of virtual vehicle test field roaming system simulation software.The system uses multiple scene modeling method to construct the 3D scene of virtual auto⁃mobile test field like simulating the real scene of high speed ring road ,ramp ,bend ,portal frame ,intersection ,S bend and so on.Combined with the driving simulator to conduct the virtual vehicle test field tour with first -person vision ,the driver can directly control the vehicle driving in the virtual scene and enhance the human -computer interaction experience.Through the roaming effect ,the system provides a real test environment with high fidelity for the virtual simulation test of the intelligent vehicle ,simplifies the steps of the vehicle road test ,and greatly saves the test cost ,which gives a new test way for the test of intelligent vehicle performance.Key words :virtual roaming ;3D modeling ;virtual test field ;human interaction ;Unity 3D
0 引 言
近年来,随着车联网技术和人工智能的发展,智能车作为智能化的交通工具对交通事业的发展具有巨大的促进作用[1]㊂国内对智能车辆的测试也处于热潮,主要以传统的室外测试和室内的虚拟仿真测试为主㊂传统的室外测试具有安全隐患,容易受天气的影响,浪费了极大的物力和财力,不能满足重复测试,甚至一些极限的路况无法进行测试㊂室内的虚拟测试是基于虚拟现实技术和网络通信技术,构建虚拟汽车测试试验
场,模拟出多种汽车测试的真实场景,在室内对智能车的性能进行测试,可以进行多次重复测试,不会受天气影响[2-5]㊂虚拟汽车试验场作为智能车虚拟测试的重要组成部分,因此对其研究与实现具有重大意义㊂
Unity 3D 是跨平台的游戏开发工具,有开源的游戏编辑开发环境,是一个专业的游戏引擎㊂Unity 3D 的最大优势是性价比高,兼容各种操作系统,开发出的产品用户可以直接进行下载,然后在手机㊁PC 机上可以直接体验测试㊂Unity 3D 支持各种体脚本语言,
第29卷 第5期2019年5月          计算机技术与发展COMPUTER TECHNOLOGY AND DEVELOPMENT
          Vol.29 No.5
May 2019
包括Javascript㊁C#㊁Python,真正实现了跨平台[6]㊂1 虚拟汽车试验场漫游系统的开发流程与设计
1.1 虚拟汽车试验场漫游系统的开发流程
虚拟汽车试验场的开发遵循软件开发的一般步骤,依次是分析㊁设计㊁开发㊁测试㊁修改反复且渐进地完成所规划的功能㊂系统的开发流程可以分为两部分:第一部分是构建汽车试验场的三维模型,其主要
内容是利用三维建模软件3Dmax对试验场的道路㊁地形㊁建筑㊁龙门架㊁交叉口㊁高速环形跑道㊁环境等进行建模;第二部分是在虚拟的测试试验场中实现用户和三维的模拟车辆㊁用户和环境的交互,其主要内容是编写互动脚本,利用脚本把静态的三维模型与Unity3D 连接起来,赋予模型交互的能力,即读取和处理用户驾驶模拟驾驶器的操作行为数据,如离合㊁刹车㊁油门等数据,使用处理后的数据驱动虚拟场景中的三维模拟车辆的运动[7-9]
㊂图1 虚拟汽车测试试验场的开发流程
1.2 虚拟汽车试验场漫游系统的设计
虚拟汽车试验场漫游系统的设计目标是为智能车的虚拟仿真测试提供一个真实的模拟环境,让用户去自由选择道路场景,对智能车的性能进行测试和评价㊂虚拟测试场景可分为静态的场景和动态的场景,其中静态场景包括:地形㊁树木㊁交叉口㊁高速环形道路㊁龙门架等;动态场景包括:智能车辆㊁道路车辆㊁行人㊁天气雨雪等㊂其场景的结构如图2所示
图2 虚拟测试场景结构
虚拟汽车试验场的设计与规划如下: (1)用户可以通过菜单选择不同的交通复杂场景,对车辆的性能进行测试㊂
(2)虚拟汽车试验场的三维展示功能㊂建立的静态场景和动态场景模型尽量接近现实,达到高仿真的逼真度,模拟出真实的测试场景㊂
(3)漫游功能㊂用户可以通过控制模拟驾驶器在虚拟汽车测试试验场内随意行驶和游览,然后到达自己的指定区域㊂
(4)设置鸟瞰图㊁小地图,便于用户了解整体的虚拟测试试验场及控制模拟驾驶器在漫游的过程中自己所处的位置㊂
1.3 关键技术
1.3.1 场景建模技术
对于场景建模有两种方式,一种是利用Unity3D 本身的功能建模,另一种是从外部导入模型㊂文中采用从外部导入模型的方式进行场景建模㊂以导入3Dmax软件的模型为例,首先需在3Dmax中建立三维模型,然后导出成.FBX的文件格式并保存模型纹理贴图,最后将模型导入到Unity3D,形成虚拟场景㊂1.3.2 交互技术
交互是实现对虚拟汽车试验场场景漫游的主要方式㊂简单的交互可以用C#实现,如可以通过读取和处理用户控制模拟驾驶器的操作行为数据,并通过网络通信将其数据处理结果发送给Unity3D并作为驱动车辆行驶的函数参数,用它驱动虚拟车移动,实现用户利用驾驶模拟器控制虚拟场景中车辆的漫游[10-11]㊂GUI交互界面的设计,用户可以选择点击菜单,切换不同的交通场景,也可以选择不同的车辆进行漫游,方便用户操作㊂
2 虚拟汽车试验场的漫游系统实现
2.1 虚拟场景的构建
虚拟场景包括建筑模型㊁车辆道路模型㊁车辆模型和自然环境㊂通过CAD规划平面图以及数码相机获得具体的建筑数据,构建建筑模型㊂车辆道路模型㊁自然环境通过软件自带的模型构建,车辆模型从网上下载,然后导入到Unity3D中进行使用㊂
2.1.1 信息的获取
要建立仿真逼真高的虚拟汽车试验场环境,获得真实的测试试验场的空间数据信息是关键㊂文中主要采取以下几种方法获取试验场的数据㊂
(1)寻求学校相关部门的支持,搜寻初建学校时的CAD规划图,根据图纸得到部分的数据信息㊂(2)通过航拍得到试验场的空间信息数据,与CAD规划的图纸进行比较,校准其数据的正确性㊂(3)用测量工具对试验场中标识不清楚的地方进行重新测量和标定㊂
(4)用相机拍摄重要的建筑和周围的环境,尽量
㊃311㊃
 第5期             徐志刚:基于Unity3D的虚拟汽车试验场漫游系统
拍其正视图,并对其图片进行处理以达到好的清晰度,作为建筑模型和周围环境的纹理贴图,以模拟真实的试验场环境㊂
2.1.2 模型的构建建筑模型是虚拟测试试验场中的地形㊁建筑物㊁道
路㊁标志牌㊁行人,通过无人机航拍后获得数据,根据获取的数据在3dmax 中构建的三维模型㊂环境部分主要包括天气㊁花草和树木,这些可以在Unity 3D 中通过调其材质库进行构建,并需要对多边形模型进行优化和裁剪,这样可以降低CPU 和内存的使用率,使得图形的渲染更加逼真[12-16]㊂虚拟汽车试验场的部分三维模型如图3所示
图3 虚拟测试试验场模型
2.2 漫游系统的交互性设计与实现
人机交互技术是指通过计算机的输入㊁输出设备,以有效的方式实现人与计算机之间的对话的技术,它能将数据及时地显示和反馈给用户㊂在该系统中,人机交互包括GUI 界面的设计和漫游的设计㊂
用户图形界面是用户体验和操作的部分,因此对其的设计至关重要㊂在Unity 3D 中,这种界面被称作GUI ,GUI 的编写是采用脚本的方式,利用VS 调用API 函数进行的,编写完成后将代码拖放给摄像机对象㊂在Unity 3D 里GUI 这个类包含一些高级控件,如Label ,Button ,ToolBar 等㊂该系统设计的GUI 界面为用户选择交通场景和不同类型的车辆提供便利,用户可以点击菜单按钮选择不同的交通场景进行漫游,如点击无人车菜单按钮,弹出一个对话框可以选择红绿灯路口㊁交叉口㊁环形道路等交通场景[17-21]㊂下面以红绿灯位置的菜单设计为例,其主要程序代码如下:
using System.Collections ;using System.Collections.Generic ;using UnityEngine ;
public class position :MonoBehaviour {public Transform car ;GameObject car ;  public Transform mcube ;
public voidm PositionTraffic lights ()
{mcar =GameObject.Find ("Carnet (Clone )");ansform.position =mcube.position ;ation =ation ;
}}
虚拟汽车试验场GUI 设计界面如图4所示
图4 GUI 界面
系统的漫游是用户可以控制驾驶模拟器在不同场景下行驶实现与虚拟测试场景之间进行交互㊂漫游系统的设计主要分为以下几部分:
(1)采集用户控制驾驶模拟器的驾驶行为数据㊂
编写串口助手软件并利用驾驶模拟器厂家提供的串口通信协议,将驾驶员的操作行为数据(如刹车㊁油门㊁
方向盘转角㊁离合)读取出来㊂
(2)数据处理与网络通信㊂将读取的数据按照解
析协议进行解析,分离出刹车㊁油门㊁离合㊁方向盘转角等数据,使用TCP /IP 进行网络通信,将数据实时发送给服务器㊂
(3)驱动虚拟车辆行驶㊂服务器将收到的数据,在Unity 3D 的脚本文件中驱动车辆的行驶㊂
(4)设置小地图,当用户在控制虚拟车辆以第一
人称视角在虚拟场景中漫游时,右下角的小地图中会出现虚拟车辆运动的局部细节㊂漫游过程中的小地图显示如图5所示
图5 小地图显示
漫游结果展示:
用户以第一人称视角在虚拟汽车试验场的各个交通场景中的漫游结果(如交叉口和环形高速跑道)如图6所示㊂
3 软件的优化
虚拟汽车试验场场景是要在室内进行智能车测试使用的,人机交互对软件的大小和电脑的配置以及对
411㊃                     计算机技术与发展                  第29卷
场景的渲染具有较高的要求㊂因此,可以从软件建模和脚本语言控制两方面对软件进行优化
图6 交叉口和环形高速跑道
3.1 场景优化
随着虚拟汽车试验场测试场景的增多,渲染时消耗的系统资源随之增多㊂可以对模型进行优化,尽量减少模型的体积大小,并将用户看不到的隐形的线㊁面进行删除,场景中花草树木使用图片贴图,对树木不进行三维建模,同时对灯光也做了一定的优化,从而加快渲染的速度㊂3.2 脚本优化
在脚本的编写中,首先要保证逻辑正确,其次将需要频繁执行且不通过事件触发的方法改为每隔几帧执行一次和避免调用高开销的Unity API ㊂最后如果在Update 函数中存在用不到的某些方法,可以将该函数从Update 中移除㊂
4 结束语
文中将虚拟现实技术应用到数字化和网络化的虚拟汽车试验场中,采用多场景建模方法,利用3Dmax 构建试验场的三维模型,并借助Unity 3D 游戏引擎实现了对测试场的三维仿真漫游㊂用户可以控制驾驶模拟器以第一人称视角在各个交通场景中进行漫游,以体验和检测该仿真系统的真实性㊂该系统为室内智能车的测试提供一个好的虚拟测试环境,以迎合智能车测试时代的到来,也证明了Unity 3D 是设计㊁开发虚拟现实平台的有效工具㊂
参考文献:
[1] 陈建宏,苏庆列.基于车联网技术的无人驾驶汽车设计与
实现[J ].西安文理学院学报:自然科学版,2014,17(4):
82-85.
[2] 刘 欣.无人车智能行为验证平台的虚拟交通场景研究[D ].合肥:中国科学技术大学,2009.
[3] 唐国明.无人驾驶汽车半物理仿真系统的设计[D ].合肥:
中国科学技术大学,2012.
[4] 徐 兴,卢山峰,江昕炜,等.一种无人驾驶车辆测试验证
平台及其测试方法:CN ,CN 106153352A [P ].2016-11-23.
[5] 张天雷,杨文利,潘余昌,等.一种无人驾驶车辆的测试场
景的构建方法和装置:CN ,CN 106096192A [P ].2016-11-09.
[6] 金玺曾.Unity 3D 手机游戏开发[M ].北京:清华大学出版
社,2013.
[7] 朱惠娟.基于Unity 3D 的虚拟漫游系统[J ].计算机系统应
用2012,21(10):36-39.
[8] 欧阳攀,李 强,卢秀慧.基于Unity 3D 的虚拟校园开发研
究与实现[J ].现代电子技术,2013,36(4):19-22.[9] 刘发久.基于Unity 3D 的虚拟校园[J ].电子设计工程,
2016,24(12):37-39.
[10]邹喜红,石晓辉,施 全.摩托车道路模拟试验仿真初探
[J ].计算机辅助设计与图形学学报,2006,18(12):1935-1938.
[11]马 俊.液压混合动力汽车虚拟实验平台的研究[D ].长
春:吉林大学,2015.
[12]LAUGHLIN B ,BRICENO S I ,MAVRIS D N.A virtual ex⁃
perimentation platform enabling the design ,testing ,and veri⁃fication of an unmanned aerial vehicle through cyber -physi⁃cal ,component -based design [C ]//AIAA aviation technolo⁃gy ,integration ,and operations conference.[s.l.]:[s.n.],2013:7-8.
[13]DURST P J ,GOODIN C ,CUMMINS C ,et al.A real -time ,
interactive simulation environment for unmanned ground ve⁃hicles :the autonomous navigation virtual environment labora⁃tory (ANVEL )[C ]//International conference on informa⁃tion &computing science.Liverpool ,UK :IEEE ,2012:7-10.[14]BERG T W V D ,HUISKAMP W ,HEUVEL J C V D.Un⁃
manned vehicle control using simulation and virtual reality techniques [C ]//Proceedings of IEEE intelligent transporta⁃tion systems.Oakland ,CA ,USA :IEEE ,2001:895-900.[15]SADRPOUR A ,JIN J ,ULSOY A G ,et al.Simulation -based
acceptance testing for unmanned ground vehicles [J ].Inter⁃national Journal of Vehicle Autonomous Systems ,2013,11(1):62-85.
[16]ZHAO Danchen ,LIU Yuehu ,ZHANG Chi ,et al.Autono⁃
mous driving simulation for unmanned vehicles [C ]//IEEE
winter conference on applications of computer vision.Waiko⁃loa ,HI ,USA :IEEE ,2015:185-190.
[17]徐志刚,任 亮,程 鑫,等.一种基于车联网的智能车路
协同系统仿真模型平台:CN ,CN 203232600U [P ].2013-10-09.
[18]徐志刚,王明亮,张 玮,等.一种车路协同半实物仿真系
统的设计与实现[J ].计算机技术与发展,2018,28(4):187-
191.
[19]杨 彪.基于Unity 3D 模拟驾驶系统的实现与研究[D ].大
连:大连理工大学,2017.
[20]陶健林.基于Unity 3D 的虚拟校园漫游系统的实现[J ].安
庆师范学院学报:自然科学版,2016,22(1):67-70.
[21]来 全,查木嘎,金额尔德木吐,等.基于Unity 3D 平台的三
维可视化校园系统开发研究[J ].图书情报导刊,2016,1(1):124-127.
511㊃ 第5期             徐志刚:基于Unity3D 的虚拟汽车试验场漫游系统