CN110047143B - 一种基于空间细分与动态包围盒的连续碰撞检测方法 - Google Patents
一种基于空间细分与动态包围盒的连续碰撞检测方法 Download PDFInfo
- Publication number
- CN110047143B CN110047143B CN201910158591.8A CN201910158591A CN110047143B CN 110047143 B CN110047143 B CN 110047143B CN 201910158591 A CN201910158591 A CN 201910158591A CN 110047143 B CN110047143 B CN 110047143B
- Authority
- CN
- China
- Prior art keywords
- detection
- max
- hash
- collision
- intersection
- 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.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 90
- 238000012360 testing method Methods 0.000 claims abstract description 11
- 238000005516 engineering process Methods 0.000 claims abstract description 5
- 238000013334 tissue model Methods 0.000 claims abstract description 5
- 238000000034 method Methods 0.000 claims description 23
- 239000013598 vector Substances 0.000 claims description 7
- 238000000926 separation method Methods 0.000 claims description 2
- 238000007781 pre-processing Methods 0.000 claims 1
- 238000004364 calculation method Methods 0.000 abstract description 8
- 230000035515 penetration Effects 0.000 abstract description 3
- 238000004422 calculation algorithm Methods 0.000 description 22
- 238000006073 displacement reaction Methods 0.000 description 7
- 238000001356 surgical procedure Methods 0.000 description 5
- 210000004872 soft tissue Anatomy 0.000 description 4
- 239000002131 composite material Substances 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 210000004185 liver Anatomy 0.000 description 2
- 208000019423 liver disease Diseases 0.000 description 2
- 210000005228 liver tissue Anatomy 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 210000001519 tissue Anatomy 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005553 drilling Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H50/00—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
- G16H50/50—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for simulation or modelling of medical disorders
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Public Health (AREA)
- Medical Informatics (AREA)
- Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Geometry (AREA)
- Pathology (AREA)
- Computer Graphics (AREA)
- Epidemiology (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Image Analysis (AREA)
Abstract
一种基于空间细分与动态包围盒的连续碰撞检测方法,包括:构造被用于碰撞检测的虚拟软组织模型与虚拟器械模型;计算检测对象的移动路径所占据的空间;为同一空间内的对象的移动路径构建动态包围盒,并对这些包围盒做相交测试;二分法确定可能发生碰撞的位置,回溯技术将待测对象从实际位置回退至初次碰撞发生位置;为可能发生接触的对象集构建层次包围盒并执行包围盒相交检测;精确检测步骤;子节点所包含的特征是否碰撞。本发明可以解决离散碰撞检测方法在虚拟手术应用中“穿透”和“漏检”的问题,并在保证精确性的前提下能极大地提升计算效率。
Description
技术领域
本发明属于碰撞检测技术领域,涉及虚拟手术实验中软组织与手术器械间的碰撞检测问题。
背景技术
碰撞检测作为计算机图形和物理仿真领域中一项不可缺少的组成部分,是虚拟仿真,机器人路径规划等课题方向的研究过程中必须要解决的问题。近几年来,随着计算机技术的不断发展,碰撞检测被广泛地应用于计算机游戏,虚拟现实等领域中,并已成为研究者关注的热点问题。在虚拟手术中,虚拟手术器械与人体组织的碰撞是变形计算的基础,也是切割手术的前提。在变形计算和模型切割过程中,操作者对碰撞检测的要求较高,碰撞检测的结果不仅反映了碰撞的基本情况,而且为进一步的变形计算提供了详细的碰撞信息。
近年来,许多学者都对碰撞检测问题展开研究,并提出了一些列解决碰撞检测的算法。这些方法可以分为三类:静态碰撞检测,离散碰撞检测,连续碰撞检测。静态碰撞检测算法只能用于检测物***置不随着时间变化而变化的情况,这显然不适用于虚拟手术应用中。离散碰撞检测算法是指在每个离散的时间点上,动态地判断物体间是否发生碰撞。这种算法计算效率较高,一般能满足多数应用场景的实时性要求。然而,离散碰撞检测因其检测机制而存在两个不可避免的问题:(1)当两次检测间的时间间隔过大,物体间的检测存在穿透问题,即物体在检测时间间隔内互相穿透而算法无法检测到碰撞发生的问题。(2)若物体的运动速度较快或厚度较薄,可能导致漏检的问题,即物体碰撞发生在时间间隔内而导致检测不到的问题。连续碰撞检测算法是在一个时间区间内,检测所有物体是否会发生碰撞。这类算法能避免离散碰撞检测的问题。然而,连续碰撞检测算法一个明显不足在于计算量较大,因而它的检测速度限制了该算法在实时性要求较高的场景中的应用。
与三维视频游戏或工业应用场景中的刚体碰撞检测不同,虚拟手术中涉及的两类物体分别属于刚体和柔体。为了获得更好的真实感,虚拟操作***对碰撞检测的准确性和实时性要求很高。研究者们提出了许多快速精确的碰撞检测算法以满足***需求。
Razavi.M等人(AGPU-implemented physics-based haptic simulator of toothdrilling,INTERNATIONAL JOURNAL OF MEDICAL ROBOTICS AND COMPUTER ASSISTEDSURGERY,11(4),pp:476-485,2015)提出了一种基于哈希算法的均匀网格方案用于牙齿与牙钻的碰撞检测。Yu.LT等人(Geometric Modeling and Collision Detection Based onHybrid Bounding Box in Virtual Gallbladder Surgery,2013ICME INTERNATIONALCONFERENCE ON COMPLEX MEDICAL ENGINEERING(CME),pp:25-30,2013)提出了一种基于球体-轴对称混合包围盒的碰撞检测算法用于虚拟胆囊手术。他们的方案虽然能满足虚拟手术的实时性需求,然而这些碰撞检测算法都是离散检测,因此***依然存在着由于离散碰撞检测机制而导致的缺陷。
目前,已经有研究者将连续碰撞检测算法用于虚拟手术中。Xu.L等人(Real-timeinextensible surgical thread simulation,INTERNATIONAL JOURNAL OF COMPUTERASSISTED RADIOLOGY AND SURGERY,13(7),pp:1019-1035,2018)提出了一种基于空间哈希法的连续碰撞检测算法应用于手术缝合线与手术器械的检测。在他们的研究中,整条缝合线被离散成紧密排列的球体,并利用球体的预测位置来计算运动轨迹。然而,他们的方案没有证明其在软组织与手术器械的检测中的适用性。Si.WX等人(Towards InteractiveProgressive Cutting of Deformable Bodies via Phyxel-Associated Surface MeshApproach for Virtual Surgery,IEEE ACCESS,6,pp:32286-32299,2018)提出了一种基于层次包围盒的连续碰撞检测用于虚拟切割场景中。然而,他们的方案并没有解决由于网格拓扑结构变化后包围盒更新所产生的不可避免的时间成本。Li.CQ等人(A Surface Mass-Spring Model With New Flexion Springs and Collision Detection AlgorithmsBased on Volume Structure for Real-Time Soft-Tissue Deformation Interaction,IEEE ACCESS,6,pp:75572-75597,2018)完善了传统连续碰撞检测耗时较大的缺点,提出了基于连续插值技术和体积结构检测混合算法。然而,在他们的实验中手术器械被简化为球体,因此他们的方案并没有在复杂场景下得到验证。
综上所述,由于离散碰撞检测算法仍存在着不足和虚拟手术中对碰撞检测的极高的精确性要求,当前研究的需求是为软组织与手术器械的交互设计一种快速精确的连续碰撞检测算法。这种算法不仅能在高速环境下检测目标接触,而且适用于各种复杂的手术场景中。
发明内容
基于上述背景,本发明提出了一种虚拟手术中手术器械与人体组织交互式的连续碰撞检测方法。本发明适用于各种形状和尺寸的手术器械,以及任意长度的时间间隔。本发明是通过以下技术方案实现的。
本发明所述的一种基于空间细分与动态包围盒的连续碰撞检测方法,主要包括两个过程,基于空间剖分和动态层次包围盒的混合剔除阶段和精确相交检测阶段。
本发明所述的一种基于空间细分与动态包围盒的连续碰撞检测方法,其特征是按以下步骤:
步骤1:构造被用于碰撞检测的虚拟软组织模型与虚拟器械模型。
步骤2:计算检测对象的移动路径所占据的空间,若待检测对象的移动路径共用同一个空间,则执行下一步,否则退出检测。
步骤3:为同一空间内的对象的移动路径构建动态包围盒,并对这些包围盒做相交测试。若相交,则执行下一步,否则退出检测。
步骤4:二分法确定可能发生碰撞的位置,回溯技术将待测对象从实际位置回退至初次碰撞发生位置。
步骤5:为可能发生接触的对象集构建层次包围盒并执行包围盒相交检测。若检测到子节点包围盒相交,则执行下一步,否则退出检测。
步骤6:精确检测步骤5中的子节点所包含的特征是否碰撞。若检测到发生碰撞,则重新计算待测对象的位置;否则待测对象位置不变。
进一步地,在步骤1的建模过程,利用三维建模软件构建待测的虚拟软组织模型与虚拟器械模型。模型均由具有一定厚度的三角面网格构成。在表面三角形网格上进行碰撞检测。
在步骤2-5的交互检测过程,采用连续空间细分算法和动态包围盒算法对可能接触的三角基元进行筛选。
进一步地,在步骤2中,首先为了保证运动的连续性,将离散的时间间隔内的物体运动轨迹视为匀速直线运动,并计算运动轨迹所占占据的子空间。利用哈希函数对扫掠体的空间网格进行压缩,这样,三维的体积空间被映射到一维的哈希值索引。该方法可以依据物体的移动轨迹快速剔除不相交部分并确定物体可能相交的部分。如附图1所示,三角面片的扫掠体被细分为多个立方体空间。这样,若多个三角面片的扫掠体共用同一个子空间,这些三角面基元被标记为可能相交的并被用于进一步相交检测。具体的说步骤为:
2.1预处理各个子空间的尺寸为D,并将空间各个顶点的位置离散化为(x,y,z)。将顶点的坐标除以给定的单元格大小,并四舍五入到下一个整数坐标(i,j,k)。其中,i=[x/D],j=[y/D],k=[z/D]。接着,三维的顶点整数坐标(i,j,k)被映射到一维的哈希值H索引。哈希值通过哈希函数获取。即:
hash(i,j,k)=(i·p1xor j·p2xork·p3)modN
这里,p1,p2,p3代表三个足够大的质数以确保每个索引的哈希值唯一。N是哈希列表的长度。
2.2计算扫掠体的哈希值。为了将空间哈希法用于连续碰撞检测,还需计算时间间隔内物体三角面的扫掠体的哈希值范围。首先,计算三角面扫掠体的最大哈希值和最小哈希值。将顶点的最大坐标和最小坐标设为(xmax,ymax,zmax),(xmin,ymin,zmin),并通过最大坐标点和最小坐标点得到扫掠体的子空间最大索引值和最小索引值(imax,jmax,kmax),(imin,jmin,kmin)。根据索引值进一步计算最大哈希值和最小哈希值hash(imax,jmax,kmax),hash(imax,jmax,kmax)。这样,可以计算出扫掠体的哈希表索引范围:[Hashmin,Hashmax]。若不同三角面的扫掠体的索引范围存在交叠,那么这些三角面都被标记为可能发生接触的,并被用于后续检测。
进一步地,步骤3为可能相交的物体的运动扫掠体构造包围盒并对包围盒进行相交检测。具体步骤如下:
3.1当方法进行到这一步时,已经获知物***移的轨迹和可能发生接触的三角面。接下来要做的是为这些特征集构建包围盒。考虑到包围盒的紧密性和相交检测的复杂性,选择有向包围盒。由于已有研究者将静态有向包围盒扩展到动态有向包围盒检测,这里对构建包围盒的技术不再赘述。值得一提的是,在前人的研究方案上使用二分回溯法改进了连续动态包围盒的细分测试。
3.2扫掠体包围盒的连续相交检测。由于连续检测的需求,必须确定扫掠体的有向包围盒是否重叠,再利用二分回溯法确定碰撞发生的精确位置。如附图2所示。对包围盒进行分离轴测试。分别定义两个包围盒的轴中心,中心距各轴距离分别为a1,a2,a3,Ta,e1,e2,e3和b1,b2,b3,Tb,f1,f2,f3。当两个包围盒到各轴的投影均不重叠时,可以判断包围盒不相交。即满足:
轴k可由包围盒的各轴推导而得:
k∈{ai,bj,ai×bj,1≤i≤3,1≤j≤3}
进一步地,在步骤4中,若包围盒在时间间隔内未检测到分离轴则进行细分检测。细分测试就是进一步细化时间间隔,直到时间间隔的长度满足要求的精度为止,精度的设定与***的精确性,物体表面厚度和物体移动速度有关。对一段给定的时间步长[0,t]和轨迹γA,γB,确定了最短时间子区间[k·(t/2)^n,(k+1)·(t/2)^n]。其中n表示细分程度,k表示细化时间间隔的索引。碰撞发生的时间可近似为k·(t/2)^n。
进一步地,步骤6中,在经过上述步骤后将筛选出可能发生接触的三角面及接触位置,接触时间。最后,还需要详细检测这些基本图元的接触情况。这实际上是空间三角面的相交问题。如附图3所示,ΔA1A2A3,ΔB1B2B3是两块待测的三角面。分别是这两个三角面的法向量。具体步骤如下:
如果三个距离矢量的符号相同,则不会发生接触。这是因为符号相同时表示ΔB1B2B3各点在ΔA1A2A3所在平面同侧,则必不可能接触。类似地,可以判断ΔA1A2A3各点在ΔB1B2B3所在平面的相交情况。
其中,
本发明可以解决离散碰撞检测方法在虚拟手术应用中“穿透”和“漏检”的问题。此外,实验数据表明,与现有的方法相比,本发明在保证精确性的前提下能极大地提升计算效率。
附图说明
图1为运动三角面的轨迹扫掠体所占有子空间。
图2为包围盒的分离轴检测。
图3为三角面片的精确相交检测。
图4为使用手术刀触碰肝脏组织的实验仿真图。
图5为本发明的流程图。
具体实施方式
本发明将通过以下实例作进一步说明。
本文的虚拟手术***由虚拟手术刀和虚拟肝脏组织构成。其中,手术刀由2960块三角面片构成,肝脏组织由1774块三角面构成。在方法中所涉及的参数均已经过实验验证,具体为:肝脏模型的长度,宽度,高度分别为36cm,25cm,25cm。手术刀模型的长宽高分别为:21cm,1.5cm,1.5cm。子空间的统一尺寸D为5cm,细分精度n为3。为了使说明具有代表性,分别以手术刀模型和肝脏模型中的指定三角面ΔA1B1C1和ΔA2B2C2为例执行本文方案的步骤。其中,ΔA1B1C1中A1B1C1的坐标分别为(0.7,1.3,12.0),(0.5,1.2,12.1),(0.8,1.5,12.3)。ΔA2B2C2中A2B2C2的坐标分别为(-1.7,1.4,10.2),(-1.0,1.8,10.9),(-0.6,1.2,10.5)。ΔA1B1C1与ΔA2B2C2在时间区间(0,1)内的位移为和在实际应用中,模型内所有三角面的检测过程均与本例中相同。
首先,计算ΔA1B1C1与ΔA2B2C2的扫掠体所占据的子空间:
(1)ΔA1B1C1的顶点A1B1C1在位移后的位置分别为(0.7,1.3,10.0),(0.5,1.2,10.1),(0.8,1.5,10.3),位移后占据的子空间的索引为(0,0,2)。
(2)ΔA2B2C2的顶点A2B2C2在位移后的位置分别为(-0.7,1.4,10.2),(0.0,1.8,10.9),(0.4,1.2,10.5),位移后占据的子空间的索引为(0,0,2)。
计算结果表明两块三角面片在位移后占据同一个子空间,即它们的轨迹在该子空间内可能发生相交,应被标记并用于进一步相交检测。
第二步,为ΔA1B1C1与ΔA2B2C2的扫掠构建包围盒并执行连续相交检测:
(1)为ΔA1B1C1与ΔA2B2C2的扫掠构建包围盒。由于ΔA1B1C1与ΔA2B2C2均沿坐标轴移动,它们包围盒的三条轴向均为ΔA1B1C1与ΔA2B2C2的包围盒的中心分别为(0.65,1.35,11.15),(-0.65,1.5,10.55)。ΔA1B1C1包围盒中心到各轴的距离为0.15,0.15,1.15。ΔA2B2C2包围盒中心到各轴的距离为0.75,0.3,0.35。
(2)对ΔA1B1C1与ΔA2B2C2的包围盒进行连续相交检测。通过计算,ΔA1B1C1的中心与ΔA2B2C2的中心的间距在轴上的长度为0.15。ΔA1B1C1的包围盒在轴上的长度与ΔA2B2C2的包围盒在轴上的长度之和为0.45,大于ΔA1B1C1的中心与ΔA2B2C2的中心的间距在轴上的长度。这表明在轴上ΔA1B1C1的包围盒与ΔA2B2C2的包围盒发生交叠,需要执行进一步检测。
第三步,二分法估计碰撞时间:
先检测时间区间(0,0.5)内的接触情况,若发生接触则进一步细分检测,否则将检测时间区间(0.5,1.0)。将ΔA1B1C1的包围盒与ΔA2B2C2的包围盒沿各自位移方向一分为二,此时ΔA1B1C1的包围盒中心为(0.65,1.35,11.85),到各轴的距离为0.15,0.15,0.68。ΔA2B2C2的包围盒中心为(-1.18,1.5,10.55),到各轴距离为0.52,0.3,0.35。两个包围盒在轴上发生重叠,表明在时间区间(0,0.5)内发生了接触。将时间区间进一步二分为(0,0.25)和(0.25,0.5)。检测持续进行直到达到预设的细分精度。最终估计的接触时间为(0,0.125)之间,此时ΔA1B1C1各点坐标为(0.7,1.3,11.75),(0.5,1.2,11.85),(0.8,1.5,12.05),ΔA2B2C2各点坐标为(-1.575,1.4,10.2),(-0.875,1.8,10.9),(-0.475,1.2,10.5)。
第四步,精确检测ΔA1B1C1与ΔA2B2C2相交情况:
(2)计算ΔA2B2C2各点到ΔA1B1C1所在平面的距离矢量分别为-0.153,-0.069,-0.10。符号相同表明ΔA2B2C2各点在ΔA1B1C1所在平面的同一侧,即ΔA1B1C1与ΔA2B2C2必不发生相交。
表1为本发明与现有的HCDVS算法在不同场景中进行碰撞检测的对比试验结果。
表1
方法 | 模型 | 面片数 | 耗时(毫秒) |
本方法 | 心脏 | 500 | 3 |
HCDVS | 心脏 | 500 | 168 |
本方法 | 肝脏 | 1774 | 4.5 |
HCDVS | 肝脏 | 1774 | 595 |
本方法 | 大脑 | 2708 | 15 |
HCDVS | 大脑 | 2708 | 880 |
Claims (2)
1.一种基于空间细分与动态包围盒的连续碰撞检测方法,其特征是按以下步骤:
步骤1:构造被用于碰撞检测的虚拟软组织模型与虚拟器械模型;
步骤2:计算检测对象的移动路径所占据的空间,若待检测对象的移动路径共用同一个空间,则执行下一步,否则退出检测;
步骤3:为同一空间内的对象的移动路径构建动态包围盒,并对这些包围盒做相交测试;若相交,则执行下一步,否则退出检测;
步骤4:二分法确定可能发生碰撞的位置,回溯技术将待测对象从实际位置回退至初次碰撞发生位置;
步骤5:为可能发生接触的对象集构建层次包围盒并执行包围盒相交检测;若检测到子节点包围盒相交,则执行下一步,否则退出检测;
步骤6:精确检测步骤5中的子节点所包含的特征是否碰撞;若检测到发生碰撞,则重新计算待测对象的位置;否则待测对象位置不变;
所述的步骤2中,首先,将离散的时间间隔内的物体运动轨迹视为匀速直线运动,并计算运动轨迹所占据的子空间;再利用哈希函数对扫掠体的空间网格进行压缩,使三维的体积空间被映射到一维的哈希值索引;具体过程为:
(1)预处理各个子空间的尺寸为D,并将空间各个顶点的位置离散化为(x,y,z);将顶点的坐标除以给定的单元格大小,并四舍五入到下一个整数坐标(i,j,k);其中,i=[x/D],j=[y/D],k=[z/D];接着,三维的顶点整数坐标(i,j,k)被映射到一维的哈希值H索引,哈希值通过哈希函数获取,即:
hash(i,j,k)=(i·p1xor j·p2xor k·p3)modN
其中,p1,p2,p3代表三个足够大的质数以确保每个索引的哈希值唯一,N是哈希列表的长度;
(2)计算扫掠体的哈希值:首先,计算三角面扫掠体的最大哈希值和最小哈希值,将顶点的最大坐标和最小坐标设为(xmax,ymax,zmax),(xmin,ymin,zmin),并通过最大坐标点和最小坐标点得到扫掠体的子空间最大索引值和最小索引值(imax,jmax,kmax),(imin,jmin,kmin);根据索引值进一步计算最大哈希值和最小哈希值hash(imax,jmax,kmax),hash(imax,jmax,kmax);并计算出扫掠体的哈希表索引范围:[Hashmin,Hashmax];若不同三角面的扫掠体的索引范围存在交叠,那么这些三角面都被标记为可能发生接触的,并被用于后续检测;
所述的步骤3的具体步骤如下:
(1)选择有向包围盒;
(2)扫掠体包围盒的连续相交检测;由于连续检测的需求,必须确定扫掠体的有向包围盒是否重叠,再利用二分回溯法确定碰撞发生的精确位置;对包围盒进行分离轴测试;分别定义两个包围盒的轴中心,中心距各轴距离分别为a1,a2,a3,Ta,e1,e2,e3和b1,b2,b3,Tb,f1,f2,f3;当两个包围盒到各轴的投影均不重叠时,可以判断包围盒不相交;即满足:
轴k可由包围盒的各轴推导而得:
k∈{ai,bj,ai×bj,1≤i≤3,1≤j≤3}
所述的步骤4中,若包围盒在时间间隔内未检测到分离轴则进行细分检测;细分测试进一步细化时间间隔,直到时间间隔的长度满足要求的精度为止,精度的设定与***的精确性,物体表面厚度和物体移动速度有关;对一段给定的时间步长[0,t]和轨迹γA,γB,确定了最短时间子区间[k·(t/2)^n,(k+1)·(t/2)^n];其中n表示细分程度,k表示细化时间间隔的索引;碰撞发生的时间可近似为k·(t/2)^n;
所述的步骤6中,在经过上述步骤后将筛选出可能发生接触的三角面及接触位置、接触时间;最后,详细检测这些基本图元的接触情况;具体步骤如下:
如果三个距离矢量的符号相同,则不会发生接触;这是因为符号相同时表示ΔB1B2B3各点在ΔA1A2A3所在平面同侧,则必不可能接触;类似地,可以判断ΔA1A2A3各点在ΔB1B2B3所在平面的相交情况;
其中,
2.根据权利要求1所述的一种基于空间细分与动态包围盒的连续碰撞检测方法,其特征是,所述的步骤1的建模过程,利用三维建模软件构建待测的虚拟软组织模型与虚拟器械模型;模型均由具有一定厚度的三角面网格构成,在表面三角形网格上进行碰撞检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910158591.8A CN110047143B (zh) | 2019-03-04 | 2019-03-04 | 一种基于空间细分与动态包围盒的连续碰撞检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910158591.8A CN110047143B (zh) | 2019-03-04 | 2019-03-04 | 一种基于空间细分与动态包围盒的连续碰撞检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110047143A CN110047143A (zh) | 2019-07-23 |
CN110047143B true CN110047143B (zh) | 2023-03-21 |
Family
ID=67274466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910158591.8A Active CN110047143B (zh) | 2019-03-04 | 2019-03-04 | 一种基于空间细分与动态包围盒的连续碰撞检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110047143B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110717965B (zh) * | 2019-09-10 | 2023-07-11 | 江苏理工学院 | 一种三维空间内基于降维的实时路径生成方法 |
CN110717970B (zh) * | 2019-09-12 | 2023-07-07 | 江苏理工学院 | 一种基于离散碰撞检测的借助法线修正位置的移动方法 |
CN111714890B (zh) * | 2020-04-24 | 2023-04-21 | 上海完美时空软件有限公司 | 阻拦信息的生成方法和装置、存储介质、电子装置 |
CN111514587B (zh) | 2020-04-27 | 2021-05-11 | 网易(杭州)网络有限公司 | 信息处理方法、装置、设备及存储介质 |
CN112157678B (zh) * | 2020-09-24 | 2021-10-22 | 河北工业大学 | 一种基于二分法的平面冗余机械臂碰撞位置检测方法 |
CN112381953B (zh) * | 2020-10-28 | 2024-04-02 | 华南理工大学 | 三维空间无人机集群的快速选择方法 |
CN112245014B (zh) * | 2020-10-30 | 2023-06-02 | 上海微创医疗机器人(集团)股份有限公司 | 一种医疗机器人、检测机械臂碰撞的方法及存储介质 |
CN112802203B (zh) * | 2021-01-18 | 2023-02-28 | 华中科技大学鄂州工业技术研究院 | 一种基于特征的空间哈希连续碰撞检测方法 |
CN112836420B (zh) * | 2021-02-01 | 2022-04-22 | 江南大学 | 一种瓶状密闭空间气体抽空可视化方法 |
CN113077643B (zh) * | 2021-03-23 | 2022-05-03 | 上海振华重工(集团)股份有限公司 | 一种交通控制方法、交通控制***及存储介质 |
CN113211495A (zh) * | 2021-04-12 | 2021-08-06 | 北京航天飞行控制中心 | 一种机械臂碰撞检测方法、***、存储介质和机械臂 |
CN113340247B (zh) * | 2021-06-15 | 2022-07-12 | 上海理工大学 | 一种用于车身接触式三坐标测量的连续碰撞检测方法 |
CN113392553B (zh) * | 2021-06-15 | 2022-10-11 | 上海理工大学 | 适用于三坐标测量机星型测头转动过程的碰撞检测方法 |
CN113781846B (zh) * | 2021-09-28 | 2022-12-16 | 中国人民解放军空军工程大学 | 一种水平维度空域冲突检测方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102368280A (zh) * | 2011-10-21 | 2012-03-07 | 北京航空航天大学 | 一种面向虚拟装配的基于aabb-obb混合包围盒的碰撞检测方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593366A (zh) * | 2009-06-24 | 2009-12-02 | 北京航空航天大学 | 一种基于平衡二叉树的大规模虚拟场景碰撞检测方法 |
US9171396B2 (en) * | 2010-06-30 | 2015-10-27 | Primal Space Systems Inc. | System and method of procedural visibility for interactive and broadcast streaming of entertainment, advertising, and tactical 3D graphical information using a visibility event codec |
CN104200031B (zh) * | 2014-09-04 | 2017-11-24 | 大连大学 | 一种基于距离优先和时空相关性的碰撞检测方法 |
WO2017027957A1 (en) * | 2015-08-17 | 2017-02-23 | Side Effects Software Inc. | Physically based simulation methods for modeling and animating two- and three-dimensional deformable objects |
CN105205867B (zh) * | 2015-09-06 | 2017-12-26 | 大连理工大学 | 一种微创虚拟腹主动脉血管手术中的碰撞检测方法 |
CN105469406B (zh) * | 2015-11-30 | 2018-05-04 | 东北大学 | 一种基于包围盒与空间划分的虚拟物体碰撞检测方法 |
CN108536880A (zh) * | 2017-03-06 | 2018-09-14 | 上海盟云移软网络科技股份有限公司 | 一种虚拟现实***的随机碰撞检测算法 |
-
2019
- 2019-03-04 CN CN201910158591.8A patent/CN110047143B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102368280A (zh) * | 2011-10-21 | 2012-03-07 | 北京航空航天大学 | 一种面向虚拟装配的基于aabb-obb混合包围盒的碰撞检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110047143A (zh) | 2019-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110047143B (zh) | 一种基于空间细分与动态包围盒的连续碰撞检测方法 | |
CN106875462B (zh) | 一种基于元球模型和混合驱动方法的实时数字器官切割方法 | |
CN105205867B (zh) | 一种微创虚拟腹主动脉血管手术中的碰撞检测方法 | |
Picinbono et al. | Improving realism of a surgery simulator: linear anisotropic elasticity, complex interactions and force extrapolation | |
CN109285225B (zh) | 一种基于医学影像的虚拟现实辅助手术的建立方法 | |
KR101912233B1 (ko) | 물체의 위치를 결정하기 위한 시스템 및 방법 | |
JP4283752B2 (ja) | 多関節物体の連接要素間の内部衝突を回避しながらの仮想環境における仮想多関節物体の動き | |
JP4942924B2 (ja) | 仮想多関節物体を仮想環境で動きの連続により動かす方法 | |
Kwon et al. | Super rays and culling region for real-time updates on grid-based occupancy maps | |
Mosegaard et al. | GPU accelerated surgical simulators for complex morphology | |
Zampokas et al. | Real-time 3D reconstruction in minimally invasive surgery with quasi-dense matching | |
CN111797506B (zh) | 一种主从导丝控制方法 | |
Kim et al. | Virtual surgery simulation for medical training using multi‐resolution organ models | |
Wagner et al. | Collision detection and tissue modeling in a vr-simulator for eye surgery | |
Wang et al. | Design and application of bounding volume hierarchy collision detection algorithm based on virtual sphere | |
Lim et al. | On the use of meshfree methods and a geometry based surgical cutting algorithm in multimodal medical simulations | |
CN101308523B (zh) | 一种虚拟激光加工过程几何仿真方法 | |
CN102314710A (zh) | 基于力异步扩散模型的医学组织动力学仿真方法 | |
JP2007048151A (ja) | 3次元曲面への物体メッシュモデルの写像方法 | |
Ye et al. | An improved collision detection and cutting algorithm of the soft tissue in virtual surgical simulation | |
CN111047683B (zh) | 一种基于空间碰撞检测的智能定位方法 | |
Devarajan et al. | A novel laparoscopic mesh placement part task trainer | |
CN109616211B (zh) | 一种基于质点弹簧的混合缝合线模型及其打结方法 | |
CN114974509B (zh) | 骨折复位路径规划方法、骨折复位方法及电子设备 | |
CN109036567B (zh) | 一种基于子空间凝聚算法的软组织形变仿真方法 |
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 |