姚寿文,常富祥,李鹏宇,王 瑀,胡子然
(1 北京理工大学, 北京 100081; 2.哈尔滨第一机械集团有限公司, 哈尔滨 150051)
虚拟维修是基于虚拟现实提供的沉浸(Immersion)、交互(Interaction)和构想(Imagination)的维修环境,使设计者并行对未来产品进行维修性分析,避免维修性工作在时间上的滞后,并为维修保障分析、维修资料编写、维修培训等工作提供基础信息,是虚拟现实技术的一个重要应用方向。
维修性属产品设计特性,必须在产品设计时注入,然而依赖于物理样机的传统维修工作模式致使维修缺陷的发现较晚,导致很多维修缺陷被带入最终产品。维修是使产品保持或恢复到规定状态所进行的全部活动。典型的维修包括准备、故障诊断、更换(拆卸和安装)、调整和校准、保养、检验等步骤。在整个维修事件中,零部件的拆卸和装配所需时间占有相当的比重,是虚拟维修研究的重点[1],而装配则是重中之重。拆卸是接近维修部位、确保维修任务顺利完成而解除必要的约束,是零件从约束空间运动到自由空间的过程。装配是将失效零部件替换为新的零部件,包含约束生成,自由度消减,定位等方面的要求,是零件从自由空间到约束空间的过程。典型的虚拟维修是美国NASA利用虚拟维修训练技术,于1993年完成太空哈勃望远镜的维修[2]。浙江大学等高校也开发了虚拟维修系统[3]。
虚拟维修的关键之一是待维修装备上的零件能按照物理世界中的特性被维修人员进行拆卸和装配,零件模型是虚拟维修的基础,是建立几何约束、碰撞检测和人机交互的关键。欧立铭[4]等针对协同虚拟维修研究了零件特征模型,但没有考虑零件的物理特性。几何约束是由零件之间的几何特征,如孔特征、轴特征、轴肩特征、齿特征、花键特征、槽特征、螺纹特征等装配特征[5]实现。基于装配特征,文献[6]建立了多种装配约束,如同轴约束、面贴合约束等。物理约束主要指零件间非穿透特性以及重力等,模拟零件在空间的运动。零件之间的非穿透,主要以建立零件的包围盒[7]为主。为实现装配过程中约束的动态识别,文献[6]建立了基于FDH(Fixed Direction Hull)的特征包围盒,既提高了装配精度又便于实现几何约束的动态识别。王崴等[8]提出一种改进的空间剖分与包围盒的混合碰撞检测算法,提高虚拟维修中碰撞检测效率,但没有涉及非凸体。人机交互主要指维修人员通过虚拟手[9]、数据手套[10]等与虚拟零件交互,模拟操作零件,但较少考虑操作对象特点,交互响应单一。
为更好地模拟装备维修中零件的装配,本文分析了参数匹配、碰撞检测和人机交互等要求,建立了零件层次结构模型,结合Unity3D开发了相应的管理器,制定了约束动态识别、虚拟手交互响应和零件干涉检查流程,开发了虚拟维修平台,以某传动轴总成为例进行了验证。结果表明,本文建立的零件模型可以满足虚拟维修中零件拆卸和装配需求,为虚拟维修的实现提供了信息全面的零件模型。
为了满足虚拟环境中零件维修的真实模拟,零件模型必须和现实环境的模型一致,即零件具有几何、材质、光照、零件不可穿透和漂移以及人手操作零件等特点,使维修人员能够沉浸于虚拟环境中进行产品的维修。为了满足以上需求,虚拟环境中的零件必须具备几何外形、物理属性、碰撞包围体、装配特征和参数等信息,是多种信息的集合。
为解决虚拟环境中零件信息管理问题,本文设计了一种面向维修的零件层次结构模型,如同个零件特征之间的内部约束关系主要是特征之间的定位约束,用于保持零件特征之间的相互位置显示,分为零件层、特征层两个层级,各个层级之间通过数据索引实现信息的关联。零件层以零件为基本节点,负责储存和管理零件在维修过程中需要的公共数据,管理零件在虚拟环境中的状态以及与操作者之间的交互,同时也负责管理零件的外形渲染、外轮廓碰撞的功能。零件层包含三个功能模块:零件管理器、参数管理器与交互管理器。特征层以特征为基本节点,每个特征都包含该特征在零件坐标系下的局部坐标、特征碰撞包围体和特征功能管理器。特征功能管理器负责记录特征类型和特征参数,管理对应特征功能。特征层中特征之间的约束主要有特征的内部约束与特征的外部约束。同个零件上具有轴孔约束、轴肩约束和花键约束等特征,特征的内部约束关系主要是各个特征之间的定位约束,用于保证该零件不同特征之间的相互位置。不同零件特征之间的约束关系主要是特征之间的配合约束关系。零件模型层次结构如图1所示。
图1 零件模型层次结构
本文结合Unity软件平台,利用C#语言开发了功能及相应界面,进行零件模型层次结构的具体描述。
1) 零件几何模型
虚拟环境中,实体建模软件,如Pro/E等,通过中间软件,如3DMax导入fbx格式的零件几何模型,包含零件的网格模型与渲染属性,在渲染属性界面上,设置零件的渲染材质为金属材质,设置界面如图2所示。
图2 虚拟环境下零件几何模型的渲染属性设置界面
2) 零件物理属性
为了使虚拟环境下的零件尽可能体现现实环境下零件的运动规律,且可与其他零件相互影响,需要在几何模型的基础上设置零件的物理属性,使零件的几何模型成为具有物理属性的模型,设置界面如图3所示。在设置界面中,设置质量参数,为避免虚拟环境交互时零件漂浮,设置重力,并将平移与转动阻尼系数设置为10,模拟环境摩擦力。
图3 零件物理属性
3) 零件外轮廓包围体
在虚拟环境中,一般利用碰撞检测算法与动力学求解实现物体间的非穿透运动。在计算机图形学与计算几何领域,通过碰撞包围体组成一个零件包络封闭空间,用于描述物体在空间的位置和体积。最常见的碰撞包围盒有AABB(Axis-Aligned Bounding Box)包围盒和BS(Bounding Sphere)包围盒。AABB包围盒被定义为包含对象,且边平行于对象坐标轴的最小六面体。BS包围盒是包含对象的最小球体。这两个包围盒的优点是相交测试计算迅速,缺点是精度差,无法描述局部细节的碰撞。另一类精度较高的包围盒是OBB(Oriented Bounding Box)包围盒,它是包含该对象且相对于坐标轴方向任意的最小长方体。OBB包围盒比AABB包围盒和BS包围盒更加紧密地逼近物体,能比较显著的减少包围体的个数,从而避免了大量包围体之间的相交检测,但其缺点是对于不规则物体仍会留有冗余空间,精度不能满足要求。FDH包围盒则是一种固定方向的凸体包围盒,可以根据零件的几何构建凸包体,精确描述零件外形,优点是精确度高,缺点是相交检测运算时间长。针对维修过程中高精度干涉检查要求,本文利用零件面片模型顶点集,采用零件外轮廓建立FDH包围盒。图4为某零件外轮廓FDH包围盒模型。
图4 某零件外轮廓FDH包围盒模型
4) 零件参数管理模块
目前的碰撞检测算法都是针对凸体设计的。对于非凸体,一般采用多包围盒分层包络的方法,将非凸问题转化成凸问题[11]。但对于外形复杂的零件,这种建模方式会使外轮廓模型极其复杂。本文的参数管理模块集成了参数匹配与碰撞检测,既便于零件管理,又可以对非凸体实现基于参数匹配的零件碰撞检测。如孔是非凸体,若齿轮装在轴上,则为典型的非凸干涉问题。图5为某零件的参数管理模块界面,设置有零件编号,零件名称,零件前端面、后端面距零件模型坐标系的距离。
图5 某零件参数管理模块界面
5) 零件管理模块
零件管理模块中的关键是虚拟手与零件的交互状态控制,以及维修过程中需要的公共参数等,设置界面如图6所示。
6) 零件虚拟交互模块
零件虚拟交互模块负责管理与虚拟手的交互功能,添加交互模块后,需对模块增加零件维修管理模块的相应参数,如当虚拟手抓取了当前零件时,将零件的抓取状态设置为true,当零件被释放时,将零件的抓取状态设置为false界面,如图7所示。
7) 零件特征模型
特征模型是零件上用于拆卸、装配时定位、固定的结构的功能集合,包含特征碰撞包围体、功能类型、参数和响应算法等。表1以机械传动为例进行说明。首先,针对传动装置零件的结构进行归纳总结,将零件之间的配合关系抽象成零件自由度的约束策略。然后,提取零件的几何特征,将其转换成碰撞包围体,作为约束响应算法的触发器。最后在拆卸和装配过程中设计响应算法,提取参数,用于参数比对,判断零件是否可进行装配。
表1 特征约束对零件的自由度限制表
注:*代表双向约束,-代表单向约束,+代表运动成比例关系
虚拟环境下,特征建模是利用零件的装配特征,识别并建立零件之间的配合约束关系,通过设计人员对零件的交互建立系统的约束模型,为实现零件间几何约束动态识别与建立提供数据基础。在零件层设置完成后,再在零件层下建立特征层,根据零件的功能在对应位置上建立特征,设置特征类型与参数,其特征层属性如图8所示。
图8 零件特征层属性
在虚拟环境中,通过交互操作待维修零件进行运动,应用特征约束的自动识别[6],判断零件与其他零件间的约束关系,若不存在约束关系,零件则按外轮廓碰撞约束运动,保证零件不发生穿透;若存在约束关系,零件在约束状态下运动。零件在运动过程中与其他零件进行碰撞检测,判断是否有新的约束关系产生,若存在有效的约束关系,则通过特征约束的求解,计算零件的变换矩阵,实现零件的精确定位,完成零件的拆卸和装配。图9为虚拟环境下维修零件在装配过程中约束动态识别与建立的流程框图。
图9 装配过程零件约束动态识别与建立流程框图
虚拟手的交互响应为虚拟手操作手势与零件的正确匹配过程,对于不同外形、重量的零件,需用不同的手势进行交互,才可改变零件的位置。手势与零件的匹配关系如表2所示。
表2 虚拟维修交互操作响应功能要求
虚拟手抓握逻辑分为三个判断过程,分别为手势匹配判断、抓取条件判断和零件可抓取状态判断,如图10所示。在获得虚拟手的手掌和手指位置、方向参数的基础上,判断出当前的手势,首先根据表2判断手势类型与操作零件是否匹配,然后根据零件是否为场景中可交互零件判断零件的可抓取状态,避免虚拟手与场景中的背景物体发生交互,最后通过虚拟手手指、手掌与零件的接触状态进行判断抓取条件,三个判断条件均通过即可更新零件位姿,完成抓握,否则抓取失败需重新抓取。
图10 虚拟手抓握流程框图
零件干涉是指零件间表面接触使零件的运动自由度改变,无法在拆卸或装配方向上继续运动。在维修过程中,零件干涉检查是检查零件是否因尺寸参数、拓扑结构设计错误,导致零件无法装配到指定位置,或者因可操作空间狭小,维修人员无法使用手、工具将零件装配到位。
基于装配特征与参数比对的零件干涉检查算法如图11所示。首先对零件的干涉类型进行判断,如果是零件外轮廓(凸体)发生干涉,则按凸体碰撞检测进行干涉检查计算。若是零件内轮廓(非凸体)发生干涉,则根据不同的特征碰撞类型,如内外花键、轴孔等,对当前的发生碰撞的几何特征进行参数匹配,根据参数匹配结果判断零件的内轮廓是否发生干涉。
以某传动轴总成上的隔环装配为例,过程如图12所示。首先是外轮廓干涉检查,当隔环外侧壁与轴发生接触时,隔环因碰撞约束不会与轴发生穿透现象,然后通过参数匹配,形成同轴约束,将隔环装配在轴上。
本文采用Unity3D渲染引擎搭建三维虚拟场景,场景由零件模型、维修区域、交互式电子手册组成。场景图如图13,其中左侧为零件放置区,正前方屏幕为可交互式电子手册窗口,用于显示视频和文字信息,文字信息包括零部件的名称、编号以及注意事项(装配过程中的对中要求、键槽与油孔的装配匹配、齿圈与轴的键槽角度匹配等),正中央黄色区域为维修区域,并且纪录过程。电子手册采用虚拟交互面板远程控制,使用者可以用与自身同步的虚拟手进行操作,如图14所示,远程控制电子手册进行图片切换及视频播放功能。
干记者后,迟恒眼花缭乱,别的不说,光《海宁日报》报社里的光景,就使他惊讶受累,半年发了一次工资。记者不是“农民工”,欠着就欠着,不吵不闹。《海宁日报》几个部,全跟他老婆学校小卖部一样,都是经济承包。看不到钱,迟恒暂且可以咬牙“奉献”,老婆牢骚满腹,说从泥坑进了屎坑。
图11 零件干涉检查算法流程框图
图12 隔环在虚拟装配中的干涉检查及装配
本文选取某传动轴总成的传动轴来进行维修过程中的零件装配分析,以验证零件模型能否真实模拟零件的实际装配。为便于表达,本文是在轴上零件拆卸后,以零件的装配过程进行说明,为便于观察零件装配过程,隐藏了部分紧固件。
图13 虚拟维修环境场景图
图14 虚拟环境中电子交互手册
1) 将传动轴竖立,安装中间轴承。如图15所示,子图a中将传动轴放置在水平面上,子图b中将轴承安装在轴上。轴承与传动轴的轴孔约束匹配成功后达到对中要求并且只能沿轴线移动,在子图c中当被轴肩阻挡无法继续向下运动时,表示轴承安装成功。
图15 轴竖立后安装中间轴承
2) 反转轴安装另一侧轴承、安装轴承座、辅助配油套。该安装步骤时需要将辅助配油套和轴承座上螺栓孔对齐,图16中c和d体现了辅助配油套周向角度的调整过程。
图16 安装轴承座及辅助配油套
3) 安装隔环、配油套。如图17中所示,第一步,在辅助配油套内,轴承外侧,安装隔环。第二步,调整配油套周向角度,使配油套的内花键和轴的外花键配合。第三步,沿轴移动配油套,直至与隔环发生接触,完成装配。
4) 被动齿轮及配油轴套装配。本步骤需要进行被动齿轮内花键与轴上外花键配合,还要注意传动轴上的油孔(在键槽内,且油孔间隔布置),因此还需注意将齿轮内花键上油孔与轴上外花键的油孔对齐,如图18中标记框处。齿轮模型在该特征处设置了角度参数进行匹配,拥有油孔的键槽与齿轮拥有油孔的键不匹配时,约束条件不满足,齿轮将无法进行安装。
图17 安装隔环及配油套
图18 安装被动齿轮及配油轴套
5) 安装离合器总成、滚针轴承隔环,如图19所示。
图19 安装离合器总成、滚针轴承隔环
6) 安装离合器被动齿轮、齿圈。离合器被动齿轮需要与离合器摩擦片内齿啮合后才能完成安装,图20中第一步和第二步为调整被动齿轮角度,被动齿轮安装完成后安装滚针轴承,接着安装齿圈(轴端轴承已安装在齿圈内),需要注意齿圈与轴的键槽角度匹配。
图20 安装被动齿轮、滚针轴承及齿圈
7) 安装锁紧螺母、传动总成倒立以相同步骤进行另一侧零件维修完成安装。锁紧螺母在汇流排齿圈内,由于没有空间放置扳手进行螺母拧紧,因此本文在虚拟环境下构建了一个工装模型,如图21(c)所示,以满足安装空间工具可达性要求,并因此定制了一个锁紧螺母的装配约束,仅能在工装与螺母匹配后才能旋进。至此,该轴系的一侧已完全安装完毕,再反转轴,从另一侧进行安装,这一侧装配的流程基本一致,故将这一侧过程略过,直接给出轴系的最终装配结果,如图21(e)和图21(f)所示。
图21 安装锁紧螺母、反转轴端完成最终装配
通过模拟该轴系零件的装配过程,可以看出本文提出的集几何、物理和交互的零件模型可以反映零件的实际装配过程,达到了实际装配效果。本文的维修平台能够较好的模拟实际维修过程,操作友好,沉浸感强,具备很好的操作体验。
建立了面向维修的零件层次结构模型,开发了参数匹配与碰撞检测结合的零件参数管理模块、虚拟手与零件交互的零件管理模块和零件虚拟交互模块,制定了约束动态识别、虚拟手交互响应以及基于装配特征与参数比对的零件干涉检查流程,开发了虚拟维修平台,以某综合传动装置的轴系为例进行了零件装配实验,验证了集几何、物理和交互的零件层次结构模型可以满足虚拟维修中零件拆卸和装配要求,为虚拟维修训练提供了关键的零件模型。