三维模拟驾驶仿真系统的研究与实现
2012-07-25吴初娜于鹏程任德锟
吴初娜,于鹏程,孙 纯,任德锟
(长安大学 汽车学院,陕西 西安710061)
0 引 言
采用模拟驾驶仿真系统来记录并分析驾驶员的驾驶行为,是驾驶安全领域研究的热点之一。三维模拟驾驶仿真系统是一种融合多种传感器设备,集机械、电子、计算机、三维仿真等多种技术于一体的交通仿真设备。该仿真系统可以根据驾驶员在模拟驾驶过程中对车辆所进行的转向、制动、加速等操作,在计算机上实时生成并显示相应的动态三维模拟驾驶场景[1]。模拟驾驶仿真系统所具有的真实的人—车交互操作界面、重复可控的试验工况、安全可靠的极限工况等特点,为研究驾驶行为提供了一个良好的试验平台。目前国内所开发的类似驾驶模拟仿真系统中,开发平台大多数基于Direct3D、OpenGL、OGRE等引擎[2-3]。由于这些都是基于图形渲染的底层引擎,因此所开发的三维模拟驾驶场景的逼真度都不甚理想,很难使驾驶员在模拟驾驶时产生沉浸感和真实感。另外一些公司采用Vega、Creator等商业视景软件进行驾驶场景的开发[4],虽然场景的逼真度得到大幅度的提升,但是同时也使得开发成本变得相当的昂贵,且缺乏二次开发等特性。
本文提出一种基于Newton物理引擎和OSG(open scene graph)图像渲染引擎的三维模拟驾驶仿真系统的研究与实现方法。Newton和OSG都是开放源代码的物理和图像渲染引擎,且都具有良好的平台移植性。实践证明该方法具有开发成本低,开发效率高,逼真度高,动态效果好,适合广泛应用等优点。
1 三维模拟驾驶仿真系统的硬件系统
三维模拟驾驶仿真系统中的硬件系统主要是采用各种传感器设备,负责对驾驶员在模拟驾驶时的转向、制动、加速、换挡等各种驾驶操作数据进行采集,并经数据采集系统处理后与上位机通过串行通讯协议USB 2.0相连接,将处理后到的数据传送给图像仿真系统;图像仿真系统经过计算处理后在显示平台上向驾驶员实时的显示三维动态驾驶交通场景。
1.1 硬件组成
仿真系统中的硬件系统主要包括驾驶舱、数据采集系统、数据处理系统,图像仿真系统、交通场景显示平台和音响设备。所有的装置均采用实车部件,并根据信息采集系统的要求,进行相应的改进和设计,从而使驾驶员在模拟驾驶时能产生沉浸感,获得与真实驾驶时相同的操纵感。硬件系统组成的示意图如图1所示。
图1 硬件系统组成
1.2 数据采集系统
信息采集系统主要是通过采用传感器对驾驶舱中关键的操纵部件的变化量进行采集。需要采集的操纵部件分别为方向盘、加速踏板、制动踏板、离合踏板、档位装置和驻车制动装置。
1.2.1 方向盘转角采集
系统中采用同轴套接在方向盘转向柱上的BI公司生产的转角力矩复合传感器SX4300A实时的采集方向盘的转动角度和转动方向。BI传感器是一种电位计式传感器,主要通过随着方向盘的转动而随之变化阻值的多个滑动变阻器来控制输出信号。该传感器采用双路冗余输出[5],有5路模拟电压输出信号,分别为2路力矩信号T1、T2和3路转角信号P1、P2、P3。在该系统中由于不采集方向盘的转矩大小,因此只使用转角信号。转角信号P1、P2所输出的特性曲线的相位角相差90°,如图2所示。结合P1、P2曲线可以计算出方向盘转角在±360°范围内变化时的转动角度和转动方向;P3信号表示方向盘转动的圈数,方向盘转角每变化180°,P3与输入电压的百分比变化10%,其特性曲线如图3所示。以5V输入电压为例,当方向盘转角从-450°增加到-360°时,P3的输出电压从1V增加到1.5V。结合转角信号P1、P2和P3就可以计算出方向盘转角在±720°范围内变化时的转动角度和转动方向。
1.2.2 踏板行程与档位及驻车制动位置采集
系统中采用Allegro MicroSystems公司生产的A3144霍尔传感器实时的采集加速踏板、制动踏板和离合踏板的行程,以及档位装置和驻车制动装置的位置。霍尔传感器一般分为输出模拟量的线性型霍尔传感器和输出数字量的开关型霍尔传感器两种[6]。线性型霍尔传感器由霍尔元件、线性放大器和射极跟随器组成,主要用于检测电压、电流等物理量。开关型霍尔传感器由稳压电路、霍尔元件、差分放大器,施密特触发器和OC门输出级组成,主要用于检测转速、位移、角度等物理量。A3144霍尔传感器是一种宽温、开关型霍尔效应传感器,工作温度范围为-40℃~150℃,具有尺寸小、稳定性好、灵敏度高等特点[7]。
开关型霍尔传感器的工作特性如图4所示。当传感器感应到的磁感应强度B低于释放点BRP时,传感器持续输出5V高电平;当磁感应强度超过工作点BOP,传感器由5V高电平跃至0V低电平,并保持低电平不变;当磁感应强度低于释放点BRP时,传感器再次从0V低电平跃至5V高电平。
图4 开关型霍尔传感器工作特性
A3144霍尔传感器安装在上述各个操纵部件的附近,同时在这些部件上固定有若干个圆柱形磁块。当驾驶员操纵上述部件时,磁块会间断性的靠近或远离霍尔传感器。当磁块靠近时,传感器因检测到磁场而输出0V电压信号;当磁块远离时,传感器因检测不到磁场而输出5V电压信号。根据各个A3144霍尔传感器所输出的电压波形,可以得出加速踏板、制动踏板或离合踏板的行程,以及档位装置或驻车制动装置所处的位置。
1.2.3 数据采集卡
上述传感器需要将采集到的驾驶员操纵数据,统一发送给数据采集卡进行处理后,才能经USB2.0将驾驶员的操纵数据传送给数据处理系统以做进一步的运算处理。
本仿真系统采用研华的USB-4716数据采集卡对驾驶员的所有操纵数据进行统一采集与处理。USB-4716是一种即插即用型数据采集设备,不需要提供外部的电源。该数据采集卡的相关参数如下:采集速率可达100ks/s;16位AI分辨率;16路模拟量输入;16路I/O输入输出;2路模拟量输出;2路用户计数器/定时器。转角力矩复合传感器SX4300A将采集到的方向盘转角数据送入数据采集卡的模拟输入端口,以进行模拟/数字转换;A3144霍尔传感器将采集到的踏板行程与档位及驻车制动位置送入数据采集卡的I/O端口。
1.3 数据处理系统
由于通过USB-4716数据采集卡所传送过来的驾驶员操纵数据仍然是高低变化的数字电压信号,数据处理系统需要实时对这些电压信号进行运算处理,以得到方向盘转角、踏板行程、档位位置以及驻车制动位置等的具体数值,并将计算结果发送给图像仿真系统,以用作车辆动力学模型的参数输入。另外,数据处理系统需要实时的接收图像仿真系统所输出的车速、发动机转速、油压等车辆状态数据,并经过相应转换后,根据控制量驱动相应的指针,将车辆状态信息显示在仪表盘上。
1.4 图像仿真系统
图像仿真系统主要用于产生随着模拟驾驶而动态变化的交通场景。动态交通场景对实时性和逼真度有很高的要求,且车辆动力学模型的精度越高,运算所占用的时间越长;交通场景中的物体越多,渲染的速度越慢。为了使系统中的硬件有高速的运算能力和强大的图形处理能力,对图像仿真系统中的计算机采用见表1配置。
表1 计算机配置
图像仿真系统接收信息处理系统发送过来的驾驶员操纵数据后,结合车辆性能参数和上一时刻的车辆运动姿态,计算得出虚拟车辆的当前新运动状态。然后系统通过显示屏予以显示新的交通场景,并通过音响设备发出相应的车辆运动声响。同时,系统将虚拟车辆的新发动机转速、车速、油压等数值发送给信息处理系统。
1.5 交通场景显示平台
交通场景显示平台主要用于显示动态的交通场景,并结合音响设备发出发动机、路面摩擦等汽车运动声响。交通场景显示平台由3个37寸液晶显示屏组成。屏与屏之间采用无缝拼接技术,两者之间的夹角为120°。由于3个液晶显示屏可以完整的模拟汽车的前挡风玻璃和左右视镜,因此相对于单屏驾驶模拟器,其能使驾驶人更容易产生真实感和沉浸感。
2 三维模拟驾驶仿真系统的软件系统
仿真系统中的软件系统主要根据传感器信号进行驾驶环境建模、视景仿真和音效仿真,其所涉及的关键技术包括基于3DMAX的三维驾驶环境以及车辆模型建模;基于Newton物理引擎的车辆多刚体动力学建模以及基于OSG引擎的图形渲染。
2.1 3DMAX建模
3DMAX是一款被广泛应用于二维图形造型和三维动画制作的图形图像制作软件,运用它,可以对车辆模型和驾驶环境进行图形建模。在3DMAX中建立的驾驶环境和车体的模型如图5所示。图形模型建好后,需要把模型读入VC++的可视窗口中。3DMAX模型有多种读取方法,通常是用格式转换软件将3D格式的模型转换为OSG引擎所需要的 “ive”格式的图形文件后输入到图形渲染引擎进行处理。
图5 驾驶环境和车体模型
2.2 Newton物理引擎和OSG三维图像渲染引擎
2.2.1 Newton物理引擎
Newton物理引擎是一个对物理环境进行实时模拟的集成解决方案,它以刚体力学为基础,通过为刚性物体赋予真实的物理属性的方式来计算运动、旋转和碰撞反应。
一般情况下,我们将车辆在道路环境中的行驶简化为多刚体的运动。根据多刚体系统理论,将车辆划分为车体、悬架和车轮,如图6所示。车轮与车体通过旋转铰链连接,悬架简化为阻尼和弹簧,因此,车轮相对于车体只有转动和垂直运动。
图6 车辆的简化模型
将车辆进行简化并对其进行受力分析后,就可以在Newton物理引擎中建立车辆模型。在引擎中,组成一个仿真场景的基本元素是Entity(实体),其中车辆模型就是一个实体。一个完整的车辆模型又是由车体、悬架和车轮等实体组合而成,其中车体和车轮之间通过Joint来连接。
Newton物理引擎还具有碰撞检测功能[8],通过碰撞网格Collision来实现。当两个实体之间相互碰撞时,Collision就会进行碰撞检测,判断两物体碰撞后的运动状态,从而不会出现物体之间碰撞后相互穿过的现象。车体的碰撞网格的形态如图7所示。
图7 车体的碰撞网格
2.2.2 OSG三维图像渲染引擎
OSG引擎是一个基于工业标准OpenGL的高层次图形开发API接口,在图形渲染、显示和场景控制等方面有着强大的功能,因此被广泛的应用于可视化仿真、游戏、虚拟现实、高端技术研发以及建模等领域[9]。
所有的场景图形及模型都是由引擎中的节点 (Node)来控制的,当对导入OSG引擎中的图形文件和模型的所有对象都定义了其相对应的节点后,程序通过对节点的操作来控制图形图像的显示[10-11]。
2.3 软件系统总体结构及流程
三维模拟驾驶仿真系统的软件系统的基本实现过程如图8所示:
(1)仔细分析软件系统中对车辆动力学模型的基本要求及受力特点,在此基础上简化并建立车辆的多刚体动力学模型;
(2)结合Newton物理引擎给出车辆动力学模型的具体实现。
(3)应用3DMax建模软件建立软件系统中所需要的各种道路三维模型,车辆三维模型以及驾驶环境的三维模型。
(4)基于OSG图像渲染引擎并结合Newton物理引擎给出软件系统的具体实现。
图8 软件系统的基本实现流程
3 仿真系统的总体框架及运行效果
仿真系统是在windows平台上基于VS2005集成开发环境、采用C++编程语言实现的,系统的总体框架如图9所示。
将在3DMAX建模软件中建立的车辆、道路以及其它驾驶环境模型导入以Newton和OSG引擎为平台的软件系统中,同时将多个传感器采集到的驾驶员的模拟驾驶操纵数据经USB-4716数据采集卡采集并经数据处理系统处理后通过串口通讯协议USB2.0发送给软件系统,软件系统根据驾驶员的操纵数据,车辆动力学参数和前一时刻车辆的运动姿态依据动力学模型计算出车辆当前的工况和运动姿态,然后实时的渲染更新相应的驾驶场景,同时发出行车过程中的发动机噪声、风声、路面摩擦声等环境声音。
图9 仿真系统的总体框架
在仿真系统开发过程中使用了Newton多体动力学开发库,3DMAX建模软件以及基于OpenGL的图形渲染开发库OSG。三维模拟驾驶仿真系统的运行效果如图10所示。
图10 仿真系统运行效果
4 结束语
本文采用角度力矩复合传感器SX4300A和霍尔传感器A3144采集驾驶员在模拟驾驶时的操纵数据,经数据采集系统采集和数据处理系统处理后,传送给以3DMAX建模软件、Newton物理引擎以及OSG图像渲染引擎相结合为平台的软件系统,从而构建了一个具有良好平台移植性的三维模拟驾驶仿真系统的设计与实现方法。仿真系统中所用到的各种SDK均是开放源代码的,且具有良好的平台移植性,支持在多个平台上进行开发。实践证明,本文阐述的方法可以实现逼真的驾驶场景渲染,并且能够生动形象的模拟汽车行驶过程中转弯,碰撞等各种状态。
[1]HU Ding-jun,ZHANG Qian.The control system design of vehicle driving simulator [J]. Microcomputer Information,2008,25 (2):233-234 (in Chinese). [胡定军,张芊.汽车驾驶模拟器控制系统的设计 [J].微计算机信息,2008,25(2):233-234.]
[2]WANG Xuan.Research on motion simulation and collision detect for distributed virtual driving simulator based on OSG [D].Wuhan:Wuhan Polytechnics University,2008 (in Chinese).[汪璇.基于OSG的分布式汽车驾驶模拟器运行仿真及碰撞检测研究 [D].武汉:武汉理工大学,2008.]
[3]GAO Song,CHEN Xian-qiao,YANG Ju.Design and realization of vehicle driving simulation system based on ogre and ODE [J].Computer and Communications,2006,24 (1):101-104 (in Chinese).[高嵩,陈先桥,杨菊.基于OGRE和ODE的驾驶模拟系统的设计与实现 [J].交通与计算机,2006,24 (1):101-104.]
[4]YUAN Wang-fang.Study on drivers’perception of road safety with virtual reality technology [D].Xi’an:Chang’an University,2006(in Chinese).[袁望方.驾驶员道路安全感虚拟现实评价技术研究 [D].西安:长安大学,2006.]
[5]WANG Chang,FU Rui,GUO Ying-shi,et al.CAN interface steering wheel angle and torque acquisition system with 16-bit A/D converter[J].Computer Engineering and Design,2011,32 (5):1641-1645 (in Chinese).[王畅,付锐,郭应时,等.16位A/D CAN接口方向盘转角力矩采集系统 [J].计算机工程与设计,2011,32 (5):1641-1645.]
[6]ZHOU Bo.Analysis on hall angle sensor used in automotive EPS [J].Journal of Chongqing University of Technology(Natural Science),2010,24 (2):21-23 (in Chinese). [周波.汽车电动助力转向系统霍尔转角传感器 [J].重庆理工大学学报 (自然科学版),2010,24 (2):21-23.]
[7]KUANG Fu-hua,ZHU Ding-cai.Application of hall-effect sensor A3144in precise displacement measurement [J].Process Automation Instrumentation,2006,26 (10):40-41(in Chinese).[匡付华,朱丁才.霍尔传感器A3144在精确位移测量中的应用 [J].自动化仪表,2006,26 (10):40-41.]
[8]MA Deng-wu,YE Wen,LI Ying.Survey of box-based algorithms for collision detection [J].Journal of System Simulation,2006,18 (4):1058-1064 (in Chinese). [马登武,叶文,李瑛.基于包围盒的碰撞检测算法综述 [J].系统仿真学报,2006,18 (4):1058-1064.]
[9]CHENG Ju-ming,LI Mei-lian,LIU Lian-fang.The management of virtual reality scene and its application in OSG [J].Microcomputer Information,2008,24 (6):280-281 (in Chinese). [程菊明,李梅莲,刘连芳.虚拟场景的管理及其在OSG中的应用[J].微计算机信息,2008,24 (6):280-281.]
[10] WANG Rui,QIAN Xue-lei.OpenSceneGraph quick start guide [EB/OL].http://www.osgChina.org,2009 (in Chinese).[王锐,钱学雷.Open Scene Graph快速入门指导[EB/OL].http://www.osgChina.org,2009.]
[11] YANG Shi-xing.OpenSceneGraph programming [EB/OL].http://www.osgChina.org,2009 (in Chinese). [杨石兴.Open Scene Graph程序设计 [EB/OL].http://www.osgChina.org,2009.]