CN112669434A - 一种基于网格与包围盒的碰撞检测方法 - Google Patents

一种基于网格与包围盒的碰撞检测方法 Download PDF

Info

Publication number
CN112669434A
CN112669434A CN202011519586.4A CN202011519586A CN112669434A CN 112669434 A CN112669434 A CN 112669434A CN 202011519586 A CN202011519586 A CN 202011519586A CN 112669434 A CN112669434 A CN 112669434A
Authority
CN
China
Prior art keywords
bounding box
obb
obb bounding
grid
separating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011519586.4A
Other languages
English (en)
Other versions
CN112669434B (zh
Inventor
范业鹏
张凌峰
迟玉森
赵滨
陈娜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tengzhou Huashu Intelligent Manufacturing Research Institute
Shandong Huashu Intelligent Technology Co ltd
Original Assignee
Tengzhou Huashu Intelligent Manufacturing Research Institute
Shandong Huashu Intelligent Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tengzhou Huashu Intelligent Manufacturing Research Institute, Shandong Huashu Intelligent Technology Co ltd filed Critical Tengzhou Huashu Intelligent Manufacturing Research Institute
Priority to CN202011519586.4A priority Critical patent/CN112669434B/zh
Publication of CN112669434A publication Critical patent/CN112669434A/zh
Application granted granted Critical
Publication of CN112669434B publication Critical patent/CN112669434B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

本发明属于虚拟现实和工业机器人领域,公开了一种基于网格与包围盒的碰撞检测方法,包括读取三维模型中的三角形顶点坐标和三角形面片法向量信息;在预处理阶段,对三维模型进行网格划分,在每个网格内构造OBB包围盒,用“分离轴”法构造以OBB包围盒为根节点,分离出的OBB包围盒为子节点的层次OBB包围盒二叉树,并以该OBB包围盒根节点为基础构建外接球包围盒;最后进行相交检测,依次对每个网格的外接球包围盒、内部的层次OBB包围盒二叉树、三角形面片进行相交测试,判断是否发生碰撞。本发明通过网格与层次OBB包围盒二叉树结合的方法,提高了虚拟仿真中机器人与周围环境间的检测速度和精确性。

Description

一种基于网格与包围盒的碰撞检测方法
技术领域
本发明属于虚拟现实和工业机器人领域,具体涉及一种基于网格与包围盒的碰撞检测方法。
背景技术
碰撞检测影响虚拟世界中的沉浸感和交互性,是虚拟现实中核心研究问题之一。为了防止工业机器人在实际作业中发生碰撞,对工人和设备造成损害,因此需预先在虚拟环境中对机器人运动轨迹进行预先验证,以方便改正轨迹和排除有问题的轨迹点,从而方便改正和调整轨迹点或设备的布局等。传统的包围盒方法在工业机器人应用环境中碰撞检测效率不高,呈现出碰撞检测实时性和精确性巨大的矛盾。由于工业机器人在虚拟仿真时一直处于动态变化的,需要对工业机器人轨迹上大量点进行碰撞检测,因此对实时性要求较高,而传统的包围盒算法,在模型过大时,会造成碰撞检测时间复杂度过高,检测效率低下;同时因为精确性不高,可能出现机器人与工件之间穿透现象,造成真实感下降。机器人轨迹规划需要对多条轨迹线的大量的点位进行碰撞检测,高效的检测将节省大量时间,因此为了提高检测效率,需要提出一种适用于复杂模型的高效检测方法。
发明内容
本发明的目的,是要提供一种基于网格与包围盒的碰撞检测方法,通过采用网格划分、外接球包围盒及OBB包围盒混合的方法提升了碰撞检测的精确性。
本发明为实现上述目的,所采用的技术方案如下:
一种基于网格与包围盒的碰撞检测方法,包括以下步骤:
S1、读取三维模型中的三角形面片顶点坐标和法向量信息;
S2、模型处理阶段,对三维模型进行网格划分,根据读取的三角形面片顶点坐标和法向量信息,在每个网格内先构造OBB包围盒,再用“分离轴”法构造以该OBB包围盒为根节点,分离出的OBB包围盒为子节点的层次OBB包围盒二叉树,依次类推直到层次OBB包围盒二叉树不能再分为止,然后以在每个网格内先构造的OBB包围盒为基础构建外接球包围盒;
S3、碰撞检测阶段,遍历检测每个网格,通过进行网格相交测试,定位可能碰撞的网格区域,在该网格区域内,依次对每个网格的外接球包围盒、内部的层次OBB包围盒二叉树、三角形面片进行相交测试,判断是否发生碰撞。
作为限定,步骤S1中,读取三维模型的三角形面片顶点坐标和法向量信息时,依次读取三角形面片的法向量、三角形面片的顶点坐标,对读取的三角形面片进行索引标号,并在最后通过以红黑树为底层的关联式Map容器数据结构去除冗余点减少存储的消耗。
作为第二种限定,步骤S2中,具体包括以下步骤:
S21、对三维模型进行等尺寸网格划分,根据读取的三角形面片顶点坐标和法向量信息,在每个等尺寸的网格内先构造OBB包围盒,用“分离轴”法构造以该OBB包围盒为根节点,分离出的OBB包围盒为子节点的层次OBB包围盒二叉树,直到层次OBB包围盒二叉树不能再分为止;
S22、以在每个等尺寸的网格内先构造的OBB包围盒为基础,以其中心坐标作为外接球中心坐标,并以该OBB包围盒中心到该OBB包围盒顶点的最远距离作为外接球的半径构建每个网格最外层的外接球包围盒。
作为第三种限定,步骤S21中,对三维模型进行等尺寸网格划分是采用二分回溯法,即下一次划分网格的边长是上一次网格边长的二分之一,若边长过大使网格未包含三角形面片,则改变网格边长为上次网格边长和此次网格边长的和的均值,继续划分网格。
作为第四种限定,步骤S21中,在每个等尺寸的网格内构造OBB包围盒时,设第i个三角形面片的三个顶点为(pi,qi,ri),则所有三角形面片顶点的均值μ和协方差矩阵Cjk的计算公式为:
Figure BDA0002849047360000031
Figure BDA0002849047360000032
其中,p-i=pi-μ,q-i=qi-μ,r-i=ri-μ,n是三角形面片的数量;得到协方差矩阵Cjk的三个特征向量后,将其单位化即为OBB包围盒的三个坐标轴方向,根据三角形面片在这三个坐标轴方向上的投影,计算OBB包围盒的三个边长,即构造出OBB包围盒;
然后用“分离轴”法构造以该OBB包围盒为根节点,分离出的OBB包围盒为子节点的层次OBB包围盒二叉树,其中分离轴选择该OBB包围盒根节点的最长轴,分离点选择分离轴的中点,分离面即为通过分离点垂直于分离轴的面,分离面将此OBB包围盒根节点剖分为两个OBB包围盒;若该方式不能剖分此OBB包围盒根节点,则选择次长轴实现剖分,若仍是不能剖分,则选择最短轴,分离出的两个OBB包围盒即为OBB包围盒根节点的两个OBB包围盒子节点,再用这两个OBB包围盒子节点继续用“分离轴”法继续分离,通过此递归过程,直到层次OBB包围盒二叉树子节点中的OBB包围盒中的三角形面片不能再分为止,即构造为层次OBB包围盒二叉树。
作为第五种限定,步骤S3中,具体包括以下步骤:
S31、遍历检测每个网格,通过进行网格相交测试,定位可能碰撞的网格区域;在网格相交测试中,计算两网格的中心点距离L与网格的边长rmin、网格的顶点到网格中心的距离rmax的关系,两网格的中心坐标为C1(x1,y1,z1),C2(x2,y2,z2);
a、若L>2rmax,则两网格必不相交,不必进行下一步的相交测试;
b、若L<2rmin,则两网格必定相交,通过步骤S32进行外接球包围盒的相交测试;
c、若2rmin≤L≤2rmax,则两网格可能相交也可能不相交,通过步骤S32进行外接球包围盒的相交测试;
其中,
Figure BDA0002849047360000041
S32、外接球包围盒的相交测试:
设两个外接球包围盒的半径分别为R1、R2,若R1+R2>L1,则两外接球包围盒必不相交,否则通过步骤S33进行层次OBB包围盒二叉树相交测试;
S33、层次OBB包围盒二叉树相交测试,判断OBB包围盒是否相交;
计算两个OBB包围盒A、B的三个坐标轴方向以及两个OBB包围盒的三个坐标轴方向两两叉乘得到的十五条分离轴上投影的情况,如果在其中一条分离轴上的投影满足下式,则两OBB包围盒分离,只有当两个OBB包围盒在所有分离轴上的投影均不满足下式,则判定两OBB包围盒相交,通过步骤S34进行两三角形面片间的相交测试;
Figure BDA0002849047360000042
Figure BDA0002849047360000043
其中,T为从OBB包围盒A中心指向OBB包围盒B中心的向量,L为待检测的分离轴,rA为待检测的OBB包围盒A在待检测的分离轴上的投影区间半径,rB为待检测的OBB包围盒B在待检测的坐标轴上的投影区间半径,ai(i=1,2,3)为OBB包围盒A各边长度的一半,bi(i=1,2,3)为OBB包围盒B各边长度的一半,Ai为OBB包围盒A各坐标轴的单位向量,Bi为OBB包围盒B各坐标轴的单位向量;
S34、三角形面片的相交测试
给定两个三角形面片T1和T2,两个三角形面片所在的平面分别为F1和F2,计算T1所有顶点a(ax,ay,az),b(bx,by,bz),c(cx,cy,cz),分别与T2的某个顶点ddx,dy,dz),e(ex,ey,ez),f(fx,fy,fz)中构成的三个行列式的值,通过计算行列式的正负来两三角形面片是否相交,定义行列式如下:
Figure BDA0002849047360000051
Figure BDA0002849047360000052
Figure BDA0002849047360000053
A、若所有行列式符号相同且均不为0,表明两三角形面片不相交,否则两三角形面片T1与T2相交,继续进行下面的判断;
B、若所有行列式值都为0,则两三角形面片T1与T2共面;
C、若其中一个行列式值为0,另外两个同号,则行列式值为0的行列式所包括的三角形面片T2的顶点在F1内,然后通过上述三个行列式计算该顶点是否在三角形面片T1内,若在三角形面片T1内,则两三角形面片相交,否则不相交;
D、若均不满足步骤A、B、C,则三角形面片T2的三个顶点位于F1两侧,计算三角形面片T1、T2与F1、F2的交线是否重叠,若重叠,则两三角形相交。
作为第六种限定,步骤S3中,若检测到发生碰撞的网格后,则对网格内部的外接球包围盒进行坐标和方向的更新,只有检测到外接球包围盒碰撞才会对其中的OBB包围盒进行坐标和方向的更新。
本发明由于采用了上述的技术方案,其与现有技术相比,所取得的技术进步在于:
(1)本发明采用网格与层次OBB包围盒二叉树结合的方法,很好的中和了包围盒紧密性与精确性之间的矛盾,提高了虚拟仿真中机器人与周围环境间的检测速度和精确性;
(2)本发明通过采用网格划分、外接球包围盒及OBB包围盒混合的方法提升了碰撞检测的精确性,碰撞检测一开始检测到碰撞的网格以后便会定位检测区域到某个网格,然后对网格内的层次OBB包围盒二叉树进行深度优先遍历,大大提升了碰撞检测的实时性。
本发明属于虚拟现实和工业机器人领域,通过网格与层次OBB包围盒二叉树结合的方法,提高虚拟仿真中机器人与周围环境间的检测速度和精确性。
附图说明
图1为本发明实施例的流程示意图;
图2为本发明实施例层次OBB包围盒二叉树的构建流程图;
图3为本发明实施例OBB包围盒相交检测的投影示意图;
图4为本发明实施例三角形面片相交的示意图。
具体实施方式
下面结合实施例对本发明作进一步说明,但本领域的技术人员应当理解,本发明并不限于以下实施例,任何在本发明具体实施例基础上做出的改进和变化都在本发明权利要求保护的范围之内。
实施例 一种基于网格与包围盒的碰撞检测方法
如图1所示,本实施例包括以下步骤:
S1、读取三维模型中的三角形面片顶点坐标和法向量信息;
其中,用程序读取三维模型例如.stp,.stl等中性格式文件的信息时,依次读取三角形面片的法向量、三角形面片的顶点坐标,对读取的三角形面片进行索引标号,并在最后通过以红黑树为底层的关联式Map容器数据结构去除冗余点减少存储的消耗;
S2、模型处理阶段,对三维模型进行网格划分,根据读取的三角形面片顶点坐标和法向量信息,在每个网格内先构造OBB包围盒,再用“分离轴”法构造以该OBB包围盒为根节点,分离出的OBB包围盒为子节点的层次OBB包围盒二叉树,依次类推直到层次OBB包围盒二叉树不能再分为止,如图2所示,然后以在每个网格内先构造的OBB包围盒为基础构建外接球包围盒;
本步骤具体包括以下步骤:
S21、对三维模型进行等尺寸的正方体网格划分,根据读取的三角形面片顶点坐标和法向量信息,在每个等尺寸的正方体网格内先构造OBB包围盒,用“分离轴”法构造以该OBB包围盒为根节点,分离出的OBB包围盒为子节点的层次OBB包围盒二叉树,以分离出的OBB包围盒继续“分离”出OBB子节点直到层次OBB包围盒二叉树不能再分为止,构成一个层次OBB包围盒二叉树;
其中,对三维模型进行等尺寸正方体网格划分是采用二分回溯法,即下一次划分网格的边长是上一次网格边长的二分之一,若边长过大使网格未包含三角形面片,则改变网格边长为上次网格边长和此次网格边长的和的均值,继续划分网格;网格存储了其中包含的三角面片的索引号及网格中心坐标,不包含三角面片的网格则可以从内存中去掉,减小消耗,提高检测效率;
本步骤在,在每个等尺寸的网格内构造OBB包围盒时,设第i个三角形面片的三个顶点为(pi,qi,ri,),则所有三角形面片顶点的均值μ和协方差矩阵Cjk的计算公式为:
Figure BDA0002849047360000071
Figure BDA0002849047360000072
其中,p-i=pi-μ,q-i=qi-μ,r-i=ri-μ,n是三角形面片的数量;得到协方差矩阵Cjk的三个特征向量后,将其单位化即为OBB包围盒的三个坐标轴方向,根据三角形面片在这三个坐标轴方向上的投影,计算OBB包围盒的三个边长,即构造出OBB包围盒;
然后用“分离轴”法构造以该OBB包围盒为根节点,分离出的OBB包围盒为子节点的层次OBB包围盒二叉树,其中分离轴选择该OBB包围盒根节点的最长轴,分离点选择分离轴的中点,分离面即为通过分离点垂直于分离轴的面,分离面将此OBB包围盒根节点剖分为两个OBB包围盒;若该方式不能剖分此OBB包围盒根节点,则选择次长轴实现剖分,若仍是不能剖分,则选择最短轴,分离出的两个OBB包围盒即为OBB包围盒根节点的两个OBB包围盒子节点,再用这两个OBB包围盒子节点继续用“分离轴”法继续分离,通过此递归过程,直到层次OBB包围盒二叉树子节点中的OBB包围盒中的三角形面片不能再分为止,即构造为层次OBB包围盒二叉树;
S22、以在每个等尺寸的网格内先构造的OBB包围盒为基础,以其中心坐标作为外接球中心坐标,并以该OBB包围盒中心到该OBB包围盒顶点的最远距离作为外接球的半径构建每个网格最外层的外接球包围盒;
碰撞检测阶段,遍历检测每个网格,通过进行网格相交测试,定位可能碰撞的网格区域,在该网格区域内,依次对每个网格的外接球包围盒、内部的层次OBB包围盒二叉树、三角形面片进行相交测试,判断是否发生碰撞;
本步骤中,具体包括以下步骤:
S31、遍历检测每个网格,通过进行网格相交测试,定位可能碰撞的网格区域;在网格相交测试中,计算两网格的中心点距离L与网格的边长rmin、网格的顶点到网格中心的距离rmax的关系,两网格的中心坐标为C1(x1,y1,z1),C2(x2,y2,z2);
a、若L>2rmax,则两网格必不相交,不必进行下一步的相交测试;
b、若L<2rmin,则两网格必定相交,通过步骤S32进行外接球包围盒的相交测试;
c、若2rmin≤L≤2rmax,则两网格可能相交也可能不相交,通过步骤S32进行外接球包围盒的相交测试;
其中,
Figure BDA0002849047360000091
S32、外接球包围盒的相交测试:
设两个外接球包围盒的半径分别为R1、R2,若R1+R2>L1,则两外接球包围盒必不相交,否则通过步骤S33进行层次OBB包围盒二叉树相交测试;
S33、层次OBB包围盒二叉树相交测试,判断OBB包围盒是否相交,如图3所示;
计算两个OBB包围盒A、B的三个坐标轴方向以及两个OBB包围盒的三个坐标轴方向两两叉乘得到的十五条分离轴上投影的情况,如果在其中一条分离轴上的投影满足下式,则两OBB包围盒分离,只有当两个OBB包围盒在所有分离轴上的投影均不满足下式,则判定两OBB包围盒相交,通过步骤S34进行两三角形面片间的相交测试;
Figure BDA0002849047360000092
Figure BDA0002849047360000093
其中,T为从OBB包围盒A中心指向OBB包围盒B中心的向量,L为待检测的分离轴,rA为待检测的OBB包围盒A在待检测的分离轴上的投影区间半径,rB为待检测的OBB包围盒B在待检测的坐标轴上的投影区间半径,ai(i=1,2,3)为OBB包围盒A各边长度的一半,bi(i=1,2,3)为OBB包围盒B各边长度的一半,Ai为OBB包围盒A各坐标轴的单位向量,Bi为OBB包围盒B各坐标轴的单位向量;
S34、三角形面片的相交测试
如图4所示,给定两个三角形面片T1和T2,两个三角形面片所在的平面分别为F1和F2,计算T1所有顶点a(ax,ay,az),b(bx,by,bz),c(cx,cy,cz),分别与T2的某个顶点d(dx,dy,dz),e(ex,ey,ez),f(fx,fy,fz)中构成的三个行列式的值,通过计算行列式的正负来两三角形面片是否相交,定义行列式如下:
Figure BDA0002849047360000101
Figure BDA0002849047360000102
Figure BDA0002849047360000103
A、若所有行列式符号相同且均不为0,表明两三角形面片不相交,否则两三角形面片T1与T2相交,继续进行下面的判断;
B、若所有行列式值都为0,则两三角形面片T1与T2共面;
C、若其中一个行列式值为0,另外两个同号,则行列式值为0的行列式所包括的三角形面片T2的顶点在F1内,然后通过上述三个行列式计算该顶点是否在三角形面片T1内,若在三角形面片T1内,则两三角形面片相交,否则不相交;
D、若均不满足步骤A、B、C,则三角形面片E2的三个顶点位于F1两侧,计算三角形面片T1、T2与F1、F2的交线是否重叠,若重叠,则两三角形相交。
本步骤中,若检测到发生碰撞的网格后,则对网格内部的外接球包围盒进行坐标和方向的更新,只有检测到外接球包围盒碰撞才会对其中的OBB包围盒进行坐标和方向的更新;
其中,物体在三维空间中的运动可分为平移和旋转,平移变换为3x1的列向量t=(x,y,z)T,旋转变换为3x3的矩阵:
Figure BDA0002849047360000111
Figure BDA0002849047360000112
Figure BDA0002849047360000113
假设旋转顺序为x,y,z轴,则合成的旋转矩阵为
Figure BDA0002849047360000114
对于外接球包围盒的更新则只需更新其中点坐标x=Rx+t,再重构外接球包围盒;OBB包围盒只要对其基坐标实现平移及旋转的相应操作即可完成更新。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于网格与包围盒的碰撞检测方法,其特征在于,包括以下步骤:
S1、读取三维模型中的三角形面片顶点坐标和法向量信息;
S2、模型处理阶段,对三维模型进行网格划分,根据读取的三角形面片顶点坐标和法向量信息,在每个网格内先构造OBB包围盒,再用“分离轴”法构造以该OBB包围盒为根节点,分离出的OBB包围盒为子节点的层次OBB包围盒二叉树,依次类推直到层次OBB包围盒二叉树不能再分为止,然后以在每个网格内先构造的OBB包围盒为基础构建外接球包围盒;
S3、碰撞检测阶段,遍历检测每个网格,通过进行网格相交测试,定位可能碰撞的网格区域,在该网格区域内,依次对每个网格的外接球包围盒、内部的层次OBB包围盒二叉树、三角形面片进行相交测试,判断是否发生碰撞。
2.根据权利要求1所述的一种基于网格与包围盒的碰撞检测方法,其特征在于,步骤S1中,读取三维模型的三角形面片顶点坐标和法向量信息时,依次读取三角形面片的法向量、三角形面片的顶点坐标,对读取的三角形面片进行索引标号,并在最后通过以红黑树为底层的关联式Map容器数据结构去除冗余点减少存储的消耗。
3.根据权利要求1所述的一种基于网格与包围盒的碰撞检测方法,其特征在于,步骤S2中,具体包括以下步骤:
S21、对三维模型进行等尺寸网格划分,根据读取的三角形面片顶点坐标和法向量信息,在每个等尺寸的网格内先构造OBB包围盒,用“分离轴”法构造以该OBB包围盒为根节点,分离出的OBB包围盒为子节点的层次OBB包围盒二叉树,直到层次OBB包围盒二叉树不能再分为止;
S22、以在每个等尺寸的网格内先构造的OBB包围盒为基础,以其中心坐标作为外接球中心坐标,并以该OBB包围盒中心到该OBB包围盒顶点的最远距离作为外接球的半径构建每个网格最外层的外接球包围盒。
4.根据权利要求3所述的一种基于网格与包围盒的碰撞检测方法,其特征在于,步骤S21中,对三维模型进行等尺寸网格划分是采用二分回溯法,即下一次划分网格的边长是上一次网格边长的二分之一,若边长过大使网格未包含三角形面片,则改变网格边长为上次网格边长和此次网格边长的和的均值,继续划分网格。
5.根据权利要求3所述的一种基于网格与包围盒的碰撞检测方法,其特征在于,步骤S21中,在每个等尺寸的网格内构造OBB包围盒时,设第i个三角形面片的三个顶点为(pi,qi,ri,),则所有三角形面片顶点的均值μ和协方差矩阵Cjk的计算公式为:
Figure FDA0002849047350000021
Figure FDA0002849047350000022
其中,p-i=pi-μ,q-i=qi-μ,r-i=ri-μ,n是三角形面片的数量;得到协方差矩阵Cjk的三个特征向量后,将其单位化即为OBB包围盒的三个坐标轴方向,根据三角形面片在这三个坐标轴方向上的投影,计算OBB包围盒的三个边长,即构造出OBB包围盒;
然后用“分离轴”法构造以该OBB包围盒为根节点,分离出的OBB包围盒为子节点的层次OBB包围盒二叉树,其中分离轴选择该OBB包围盒根节点的最长轴,分离点选择分离轴的中点,分离面即为通过分离点垂直于分离轴的面,分离面将此OBB包围盒根节点剖分为两个OBB包围盒;若该方式不能剖分此OBB包围盒根节点,则选择次长轴实现剖分,若仍是不能剖分,则选择最短轴,分离出的两个OBB包围盒即为OBB包围盒根节点的两个OBB包围盒子节点,再用这两个OBB包围盒子节点继续用“分离轴”法继续分离,通过此递归过程,直到层次OBB包围盒二叉树子节点中的OBB包围盒中的三角形面片不能再分为止,即构造为层次OBB包围盒二叉树。
6.根据权利1所述的一种基于网格与包围盒的碰撞检测方法,其特征在于,步骤S3中,具体包括以下步骤:
S31、遍历检测每个网格,通过进行网格相交测试,定位可能碰撞的网格区域;在网格相交测试中,计算两网格的中心点距离L与网格的边长rmin、网格的顶点到网格中心的距离rmax的关系,两网格的中心坐标为C1(x1,y1,z1),C2(x2,y2,z2);
a、若L>2rmax,则两网格必不相交,不必进行下一步的相交测试;
b、若L<2rmin,则两网格必定相交,通过步骤S32进行外接球包围盒的相交测试;
c、若2rmin≤L≤2rmax,则两网格可能相交也可能不相交,通过步骤S32进行外接球包围盒的相交测试;
其中,
Figure FDA0002849047350000031
S32、外接球包围盒的相交测试:
设两个外接球包围盒的半径分别为R1、R2,若R1+R2>L1,则两外接球包围盒必不相交,否则通过步骤S33进行层次OBB包围盒二叉树相交测试;
S33、层次OBB包围盒二叉树相交测试,判断OBB包围盒是否相交;
计算两个OBB包围盒A、B的三个坐标轴方向以及两个OBB包围盒的三个坐标轴方向两两叉乘得到的十五条分离轴上投影的情况,如果在其中一条分离轴上的投影满足下式,则两OBB包围盒分离,只有当两个OBB包围盒在所有分离轴上的投影均不满足下式,则判定两OBB包围盒相交,通过步骤S34进行两三角形面片间的相交测试;
Figure FDA0002849047350000032
Figure FDA0002849047350000033
其中,T为从OBB包围盒A中心指向OBB包围盒B中心的向量,L为待检测的分离轴,rA为待检测的OBB包围盒A在待检测的分离轴上的投影区间半径,rB为待检测的OBB包围盒B在待检测的坐标轴上的投影区间半径,ai(i=1,2,3)为OBB包围盒A各边长度的一半,bi(i=1,2,3)为OBB包围盒B各边长度的一半,Ai为OBB包围盒A各坐标轴的单位向量,Bi为OBB包围盒B各坐标轴的单位向量;
S34、三角形面片的相交测试
给定两个三角形面片T1和T2,两个三角形面片所在的平面分别为F1和F2,计算T1所有顶点a(ax,ay,az),b(bx,by,bz),c(cx,cy,cz),分别与T2的某个顶点d(dx,dy,dz),e(ex,ey,ez),f(fx,fy,fz)中构成的三个行列式的值,通过计算行列式的正负来两三角形面片是否相交,定义行列式如下:
Figure FDA0002849047350000041
Figure FDA0002849047350000042
Figure FDA0002849047350000043
A、若所有行列式符号相同且均不为0,表明两三角形面片不相交,否则两三角形面片T1与T2相交,继续进行下面的判断;
B、若所有行列式值都为0,则两三角形面片T1与T2共面;
C、若其中一个行列式值为0,另外两个同号,则行列式值为0的行列式所包括的三角形面片T2的顶点在F1内,然后通过上述三个行列式计算该顶点是否在三角形面片T1内,若在三角形面片T1内,则两三角形面片相交,否则不相交;
D、若均不满足步骤A、B、C,则三角形面片T2的三个顶点位于F1两侧,计算三角形面片T1、T2与F1、F2的交线是否重叠,若重叠,则两三角形相交。
7.根据权利要求1所述的一种基于网格与包围盒的碰撞检测方法,其特征在于,步骤S3中,若检测到发生碰撞的网格后,则对网格内部的外接球包围盒进行坐标和方向的更新,只有检测到外接球包围盒碰撞才会对其中的OBB包围盒进行坐标和方向的更新。
CN202011519586.4A 2020-12-21 2020-12-21 一种基于网格与包围盒的碰撞检测方法 Active CN112669434B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011519586.4A CN112669434B (zh) 2020-12-21 2020-12-21 一种基于网格与包围盒的碰撞检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011519586.4A CN112669434B (zh) 2020-12-21 2020-12-21 一种基于网格与包围盒的碰撞检测方法

Publications (2)

Publication Number Publication Date
CN112669434A true CN112669434A (zh) 2021-04-16
CN112669434B CN112669434B (zh) 2022-05-03

Family

ID=75406964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011519586.4A Active CN112669434B (zh) 2020-12-21 2020-12-21 一种基于网格与包围盒的碰撞检测方法

Country Status (1)

Country Link
CN (1) CN112669434B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113244622A (zh) * 2021-06-22 2021-08-13 腾讯科技(深圳)有限公司 碰撞数据处理方法和装置、存储介质及电子设备
CN113340247A (zh) * 2021-06-15 2021-09-03 上海理工大学 一种用于车身接触式三坐标测量的连续碰撞检测方法
CN113781846A (zh) * 2021-09-28 2021-12-10 中国人民解放军空军工程大学 一种水平维度空域冲突检测方法
CN114211498A (zh) * 2021-12-30 2022-03-22 中国煤炭科工集团太原研究院有限公司 基于方向包围盒的锚杆支护机器人碰撞检测方法及系统
CN114627262A (zh) * 2022-05-11 2022-06-14 武汉大势智慧科技有限公司 基于倾斜网格数据的图像生成方法及系统
CN114625025A (zh) * 2022-03-04 2022-06-14 无锡信捷电气股份有限公司 一种弯管加工干涉检测的仿真方法及系统
CN114707880A (zh) * 2022-04-18 2022-07-05 国网北京市电力公司 一种构件穿越风险识别方法、装置、设备及介质
CN115272379A (zh) * 2022-08-03 2022-11-01 杭州新迪数字工程系统有限公司 一种基于投影的三维网格模型外轮廓提取方法及系统
CN115328117A (zh) * 2022-07-15 2022-11-11 大理大学 基于强化学习的蛋白质动态配体通道最优路径分析方法
CN117547825A (zh) * 2024-01-12 2024-02-13 腾讯科技(深圳)有限公司 碰撞数据的管理方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030043147A1 (en) * 2001-08-28 2003-03-06 Heim Oliver A. Method of using view frustrum culling for scaleable collision detection
JP2011079105A (ja) * 2009-10-08 2011-04-21 Toshiba Corp 干渉チェック方法、干渉チェック装置、及び干渉チェックプログラム
CN102368280A (zh) * 2011-10-21 2012-03-07 北京航空航天大学 一种面向虚拟装配的基于aabb-obb混合包围盒的碰撞检测方法
CN102609992A (zh) * 2012-02-12 2012-07-25 北京航空航天大学 基于三角网格变形体的自碰撞检测方法
CN102722910A (zh) * 2012-05-18 2012-10-10 浙江大学 一种基于分离轴剔除的体网格场景连续碰撞检测方法
CN108052703A (zh) * 2017-11-22 2018-05-18 南京航空航天大学 基于混合层次包围盒的快速碰撞检测方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030043147A1 (en) * 2001-08-28 2003-03-06 Heim Oliver A. Method of using view frustrum culling for scaleable collision detection
JP2011079105A (ja) * 2009-10-08 2011-04-21 Toshiba Corp 干渉チェック方法、干渉チェック装置、及び干渉チェックプログラム
CN102368280A (zh) * 2011-10-21 2012-03-07 北京航空航天大学 一种面向虚拟装配的基于aabb-obb混合包围盒的碰撞检测方法
CN102609992A (zh) * 2012-02-12 2012-07-25 北京航空航天大学 基于三角网格变形体的自碰撞检测方法
CN102722910A (zh) * 2012-05-18 2012-10-10 浙江大学 一种基于分离轴剔除的体网格场景连续碰撞检测方法
CN108052703A (zh) * 2017-11-22 2018-05-18 南京航空航天大学 基于混合层次包围盒的快速碰撞检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BIN ZHAO,CHUNPING WANG,QIANG FU: "An over‑regression suppression method to discriminate occluded objects of same category", 《PATTERN ANALYSIS AND APPLICATIONS (2020)》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113340247A (zh) * 2021-06-15 2021-09-03 上海理工大学 一种用于车身接触式三坐标测量的连续碰撞检测方法
CN113340247B (zh) * 2021-06-15 2022-07-12 上海理工大学 一种用于车身接触式三坐标测量的连续碰撞检测方法
CN113244622A (zh) * 2021-06-22 2021-08-13 腾讯科技(深圳)有限公司 碰撞数据处理方法和装置、存储介质及电子设备
CN113781846A (zh) * 2021-09-28 2021-12-10 中国人民解放军空军工程大学 一种水平维度空域冲突检测方法
CN114211498B (zh) * 2021-12-30 2023-09-08 中国煤炭科工集团太原研究院有限公司 基于方向包围盒的锚杆支护机器人碰撞检测方法及系统
CN114211498A (zh) * 2021-12-30 2022-03-22 中国煤炭科工集团太原研究院有限公司 基于方向包围盒的锚杆支护机器人碰撞检测方法及系统
CN114625025A (zh) * 2022-03-04 2022-06-14 无锡信捷电气股份有限公司 一种弯管加工干涉检测的仿真方法及系统
CN114707880B (zh) * 2022-04-18 2024-02-13 国网北京市电力公司 一种构件穿越风险识别方法、装置、设备及介质
CN114707880A (zh) * 2022-04-18 2022-07-05 国网北京市电力公司 一种构件穿越风险识别方法、装置、设备及介质
CN114627262B (zh) * 2022-05-11 2022-08-05 武汉大势智慧科技有限公司 基于倾斜网格数据的图像生成方法及系统
CN114627262A (zh) * 2022-05-11 2022-06-14 武汉大势智慧科技有限公司 基于倾斜网格数据的图像生成方法及系统
CN115328117A (zh) * 2022-07-15 2022-11-11 大理大学 基于强化学习的蛋白质动态配体通道最优路径分析方法
CN115272379A (zh) * 2022-08-03 2022-11-01 杭州新迪数字工程系统有限公司 一种基于投影的三维网格模型外轮廓提取方法及系统
CN115272379B (zh) * 2022-08-03 2023-11-28 上海新迪数字技术有限公司 一种基于投影的三维网格模型外轮廓提取方法及系统
CN117547825A (zh) * 2024-01-12 2024-02-13 腾讯科技(深圳)有限公司 碰撞数据的管理方法、装置、设备及存储介质
CN117547825B (zh) * 2024-01-12 2024-03-22 腾讯科技(深圳)有限公司 碰撞数据的管理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112669434B (zh) 2022-05-03

Similar Documents

Publication Publication Date Title
CN112669434B (zh) 一种基于网格与包围盒的碰撞检测方法
CN111360824B (zh) 一种双臂自碰撞检测方法和计算机可读存储介质
US5056031A (en) Apparatus for detecting the collision of moving objects
CN103236079B (zh) 一种基于三维模型体素化的内部球改进构造方法
Rossignac et al. Offsetting operations in solid modelling
CN111230880A (zh) 一种离线编程中的复杂曲面加工轨迹生成方法
CN110795797A (zh) 一种mbd模型加工特征识别及信息提取方法
CN111243094B (zh) 一种基于点灯法的三维模型精确体素化方法
CN108305289B (zh) 基于最小二乘法的三维模型对称性特征检测方法及系统
CN115661374B (zh) 一种基于空间划分和模型体素化的快速检索方法
Garcia et al. GPU-based dynamic search on adaptive resolution grids
CN110717967A (zh) 面向大场景模型web端动态渲染LOD处理方法
CN107680154A (zh) 基于视图的体素几何参数提取方法
JP2826138B2 (ja) 移動体の干渉チェック装置
Vemuri et al. Fast collision detection algorithms with applications to particle flow
CN103679271B (zh) 基于Bloch球面坐标及量子计算的碰撞检测方法
CN104809760A (zh) 基于深度优先策略的地理空间三维外轮廓自动构建方法
CN111915720B (zh) 一种建筑物Mesh模型到CityGML模型的自动转换方法
CN114012726A (zh) 一种航天机械臂碰撞检测方法
Ruan et al. Efficient exact collision detection between ellipsoids and superquadrics via closed-form Minkowski sums
CN105279788A (zh) 一种生成物体空间扫掠体的方法
CN106934853A (zh) 一种基于点云模型的汽车工件表面法向量的求取方法
CN114742944A (zh) 面向工业机器人路径规划的保守碰撞检测方法
Tang et al. Adjacency-based culling for continuous collision detection
CN115859524A (zh) 一种基于stl模型的圆柱体布尔求差运算方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant