一种用于机器人仿真系统的碰撞检测方法与流程

文档序号:15613896发布日期:2018-10-09 20:57阅读:298来源:国知局

本发明涉及涉及计算机图形学和机器人工程技术领域,尤其涉及一种用于机器人仿真系统的碰撞检测方法。



背景技术:

在工业机器人仿真系统中,碰撞检测是基本的,也是十分重要的功能模块。其可以提前检测出运动仿真过程中的碰撞,并给出警告提示。机器人操作人员可以根据这些提示及时修改机器人程序,提高机器人编程的可靠性和效率,避免损坏实际的设备。在机器人运动仿真过程中,每个时刻都会有许多的模型在运动。要保证碰撞检测的实时性,检测速度非常关键。

张义德等《面向工业机器人仿真应用的碰撞检测研究》:采用一种网格覆盖算法,将模型散粒化为大量细小的网格子模型,网格与模型实时跟随,检测时可以快速定位碰撞区域并实现碰撞区域的快速检测,但是网格的建立速度相比传统方法要慢。

郑超超等《焊接机器人工作站仿真系统设计与研究》:将工作站仿真的碰撞分为机器人内部连杆间的碰撞和机器人与周边障碍物的碰撞,并针对二者的差异,分别采用基于距离计算和基于相交判断的方法来处理,但在检测机器人内部连杆间的碰撞时精度较低,检测机器人与外部环境的碰撞时需要使用stl模型文件,存在局限性。

总之,现有技术所存缺点总结如下:

(1)受限于几何模型格式;

(2)碰撞检测数据结构的建立速度较慢;

(3)检测精度较低。



技术实现要素:

本发明为了克服以上现有技术存在的不足,提供了提出一种用于机器人仿真系统的碰撞检测方法,该方法不受限于特定的几何模型,能够较快的建立检测数据结构,并且检测精度较高。

本发明的目的通过以下的技术方案实现:

一种用于机器人仿真系统的碰撞检测方法,包括步骤:

步骤1、首先是处理仿真对象,通过已有三维建模软件对包括机器人基座、连杆及工件的几何模型进行三角剖分处理,得到所述几何模型的三角面片数据;

步骤2、然后通过碰撞检测引擎分析三角面片数据,依次建立各个几何模型对应的检测数据结构;

步骤3、优化所述检测数据结构,选择符合需要的模型配对加入到检测列表中,以降低所需的检测次数并提高检测速度;

步骤4、最后利用所述检测列表中的检测数据结构计算几何模型间的最小距离,通过判断该最小距离是否为0,来判断模型是否发生碰撞。

进一步地,所述的步骤1具体包括:

步骤11、配置所选三维建模软件的开发环境,获得所述三维建模软件api(应用程序开发者接口);

步骤12、调用三维建模软件的接口函数,读取几何模型文件并对模型数据进行三角化处理,得到一组三角面片;

步骤12、遍历所有三角面片,将其三个顶点的坐标数据提取并保存。

进一步地,所述步骤12中,还包括传入线性偏差、角度偏差的步骤,两个参数会影响到处理速度和处理误差。

进一步地,所述的线性偏差为1~10毫米,所述的角度偏差为1~10度,从而满足工业机器人仿真应用的场合。

进一步地,所述的步骤2具体包括:

步骤21、向碰撞检测引擎传入三角面片数据;

步骤22、传入三角面片数据后,通过调用碰撞检测引擎的接口函数,即可生成检测引擎内建的检测数据结构。

进一步地,所述的步骤3具体包括:

手动选择模型配对,即将将操作人员手工所选的模型配对加入到检测列表中供运动仿真时进行检测;

或者,

自动选择模型配对,即当两几何模型的不同时刻的相对位置及姿态发生变化时自动将模型配对加入到检测列表中供运动仿真时进行检测。

进一步地,步骤3中,所述的手动选择模型配对具体包括:

步骤301、遍历当前仿真环境中的所有几何模型,将它所的有可能的配对列成碰撞检测配对表;

步骤302、在运动仿真前,将操作人员根据需要在表中勾选的模型配对加入到检测列表中供运动仿真时进行检测。

进一步地,步骤3中,所述的自动选择模型配对具体包括:

步骤311、将几何模型相对于世界坐标系的位置和姿态用p和r表示,位置和姿态写成4x4的齐次变换矩阵:

其中,表示姿态的r是旋转矩阵,其具有以下性质:

rtr=e或r-1=rt(1‐2)

其中,t表示转置;e表示单位矩阵,利用该性质,将矩阵求逆运算转化为矩阵转置运算,可以节约计算成本。

步骤312、时刻t时,设齐次变换矩阵分别为几何模型一、几何模型二相对于世界坐标系的位置和姿态,则此时两几何模型间的相对位置姿态为:

步骤313、时刻t+δt时,设齐次变换矩阵分别为几何模型一、几何模型二相对于世界坐标系的位置和姿态,则此时两几何模型间的相对位置姿态为:

步骤314、通过比较δm1和δm2来判断两模型的相对位置及姿态是否发生变化,具体通过下式进行比较:

||δm1-δm2||f=0(1‐5)

其中,||·||f是矩阵的f范数,即矩阵所有元素的平方和的平方根;

步骤315、若公式(1‐5)成立时,可得δm1=δm2,即两几何模型的相对位置及姿态在前后两个时刻是相等的,则表示两几何模型的相对位置及姿态没有发生改变,该模型配对将会从检测列表出被删除掉;相反,若δm1≠δm2,则判定两几何模型的相对位置姿态发生改变,则将该模型配对加入检测列表中。

进一步地,步骤3中,在当两几何模型的不同时刻的相对位置及姿态发生变化时自动将模型配对加入到检测列表中供运动仿真时进行检测之前,还包括步骤:

建立检测白名单,所述检测白名单中保存有最小距离始终是0的模型配对,判断两几何模型组成的模型配对是否存在于所述检测白名单中,如果存在,则跳过该模型配对进行另外两个几何模型的检测,如果不存在,则执行所述当两几何模型的不同时刻的相对位置及姿态发生变化时自动将模型配对加入到检测列表中供运动仿真时进行检测的步骤,从而排除不合理的判断。

进一步地,所述最小距离始终是0的模型配对具体是指机器人内部安装在一起且最小距离始终是0的相邻连杆组成的几何模型对。

相比现有技术,本发明的有益效果是:

一、碰撞检测底层的模块,包括模型处理模块和碰撞检测引擎,都是采用的已有的成熟的产品。本算法建立在它们的基础上,模块化的设计使得总体算法可定制性更强,应用范围更广。

二、检测算法中的手动选择模型配对的策略,操作人员可以根据不同的应用场合选择需要检测的配对。这样使得模型配对的检测更有针对性,同时也更高效。

三、检测算法中的自动选择模型配对的策略,算法自行维护一个检测列表和一个检测白名单。通过判断模型配对的相对位置和姿态是否发生改变,决定是否检测该模型配对。同样使得模型配对的检测更有针对性,更高效。

附图说明

图1为发明实施例的碰撞检测方法的基本步骤图。

图2为发明实施例的手动选择模型配对时的碰撞检测配对表。

图3为本发明实施例的几何模型相对运动示意图(其中δt是运动仿真中相邻两帧的时间间隔)。

具体实施方式

下面结合附图和具体实施例对本发明的发明目的作进一步详细地描述,实施例不能在此一一赘述,但本发明的实施方式并不因此限定于以下实施例。

如图1所示,一种用于机器人仿真系统的碰撞检测方法,包括步骤:

步骤1、首先是处理仿真对象,通过已有三维建模软件(如occt)对包括机器人基座、连杆及工件的几何模型进行三角剖分处理,得到所述几何模型的三角面片数据;

步骤2、然后通过碰撞检测引擎(如pqp碰撞检测库)分析三角面片数据,依次建立各个几何模型对应的检测数据结构;

步骤3、优化所述检测数据结构,选择符合需要的模型配对加入到检测列表中,以降低所需的检测次数并提高检测速度;

步骤4、最后利用所述检测列表中的检测数据结构计算几何模型间的最小距离,通过判断该最小距离是否为0,来判断模型是否发生碰撞。

具体而言,所述的步骤1具体包括:

步骤11、配置所选三维建模软件的开发环境,获得所述三维建模软件api(应用程序开发者接口);

步骤12、调用三维建模软件的接口函数,读取几何模型文件并对模型数据进行三角化处理,得到一组三角面片,读取过程中,三维建模软件一般会作一些处理,将模型数据转化为其内部的数据结构,之后,调用相应的接口函数对模型数据进行三角化处理,这个过程需要传入一些参数,如线性偏差、角度偏差,这两个参数会影响到处理速度和处理误差。针对工业机器人仿真应用的场合,所述的线性偏差为1~10毫米,所述的角度偏差为1~10度;

步骤12、遍历所有三角面片,将其三个顶点的坐标数据提取并保存。

具体而言,目前,碰撞检测引擎大都是以三角面片数据作为输入的,所述的步骤2具体包括:

步骤21、向碰撞检测引擎传入三角面片数据;

步骤22、传入三角面片数据后,通过调用碰撞检测引擎的接口函数,即可生成检测引擎内建的检测数据结构。

具体而言,碰撞检测引擎一般只提供成对的几何模型间的碰撞检测,对于大量几何模型的场合,为了降低所需的检测次数,提高检测速度,需要有一定的优化策略,本实施例采用两种方式优化所述检测数据结构,即所述的步骤3具体包括:

手动选择模型配对,即将将操作人员手工所选的模型配对加入到检测列表中供运动仿真时进行检测;

或者,

自动选择模型配对,即当两几何模型的不同时刻的相对位置及姿态发生变化时自动将模型配对加入到检测列表中供运动仿真时进行检测。

具体而言,步骤3中,所述的手动选择模型配对具体包括:

步骤301、遍历当前仿真环境中的所有几何模型,将它所的有可能的配对列成碰撞检测配对表;

步骤302、在运动仿真前,将操作人员根据需要在表中勾选的模型配对加入到检测列表中供运动仿真时进行检测。

打了勾的模型配对会被加入到检测列表中,在运动仿真时,只需对该检测列表中的模型配对进行检测即可。如图2所示,打勾的模型1、模型2这对模型将会被加入检测列表,并在运动仿真时进行碰撞检测,其余则不会在运动仿真时进行碰撞检测。

具体而言,步骤3中,所述的自动选择模型配对具体包括:

步骤311、将几何模型相对于世界坐标系的位置和姿态用p和r表示,位置和姿态写成4x4的齐次变换矩阵:

其中,表示姿态的r是旋转矩阵,其具有以下性质:

rtr=e或r-1=rt(1‐2)

其中,t表示转置;e表示单位矩阵,利用该性质,将矩阵求逆运算转化为矩阵转置运算,可以节约计算成本。

步骤312、如图3所示,时刻t时,设齐次变换矩阵分别为几何模型一、几何模型二相对于世界坐标系的位置和姿态,则此时两几何模型间的相对位置姿态为:

步骤313、时刻t+δt时,设齐次变换矩阵分别为几何模型一、几何模型二相对于世界坐标系的位置和姿态,则此时两几何模型间的相对位置姿态为:

步骤314、通过比较δm1和δm2来判断两模型的相对位置及姿态是否发生变化,具体通过下式进行比较:

||δm1-δm2||f=0(1‐5)

其中,||·||f是矩阵的f范数,即矩阵所有元素的平方和的平方根;

步骤315、若公式(1‐5)成立时,可得δm1=δm2,即两几何模型的相对位置及姿态在前后两个时刻是相等的,则表示两几何模型的相对位置及姿态没有发生改变,该模型配对将会从检测列表出被删除掉;相反,若δm1≠δm2,则判定两几何模型的相对位置姿态发生改变,则将该模型配对加入检测列表中。

可以看出,进行自动选择模型配对时,检测列表自行维护,无需人工干预。也就是说,自动选择模型配对时要自动判断哪些模型配对需要被检测,而哪些模型配对不需被检测,并将需要检测的模型配对加入到检测列表中。判断模型配对是否需要被检测的依据,是该模型配对中的两个几何模型是否发生了相对运动。

具体而言,步骤3中,在当两几何模型的不同时刻的相对位置及姿态发生变化时自动将模型配对加入到检测列表中供运动仿真时进行检测之前,还包括步骤:

建立检测白名单,所述检测白名单中保存有最小距离始终是0的模型配对,所述最小距离始终是0的模型配对具体是指机器人内部安装在一起且最小距离始终是0的相邻连杆组成的几何模型对。判断两几何模型组成的模型配对是否存在于所述检测白名单中,如果存在,则跳过该模型配对进行另外两个几何模型的检测,如果不存在,则执行所述当两几何模型的不同时刻的相对位置及姿态发生变化时自动将模型配对加入到检测列表中供运动仿真时进行检测的步骤,从而排除不合理的判断。

由于检测时是根据模型配对的最小距离是否为0判断模型是否发生碰撞的,而在机器人内部,相邻连杆因为安装在一起,它们的最小距离始终是0。如果将其判定为发生了碰撞,则不合理。为了避免这种情况,在检测过程中再引入一个检测白名单。在检测每个模型配对前,先判断该模型配对是否存在于检测白名单中,如果存在则跳过该模型配对的检测,如果不存在则进行检测,从而进一步使得模型配对的检测更有针对性,更高效、精度更高。

本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1