动车组转向架虚拟装配系统可视化技术
2011-06-11米小珍刘光亮周韶泽
米小珍,刘光亮,周韶泽
(大连交通大学 交通运输工程学院,辽宁 大连 116028)
0 引言
作为高速铁路的核心运输装备,高速动车组集中体现了机械、电子、计算机、控制和材料等高新技术,代表了机车车辆技术的最高水平[1].转向架是保证动车组运行安全的重要组成部分,零部件数量多、结构复杂.据统计,占整个动车组成本15%的转向架,在维修成本中占到40%以上(全生命周期).针对维修过程中存在的装配关系复杂、检修效率低、样机培训成本高、工作量大等问题,必须更新传统的装配检修模式,才能使高速动车组在制造与检修过程中出错机会最小化,工作效率最大化,这就用到了虚拟装配技术.虚拟装配技术使产品在虚拟环境中进行模拟装配,并且可以对产品的可装配性做出直接评价和及时修改,为设计人员提供用于分析生产、装配和评价的虚拟样机.这样可以避免设计缺陷、提高了设计质量,代替实物样机又可降低生产成本.其中,可视化技术可以为虚拟装配系统提供直观的图形、图像显示,提高系统运行效率,生动地反映出虚拟装配的品质与性能,直观地表达了虚拟装配过程,最大限度地体现虚拟装配的真实感.
目前,可视化技术已广泛应用于虚拟仿真、结构力学、有限元数值分析、气象科学、天体物理、分子生物学、医学图象处理等领域.而且出现了工程可视化辅助设计,可以实现设计过程中直观方便的用户交互与控制,从而可以使设计人员对设计对象及设计过程有更深刻的观察和理解,有利于提高工程的设计质量,也是实现工程设计现代化的关键所在.所以,研究工程可视化具有现实意义和工程应用价值.
本文在动车组转向架虚拟装配系统对可视化技术的需求分析基础上,对装配模型的简化、三维剖切显示、立体显示等技术进行研究,实现了动车组转向架虚拟装配过程的可视化.
1 动车组转向架虚拟装配系统
转向架传统维修过程中存在诸多问题,例如装配信息表达不直观、不能共享、培训成本高、培训时间长等,这些问题可以在虚拟装配系统中得到很好的解决.操作者可在虚拟环境中进行维修工作的“预实践”,为维修人员提供有效的模拟技术支持.
动车组转向架检修用虚拟装配系统的总体结构如图1所示,系统具有装配序列规划、包含路径规划的动态交互仿真及装配维修信息查询等功能,可以实现产品装配序列的自动生成、装配过程仿真,装配维修信息查询,为设计人员提供工艺参考,提高维护人员的维修能力和科技素质.为实现上述功能,系统综合应用了多种虚拟技术,如建模技术、层次化分技术、交互式仿真技术、面向维修的虚拟装配技术、可视化技术等.其中可视化技术作为实现各个功能的支撑技术,是提高系统效率的重要手段,也是清晰表达复杂零件关系的有效方法.
图1 动车组转向架虚拟装配系统总体结构
2 可视化技术需求分析
可视化技术是解释图像数据和根据复杂多维数据集合生成图像的一种工具,包括图像理解和图像分析两方面.具体来说,它是将数据、符号转换为几何图形或图像,以便研究人员观察仿真和计算的结果[2].可视化技术是计算机图形学、图像处理、数据管理、多媒体技术、人工智能技术、人机接口等技术的集成.
虚拟装配系统要求图形生成速度达到实时,而计算机所提供的计算能力往往不能满足复杂三维场景的实时绘制需要,尤其是对于高速动车组转向架这样的大型复杂结构,因而研究人员提出多种图形加速方法.LOD(Level of Detail)技术是其中一种主要方法;由于装配体零件互相遮掩无法清晰的表达零件之间的装配关系,剖视是一种展示装配体内部结构的重要手段.本文利用三维剖切技术,将零件间复杂的装配关系表述地更加明确;立体显示技术可以实现深度层次立体视觉效果,使用户“身临其境”的重要方式之一.系统通过立体显示技术为用户提供高质量的立体模型.
本文主要根据动车组虚拟装配系统对可视化技术的需求,研究LOD技术、剖切技术和立体显示技术及其实现.
3 动车组转向架虚拟装配系统可视化的实现
3.1 基于AABB包围盒的LOD技术
本系统中的LOD技术以离散型LOD为整体框架、基于AABB包围盒的模型简化算法实现.
LOD,即细节层次.其基本思想是利用物体的一种简单形式来表达物体,从而使绘制的图形简洁明了.即当视点靠近物体时,用细节模型表示物体,当视点远离物体时,用简化模型来表示.由于距离的原因,简化后的模型与细节模型看上去相差无几,这样就可以获得一个比较好的加速效果,提高系统效率[3].离散型LOD的基本思想是预处理时为每个物体在不同层次细节上创建不同的模型,在运行时选择不同的层次模型来表示物体.其优点为:可以解除简化与渲染过程的耦合,使简化模型易于编程实现;生成LOD模型时间短,不会影响系统运行效率;现代图形硬件对离散型LOD支持较好,可以将相互独立的LOD模型在预处理中编译处理成优化的渲染格式,便于图形的读取.离散型LOD技术实现了动车组转向架中大型复杂模型的快速导入、实时仿真及交互式操作.
包围盒是用体积稍大且特性简单的几何体来近似地代替复杂的几何对象.AABB包围盒是包含对象且各边平行于坐标轴的最小六面体[4].四种常见的包围盒如图2所示,包围球技术包围简约性好、但计算误差大,OBB和k-DOPs包围盒技术包围紧密性很好、但计算繁琐,AABB包围盒技术在计算体积的复杂度、简约性和紧密性上是一种折中,而且对于动车组零件而言,零件的形状相对比较规则,用AABB包围盒技术已经足够满足计算的要求.因此本文选用AABB包围盒技术对模型进行简化,这种简化算法比一般的网格化算法有更快的处理速度,提高了系统效率.在模型简化过程中,主要是对物体内部零件和小的零件进行简化.简化方法为:设整个大部件的包围盒为A,内含N个零件,其中某零件的包围盒为ai(i∈N),设定阈值M(0<M<1),当,即为部件内的“小零件”,对其进行简化;当ai⊂aj(∀j∈N,j≠i)时,即某零件在另一零件内或从属于另一零件,对其进行简化.以空气弹簧为例,简化过程如下:
图2 四种常见的包围盒
首先导入零件模型,建立场景图结构.然后计算场景图内的包围盒,根据基于AABB盒的简化方法简化模型,最后将简化后的零件模型导入到场景图结构.以空气弹簧为例,对应不同的阈值M,得到不同的简化结果.如图3所示.(a)为简化前模型;(b)为阈值M=0.001时简化后的模型;(c)为M=0.005时的简化模型.在模型简化过程中,根据场景的不同选择不同的阈值以达到图像质量与系统效率之间的平衡.
图3 LOD简化后模型比较
3.2 剖切技术
二维剖视图主要用于显示零件剖开后的断面和内部结构,能够极大限度地表现零件内部信息.在三维造型系统中,剖视是用一个平面把一个零件或装配体切开,从而显示被遮蔽零件的结构形状和位置关系.这在复杂的零件和装配设计过程中十分有用,是三维造型系统可视化的重要组成部分[5].三维造型中的剖视分类,国标中没有明确定义,一般将剖切面划分为5种,即单一剖切面、两相交的剖切平面(旋转面)、几个平行的剖切面(阶梯剖)、组合的剖切平面(复合剖)和不平行于任何基本投影面的剖切平面(斜剖).在实际应用当中,平面剖切使用最多,而且是其他剖切方式的基础.
OSG(OpenSceneGraph)图形系统对剖切有很好的支持,可以实现上述各种剖切方式.其实现原理为:在三维空间内建立剖面方程Ax+By+Cz+D=0,当剖面与零件相交时,产生剖切效果.设被剖切零件上任意一点M,其剖面方程法向量n=(A,B,C).当m与n的夹角< m,n >∈(π/2,π)时,M点被剖切掉,M点的集合,即为零件被剖切部分.当剖面法向量n与坐标轴平行时,即为平行剖切或垂直剖切;当任意赋值时,即为斜剖;旋转面剖切需要在零件上建立包围盒,在包围盒内使两个剖面相交,实现旋转剖;阶梯剖是在旋转剖的基础上,利用位置变换节点或矩阵变换节点叠加得到的.通过对动车组转向架结构分析可知,阶梯剖应用较少,平面剖切和旋转面剖切就可以方便简洁的表达被遮掩部件的细节信息.
剖切的实现:在系统中调用ClipPlane类的成员函数创建剖切平面,根据用户输入的剖面参数对剖切平面进行设置,在定义了平面索引后对导入的模型进行剖切.本系统实现剖切实例如下图所示:图4中(a)为空气弹簧的直剖,通过剖切可以观察到其内部结构;(b)为空气弹簧的斜剖;图5为轮对的旋转面剖切,可以观察到齿轮箱与箱座之间的装配关系.
图4 空气弹簧的剖切
图5 轮对的旋转剖切
普通的静态剖视图能够显示的信息数量有限,不能完全描绘零件间的位置关系.采用交互控制技术和剖面参数实现的交互式剖切,可以使用户更容易理解各部分之间复杂的空间关系.
3.3 立体显示技术
在观察真实世界时,我们的眼睛得到的是两幅不同的图像,这两幅图像中任意相应两点投射到视网膜上的水平距离,即为位差[6],它使双眼产生了体视感觉.视差则是投射到监视器上,将在视网膜投射为位差的两幅图像的任意相应两点的水平距离.这两幅具有视差的图像称为体试图像对.视差的大小决定了视网膜上位差的大小,直接决定了成像的效果.视差有四种基本类型:零视差、正视差、负视差和发散视差,如图6所示.
图6 视差类型
当图像对之间不存在任何差别,即为零视差,相当于看无限远处的景物图像;当视差小于或等于瞳距且视线不交叉时,产生正视差,融合后的立体图像位于显示器平面的后面;两眼视线交叉时产生负视差,成像位于眼睛与显示器之间;发散视差是视差取值大于两眼瞳距,在这种情况下,即使很短的时间,也会使眼睛产生不舒服的感觉,在现实中一般不会出现发散视差的可能.
视差又可分为垂直视差和水平视差.垂直视差是相关点的垂直坐标差,具有垂直视差的图像对在大脑中很难融合成立体图像,应避免垂直视差的产生.水平视差是相关点的水平坐标差,具有水平视差的图像对融合效果好,因此应多采用水平视差来产生立体效果.
目前有多种计算图像对的算法,其中透视投影旋转法、平行投影法和双中心投影法是比较典型的三种算法.透视投影旋转法在平面显示器上会产生垂直视差和图像的扭曲,常不采用.平行投影法虽然解决了上述问题,但会产生无界的水平视差,给观察者一种逆透视的感觉,不能满足观察要求.双中心投影法是用两个中心分别对左眼视景和右眼视景进行投影[7],不产生垂直视差、无界的水平视差等缺陷.因此,本文利用双中心投影法实现模型的立体显示.
双中心投影法的原理为:假定两眼到投影平面的距离相等,并且将两眼简化成两个视点,如图7所示.设:左视点坐标为(-e/2,0,-d),右视点坐标为(e/2,0,-d),双眼距为e,投影平面为z=0且平行于x-y平面,空间有一点p=(x,y,z),Pl=(xl,yl)是点 p在投影平面的左投影,pr=(xr,yr)是点p在投影平面的右投影.
图7 双中心投影法数学模型
将左、右眼视景分别按单眼点投影法投影得到以下左、右眼点投影的方程组:
解方程组(1)可以得到左投影点在视平面的坐标Pl=(xl,yl).解方程组(2)可以得到右投影点在视平面的坐标Pr=(xr,yr).由左、右眼投影点坐标值,可以看到yl=yr,即左、右投影点在y方向的坐标相同,因此没有垂直视差.而水平视差H=xl- xr=de/(d+z),其极限值为e.e值是决定水平视差H的关键系数.只有当e足够小时,左右视景才能融合成3D图像.参考文献[6]建议e=0.028d.
系统中立体显示的实现:程序调用OSG中的osg::stereo,通过交互式操作对为立体显示参数赋值.如图8所示,通过对屏幕高度、宽度、距离等的赋值,完成程序中 setStereoMode、setDisplay-Type、setStereo、setEyeSeparation、setDisplaySettings等函数的调用,根据双中心投影法计算得到水平视差值,在场景图中分别对左视图和右视图进行计算与绘制,利用红蓝分色实现立体显示,实现立体显示.交互式的立体显示,可实现在不同规格的显示器上得到相同的立体效果.图8为立体参数的设置,图9为轮对的立体显示效果图,需配戴红蓝立体眼镜观察立体效果.
图8 立体渲染参数设置
图9 轮对的立体显示
4 结论
可视化是动车组转向架虚拟装配系统的重要支撑技术.本文采用基于AABB包围盒的LOD技术实现了不同场景下模型的简化;通过建立剖面实现了三维复杂模型的直剖、斜剖和旋转剖切;利用双中心投影法原理通过参数设置实现了系统中复杂模型的立体显示.
可视化技术的应用提高了系统直观性和效率,设计和制造人员利用该系统可以快速、准确地理解产品的结构、装配和维护检修要求,节约了大量查找模型资料和沟通所需要的时间,提高了工作效率.本系统开发的思想和方法,可以推广到其他领域.
[1]董锡明.现代高速列车技术[M].北京:中国铁道出版社,2006.
[2]林茂松.科学计算可视化的应用研究[D].重庆:西南交通大学,2006.
[3]肖鹏,刘更代.OpenSceneGraph三维渲染引擎编程指南[M].北京:清华大学出版社,2010.
[4]魏迎梅.虚拟环境中碰撞检测问题的研究[D].北京:国防科学技术大学,2000.
[5]刘晓平,王浩.CAD系统中工程剖视图的算法研究[J].计算机辅助设计与图形学学报,2000,12:839-841.
[6]贾惠住.虚拟现实中立体显示技术的研究与实现[D].大庆:大庆石油学院,2002.
[7]裴俊,戴树岭.虚拟座舱观景系统的技术研究[J].测控技术,1998,17:3.