基于包围盒算法和空间三角形相交检测算法的钢结构虚拟预拼装碰撞检测程序

   日期:2024-08-30     来源:网络整理    作者:佚名    浏览:286    
核心提示:若检测为碰撞,说明结构设计存在缺陷,需要对理论设计图进行检查并再次拼装、碰撞检测;若检测为未碰撞,说明结构虚拟预拼装成功,可以直接进行现场拼装。目前国内学者对钢结构在虚拟拼装环境下碰撞检测的研究很少。

浙江大学结构工程研究所

浙江树人大学城市建设学院

概括

针对钢结构构件在虚拟预装配过程中装配后可能出现的碰撞问题,基于包围盒算法和空间三角形相交检测算法编写了碰撞检测程序,有效地解决了该问题。通过2个算例验证了该碰撞检测程序在虚拟装配环境中的可行性及效果。结果表明,按照所提方法进行虚拟装配环境中的碰撞检测具有良好的可行性,适用于实际工程。

介绍

钢结构构件一般在工厂内加工制作(包括展开构件),运输到现场安装。为保证构件运输到现场后能准确安装、不发生碰撞,一般需要在工厂内进行实物预拼装,验证结构的可拼装性。可拼装性包括钢构件的加工尺寸误差是否在要求范围内,构件拼接节点处的螺栓孔是否对正,构件之间是否会发生碰撞等。目前,很多钢结构造型复杂,如雨棚网壳结构、空间曲线结构、大空间大跨度桁架结构等,给预拼装带来很大的困难。实物预拼装不仅需要占用工厂空间和设备,还需要设置胎架,耗费大量的人力、物力,其成本很高,难以满足今后更为复杂的钢结构施工的需要。

随着近年来计算机技术的快速发展,虚拟预装配技术逐渐兴起并在一些工程中得到了很好的应用。通过在CAD环境中模拟物理预装配过程,使计算机辅助甚至取代原有的物理预装配过程,达到降低成本、提高效率的目的。

针对钢结构虚拟预装配过程中的碰撞检测问题,本文利用方向包围盒原理结合三维空间碰撞算法原理,编写了碰撞检测程序并应用于具体算例,算例表明本文提出的碰撞检测方法可为实际工程应用提供参考。

虚拟预装配工程应用

国内对虚拟环境下模拟碰撞检测尚缺乏系统研究,但在施工方面,一些项目利用计算机强大的计算能力进行仿真模拟,优化了原有的预拼装工艺,提高了预拼装技术的精度和效率,如昆明新机场航站楼钢带、上海中心大厦三环桁架层、杭州来福士广场钢结构项目均应用了虚拟预拼装技术。

相关文献采用摄影测量软件系统TRITOP对部件装配控制点坐标进行测量,采用基于Pu式分析的虚拟预装配方法对采集到的部件进行虚拟预装配,对于个别不符合装配要求的部件,检查部件尺寸制造误差,若无误差则通过设定权重系数进行进一步调整,直至所有部件均满足装配要求。

日本横河桥梁公司与长冈工业大学联合开发了虚拟装配系统。该系统采用多相机立体测量技术,对零部件的结构尺寸进行测量,然后按照螺栓孔匹配原则对各零部件进行虚拟定位,并对部分零部件赋予变形值,使螺栓匹配,对检验指标不合格的进行综合调整,直至各项指标全部符合要求。

虚拟预装配在我国的研究和应用尚不成熟,没有得到广泛的推广,加之其应用基本局限于结构复杂、精度要求高的钢结构工程。其预装配的基本思路和步骤大致相同,即通过设计图建立设计模型,得到相应控制点的三维坐标,再利用全站仪等测量仪器对实际构件进行测量,得到相应坐标,建立测量模型,与设计模型控制点坐标进行对比,检查是否存在制造误差,对不符合制造精度要求的构件进行修复并再次试装配,从而达到预装配的效果。

实际工程中,零部件数量可能数以万计,控制点数量庞大,在建立测量模型时,如果人工进行坐标转换与匹配,工作量巨大甚至无法完成。前文所提及的工程应用实例均为人工完成。相关文献中采用更为先进的测量技术,采用虚拟装配系统替代人工进行坐标转换与坐标拟合,取得了较好的效果。但这些系统主要基于螺栓孔匹配原理进行虚拟装配,并未对零部件的整体形状进行模拟与检测,因此对虚拟预装配后零部件间是否存在碰撞缺乏相应的保障。

虚拟碰撞检测的现状

国内外学者对虚拟环境中的碰撞检测进行了广泛的研究,提出了包围盒层次法、距离追踪法、空间分解法等主流碰撞检测算法。相关文献提出了一种基于混合策略的层次化包围盒实时碰撞检测方法,以提高虚拟手术中碰撞检测的速度和准确性。对建筑施工中常用的大型起重机械虚拟塔吊的碰撞检测方法进行了研究,通过基于包围盒和层次化包围盒的碰撞检测策略,实现了虚拟吊装施工场景中的碰撞检测。

相关文献对钢结构深化设计软件中构件连接之间的碰撞以及螺栓安装的预留安装空间进行了研究,以快速有效地检测钢结构深化软件中三维模型的碰撞,检查构件及节点安装模型的合理性。本文基于包围盒思想,先采用矢量法检测外轮廓,并区分各类边界的相交情况,编制相应程序,如图1所示。首先对包围盒进行有效检测,对包围盒内有相交的对象进行外轮廓线、面检测。若线、面相交,则对象发生碰撞;若仅在延长线处相交,则需进行包含检测;若仅在边界处相交,则需进行相交检测。若包含检测或相交检测有效,则对象发生碰撞。

图1 碰撞检测流程

目前,虚拟环境中的碰撞检测在国内已开始在某些领域进行研究和应用,但针对建筑施工的研究较少,尚无相应的工程实践。碰撞检测技术是虚拟预装配系统的基本组成部分,由于钢结构造型复杂钢结构检测公司有哪些,多个构件可能在某些节点处相交,在装配过程中可能产生不合理的碰撞,因此虚拟预装配系统需要提供模型自动碰撞检测和装配合理性检查功能。虽然提出了对钢结构细部三维模型的碰撞进行快速检测,但并没有解决钢结构施工或装配过程中可能存在的碰撞问题。本文对钢结构构件装配的碰撞检测进行研究,弥补了当前虚拟预装配技术的不足,为最终取代实体装配做了有益的尝试,可为工程应用提供参考。

碰撞算法基本原理

选择使用轴向包围盒法,遍历三维模型的每一个顶点,计算它们在x、y、z方向上的坐标的最大值来确定包围盒大小,然后为每个实体建立一个矩形包围盒。例如,对于一个圆柱体,使用轴向包围盒法建立的矩形包围盒如图2所示。

图2 边界框图

在工程应用中,虚拟预装配主要用于检测实际制造的零部件,但实际制造的零部件尺寸往往与理论尺寸存在差异,零部件的坐标也是未知的。要对实际零部件进行虚拟碰撞检测,需要知道实际零部件及其实体模型关键位置的三维坐标。本文利用TRITOP光学测量系统对实际制造的零部件进行测量,得到所需点的三维坐标;通过计算机编程,利用包围盒算法,由这些三维坐标拟合出零部件的近似外形,然后利用三维空间碰撞算法实现虚拟环境中的碰撞检测。

3.1

构建边界框算法

碰撞检测的算法主要可以分为三类:包围盒层次法、距离追踪法、空间分解法。这些算法利用不同的原理来简化物体之间的碰撞检测,从而达到碰撞检测的效果。同时这三种算法的精度也有所不同。其中,距离追踪法通过寻找并追踪两个多面体之间的最近点来计算它们之间的距离,如果距离不大于零,则认为发生了碰撞。该方法适用于凸多面体,不适用于可变形和凹多面体,使用该方法时需要两个多面体的全部几何坐标。空间分解法将空间划分为均匀的单元,每个物体对应一个或多个单元,碰撞检测只对占据单元的几何物体进行相交测试。该方法适用于物体在空间中均匀分布的环境。包围盒层次法使用体积稍大、几何特征更简单的包围盒来近似复杂的几何物体。首先对包围盒进行相交处理,可以快速排除很多不相交的物体,从而加速算法的执行。本文采用包围盒层次化方法作为虚拟碰撞检测的主要算法。

包围盒层次化方法主要有以下几种:轴向包围盒AABB、包围球、方向包围盒OBB等。

1)轴对齐边界框:沿坐标轴的 AABB(Axis-Aligned Bounding Boxes)在碰撞检测研究史上使用时间最长、范围最广。物体的 AABB 定义为包含该物体且其边缘与坐标轴平行的最小六面体。对于给定的物体,其 AABB 只需要 6 个标量即可描述,即该物体基本几何元素顶点的 x、y、z 坐标的最大值和最小值。

2)边界球:物体的边界球定义为包含该物体的最小球体。物体的边界球首先计算物体内所有元素顶点的x、y、z坐标的平均值确定边界球的中心,再根据球心与三个最大值坐标确定的点之间的距离计算边界球的半径。边界球只需要中心和半径两个标量描述,但计算时间比AABB略长。

3)有向包围盒(OBB):物体的OBB(Oriented Bounding Boxes)定义为包含该物体的最小长方体,相对于坐标轴具有任意方向。OBB最大的特点就是方向任意,这使得它能够根据包围物体的形状特征,尽可能紧密地包围物体,但这也使得它的相交测试变得复杂。

包围盒层次法三种算法的特点对比见表1。可以看出,AABB包围盒层次法紧密性较差,但是AABB之间的相交测试简单;包围球算法一般适用于球形物体,对于矩形块紧密性较差,因此很少使用。虽然AABB包围盒较为常见,并且其与坐标轴方向的一致性使得它的生成方法非常简单。但是它也有不足之处,就是不随物体旋转,也就是当物体转过一个角度时,AABB包围盒就会增加很大的空隙,这对更精确的碰撞检测不是很有利。这时就需要OBB包围盒,它始终能沿物体主方向生成最小矩形包围盒,并随物体任意旋转,可以用于更精确的碰撞检测。由于实际钢结构装配中构件大多为长条状或者矩形块状,考虑到拍摄生成的点没有坐标系,因此选择OBB方向包围盒作为拟合物体的主要算法。

表1 三种边界框层次算法比较

3.2

方向边界框OBB的原理

根据物体表面的顶点,通过主成分分析得到特征向量,即OBB的主轴,其中,主成分分析通过正交变换将一组可能相关的变量转化为一组线性独立的变量。

首先计算三个变量 x、y、z 之间的协方差:

cov(Xi,Xj)=E[(Xi-μi)(Xj-μj)]

(1)

其中:μj是Xi的期望。

通过公式(1)可得到协方差矩阵:

(2)

主对角线上的元素表示变量的方差,元素越大表示信号越强。非对角线上的元素表示变量之间的协方差钢结构检测公司有哪些,非对角线上的元素越大表示数据失真。为了减少失真,可以重新定义变量之间的线性组合,使协方差矩阵对角化。协方差矩阵的元素是实数且对称的。

协方差矩阵[A]的三个特征向量是正交的,经过归一化之后可以作为一个基,表示OBB的方向。通过计算物体中各个元素的顶点在基的三个坐标轴上的最大值和最小值,就可以确定OBB的大小。存储一个OBB需要15个标量,分别是9个表示方向的标量(每个方向有3个基向量),6个表示范围的标量。最终从这15个标量就可以计算出OBB长方体的8个角点的三维坐标。通过这8个角点的坐标就可以确定一个边界框的几何大小和空间位置。

3.3

三维空间碰撞算法原理

虚拟环境中物体之间的碰撞最终可以归结为组成物体的三角形之间的相交检测。上面得到的边界框可以拆分成 6 个矩形,每个矩形又可以分成 2 个三角形,一共 12 个三角形。因此,两个三维物体之间的碰撞可以转化为若干个三角形的相交检测。三角形的空间相交检测方法如下。

假设ΔABC与ΔPQR的顶点坐标已知,Ψ为ΔABC的支撑超平面,按如下步骤判断二者是否相交。

3.3.1 确定 ΔPQR 是否与 Ψ 相交

如果ΔABC与ΔPQR相交,那么ΔPQR的三个顶点必定位于Ψ的两侧。

计算 Ψ 的法线

制作

Vector为自定义的假想向量),判断:

1)如果

如果两者均为正数或均为负数,则ΔABC与ΔPQR不相交;

2)若都为0,则ΔABC与ΔPQR共面,可以转化为二维平面中三角形的相交检测。

3)若其中一个为0,另两个符号相同,则两个三角形要么不相交,要么相交于顶点,这就相当于在二维平面空间中判断顶点是否位于ΔABC内。

4)如果两个都是0,比如

则ΔPQR的其中一条边PQ位于平面Ψ上,两个三角形要么不相交,要么相交于PQ,这就转化为二维平面空间中线段与三角形的相交检验。

5)否则,ΔPQR与Ψ相交,继续下一步。

3.3.2 ΔPQR与Ψ交点的计算

顶点 P、Q 和 R 分别位于 Ψ 的两侧。如果 Q 和 R 位于同一侧,则线段

线段

它与Ψ相交,交点即为ΔPQR与Ψ的交点。

线段

它可以以矢量形式表示为

其中 0 ≤t≤1,则

交点H与Ψ可按下式计算:

(3)

类比线段

交点F与Ψ为:

(4)

3.3.3 确定线段

它与 ΔABC 相交吗?

从3.3.2节可知ΔPQR与Ψ的交点为HF,因此ΔABC与ΔPQR相交当且仅当HF与ΔABC相交。由于HF与ΔABC共面,因此可以转化为二维平面中线段与三角形的相交检验。

在二维平面中,线段所在的直线将平面划分为两个不相交的半开平面,这两个半开平面中的点分别位于线段的左侧或右侧。现在我们可以通过以下条件确定线段

它与三角形ΔABC相交吗?

1)若顶点A、B、C位于直线HF的同一侧,则线段

与ΔABC不相交;

2)否则,假设 A 和 B 在一侧,C 在另一侧,则

它们分别与直线HF相交。若H和F均位于

右侧或两侧

在右侧,

不与ΔABC相交;否则相交。

碰撞算法的实际应用

在运输至施工现场安装前,首先对各构件的三维尺寸进行测量,确保其符合设计与施工要求。然后在各构件的轮廓和表面上布置若干个测量靶标作为包围盒。例如当构件为长方体时,则在长方体的八个角点、轮廓附近及六个表面上布置测量靶标。然后利用光学测量系统对靶标进行测量,得到靶标的初始三维坐标。在使用GPA装配成功后,得到由初始三维坐标经过坐标转换后的目标坐标值,将此目标坐标值导入本文编写的虚拟碰撞检测程序中进行碰撞检测。碰撞检测分为两步,首先利用OBB方法从导入的目标三维坐标拟合出各构件的最小包围盒,然后利用三维空间碰撞算法实现虚拟环境中构件之间的碰撞检测。若检测到碰撞,说明结构设计存在缺陷,需要重新检查理论设计图并进行装配碰撞检测;若检测到无碰撞,说明结构虚拟预装配成功,可直接进行现场装配。碰撞检测流程如图3所示。

图3 碰撞检测流程图

下面通过例子简单说明上述虚拟碰撞检测方法的应用。

4.1

二维结构模型

选取杆1、杆2、杆3和板1组成结构单元I,对其进行虚拟碰撞试验。其总体布置及尺寸如图4所示,所有部件厚度均为20 mm。结构单元I中板1和杆3的上表面与杆1和杆2的下表面具有相同的z坐标。

图4 结构单元I的理论CAD模型

在确保构件符合设计施工要求,GPA组装成功后,对结构单元I进行虚拟碰撞试验。由于杆1、杆2表面分别与杆3、板1表面接触,认为其上下表面接触,无需进行碰撞试验。但杆1、杆2相互独立,在与板1连接处两杆相接,末端可能发生碰撞,因此需要进行碰撞试验。运行碰撞程序,结果为“杆1、杆2未发生碰撞”,与实际组装结果一致。

本文编写的碰撞检测程序拟合出的包围盒与理论模型的对比如图5所示,其中实线表示理论模型,虚线表示包围盒模拟的模型。可以看出,包围盒模拟模型的轮廓和相对位置基本一致,只是杆1比理论模型略短一些。这说明计算结果是正确的,也间接证明了本方法的可行性和有效性。

图5 结构单元I的边界框效应

在布置测量目标时,可以将目标主要布置在角点附近,以减少测量点的数量,从而减少数据存储空间和程序计算量,加快运算速度。同时,测量时应尽量均匀布置目标,不宜在某些部位布置得过于密集。特别是对于较长的构件,测量点沿长度方向分布不均匀可能会影响OBB算法中的主方向,从而影响仿真的精度。

4.2

3D结构模型

图6所示的结构单元Ⅱ由两根工字杆(2-1杆和2-2杆)和两根槽杆(2-3杆和2-4杆)组成。两根工字杆的两端分别插入两根槽杆内,并通过螺栓孔与槽杆连接。在确保构件符合设计施工要求,GPA拼装成功后,对结构单元Ⅱ进行虚拟碰撞检测。由于工字杆两端插入槽杆内部,工字杆两端可能与槽杆腹板发生碰撞,需要进行碰撞检测。

图6 结构单元Ⅱ整体坐标系示意图

结构单元Ⅱ的碰撞检测方法与结构单元Ⅰ基本相同,但由于结构单元Ⅱ各构件的截面并非矩形,而是由三个小矩形截面组成的工字形或槽形,即上、下翼缘板和腹板,因此在使用OBB方法模拟包围盒时,需要将各构件划分为上、下翼缘板和腹板三部分,并对每一部分用OBB方法模拟相应的子包围盒,从而得到准确的构件包围盒模型。最后利用三维空间碰撞算法对不同构件的包围盒模型进行检测,运行碰撞程序,结果为“杆2-1与杆2-3、2-4无碰撞;杆2-2与杆2-3、2-4无碰撞”。将程序计算时生成的所有部件的包围盒角点坐标导出,绘制程序计算中包围盒模拟的模型,如图7所示。对实际模型进行装配,装配结果如图8所示。对比两图可知,计算结果与实际装配结果一致。

图7 结构单元Ⅱ的边界框效果

图8 结构单元Ⅱ实际组装效果

上述第一例(单元一)介绍了虚拟碰撞检测的基本流程及测点布置建议;第二例(单元二)的截面选取实际工程中常见的两种截面,两次试验结果均与实际情况相符,表明该方法在实际工程中具有较好的可行性。

实际工程中,构件形式多种多样,利用本文方法可对普通角钢、槽钢、工字钢等不同截面类型的构件进行虚拟碰撞检测,同时可以优化程序,扩展可选截面类型,进一步完善和编制面向工程的软件系统,满足实际工程需要。

结论

在国内工程中,虚拟预装配技术大多仅考虑部件局部控制坐标,没有考虑部件整体装配后发生碰撞的可能性。目前,国内学者对虚拟装配环境下钢结构碰撞检测的研究较少。本文探讨了虚拟装配环境下碰撞检测的可行性,并利用OBB包围盒算法和三维空间碰撞算法编制了较为准确的碰撞检测程序。最后通过两个算例证明了碰撞检测算法在实际工程中的可行性。

虚拟装配环境下钢结构的碰撞检测完善了当前虚拟预装配技术的检测流程,使得虚拟预装配结果更加合理、可靠,为虚拟装配技术最终取代物理装配奠定了良好的基础。

来源:朱玉斌,姚建,张玉玲. 虚拟装配环境下钢结构碰撞检测研究及应用[J]. 钢结构,2019,34(9):95-100。

doi: 10.13206/j.gjg201909016

 
打赏
 
更多>同类资讯

推荐热播视讯

推荐视频

    Copyright © 2017-2021  二手钢结构网  版权所有  
    Powered By DESTOON 鄂ICP备2025106939号-1