一种基于ROS平台的机器人喷涂轨迹生成方法与流程

文档序号:14675913发布日期:2018-06-12 21:29阅读:252来源:国知局

本发明属于机器人喷涂技术领域,提供了一种基于ROS平台的机器人喷涂轨迹生成方法。



背景技术:

目前,机器人在喷涂行业已得到广泛应用。使用机器人进行喷涂作业主要有两种方式生成机器人的喷涂轨迹:在线示教和离线编程。传统的在线示教方法,即由操作人员通过拖动机械臂来指定机器人的运动轨迹,不仅会占用大量的人力物力,而且存在效率低、耗时长、精度差、不够安全等问题。同时,当喷涂工件更换时,需要重新对新的工件进行示教。这对于那些生产小批量、多品种工件的企业,尤其是一些资金实力有限的中小企业来说是非常不利的;使用离线编程的方式来获取喷涂轨迹主要是通过将工件的三维模型导入到仿真平台,再根据模型自身的几何特征规划喷涂轨迹,现有的离线编程方式来获取喷涂轨迹需要大量的人工参与,自动化程度不高,占用大量机器人实际投入使用的时间,而且需要耗费大量的人力才能完成。



技术实现要素:

本发明实施例提供一种基于ROS平台的机器人喷涂轨迹生成方法,旨在解决通过现有的离线编程方式来获取喷涂轨迹,自动化程度不高的问题。

本发明是这样实现的,一种基于ROS平台的机器人喷涂轨迹生成方法,所述方法包括如下步骤:

S1、将工件的stl模型导入到Rviz软件中,读取stl模型中的三角网格信息,包括顶点坐标及对应的法向向量;

S2、基于三角面片之间的连续性对stl模型进行区域分割,分割成n个区域;

S3、将指定的相邻分割区域融合成一个喷涂组件;

S4、获取喷涂组件的最小包围盒,最小包围盒的是指将喷涂组件完全包围的最小立方体;

S5、以最小包围盒的任一截面作为标定面,生成一组平行于标定面的平面簇,其中任意两平面间的距离为d

S6、按平面簇中各平面的排列顺序,依次获取每个平面与喷涂组件三角网格的交点,并将交点依次连接,形成一条条喷涂行程;

S7、在每条喷涂行程两端的反向延长线上分别添加一轨迹点,将前一喷涂行程末端对应的轨迹点与后一喷涂行程起点对应的轨迹点进行直线连线,即形成为喷涂轨迹。

进一步的,所述步骤S2具体包括如下步骤:

将stl模型划分的所有三角面片设于集合Rs中,从集合Rs任选一个三角面片t1,将位于三角面片t1所在区域A1的所有三角面片t1r添加到集合Ts,将区域A1中的所有三角面片t1r从集合Rs中剔除;

从集合Rs任选第二个三角面片t2,将三角面片t2所在区域A2的所有三角面片t2r添加到集合Ts,将区域A2中的所有三角面片t2r从集合Rs中剔除;

以此类推,直至从集合Rs任选第n个三角片面tn,将位于第n个三角片面所在区域An的所有三角面片tnr添加到集合Ts,集合Rs变为空集。

进一步的,三角面片tm所在区域Am的所有三角面片tmr的获取方法包括如下步骤:

从集合Rs中查找与三角面片tmg0共边的子三角面片tmg1,判断各个子三角面片tmg1是否满足条件T1和条件T2,将满足条件T1和条件T2的子三角面片tmg1′添加到集合Ts中,并将子三角面片tmg1′从集合Rs中删除,三角面片tmg0即为三角面片tm,且m∈[1,n];

从集合Rs中查找与三角面片tmg1′片共边的子三角面片tmg2,判断各个子三角面片tmg2是否满足条件T3和条件T4,将满足条件T3和条件T4的子三角面片tmg2′添加到集合Ts中,并将子三角面片tmg2′从集合Rs中删除;

以此类推,直至三角面片tmgi′共边的子三角面片tmg(i+1)均不满足条件T2i+1和/或条件T2i+2,则tmg1′、tmg2′…tmgi′的集合即组成三角面片tm所在区域所有三角面片tmr;其中,条件T2i+1及条件T2i+2分别表示如下:

条件T2i+1:三角面片tmgi与子三角面片tmg(i+1)间的二面角γ1小于阈值α;

条件T2i+2:二面角γ1与二面角γ0的差值大于阈值β,其中,γ0为三角面片tmgi与父三角面片tmg(i-1)间的二面角,其中,i为自然数,且三角片面tmg0父三角平面即为三角片面tmg0。

进一步的,所述最小包围盒的获取方法包括如下步骤:

S41、计算每个顶点p所在三角面片的面积之和sum(ΔS1,ΔS2,…,ΔSk),其中,ΔS1,ΔS2,…,ΔSk分别为顶点p所在k个三角面片的面积,

S42、并计算顶点p的权重ωp=sum(ΔS1,ΔS2,…,ΔSk)/k;

S43、计算所有顶点的权重均值及协方差矩阵,其中,权重均值为协方差矩阵为其中n是顶点的个数,pi是顶点p的坐标;

S44、根据权重均值及协方差矩阵,计算特征向量v1,v2,v3,将特征向量作为最小包围盒主轴方向;

S45、将所有顶点分别在三个主轴上进行投影,获取包围各顶点投影点的最小立方体,即为最小包围盒。

进一步的,其特征在于,在步骤S6之后包括:

S8、对每条喷涂行程进行平滑处理。

进一步的,喷涂行程平滑处理过程具体如下步骤:

S81、在喷涂行程上取N个点,N个点均匀分布在喷涂行程上;

S82、依次计算连续三个相邻点构成的圆的半径r;

S83、若判断曲率1/r大于设定阈值,则剔除中间点;

S84、将与剔除点相邻的两个点连成直线作。

进一步的,半径的计算方法具体如下:

其中,v12=p2-p1,v23=p3-p2,v13=p3-p1,p1是指连续三个相连点中第一个点的坐标,p2是指连续三个相连点中第二个点的坐标、p3是指连续三个相连点中第三个点的坐标。

进一步的,在步骤S7之后还包括:

S9依次对每条喷涂行程进行喷涂,喷涂方法具体包括如下步骤:

S91、将每一条喷涂行程等分成t条子喷涂行程;

S92、依次对每条子喷涂行程进行喷涂。

进一步的,子行程的喷涂方法包括如下步骤:

将子行程分解为一组轨迹点;

沿喷涂曲面在每个轨迹点的法向方向偏移高度h作为喷涂位置的起点,沿子喷涂行程的路径喷涂至下一个轨迹点,以轨迹点的切向及法向的反向分别作为TCP姿态的x和z方向。

本发明实施例提供的基于ROS平台的机器人喷涂轨迹生成方法具有如下

有益效果:

1、只需人工设定部分参数,即可自动生成机器人喷涂轨迹,人工参与少,自动化程度高,无需占用大量机器人实际投入使用的时间,提高工作效率。

2、基于最小包围盒来规划喷涂行程,以使规划的喷涂行程最短,节省涂料;

3、通过外延线进行两喷涂行程间的切换,喷涂涂层厚度均匀。

4、实现Linux系统的ROS平台下stl模型的喷涂轨迹规划,ROS是专业的开发机器相关软件的框架,使用该框架开发的软件,如模型显示软件Rviz、运动规划软件MoveIt等,都是完全开源且免费的,可以方便地对软件源码进行修改以实现期望的效果,极大地缩短了开发周期、降低了研发成本。

附图说明

图1为本发明实施例提供的基于ROS平台的机器人喷涂轨迹生成方法的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为本发明实施例提供的基于ROS平台的机器人喷涂轨迹生成方法的流程图,该方法包括如下步骤:

S1、将工件的stl模型导入到Rviz软件中,读取stl模型中的三角网格信息,三角网格信息包括顶点坐标及对应的法向向量;

S2、基于三角面片之间的连续性对stl模型进行区域分割,分割成n个区域;

由于stl模型无法对工件模型边缘及表面进行提取,因此下一步需要对stl模型进行区域分割,在本发明实施例中,

步骤S2包括如下步骤:

将stl模型划分的所有三角面片设于集合Rs中,从集合Rs任选一个三角面片t1,将位于三角面片t1所在区域A1的所有三角面片t1r添加到集合Ts,将区域A1中的所有三角面片t1r从集合Rs中剔除;

从集合Rs任选第二个三角面片t2,将三角面片t2所在区域A2的所有三角面片t2r添加到集合Ts,将区域A2中的所有三角面片t2r从集合Rs中剔除;

以此类推,直至从集合Rs任选第n个三角片面tn,将位于第n个三角片面所在区域An的所有三角面片tnr添加到集合Ts,集合Rs变为空集。

在本发明实施例中,三角面片tm所在区域Am的所有三角面片tmr的获取方法包括如下步骤:

从集合Rs中查找与三角面片tmg0(tmg0即为tm)共边的子三角面片tmg1,且m∈[1,n],判断各个子三角面片tmg1是否满足条件T1和条件T2,将满足条件T1和条件T2的子三角面片tmg1′添加到集合Ts中,并将子三角面片tmg1′从集合Rs中删除,即满足提条件T1和条件T2的三角面片tmg1′即为与三角面片tm在同一区域的三角面片,反之,说明其与三角面片tm不在同一区域,因此,这部分三角面片应扔放置于集合Rs中;

从集合Rs中查找与三角面片tmg1′片共边的子三角面片tmg2,判断各个子三角面片tmg2是否满足条件T3和条件T4,将满足条件T3和条件T4的子三角面片tmg2′添加到集合Ts中,并将子三角面片tmg2′从集合Rs中删除;

以此类推,直至三角面片tmgi′共边的子三角面片tmg(i+1)均不满足条件T2i+1和/或条件T2i+2,则tmg1′、tmg2′…tmgi′的集合即组成三角面片tm所在区域所有三角面片tmr,其中,条件T2i+1及条件T2i+2分别表示如下:

条件T2i+1:三角面片tmgi与子三角面片tmg(i+1)间的二面角γ1小于阈值α;

条件T2i+2:二面角γ1与二面角γ0的差值大于阈值β,其中,γ0为三角面片tmgi与父三角面片tmg(i-1)间的二面角,其中,i为自然数,且三角片面tmg0父三角平面即为三角片面tmg0。

S3、通过相邻分割区域间的三角面片的融合,将各指定的相邻分割区域连接成一个喷涂组件;

S4、获取喷涂组件的最小包围盒,最小包围盒的是指将喷涂组件完全包围的最小立方体;

对stl所有三角面片的顶点进行主成分分析(PCA),将顶点最为密集的三个方向作为三个特征向量,构成最小包围盒的三个主轴方向。

最小包围盒具体包括如下步骤:

S41、计算每个顶点p所在三角面片的面积之和sum(ΔS1,ΔS2,…,ΔSk),其中,ΔS1,ΔS2,…,ΔSk分别为顶点p所在k个三角面片的面积,

S42、并计算顶点p的权重ωp=sum(ΔS1,ΔS2,…,ΔSk)/k;

S43、计算所有顶点的权重均值及协方差矩阵,其中,权重均值为协方差矩阵为其中n是顶点的个数,pi是顶点p的坐标;

S44、根据权重均值及协方差矩阵,计算特征向量v1,v2,v3,将特征向量作为最小包围盒主轴方向;

S45、将所有顶点分别在三个主轴上进行投影,获取包围各顶点投影点的最下立方体,即为最小包围盒。

S5、以最小包围盒的任一截面作为标定面,生成一组平行于标定面的平面簇,其中任意两平面间的距离为d,其中两相邻平面间的间距为d是基于录入的喷涂行程间距d来设定的。

S6、按平面簇中各平面的排列顺序,依次获取每个平面与喷涂组件三角网格的交点,并将交点依次连接,形成一条条喷涂行程;

S7、在每条喷涂行程两端的反向延长线上分别添加一轨迹点,将前一喷涂行程末端对应的轨迹点与后一喷涂行程起点对应的轨迹点进行直线连线,即形成为喷涂轨迹。

在本发明实施例中,在步骤S6之后还包括:

S8、对每条喷涂行程进行平滑处理;

在本发明实施例中,喷涂行程平滑处理过程具体如下步骤:

S81、在喷涂行程上取N个点,N个点均匀分布在喷涂行程上;

S82、依次计算连续三个相邻点构成的圆的半径r;

在本发明实施例中,半径的计算方法具体如下:

其中,v12=p2-p1,v23=p3-p2,v13=p3-p1,p1是指连续三个相连点中第一个点的坐标,p2是指连续三个相连点中第二个点的坐标、p3是指连续三个相连点中第三个点的坐标。

S83、若判断曲率1/r大于设定阈值,则剔除中间点;

S84、将与中间点相邻的两个点连成直线。

在本发明实施例中,步骤S7或步骤S8之后还包括:

S9依次对每条喷涂行程进行喷涂,喷涂方法具体包括如下步骤:

S91、将每一条喷涂行程等分成t条子喷涂行程;

S92、依次对每条子喷涂行程进行喷涂;

子行程的喷涂方法包括如下步骤:

将子行程分解为一组轨迹点;

沿喷涂曲面在每个轨迹点的法向方向偏移高度h作为喷涂位置的起点,沿子喷涂行程的路径喷涂至下一个轨迹点,以轨迹点的切向及法向的反向分别作为TCP姿态的x和z方向,y方向则通过右手法则求得。

本发明实施例提供的基于ROS平台的机器人喷涂轨迹生成方法具有如下

有益效果:

1、只需人工设定部分参数,即可自动生成机器人喷涂轨迹,人工参与少,自动化程度高,无需占用大量机器人实际投入使用的时间,提高工作效率。

2、基于最小包围盒来规划喷涂行程,以使规划的喷涂行程最短,节省涂料;

3、通过外延线进行两喷涂行程间的切换,喷涂涂层厚度均匀。

4、实现Linux系统的ROS平台下stl模型的喷涂轨迹规划,ROS是专业的开发机器相关软件的框架,使用该框架开发的软件,如模型显示软件Rviz、运动规划软件MoveIt等,都是完全开源且免费的,可以方便地对软件源码进行修改以实现期望的效果,极大地缩短了开发周期、降低了研发成本。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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