虚拟装配自动文本标注研究及在动车组中的应用
2011-07-29周韶泽兆文忠马思群
周韶泽, 兆文忠, 张 军, 马思群
虚拟装配自动文本标注研究及在动车组中的应用
周韶泽, 兆文忠, 张 军, 马思群
(大连交通大学交通运输工程学院,辽宁大连 116028)
三维自动标注可明显提高复杂产品虚拟装配及虚拟样机技术的实用性。针对复杂产品虚拟装配实时文本标注复杂和效率低问题,提出交互式快速文本标注布局算法。算法通过预定义标注位置,建立文本压盖避让规则、动态调整标注规则,实现了移动三维模型点标注和左右标注快速自动布局。实例结果表明,该方法显著提高了复杂产品三维模型的可读性,增强了仿真的整体效果,提高了设计及培训效率。
计算机应用;自动文本标注;标记压盖避让;虚拟装配;动车组
随着设计制造自动化水平的不断提高,虚拟现实、虚拟装配及虚拟样机技术在产品设计制造中应用越来越多,使得虚拟装配技术成为新的重要研究方向之一。虚拟装配中零部件自动标注是提高复杂产品虚拟制造实用性的关键因素之一,实现自动标注能使复杂产品的虚拟装配及虚拟样机系统易于使用。自动标注技术对于直观表达虚拟装配三维对象的信息非常重要,是人机交互方面的重要研究内容,良好的人机交互功能可显著增强虚拟装配的实用性。如高速动车组集成了机械、电子、电气和计算机等各种高新技术,这些技术普遍应用于各个系统当中。由于这些系统技术复杂、专业性强、结构封闭,相关零部件总量巨大,在产品的虚拟设计,虚拟装配、维修培训应用中,需要在虚拟环境中对三维模型对象(装配体、组件和零部件)自动标注文本,快速地显示对应的各种文本信息,这些信息包括对象的中文名称、英文名称和BOM等。
三维自动标注,是指用户在虚拟环境中浏览三维模型时,交互式地选择某个或某些三维对象,系统自动实时标注所选对象的文本信息,让观看者在了解三维模型复杂的结构、空间位置关系同时,掌握所选三维模型对象的相关信息。通过将三维模型和文本信息整合起来的方式,使得用户直观地、快速地从全局上浏览掌握相关数据,为使用者提供了良好的信息支持。三维自动标注交互式浏览具有的特点是:可以对模型进行总览,放缩和选取;可以按需查看模型的文本信息;当使用者平移、转动、放大缩小模型或模型移动时,文本标注能自动调整布局并平滑进行显示。
近年来出现了许多有关文本自动标注和提高人机交互能力的文章。Ian Vollick提出了一个通过例子学习标记布局算法对图形进行文本标注布局,但是该算法只适合二维图形;Kamran Ali提到了一个标签标识模型和算法,实现了三维环境中标签自动布局和标注,但只对简单的静态三维模型进行自动标注,文中采用的约束力算法对大型复杂模型将会消耗大量计算机资源;Timo Götzelmann提出了一个动态3D模型标注的方法,通过分析整个动画过程实现动态模型的自动标注,该方法局限在于需分析整个动画过程才能生成标注;彭涛提出了一个层次化模型,用层次化模型对虚拟装配中的增强信息进行了建模和显示,引导操作者进行产品的装配,提高了装配效率并减少装配错误。
目前,针对复杂三维模型,生成高质量的实时标注布局的算法往往会消耗大量的计算机资源。在动车组虚拟装配应用中,由于动车组三维模型零部件数量大,自动标注算法应考虑效率,实现实时大型模型标注渲染。本文提出了快速自动标注布局算法,通过简化的标注自动布局的算法,实现复杂模型文本快速自动布局、防止文本干涉、实时渲染、动态实时表示等交互功能,提高了复杂产品虚拟装配系统的标注实时性及实用性。该算法在动车组虚拟装配系统中得到了成功应用。
1 系统流程结构
针对复杂产品的虚拟装配要求,提出自动标注系统流程结构,如图1所示。系统首先获取当前三维模型中所需标注的对象,然后对这些对象作可见性判断,根据零部件及其标注点是否被遮挡,对其是否进行标注进行判断。从产品数据库数据表和XML文件对应节点文件取得对象关联信息后,完成域结构初始化。用户选择布局方式,如点标记布局方式、左右标记布局方式,再初始化标注(如将对象三维坐标转换为屏幕二维坐标等),然后自动布局,最后进行标注渲染。
图1 系统流程结构
2 系统关键技术分析
2.1 域数据初始化
标注开始时,系统首先要做的是取得当前三维模型中所需标注的对象。用户选取需标注的实体对象,使系统返回所有需要标注的对象。这些对象在零件装配树中都有一个唯一的名称ObjectId。系统为被选择对象建立域结构MapStruct容器,MapStruct存储对象ObjectId和其对应文本信息指针。域结构初始化时,系统查询MapStruct中对象名称ObjectId有无对应的文本信息,如果没有,从装配体XML数据文件对应节点和数据库对应数据表中查询并提取对应的标记(标注文本)数据,这些数据包括对象中文名称、BOM名称等,将对象名称ObjectId和文本标记映射,存储在MapStruct中,域结构初始化结束。
2.2 模型三维坐标到屏幕二维坐标转换
将模型三维坐标映射到二维屏幕上,要经过视图变换、投影变换、视口变换三个阶段。要完成三维世界坐标到二维视口坐标的映射得将所有变换过程进行叠加,坐标转换方法为
2.3 点标注
点标注中标识点标识零部件位置,标记在标识点的附近标识对象,如图2所示。当移动、旋转三维场景时,标识点和文本标记的显示位置也会随着视点的变化而实时相应地调整。当视图变换时文本标记会出现相互遮挡的情况,系统需要通过合适的算法,避让文本标记,使文本标记正确显示。当遮挡问题实在无法解决时,有选择的不显示某些标记。点标注生成算法如下:
算法1 点标注生成算法
步骤一 零部件轴心位于零部件中心,取得轴心三维坐标转换成二维屏幕坐标,即标识点坐标。
步骤二 进行标记分向。取得装配体最大包围盒的中点坐标,根据式(1),转换成二维屏幕坐标(,),如果零部件轴心点<,标记在标识点右边。否则在标识点左边。
步骤三 从MapStruct取得对应ObjectID对象标记数据,初始化标记布局。判断各标记之间边界矩形框是否冲突,若冲突即标记和标记出现遮挡,执行步骤四。否则执行步骤六。
步骤四 调整标记点深度小的标记到候选位置,即标记的反方向,如,标记原来在标注点左边,候选位置则为标记点右边。如果仍存在遮挡,执行步骤五。否则执行步骤六。
步骤五 候选位置不合适,则将标记的标注点深度值比较,标注点深度值小的标识点和标记不渲染,将他们从渲染列表中删除。
步骤六 加入渲染对象列表。渲染渲染对象列表中的标识点及文本标记对象。
图2 点标注标识动车组转向架各对象名称
2.4 左右标注
左右标注分别在装配体的左侧、右侧或左右两侧进行外部标注,如图3所示。左右标注以装配体中某零部件轴心的二维坐标点作为引线点,向外引出标注线,标记在标注线末端。如图3(a),左右标注分别在标识对象的两侧,随着视角的变化标注自动调整位置,标注线不相交,清晰指向对象,文本标记不压盖。左右标注算法原理如下:
(a) 动车轮对左右标注 (b) 动车轮对右侧标注装配过程中自动布局
(2)
图4 左右标注示意图
算法 2 左右标注生成算法
步骤三 将排序好的引线点对象按坐标从小到大循环。计算当前引线点值,即,如果大于阈值,则引线点取得对应,进入下一个引线点循环。否则值累加。根据式(2)和式(3),实时更新标注线长度及角度。循环直至所有引线点取得对应值,记录引线点位置和终点位置入数组。
步骤四 根据引线点位置和终点位置数组采用迭代法判断标注线是否交叉,如果交叉,对调标注线值,即对调交叉标注线终点,避免标注线交叉,直到所有标注线不相交。
步骤五 根据标注点终点位置,从MapStruct取出对应ObjectID对象文本,更新文本标注位置,并调整位置,右分向居点右对齐,左分向居点左对齐。
步骤六 渲染标注线和文本标记。
3 系统实现及工程应用
本文所提出的算法已在动车组虚拟装配软件系统中得到了应用。该软件采用Visual C++作为开发语言, 以OpenSceneGraph作为图形开发库进行开发。OpenSceneGraph是一款高性能的3D图形开发库,广泛应用在可视化仿真、游戏、虚拟现实、高端技术研发以及建模等领域。
图5为应用开发的软件所得到的一个标注应用案例,图中显示的是由3千多个对象组成的CRH3动车组动车转向架模型。该软件窗口由两个部分组成:左侧的零件列表区和右侧的三维装配交互区。打开自动标注功能后,在零件列表区中选择需标注的对象,交互区中则会显示对应的三维模型和其对应的文本标注。同时,可以在三维装配交互区对转向架进行移动、放缩、旋转等操作,中文名称、BOM名称等文本标注实时自动调整布局,平滑显示。在转向架装配过程中,标注还可随着装配对象移动而自动调整布局显示,如图3(b)所示。
图5 动车组虚拟装配系统自动标注案例
4 结束语
本文提出的三维实时文本自动标注算法以及实现的系统使用方便, 稳定可靠,界面显示友好,有效地解决复杂产品虚拟装配实时自动标注难题。通过三维模型和相关信息的结合显示,提高人机交互能力,缩短了相关人员对动车组的熟悉时间,加强了动车组虚拟装配系统、虚拟样机系统的实用性。系统可应用于复杂产品的虚拟设计、虚拟装配、维修培训中。在本研究的基础上,进一步研究的问题包括:加入更多不同的标注方式;进一步压缩标注的空间;添加部件间装配关系、装配步骤等的加强信息。
[1] 行开新, 田 凌.支持异地协同设计的异构CAD虚拟装配系统[J].清华大学学报(自然科学版), 2009, 49(2): 226-231.
[2] 赵 罡, 王 超, 侯文君, 等.复杂产品虚拟装配系统的人机交互技术[J].北京航空航天大学学报, 2009, 35(2): 137-141.
[3] 甄希金, 武殿梁, 范秀敏, 等.复杂产品分布式并行协同虚拟装配系统研究[J]. 计算机集成制造系统, 2008, 14(10): 1991-1995.
[4] Choi S H, Cheung H H. A versatile virtual prototyping system for rapid product development [J]. Computers in Industry. 2008, 59: 477-488.
[5] Ian Vollick, Daniel Vogel, Maneesh Agrawala, et al. Specifying label layout style by example [C]//ACM. Proceedings of the 20th Annual ACM Symposium on User Interface Software and Technology. New York: 2007: 221-230.
[6] Kamran Ali, Knut Hartmann, Thomas Strothotte. Label layout for interactive 3D illustrations [J]. The Journal of WSCG, 2005, 13(1): 1-8.
[7] Timo Götzelmann, Knut Hartmann, Thomas Strothotte. Annotation of animated 3D objects [C]//SimVis 2007. 2007: 209-222.
[8] 彭 涛, 李世其, 王峻峰, 等.基于增强人机交互技术的虚拟装配[J].计算机辅助设计与图形学学报, 2009, 21(3): 354-361.
[9] 刘彦花, 叶国华. 计算机辅助制图下的文本自动标注[J]. 计算机应用研究, 2008, 25(4): 1023-1032.
[10] 刘军强, 王剑斐, 马新厂, 等. 三维零件图尺寸的自动标注[J]. 西安工业大学学报, 2008, 28(6): 526-530.
[11] Timo Götzelmann, Knut Hartmann, Thomas Strothotte. Agent-based annotation of interactive 3D visualizations, lecture notes in computer science [M]. Heidelberg: Springer Berlin, 2006. 24-35.
Automated Labeling for Virtual Assembly and Its Application in CRH Train
ZHOU Shao-ze, ZHAO Wen-zhong, ZHANG Jun, MA Si-qun
( College of Traffic and Transportation Engineering, Dalian Jiaotong University, Dalian Liaoning 116028, China )
Automated labeling can significantly improve practicability of the virtual assembly and virtual prototyping technology of complex products. To resolve the problems of real-time label layout for virtual assembly of complex products, the fast interactive label layout algorithms are presented. Through predefining label position, setting up the rules of label overlap elimination and dynamic adjustment of labeling, fast point-feature labeling placement and left-right-feature labeling placement for moving 3D objects of models are realized. The experiments show that this approach significantly increases readability of complex product models in the virtual assembly system, enhances the overall effectiveness of the simulation and improves the design and training efficiency.
computer application; automated labeling; label overlap elimination; virtual assembly; CRH train
TP 391
A
1003-0158(2011)01-0083-06
2010-02-20
铁道部科技研究开发计划资助项目(2008J012-C);辽宁省教育厅高等学校科研项目计划(2009T011)
周韶泽(1977-),男,广西南宁人,工程师,博士研究生,主要研究方向为计算机图形学、虚拟现实、虚拟装配等。