2024年3月27日发(作者:荣威550的十大缺点)

汽车驾驶模拟器的研究方法及步骤

汽车驾驶模拟器的研究方法及步骤

一、虚拟现实建模方法

1、几何建模

2、运动建模

(1)物体位置

物体位置包括物体的移动、旋转和缩放。在视景仿真中,不仅需要一个全局性的绝对坐

标,每个三维对象都需要建立一个相对坐标。对每个对象都给予一个坐标系统,称之为对象

坐标系统,这个坐标系统原点的位置随物体的移动而改变。在虚拟驾驶系统中就是通过控制

一个汽车局部坐标系的运动和变化来模拟汽车的运动过程。

(2)碰撞检测

在视景仿真系统中,经常需要检查对象A是否与对象B碰撞。碰撞检测需要计算两个物

体的相对位置。许多视景仿真系统在实时计算中都是采用OBB包围盒检测法,运用这种方

法可以节省时间,但降低了精确性。

3、物理建模

虚拟对象物理建模包括定义对象的质量、重量、惯性、表面纹理、光滑或粗糙、硬度、

形状改变模式(橡皮带或塑料)等,这些特性与几何建模和行为规则结合起来,形成了更真

实的虚拟物理模型。

4、行为建模

在虚拟驾驶系统中,行为建模主要包括两个方面,一方面是对驾驶员所操纵的汽车的行

为进行约束,建立汽车操纵模型,使其符合汽车自身的运动和驾驶人员的操作步骤;另一方

面是对场景中非受控物体的行为进行建模,使其的运动符合自然规律,比如场景中自动运行

的汽车、路旁的行人等。

5、模型分割

二、虚拟驾驶系统各模块功能分析和开发方案确定

1、汽车虚拟驾驶系统的构成

汽车虚拟驾驶系统主要由虚拟驾驶操作输入系统、汽车动力学模型、运动仿真模型、

实时操纵模型、场景管理管理平台、视景和声音渲染输出以及汽车数据模型库、场景模型

库和声音模型库等组成。其中汽车动力学模型、运动仿真模型、实时操纵模型和虚拟驾驶场

景管理平台是汽车虚拟驾驶系统的核心子系统。

系统的工作过程如下:在系统初始化时,根据用户的需求从汽车数据模型库中将用于仿

真的车辆数据模型调入到动力学模型中,同时选择运行的三维场景,通过模型解析模块把它

从场景数据库中调入场景管理平台;在仿真过程中,驾驶人员通过虚拟驾驶操作输入系统进

行模拟驾驶操作,人机交互接口将油门、制动、换档和转向等动力学操作信息以及发动机启

动、喇叭鸣笛等按钮操作状态送入汽车动力学模型和实时操纵模型中;经过仿真计算后,汽

车运动仿真数据被送入运动摄像机模块中控制场景内摄像机的运动,同时汽车的行驶姿态还

受到地面因素的影响;然后,场景管理控制模块根据此时摄像机的运动状态,通过视景渲染

模块将三维场景在投影屏幕上实时反映出来,模拟视景变化,形成行车体感,并且通过虚拟

仪表输出此时的汽车运行参数。另外,为了增强虚拟驾驶的沉浸感,系统还安装有音响系统,

汽车驾驶模拟器的研究方法及步骤

根据驾驶人员的操作和汽车运行的状态,从声音模型库中调出相应的声音特效,如汽车的发

动机轰鸣声、喇叭鸣笛声、紧急制动等通过声音渲染模块输出。

2、虚拟驾驶操作输入系统

模拟驾驶输入系统是用来模拟汽车驾驶舱中的驾驶操作机构,它配备了方向盘、档位操

纵杆、离合器踏板、制动踏板、油门踏板以及其他辅助装置。在驾驶模拟过程中,驾驶员可

以根据渲染场景的变化和仪表的显示,操纵输入系统中的方向盘、离合器、制动器、油门和

档位操纵杆等部件,人机交互模块将这些操作信息送入汽车动力学模型计算后,对场景中运

动摄像机的位置和方向做出相应的调整,并将仿真结果输出到显示屏上,从而对驾驶过程进

行模拟。

3、虚拟驾驶场景管理平台

虚拟驾驶场景管理平台各子模块的功能如下:

1)人机交互接口模块:

该模块将各种驾驶操作输入信号经数据转换为数字信号,送入汽车动力学模块中进行计

算,形成控制场景运动和渲染的信号,是驾驶操作系统、场景管理平台和汽车动力学模型之

间的桥梁。

2)运动摄像机模块:

该模块根据汽车动力学模块的计算结果,模拟出符合汽车运动特性的运动摄像机,并输

入到场景管理控制模块中。

3)场景管理控制模块:

该模块有机地整合了场景管理平台中的其余模块,并且和汽车的动力学模块结合起来,

通过处理消息函数,完成场景调入、人机交互、声效处理和视景渲染等内容。

4)视景、声效和操作界面渲染模块:

视景渲染模块根据汽车动力学模型计算好的运动摄像机控制参数和位置信息,通过一系

汽车驾驶模拟器的研究方法及步骤

列变换后将虚拟场景渲染到显示投影设备上,并提供给驾驶者,实现虚拟汽车运动时相对于

周围环境运动画面的连续显示,以形成行车效果。声效输出模块可以根据当前的汽车运行状

态和操作人员的输入,模拟输出此时汽车运行时发出的各种声音,例如:发动机的轰鸣声、

喇叭鸣笛、汽车运行的风声等。操作界面渲染模块主要实现汽车驾驶辅助信息和虚拟仪表的

显示。

5)模型解析模块:

虚拟驾驶系统中的场景模型经过3D建模软件制作后存为某种固定的格式,该模块将模

型从这种格式中解析出来,并且进行必要的优化,提高场景检索速度,提升渲染质量。

可使用DirectX、OpenGL等提供的函数库设计来设计视景渲染、三维模型解析、运动摄

像机、人机交互和声音处理等基础类库,构建汽车虚拟驾驶场景管理平台。

4、场景和声效数据库

5、汽车动力学仿真模块

模拟汽车运动的汽车动力学仿真模块包括汽车数据模型、汽车动力学模型、汽车运动

仿真和操纵模型等几个方面。

6、虚拟驾驶系统的软硬件平台

VC++6.0软件平台结合C++和DriectX9.0函数库进行虚拟驾驶系统研究和开发。采用3D

Max 7.0作为整个系统中场景建模和动画建模工具,场景中的贴图和纹理采用Photoshop图

像处理软件来编辑。

虚拟驾驶系统场景管理平台设计

一、场景管理平台系统功能模块

针对虚拟驾驶所应用的场景管理平台可具备以下的两大部分功能模块。

(1)核心模块

该模块完成场景管理平台所需要的一些最基本的处理功能,这是平台中最重要的一部

分,又可以分为以下一些子模块:

①几何运算模块:该模块的功能是实现图像显示过程中基本的二维和三维几何代数运

汽车驾驶模拟器的研究方法及步骤

算。模块中主要定义了二维、三维矢量,变换矩阵以及它们之间的代数运算关系。这些基本

的几何运算是三维引擎最基础的技术。

②视景渲染模块:该模块是实现视景图形渲染的核心模块,它从数据库中提取相应的场

景数据,根据当前摄像机所处的方位实现基本图元的绘制、光照材质处理、纹理映射以及三

维特效等,构造出三维场景。三维渲染引擎的好坏,在很大程度上取决于视景图形渲染模块

的质量。渲染方法分为软件渲染和硬件渲染两种,软件渲染方式主要有DirectX和OpenGL

两种实现方式。

③摄像机控制模块:该模块完成对场景的漫游和显示。它按照人类的正常视觉对场景进

行处理,通过可见范围计算裁剪掉视域外的内容,然后通过摄像机的视口变换和投影变换把

裁剪后场景投影到屏幕空间。

④碰撞检测模块:碰撞检测是三维图形引擎中不可缺少的一部分,应该根据具体的应用

选择不同的碰撞检测算法。在虚拟驾驶过程中,为了增强驾驶的真实性,场景中行驶的汽车

需要进行地形检测、固定物体碰撞检测以及活动物体碰撞检测等。常用的检测算法有包围盒

检测和射线/多边形检测等。

⑤模型解析模块:该模块将模型从数据库存储格式中解析出来,并且渲染过程进行优化

处理,提高场景检索速度,提升渲染质量。

⑥声音处理模块:该模块完成场景管理平台中的声音和音效处理。在虚拟驾驶过程中,

根据汽车的运动状态和驾驶人员的各项操作,汽车将发出的发动机轰鸣声、紧急制动声、喇

叭鸣笛声、风声、与物体碰撞发出的碰撞声以及外围环境声音等。

⑦人机交互模块:该模块主要在操作人员的输入、汽车动力学模型与虚拟场景建立起一

个互动的桥梁,能够根据人员的操作来实现视景的实时渲染改变,并且通过力反馈设备将场

景中的某些信息反馈给操作人员。

⑧系统管理模块:该模块是场景管理平台的核心,它创建整个平台程序的窗口并控制程

序流。在程序运行过程中,系统管理模块将场景管理平台中其余的模块有机地整合起来,通

过处理消息函数,调用相应的模块完成场景调入、用户输入、声效处理和视景渲染等。

(2)非核心模块

这些模块为虚拟驾驶场景管理平台扩展性的部分,包括以下几个模块:

①立体显示模块:为了提高虚拟驾驶系统的沉浸感,可根据双目立体投影算法为系统增

加立体显示模块,通过主动立体投影或者被动立体投影,实现场景的立体显示。

②辅助功能模块:该模块为场景管理平台提供一些辅助功能。对于不同的应用领域,这

些辅助功能会有所不同,但其运行过程由主程序来控制,程序根据触发事件的不同,把不同

的消息发送到与该事件相关的模块进行处理。如在虚拟驾驶过程中可以为驾驶人员提供显示

汽车的运行状态信息、标志信息以及场景的提示信息等。

③网络通信模块:该模块主要为场景管理平台提供网络通信、数据传输以及联网控制等

功能。场景管理平台使用的网络传输协议主要是TCP/IP或IPX协议。通过网络技术,还可以

进一步实现多通道投影和多人网路联合仿真。

④各种特效模块:该模块为具体的虚拟现实提供一些特效,如雨滴、雪花、汽车尾气、

喷泉等粒子系统,汽车的后视镜以及虚拟仪表等。实现该模块要根据不同的特效采用适当的

算法,特效的实现通常比较消耗系统资源,因此实现时要在特效效果和渲染复杂度中取一个

平衡。

⑤运动录制模块:该模块能够记录摄像机的运动轨迹,用于仿真结束后对驾驶人员的操

纵过程进行分析。

二、人及交互控制

汽车驾驶模拟器的研究方法及步骤

场景系统输入控制包括由驾驶者控制汽车运动的基本操作,包括对方向盘、油门、离合、

刹车和档位转换等,以及触及点火开关、转向指示灯按钮、喇叭鸣笛按钮等辅助性操作,还

有就是针对软件运行过程中的某些设置功能的键盘和鼠标操作。读入的汽车运动控制信息,

通过汽车的动力学模型运算后,交互控制视觉场景的显示。画面输出除了视景的变化外,同

时输出经过汽车动力模型计算后产生的汽车运行信息,包括当前速度、档位、点火开关状态、

鸣笛状态、转向指示状态等。

如果仅仅依赖windows的消息机制,系统的实时性则难以达到要求,由于DirectInput

直接与设备驱动进行通讯,具有底层输入获取的处理能力,其能够立即响应硬件的中断,不

需要经过windows系统的消息机制,保证信号处理的实时性,所以本程序利用DirectInput

组件提供的输入接口功能,实现控制信号的输入。输入设备包括三个设备:鼠标、键盘和专

用的驾驶模拟游戏杆。利用了主板上的键盘和鼠标输入接口,使输入信号以系统能识别的键

盘鼠标兼容的数据形式输入系统,由DirectInput获取并处理,游戏杆采用最新的罗技公司

生产的针对赛车类游戏的专业G25型游戏杆,它可以提供包括对方向盘、油门、离合、刹

车和档位的操作,通过DirectInput接口将驾驶操纵信号输入到场景管理平台中。

1、操作设备输入的设置和初始化

DirectInput组件由支持COM接口的DirectInput对象和每一种提供数据的输入设备对象

组成。DirectInput对象在程序中表征DirectInput子系统,用于查询和管理输入系统。创建

DirectInput对象之后,可以使用该对象的接口方法查询系统中的可用输入设备,并为程序中

需要使用的每一个设备创建一个DirectInputDevice对象。在DirectInputDevice设备对象创建

出来后,必须为它设置设备的属性和数据的读取格式。每一个DirectInputDevice对象都表示

了一个输入设备,通过对设备属性的设置,将设备对象设置为鼠标、键盘、游戏杆等,并且

设置了DirectInput设备的数据读取模式。

DirectInput支持两种类型数据读取模式:缓冲区模式和立即模式。缓冲区模式数据是将

输入事件的数据保存在缓冲区中,直到应用程序取得这些数据。立即模式数据是指一个输入

设备当前状态的映像。在应用程序中,如果只关心设备当前的状态,可以使用立即模式。当

设备的输入事件比设备当前状态对应用来说更重要时,应选择缓冲区模式。

对键盘来说,DirectInput不使用字符重复设置。当使用缓冲区数据模式时,模式对键盘

中每个健的按下和释放作为事件来解释,当使用立即数据时,DirectInput只考虑当前状态,

而不管windows报告的键盘消息。对于本系统,程序需要获取的主要是键盘上按键当前所

处的状态,即当前被检索查询时是按下状态还是松开状态,所以键盘数据由立即模式数据获

得。

对于用于虚拟驾驶操作的游戏杆,输入的量中有四个连续变量、档位操作枚举变量以及

按钮变量等,在每个仿真周期中需要得到所有的这些操作数值以便于通过动力学计算作出响

应,所以设置为缓冲区模式。

2、操作控制参数的获取

输入设备初始化完毕后,程序屏蔽了操作系统的键盘和鼠标响应。操作者对键盘、鼠标

以及虚拟驾驶游戏杆的操作直接通过DirectInput接口传入系统。

读取出驾驶人员的操作数据后,将转向盘和各个踏板的数值进行一定的线性变换,各项

数据的数值范围转变到与汽车动力学模型相匹配的范围,然后通过场景管理类将这些数据传

递到动力学模型中进行计算。

3、操作触感系统

在汽车行驶的过程中,驾驶员根据交通环境、路面状况实时操作汽车的操纵装置来改变

汽车的运动状态,汽车改变运动状态后,驾驶员又根据视觉、触觉(路感)和体感的反馈信

汽车驾驶模拟器的研究方法及步骤

息,判断原操作的正误,并对下一次操作做出决策,周而复始地操作,使汽车按驾驶员的主

观意图行驶。因此,“触感”系统的研究是汽车驾驶模拟系统研究的重要内容。操作触感系

统实质是实现操作与汽车状态间信息传递环节的模拟装置,是形成驾驶模拟不可少的重要组

成部分。

驾驶员的触感信息包括方向盘反力(回正力矩)及振动、油门踏板力、制动踏板力、离

合器反力以及变速器手柄反力,其中方向盘回正力矩和振动是驾驶员触感中最主要的信息。

因此,方向盘回正力矩及振动模拟的逼真度直接关系到驾车路感的真实性,并影响驾驶模拟

试验的准确性。在真实的驾驶过程中由于发动机启动、汽车行驶路面的不平整等原因都会引

起汽车的振动。在本驾驶系统中通过力反馈系统控制方向盘的振动过程来表达上述情况,将

发动机启动过程、行驶在砂土路面或者其他路面所引起的汽车的振动状态写成专门的力反馈

文件,在汽车发生上述情况时调用这些文件,驱动方向盘振动,形成力反馈效果。真实驾驶

过程中的方向盘回正力矩与路面对转向轮的反作用、转向机构的摩擦力和前轮与转向系的惯

性等方面有关,具体运算过程比较复杂,本虚拟驾驶系统采取简化措施,和各个踏板的反力

一样,通过游戏杆机械结构中的弹簧来调节。

三、声音处理

四、主要类介绍

根据场景管理平台的功能划分,可将系统的对象类确定如下:

1、系统管理模块

①应用程序类CVirtualDriveApp

②场景管理类CVirtualDriveSimManager

2、视景图形渲染模块

①图形渲染核心类CGraphics

②材质类CMaterial和纹理类CTexture

③光照类CLight

④环境类CEnvironment

3、模型解析模块

①网格类CMesh

②物体类CObject

4、摄像机控制类CVirtualDrive_Camera

5、人机交互管理类CVirtualDrive_Input

6、声音处理类CSound、CSoundChannel和CMP3

五、汽车运动仿真算法选择

1、汽车运动仿真算法分析

运动的模拟一般有两种方法:第一种是根据牛顿第二运动定律得到的运动学方程,运用

微积分学知识,结合运动的初始条件直接得到封闭式解答,这种方法特别适合于对一些简单

运动进行精确的模拟;第二种方法是对建立的运动学方程作泰勒展开,运用数值积分的方法

求解,这种方法适合于对一些高阶导数难于求解或无法求解的复杂运动进行模拟。第一种方

法在大规模场景的实时仿真系统中很少被用来模拟汽车以及其它运动状态比较复杂的物体。

而数值积分的方法在处理这一类问题上有一定的优势,运用数值积分的方法来估算运动方程

汽车驾驶模拟器的研究方法及步骤

的近似值,求解过程则比较简单,而且容易理解,算法的精度通过一定的改进可以得到有效

的控制,同时,舍入误差也相对较小。

2、数值积分仿真算法

欧拉刚发是现在莫场景仿真中最常用的一种方法。由于欧拉方法只需要作一次泰勒展开

式运算,运算速度较快,在视景系统开发中应用较为广泛。但由于其截断误差较大,在模拟

汽车加速和减速运动时的真实感不够。随着计算机软硬件的不断发展,用精度更高的算法模

拟汽车运动己成为可能。改良的欧拉方法只需要多做一次泰勒展开式运算就可以将截断误差

由(Δt)?上升到(Δt)?阶,在汽车虚拟驾驶系统的开发中采用这种方法模拟汽车的运动,可

取得比较好的仿真效果。而龙格-库塔法由于涉及到更多的泰勒展开式计算,与改良的欧拉

方法相比,在仿真程序编程试验中,效果不是很明显。

六、汽车运动仿真模型

1、汽车速度变化仿真模型

在汽车速度仿真模型中,传统的方法是采用经典欧拉法来仿真计算,为了提高仿真精度,

采用改良型欧拉法后的汽车速度的离散仿真模型。采用改良后的欧拉法在一次仿真过程中计

算两次加速度值,而在采用Runge-Kutta法的汽车速度仿真模型在一次仿真过程中将计算四

次加速度值,二者都得到较为真实的仿真结果,但后者的缺点是在较短的时间内运算的数据

量较大。

2、汽车行驶方向和姿态变化仿真模型

七、汽车行驶过程地形检测

1、碰撞检测算法

由于汽车操纵模型的运动具有实时性和可操控性的要求,所以在虚拟驾驶中的碰撞检测

应采用实时碰撞检测方法。在实时碰撞检测中主要采用两种碰撞检测算法:基于OBB包围

盒的碰撞检测和基于基本几何形体(三角形)的相交测试,前者可以快速剔除不可能相交的

部分,后者则对可能碰撞的部分进行精确判断。

2、汽车地形检测

3、地形对汽车运动的影响

八、汽车操作信号的输入

操纵部件的信号流程如图5-4所示。

汽车驾驶模拟器的研究方法及步骤

其它的操作如点火、鸣笛以及转向提示等,可通过游戏杆的按钮来输入,在每个固定的

仿真周期内,通过DirectInput接口将游戏杆的信号读入输入模块中,将模块中的数值读入

汽车动力学计算模块中,完成汽车的运动计算。

九、汽车数据模型

汽车数据模型就是将某种型号的汽车整体参数、发动机仿真拟和曲线参数以及汽车传动

系数等数据制作为单独的数据文件,在虚拟驾驶中,通过选择不同的汽车数据文件可以选用

不同的汽车来仿真。

十、汽车行驶仿真过程

1、汽车驾驶过程整体仿真

在每一时刻汽车的运动可以分解汽车局部坐标系的沿z轴的前后移动、绕y轴的旋转运

动、绕x轴的旋转运动以及绕z轴的旋转运动,它们分别对应汽车的前进和后退、横摆、俯

仰以及侧倾等运动,组合在一起就可以模拟汽车驾驶时的基本运动。而这些运动都是由操作

人员的输入、汽车当前的运行状态以及汽车所处的地形和路面共同决定的。

由于汽车运动过程中,汽车的各种物理状态和参数受到驾驶人员的操纵而变化。所以在

每一次渲染的间歇时间内,需要读取驾驶人员的操作输入数据,然后根据汽车动力学模型和

汽车运动仿真模型,通过计算后得到汽车的运行参数,进而得到摄像机的运行参数,然后通

过场景管理系统实现场景渲染。

在仿真过程中,首先得到某一型号汽车的模型数据,对汽车模型进行初始化,设定其初

始状态,等待点火启动命令,启动后发动机进入怠速状态,然后在每个仿真周期里面都定时

间间隔读取驾驶员的操作数据,根据读取的数据、汽车动力学模型以及当前所采用车型的数

据模型进行汽车速度仿真和姿态仿真计算,同时加上汽车所处的场景地形对汽车的影响,最

后输出仿真结果,即汽车在下一仿真周期内所处的位置、行驶方向和姿态。

汽车驾驶模拟器的研究方法及步骤

2、汽车起步过程仿真

在正常起步过程中,随着离合器踏板的抬起,从动轮的传递扭矩逐步增加,汽车车速将

随之不断增大,当离合器从动轮的转速和发动机转速相等时,起动过程结束。另外,通过此

仿真过程也可以模拟出驾驶人员的某些不良操作后汽车发动机转速和车速的变化过程,如在

起步过程中,驾驶人员操作离合器踏板松开速度过快,而油门开度没有相应地增大,导致在

离合器滑磨过程中,离合器传递力矩大于发动机的输出转矩,汽车将会发生向前窜动,严重

时发动机的转速将会迅速下降,甚至会低于其最低转速而熄火。

3、汽车速度变化过程仿真

汽车驾驶模拟器的研究方法及步骤

在虚拟驾驶系统中,汽车速度变化仿真过程主要描述在驾驶人员的加速、制动、换档等

操作下,汽车发动机转速和汽车行驶速度的变化过程。在汽车实际的运动中,其运动可由各

个运动方向上的速度、加速度表示。本虚拟驾驶系统中,汽车在前后运动表示为汽车沿局部

坐标系z轴的前后平移。在每个仿真周期内,读出操作人员的控制数据,通过速度仿真模型

计算出加速度数值,得到下一个仿真时刻的速度,设定在下一个仿真周期内汽车前进的距离,

经过时间驱动产生连续的运动效果。汽车前后运动与驾驶员的人为操作因素相关,如当前档

位、油门大小、刹车状态及离合状态等,在速度仿真过程中将体现这些因素对汽车运动速度

变化的影响。汽车模型速度变化仿真控制过程如图5-7所示。

汽车驾驶模拟器的研究方法及步骤

汽车模型速度变化计算主要包括汽车行驶速度、加速度计算和发动机转速计算两个方

面。具体仿真过程步骤如下:

首先,判断当前档位,如果不是空档,则汽车的行驶速度和汽车的发动机转速保持固定

的比例关系,如果是空档,执行空档发动机转速计算;

其次,计算出此时的发动机输出转矩以及汽车的行驶阻力,代入速度数字仿真模型计算

此时的汽车加速度和下一仿真周期的汽车速度;

然后,对计算出的汽车行驶速度进行判断。由于模拟输入的制动力矩在汽车停止运行仍

将发挥作用,所以要判断下一时间点的速度值,若为负值时,判定速度为零。在速度不为零

时,判断此时汽车变速器是否在档位上,如果变速器不在空档上,则应保持汽车行驶速度和

发动机转速的关系,如果低于发动机最低转速,则应使发动机熄火;如果变速器为空档,发

动机转速和行驶速度脱离固定比例关系,此时判断速度是否小于零,如果小于零则将当前速

度置零,不为零则直接输出下一仿真周期的速度。

最后,输出计算出的下一点的速度。

4、汽车模型行驶姿态变化过程仿真

在模拟驾驶仿真过程中,汽车行驶姿态的变化受多方面因素的影响,其中包括汽车所处

位置的地形、转向盘的旋转方向及转角、汽车是否为倒车行驶等。综合上述因素,给出汽车

在三维环境内行驶方向变化的仿真控制过程,如图5-8所示。

在实际驾驶操作中的方向盘自由行程、转向系传动比、方向盘可转动的圈数等在模拟器

上都由所使用的专用游戏杆操纵部件实现,系统程序处理的是最终的方向盘转角的信号数

值。方向盘转角数值通过人机交互模块检索到信号,转化成相应的数值存入变量后,根据汽

车方向仿真模型计算出在一个仿真周期里面汽车行驶相应的旋转角度。汽车的转向是由绕汽

车局部坐标系y轴的旋转运动来模拟实现的,所以根据汽车所处地面位置计算出汽车此时的

上方向向量Vup,然后创建一个绕汽车局部坐标系上方向轴Vup旋转前面算好角度的旋转矩

阵,通过这个旋转矩阵修改汽车局部坐标系中的前进方向,更新摄像机局部坐标系的观察向

汽车驾驶模拟器的研究方法及步骤

量。

由于汽车只有在运动时才能实现转向,而汽车静止不动时即使转动方向盘也不能实现转

向运动,因此转向的模拟实现牵连于前后运动。在每一个渲染循环时间片内,一个转向运动

过程可以看作是如下两个过程模拟的合成:汽车先根据转向角度绕本车y轴旋转一个角度,

朝向下一个渲染循环所要经过的点,然后再按照计算出的仿真周期内的前后运动步长由A

点平移到B点。在渲染时连续运动实现汽车的运动转向的视觉效果。

5、汽车档位变换逻辑判断过程仿真

由于模拟驾驶的换档操纵感和离合器不像实车那样与传动系存在结构上的耦合,无法从

机械结构上限制人员的非法操作,因此需要在换档过程中对人员的操作进行逻辑判断,如果

出现非法操作,给出提示并不予以执行。换档操作过程中的几种非法操作情况具体如下:

(1)离合器未踩下时,执行换档操作;

(2)当车速不为零时,在倒挡和前进挡之间进行换档;

(3)不经过空档,直接在两个前进档中转换。

在换档操作过程中,首先判断当前挡位是否为空档,这样保证任何两个不同档位的转换

汽车驾驶模拟器的研究方法及步骤

必须先换至空档才能进行换档;其次,判断当前的行车速度和方向,排除车速不为零时倒档

和前进档之间的转换;最后离合器踩下是任何换档过程的一个必要条件,离合器未踩下时的

换档操作都为非法操作,不予以执行。

十一、场景建模

1、天空

2、雾效

3、视景通道多视口显示

4、速度仪表盘

速度仪表盘是让驾驶员在模拟驾驶时能在屏幕上面实时显示汽车的车速、发动机转速以

及一些信息提示等。其实现步骤如下:

(1)用Photoshop制作仪表盘纹理,包括速度表盘、发动机转速表盘、指针、发动机

启动点火灯、左右转向灯等,并且将需要透明显示的部分与设定透明色一致。

(2)通过纹理类CTexture中的Load()函数将需要纹理调入内存,在调入过程中设定透

明色和纹理格式。速度、发动机转速仪表盘和转速指针,转速指针的旋转角度由当前汽车的

汽车速度和发动机的转速控制,并与二者成线性关系。

(3)在每个仿真周期内更新指针旋转角度,将三个纹理渲染输出。

5、声音模拟

十二、虚拟驾驶系统整体框架和仿真过程

1、基本结构

虚拟驾驶系统主要包括三个主要组成部分,分别是系统仿真输入、场景管理平台和系统

仿真输出等。在仿真输入部分中,包括汽车仿真模型、场景模型和在仿真过程中驾驶人员的

操作。场景管理平台是整个仿真程序的核心,其得到上述的各个模型后,可根据驾驶人员操

作信息实时进行动力学仿真,输出仿真结果给各个渲染模块。系统仿真输出包括视口输出、

声音输出和操作界面输出三个主要部分。

2、虚拟驾驶系统流程

图7-2给出了虚拟驾驶系统的仿真过程流程框图,主要包括程序初始化、各个模型调入、

计算仿真和渲染、仿真结束释放模型四个主要过程。

汽车驾驶模拟器的研究方法及步骤

3、虚拟驾驶实时仿真程序结构

图7-3给出了虚拟驾驶系统的程序结构框图,将流程图用程序结构框图的形式表达出

来,清楚地表示出整个程序的运行仿真过程。

汽车驾驶模拟器的研究方法及步骤

更多推荐

汽车,驾驶,场景,模块,运动,系统