CN104156520B - 一种基于直线投影的凸多面体碰撞检测方法 - Google Patents

一种基于直线投影的凸多面体碰撞检测方法 Download PDF

Info

Publication number
CN104156520B
CN104156520B CN201410373161.5A CN201410373161A CN104156520B CN 104156520 B CN104156520 B CN 104156520B CN 201410373161 A CN201410373161 A CN 201410373161A CN 104156520 B CN104156520 B CN 104156520B
Authority
CN
China
Prior art keywords
convex
polyhedron
projection
convex polyhedron
face
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.)
Expired - Fee Related
Application number
CN201410373161.5A
Other languages
English (en)
Other versions
CN104156520A (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.)
Harbin Engineering University
Original Assignee
Harbin Engineering 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 Harbin Engineering University filed Critical Harbin Engineering University
Priority to CN201410373161.5A priority Critical patent/CN104156520B/zh
Publication of CN104156520A publication Critical patent/CN104156520A/zh
Application granted granted Critical
Publication of CN104156520B publication Critical patent/CN104156520B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)

Abstract

本发明涉及一种基于直线投影的凸多面体碰撞检测方法,步骤1:输入两凸多面体顶点集;步骤2:输入两凸多面每个面的顶点索引;步骤3:利用中心线正投影分离检测方法检测两凸多面体是否分离,如果分离,转步骤10,否则,进入步骤4;步骤4:计算两凸多面体的面摩擦值;步骤5:按面摩擦值降序原则构造相向面集合;步骤6:将相向面集中的棱边取出,构造投影分离线簇,投影分离线簇个数为λ,令k=0;步骤7:如果k=λ,则转步骤10,否则令k=k+1,将凸多面体沿第k条棱在坐标平面做投影;步骤8:提取投影边界获得凸多边形;步骤9:判断凸多边形是否相交,如果分离,转步骤10,否则,转步骤7;步骤10:输出分离或碰撞结果。

Description

一种基于直线投影的凸多面体碰撞检测方法
技术领域
本发明涉及一种基于直线投影的凸多面体碰撞检测方法。
背景技术
碰撞检测在计算机图形学、虚拟装配、系统仿真、机器人路径设计等领域都有广泛的应用。由于任意物体均可表示成凸多面体的组合,因此实时准确的凸多面体碰撞检测方法对于复杂环境下多个物体的碰撞检测具有重要意义。
现有凸多面体碰撞检测方法多采用包围盒法、基于图形硬件的方法、线性规划法或分离面法等。现有凸多面体碰撞检测方法存在的不足之处在于:一是不能满足任意凸多面体碰撞检测的要求,二是碰撞检测过程中不能实时准确的给出检测结果,例如分离面法,通过凸多面体向二维坐标平面投影的方法,将3D空间凸多面体的相交问题转换为2D平面凸多边形的相交问题,但是该方法的前提是凸多面体的某个面恰能作为分离面,但当发生碰撞的点均位于各自凸多面体的某棱边,该算法失效。三是计算复杂,计算量大,例如分离面法中,传统构造分离面法实现凸多面体分离,难度大、算法复杂、计算量大。
发明内容
本发明目的在于提供一种基于直线投影的凸多面体碰撞检测方法,可适用任意凸多面体碰撞检测,并且检测实时、快速、准确。
实现本发明目的技术方案:
一种基于直线投影的凸多面体碰撞检测方法,其特征在于:
步骤1:输入两凸多面体VA,VB顶点集:VA(A1,A2,…An),VB(B1,B2,…Bm);
步骤2:输入两凸多面体VA,VB每个面的顶点索引,两凸多面体VA,VB的面数分别为j,l.;
步骤3:利用中心线正投影分离检测方法检测两凸多面体是否分离,如果分离,转步骤10,否则,进入步骤4;
步骤4:计算两凸多面体的面摩擦值;
步骤5:按面摩擦值降序原则构造相向面集合;
步骤6:将相向面集中的棱边取出,构造投影分离线簇,投影分离线簇个数为λ,令
k=0;
步骤7:如果k=λ,则转步骤10,输出碰撞结果,否则令k=k+1,将凸多面体沿第k条棱在坐标平面做投影;
步骤8:提取投影边界获得凸多边形;
步骤9:判断步骤8获得的凸多边形是否相交,如果分离,转步骤10,否则,转步骤7;
步骤10:输出分离或碰撞结果。
步骤3中,若2个凸多面体VA,VB的中心分别为CA,CB,直线CACB的参数方程为y=(1-t)CA+tCB.分别过2个凸多面体的顶点Pi作线段CACB的垂线,则垂足的参数为:ti=(1-t)CA+tCB,i=1,2,…,n,n+1,…,n+m;
其中,当1≤i≤n时,Pi=Ai;当n+1≤i≤n+m时,Pi=Bi,设VA,VB在中心线向量CACB上的投影区间为(tAmin,tAmax),(tBmin,tBmax),若tAmax<tBmin或tBmax<tAmin时,则判断两个凸多面体分离。
步骤4中,凸多面体VA,VB的每个面分别为AFiBFiAFiBFi上的外单位法向量分别为ANiBNi,两凸多面体间中心向量为CACB或CBCA,则面AFi的摩擦值AIi为, BFi的摩擦值BIi为,凸多面体VA的面摩擦值集合为{AIi}={AIi|i=1,2,…,j},凸多面体VB的面摩擦值集合为{BIi}={BIi|i=1,2,…,l})。
步骤5中,按摩擦值降序从VA,VB面集{AFi},{BFi}中分别取出j1,l1个面,构成了相向面集{ABFi}。
步骤6中,将相向面集{ABFi}中的棱边取出,构造投影分离线簇{ABEi|i=1,2,…,λ}。
步骤8中,具体包括以下步骤,
步骤8.1:计算凸多面体顶点沿空间直线在坐标面的投影;
步骤8.2:利用快速排序法将所有投影顶点横坐标由小到大排序;
步骤8.3:根据凸包上边界线斜率下降准则,构造上边界;
步骤8.4:根据凸包下边界线斜率上升准则,构造完下边界;
步骤8.5:将上、下边界连接最终形成凸多边形。
本发明具有的有益效果:
本发明以直线投影为基础,针对分离面算法提出改进,首先通过中心线上的正投影剔除不可能发生碰撞的凸多面体,其次通过寻找凸多面体上的棱边构造投影线分离线簇,联系了三维凸多面体和二维平面多边形以及一维线段的相交检测关系,通过有限次投影运算和相交检测即可得出凸多面体碰撞检测结果,将投影线分离法成功运用到二维凸多边形的碰撞检测和最近距离计算。与现有凸多面体碰撞检测方法相比,本发明具有可适用任意凸多面体碰撞检测,并且检测实时、快速、准确的优点。
本发明改进了以往的凸多面体碰撞检测方法,黎自强在《计算机辅助设计与图形学学报》中提出“凸多面体快速碰撞检测的投影分离算法”(简称投影分离面法),该方法将某一凸多面体表面作为分离面,并且沿着该表面与坐标平面的交线方向投影,通过投影的相交性判断空间凸多面体相交性,但当两凸多面体处于棱相交,棱对点相交时,凸多面体表面无法作为分离面,因此该方法失效。本发明改进投影分离面法,提出投影分离线的概念,沿着投影分离线向坐标平面作投影可将空间凸多面体的碰撞检测降维为平面多边形碰撞检测问题,本发明支持将凸多面体棱线作为投影分离线并且给出构造投影分离线簇的方法,通过投影分离线簇实现降维相交测试,实现凸多面体碰撞检测。
本发明对于任意复杂形状和任意相对位置的凸多面体均能实时准确的给出碰撞检测结果,且成功将基于直线的投影分离算法应用到凸多边形的碰撞检测和最近距离求解。
本发明应用面广,针对任何物体均可由凸多面体组合近似,因此本发明提出的一种基于直线投影的凸多面体碰撞检测方法可以应用到机器人路径规划、卫星仓布局优化设计、虚拟装配等诸多领域。
附图说明
图1本发明基于直线投影的凸多面体碰撞检测方法流程图;
图2凸多边形边界形成示意图;
图3凸多面体投影线分离示意图;
图4凸多边形投影线分离示意图。
具体实施方式
如图1所示,本发明基于直线投影的凸多面体碰撞检测方法包括以下步骤:
步骤1:输入两凸多面体VA,VB顶点集:VA(A1,A2,…An),VB(B1,B2,…Bm);
步骤2:输入两凸多面体VA,VB每个面的顶点索引,两凸多面体VA,VB的面数分别为j,l.;
步骤3:利用中心线正投影分离检测方法检测两凸多面体是否分离,如果分离,转步骤10,否则,进入步骤4;
利用中心线上的正投影判断2个凸多面体分离,加快分离检测。若2个凸多面体VA,VB的中心分别为CA,CB,直线CACB的参数方程为y=(1-t)CA+tCB.分别过2个凸多面体的顶点Pi作线段CACB的垂线,则垂足的参数为:ti=(1-t)CA+tCB,i=1,2,…,n,n+1,…,n+m;
其中,当1≤i≤n时,Pi=Ai;当n+1≤i≤n+m时,Pi=Bi,设VA,VB在中心线向量CACB上的投影区间为(tAmin,tAmax),(tBmin,tBmax),若tAmax<tBmin或tBmax<tAmin时,则判断两个凸多面体分离。
步骤4:计算两凸多面体的面摩擦值;
凸多面体VA,VB的每个面分别为AFiBFiAFiBFi上的外单位法向量分别为ANiBNi,两凸多面体间中心向量为CACB或CBCA,则面AFi的摩擦值 BFi的摩擦值凸多面体VA的面摩擦值集合为{AIi}={AIi|i=1,2,…,j},凸多面体VB的面摩擦值集合为{BIi}={BIi|i=1,2,…,l})。
步骤5:按面摩擦值降序原则构造相向面集合;
按摩擦值降序从VA,VB面集{AFi},{BFi}中分别取出j1,l1个面,构成了相向面集{ABFi}。
步骤6:将相向面集{ABFi}中的棱边取出,构造投影分离线簇{ABEi|i=1,2,…,λ},投影分离线簇个数为λ,应注意筛选,避免重复投影,减少计算量。令k=0;
步骤7:如果k=λ,则转步骤10,输出碰撞结果,否则令k=k+1,选取第k条投影分离线lk(ak,bk,ck),将凸多面体在所选分离线在坐标系上作投影。以凸多面体VA为例,将VA沿着投影分离线lB(ai,bi,ci)在坐标系上作投影,如图3所示。其中点Ai(xi,yi,zi)在坐标系xoz平面上投影顶点为A′i(x′i,y′i,z′i),计算公式为:
若ai≠0,Ai沿lB向坐标平面yoz作投影;若ci≠0,Ai沿lB向坐标平面xoy作投影。
步骤8:提取投影边界获得凸多边形;
由于凸多面体在坐标系上的投影区域边界为凸多边形,因此需要根据投影顶点集提取投影凸多边形,如图2所示,
步骤8.1:按照公式(1)计算凸多面体顶点沿空间直线在坐标面的投影,如图2中(a)图所示;
步骤8.2:利用快速排序法将所有投影顶点横坐标由小到大排序,此时同一横坐标可能对应多个顶点,如图2中(b)图所示;
步骤8.3:根据凸包上边界线斜率下降准则,如图2中(c)图所示,图示顶点构成第一条棱边AB,下一个顶点为C,位于棱AB的左侧,则与准则冲突并从上边集中剔除B,将C加入上边集,同理删除D保留E,如果同一横坐标对应多个顶点,则选取纵坐标值最大的点。最终构造上边界,如图2中(d)图所示。
步骤8.4:根据凸包下边界线斜率上升准则,构造完下边界,如图2中(e)图所示;
步骤8.5:将上、下边界连接最终形成凸多边形,如图2中(f)图所示
步骤9:判断步骤8获得的凸多边形是否相交,如果分离,转步骤10,否则,转步骤7
如图4所示,将凸多面体投影分离法应用到凸多边形,将凸多边形相向面上的棱边作为投影分离线簇,再将凸多边形沿投影分离线向坐标轴作投影(如果投影分离线与所投影坐标轴平行,则改向另一坐标轴作投影)即可由投影区域πAB的相交性得出凸多边形是否相交,由于凸多边形的投影分离原理与凸多面体类似,因此不再详述。
当凸多边形分离时,凸多边形PA,PB间的最短距离h′与投影区域的最短距离h″满足:
h′=h″|cosβ|
其中,β为投影分离线lA与坐标轴的夹角,如图4所示。若h″>0,凸多边形分离,可判定凸多面体分离
步骤10:输出分离或碰撞结果。

Claims (6)

1.一种基于直线投影的凸多面体碰撞检测方法,其特征在于:
步骤1:输入两凸多面体VA,VB顶点集:VA(A1,A2,…An),VB(B1,B2,…Bm);
步骤2:输入两凸多面体VA,VB每个面的顶点索引,两凸多面体VA,VB的面数分别为j,l;
步骤3:利用中心线正投影分离检测方法检测两凸多面体是否分离,如果分离,转步骤10,否则,进入步骤4;
步骤4:计算两凸多面体的面摩擦值;
步骤5:按面摩擦值降序原则构造相向面集合;
步骤6:将相向面集中的棱边取出,构造投影分离线簇,投影分离线簇个数为λ,令
k=0;
步骤7:如果k=λ,则转步骤10,输出碰撞结果,否则令k=k+1,将凸多面体沿第k条棱在坐标平面做投影;
步骤8:提取投影边界获得凸多边形;
步骤9:判断步骤8获得的凸多边形是否相交,如果分离,转步骤10,否则,转步骤7;
步骤10:输出分离或碰撞结果。
2.根据权利要求1所述的基于直线投影的凸多面体碰撞检测方法,其特征在于:步骤3中,若2个凸多面体VA,VB的中心分别为CA,CB,直线CACB的参数方程为y=(1-t)CA+tCB,分别过2个凸多面体的顶点Pi作线段CACB的垂线,则垂足的参数为:ti=(1-t)CA+tCB,i=1,2,…,n,n+1,…,n+m;
其中,当1≤i≤n时,Pi=Ai;当n+1≤i≤n+m时,Pi=Bi,设VA,VB在中心线向量CACB上的投影区间为(tAmin,tAmax),(tBmin,tBmax),若tAmax<tBmin或tBmax<tAmin时,则判断两个凸多面体分离。
3.根据权利要求2所述的基于直线投影的凸多面体碰撞检测方法,其特征在于:步骤4中,凸多面体VA,VB的每个面分别为AFiBFiAFiBFi上的外单位法向量分别为ANiBNi,两凸多面体间中心向量为CACB或CBCA,则面AFi的摩擦值AIi为, BFi的摩擦值BIi为,凸多面体VA的面摩擦值集合为{AIi}={AIi|i=1,2,…,j},凸多面体VB的面摩擦值集合为{BIi}={BIi|i=1,2,…,l}。
4.根据权利要求3所述的基于直线投影的凸多面体碰撞检测方法,其特征在于:步骤5中,按摩擦值降序从VA,VB面集{AFi},{BFi}中分别取出j1,l1个面,构成了相向面集{ABFi}。
5.根据权利要求4所述的基于直线投影的凸多面体碰撞检测方法,其特征在于:步骤6中,将相向面集{ABFi}中的棱边取出,构造投影分离线簇{ABEi|i=1,2,…,λ}。
6.根据权利要求5所述的基于直线投影的凸多面体碰撞检测方法,其特征在于:步骤8中,具体包括以下步骤,
步骤8.1:计算凸多面体顶点沿空间直线在坐标面的投影;
步骤8.2:利用快速排序法将所有投影顶点横坐标由小到大排序;
步骤8.3:根据凸包上边界线斜率下降准则,构造上边界;
步骤8.4:根据凸包下边界线斜率上升准则,构造完下边界;
步骤8.5:将上、下边界连接最终形成凸多边形。
CN201410373161.5A 2014-07-31 2014-07-31 一种基于直线投影的凸多面体碰撞检测方法 Expired - Fee Related CN104156520B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410373161.5A CN104156520B (zh) 2014-07-31 2014-07-31 一种基于直线投影的凸多面体碰撞检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410373161.5A CN104156520B (zh) 2014-07-31 2014-07-31 一种基于直线投影的凸多面体碰撞检测方法

Publications (2)

Publication Number Publication Date
CN104156520A CN104156520A (zh) 2014-11-19
CN104156520B true CN104156520B (zh) 2017-04-12

Family

ID=51882018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410373161.5A Expired - Fee Related CN104156520B (zh) 2014-07-31 2014-07-31 一种基于直线投影的凸多面体碰撞检测方法

Country Status (1)

Country Link
CN (1) CN104156520B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105512377B (zh) 2015-11-30 2017-12-12 腾讯科技(深圳)有限公司 实时虚拟场景中圆柱碰撞体与凸体碰撞探测的方法和系统
CN106127764B (zh) * 2016-06-22 2019-01-25 东软集团股份有限公司 Svg图形碰撞检测方法及装置
CN107336230B (zh) * 2017-05-09 2020-05-05 浙江工业大学 一种基于投影和距离判断的工业机器人碰撞预测方法
CN108733065B (zh) * 2017-09-29 2021-06-04 北京猎户星空科技有限公司 一种机器人的避障方法、装置及机器人
JP7500947B2 (ja) * 2019-10-17 2024-06-18 オムロン株式会社 干渉評価装置、方法、及びプログラム
CN112060087B (zh) * 2020-08-28 2021-08-03 佛山隆深机器人有限公司 一种用于机器人抓取场景的点云碰撞检测方法
CN112287058B (zh) * 2020-11-05 2021-06-15 重庆市规划和自然资源信息中心 一种通过云计算智能检测用地红线的工作方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739713A (zh) * 2008-11-14 2010-06-16 上海电机学院 一种基于剖分的并行碰撞检测方法
CN102609321A (zh) * 2012-01-30 2012-07-25 华南理工大学 基于K_DOPs快速连续碰撞检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7580035B2 (en) * 2006-12-28 2009-08-25 Intel Corporation Real-time collision detection using clipping

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739713A (zh) * 2008-11-14 2010-06-16 上海电机学院 一种基于剖分的并行碰撞检测方法
CN102609321A (zh) * 2012-01-30 2012-07-25 华南理工大学 基于K_DOPs快速连续碰撞检测方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
凸多面体快速碰撞检测的投影分离算法;黎自强;《计算机辅助设计与图形学学报》;20100430;第22卷(第4期);639-646 *
判断两个凸多面体是否相交的一个快速算法;任世军等;《软件学报》;20000430;第11卷(第4期);563-568 *
基于凸多面体剖分的并行碰撞检测算法;薛广涛等;《上海交通大学学报》;20040831;第38卷(第8期);1385-1388 *

Also Published As

Publication number Publication date
CN104156520A (zh) 2014-11-19

Similar Documents

Publication Publication Date Title
CN104156520B (zh) 一种基于直线投影的凸多面体碰撞检测方法
EP3096263B1 (en) Human body orientation recognition method and system based on two-lens camera
Jia et al. 3d-based reasoning with blocks, support, and stability
CN101763636B (zh) 视频序列中的三维人脸位置和姿态跟踪的方法
Romero-Ramire et al. Fractal markers: A new approach for long-range marker pose estimation under occlusion
CN103942824B (zh) 一种三维点云直线特征提取方法
CN106295460B (zh) 人的检测方法及设备
CN104063677B (zh) 用于估计人体姿态的设备和方法
KR101514731B1 (ko) 인간 모델의 3차원 공간 데이터를 이용한 포즈 인식 시스템 및 그 방법
CN102609992A (zh) 基于三角网格变形体的自碰撞检测方法
Zapata-Impata et al. Using geometry to detect grasping points on 3D unknown point cloud
Chen et al. Survey on 6D pose estimation of rigid object
Wang et al. Real-time hand posture recognition based on hand dominant line using kinect
JP2016014954A (ja) 手指形状の検出方法、そのプログラム、そのプログラムの記憶媒体、及び、手指の形状を検出するシステム。
CN107680154A (zh) 基于视图的体素几何参数提取方法
CN104143209A (zh) 基于线画图案的三维模型雕刻方法
Li et al. Accurate and fast 3D head pose estimation with noisy RGBD images
CN104050689A (zh) 一种虚拟场景中可视物体的二维裁剪生成方法
Caron et al. Neural network fusion of color, depth and location for object instance recognition on a mobile robot
Ueda et al. Hand pose estimation using multi-viewpoint silhouette images
CN102393827A (zh) 一种基于连续法向锥剔除的柔性场景连续碰撞检测方法
Liu et al. Continuous visibility feature
Lingtao et al. Object viewpoint classification based 3D bounding box estimation for autonomous vehicles
Asif et al. Model-free segmentation and grasp selection of unknown stacked objects
Zhang et al. A fast manhattan frame estimation method based on normal vectors

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170412

CF01 Termination of patent right due to non-payment of annual fee