首页 / 专利库 / 工业自动化和数控机床 / 示教器 / 一种燃气轮机部件曲面喷涂轨迹算法

一种燃气轮机部件曲面喷涂轨迹算法

阅读:211发布:2022-02-03

专利汇可以提供一种燃气轮机部件曲面喷涂轨迹算法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种 燃气轮机 部件曲面 喷涂 轨迹 算法 ,所述曲面喷涂轨迹算法包括以下步骤:初始分区所有轨迹点的 喷枪 与部件的距离为最优状态;再通过算法将初始分割的曲面按最优喷涂间距分割成更多的喷涂区域,形成所有的喷涂轨迹点;通过空间插补算法计算出这些轨迹点的坐标以及 姿态 旋转信息,以确保在轨迹点空间坐标正确,最后 机器人 通过算法计算出的信息依次行走这些轨迹点,来完成喷涂;喷涂的层与层之间所有轨迹偏移1/2轨迹间距,以保证涂层层与层之间波峰、波谷被更好地 覆盖 ;本发明通过一种燃气轮机部件曲面喷涂轨迹算法,防止机器人与 工件 碰撞,提高喷涂效率,并不会对部件造成损伤,提高喷涂的 质量 。,下面是一种燃气轮机部件曲面喷涂轨迹算法专利的具体信息内容。

1.一种燃气轮机部件曲面喷涂轨迹算法,使用6轴关节机器人对部件曲面进行喷涂,其特征在于:所述曲面喷涂轨迹算法包括以下步骤:
1)、初始分区:取任意曲面上垂直的竖向截线,在该竖向截线上截取n个点,再每一个点上画取一条横向截线,将每个横向截线分割成m个点,并形成多个区域;
2)、采集分区:将机器人喷枪的喷射点垂直于部件表面,并保持最优距离,采集步骤1中形成分割点的空间坐标信息、姿态旋转四元数信息及所有点的轴配置信息,分别录入不同结构体中并将通过数据转换算法进行校准;
3)、区域分割轨迹点:通过算法对步骤1中的区域进行分割,保证分割份数为偶数个,得到机器人的喷涂轨迹点;
4)、计算机器人最佳行走轨迹点:对轨迹点坐标和姿态旋转信息的空间插补算法,得出机器人最佳行走轨迹;
5)、喷涂:执行喷涂工作;
6)、喷涂优化:每喷涂偶数变时,喷涂层与喷涂层之间进行轨迹偏移。
2.根据权利要求1所述的一种燃气轮机部件曲面喷涂轨迹算法,其特征在于:所述步骤
1的具体流程如下:初始分区:取任意曲面上垂直的竖向截线,在该截线上取n个点本进行编号,该截线被点分割成n-1条线段,保证每条竖向线段接近于平面,再以n个点为起始点延伸n条横向截线,将每根横向截线分别选取m个点,分割成m条线段,保证每条横向线段接近于平面,将曲面工共标记了n*m个点(P11-Pmn),共形成m*(n-1)个近似平面区域。
3.根据权利要求1所述的一种燃气轮机部件曲面喷涂轨迹算法,其特征在于:所述步骤
2的具体流程如下:采集:通过机器人示教器将A中的点录入系统中,根据点调整机器人的姿态,使机器人上喷枪的喷射点垂直于部件表面,并与部件保持最优距离,将形成的n*(m-1)个点的空间坐标信息(X、Y、Z)和姿态旋转四元数信息(q1、q2、q3)及所有点的轴配置信息分别储存在机器人系统中的robtarget结构体中,通过算法校准后,将校准后的数据存储到一个名为BN_Teach的robtarget结构体中,并将数据存储存三种不同种类的位置信息中,即一个TBC_position结构体数组用来储存所有点的坐标信息,一个TBC_orient结构体数组用来储存所有点的姿态信息,一个TBC_conf结构体数组用来储存所有点的轴配置信息;BN_Teach是校准的所有点的信息,通过数据转换算法:循环m*n次分别将BN_Teach中的信息调用出来,使得数据转换后的数组中的数据排列是P11、P12…P1n、P21、P22…P2n、Pm1…Pmn;
所述数据转换算法如下:循环m*n次分别将BN_Teach中的信息调用出来。
4.根据权利要求1所述的一种燃气轮机部件曲面喷涂轨迹算法,其特征在于:所述步骤
3的具体流程如下:区域分割轨迹点:算法通过最优喷涂间距对每个区域进行分割,保证分割后区域份数为偶数个,得到机器人所有的喷涂轨迹点,机器人按该轨迹点进行行走喷涂,n:竖向初始分区点,m:横向初始分区点,l{n}:所有相邻线段的距离;LAve:所有相邻线段距离的平均值;StartStep:起始测试间距取3mm;NAve:计算的分割份数;s{n}:每根相邻线段经过Nave分割后的间距;
Pmx{n}:存放(Pm1…Pmn)的x轴坐标数据,
P(m+1)x{n}:存放(P(m+1)1…P(m+1)n)的x轴坐标数据,
Pmy{n}:存放(Pm1…P1mn)的y轴坐标数据,
P(m+1)y{n}:存放(P(m+1)1…P(m+1)n)的y轴坐标数据,
Pmz{n}:存放(Pm1…Pmn)的y轴坐标数据,
P(m+1)z{n}:存放(P(m+1)1…P(m+1)n)的y轴坐标数据,
所述计算步骤如下:
1)、计算所有相邻线段的距离存放于l{n}数组中;
2)、计算所有相邻线段距离的平均值LAve;
3)、执行分割份数计算循环,使用起始测试间距计算分割的份数,并且取整数,若为奇数则分割份数自动减1;
NAve=Lave/StartStep;
4)、计算每根相邻线段经过NAve分割后的间距s{n};
s{n}=l{n}/Nave;
5)、判断所有的s{n}是否有超过最佳间距5mm的情况,超过则将StartStep-0.1后重新从步骤3开始执行循环,直至所有线段的间距都在最优范围内。
5.根据权利要求1所述的一种燃气轮机部件曲面喷涂轨迹算法,其特征在于:所述步骤
4中轨迹点坐标和姿态旋转信息的空间插补算法:
1)、计算X、Y、Z坐标相邻两个点的增量和微分;计算如下:
n:竖向初始分区点,m:横向初始分区点,
DeltaX{n}:相邻两点X方向的增量,
DeltaY{n}:相邻两点Y方向的增量,
DeltaZ{n}:相邻两点Z方向的增量,
l{n}:相邻两点之间的间距,
dx{n}:X方向的微分,
dy{n}:Y方向的微分,
dz{n}:Z方向的微分,
增量计算公式为:
DeltaX{n}:=P(m+1)x{n}-Pmx{n},
DeltaY{n}:=P(m+1)y{n}-Pmy{n},
DeltaY{n}:=P(m+1)y{n}-Pmy{n},
微分计算公式为:
dx{n}=DeltaX{n}/l{n},
dy{n}=DeltaY{n}/l{n},
dz{n}=DeltaZ{n}/l{n};
2)、计算两点的线性差值修正系数,相邻两点的线性差值修正系数,修正系数是通过相邻两点四元数的乘积来判断,若>0,则系数为1,若<0,则系数为-1;
n:竖向初始分区点,m:横向初始分区点,
qaqb{n}:相邻两点四元数乘积;
LerpCorrectie{n}:相邻两点的线性差值修正系数。
Pmq1{n}:存放(Pm1…Pmn)的四元数q1数据,
Pmq2{n}:存放(Pm1…Pmn)的四元数q2数据,
Pmq3{n}:存放(Pm1…Pmn)的四元数q3数据,
Pmq4{n}:存放(P11…P1n)的四元数q4数据,
P(m+1)q1{n}:存放(P(m+1)1…P(m+1)n)的四元数q1数据,
P(m+1)q2{n}:存放(P(m+1)1…P(m+1)n)的四元数q2数据,
P(m+1)q3{n}:存放(P(m+1)1…P(m+1)n)的四元数q3数据,
P(m+1)q4{n}:存放(P(m+1)1…P(m+1)n)的四元数q4数据,
计算公式如下:
qaqb{n}=P(m+1)q1{n}×Pmq1{n}+P(m+1)q2{n}×Pmq2{n}+P(m+1)q3{n}×Pmq3{n}+P(m+1)q4{n}×Pmq4{n},若qaqb{n}>0,则LerpCorrectie=1;若qaqb{n}<0,则LerpCorrectie=-1;
3)、计算q1、q2、q3四元数的增量;
n:竖向初始分区点,m:横向初始分区点,
Deltaq1{n}:相邻两点四元数q1的增量,
Deltaq2{n}:相邻两点四元数q2的增量,
Deltaq3{n}:相邻两点四元数q3的增量,
Deltaq4{n}:相邻两点四元数q4的增量,
LerpCorrectie{n}:相邻两点的线性差值修正系数,
计算公式如下:
Deltaq1{n}=LerpCorrectie{n}×P(m+1)q1{n}-Pmq1{n},
Deltaq2{n}=LerpCorrectie{n}×P(m+1)q2{n}-Pmq2{n},
Deltaq3{n}=LerpCorrectie{n}×P(m+1)q3{n}-Pmq3{n},
Deltaq4{n}=LerpCorrectie{n}×P(m+1)q4{n}-Pmq4{n},
4)、计算当前所行走的NAve轨迹线上的所有点的坐标X、Y、Z信息;
n:竖向初始分区点,m:横向初始分区点,
PNx{n}:当前所行走的NAve轨迹线上的所有点的x轴坐标信息;
PNy{n}:当前所行走的NAve轨迹线上的所有点的y轴坐标信息;
PNz{n}:当前所行走的NAve轨迹线上的所有点的z轴坐标信息;
j:当前所行走第几条NAve轨迹线;
dx{n}:X方向的微分,
dy{n}:Y方向的微分,
dz{n}:Z方向的微分,
计算公式如下:
PNx{n}=Pmx{n}+dx{n}×s{n}×(j-1),
PNy{n}=Pmy{n}+dy{n}×s{n}×(j-1),
PNz{n}=Pmz{n}+dz{n}×s{n}×(j-1);
5)、计算当前所行走的NAve轨迹线上的所有点的坐标X、Y、Z信息,
n:竖向初始分区点,上文解释过;
PNq1{n}:当前所行走的NAve轨迹线上的所有点四元数q1信息;
PNq2{n}:当前所行走的NAve轨迹线上的所有点四元数q2信息;
PNq3{n}:当前所行走的NAve轨迹线上的所有点四元数q3信息;
PNq4{n}:当前所行走的NAve轨迹线上的所有点四元数q4信息;
j:当前所行走第几条NAve轨迹线;
计算公式如
下:
6)、通过上述空间插补算法将分割后所有轨迹点的坐标信息和姿态旋转信息全部计算出来,计算出的数据为机器人最佳行走轨迹。
6.根据权利要求1所述的一种燃气轮机部件曲面喷涂轨迹算法,其特征在于:所述步骤
5的具体流程如下:喷涂:根据上述算法,所有的曲面分割点全部计算完,只需要一次执行运行轨迹点指令,就可完成部件曲面的喷涂,可以调节所有m*(n-1)个区域的运行速度,以达到控制每一区域涂层厚度的目的,理论上,所分的区域越小,喷涂的厚度越均匀。
7.根据权利要求1所述的一种燃气轮机部件曲面喷涂轨迹算法,其特征在于:所述步骤
6的具体流程如下:喷涂优化:每次在喷涂偶数遍的时,喷枪移动时相邻轨迹之间距离不变,但是在层与层之间所有轨迹偏移1/2的最佳轨迹间距s{n},保证层与层之间波峰和波谷被更好地覆盖
8.根据权利要求3所述的一种燃气轮机部件曲面喷涂轨迹算法,其特征在于:所述喷枪与部件保持的最优距离,是根据不同的喷枪和不同的喷涂粉末对应的工艺中的最佳距离,其距离为70-150mm。

说明书全文

一种燃气轮机部件曲面喷涂轨迹算法

技术领域

[0001] 本发明属于机器人喷涂领域,具体涉及一种燃气轮机部件曲面喷涂轨迹算法。

背景技术

[0002] 燃气轮机的部件在非常恶劣条件下工作,它们长期暴露在超高温、蠕变、腐蚀化、高周疲劳等环境下,如果没有适当的治疗,零件会很快磨损,在某些情况下,它们在使用中只能持续几秒钟。在零件表面喷涂合适的涂层可以用来显著减少磨损,从而使部件能够在各种恶劣环境下使用更长的时间;喷涂根据涂层在部件上的位置分为扩散涂层和表面涂层,扩散涂层时将涂层渗透到部件内部,而表面涂层是将涂层喷涂到部件的表面以达到防护的作用,本技术主要应用于表面涂层;涂层的厚度是涂层的各项质量参数中比较重要的一项,如果涂层过厚会容易破裂,过薄又无法起到保护的作用;现在一般表面喷涂都是使用喷涂设备搭载6轴关节机器人进行全自动喷涂,机器人自动喷涂不但可以保证作业人员的人身安全,对喷涂后涂层的质量和重复性也有保证。机器人喷涂轨迹的算法就变成喷涂中比较重要的环节,有了合适的算法才能使机器人在不损坏部件的情况下,达到标准的涂层质量;影响涂层质量有两个关键因素喷涂轨迹之间的间距和喷枪与部件表面的间距。喷涂轨迹之间的间距一般在5mm以内为最优,喷枪与部件表面的间距也有固定的最优距离(例如大气等离子喷涂是90-150mm,超音速火焰喷涂是200-280mm);在对普通平面进行喷涂时,喷涂间距和喷枪与部件的间距都比较好保证,只需要调整好喷枪和部件的间距后对X或者Y方向平移最优的喷涂间距就可以实现。但是当对曲面喷涂,特别是封闭式的复杂曲面喷涂时,以上两个关键因素都不容易保证,所以喷涂后的涂层质量也无法保证,并且很容易发生机器人关节对部件的碰撞事故。

发明内容

[0003] 发明目的:本发明的目的是为了解决现有技术中的不足,提供一种燃气轮机部件曲面喷涂轨迹算法,使用6轴关节机器人对部件曲面进行喷涂,所述曲面喷涂轨迹算法包括以下步骤:
[0004] 1)、初始分区:取任意曲面上垂直的竖向截线,在该竖向截线上截取n个点,再每一个点上画取一条横向截线,将每个横向截线分割成m个点,并形成多个区域;
[0005] 2)、采集分区:将机器人喷枪的喷射点垂直于部件表面,并保持最优距离,采集步骤1中形成分割点的空间坐标信息、姿态旋转四元数信息及所有点的轴配置信息,分别录入不同结构体中并将通过数据转换算法进行校准;
[0006] 3)、区域分割轨迹点:通过算法对步骤1中的区域进行分割,保证分割份数为偶数个,得到机器人的喷涂轨迹点;
[0007] 4)、计算机器人最佳行走轨迹点:对轨迹点坐标和姿态旋转信息的空间插补算法,得出机器人最佳行走轨迹;
[0008] 5)、喷涂:执行喷涂工作;
[0009] 6)、喷涂优化:每喷涂偶数变时,喷涂层与喷涂层之间进行轨迹偏移。
[0010] 进一步的,所述步骤1的具体流程如下:初始分区:取任意曲面上垂直的竖向截线,在该截线上取n个点本进行编号,该截线被点分割成n-1条线段,保证每条竖向线段接近于平面,再以n个点为起始点延伸n条横向截线,将每根横向截线分别选取m个点,分割成m条线段,保证每条横向线段接近于平面,将曲面工共标记了n*m个点(P11-Pmn),共形成m*(n-1)个近似平面区域;
[0011] 进一步的,所述步骤2的具体流程如下:采集:通过机器人示教器将A中的点录入系统中,根据点调整机器人的姿态,使机器人上喷枪的喷射点垂直于部件表面,并与部件保持最优距离,将形成的n*(m-1)个点的空间坐标信息(X、Y、Z)和姿态旋转四元数信息(q1、q2、q3)及所有点的轴配置信息分别储存在机器人系统中的robtarget结构体中,通过算法校准后,将校准后的数据存储到一个名为BN_Teach的robtarget结构体中,并将数据存储存三种不同种类的位置信息中,即一个TBC_position结构体数组用来储存所有点的坐标信息,一个TBC_orient结构体数组用来储存所有点的姿态信息,一个TBC_conf结构体数组用来储存所有点的轴配置信息;BN_Teach是校准的所有点的信息,通过数据转换算法:循环m*n次分别将BN_Teach中的信息调用出来,使得数据转换后的数组中的数据排列是P11、P12…P1n、P21、P22…P2n、Pm1…Pmn;所述数据转换算法如下:循环m*n次分别将BN_Teach中的信息调用出来。
[0012] 进一步的,所述步骤3的具体流程如下:区域分割轨迹点:算法通过最优喷涂间距对每个区域进行分割,保证分割后区域份数为偶数个,得到机器人所有的喷涂轨迹点,机器人按该轨迹点进行行走喷涂,n:竖向初始分区点,m:横向初始分区点,l{n}:所有相邻线段的距离;LAve:所有相邻线段距离的平均值;StartStep:起始测试间距取3mm;NAve:计算的分割份数;s{n}:每根相邻线段经过Nave分割后的间距;
[0013] Pmx{n}:存放(Pm1…Pmn)的x轴坐标数据,
[0014] P(m+1)x{n}:存放(P(m+1)1…P(m+1)n)的x轴坐标数据,
[0015] Pmy{n}:存放(Pm1…P1mn)的y轴坐标数据,
[0016] P(m+1)y{n}:存放(P(m+1)1…P(m+1)n)的y轴坐标数据,
[0017] Pmz{n}:存放(Pm1…Pmn)的y轴坐标数据,
[0018] P(m+1)z{n}:存放(P(m+1)1…P(m+1)n)的y轴坐标数据,
[0019] 所述计算步骤如下:
[0020] 1)、计算所有相邻线段的距离存放于l{n}数组中;
[0021]
[0022] 2)、计算所有相邻线段距离的平均值LAve;
[0023]
[0024] 3)、执行分割份数计算循环,使用起始测试间距计算分割的份数,并且取整数,若为奇数则分割份数自动减1;
[0025] NAve=Lave/StartStep;
[0026] 4)、计算每根相邻线段经过NAve分割后的间距s{n};
[0027] s{n}=l{n}/Nave;
[0028] 5)、判断所有的s{n}是否有超过最佳间距5mm的情况,超过则将StartStep-0.1后重新从步骤3开始执行循环,直至所有线段的间距都在最优范围内;
[0029] 进一步的,所述步骤4中轨迹点坐标和姿态旋转信息的空间插补算法:
[0030] 1)、计算X、Y、Z坐标相邻两个点的增量和微分;计算如下:
[0031] n:竖向初始分区点,m:横向初始分区点,
[0032] DeltaX{n}:相邻两点X方向的增量,
[0033] DeltaY{n}:相邻两点Y方向的增量,
[0034] DeltaZ{n}:相邻两点Z方向的增量,
[0035] l{n}:相邻两点之间的间距,
[0036] dx{n}:X方向的微分,
[0037] dy{n}:Y方向的微分,
[0038] dz{n}:Z方向的微分,
[0039] 增量计算公式为:
[0040] DeltaX{n}:=P(m+1)x{n}-Pmx{n},
[0041] DeltaY{n}:=P(m+1)y{n}-Pmy{n},
[0042] DeltaY{n}:=P(m+1)y{n}-Pmy{n},
[0043] 微分计算公式为:
[0044] dx{n}=DeltaX{n}/l{n},
[0045] dy{n}=DeltaY{n}/l{n},
[0046] dz{n}=DeltaZ{n}/l{n};
[0047] 2)、计算两点的线性差值修正系数,相邻两点的线性差值修正系数,修正系数是通过相邻两点四元数的乘积来判断,若>0,则系数为1,若<0,则系数为-1;
[0048] n:竖向初始分区点,m:横向初始分区点,
[0049] qaqb{n}:相邻两点四元数乘积;
[0050] LerpCorrectie{n}:相邻两点的线性差值修正系数。
[0051] Pmq1{n}:存放(Pm1…Pmn)的四元数q1数据,
[0052] Pmq2{n}:存放(Pm1…Pmn)的四元数q2数据,
[0053] Pmq3{n}:存放(Pm1…Pmn)的四元数q3数据,
[0054] Pmq4{n}:存放(P11…P1n)的四元数q4数据,
[0055] P(m+1)q1{n}:存放(P(m+1)1…P(m+1)n)的四元数q1数据,
[0056] P(m+1)q2{n}:存放(P(m+1)1…P(m+1)n)的四元数q2数据,
[0057] P(m+1)q3{n}:存放(P(m+1)1…P(m+1)n)的四元数q3数据,
[0058] P(m+1)q4{n}:存放(P(m+1)1…P(m+1)n)的四元数q4数据,
[0059] 计算公式如下:
[0060] qaqb{n}=P(m+1)q1{n}×Pmq1{n}+P(m+1)q2{n}×Pmq2{n}+P(m+1)q3{n}×Pmq3{n}+P(m+1)q4{n}×Pmq4{n},若qaqb{n}>0,则LerpCorrectie=1;若qaqb{n}<0,则LerpCorrectie=-1;
[0061] 3)、计算q1、q2、q3四元数的增量;
[0062] n:竖向初始分区点,m:横向初始分区点,
[0063] Deltaq1{n}:相邻两点四元数q1的增量,
[0064] Deltaq2{n}:相邻两点四元数q2的增量,
[0065] Deltaq3{n}:相邻两点四元数q3的增量,
[0066] Deltaq4{n}:相邻两点四元数q4的增量,
[0067] LerpCorrectie{n}:相邻两点的线性差值修正系数,
[0068] 计算公式如下:
[0069] Deltaq1{n}=LerpCorrectie{n}×P(m+1)q1{n}-Pmq1{n},
[0070] Deltaq2{n}=LerpCorrectie{n}×P(m+1)q2{n}-Pmq2{n},
[0071] Deltaq3{n}=LerpCorrectie{n}×P(m+1)q3{n}-Pmq3{n},
[0072] Deltaq4{n}=LerpCorrectie{n}×P(m+1)q4{n}-Pmq4{n},
[0073] 4)、计算当前所行走的NAve轨迹线上的所有点的坐标X、Y、Z信息;
[0074] n:竖向初始分区点,m:横向初始分区点,
[0075] PNx{n}:当前所行走的NAve轨迹线上的所有点的x轴坐标信息;
[0076] PNy{n}:当前所行走的NAve轨迹线上的所有点的y轴坐标信息;
[0077] PNz{n}:当前所行走的NAve轨迹线上的所有点的z轴坐标信息;
[0078] j:当前所行走第几条NAve轨迹线;
[0079] dx{n}:X方向的微分,
[0080] dy{n}:Y方向的微分,
[0081] dz{n}:Z方向的微分,
[0082] 计算公式如下:
[0083] PNx{n}=Pmx{n}+dx{n}×s{n}×(j-1),
[0084] PNy{n}=Pmy{n}+dy{n}×s{n}×(j-1),
[0085] PNz{n}=Pmz{n}+dz{n}×s{n}×(j-1);
[0086] 5)、计算当前所行走的NAve轨迹线上的所有点的坐标X、Y、Z信息,
[0087] n:竖向初始分区点,上文解释过;
[0088] PNq1{n}:当前所行走的NAve轨迹线上的所有点四元数q1信息;
[0089] PNq2{n}:当前所行走的NAve轨迹线上的所有点四元数q2信息;
[0090] PNq3{n}:当前所行走的NAve轨迹线上的所有点四元数q3信息;
[0091] PNq4{n}:当前所行走的NAve轨迹线上的所有点四元数q4信息;
[0092] j:当前所行走第几条NAve轨迹线;
[0093] 计算公式如下:
[0094]
[0095]
[0096]
[0097]
[0098] 6)、通过上述空间插补算法将分割后所有轨迹点的坐标信息和姿态旋转信息全部计算出来,计算出的数据为机器人最佳行走轨迹;
[0099] 进一步的,所述步骤5的具体流程如下:喷涂:根据上述算法,所有的曲面分割点全部计算完,只需要一次执行运行轨迹点指令,就可完成部件曲面的喷涂,可以调节所有m*(n-1)个区域的运行速度,以达到控制每一区域涂层厚度的目的,理论上,所分的区域越小,喷涂的厚度越均匀;
[0100] 进一步的,所述步骤6的具体流程如下:喷涂优化:每次在喷涂偶数遍的时,喷枪移动时相邻轨迹之间距离不变,但是在层与层之间所有轨迹偏移1/2的最佳轨迹间距s{n},保证层与层之间波峰和波谷被更好地覆盖
[0101] 进一步的,所述喷枪与部件保持的最优距离,是根据不同的喷枪和不同的喷涂粉末对应的工艺中的最佳距离,其距离为70-150mm。
[0102] 有益效果:本发明揭示了一种燃气轮机部件曲面喷涂轨迹算法,算法是将曲面分割成若干份(份数越多,曲面越接近平面),初始分区所有轨迹点的喷枪与部件的距离为最优状态;再通过算法将初始分割的曲面按最优喷涂间距分割成更多的喷涂区域,形成所有的喷涂轨迹点;通过空间插补算法计算出这些轨迹点的坐标以及姿态旋转信息,以确保在轨迹点空间坐标正确的情况下,机器人每个关节的姿态最为平滑,喷涂过程中机械臂不会对喷涂部件发生碰撞。最后机器人通过算法计算出的信息依次行走这些轨迹点,来完成喷涂;喷涂的层与层之间所有轨迹偏移1/2轨迹间距,以保证涂层层与层之间波峰、波谷被更好地覆盖,涂层更加质密,厚度更加均匀;最终试验表明通过该方法喷涂后的涂层厚度差距能在50μm以内,并且对所有轨迹点机器人各关节都可以平滑通过,提高喷涂效率,并不会对部件造成损伤,提高喷涂的质量。附图说明
[0103] 图1为本发明最优喷涂间距的流程图
[0104] 图2为本发明整体算法流程图;
[0105] 图3为本发明整体初始化分区密闭曲线示意图;
[0106] n:竖向初始分区点,m:横向初始分区点,
[0107] elenr:当前为第几个竖向区域组,共有(m-1)个竖向区域组;
[0108] l{n}:所有相邻线段的距离P11和P21距离+P12和P22距离+…+P1n和P2n距离;
[0109] LAve:所有相邻线段距离的平均值;
[0110] StartStep:起始测试间距取3mm;
[0111] NAve:计算的最佳分割份数;
[0112] s{n}:每根相邻线段经过Nave分割后的最佳间距。
[0113] aantal:当前正在行走的经NAve分割后的轨迹线,一共有NAve根轨迹线,不连该区域组的后一根轨迹线,该根轨迹线作为下一个区域组的第一根轨迹线。

具体实施方式

[0114] 如图1-3所示,一种燃气轮机部件曲面喷涂轨迹算法,所述曲面喷涂轨迹算法包括以下步骤:
[0115] A、初始分区:如图3所示,
[0116] (1)、取不规则曲面中任意一条垂直竖向截线,在该截线上取n个点(P11-P1n)将该截线分割成n-1个线段,取点尽量保证相邻两个点之间的曲面接近平面;
[0117] (2)、在之前的截线上取的n个点为起始点分别向垂直横向分割成n根截线,将每一根横向截线上分别再取m个点(包括起始点、闭合曲面中起始点和终点是同一个点),分割成m根线段,横向取点也尽量保证相邻两个点之间的曲面接近平面;
[0118] (3)、至此该曲面一共采集了n*m个点(P11-Pmn),共形成m*(n-1)个近似平面区域。最终分割后的曲面。
[0119] B、采集:(1)、使用机器人示教器将该曲面的分割点校准到机器人系统中,每个点机器人的姿态尽量保证喷枪喷射点垂直于部件表面,并且与部件的距离为最优距离,根据不同的喷枪和不同的喷涂粉末对应的工艺中的最佳距离,其距离为70-150mm,以达到最佳的喷涂效果。校准后,机器人程序中就能得到所有n*(m-1)个点的空间坐标信息(X、Y、Z)和姿态旋转四元数信息(q1、q2、q3)。
[0120] (2)、在机器人程序中所有点的信息是存储在一个结构体robtarget中,robtarget结构体中包括三个位置数据结构体分别是:trans结构体用于存放空间坐标信息(X、Y、Z),orient结构体,用于存放姿态旋转四元数信息(q1、q2、q3),robconf结构体用于存放轴配置信息,要使用每一个数据还得分别取出来,不方便计算,所以设计了一个算法将所有的方便后面的计算,将计算后的数据存储到一个命名为BN_Teach的robtarget结构体中,并将BN_Teach结构体中三个位置数据结构体命名为,一个名为TBC_orient的orient结构体,一个名为TBC_position的trans结构体,一个名为TBC_conf的robconf结构体,分别对一个TBC_position结构体数组用来储存所有点的坐标信息,一个TBC_orient结构体数组用来储存所有点的姿态信息,一个TBC_conf结构体数组用来储存所有点的轴配置信息。BN_Teach是校准的所有点的信息,数据转换后的数组中的数据排列是P11、P12…P1n、P21、P22…P2n、Pm1…Pmn。
[0121] 数据转换算法如下:循环m*n次分别将BN_Teach中的信息调用出来。
[0122] C、区域分割轨迹点:
[0123] 该算法是使用最优的喷涂间距来分割每一个区域,从而得到机器人所有的喷涂轨迹点,机器人依次行走这些轨迹点以完成喷涂。以下以其中一个区域组(P11、P12…P1n、P21、P22…P2n)为例来进行解释本算法,其他区域可以同理得到。
[0124] (1)、取出部件曲面中竖向相邻的两个截线的所有点(P11、P12…P1n、P21、P22…P2n)的数据,共2*m个点,这些点共分割了n-1个平面。P1_{n}:该robtarget结构体数组用于存放(P11…P1n)的数据,P2_{n}:该robtarget结构体数组用于存放(P21…P2n)的数据。
[0125] (2)、按最优喷涂间距将相邻两根截线(P11-P1n和P21-P2n两根截线)分成的区域分割成若干份。根据这个最佳的喷涂间距来计算出相邻区域的分割份数。并且该份数必须为偶数,以确保最后喷枪能回到起始位置。
[0126] n:竖向初始分区点,上文解释过;
[0127] P1x{n}:存放(P11…P1n)的x轴坐标数据,上文中已知;
[0128] P2x{n}:存放(P21…P2n)的x轴坐标数据,上文中已知;
[0129] P1y{n}:存放(P11…P1n)的y轴坐标数据,上文中已知;
[0130] P2y{n}:存放(P21…P2n)的y轴坐标数据,上文中已知;
[0131] l{n}:所有相邻线段的距离P11和P21距离+P12和P22距离+…+P1n和P2n距离);
[0132] LAve:所有相邻线段距离的平均值;
[0133] StartStep:起始测试间距取3mm;
[0134] NAve:计算的分割份数;
[0135] s{n}:每根相邻线段经过Nave分割后的间距。
[0136] 该算法步骤如下:
[0137] ①、计算所有相邻线段的距离存放于l{n}数组中;
[0138]
[0139] ②、计算所有相邻线段距离的平均值LAve;
[0140]
[0141] ③、执行分割份数计算循环,使用起始测试间距计算分割的份数,并且取整数,若为奇数则分割份数自动减1;
[0142]
[0143] ④、计算每根相邻线段经过NAve分割后的间距s{n};
[0144] s{n}=l{n}/n_ave
[0145] ⑤、判断所有的s{n}是否有超过最佳间距5mm的情况,如果有,将StartStep-0.1后重新从步骤③开始执行循环,直至所有线段的间距都在最优范围内。
[0146] (3)、通过该算法可以将所有的初始分割曲面按最优喷涂间距分割成更多的喷涂区域。
[0147] 通过上述计算得到的分割份数,相当于把相邻两个截线形成的区域再分割,一共产生NAve+1根竖向截线(包括P11-P1n和P21-P2n这两根截线),共形成NAve个竖向区域,一共形成(NAve+1)*n个点(包括P11-P1n和P21-P2n点),所以只要计算出这些点,机器人的所有的行走轨迹都可以计算出来。机器人的行走轨迹是P11、P12…P1n,然后返回行走NAve根竖向截线的第二根截线,再返回走第三根截线,直至走完NAve根竖向截线,再同上循环进入P21-P2n和P31-P3n所形成的竖向区域组,最终走完所有区域。
[0148] D、轨迹点坐标和姿态旋转信息的空间插补算法:
[0149] (1)、计算相邻两个点(P11和P21、P12和P22…P1n和P2n)X、Y、Z坐标的增量和微分。
[0150] n:竖向初始分区点,上文解释过;
[0151] DeltaX{n}:相邻两点X方向的增量;
[0152] DeltaY{n}:相邻两点Y方向的增量;
[0153] DeltaZ{n}:相邻两点Z方向的增量;
[0154] l{n}:相邻两点之间的间距,上文中已经求到;
[0155] P1x{n}:存放(P11…P1n)的x轴坐标数据,上文中已知;
[0156] P2x{n}:存放(P21…P2n)的x轴坐标数据,上文中已知;
[0157] P1y{n}:存放(P11…P1n)的y轴坐标数据,上文中已知;
[0158] P2y{n}:存放(P21…P2n)的y轴坐标数据,上文中已知;
[0159] P1z{n}:存放(P11…P1n)的y轴坐标数据,上文中已知;
[0160] P2z{n}:存放(P21…P2n)的y轴坐标数据,上文中已知;
[0161] dx{n}:X方向的微分;
[0162] dy{n}:Y方向的微分;
[0163] dz{n}:Z方向的微分。
[0164] 该算法如下:
[0165] DeltaX{n}=P2x{n}-P1x{n}
[0166] DeltaY{n}=P2y{n}-P1y{n}
[0167] DeltaZ{n}=P2z{n}-P1z{n}
[0168] dx{n}=DeltaX{n}/l{n}
[0169] dy{n}=DeltaY{n}/l{n}
[0170] dz{n}=DeltaZ{n}/l{n}
[0171] (2)、计算相邻两个点(P11和P21、P12和P22…)q1、q2、q3、q4的增量。要求得四元数的增量,首先要求到相邻两点的线性差值修正系数,修正系数是通过相邻两点四元数的乘积来判断,若>0,则系数为1,若<0,则系数为-1。
[0172] n:竖向初始分区点,上文解释过;
[0173] qaqb{n}:相邻两点四元数乘积;
[0174] LerpCorrectie{n}:相邻两点的线性差值修正系数。
[0175] P1q1{n}:存放(P11…P1n)的四元数q1数据,上文中已知;
[0176] P1q2{n}:存放(P11…P1n)的四元数q2数据,上文中已知;
[0177] P1q3{n}:存放(P11…P1n)的四元数q3数据,上文中已知;
[0178] P1q4{n}:存放(P11…P1n)的四元数q4数据,上文中已知;
[0179] P2q1{n}:存放(P21…P2n)的四元数q1数据,上文中已知;
[0180] P2q2{n}:存放(P21…P2n)的四元数q2数据,上文中已知;
[0181] P2q3{n}:存放(P21…P2n)的四元数q3数据,上文中已知;
[0182] P2q4{n}:存放(P21…P2n)的四元数q4数据,上文中已知;
[0183] 该算法如下:
[0184] qaqb{n}=P2q1{n}×P1q1{n}+P2q2{n}×P1q2{n}+
[0185] P2q3{n}×P1q3{n}+P2q4{n}×P1q4{n}
[0186] 若qaqb{n}>0则LerpCorrectie=1;若qaqb{n}<0则LerpCorrectie=-1;
[0187] (3)、计算相邻两个点(P11和P21、P12和P22…)q1、q2、q3、q4的增量。
[0188] n:竖向初始分区点,上文解释过;
[0189] Deltaq1{n}:相邻两点四元数q1的增量;
[0190] Deltaq2{n}:相邻两点四元数q2的增量;
[0191] Deltaq3{n}:相邻两点四元数q3的增量;
[0192] Deltaq4{n}:相邻两点四元数q4的增量;
[0193] LerpCorrectie{n}:相邻两点的线性差值修正系数上文中已知;
[0194] P1q1{n}:存放(P11…P1n)的四元数q1数据,上文中已知;
[0195] P1q2{n}:存放(P11…P1n)的四元数q2数据,上文中已知;
[0196] P1q3{n}:存放(P11…P1n)的四元数q3数据,上文中已知;
[0197] P1q4{n}:存放(P11…P1n)的四元数q4数据,上文中已知;
[0198] P2q1{n}:存放(P21…P2n)的四元数q1数据,上文中已知;
[0199] P2q2{n}:存放(P21…P2n)的四元数q2数据,上文中已知;
[0200] P2q3{n}:存放(P21…P2n)的四元数q3数据,上文中已知;
[0201] P2q4{n}:存放(P21…P2n)的四元数q4数据,上文中已知;
[0202] 该算法如下:
[0203] Deltaq1{n}=LerpCorrectie{n}×P2q1{n}-P1q1{n}
[0204] Deltaq2{n}=LerpCorrectie{n}×P2q2{n}-P1q2{n}
[0205] Deltaq3{n}=LerpCorrectie{n}×P2q3{n}-P1q3{n}
[0206] Deltaq4{n}=LerpCorrectie{n}×P2q4{n}-P1q4{n}
[0207] (4)、计算当前所行走的NAve轨迹线上的所有点的坐标X、Y、Z信息。
[0208] PN_{n}:记录当前所行走的NAve轨迹线上的所有点的信息,有NAve条轨迹线就有Nave组PN_{n}的数据点信息,该信息包括x、y、z、q1、q2、q3、q4,以下算法求得其中一条NAve轨迹,同理可以算出所有的轨迹;
[0209] n:竖向初始分区点,上文解释过;
[0210] PNx{n}:当前所行走的NAve轨迹线上的所有点的x轴坐标信息;
[0211] PNy{n}:当前所行走的NAve轨迹线上的所有点的y轴坐标信息;
[0212] PNz{n}:当前所行走的NAve轨迹线上的所有点的z轴坐标信息;
[0213] j:当前所行走第几条NAve轨迹线;
[0214] dx{n}:X方向的微分,上文中已知;
[0215] dy{n}:Y方向的微分,上文中已知;
[0216] dz{n}:Z方向的微分,上文中已知;
[0217] P1x{n}:存放(P11…P1n)的x轴坐标数据,上文中已知;
[0218] P2x{n}:存放(P21…P2n)的x轴坐标数据,上文中已知;
[0219] P1y{n}:存放(P11…P1n)的y轴坐标数据,上文中已知;
[0220] P2y{n}:存放(P21…P2n)的y轴坐标数据,上文中已知;
[0221] P1z{n}:存放(P11…P1n)的y轴坐标数据,上文中已知;
[0222] P2z{n}:存放(P21…P2n)的y轴坐标数据,上文中已知;
[0223] s{n}:每根相邻线段经过Nave分割后的间距,上文中已知。
[0224] 该算法如下:
[0225] PNx{n}=P1x{n}+dx{n}×s{n}×(j-1)
[0226] PNy{n}=P1y{n}+dy{n}×s{n}×(j-1)
[0227] PNz{n}=P1x{n}+dz{n}×s{n}×(j-1)
[0228] (5)、计算当前所行走的NAve轨迹线上的所有点的四元数q1、q2、q3、q4的信息。
[0229] n:竖向初始分区点,上文解释过;
[0230] PNq1{n}:当前所行走的NAve轨迹线上的所有点四元数q1信息;
[0231] PNq2{n}:当前所行走的NAve轨迹线上的所有点四元数q2信息;
[0232] PNq3{n}:当前所行走的NAve轨迹线上的所有点四元数q3信息;
[0233] PNq4{n}:当前所行走的NAve轨迹线上的所有点四元数q4信息;
[0234] j:当前所行走第几条NAve轨迹线;
[0235] P1q1{n}:存放(P11…P1n)的四元数q1数据,上文中已知;
[0236] P1q2{n}:存放(P11…P1n)的四元数q2数据,上文中已知;
[0237] P1q3{n}:存放(P11…P1n)的四元数q3数据,上文中已知;
[0238] P1q4{n}:存放(P11…P1n)的四元数q4数据,上文中已知;
[0239] P2q1{n}:存放(P21…P2n)的四元数q1数据,上文中已知;
[0240] P2q2{n}:存放(P21…P2n)的四元数q2数据,上文中已知;
[0241] P2q3{n}:存放(P21…P2n)的四元数q3数据,上文中已知;
[0242] P2q4{n}:存放(P21…P2n)的四元数q4数据,上文中已知;
[0243] Deltaq1{n}:相邻两点四元数q1的增量,上文中已知;
[0244] Deltaq2{n}:相邻两点四元数q2的增量,上文中已知;
[0245] Deltaq3{n}:相邻两点四元数q3的增量,上文中已知;
[0246] Deltaq4{n}:相邻两点四元数q4的增量,上文中已知。
[0247] 该算法如下:
[0248]
[0249] (6)、通过上述空间插补算法将分割后所有轨迹点的坐标信息和姿态旋转信息全部计算出来,这些机器人轨迹都是最平滑的轨迹,不会对部件造成任何损伤。
[0250] E、执行机器人喷涂循环
[0251] 根据上述算法,所有的曲面分割点全部计算完,只需要一次执行运行轨迹点指令,就可完成部件曲面的喷涂,该方法可以调节所有m*(n-1)个区域的运行速度,以达到控制每一区域涂层厚度的目的。理论上,所分的区域越小,喷涂的厚度越均匀。
[0252] F、喷涂循环优化:
[0253] 喷涂后涂层要达到指定厚度的话一般要喷涂十几遍,经过反复的喷涂测试后发现,如果每一遍都使用上述算法计算得到的轨迹喷涂,喷涂后的涂层,单层的高低起伏累计十几次左右后,会将涂层厚度的差异放大,最终会有深浅不一的线条产生。
[0254] 所以在上述方法上将算法再进行优化,每次在喷涂偶数遍的时候,喷枪移动时相邻轨迹之间距离不变,但是在层与层之间所有轨迹偏移1/2的最佳轨迹间距s{n},保证层与层之间波峰和波谷被更好地覆盖。经过改进后的算法可以使涂层均一性进一步的提高。最终试验表明通过该方法喷涂后的涂层厚度差距能在50μm以内。
[0255] 综上所述,算法是将曲面分割成若干份(份数越多,曲面越接近平面),初始分区所有轨迹点的喷枪与部件的距离为最优状态;再通过算法将初始分割的曲面按最优喷涂间距分割成更多的喷涂区域,形成所有的喷涂轨迹点;通过空间插补算法计算出这些轨迹点的坐标以及姿态旋转信息,以确保在轨迹点空间坐标正确的情况下,机器人每个关节的姿态最为平滑,喷涂过程中机械臂不会对喷涂部件发生碰撞。最后机器人通过算法计算出的信息依次行走这些轨迹点,来完成喷涂;喷涂的层与层之间所有轨迹偏移1/2轨迹间距,以保证涂层层与层之间波峰、波谷被更好地覆盖,涂层更加质密,厚度更加均匀;最终试验表明通过该方法喷涂后的涂层厚度差距能在50μm以内,并且对所有轨迹点机器人各关节都可以平滑通过,不会对部件造成任何损伤。
[0256] 以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈