汽车驾驶虚拟现实.ppt
第4章 汽车驾驶仿真器,4.1.概况4.2.汽车驾驶仿真器的原理4.3.汽车驾驶仿真器的关键技术4.4.汽车驾驶仿真器的开发与发展趋势,4.1.概况 驾驶仿真系统是基于VR技术的一个新的研究热点。虚拟现实技术应用于汽车驾驶仿真系统中,就是通过计算机产生汽车行驶过程中的虚拟视景、音响效果和运动仿真,使驾驶员沉浸到虚拟驾驶环境中,并有实车驾驶的感觉,驾驶员根据虚拟驾驶环境提供的视觉、听觉、触觉感受,构想其驾驶动作,操纵模拟驾驶舱中的操纵机构,计算机根据驾驶员的操作状态,实时地改变汽车在虚拟环境中的状态,其过程的不断循环,构成驾驶员虚拟驾驶环境之间的交互作用,实现了汽车的虚拟驾驶,从而体验、认识和学习现实世界中的汽车驾驶。,第4章 汽车驾驶仿真器,4.1.概况 汽车驾驶仿真系统具有驾驶模拟效果逼真、节能、安全、经济,不受时间、气候、场地的限制,驾驶训练效率高、培训周期短等优势,在新车型开发和驾驶培训方面应用十分广泛。VIRTOOLS作为虚拟现实技术的开发工具之一,以其友好的图形开发界面和强大的三维引擎功能,越来越受到人们的信赖,是研究与实现汽车驾驶仿真系统的理想工具。,第4章 汽车驾驶仿真器,4.1.1 国内外研究动态从20世纪80年代以来,国外的各大汽车集团和汽车技术研究机构就开始投入大量的人力、物力甚至应用国防及空间领域的高精技术来开发各类驾驶仿真系统。1985年,德国戴姆勒奔驰公司在柏林研制成功了六自由度开发型驾驶模拟器,该系统已成功地用于系列化高速轿车的产品开发中,其性能代表着当时汽车驾驶仿真技术的最高水平。与此同时,瑞典的VDI公司也建成了规模较小的汽车驾驶模拟器,用于瑞典车辆和交通系统的研究与开发。,第4章 汽车驾驶仿真器,4.1.1 国内外研究动态1989年,德国大众汽车公司改建了其原有的驾驶模拟器,更新了计算机运算系统和视景生成系统,并用于新产品的研制中。1991年,日本马自达汽车公司兴建了跑车开发型汽车驾驶模拟器。1993年,美国依阿华车辆中心启用1300万美元来开发汽车驾驶模拟系统。1995年,日本汽车研究所(JARI)也建成了带有立体感模拟系统的驾驶模拟器。目前,德国、瑞典、日本、美国的各大汽车厂家和研究室都相应更新了自己的开发型汽车驾驶仿真系统,不断完善车辆的动力学模型,运动系统都可以模拟六个自由度的运动情况,视景系统采用计算机成像系统(CGI),可以提供逼真的车辆环境。,第4章 汽车驾驶仿真器,4.1.1 国内外研究动态1989年,德国大众汽车公司改建了其原有的驾驶模拟器,更新了计算机运算系统和视景生成系统,并用于新产品的研制中。1991年,日本马自达汽车公司兴建了跑车开发型汽车驾驶模拟器。1993年,美国依阿华车辆中心启用1300万美元来开发汽车驾驶模拟系统。1995年,日本汽车研究所(JARI)也建成了带有立体感模拟系统的驾驶模拟器。目前,德国、瑞典、日本、美国的各大汽车厂家和研究室都相应更新了自己的开发型汽车驾驶仿真系统,不断完善车辆的动力学模型,运动系统都可以模拟六个自由度的运动情况,视景系统采用计算机成像系统(CGI),可以提供逼真的车辆环境。,第4章 汽车驾驶仿真器,4.1.2 国内研究现状我国在驾驶仿真系统方面的研究起步较晚,经历了一个从引进国外产品到自行研制的较漫长的发展过程。开始是引进捷克的点光源平板投影式仿真器,道路盘上的道路是用笔描绘而成的平面景象,无坡道;接着引进了美国的放电影、被动式汽车仿真器,一个控制台控制20个座舱。20世纪70年代,中国已经有自己研制的点光源、转盘机电式汽车模拟器14了。90年代,随着计算机技术和图形、图像技术的发展,汽车驾驶仿真系统走进国内,多所知名大学都在这方面作了大量贡献。,第4章 汽车驾驶仿真器,4.1.2 国内研究现状装甲兵工程学院开发的MUL-QJM汽车驾驶模拟器采用了实时车辆动力学、运动学仿真模型和实时CGI技术,不仅可以完成汽车驾驶培训,还可以进行车辆安全性、人机工程、道路工程等的研究。南京大学软件新技术国家重点实验室应用三维场景人工智能技术,采用通用的软硬件平台,开发出了主动式三维汽车驾驶训练模拟器15。昆明理工大学交通综合模拟实验室也于1999年开发出了基于网络的WM汽车驾驶模拟器,除了其先进的车辆模型、逼真的视景系统外,它的联网功能可允许多台驾驶模拟器同时操作,并具有可选择的对车辆的监视功能。,第4章 汽车驾驶仿真器,4.1.2 国内研究现状北京航空航天大学研制的MCGI-9410T计算机成像系统、航空精密机械研究所研制的QMCGI汽车驾驶训练模拟系统也相当有代表性。2004年2月中旬,由北京科技大学信息学院研制的VR-4驾驶模拟器的问世首先重点解决了“学员驾车的人造环境问题”。这种VR-4型驾驶模拟器可以让学习者在视觉感受,操纵感受和运动感受三方面都能找到真实驾驶的感觉。这项技术已通过了专家鉴定,并取得了国家专利。,吉林大学汽车动态模拟国家重点实验室建设完成的开发型ADSL16,17驾驶模拟器,按其建设规模和性能设计指标,现居世界第二位。该ADSL驾驶模拟器具有:真实的人车操作界面、重复可控的试验场景、可任意嵌入实物试验、高速的仿真运算能力、无风险的极限场景试验等功能。哈尔滨工程大学虚拟现实与医学图像处理实验室于2007年开发了汽车驾驶模拟器,用于驾驶学校倒桩测试于练习时使用。该模拟器采用真实的方向盘和制动系统,模拟器安装在真实的汽车中,前后左右用四个显示器分别模拟汽车的前后窗,和左右两个反光镜。是人在模拟器中驾驶能达到沉浸、逼真的驾驶体验。,第4章 汽车驾驶仿真器,4.1.3 存在问题纵观国内外的相关研究,不难发现,目前在汽车驾驶仿真领域,已经取得了一些很好的成果,但是仍然存在许多问题:国外重视硬件开发,生成的视景数据太大,导致对硬件要求提高,模拟器的价格昂贵18;国内开发技术含量相对较低,已经研制出来的汽车驾驶模拟系统大都没有摆脱赛车游戏模式的束缚19,或多或少地存在着汽车视景与操纵动作脱节、迟后,“沉浸感”、“交互性”与“实时性”不强等缺点。,第4章 汽车驾驶仿真器,4.1.3 存在问题此外,随着对汽车驾驶仿真系统需求的不断增加,学员需要的培训方式不仅仅是对汽车上操纵机构的熟悉和应用过程,而是一种“自助式”的教学过程。这就要求驾驶模拟装置不仅能够提供仿真的驾驶环境,而且还要求在驾驶训练的过程中起到一种人类教练所具有指导功能20-23,能够对训练者的操作过程进行监督,指出其在操作上的错误并予以纠正,以及在操作完成时对训练者所完成的操作进行合理的评价。可见,自主研究与开发一个在普通微机上实现的,大众化、易于普及的,针对人车环境闭环系统开发、适合我国道路状况和交通法规的汽车驾驶仿真系统任重而道远。,第4章 汽车驾驶仿真器,4.2.汽车驾驶仿真器的原理汽车驾驶模拟器是用于汽车产品开发、“人一车一环境”交通特性研究或驾驶培训的一种重要工具。根据其用途、性能、要求等方面的不同,基本上可以分为两类:一类是用于产品开发和“人车环境”系统等基础研究的模拟装置(开发型驾驶模拟器或驾驶仿真器);另一类是用于安全教育、交通规则教育和驾驶训练的模拟装置。它们都被用来模拟真实的车辆驾驶和运行过程,系统的基本组成原理也大致相同,但它们的应用领域、技术水平、成本以及由此产生的效果却有较大差别。开发型驾驶模拟器是利用计算机,在电子、液压、控制等技术支持下,从人一车一环境闭环系统的整体性能出发,对汽车的主动安全性、操纵性能等进行仿真研究和开发的大型实验装备。,第4章 汽车驾驶仿真器,4.2.汽车驾驶仿真器的原理典型的开发型驾驶模拟器投资巨大,但功能非常全面。它一般由运动模拟系统、视景模拟系统、控制操纵系统、音响模拟系统、触感模拟系统及性能评价系统组成。同造价昂贵、仿真性能全面的开发型驾驶模拟器相比,汽车驾驶训练模拟器的应用主要是为了安全教育和驾驶训练,不同的应用决定了汽车驾驶训练模拟器的功能相对比较单一;经济成本决定了驾驶训练模拟器的结构比较简单,无法实现复杂的动力学和车辆控制系统的仿真。这类模拟器有的采用了固定的驾驶舱,极大地降低了成本,在欧洲和日本应用比较多。研究开发这类模拟器的关键技术是系统软件,包括计算机的实时三维图像生成、视景模型、汽车模型、交通模型、网络控制、声响模拟等。,第4章 汽车驾驶仿真器,4.2.汽车驾驶仿真器的原理目前国内生产和国外进口的汽车驾驶模拟器,基本属于机电型点光源产品,主要缺点是不能真实模拟汽车的运动特性和转向操纵特性.其点光源投影方式的视景系统只能显示有限范围的简单道路,因而这种模拟器只能用于驾驶员的初级培训,并且效果也不理想.为了改善汽车驾驶模拟器的仿真性能,提高驾驶员的培训效果,并使模拟器在汽车性能研究和交通安全研究方面发挥更大作用,我们研制了应用现代仿真技术的汽车驾驶模拟器,即综合应用微机控制和计算机成像等现代仿真技术,从本质上取代机电型点光源汽车驾驶模拟器,为其更广泛地应用打下研究和应用基础。,第4章 汽车驾驶仿真器,4.2.1 仿真驾驶器原理 驾驶舱系统、计算机控制系统等硬件系统和支持网络的视景仿真、音效仿真软件系统。驾驶舱系统提供实现学员与虚拟驾驶环境之间交互作用、提高驾驶模拟训练系统逼真度的有效手段;视景仿真系统和音响仿真系统是为了强化驾驶模拟训练系统沉浸感的重要因素;计算机控制系统是连接视景仿真系统和驾驶舱操作系统的必要通道在汽车驾驶模拟训练系统中,学员根据视景、声音、仪表等虚拟驾驶环境决定驾驶动作,操作模拟驾驶舱中的操纵机构;,第4章 汽车驾驶仿真器,4.2.1 仿真驾驶器原理数据采集系统实时采样所有操纵机构的状态,包括方向盘、油门踏板、脚刹踏板、离合器踏板、档位、手刹车、点火开关等的状态,并作为其输入传递给计算机控制系统;计算机控制系统根据这些操纵机构的状态和图形生成系统反馈的道路状况等信息,通过计算机的仿真计算,确定汽车行驶的世界坐标位置,控制视景仿真系统实时动态生成下一帧虚拟视景,同时,驱动声音提示和仪表显示,改变汽车在虚拟环境中的状态。其过程的不断循环,实现学员与虚拟驾驶环境之间的交互作用,从而达到驾驶模拟训练的目的,系统的构成原理如图:,第4章 汽车驾驶仿真器,4.2.1 仿真驾驶器原理,图4.1 驾驶系统的构成,第4章 汽车驾驶仿真器,4.2.1 仿真驾驶器原理汽车驾驶模拟器是一种能正确模拟汽车驾驶动作,获得实车驾驶感觉的仿真设备。汽车驾驶模拟器,又称为汽车模拟驾驶仿真系统,它集成了传感器技术、计算机技术、数据通信技术、多媒体技术等先进技术。借助于驾驶模拟器,能对汽车一驾驶员一道路(环境)相互作用关系进行研究,也能对驾驶员进行训练。按其视景系统的不同,可分为被动式与主动式驾驶模拟器;按用途不同,可分为训练型和开发型;按驾驶模拟器的运动机构的不同,可分为座位固定式、整车转鼓式和座位可转动式三种类型。,第4章 汽车驾驶仿真器,4.2.1 仿真驾驶器原理 驾驶模拟器的工作原理是:由安装在驾驶舱的传感器将驾驶员的操纵信号传递到主控计算机,由主控计算机中的汽车模型软件计算出车辆瞬间的运动位置及姿态,将车辆运动参数不断地传到计算机图形工作站,由图像软件生成对应的连续变化的道路视景图,再由投影仪将视景投射到驾驶舱正前方的屏幕上,与此同时,由主控计算机控制液压系统,使驾驶舱产生一定的运动,并模拟噪声,给驾驶员一个接近真实的驾车感觉。,第4章 汽车驾驶仿真器,4.2.1 仿真驾驶器原理 汽车驾驶仿真系统由硬件和软件两部分组成。系统总体结构如图4.2所示。硬件设备由模拟驾驶舱、操纵控制系统、仪表系统、多媒体计算机及音响系统等构成。软件系统包括道路环境的计算机实时动画生成,汽车行驶动态仿真,声响模拟,操作评价,数据管理,网络控制,操作平台等。,第4章 汽车驾驶仿真器,4.2.1 仿真驾驶器原理。,第4章 汽车驾驶仿真器,4.2.2 硬件平台模拟驾驶舱:在模拟驾驶舱中装配有与实车相同的各种可操纵机构,如方向盘、离合器踏板、刹车踏板、油门踏板、变速器手柄、刹车手柄、转向灯开关、点火开关、仪表盘等,以模拟实车驾驶环境。操纵控制系统:驾驶者控制汽车运动的基本操纵部件是方向盘、油门、离合、刹车和档位,另外还有点火开关、转向指示灯等辅助性操作部件。这些部件信号的实时采集与控制是汽车驾驶仿真系统能否真正逼真模拟驾驶环境的最基本前提,是整个汽车驾驶仿真系统的核心部分之一。,第4章 汽车驾驶仿真器,4.2.2 硬件平台 由于本系统可以放入实车进行实验,因而在没有力和反馈装置的条件下,对于汽车运动控制的模拟主要由实车部件中的方向盘、油门、离合、刹车和档位操作来完成。驾驶员对操纵部件的操作经过传感器和接口,将方向盘转动的角度、油门的开度、离合器的状态、刹车的状态等模拟量经过AD转换发送给计算机系统进行处理,同时把系统处理的实时数据如档位参数、速度等数字量经过DA转换发送到车体部分显示仪表系统上,进而调整视景显示,使驾驶员实时观察驾驶车辆的运行情况。,第4章 汽车驾驶仿真器,4.2.2 硬件平台仪表系统仪表系统采用实车的仪表,负责显示车内仪表面板的实时更新,如计程表、转向灯、气压表以及油门、离合器状态等。多媒体计算机在本汽车驾驶仿真系统中,由于要满足实时交互与漫游,主机对图形加速卡的要求较高,因此需要采用128M图形加速卡和1G内存,主频采用2.0G以上,对于这种配置,目前的普通高档微机基本都能达到或超过。接口微处理器部分的主控芯片采用16位的顶级单片机来实现控制信号的识别和数据采集,并通过windows串口API函数,完成单片机与主机之间的数据通信。普通显示器,音箱或耳机即可完成。,第4章 汽车驾驶仿真器,软件平台 本文的视景仿真系统是在 Windows 操作系统环境下,通过VIRTOOLS 调用3DS Max建立和处理的模型来完成的。3DS Max 建模技术(略)。开发工具VIRTOOLSVIRTOOLS是由法国全球交互三维开发解决方案公司VIRTOOLS所开发,是虚拟现实的一种开发工具,透过直觉式图形开发界面,开发人员只需要拖曳所需要的行为模块就可以建构复杂的互动应用程序,可同时满足无程序背景的设计人员以及高级程序设计师的需要,让3D美术设计与程序设计人员进行良好的分工与合作,有效缩短开发流程、提升效益,其三维引擎已经成为微软XBox认可系统。特点是方便易用,应用领域广。,第4章 汽车驾驶仿真器,软件平台 VIRTOOLS让原本深不可测的3D数字产品的研发工作变得简单许多,使一般对于程序望而却步的艺术人才有更大的发展空间,不再受限于程序语言的屏障,让传统与科技相互结合,活化数字电子产品生命能量,回归到“创意”的原点。随着VIRTOOLS这样的开发工具如雨后春笋般的陆续诞生,这也代表着新的程序语言的时代来临,尽管所需效能比起C,C+等传统程序语言来的高,但模块化的指令却能极大地降低学习的门槛,让撰写游戏程序不再是程序人员的专利,程序人员可以更放心的去处理深层的建构与规划,增进了效率,节省了成本。,第4章 汽车驾驶仿真器,软件平台VIRTOOLS除了自身的3D/VR开发平台VIRTOOLS Dev以外,还有五个可选模块,分别是:物理属性模块VIRTOOLS Physics Pack for Dev沉浸式平台VIRTOOLS VR Pack for Dev人工智能模块VIRTOOLS AI Pack for DevXbox开发模块VIRTOOLS Xbox Kit for Dev网络服务器模块VIRTOOLS Server,第4章 汽车驾驶仿真器,软件平台VIRTOOLS Dev是VIRTOOLS最基本的开发平台,在这个开发环境中,可以迅速容易地创建出拥有丰富3D内容的、交互的VIRTOOLS作品文件。常用的媒体如模型、动画、图像、声音等都可以被整合进去。VIRTOOLS Dev不是建模程序,本身不能够建模,但是环境设计,包括背景(Ground)、灯光(Light)、音效(Sound)、材质(Material)、纹理(Texture)、粒子系统(Particle System)、摄像机(Camera)等可以加入进去。VIRTOOLS DEV可以导入3DS Max以及Maya建立的模型,利用VIRTOOLS强大的交互设计给模型世界增加生气与灵魂。VIRTOOLS Dev还包括动作引擎、渲染引擎、网络浏览器以及SDK。对于习惯编程的开发者,VIRTOOLS还提供了VSL语言,通过存取SDK,作为对图形编辑器的补充。,第4章 汽车驾驶仿真器,4.3.汽车驾驶仿真器的关键技术网络通信几乎各种不同的TCP胆实现都会提供下面这些通用的应用程序:1.Teinet远程登录。2.FTP文件传输协议。3.SMTP用于电子邮件的简单邮件传输协议。4.SNMP简单网络管理协议。,第4章 汽车驾驶仿真器,网络通信 仔细研究运输层普遍存在的几种网络编程模型,使用效率相对来说最高的完成端口模型设计出一个服务器,并在此传输层设计基础上在应用层设计了一个类FTP协议,用来提供文件传输功能以及测试运输层设计的服务器的效率和稳定性,这样的研究在理论和实际上都是具有一定意义的。1.客户和服务器进程:对于相互通信的两个进程,通常称一方为客户,一方为服务器。2.套接字:从一个进程发送到另一个进程的任何消息都必须经过下层网络。进程从网络中接收数据,向网络中发送数据都是通过套接字来进行的。套接字是应用层和传输层的接口,成为程序和网络间的API。,3.Winsock编程的几个主要函数:(1)创建套接字:SOCKETsoeket(iniaf,inttyPe,iniProtoeol);第一个参数用来指定套接字使用的地址格式,winsock中只支持AF创ET。第二个参数用来指定套接字的类型。第三个参数用来配合第二个参数使用,指定使用的协议类型。,第4章 汽车驾驶仿真器,4.3.1 网络通信(2)关闭套接字:Inielosesoeket(SOCKETs):唯一的参数就是要关闭的套接字的句柄。(3)绑定套接:Illtbind(SOCKETs,eonstSlruetsoekaddr*na幻ne,inina们nelen);第一个参数指定套接字句柄。第二个参数指定要关联本地地址。第三个参数指定要关联的地址的长度。,(4)监听套接字:Intlisten(SOCKETs,intbaeklog);第一个参数指定套接字句柄。第二个参数指定监听队列中允许保持的尚未处理的最大连接数量。(5)接受套接字请求:SOCKETaceePt(SOCKETs,struetsockaddr*addr,int*addrlen);第一个参数指定套接字句柄。,第4章 汽车驾驶仿真器,4.3.2 人工智能 人工智能(Artificial Intelligence,简称AI)是计算机学科的一个分支,二十世纪七十年代以来被称为世界三大尖端技术之一(空间技术、能源技术、人工智能)。也被认为是二十一世纪(基因工程、纳米科学、人工智能)三大尖端技术之一。这是因为近三十年来它获得了迅速的发展,在很多学科领域都获得了广泛应用,并取得了丰硕的成果,人工智能已逐步成为一个独立的分支,无论在理论和实践上都已自成一个系统。从实用观点来看,人工智能是一门知识工程学:以知识为对象,研究知识的获取、知识的表示方法和知识的使用。,第4章 汽车驾驶仿真器,4.3.2 优化的关键技术虽然在建模初期己经对单个模型在场景中的层次和显示问题作了一些考虑和处理,但由于这些模型基本上都是彼此独立的,还没有集成到一个整体的系统模型中,因而仍需采用先进的建模技术,从集成后系统的整体角度出发,兼顾系统沉浸感与实时性的要求,对其中某些不合理部分再加以处理。下面就针对本汽车驾驶仿真系统,分别说明在模型优化过程中所用到的几种关键技术。MIP纹理映射技术集成后的系统整体模型实际上是各种几何形状的集合体,而各个几何体的表面又都是单色的,所以不能达到显示真实感的效果和要求。因此,我们需要使用纹理映射技术对模型进行处理。在使用纹理映射时有多种方案。,第4章 汽车驾驶仿真器,优化的关键技术例如:可以把纹理映射到由一组多边形近似的表面或是弯曲的表面上,也可以在一个方向或两个方向上重复使用一种纹理来覆盖表面,而纹理可以是一维的。此外还可以自动将纹理映射到物体上,利用纹理来表示观察到的物体的轮廓或其他属性。可以给发亮的物体贴上纹理,使其看起来就好像是处在房间或其他环境的正中央,其表面反射的是周围环境的景色。最后,纹理还可以用不同的方式粘贴到物体表面上。既可以直接画(类似于往物体表面贴花),也可以调整物体表面的颜色,或者将纹理颜色和物体表面颜色进行混合。,第4章 汽车驾驶仿真器,优化的关键技术MIP纹理映射技术如图4.11所示,是对同一纹理构造若干个不同细致等级的图像,上层图像只含有下一层图像分辨率的一半,也就是下一级图像象素的平均值构成上层图像的一个象素的色彩值。依次类推,从最底层分辨率为512512的图像开始,依次减少一半的分辨率直到顶层的11的最低分辨率。这种纹理映射技术,使得在系统的实时显示中根据视点距物体的远近或者视线与多边形法向量之间夹角的不同而选择合适的纹理细致等级,在同一时刻只把目前所需的细致等级的图像调入内存,这样就可以显著地节省内存空间,从而提高系统显示实时性。本系统中,路的模型就是采用了MIP纹理映射技术。,第4章 汽车驾驶仿真器,优化的关键技术,第4章 汽车驾驶仿真器,优化的关键技术LOD模型简化技术LOD(Levels of Detail)技术是当前可视化仿真领域中处理图形显示实时性方面十分流行的技术之一44。细节层次(LOD)模型就是在不影响画面视觉效果的条件下,对同一物体建立几个不同逼近精度的几何模型。根据物体与视点的距离来选择显示不同细节层次的模型,从而加快系统图形处理和渲染的速度。对于一个多级的LOD模型,当视点逐渐接近物体时,物体将根据模型建立时的LOD距离设置,由低到高,显示不同的细节层次。这样可以保证在视点靠近物体时对物体进行精细绘制,在远离物体时对物体进行粗略绘制,在总量上控制多边形的数量,不会出现由于显示的物体增多而使处理多边形的数量过度增加的情况,把多边形个数控制在系统的处理能力之内,这样就可以保证在不降低用户观察效果的情况下,大大减少渲染负载。,第4章 汽车驾驶仿真器,优化的关键技术BSP消隐处理技术 在模型建造与集成的过程中,常常会遇到物体的遮挡问题,正确处理遮挡关系,使三维物体的对应位置关系在二维显示器上得到正确的反映,就涉及到图形的消隐处理技术。消隐处理的技术很多,比如在象素级上以近物取代远物的Z_buffer算法,这种取代方法实现起来远比总体排序来的灵活简单,也利于计算机实现;利用图形的区域连贯性,在连续的区域上确定可见面及其颜色、亮度的区域采样算法;以及画家算法等。但对于实时图形的消隐处理,大都采用BSP算法来解决物体之间的遮挡问题,本论文正是采用了这种方法,第4章 汽车驾驶仿真器,优化的关键技术BSP消隐处理技术 BSP(Binary space partitioning)技术的基本思想是将三维空间用BSP平面分割成两部分,BSP树为一个二叉树,被分割的两部分构成BSP树的左枝及右枝,左枝代表前部,右枝则代表后部。这样便可以根据物体相对于BSP平面的位置关系来确定出前面物体与被遮挡的后面物体。显示顺序为先显示后面的物体后显示前面的物体。如图4.12所示,物体A,B,C,被两个BSP平面Pl和P2分割后得出的相互之间的前后关系。本系统多处应用了此技术及其原理,比如在处理树木的显示问题时,为了使其从任何方向和任何通道中都是可见的,就要考虑到模型背面纹理的处理,即需要对树木的材质进行双面处理。,第4章 汽车驾驶仿真器,优化的关键技术,第4章 汽车驾驶仿真器,优化的关键技术Instance实例建模技术实例技术(Instance)就是将多个外观一致的物体以同一个样例存入内存,使用时从同一块内存区域提取数据,以达到节省内存开销的目的。场景模型对象的表示一般分为两种:(1)具体地表示对象中基元的轮廓和形状,这可以节省生成时的计算时间,但存储和访问所需要的时间比较多,空间也比较大;(2)抽象地表示,它有利于存储,但使用时需要重新计算。采用哪一种方法表示模型对象取决于对存储空间和计算开销的综合考虑,一般情况下都采用具体的表示方法,但是有时抽象表示会大大提高系统的性能。实例技术就是抽象表示对象的一个典型应用,其基本的处理方法为矩阵变换46,47,即通过平移、旋转、缩放工具调整三维空间中物体的几何变换矩阵来产生物体的实例,而模型的数据总量是不会增加多少的。,第4章 汽车驾驶仿真器,优化的关键技术Instance实例建模技术采用实例技术的主要目标是节省内存,当构造多个形状属性相同的物体时,如果采用正常的拷贝手段,每增加一个物体,多边形的数量就会相应地增加一倍,而采用实例技术,却可以在增加同类物体数量时不增加多边形数量,从而减少了内存的开销。但由于使用实例技术会增加额外的矩阵计算,所以当实例化对象增多时,系统的运算量将明显增大,过多的计算会导致系统运行速度的降低,影响系统实时性。此外,由于系统舍入误差的影响,经过矩阵变换计算后,实例化模型之间的位置拼接会有微小的偏差,在实时显示的时候,可能会影响到场景的真实性。因此,使用实例技术,还应该根据视景系统的实际情况对其性能进行综合考虑。,第4章 汽车驾驶仿真器,汽车运动仿真技术本书研究的汽车驾驶仿真系统遵循模拟驾驶训练加上实车驾驶训练(Simulator training of automobile driving,简称:STAD)的现代汽车驾驶员培训模式,系统主要是使驾驶训练者,在进行实车训练前,掌握驾驶汽车的基本要领,因而建立较为复杂的动力学模型进行运动模拟所付出的代价与视觉效果上的收获相比,是有悖于低成本训练用驾驶仿真系统的设计初衷的。虽然目前已经有相关研究部门,建立了具有更多自由度的产品48-51,但考虑到本系统自身的要求和特点,对操纵汽车的运动模型作了较大程度的简化。,第4章 汽车驾驶仿真器,汽车运动仿真技术汽车的运动是以固定于汽车的坐标系来描述的,为了便于描述场景中运动的汽车,设定当驾驶训练者位于驾驶座位上时,汽车的本地坐标系与系统的默认坐标系是一致的,如图4.13所示。根据系统所要实现的功能要求,汽车要能够进行前进、后退行驶,转向和上下坡的俯仰,驾驶员对于汽车运动控制的模拟主要由实车部件中的方向盘、油门、离合、刹车和档位操作来完成。,汽车驾驶仿真系统显示屏幕所提供的视景不同于一般的三维动画场景,其运行变化要求符合驾驶操作的实时控制,驾驶员可以与视景进行实时交互。驾驶员对于操纵部件的操作通过传感器和接口被系统识别和接受,系统经过处理和运算,得出对应的被控车辆的运动变化及参数,最后根据这些参数将变化后的视景渲染到显示屏幕上,驾驶员就可以实时地观察到自己驾驶车辆的运行情况。,第4章 汽车驾驶仿真器,汽车运动仿真技术,图4.13 汽车的本地坐标系,第4章 汽车驾驶仿真器,汽车运动仿真技术平路运动仿真根据现有的场景,绝大多数路面都是平路,因此,汽车的运动模拟就可以简化在一个二维平面上。每一时刻汽车的运动在本地空间就可以分解为沿 Z轴的平行移动、绕X轴的旋转运动和绕Y轴的旋转运动,它们分别对应汽车的前进和后退运动,沿X轴的俯仰以及转向运动,组合在一起就构成汽车驾驶时的基本运动模拟,能够实现基本的驾驶训练要求,如图4.14所示。,第4章 汽车驾驶仿真器,汽车运动仿真技术,第4章 汽车驾驶仿真器,汽车运动仿真技术本系统中,汽车在平面道路上的前后运动可以分解为沿本地坐标系Z轴的前后平移,车辆实际的运动情况可由各个运动方向上的速度、加速度来表示。如果只考虑汽车的本地坐标沿Z轴的平移,则汽车的前后运动与这几个因素相关:当前档位、油门大小、刹车状态及离合状态。由档位决定当前档位下车辆可能达到的最大速度,由油门大小决定当前油门踏板所处位置的最大速度,刹车和离合的状态决定是否在现在速度下开始减速及减速的大小。,当操作者没有踩刹车和离合,而只踩油门加速时,车辆将逐渐加速到当前档位下车辆所能达到的最大速度。加速的快慢与油门的大小有关,油门大,加速快,反之加速慢。当踩下刹车或离合后,车辆减速,减速的快慢根据刹车还是离合而不同。系统实时采集相关数据,并根据当前档位的最大速度、油门大小、刹车离合状态以及不同状态下设定的加减速度的大小,计算出当前车辆的前进步长,并用这个值作为车辆沿Z轴的平移量来调整当前场景,以达到操纵输入控制车辆运动的视觉效果。,第4章 汽车驾驶仿真器,汽车运动仿真技术汽车在平路上面的转向运动是绕着汽车坐标系的Y轴的旋转运动来模拟实现的,由于车辆只有在运动时才能实现转向,而车辆静止不动时即使转动方向盘也不能实现转向运动,因此车辆转向运动的模拟实现与其前后运动息息相关。在实际驾驶操作中的方向盘自由行程、转向系传动比、方向盘可转动的圈数等等在驾驶仿真系统中都由所使用的实车操纵部件来实现,系统程序处理的是最终方向盘转角的信号数值。方向盘转角数值传入计算机后,系统的输入处理模块检索到信号,转化成相应的数值存入变量后,根据变量值计算出相应的控制参数,并利用这个参数实时更新车辆旋转的角度,以及车轮的变化情况,连续的运动变化就实现了车辆转向运动的仿真。,第4章 汽车驾驶仿真器,汽车运动仿真技术坡路运动仿真对于场景中的坡面而言,汽车的运动就不能再用简单的二维平面运动来模拟了,每一时刻车辆相对于世界空间坐标系的运动变化要由沿Y方向高度上的数值变化,和绕本地坐标系X轴的旋转运动来共同模拟车辆上下坡时的俯仰以及上升下降的运动合成,如图4.15所示。当程序判断车辆运行处于上下坡时,从场景信息中提取路段的相关信息,包括坡路开始和结束位置的世界坐标、坡面的倾斜角度和方向,然后根据路面信息计算出车辆的俯仰角度,并用这个角度值在渲染时重置车辆的取向。,第4章 汽车驾驶仿真器,汽车运动仿真技术,第4章 汽车驾驶仿真器,汽车运动管理技术引入专家系统的概念专家系统是人工智能的一个分支。人工智能有许多备受关注的领域,专家系统就是对传统人工智能程序设计的一个非常成功的近似解决方法。专家系统早期先导者之一、斯坦福大学的Edward Feigenbaum教授把专家系统定义为“一种智能的计算机程序,它运用知识和推理来解决只有专家才能解决的复杂问题”。也就是说,专家系统可视为一类具有大量专门知识的计算机智能程序系统,它能够运用特定领域一位或多位专家提供的专门知识和经验,采用人工智能中的推理技术来求解和模拟通常由专家才能解决的各种复杂问题,达到与专家具有同等解决问题的能力,它可以使专家的特长不受时间和空间的限制。,第4章 汽车驾驶仿真器,汽车运动管理技术违章与操作错误的处理流程由于交通规则和驾驶操作规程是相对稳定、不易变更的,在系统中可以看作是固有规则,不需要驾驶员根据实际驾驶情况进行自行设定,因而在系统开发时便将这些规则固定于程序中。考虑到程序执行的效率和初级驾驶训练的规则并不十分复杂,这些规则主要表现为一些判断处理,而不采用数据库存储。在程序运行的过程中实时监控驾驶车辆的运行情况和驾驶员的每一个操作动作,当发现这些操作过程与判断规则不一致时,自动调用相应的错误处理模块进行处理,如图4.16所示。,第4章 汽车驾驶仿真器,汽车运动管理技术驾驶违章行为的判断处理根据系统方案的要求,程序可以对一些主要违章行为做出判断,如越中线,逆行,出边界,闯红灯和撞车等。程序对于这些违章行为的处理要与道路类型等信息联系在一起。有些错误在任何路段上都可能发生,如将车驶出路面。有些则对应于特定的路面,如十字路口和丁字路口闯红灯。,因为本汽车驾驶仿真系统是对驾驶员进行初级驾驶操作训练,而不是玩游戏或体验某些极限驾驶状况所带来的刺激,因此系统要求驾驶员操纵受控车辆稳定行驶在正常路面上,将车驶出路面被视为违章操作。判断出驾驶员将车辆驶出路面后,为了不影响驾驶训练的继续进行,程序先将其驾驶的车辆限制在出路面的位置上,在进行错误处理的同时,要求驾驶员用相反的档位将车重新驶入路面,继续进行训练。,汽车运动管理技术,有些违章行为只发生在特定的路段上。例如,当驾驶的车辆行驶在直线路段上时,根据场景模型提供的路面信息,得出路面中线是虚线还是实线,如果是虚线就允许受控车辆行驶过程中在一定时间内越线行驶,如果是实线或双实线则不允许车辆越过中线或压线行驶,否则判断为逆行或越线。当驾驶的车辆进入十字路口或丁字路段,还要根据对面路口红绿灯信息和驾驶车辆是否直行或左转判断车辆是否闯了红灯。,对于驾驶员违章和操作失误的判断处理是训练用汽车驾驶仿真系统中必不可少的功能,因此要保证系统能够对发生的车辆违章情况,以及驾驶员的错误操作行为进行监控和相应处理。为了不影响训练的效果,系统对违章和操作错误的判断处理应尽可能做到及时,这就要求系统程序在处理上要保证屏幕渲染,同时采取措施兼顾判断处理。道路违章和操作错误的判断处理比较分散,运算较为复杂,因此要求结合使用灵活的判断处理和高效的计算方法,以最大限度地节省系统的处理时间。,第4章 汽车驾驶仿真器,汽车运动管理技术驾驶员操作错误的判断处理 在驾驶员操纵系统仿真部件控制场景中车辆的运行时,对于驾驶训练逼真性和有效性的影响,不仅与显示系统所提供视景的逼真程度有关,而且还受制于操作过程中形成的感觉和习惯。与实际驾驶车辆不同,模拟驾驶舱中的操纵部件虽然采用实车配件,但其安装和使用是相互独立的,因此会产生一些在实际驾驶中不会遇到的问题;此外,对于一些实际驾驶过程中可能会产生危险的操作方法,也必须给予及时的纠正,以免驾驶员养成习惯,使驾驶训练产生负面效果。,对驾驶员错误操作行为的处理,可以粗略地分成两类:一是在实际驾驶行为中可能发生的错误,例如换档时没有踩离合器等等不符合驾驶操作规程的操作错误;另一类是特定于驾驶仿真系统机制使驾驶员可能发生的错误或错误效果,如没有打开点火开关便开始驾驶、从倒档直接变为五档行驶,还有就是对于本系统桩考场地中的错误操作,如车身碰杆、压线、中途熄火等。系统应当给予这些错误操作或错误效果正确的反应和处理。,对于第一类在实际驾驶过程中也可能会产生的错误,程序中除了正常模拟所引起的视觉效果外,还必须将这一错误进行提取和记录处理,使程序能够对驾驶员的驾驶训练水平给予正确的评价,同时系统也通过这些记录来分析和提示驾驶员,避免实际驾驶中的重复错误。对于第二类只可能在模拟训练时产生的错误,还应当限制其继续产生视觉和运动控制的效果,以免影响驾驶训练的逼真性。,第4章 汽车驾驶仿真器,汽车运动管理技术当程序判断出驾驶训练中发生了路面违章或操作错误之后,便执行相应的错误处理模块。错误处理的主要工作是模拟错误产生的后果(包括视觉效果和运行控制效果),记录错误发生的相关信息,提示驾驶员做出应有的改正等。程序中在显示屏幕上提供给驾驶员的信息不仅包含错误提示信息,还包括当前车辆的一些控制信息,以帮助初学驾驶的训练者了解驾驶过程中的车辆状态。,由于采用实车的操纵部件和面板设计,一些主要车辆的运行信息由车辆自身的仪表和指示设备提供,如车速、转速、转向指示等信息;显示屏幕提供其它辅助信息,如点火开关状态、当前档位信息等。这些信息对于熟练的驾驶员来说是不必要的,但对于刚接触汽车的驾驶训练者熟悉操作过程是有帮助的。,第4章 汽车驾驶仿真器,汽车运动管理技术,典型路段的分析处理以图4.17所示的特殊路段十字路口为例,对于车辆是否违章等情况的判断处理依赖于前后三个相关的判断过程,其中前两个判断过程也构成了视景控制时调度当前可视场景的判断处理过程:首先判断这一十字路口的路面是否在视野范围内;如果在,接着判断驾驶车辆是否位于这个路段的路面行驶;判断出车辆是位于这个十字路口路面上行驶后,还需要判断车辆有没有出现违章行为。,程序中对车辆运动的违章判断处理都和车辆当前所在的路段有关。在一个处理循环中要完成是否在视野范围内、是否为当前所在路段、是否违章等的判断处理,计算量较大。为了尽可能简化各步判断的算法,减少处理时间,程序采用了先粗略后精确、先简单后复杂、先大体估算后精确计算的基于预测的处理过程,从而有效地减少遍历各个路段进行处理时的计算