用于叶片生产线的多层次动态碰撞检测方法及系统的制作方法

文档序号:6328486阅读:165来源:国知局
专利名称:用于叶片生产线的多层次动态碰撞检测方法及系统的制作方法
技术领域
本发明涉及自动化领域,具体而言,涉及一种用于叶片生产线的多层次动态碰撞检测方法及系统。
背景技术
叶片生产线是一个比较复杂的场景,在该场景下既包含静止的物体,又包含运动的物体。为了避免物体之间的碰撞,需要对叶片生产线进行建模与仿真,及时发现物体运动过程中是否存在碰撞,避免实际生产过程中的损失。如大型叶片吊装中的碰撞、车间物流系统中的小车与其它静止物体的碰撞、叶片装夹过程中叶片、数控机床与刀具之间的碰撞寸。目前,复杂场景下的碰撞检测方法主要有静态碰撞检测方法和动态碰撞检测方法两类,动态碰撞检测方法又分为离散碰撞检测方法和连续碰撞检测方法。其中,离散碰撞检测方法将物体的运动路径离散成若干个离散点,在每个离散点上面检测是否存在碰撞。其主要缺点在于检测不具有连续性,若离散点间隔太大,有可能遗漏发生碰撞的时间点,若间隔太小,又会增加检测的时间,不具备实时性。连续碰撞检测方法的研究一般涉及到四维时空问题或结构空间精确的建模,能够很好地解决离散碰撞检测方法存在的问题,如基于扫描体的碰撞检测、基于层次包围盒的检测方法等,但通常计算速度慢。目前针对相关技术的碰撞检测方法不具备实时性以及检测效率低的问题,目前尚未提出有效的解决方案。

发明内容
针对相关技术的碰撞检测方法不具备实时性以及检测效率低的问题,目前尚未提出有效的问题而提出本发明,为此,本发明的主要目的在于提供一种用于叶片生产线的多层次动态碰撞检测方法及系统,以解决上述问题。为了实现上述目的,根据本发明的一个方面,提供了一种用于叶片生产线的多层次动态碰撞检测方法,该用于叶片生产线的多层次动态碰撞检测方法包括获取待检测对象的模型列表,模型列表包括所有静止对象;获取待检测对象中的运动对象的包围盒和一个或多个静止对象的包围盒,通过包围盒投影检测算法获取与运动对象发生碰撞的静止对象,并删除模型列表中未与运动对象发生碰撞的静止对象以获取表面列表;获取运动对象表面和表面列表中静止对象上的待检测表面,通过表面投影检测算法获取待检测表面中与运动对象的表面发生干涉的静止对象的表面,以获取发生干涉的一个或多个第一表面对, 并保存一个或多个第一表面对至表面对列表;获取表面对列表中任意一个第一表面对,通过三角面片投影检测算法获取第一三角面片对,第一三角面片对为发生干涉的两个三角面片,并将第一三角面片对保存至三角面片对列表;获取三角面片对列表中任意一个第一三角面片对,通过精确三角面片检测算法来检测第一三角面片对中的两个三角面片是否发生干涉,根据发生干涉的第一三角面片对来确定发生碰撞的待检测对象。
进一步地,获取待检测对象中的运动对象的包围盒和一个或多个静止对象的包围盒,通过包围盒投影检测算法获取与运动对象发生碰撞的静止对象,并删除模型列表中未与运动对象发生碰撞的静止对象以获取表面列表包括以运动对象包围盒上的一点来创建第一三维坐标系,当运动对象的第一包围盒从A位置运动到B位置时,第一包围盒始终在第一三维坐标系Z轴大于等于零的一侧,且第一三维坐标系的Z轴负方向与运动对象从A位置运动到B位置的方向相同;将第一包围盒和模型列表中满足第一预设条件的一个或多个第二包围盒投影到第一三维坐标系的XOY平面上,以获得第一包围盒投影的第一二维多边形以及一个或多个第二包围盒投影的第二二维多边形,第一预设条件为模型列表中的一个或多个静止对象的第二包围盒位于A位置和B位置之间;当第一二维多边形与任意一个第二二维多边形不发生干涉时,将第二二维多边形所对应的静止对象从模型列表中删除。进一步地,获取运动对象表面和表面列表中静止对象上的待检测表面,通过表面投影检测算法获取待检测表面中与运动对象的表面发生干涉的静止对象的表面,以获取发生干涉的一个或多个第一表面对,并保存一个或多个第一表面对至表面对列表包括以运动对象上的一点来创建第二三维坐标系,当运动对象从A位置运动到B位置时,运动对象始终在第二三维坐标系Z轴大于等于零的一侧,且第二三维坐标系的Z轴负方向与运动对象从A位置运动到B位置的方向相同;将运动对象的每一个表面和表面列表中满足第二预设条件的静止对象的表面投影到第二三维坐标系的XOY平面上,以获得运动对象的一个或多个第一投影表面和满足第二预设条件的静止对象的第二投影表面,第二预设条件为表面列表中的静止对象的表面上的一点位于A位置和B位置之间;当任意一个第一投影表面与第二投影表面发生干涉时,发生干涉的该第一投影表面与第二投影表面构成第一表面对;将获取到的一个或多个第一表面对保存至表面对列表中。进一步地,获取表面对列表中任意一个第一表面对,通过三角面片投影检测算法获取第一三角面片对,第一三角面片对为发生干涉的两个三角面片,并将第一三角面片对保存至三角面片对列表包括获取表面对列表中任意一个第一表面对中的第一表面和第二表面,第一表面为运动对象上的表面,第二表面为静止对象上的表面;以运动对象第一表面上的一点来创建第三三维坐标系,当第一表面从A位置运动到B位置时,第一表面始终在第三三维坐标系Z轴大于等于零的一侧,且第三三维坐标系的Z轴负方向与第一表面从A 位置运动到B位置的方向相同;获取第一表面中组成第一投影表面的一个或多个第一三角面片,以及组成第二表面中第二投影表面的一个或多个第二三角面片,第一三角面片为运动对象上的三角面片,第二三角面片为静止对象上的三角面片;将满足第三预设条件的第一三角面片和第二三角面片投影到第三三维坐标系的XOY平面上,第三预设条件为第一三角面片和第二三角面片上的一点位于A位置和B位置之间;当第一三角面片和第二三角面片的投影发生干涉时,该第一三角面片和第二三角面片构成第一三角面片对;将获取到的一个或多个第一三角面片对保存至三角面片对列表中。进一步地,获取三角面片对列表中任意一个第一三角面片对,通过精确三角面片检测算法来检测第一三角面片对中的两个三角面片是否发生干涉,根据发生干涉的第一三角面片对来确定发生碰撞的待检测对象包括从三角面片对列表中获取第一三角面片对中的第一三角面片和第二三角面片,第一三角面片为运动对象的三角面片,第二三角面片为静止对象的三角面片;当第一三角面片的三条边至少有一条边与第二三角面片在空间中发生干涉时,运动对象与该第二三角面片的静止对象发生碰撞;当第一三角面片的三条边全部未与第二三角面片在空间中发生干涉时,如果第二三角面片位于第一三角面片在Z轴正方向上的一侧,则运动对象与该第二三角面片的静止对象发生碰撞。进一步地,当表面列表、表面对列表或者三角面片对列表中的任一个列表为空时, 运动对象与静止对象不发生碰撞。为了实现上述目的,根据本发明的另一方面,提供了一种用于叶片生产线的多层次动态碰撞检测系统,该用于叶片生产线的多层次动态碰撞检测系统包括接收单元,用于获取待检测对象的模型列表,模型列表包括所有静止对象;第一检测单元,用于获取待检测对象中的运动对象的包围盒和一个或多个静止对象的包围盒,通过包围盒投影检测算法获取与运动对象发生碰撞的静止对象,并删除模型列表中未与运动对象发生碰撞的静止对象以获取表面列表;第二检测单元,用于获取运动对象表面和表面列表中静止对象上的待检测表面,通过表面投影检测算法获取待检测表面中与运动对象的表面发生干涉的静止对象的表面,以获取发生干涉的一个或多个第一表面对,并保存一个或多个第一表面对至表面对列表;第三检测单元,用于获取表面对列表中任意一个第一表面对,通过三角面片投影检测算法获取第一三角面片对,第一三角面片对为发生干涉的两个三角面片,并将第一三角面片对保存至三角面片对列表;第四检测单元,用于获取三角面片对列表中任意一个第一三角面片对,通过精确三角面片检测算法来检测第一三角面片对中的两个三角面片是否发生干涉,根据发生干涉的第一三角面片对来确定发生碰撞的待检测对象。进一步地,第一检测单元包括第一坐标系创建模块,用于以运动对象包围盒上的一点来创建第一三维坐标系,当运动对象的第一包围盒从A位置运动到B位置时,第一包围盒始终在第一三维坐标系Z轴大于等于零的一侧,且第一三维坐标系的Z轴负方向与运动对象从A位置运动到B位置的方向相同;第一投影模块,用于将第一包围盒和模型列表中满足第一预设条件的一个或多个第二包围盒投影到第一三维坐标系的XOY平面上,以获得第一包围盒投影的第一二维多边形以及一个或多个第二包围盒投影的第二二维多边形,第一预设条件为模型列表中的一个或多个静止对象的第二包围盒位于A位置和B位置之间;第一干涉检测模块,用于当第一二维多边形与任意一个第二二维多边形不发生干涉时,将第二二维多边形所对应的静止对象从模型列表中删除。进一步地,第二检测单元包括第二坐标系创建模块,用于以运动对象上的一点来创建第二三维坐标系,当运动对象从A位置运动到B位置时,运动对象始终在第二三维坐标系Z轴大于等于零的一侧,且第二三维坐标系的Z轴负方向与运动对象从A位置运动到B 位置的方向相同;第二投影模块,用于将运动对象的每一个表面和表面列表中满足第二预设条件的静止对象的表面投影到第二三维坐标系的XOY平面上,以获得运动对象的一个或多个第一投影表面和满足第二预设条件的静止对象的第二投影表面,第二预设条件为表面列表中的静止对象的表面上的一点位于A位置和B位置之间;第二干涉检测模块,用于当任意一个第一投影表面与第二投影表面发生干涉时,发生干涉的该第一投影表面与第二投影表面构成第一表面对,并将获取到的一个或多个第一表面对保存至表面对列表中。进一步地,第三检测模块包括第一获取模块,用于获取表面对列表中任意一个第一表面对中的第一表面和第二表面,第一表面为运动对象上的表面,第二表面为静止对象上的表面;第三坐标系创建模块,用于以运动对象的第一表面上的一点来创建第三三维坐标系,当第一表面从A位置运动到B位置时,第一表面始终在第三三维坐标系Z轴大于等于零的一侧,且第三三维坐标系的Z轴负方向与第一表面从A位置运动到B位置的方向相同;第二获取模块,用于获取第一表面中组成第一投影表面的一个或多个第一三角面片,以及第二表面中组成第二投影表面的一个或多个第二三角面片,第一三角面片为运动对象上的三角面片,第二三角面片为静止对象上的三角面片;第三投影模块,用于将满足第三预设条件的第一三角面片和第二三角面片投影到第三三维坐标系的XOY平面上,第三预设条件为第一三角面片和第二三角面片上的一点位于A位置和B位置之间;第三干涉检测模块,用于当第一三角面片和第二三角面片的投影发生干涉时,该第一三角面片和第二三角面片构成第一三角面片对,并将获取到的一个或多个第一三角面片对保存至三角面片对列表中。进一步地,第四检测单元包括第三获取模块,用于从三角面片对列表中获取第一三角面片对中的第一三角面片和第二三角面片,第一三角面片为运动对象的三角面片, 第二三角面片为静止对象的三角面片;第四干涉检测模块,用于当第一三角面片的三条边至少有一条边与第二三角面片在空间中发生干涉时,运动对象与该第二三角面片的静止对象发生碰撞;当第一三角面片的三条边全部未与第二三角面片在空间中发生干涉时,如果第二三角面片位于第一三角面片在Z轴正方向上的一侧,则运动对象与该第二三角面片的静止对象发生碰撞。通过本发明,采用获取待检测对象的模型列表,模型列表包括所有静止对象;获取待检测对象中的运动对象的包围盒和一个或多个静止对象的包围盒,通过包围盒投影检测算法获取与运动对象发生碰撞的静止对象,并删除模型列表中未与运动对象发生碰撞的静止对象以获取表面列表;获取运动对象表面和表面列表中静止对象上的待检测表面,通过表面投影检测算法获取待检测表面中与运动对象的表面发生干涉的静止对象的表面,以获取发生干涉的一个或多个第一表面对,并保存一个或多个第一表面对至表面对列表;获取表面对列表中任意一个第一表面对,通过三角面片投影检测算法获取第一三角面片对,第一三角面片对为发生干涉的两个三角面片,并将第一三角面片对保存至三角面片对列表; 获取三角面片对列表中任意一个第一三角面片对,通过精确三角面片检测算法来检测第一三角面片对中的两个三角面片是否发生干涉,根据发生干涉的第一三角面片对来确定发生碰撞的待检测对象,解决了相关技术的碰撞检测方法不具备实时性以及检测效率低的问题,进而实现了减少碰撞检测的时间,提高了碰撞检测效率的效果。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据本发明实施例的用于叶片生产线的多层次动态碰撞检测系统的结构示意图;图2是根据本发明实施例的包围盒投影检测的示意图;图3是根据本发明实施例的三角面片投影检测的示意图;图4是根据本发明实施例的用于叶片生产线的多层次动态碰撞检测方法的流程图;以及图5是根据本发明实施例的用于叶片生产线的多层次动态碰撞检测方法的详细流程图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。图1是根据本发明实施例的用于叶片生产线的多层次动态碰撞检测系统的结构示意图。如图1所示,该系统包括接收单元10,用于获取待检测对象的模型列表,模型列表包括所有静止对象;第一检测单元30,用于获取待检测对象中的运动对象的包围盒和一个或多个静止对象的包围盒,通过包围盒投影检测算法获取与运动对象发生碰撞的静止对象,并删除模型列表中未与运动对象发生碰撞的静止对象以获取表面列表,该表面列表为模型列表中所有剩余静止对象的表面集合;第二检测单元50,用于获取运动对象表面和表面列表中静止对象上的待检测表面,通过表面投影检测算法获取待检测表面中与运动对象的表面发生干涉的静止对象的表面,以获取发生干涉的一个或多个第一表面对,并保存一个或多个第一表面对至表面对列表;第三检测单元70,用于获取表面对列表中任意一个第一表面对,通过三角面片投影检测算法获取第一三角面片对,第一三角面片对为发生干涉的两个三角面片,并将第一三角面片对保存至三角面片对列表;第四检测单元90,用于获取三角面片对列表中的任意一个第一三角面片对,通过精确三角面片检测算法来检测该第一三角面片对中的两个三角面片是否发生干涉,根据发生干涉的第一三角面片对来确定发生碰撞的待检测对象。本发明涉及到的投影检测算法的基本原理可以描述为在三维空间的直线运动中,如果运动的物体与某一静止物体在运动方向上的投影不相交,则两物体在运动区间内一定不会发生碰撞(其中投影面为穿过运动物体的终点且垂直于运动方向的平面)。本发明上述实施例通过基于投影法的四个检测单元来实现多层次的动态碰撞检测方法包围盒投影、表面投影、三角面片投影以及精确三角面片检测,该方法的基本思想是逐层减少投影不相交的包围盒、表面和三角面片,最大限度地剔除不相交的包围盒、表面和三角面片,尽可能的减少最后精确碰撞检测的三角面片数量,解决了碰撞检测方法不具备实时性以及检测效率低的问题,减少了碰撞检测的时间,提高了碰撞检测效率。本申请上述实施例中的第一检测单元30可以包括第一坐标系创建模块301,用于以运动对象包围盒上的一点来创建第一三维坐标系,当运动对象的第一包围盒从A位置运动到B位置时,第一包围盒始终在第一三维坐标系Z轴大于等于零的一侧,且第一三维坐标系的Z轴负方向与运动对象从A位置运动到B位置的方向相同;第一投影模块302,将第一包围盒和模型列表中满足第一预设条件的一个或多个第二包围盒投影到第一三维坐标系的XOY平面上,以获得第一包围盒投影的第一二维多边形以及一个或多个第二包围盒投影的第二二维多边形,第一预设条件为模型列表中的一个或多个静止对象的第二包围盒位于A位置和B位置之间;第一干涉检测模块303,用于当第一二维多边形与任意一个第二二维多边形不发生干涉时,将第二二维多边形所对应的静止对象从模型列表中删除。具体的,上述实施例的第一检测单元30实现了包围盒投影检测算法,如图2所示,M为运动物体的包围盒,S1、S2、S3、S4、S5为静止物体的包围盒,运动物体M沿路径Zg从A移动到B,在该实施例中的检测包围盒是否碰撞的过程中,首先确定待
1检测物体的模型列表Q,待检测物体的模型列表包括所有静止物体的模型。在得到运动物体与其它静止物体的包围盒之后,系统通过第一坐标系创建模块 301来建立第一三维坐标系(投影坐标系)RF,使投影坐标系的Z轴负方向与物体的运动方向AB相同,投影坐标系的XOY平面与运动方向垂直,并且投影坐标系的原点为运动物体包围盒上的一点,使运动物体的包围盒在ζ ^ 0的一侧。当静止物体的包围盒上存在一点,其Z坐标h满足zAmax时,将这些包围盒投影到XOY平面上,如图2所示,仅需要对M、Si、S2、S3、S4进行投影。其中zAmax为运动物体的包围盒在起点A的Z坐标的最大值(即物体运动区间AB内的所有包围盒)。同时将不满足条件的物体从待检测物体列表Q中删除。如图2右侧所示为包围盒的投影,当所有需要投影的包围盒,即包围盒M、Si、S2、 S3、S4投影到XOY平面(阴影部分为投影平面)时候,系统开始判断投影面上的多边形是否干涉,并将与运动包围盒投影多边形不发生干涉的静止物体从待检测列表Q中删除。这样就可以将S2、S3、S4从待检测物体列表Q中剔除。通过包围盒投影检测,可以将很多不会发生碰撞的静止物体剔除,从而可以减少后续表面投影、三角面片投影所计算的物体对数。本发明上述实施例中的第二检测单元50可以包括第二坐标系创建模块501,用于以运动对象上的一点来创建第二三维坐标系,当运动对象从A位置运动到B位置时,运动对象始终在第二三维坐标系Z轴大于等于零的一侧,且第二三维坐标系的Z轴负方向与运动对象从A位置运动到B位置的方向相同;第二投影模块502,用于将运动对象的每一个表面和表面列表中满足第二预设条件的静止对象的表面投影到第二三维坐标系的XOY平面上,以获得运动对象的一个或多个第一投影表面和满足第二预设条件的静止对象的第二投影表面,第二预设条件为表面列表中的静止对象的表面上的一点位于A位置和B位置之间; 第二干涉检测模块503,用于当任意一个第一投影表面与第二投影表面发生干涉时,发生干涉的该第一投影表面与第二投影表面构成第一表面对,并将获取到的一个或多个第一表面对保存至表面对列表中。具体的,上述实施例的第二检测单元50实现了表面投影检测算法。首先,建立待检测表面列表S,待检测表面列表S是表面列表,即待检测表面为待检测物体列表Q中剩余的所有物体的表面。然后,开始通过第二坐标系创建模块501来建立第二三维坐标系,且第二三维坐标系的ζ轴负方向与物体的运动方向Zg相同,投影坐标系的原点为运动物体上的一点,并且使运动物体在Z ^ O的一侧,并将运动物体的表面以及待检测表面列表S中满足条件的表面进行投影。需要投影的表面满足如下条件在表面上存在一点,其Z坐标^满足 0 ^ Zs ^ zAmax,其中zAmax为运动物体在起点A的Z坐标的最大值。最后,通过第二干涉检测模块503来判断投影多边形是否发生干涉。并记录发生干涉的表面对,将发生干涉的表面对存入集合IS当中,同时将与运动物体表面投影不发生干涉的表面从待检测表面列表S中剔除。本申请上述实施例中的第三检测模块可以包括第一获取模块701,用于获取表面对列表中任意一个第一表面对中的第一表面和第二表面,第一表面为运动对象上的表面,第二表面为静止对象上的表面;第三坐标系创建模块702,用于以运动对象第一表面上的一点来创建第三三维坐标系,当第一表面从A位置运动到B位置时,第一表面始终在第三三维坐标系Z轴大于等于零的一侧,且第三三维坐标系的Z轴负方向与第一表面从A位置运动到B位置的方向相同;第二获取模块,用于获取第一表面中组成第一投影表面的一个或多个第一三角面片,以及第二表面中组成第二投影表面的一个或多个第二三角面片, 第一三角面片为运动对象上的三角面片,第二三角面片为静止对象上的三角面片;第三投影模块704,用于将满足第三预设条件的第一三角面片和第二三角面片投影到第三三维坐标系的XOY平面上,第三预设条件为第一三角面片和第二三角面片上的一点位于A位置和 B位置之间;第三干涉检测模块705,用于当第一三角面片和第二三角面片的投影发生干涉时,该第一三角面片和第二三角面片构成第一三角面片对,并将获取到的一个或多个第一三角面片对保存至三角面片对列表中。具体的上述实施例的第三检测单元70实现了三角面片投影检测算法。如图3所示,在判断集合IS不为空的情况下,从集合IS中获取一对未处理的表面对,假设分别为表面Sm和Ss,其中Sm为运动物体上的表面为静止物体上的表面。该集合IS为表面对列表。建立第三三维坐标系,该第三三维坐标系为一种投影坐标系。投影坐标系的Z轴负方向与物体的运动方向AB相同,投影坐标系的原点为表面Sm上的一点,并且使表面Sm 在ζ > 0的一侧。并通过第三投影模块704将组成表面Sm的三角面片以及组成表面&的三角面片中满足条件的三角面片进行投影。需要投影的三角面片满足如下条件在三角面片上存在一点,其Z坐标zs满足0彡h彡zAmax,其中zAmax为表面Sm在起点A的Z坐标的最大值。通过第三干涉检测模块705来判断投影后投影三角形是否发生干涉,并将发生干涉的三角面片对存入集合IT当中。进一步地,可以判断集合IS中的表面对是否处理完毕, 如果处理完毕,则结束检测过程,否则继续检测表面对列表中的表面对。本申请上述实施例中的第四检测单元90可以包括第三获取模块,用于从三角面片对列表中获取第一三角面片对中的第一三角面片和第二三角面片,其中,该第一三角面片对为运动对象的三角面片,第二三角面片为静止对象的三角面片;第四干涉检测模块 905,用于当第一三角面片的三条边至少有一条边与第二三角面片空间中发生干涉时,运动对象与该第二三角面片的静止对象发生碰撞;当第一三角面片的三条边全部未与第二三角面片在空间中发生干涉时,如果第二三角面片位于第一三角面片在Z轴正方向上的一侧, 则运动对象与该第二三角面片的静止对象发生碰撞。具体的,上述实施例的第四检测单元90实现了精确三角面片检测算法。本领域技术人员可知在两个三角面片的投影相交的情况下,空间中两个三角面片却不一定相交。如图3所示的三角面片投影示意图,其中,黑色四边形为投影面切割物体的切割面,图中两个三角面片ABC和DEF的投影相交,但空间中的三角面片却不相交。因此,本实施例通过精确三角面检测算法对上一步计算发生碰撞的三角面片对进行精确的空间碰撞检测。上述精确三角面片的检测算法中,在集合IT不为空的情况下从集合IT中获取一对未处理过的发生碰撞的三角面片对,假设分别为ABC和DEF,集合IT为三角面片对列表, 其中,A、B、C、D、E、F分别为三角形ABC和DEF的顶点,如图3所示,通过第四干涉检测模块 905来确定三角面片ABC与DEF在运动终点位置是否发生碰撞(只需判断一个三角面片的三个边与另外一个三角面片是否有交点即可)。若发生碰撞,则两个物体发生碰撞,记录发生碰撞的面片对,存入集合IA当中,否则继续下一步。若此时两个三角面片在运动终点位置不发生干涉,则开始判断三角面片DEF在三角面片ABC的哪一侧来检测是否发生碰撞,若三角面片DEF在三角面片ABCz > 0的一侧, 那么两个三角面片发生碰撞,将发生碰撞的面片对存入集合IA当中,若三角面片DEF在三角面片ABCz < 0的一侧,那么两个三角面片不发生碰撞。最后如果集合IT中的三角面片对处理完毕则结束本申请的碰撞检测过程,否则继续执行检测单元的功能。图4是根据本发明实施例的用于叶片生产线的多层次动态碰撞检测方法的流程图,图5是根据本发明实施例的用于叶片生产线的多层次动态碰撞检测方法的详细流程图。如图4所示该方法包括如下步骤步骤S10,通过图1中的接收模块来获取待检测对象的模型列表,该模型列表包括所有静止对象。步骤S30,通过图1中的第一检测单元30获取待检测对象中的运动对象的包围盒和一个或多个静止对象的包围盒,通过包围盒投影检测算法获取与运动对象发生碰撞的静止对象,并删除模型列表中未与运动对象发生碰撞的静止对象以获取表面列表。步骤S50,通过图1中的第二检测单元50获取运动对象表面和表面列表中静止对象上的待检测表面,通过表面投影检测算法获取待检测表面中与运动对象的表面发生干涉的静止对象的表面,以获取发生干涉的一个或多个第一表面对,并保存一个或多个第一表面对至表面对列表。步骤S70,通过图1中的第三检测单元70获取表面对列表中任意一个第一表面对, 通过三角面片投影检测算法获取第一三角面片对,第一三角面片对为两个发生干涉的三角面片对,并将第一三角面片对保存至三角面片对列表。步骤S90,通过图1中的第四检测单元90获取三角面片对列表中任意一个第一三角面片对,通过精确三角面片检测算法来检测第一三角面片对中的两个三角面片是否发生干涉,根据发生干涉的第一三面片对来确定发生碰撞的待检测对象。上述方法实施例结合图4和图5可知,首先进行包围盒投影,并将包围盒投影不发生碰撞的物体剔除;然后将包围盒投影中发生碰撞的物体进行表面投影,并剔除投影不相交的表面;接下来将表面投影中发生碰撞的表面对进行三角面片投影,同时剔除投影不相交的三角面片;最后对三角面片投影中发生碰撞的三角面片对进行精确的碰撞检测,实现了逐层减少投影不相交的碰撞检测包围盒、表面和三角面片,最大限度地剔除不相交的包围盒、表面和三角面片,尽可能的减少最后精确碰撞检测的三角面片数量,解决了碰撞检测方法不具备实时性以及检测效率低的问题,减少了碰撞检测的时间,提高了碰撞检测效率。上述实施例具有以下特性只需检测物体运动区间内的零部件碰撞情况;将三维空间中的碰撞检测问题转化到二维空间来处理,降低了问题的复杂度;通过包围盒投影、表面投影、三角面片投影,逐层剔除不发生碰撞的包围盒、表面和三角面片,减少了最后精确碰撞检测的三角面片数量;将复杂的碰撞检测问题最后归结为空间中三角面片的位置关系问题;与传统的离散碰撞检测方法相比,该方法只需计算一次即可检测出空间运动物体是否发生碰撞。此外,基于轻量化模型,提高了路径规划与仿真的效率,同时便于系统的推广
13与应用。本发明上述步骤SlO具体可以包括建立模型列表,即创建待检测物体列表Q,待检测物体为所有物体的模型。优选地,本发明上述实施例中的步骤S30,获取待检测对象中的运动对象的包围盒和一个或多个静止对象的包围盒,通过包围盒投影检测算法获取与运动对象发生碰撞的静止对象,并删除模型列表中未与运动对象发生碰撞的静止对象包括以运动对象包围盒上的一点来创建第一三维坐标系,当运动对象的第一包围盒从A位置运动到B位置时,第一包围盒始终在第一三维坐标系Z轴大于等于零的一侧,且第一三维坐标系的Z轴负方向与运动对象从A位置运动到B位置的方向相同;将第一包围盒和模型列表中满足第一预设条件的一个或多个第二包围盒投影到第一三维坐标系的XOY平面上,以获得第一包围盒投影的第一二维多边形以及一个或多个第二包围盒投影的第二二维多边形,第一预设条件为模型列表中的一个或多个静止对象的第二包围盒位于A位置和B位置之间;当第一二维多边形与任意一个第二二维多边形不发生干涉时,将第二二维多边形所对应的静止对象从模型列表中删除。本发明上述步骤S30的实施例完成了包围盒投影检测的工作流程,根据图2所示的包围盒投影示意图可知,M为运动物体的包围盒,S1、S2、S3、S4、S5为静止物体的包围盒, 运动物体M沿路径Zg从A移动到B,上述实施例具体包含的步骤如下步骤301 求出模型列表中运动物体与其它静止物体的一个或多个包围盒。步骤302 建立第一三维坐标系,即建立投影坐标系RF,使投影坐标系的Z轴负方向与物体的运动方向Zg相同,投影坐标系的XOY平面与运动方向垂直,并且投影坐标系的原点为运动物体包围盒上的一点,使运动物体的包围盒在Z ^ 0的一侧。步骤303 确定需要投影的包围盒,需要投影的包围盒满足如下条件在包围盒上存在一点,其Z坐标h满足zAmax,其中zAmax为运动物体的包围盒在起点A的 Z坐标的最大值(即物体运动区间AB内的所有包围盒)。同时将不满足条件的物体从待检测物体列表Q中删除。如图2所示,仅需要对M、Si、S2、S3、S4进行投影。步骤304 将所有需要投影的包围盒投影到XOY平面(阴影部分为投影平面)。如图2右侧所示为包围盒的投影。步骤305 判断投影面上的多边形是否干涉,并将与运动包围盒投影多边形不发生干涉的静止物体从待检测列表Q中删除。这样就可以将S2、S3、S4从待检测物体列表Q 中剔除。通过上述包围盒投影检测算法,可以将很多不会发生碰撞的静止物体剔除,从而可以减少后续表面投影、三角面片投影所计算的物体对数。优选地,本发明上述步骤S50,获取运动对象表面和表面列表中的静止对象上的待检测表面,通过表面投影检测算法获取待检测表面中与运动对象的表面发生干涉的静止对象的表面,以获取发生干涉的一个或多个第一表面对,并保存一个或多个第一表面对至表面对列表可以包括以运动对象上的一点来创建第二三维坐标系,当运动对象从A位置运动到B位置时,运动对象始终在第二三维坐标系Z轴大于等于零的一侧,且第二三维坐标系的Z轴负方向与运动对象从A位置运动到B位置的方向相同;将运动对象的每一个表面和表面列表中满足第二预设条件的静止对象的表面投影到第二三维坐标系的XOY平面上,以获得运动对象的一个或多个第一投影表面和满足第二预设条件的静止对象的一个或多个第二投影表面,第二预设条件为表面列表中的静止对象的表面上的一点位于A位置和B位置之间;当任意一个第一投影表面与第二投影表面发生干涉时,该第一投影表面与第二投影表面所对应的表面构成第一表面对;将获取到的一个或多个第一表面对保存至表面对列表中。本发明上述步骤S50的实施例完成了表面投影检测的工作流程,该工作流程具体可以包括如下步骤步骤501 获取表面列表,即建立待检测表面列表S,待检测表面为待检测物体列表Q中剩余的所有物体的表面。步骤502 创建第二三维坐标系,即建立投影坐标系。投影坐标系的Z轴负方向与物体的运动方向Zg相同,投影坐标系的原点为运动物体上的一点,并且使运动物体在Z >0 的一侧。步骤503 将运动物体的表面以及待检测表面列表S中满足条件的表面进行投影。 需要投影的表面满足如下条件在表面上存在一点,其Z坐标ZS满足0 < ZS < zAmax,其中zAmax为运动物体在起点A的Z坐标的最大值。步骤504 判断投影多边形是否发生干涉。并记录发生干涉的表面对,将发生干涉的表面对存入集合IS当中,同时将与运动物体表面投影不发生干涉的表面从待检测表面列表S中剔除。上述实施例获得的集合IS为表面对列表。优选地,本发明上述步骤S70,获取表面对列表中任意一个第一表面对,通过三角面片投影检测算法获取第一三角面片对,第一三角面片对为发生干涉的两个三角面片,并将第一三角面片对保存至三角面片对列表包括获取表面对列表中任意一个第一表面对中的第一表面和第二表面,第一表面为所述运动对象上的表面,第二表面为所述静止对象上的表面;以运动对象第一表面上的一点来创建第三三维坐标系,当第一表面从A位置运动到B位置时,第一表面始终在第三三维坐标系Z轴大于等于零的一侧,且第三三维坐标系的 Z轴负方向与第一表面从A位置运动到B位置的方向相同;获取第一表面中组成第一投影表面的一个或多个第一三角面片,以及第二表面中组成第二投影表面的一个或多个第二三角面片,第一三角面片为运动对象上的三角面片,第二三角面片为静止对象上的三角面片; 将满足第三预设条件的第一三角面片和第二三角面片投影到第三三维坐标系的XOY平面上,第三预设条件为第一三角面片和第二三角面片上的一点位于A位置和B位置之间;当第一三角面片和第二三角面片的投影发生干涉时,该第一三角面片和第二三角面片构成第一三角面片对;将获取到的一个或多个第一三角面片对保存至三角面片对列表中。本发明上述步骤S70的实施例完成了三角面片投影检测的工作流程,该工作流程具体可以包括如下步骤步骤701 判断集合IS是否为空,如果为空,转到步骤707 ;如果不为空,转到步骤 702。该集合IS为步骤S50中获取的表面对列表。步骤702 从集合IS中获取一对未处理的表面对,假设分别为表面Sm和Ss,其中 Sm为运动物体上的表面,Ss为静止物体上的表面。步骤703 建立投影坐标系。投影坐标系的Z轴负方向与物体的运动方向AB相同, 投影坐标系的原点为表面Sm上的一点,并且使表面Sm在ζ > 0的一侧。
步骤704 将组成表面Sm的三角面片以及组成表面&的三角面片中满足条件的三角面片进行投影。需要投影的三角面片满足如下条件在三角面片上存在一点,其Z坐标 zs满足0彡zs彡zAmax,其中zAmax为表面Sm在起点A的Z坐标的最大值。步骤705 判断投影后投影三角形是否发生干涉,并将发生干涉的三角面片对存入集合IT当中。该集合IT为三角面片对列表。步骤706 判断集合IS中的表面对是否处理完毕,如果处理完毕,转到步骤707,否则转到步骤702。步骤707:结束。优选地,本发明上述步骤S90,获取三角面片对列表中任意一个第一三角面片对, 通过精确三角面片检测算法来检测第一三角面片对中的两个三角面片是否发生干涉,根据发生干涉的第一三角面片对来确定发生碰撞的待检测对象包括从三角面片对列表中获取第一三角面片对中的第一三角面片和第二三角面片,其中,第一三角面片为运动对象的三角面片,第二三角面片为静止对象的三角面片;当第一三角面片的三条边至少有一条边与第二三角面片发生干涉时,运动对象与该第二三角面片的静止对象发生碰撞,当第一三角面片的三条边全部未与第二三角面片发生干涉时,如果第二三角面片位于第一三角面片在 Z轴正方向上的一侧,则运动对象与该第二三角面片的静止对象发生碰撞。本发明上述步骤S90的实施例完成了精确三角面片检测的工作流程,根据图3所示的三角面片投影可知,黑色三角形为投影面切割物体的切割面,图中两个三角面片ABC 和DEF的投影相交,但空间中的三角面片却不相交。因此,就必须对上一步计算发生碰撞的三角面片对进行精确的空间碰撞检测。精确三角面片的检测步骤如下步骤901 判断集合IT是否为空,如果为空,转到步骤906,否则,转到步骤902。该集合IT为步骤S70中获取的三角面片对列表。步骤902 从集合IT中获取一对未处理过的发生碰撞的三角面片对,如图3所示, 假设分别为ABC和DEF,其中,A、B、C、D、E、F分别为三角形ABC和DEF的顶点。步骤903 确定三角面片ABC与DEF在运动终点位置是否发生碰撞(只需判断一个三角面片的三个边与另外一个三角面片是否有交点即可)。若发生碰撞,则两个物体发生碰撞,记录发生碰撞的面片对,存入集合IA当中,转到步骤906 ;若不发生碰撞,转到步骤 904。步骤904 判断三角面片DEF在三角面片ABC的那一侧,若三角面片DEF在三角面片ABCz > 0的一侧,那么两个三角面片发生碰撞,将发生碰撞的面片对存入集合IA当中, 转到步骤906 ;若三角面片DEF在三角面片ABCz < 0的一侧,那么两个三角面片不发生碰撞,转到步骤906。步骤905 判断集合IT中的三角面片对是否处理完毕,如果处理完毕,转到步骤 906,否则转到902。步骤906:结束。优选地,如图5所示,当表面列表、表面对列表或者三角面片对列表中的任一个列表为空时,运动对象与静止对象不发生碰撞。具体的是指,当待检测表面列表S为空时,不存在包围盒干涉;当集合IS是否为空时,不存在表面干涉;当集合IT是否为空时,不存在三角面片干涉,因此,会得到当系统处于上述任意一种情况下,运动的叶片与其他静止的物
1体不会发生碰撞,系统停止碰撞检测。优选地,由于最先发生碰撞的表面位于运动物体的前面(运动方向上)和静止物体的背面(运动方向的逆方向上),因此,在上述包围盒投影、表面投影、三角面片投影中, 为了提高计算效率,对于运动物体,只需将法向量与运动方向的夹角α <90°的包围盒表面、物体表面、三角面片进行投影即可,对于静止物体,只需要将法向量与运动方向的夹角 α >90°的包围盒表面、物体表面、三角面片进行投影即可,这样可以减少大约一半的投影、求交计算量。对于运动物体为多个的情况,只需要对每一个物体进行碰撞检测即可。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明应用于叶片生产线中的碰撞检测,如大型叶片吊装中的碰撞检测、车间物流仿真中的小车与其他静止物体的碰撞检测、叶片装夹中的叶片与机床、刀具之间的碰撞检测等。下面以叶片装夹过程为例进行详细的说明步骤1 建立叶片、数控机床、工作台、夹具、刀具的三维模型。步骤2 划分装夹单元,定义装夹顺序。步骤3 对装夹单元、叶片的装夹路径进行规划,并通过上述的技术解决方案对装夹路径的有效性进行验证。叶片是典型的机械零件,广泛地应用于航空、水电、船舶等行业。叶片主要表面形状复杂,多数为空间复杂曲面,夹具和装夹过程比较复杂,通过本发明的碰撞检测方法,及时发现夹具设计、装夹过程中存在的问题,避免造成损失。从以上的描述中,可以看出,本发明实现了如下技术效果通过逐层减少碰撞检测的包围盒、表面和三角面片,最大限度地剔除不相交的包围盒、表面和三角面片,尽可能的减少最后精确碰撞检测的三角面片数量,从而提高碰撞检测的有效性、尽可能地减少了碰撞检测的时间。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种用于叶片生产线的多层次动态碰撞检测方法,其特征在于,包括 获取待检测对象的模型列表,所述模型列表包括所有静止对象;获取待检测对象中的运动对象的包围盒和一个或多个所述静止对象的包围盒,通过包围盒投影检测算法获取与所述运动对象发生碰撞的静止对象,并删除所述模型列表中未与所述运动对象发生碰撞的静止对象以获取表面列表;获取所述运动对象表面和所述表面列表中静止对象上的待检测表面,通过表面投影检测算法获取所述待检测表面中与所述运动对象的表面发生干涉的静止对象的表面,以获取发生干涉的一个或多个第一表面对,并保存所述一个或多个第一表面对至表面对列表;获取所述表面对列表中任意一个所述第一表面对,通过三角面片投影检测算法获取第一三角面片对,所述第一三角面片对为发生干涉的所述两个三角面片,并将所述第一三角面片对保存至三角面片对列表;获取所述三角面片对列表中任意一个所述第一三角面片对,通过精确三角面片检测算法来检测所述第一三角面片对中的两个三角面片是否发生干涉,根据发生干涉的第一三角面片对来确定发生碰撞的所述待检测对象。
2.根据权利要求1所述的方法,其特征在于,获取待检测对象中的运动对象的包围盒和一个或多个所述静止对象的包围盒,通过包围盒投影检测算法获取与所述运动对象发生碰撞的静止对象,并删除所述模型列表中未与所述运动对象发生碰撞的静止对象以获取表面列表包括以所述运动对象包围盒上的一点来创建第一三维坐标系,当所述运动对象的第一包围盒从A位置运动到B位置时,所述第一包围盒始终在所述第一三维坐标系Z轴大于等于零的一侧,且所述第一三维坐标系的Z轴负方向与所述运动对象从A位置运动到B位置的方向相同;将所述第一包围盒和所述模型列表中满足第一预设条件的一个或多个所述第二包围盒投影到所述第一三维坐标系的XOY平面上,以获得所述第一包围盒投影的第一二维多边形以及一个或多个所述第二包围盒投影的第二二维多边形,所述第一预设条件为所述模型列表中的一个或多个所述静止对象的第二包围盒位于所述A位置和B位置之间;当所述第一二维多边形与任意一个所述第二二维多边形不发生干涉时,将所述第二二维多边形所对应的静止对象从所述模型列表中删除。
3.根据权利要求2所述的方法,其特征在于,获取所述运动对象表面和所述表面列表中静止对象上的待检测表面,通过表面投影检测算法获取所述待检测表面中与所述运动对象的表面发生干涉的静止对象的表面,以获取发生干涉的一个或多个第一表面对,并保存所述一个或多个第一表面对至表面对列表包括以所述运动对象上的一点来创建第二三维坐标系,当所述运动对象从A位置运动到B 位置时,所述运动对象始终在所述第二三维坐标系Z轴大于等于零的一侧,且所述第二三维坐标系的Z轴负方向与所述运动对象的表面从A位置运动到B位置的方向相同;将所述运动对象的每一个表面和所述表面列表中满足第二预设条件的静止对象的表面投影到所述第二三维坐标系的XOY平面上,以获得所述运动对象的一个或多个第一投影表面和满足所述第二预设条件的静止对象的第二投影表面,所述第二预设条件为所述表面列表中的静止对象的表面上的一点位于所述A位置和B位置之间;当任意一个所述第一投影表面与所述第二投影表面发生干涉时,发生干涉的该第一投影表面与所述第二投影表面构成所述第一表面对;将获取到的一个或多个所述第一表面对保存至所述表面对列表中。
4.根据权利要求3所述的方法,其特征在于,获取所述表面对列表中任意一个所述第一表面对,通过三角面片投影检测算法获取第一三角面片对,所述第一三角面片对为发生干涉的所述两个三角面片,并将所述第一三角面片对保存至三角面片对列表包括获取所述表面对列表中任意一个所述第一表面对中的第一表面和第二表面,所述第一表面为所述运动对象上的表面,所述第二表面为所述静止对象上的表面;以所述运动对象第一表面上的一点来创建第三三维坐标系,当所述第一表面从A位置运动到B位置时,所述第一表面始终在所述第三三维坐标系Z轴大于等于零的一侧,且所述第三三维坐标系的Z轴负方向与所述第一表面从A位置运动到B位置的方向相同;获取所述第一表面中组成所述第一投影表面的一个或多个第一三角面片,以及所述第二表面中组成所述第二投影表面的一个或多个第二三角面片,所述第一三角面片为运动对象上的三角面片,所述第二三角面片为静止对象上的三角面片;将满足第三预设条件的所述第一三角面片和所述第二三角面片投影到所述第三三维坐标系的XOY平面上,所述第三预设条件为所述第一三角面片和所述第二三角面片上的一点位于所述A位置和B位置之间;当所述第一三角面片和所述第二三角面片的投影发生干涉时,该所述第一三角面片和所述第二三角面片构成所述第一三角面片对;将获取到的一个或多个所述第一三角面片对保存至所述三角面片对列表中。
5.根据权利要求1所述的方法,其特征在于,获取所述三角面片对列表中任意一个所述第一三角面片对,通过精确三角面片检测算法来检测所述第一三角面片对中的两个三角面片是否发生干涉,根据发生干涉的第一三角面片对来确定发生碰撞的所述待检测对象包括从所述三角面片对列表中获取所述第一三角面片对中的所述第一三角面片和所述第二三角面片,所述第一三角面片为运动对象的三角面片,所述第二三角面片为静止对象的三角面片;当所述第一三角面片的三条边至少有一条边与所述第二三角面片在空间中发生干涉时,所述运动对象与该第二三角面片的所述静止对象发生碰撞;当所述第一三角面片的三条边全部未与所述第二三角面片在空间中发生干涉时,如果所述第二三角面片位于所述第一三角面片在Z轴正方向上的一侧,则所述运动对象与该第二三角面片的所述静止对象发生碰撞。
6.根据权利要求1-5中任一项所述的方法,其特征在于,当所述表面列表、表面对列表或者三角面片对列表中的任一个列表为空时,所述运动对象与所述静止对象不发生碰撞。
7.一种用于叶片生产线的多层次动态碰撞检测系统,其特征在于,包括 接收单元,用于获取待检测对象的模型列表,模型列表包括所有静止对象;第一检测单元,用于获取待检测对象中的运动对象的包围盒和一个或多个所述静止对象的包围盒,通过包围盒投影检测算法获取与所述运动对象发生碰撞的静止对象,并删除所述模型列表中未与所述运动对象发生碰撞的静止对象以获取表面列表;第二检测单元,用于获取所述运动对象表面和所述表面列表中静止对象上的待检测表面,通过表面投影检测算法获取所述待检测表面中与所述运动对象的表面发生干涉的静止对象的表面,以获取发生干涉的一个或多个第一表面对,并保存所述一个或多个第一表面对至表面对列表;第三检测单元,用于获取所述表面对列表中任意一个所述第一表面对,通过三角面片投影检测算法获取第一三角面片对,所述第一三角面片对为发生干涉的所述两个三角面片,并将所述第一三角面片对保存至三角面片对列表;第四检测单元,用于获取所述三角面片对列表中任意一个所述第一三角面片对,通过精确三角面片检测算法来检测所述第一三角面片对中的两个三角面片是否发生干涉,根据发生干涉的第一三角面片对来确定发生碰撞的所述待检测对象。
8.根据权利要求7所述的系统,其特征在于,所述第一检测单元包括第一坐标系创建模块,用于以所述运动对象包围盒上的一点来创建第一三维坐标系, 当所述运动对象的第一包围盒从A位置运动到B位置时,所述第一包围盒始终在所述第一三维坐标系Z轴大于等于零的一侧,且所述第一三维坐标系的Z轴负方向与所述运动对象从A位置运动到B位置的方向相同;第一投影模块,用于将所述第一包围盒和所述模型列表中满足第一预设条件的一个或多个所述第二包围盒投影到所述第一三维坐标系的XOY平面上,以获得所述第一包围盒投影的第一二维多边形以及一个或多个所述第二包围盒投影的第二二维多边形,所述第一预设条件为所述模型列表中的一个或多个所述静止对象的第二包围盒位于所述A位置和B位置之间;第一干涉检测模块,用于当所述第一二维多边形与任意一个所述第二二维多边形不发生干涉时,将所述第二二维多边形所对应的静止对象从所述模型列表中删除。
9.根据权利要求8所述的系统,其特征在于,所述第二检测单元包括第二坐标系创建模块,用于以所述运动对象上的一点来创建第二三维坐标系,当所述运动对象从A位置运动到B位置时,所述运动对象始终在所述第二三维坐标系Z轴大于等于零的一侧,且所述第二三维坐标系的Z轴负方向与所述运动对象从A位置运动到B位置的方向相同;第二投影模块,用于将所述运动对象的每一个表面和所述表面列表中满足第二预设条件的静止对象的表面投影到所述第二三维坐标系的XOY平面上,以获得所述运动对象的一个或多个第一投影表面和满足所述第二预设条件的静止对象的第二投影表面,所述第二预设条件为所述表面列表中的静止对象的表面上的一点位于所述A位置和B位置之间;第二干涉检测模块,用于当任意一个所述第一投影表面与所述第二投影表面发生干涉时,发生干涉的该第一投影表面与所述第二投影表面构成所述第一表面对,并将获取到的一个或多个所述第一表面对保存至所述表面对列表中。
10.根据权利要求9所述的系统,其特征在于,所述第三检测模块包括第一获取模块,用于获取所述表面对列表中任意一个所述第一表面对中的第一表面和第二表面,所述第一表面为所述运动对象上的表面,所述第二表面为所述静止对象上的表第三坐标系创建模块,用于以所述运动对象的第一表面上的一点来创建第三三维坐标系,当所述第一表面从A位置运动到B位置时,所述第一表面始终在所述第三三维坐标系Z 轴大于等于零的一侧,且所述第三三维坐标系的Z轴负方向与所述第一表面从A位置运动到B位置的方向相同;第二获取模块,用于获取所述第一表面中组成所述第一投影表面的一个或多个第一三角面片,以及所述第二表面中组成所述第二投影表面的一个或多个第二三角面片,所述第一三角面片为运动对象上的三角面片,所述第二三角面片为静止对象上的三角面片;第三投影模块,用于将满足第三预设条件的所述第一三角面片和所述第二三角面片投影到所述第三三维坐标系的XOY平面上,所述第三预设条件为所述第一三角面片和所述第二三角面片上的一点位于所述A位置和B位置之间;第三干涉检测模块,用于当所述第一三角面片和所述第二三角面片的投影发生干涉时,该所述第一三角面片和所述第二三角面片构成所述第一三角面片对,并将获取到的一个或多个所述第一三角面片对保存至所述三角面片对列表中。
11.根据权利要求10所述的系统,其特征在于,所述第四检测单元包括 第三获取模块,用于从所述三角面片对列表中获取所述第一三角面片对中的所述第一三角面片和所述第二三角面片,所述第一三角面片为运动对象的三角面片,所述第二三角面片为静止对象的三角面片;第四干涉检测模块,用于当所述第一三角面片的三条边至少有一条边与所述第二三角面片在空间中发生干涉时,所述运动对象与该第二三角面片的所述静止对象发生碰撞;当所述第一三角面片的三条边全部未与所述第二三角面片在空间中发生干涉时,如果所述第二三角面片位于所述第一三角面片在Z轴正方向上的一侧,则所述运动对象与该第二三角面片的所述静止对象发生碰撞。
全文摘要
本发明公开了一种用于叶片生产线的多层次动态碰撞检测方法及系统。其中,该方法包括获取待检测对象的模型列表;获取待检测对象中的运动对象的包围盒和静止对象的包围盒,通过包围盒投影检测算法获取表面列表;获取运动对象表面和表面列表中的静止对象上的待检测表面,通过表面投影检测算法获取并保存第一表面对至表面对列表;获取表面对列表中的第一表面对,通过三角面片投影检测算法获取并保存第一三角面片对至三角面片对列表;获取三角面片对列表中的第一三角面片对,通过精确三角面片检测算法来检测第一三角面片对是否发生干涉。通过本发明,能够减少碰撞检测的时间,提高碰撞检测效率。
文档编号G05B17/02GK102393646SQ20111018576
公开日2012年3月28日 申请日期2011年7月5日 优先权日2011年7月5日
发明者崔明辉, 李合增, 田富君, 耿俊浩, 贾晓亮 申请人:西安赛龙航空科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1