CN105843778A - 一种高效的非凸体连续碰撞检测的方法 - Google Patents

一种高效的非凸体连续碰撞检测的方法 Download PDF

Info

Publication number
CN105843778A
CN105843778A CN201610210193.2A CN201610210193A CN105843778A CN 105843778 A CN105843778 A CN 105843778A CN 201610210193 A CN201610210193 A CN 201610210193A CN 105843778 A CN105843778 A CN 105843778A
Authority
CN
China
Prior art keywords
convex
collision detection
convex body
beeline
continuous collision
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.)
Pending
Application number
CN201610210193.2A
Other languages
English (en)
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.)
East China Normal University
Original Assignee
East China Normal University
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 East China Normal University filed Critical East China Normal University
Priority to CN201610210193.2A priority Critical patent/CN105843778A/zh
Publication of CN105843778A publication Critical patent/CN105843778A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Operations Research (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种高效的非凸体连续碰撞检测的方法,包括:对非凸体进行凸分解并分别建立凸包树,根据模型运动的初状态和末状态进行插值,得到连续的匀速平移和旋转运动过程,然后利用两个凸包树来计算两物体当前的最短距离及最短距离向量,计算紧致的运动上界并向前推进一个最小时间步。循环从利用两个凸包树计算最短距离到向前推进一个时间步的过程,直到两物体之间发生碰撞,将当前时间作为首次碰撞时间并报告接触的特征。本发明能够有效地减少执行连续碰撞检测算法的次数,容易实现且能够显著提高连续碰撞检测算法的效率。

Description

一种高效的非凸体连续碰撞检测的方法
技术领域
本发明涉及计算机图形学以及机器人运动规划中一种非凸体的连续碰撞检测的方法,尤其涉及一种高效的非凸体连续碰撞检测的方法。
背景技术
碰撞检测是指测试空间中的几何模型之间是否会发生接触或穿透,许多图形学应用需要快速可靠的碰撞检测算法来进行虚拟空间中的物体仿真,如基于物理的动画,机器人运动规划、触觉渲染、虚拟现实等。三十年来,许多学者对碰撞检测问题进行了大量研究,并形成了三类主要的检测方法:静态碰撞检测、离散碰撞检测和连续碰撞检测(Continuous Collision Detection,简称CCD)。
其中,连续碰撞检测算法检测有无碰撞时考虑物体的连续运动,当碰撞发生时报告首次接触的时间(Time of Contact,简称TOC),并保证运动的物体不会与其他物体发生穿透,因而获得了广泛的关注。然而,其最大的缺陷在于:连续碰撞检测算法在算法效率上比离散碰撞检测算法慢很多,这导致连续碰撞算法在很多潜在应用中受到限制。
在最近的研究工作中,出现了很多连续碰撞检测算法,如:代数方程求解方法,扫掠体方法,自适应二分方法,动态数据结构(KDS)方法和基于闵可夫斯基和方法等,但是大多数方法都不能实时运行且仅对简单的凸体有效。
发明内容
为克服现有技术的不足,提高连续碰撞检测算法的效率,解决算法实时性和通用性问题,本发明提供了基于保守前进(Conservative Advancement,简称CA)的一种高效的非凸体连续碰撞检测的方法,适用于一般非凸多面体。
本发明所提供的连续碰撞检测算法,利用多面体的结构信息和连续运动的一致性,高效检测连续运动的物体是否与空间中其他物体碰撞,具体步骤包括:
步骤1:基于凸表面分解的方法将两个需要进行连续碰撞检测的非凸体分解为多个凸体,并分别构造凸包树;
步骤2:根据运动多面体的初状态和末状态计算插值运动,得到连续的匀速平移和旋转运动过程;
步骤3:利用两凸包树结构计算两物体当前的最短距离及最短距离向量;
步骤4:计算紧致的运动上界和当前能推进的时间步;
步骤5:找出步骤4中求得的最小时间步,并向前推进一步;
步骤6:循环步骤3和步骤5,直到两物体发生碰撞,将当前时间作为首次碰撞时间并报告此时的接触特征。
其中,所述凸包树的建立方法为:作为预处理部分,算法将给定的两个非凸体分别分解为多个凸体块,并迭代地建立一个层次包围盒(Bounding VolumeHierarchy,简称BVH),其中每个包围盒节点都对应其孩子结点的凸包,即凸包树结构。
其中,所述计算插值运动的方法为:根据给定的运动物体A的初状态和末状态,计算连续的匀速平移和旋转运动过程得到刚体变换矩阵M(t),使得A(t)=M(t)·A(0),其中,A(0)表示运动物体A的初状态,A(t)表示运动物体A在任意t时刻的状态。
其中,在最短距离查询过程中,隐式建立一个BVTT,其中每个节点对应一对凸包节点,并存储其对应的最短距离和最短距离向量,仅对BVTT的所有叶子节点进行保守前进连续碰撞检测,提高算法效率。
其中,计算紧致的运动上界和当前能推进的时间步的方法为:遍历BVTT的所有叶子节点对应的凸包对。
其中,所述计算运动上界方法为投影平移和旋转运动到最短距离向量,将计算更紧致的运动上界转化为一个线性规划问题:
μ = m a x i | c 1 · r 1 | + c 2
满足ri·nk≤dk,k=1...|A|,其中,c1=n×ω,c2=|v·n|,且|A|为凸体A上平面的数目,x·nk=dk是凸体A上第k个平面方程,v,ω为物体质心的线速度和角速度。
其中,所述当前能推进的时间步计算方式为:
Δt i , j = d ( h i A , h j B ) μ ( i , j )
其中,为两凸体的最短距离,μ(i,j)为该凸体对最短距离所对应的运动上界。
其中,所述向前推进一个最小时间步的方法为:找出上一步遍历的节点对中求得的最小时间步Δtmin,并向前推进一步,使物体A从A(t)运动为A(t+Δtmin)。
其中,所述发生碰撞即认为是两物体之间的距离小于一个预设的阈值的状态。
本发明所述的高效连续碰撞检测算法,旨在解决算法实时性和通用性问题,减少连续碰撞检测的计算量,并使算法适用于一般非凸多面体。该算法能显著提高连续碰撞检测效率,并在发生碰撞时报告首次接触的时间及此时的接触特征。
附图说明
图1为本发明高效连续碰撞检测算法流程示意图;
图2为本发明两凸体使用保守前进算法进行连续碰撞检测示意图。
具体实施方式
结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、试验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
图1为本发明高效连续碰撞检测算法流程示意图,下面对其中每个步骤进行详细说明。
步骤1凸分解并建立凸包树
作为预处理部分,对两非凸多面体A,B基于凸表面分解的方法分解为多个凸体块并分别迭代地构造凸包树CTHA,CTHB,树的每个节点都为其孩子节点的凸包。
步骤2计算插值运动
给定物体初状态q0=(R0,T0)和末状态q1=(R1,T1),其中R为平移分量,T为转动分量,其插值运动M(t)为:
M ( t ) = R ( t ) T ( t ) ( 0 , 0 , 0 ) 1
其中,T(t)=T0+tv;R(t)=cos(ωt)·A+sin(ωt)·B+C;v=T1-T0是质心的平移速度常量,且:
A=R0-uuT·R0
B=u*·R0
C=uuT·R0
其中,(u,ω)是从中提取出的物体的恒定角速度,u*是斜对称矩阵。
步骤3计算最短距离,并建立BVTT
根据步骤1建立的两凸包树CTHA,CTHB,从根节点开始遍历地计算两物体之间最短距离,被遍历的节点对通过递归地执行泰森多边形的匹配算法进行距离计算,得到其该节点对的最短距离并与前面已计算的全局最短距离d进行对比,如果则继续进行递归遍历;否则结束。
在最短距离查询过程中,隐式建立一个BVTT,其中每个节点h(i,j)对应一对凸包节点并存储其对应的最短距离和最短距离向量仅对BVTT的所有叶子节点进行保守前进连续碰撞检测。
步骤4利用BVTT计算紧致运动上界和时间步
遍历BVTT的所有叶子节点对应的凸包对,计算紧致运动上界的方法为投影平移和旋转运动到最短距离向量如图2所示,对于运动物体上的一点pi,其速度为其中,v,ω为物体质心的线速度和角速度,ri为点到质心的距离,计算更紧致的运动上界μ可以转化为一个线性规划问题:
μ = m a x i | c 1 · r 1 | + c 2
满足ri·nk≤dk,k=1...|A|,其中,c1=n×ω,c2=|v·n|,且|A|为凸体A上平面的数目,x·nk=dk是凸体A上第k个平面方程。
其中,所述当前能推进的时间步计算方式为:
Δt i , j = d ( h i A , h j B ) μ ( i , j )
其中,为两凸体的最短距离,μ(i,j)为该凸体对最短距离所对应的运动上界。
步骤5向前推进一个最小时间步
找出上一步遍历的节点对中求得的最小时间步Δtmin,并向前推进一步,使物体A从A(t)运动为A(t+Δtmin)。
步骤6循环执行步骤3到步骤5,直到步骤3中计算的全局最短距离d小于一个预设的阈值,则认为发生碰撞,将当前时间作为首次碰撞时间tTOC并报告此时的接触特征。
上述算法能够更有效地计算运动边界,大量减少执行保守推进算法的次数,显著提高连续碰撞检测算法的效率。
以上对本发明的具体实施例进行了详细描述,但其只是作为范例,本发明并不限制于以上描述的具体实施例。对于本领域技术人员而言,任何对本发明进行的等同修改和替代也都在本发明的范畴之中。因此,在不脱离本发明的精神和范围下所作的均等变换和修改,都应涵盖在本发明的范围内。

Claims (9)

1.一种高效的非凸体连续碰撞检测的方法,其特征在于,步骤包括:
步骤1:基于凸表面分解的方法将两个需要进行连续碰撞检测的非凸体分解为多个凸体,并针对各个凸体分别构造凸包树;
步骤2:根据运动多面体的初状态和末状态计算插值运动,得到连续的匀速平移和旋转运动过程;
步骤3:利用两凸包树结构计算两物体当前的最短距离及最短距离向量;
步骤4:计算紧致的运动上界和当前能推进的时间步;
步骤5:找出步骤4中求得的最小时间步,并向前推进该最小时间步;
步骤6:循环步骤3至步骤5,直到两物体发生碰撞,将当前时间作为首次碰撞时间并报告此时的接触特征。
2.根据权利要求1所述的一种高效的非凸体连续碰撞检测的方法,其特征在于,所述构造凸包树的方法为:通过算法将给定的两个非凸体分别分解为多个凸体块,并迭代地建立一个BVH,其中每个包围盒节点都对应其孩子结点的凸包,即凸包树结构。
3.根据权利要求1所述的一种高效的非凸体连续碰撞检测的方法,其特征在于,所述计算插值运动的方法为:根据给定的运动物体A的初状态和末状态,计算连续的匀速平移和旋转运动过程得到刚体变换矩阵M(t),使得A(t)=M(t)·A(0)。
4.根据权利要求1所述的一种高效的非凸体连续碰撞检测的方法,其特征在于,所述利用两凸包树结构计算两物体当前的最短距离及最短距离向量的过程中,隐式建立一个BVTT。
5.根据权利要求4所述一种高效的非凸体连续碰撞检测的方法,其特征在于,BVTT的每个节点对应一对凸包节点,并存储其对应的最短距离和最短距离向量,仅对BVTT的所有叶子节点进行保守前进连续碰撞检测。
6.根据权利要求1所述的一种高效的非凸体连续碰撞检测的方法,其特征在于,所述计算精致的运动上界的方法为投影平移和旋转运动到最短距离向量n,将计算更紧致的运动上界μ转化为一个线性规划问题:
μ = max i | c 1 · r 1 | + c 2
满足ri·nk≤dk,k=1...|A|,其中,c1=n×ω,c2=|v·n|,且|A|为凸体A上平面的数目,x·nk=dk是凸体A上第k个平面方程,v,ω为物体质心的线速度和角速度。
7.根据权利要求1所述的一种高效的非凸体连续碰撞检测的方法,其特征在于,所述的计算当前能推进的时间步的方法为:
Δt i , j = d ( h i A , h j B ) μ ( i , j )
其中,为两凸体的最短距离,μ(i,j)为两凸体的最短距离所对应的运动上界。
8.根据权利要求1所述的一种高效的非凸体连续碰撞检测的方法,其特征在于,所述向前推进一个最小时间步的方法为,找出上一步遍历的节点对中求得的最小时间步Δtmin,并向前推进一步,使物体A从A(t)运动为A(t+Δtmin)。
9.根据权利要求1所述的一种高效的非凸体连续碰撞检测的方法,其特征在于,所述的发生碰撞即认为是两物体之间的距离小于一个预设的阈值的状态。
CN201610210193.2A 2016-04-06 2016-04-06 一种高效的非凸体连续碰撞检测的方法 Pending CN105843778A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610210193.2A CN105843778A (zh) 2016-04-06 2016-04-06 一种高效的非凸体连续碰撞检测的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610210193.2A CN105843778A (zh) 2016-04-06 2016-04-06 一种高效的非凸体连续碰撞检测的方法

Publications (1)

Publication Number Publication Date
CN105843778A true CN105843778A (zh) 2016-08-10

Family

ID=56596868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610210193.2A Pending CN105843778A (zh) 2016-04-06 2016-04-06 一种高效的非凸体连续碰撞检测的方法

Country Status (1)

Country Link
CN (1) CN105843778A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177888A (zh) * 2019-12-09 2020-05-19 武汉光庭信息技术股份有限公司 一种仿真场景碰撞检测方法及系统
CN113074893A (zh) * 2021-03-05 2021-07-06 西安工业大学 一种考虑扫描式测头的受力特性的碰撞检测方法
WO2022126352A1 (zh) * 2020-12-15 2022-06-23 深圳市优必选科技股份有限公司 机器人避障方法及装置、机器人及存储介质

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
XINYU ZHANG等: ""Continuous collision detection for articulated models using taylor models and temporal culling"", 《ACM TRANSACTIONS ON GRAPHICS (TOG). ACM》 *
XINYU ZHANG等: ""Interactive continuous collision detection for non-convex polyhedra"", 《THE VISUAL COMPUTER》 *
XINYU ZHANG等: ""Simple culling methods for continuous collision detection of deforming triangles"", 《IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS》 *
XINYU ZHANG等: "《Mechatronics and Automation (ICMA), 2015 IEEE International Conference on》", 5 August 2015 *
刘丽等: ""基于GJK的凸体快速连续碰撞检测研究"", 《河北科技大学学报》 *
赵伟等: ""基于非线性规划的凸多面体间碰撞检测算法"", 《吉林大学学报(工学版)》 *
金汉均等: ""碰撞检测中计算两凸多面体间最短距离的算法研究"", 《武汉理工大学学报(交通科学与工程版)》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177888A (zh) * 2019-12-09 2020-05-19 武汉光庭信息技术股份有限公司 一种仿真场景碰撞检测方法及系统
CN111177888B (zh) * 2019-12-09 2022-06-17 武汉光庭信息技术股份有限公司 一种仿真场景碰撞检测方法及系统
WO2022126352A1 (zh) * 2020-12-15 2022-06-23 深圳市优必选科技股份有限公司 机器人避障方法及装置、机器人及存储介质
CN113074893A (zh) * 2021-03-05 2021-07-06 西安工业大学 一种考虑扫描式测头的受力特性的碰撞检测方法

Similar Documents

Publication Publication Date Title
Fu et al. An improved A* algorithm for the industrial robot path planning with high success rate and short length
Bokeloh et al. An algebraic model for parameterized shape editing.
Hatton et al. Geometric motion planning: The local connection, Stokes’ theorem, and the importance of coordinate choice
CN103236064B (zh) 一种基于法向量的点云自动配准方法
CN107214701A (zh) 一种基于运动基元库的带电作业机械臂自主避障路径规划方法
CN104460670A (zh) 一种scara机器人运动仿真及远程控制系统及控制方法
CN106584461A (zh) 多约束条件下七自由度仿人机械臂的逆运动学拟人臂构型优化方法
CN105843778A (zh) 一种高效的非凸体连续碰撞检测的方法
CN104899896B (zh) 一种基于子空间特征的多任务学习目标跟踪方法
CN110561421B (zh) 机械臂间接拖动示教方法及装置
CN107085629A (zh) 一种基于视频重建与欧拉模型耦合的流体仿真方法
CN106041928A (zh) 一种基于工件模型的机器人作业任务生成方法
CN106548484A (zh) 基于二维凸包的产品模型散乱点云边界特征提取方法
CN105844672A (zh) 一种多关节模型的快速连续碰撞检测的方法
Kirsanov et al. Discoman: Dataset of indoor scenes for odometry, mapping and navigation
CN107729806A (zh) 基于三维人脸重建的单视图多姿态人脸识别方法
CN105069840A (zh) 一种基于曲率特征的三维正态分布变换点云配准方法
Gayle et al. Constraint-based motion planning of deformable robots
CN103955951B (zh) 基于正则化模板与重建误差分解的快速目标跟踪方法
CN106371442A (zh) 一种基于张量积模型变换的移动机器人控制方法
CN104408292A (zh) 一种动态目标的快速射线追踪方法
CN105279788B (zh) 一种生成物体空间扫掠体的方法
CN113276119B (zh) 一种基于图Wasserstein自编码网络的机器人运动规划方法及系统
CN104112293B (zh) 一种用于隧道环境的射线追踪加速方法
CN103440684B (zh) 一种将球谐光照技术应用于面绘制的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160810

RJ01 Rejection of invention patent application after publication