e-works数字化企业网  »  文章频道  »  产品创新数字化(PLM)  »  CAD

2009产品创新数字化峰会征文:基于CAD的碰撞检测技术及其在虚拟装配拆卸系统中的应用

2009/10/20    来源:e-works    特约撰稿人:赵瑛峰      
关键字:虚拟装配  碰撞检测  CAD  虚拟现实  
在虚拟装配和拆卸过程中,碰撞检测的精度的提高会导致场景绘制和碰撞检测时间开销的急剧增大。提出在虚拟装拆环境中嵌入基于CAD的精确碰撞检测方法,通过CAD模型动态构建VR场景图,形成前台绘制、后台干涉计算模型的分离,并通过位姿同步机制保持二者空间方位的一致,通过构造一种碰撞检测加速策略,不仅在虚拟装拆环境中实现了精确的碰撞检测,而且大大降低了干涉检测的时间开销。

1 引言

    几何形体间的碰撞检测在虚拟装配和拆卸过程中几乎无处不在,碰撞检测的精度决定了虚拟装配和拆卸的精度,对于目前的商用VR开发平台而言,普遍采用多边形(通常是三角形)描述场景中的任意几何形体,并通过纹理映射、光照模型来模型物体在真实世界的视觉效果。而多边形模型首先是面模型,面模型不包括物体的内部信息,无法计算由面所组成的体之间的空间干涉情况,只能计算面面之间的相交情况;其次多边形模型只是对形体几何的逼近形式,对形体的逼近程度决定了三角形面片数量的多少,逼近程度越高,三角形网格数量越多,渲染和碰撞检测的时间开销越大;对形体的描述形式决定了基于多边形网格的碰撞检测算法难以实现物体间的精确碰撞检测。

    精确的碰撞检测首先要保证模型是精确的,其次要保证碰撞检测算法要基于精确模型之间的空间相交求解。在目前一些大型的商用CAD软件中,如UG、Pro/E等,不仅采用初等解析曲面和样条曲面定义几何物体的外形轮廓曲面,而且采用的是体模型,能够准确定义几何物体的内外部空间,同时其提供的静态干涉检查功能和算法是成熟的,分析时间是高效的,本文通过把商用CAD系统提供的干涉检查功能无缝集成到定制开发的虚拟装配和拆卸系统中,一方面能够实现形体间的精确碰撞检测,同时能够快速地绘制场景以实现交互,并进一步通过采用诸如包围盒等方式构造合适的精确碰撞检测加速策略,快速排除大量不会发生碰撞的物体对,降低复杂场景中进行精确碰撞检测的开销,提高虚拟装配/拆卸系统的实时性。

2 总体技术方案

    目前商用的VR开发平台均不提供基于CAD几何模型的精确碰撞检测功能,而只提供基于多边形相交测试的碰撞检测功能,不仅碰撞检测精度难以提高,而且由于难以判别包容干涉、接触干涉、硬干涉三种之间的区别,对于虚拟装配和拆卸过程中广泛存在的对齐、贴合、相切等情况难以得到正确的碰撞检测结果,从而影响系统对这类情况做出正确的反应。

    通过深入的研究和程序开发,本文在VR环境中实现了基于CAD几何模型的快速精确碰撞检测功能,图1是系统结构框图。

    从图中可以看出,CAD模型是联系前台的场景展示和后台的碰撞检测计算的纽带,一方面,基于CAD的精确碰撞检测平台在后台对CAD模型进行空间干涉计算,另一方面,前台根据CAD模型动态生成场景图并进行绘制以用于用户交互,从而将仿真的三维显示和仿真计算分离。当场景中的几何对象发生运动时,通过在二者之间建立的通讯技术同步更新运动的几何对象在场景中的几何方位并保持一致。几何对象运动过程中的干涉计算采用离散时间步的方法进行计算,即:几何对象运动时,在场景中以一定的时间间隔步进,同时把该物体运动后的空间方位通过通讯传递给后台用于计算的CAD碰撞检测平台,在后台同步更新运动部件的空间方位后,与其它部件在该时刻进行静态的碰撞干涉计算,然后得到并分析计算结果,并把计算结果通过通讯计算传递到前台VR环境控制端,如果部件间没有发生干涉,则继续进行下一个步进动作,否则在场景中发出干涉信号并做出相应的反应。这样只要步进的距离或角度足够合理,可以获得几何对象运动过程中可能发生的任何干涉情况。

图1 系统结构框图

3 关键技术

    3.1 基于CAD的精确碰撞检测算法及其程序实现

    CAD交互界面下的干涉检查功能无法实现批量自动化处理,显然无法集成到定制开发的VR系统中去,为此,必须找到脱离CAD交互运行界面的程序自动化计算方法。通常而言,高端商用CAD系统提供有二次开发包,在其开发包上进行二次开发有望实现干涉检测的程序自动化处理。

    UG NX是高端CAD系统,其提供的二次开发工具NX/Open功能强大,在NX/Open的基础上能够开发实现任意几何对象之间的精确碰撞检测的自动计算。

    使用NX/Open的进行干涉检查分析的步骤如下:

    1)创建一个间隙分析数据集,分配空间并设置相关属性

    2)设置间隙分析模式,允许采用实体模型或多边形网格模型进行干涉检查。

    3)设置间隙分析规则,设置需要排除的干涉检查对。

    4)设置间隙分析中用于分析的几何对象。

    5)进行间隙分析,对上面的设置进行干涉分析。

    6)对计算结果进行分析。从计算结果中找到发生硬干涉的物体对以及干涉区域。

    使用NX/Open进行干涉检查的计算结果的干涉类型分为如下4类:

    1)不干涉:几何对象间没有发生干涉;

    2)包容干涉:一个几何对象在另一个几何对象内部;

    3)硬干涉:两个几何物体在三维空间存在空间位置重叠并且存在相交的空间曲面;

    4)接触干涉:两个几何物体在三维空间存在点或空间曲面接触,但不存在公共的实体空间;

    通过对干涉计算结果进行分析,可以得到任意两个几何对象间的准确的空间干涉情况。

    3.2 基于CAD的VR场景图动态生成技术

    商用VR开发平台不能识别并绘制CAD模型,商用的VR开发平台通常只支持多边形网格模型,而CAD模型是由参数曲面组成的三维实体模型,为了在VR开发平台下渲染CAD模型,必须根据CAD模型的层次结构动态生成VR场景图对象。

    根据CAD模型动态创建VR场景图的关键在于把CAD参数曲面转换为某张逼近程度的多边形网格模型,并按照规定的层次和结构组合成一颗场景树。

    对于一个UG装配文件,采用如下方式组织VR场景图(VR开发平台采用Vega Prime):

    1)在Vega Prime场景图根节点上创建一个vpObject组节点,UG装配文件根节点对应于该组节点。

    2)对于UG装配中的每一个部件,在Vega Prime场景图中创建一个vpTransform节点,并把该节点作为第一步创建的vpObject节点的子节点。根据该部件在装配中的空间方位矩阵定义一个vpTransform节点中的方位矩阵,如果该部件是零件模型,则创建一个vsGeometry节点,并把该节点作为vpTransform的子节点;如果该部件仍然是一个装配模型,则再创建一个vpTransform节点,并把该节点作为上一级vpTransform的子节点,把该vpTransform节点作为父节点递归调用步骤2;

    通过如上步骤,建立了与CAD模型层次结构类似的Vega Prime场景图结构。

    CAD几何模型到多边形网格模型的转换需要借助于具体的参数曲面离散和多边形网格剖分算法,对于不同类型的的参数曲面,曲面离散和多边形网格剖分算法复杂程度不同,文献[1]对此有详细的描述。

责任编辑:黄菊锋
本文为e-works原创投稿文章,未经e-works书面许可,任何人不得复制、转载、摘编等任何方式进行使用。如已是e-works授权合作伙伴,应在授权范围内使用。e-works内容合作伙伴申请热线:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐