1.本发明属于人工智能与工业机械臂技术领域,具体属于一种物件缺损智能增材修复系统及方法。
背景技术:2.工业场景中,增材制造中的物件修复对三维成型的灵活度、打印尺寸以及精度有更高的需求,传统3d打印技术理论上拥有x、y、z三个自由度,在工业机械臂灵活度与精确度快速提升的背景下,增材制造与工业机械臂相结合的增材修复技术不断发展,但现有的基于工业机械臂的物件缺损增材修复系统仅利用了z轴的自由度,忽略了x轴、y轴的自由度,同时,工业机械臂的轨迹规划一直停留在二维平面上,当完成复杂的三维修复任务时,采用人工逐层在二维平面规划的方法不仅效率较低,而且对于三维模型的分层准确度较低,容易造成修复不精确。
技术实现要素:3.为了解决现有技术中存在的问题,本发明提供一种物件缺损智能增材修复系统及方法,将三维修复轨迹生成和工业机械臂智能结合,为工业机械臂在各个领域的智能自动化系统研究奠定了基础。
4.为实现上述目的,本发明提供如下技术方案:一种物件缺损智能增材修复方法,具体步骤如下:
5.s1获取待修复物件的cad模型生成三角网格模型,在整个三角网格模型中选择待修复物件需要修复部分的三角网格数据;
6.s2基于三角网格数据,利用三维修复轨迹规划算法生成初始修复轨迹,对初始修复轨迹进行位姿调整得到最终修复轨迹;
7.s3将最终的修复轨迹转化为工业机械臂的修复指令集,工业机械臂根据修复指令集对待修复物件进行修复。
8.进一步的,步骤s2中,利用三维修复轨迹规划算法生成初始修复轨迹的具体步骤为:
9.s2.1获取待修复物件三角网格数据的优化特征高度序列,利用高度调节算法调整优化特征高度序列得到最终特征高度序列,根据最终特征高度序列的高度来定义分层截面;
10.s2.2根据分层截面与待修复物件三角网格数据相交的点获取单层修复轮廓;
11.s2.3平行扫描线填充单层修复轮廓,得到单层修复轮廓的填充轨迹;
12.s2.4重复步骤s2.1~s2.3,得到待修复物件需要修复部分每一层修复轮廓的填充轨迹,再按照低到高的顺序逐层进行平行扫描线填充,即可得到缺损物件的初始修复轨迹;
13.s2.5利用旋转算子对初始修复轨迹进行位姿调整得到最终修复轨迹。
14.进一步的,步骤s2.1中,所述最终特征高度序列的获取步骤具体如下:
15.s2.1.1根据修复物件待修复部分的三角网格数据以确定分层高度的最高值和最低值;
16.s2.1.2遍历修复物件的三角网格数据得到初始高度序列;
17.s2.1.3根据三角网格数据不同位置处的倾斜角度自适应的调节第i层分层的增材厚度δhi,得到优化特征高度序列。
18.进一步的,所述增材厚度δhi为:
[0019][0020]
其中,d为修复物件待修复部分三角网格数据中的一个三角面片
△
abc的垂直方向距离下一个分层截面的距离,d=-δhicosθ;θ为三角面片的法向量n(n
x
,ny,nz)与增材方向的方向向量z的之间的夹角,θ≠90
°
。
[0021]
进一步的,步骤s2.1中,对优化特征高度序列进行高度调节的具体步骤如下:
[0022]
1)设置最小增材厚度δh
min
和最大增材厚度δh
max
:
[0023]
2)当增材厚度δhi在最小增材厚度δh
min
和最大增材厚度δh
max
之间则为最终分层高度;
[0024]
3)当第i层的增材厚度δhi≤最小增材厚度δh
min
,则第i层需要调节的高度δhi'=δh
min-δhi;
[0025]
4)当第i层的增材厚度δhi≥最大增材厚度δh
max
,采用等厚插值进行分层;
[0026]
5)直至所有优化特征高度序列后调整完即得到修正后的最终特征高度序列。
[0027]
进一步的,步骤3)中,先通过比第i层低的层与层之间的余量调节第i层的高度,当向下调节层超过5层后,依然不能满足δhi′
需求时则向上采用第i+1层进行调整。
[0028]
进一步的,步骤s2.2中,获取单层修复轮廓的具体步骤如下:
[0029]
1)根据分层截面高度z
val
将与之对应的修复物件待修复部分三角网格数据中的三角面片进行划分,找出每一个三角面片的最高点p
max
和最低点p
min
,满足下式的三角面片划分到该分层截面中:
[0030]
p
min
≤z
val
≤p
max
;
[0031]
2)获取分层截面和三角面片相交点坐标,将所有的相交点坐标依次相连则得到待修复物件单层的修复轮廓。
[0032]
进一步的,步骤s2.3中,得到单层修复轮廓的填充轨迹方法具体如下:
[0033]
1)分别确定待修复物件单层的修复轮廓在x方向和y方向的填充距离以确定修复密度;
[0034]
2)对待修复物件单层的修复轮廓进行平行扫描,得到平行扫描线与待修复物件单层的修复轮廓的相交点;
[0035]
3)对平行扫描线与待修复物件单层的修复轮廓的相交点进行排序;
[0036]
4)判断各相交点之间的连接关系用于辨别两相交点之间是实体还是空腔;
[0037]
5)将平行扫描线按照步骤4)的连接关系进行间隔平移,与待修复物件单层的修复轮廓有相交点则返回步骤3),否则结束;
[0038]
6)重复步骤1)~5)得到待修复物件需要修复部分每一层修复轮廓的填充轨迹。
[0039]
进一步的,步骤s3中,根据工业机械臂的控制策略将最终修复轨迹转换为用于控
制工业机械臂的修复指令集。
[0040]
本发明还提供一种物件缺损智能增材修复系统,包括修复轨迹规划模块、修复指令生成及传输模块和工业机械臂,其中:
[0041]
所述修复轨迹规划模块用于获取无损的待修复物件cad模型生成三角网格模型的坐标,并获取缺损部分的坐标,利用三维修复轨迹规划算法生成待修复物件缺损部分的修复轨迹,并传输至修复指令生成及传输模块;
[0042]
所述修复指令生成及传输模块用于根据工业机械臂2的控制策略将修复轨迹规划模块生成的修复轨迹转化为工业机械臂的修复指令集,并将修复指令逐条传输至工业机械臂;
[0043]
所述工业机械臂用于接收修复指令集并控制末端执行器对待修复的破损物件进行增材修复。
[0044]
与现有技术相比,本发明至少具有以下有益效果:
[0045]
本发明提供中一种物件缺损智能增材修复方法,利用三维修复轨迹规划算法得到待修复物件的修复轨迹,极大程度的提升了工业机械臂修复轨迹的编程效率,且将工业机械臂的修复轨迹后置增加了工业机械臂的自动化水平,提升了待修复物件修复的质量。
[0046]
本发明的三维修复轨迹生成算法通过特征高度序列的识别以减少特征丢失,提升物件修复的准确性,再采用自适应分层以缩减阶梯误差,从而提高物件修复的质量,最后通过修复轮廓获取与修复轮廓填充获得完整的待修复物件的三维修复轨迹,提高了机器人三维修复轨迹生成的高效性和稳定性;修复轮廓的获取,更快的获得需要修复的范围,确保了修复位置的准确,而对修复轮廓的填充,极大的增加了修复的牢靠性,很好的保证了修复的质量。
附图说明
[0047]
图1为本发明一种物件缺损智能增材修复系统的架构图。
[0048]
图2为本发明一种物件缺损智能增材修复方法流程。
[0049]
图3为本发明物件缺损智能增材修复系统中三维修复轨迹规划算法的流程图。
[0050]
图4为本发明高度序列自适应调节示意图。
[0051]
图5为本发明物件缺损智能增材修复系统中高度序列调节流程图。
[0052]
图6为本发明物件缺损智能增材修复系统中单层轮廓获取交点示意图。
[0053]
图7为本发明物件缺损智能增材修复系统中得到的单层轮廓示意图。
[0054]
图8为本发明物件缺损智能增材修复系统中一个缺损物件cad模型示意图。
[0055]
图9为本发明物件缺损智能增材修复系统中得到的三维修复轨迹示意图。
[0056]
附图中:1修复平台、2工业机械臂、3以太网交换机、4计算机、5缺损物件、6末端执行器。
具体实施方式
[0057]
下面结合附图和具体实施方式对本发明作进一步的说明。
[0058]
如图1所示,本发明提供一种物件缺损智能增材修复系统,包括修复轨迹规划模块、修复指令生成及传输模块、工业机械臂2和修复平台1,其中:
[0059]
修复轨迹规划模块用于获取无损的修复物件cad模型生成三角网格模型的坐标,并获取缺损部分的坐标,利用三维修复轨迹规划算法生成待修复物件缺损部分的修复轨迹,并传输至修复指令生成及传输模块;
[0060]
修复指令生成及传输模块用于根据工业机械臂的控制策略将修复轨迹规划模块生成的修复轨迹转化为工业机械臂的修复指令集,通过tcp通信协议将修复指令逐条传输至工业机械臂。
[0061]
工业机械臂2接收修复指令集并控制末端执行器6对待修复的破损物件进行修复,修复平台1用于放置并固定待修复的破损物件。
[0062]
工业机械臂2通过网线与以太网交换机3和计算机4连接,形成以交换机3为主体的星状局域网,通过tcp通信实现数据互通,修复轨迹规划模块将修复指令集发送到工业机械臂2。
[0063]
工业机械臂2上安装修复所需的末端执行器6,将缺损物件5放置在修复平台1上并固定位置,保证工业机械臂2的末端执行器6工作在缺损物件修复区,之后,工业机械臂2接收修复指令集并根据修复指令集进行关节移动,从而操纵末端执行器6完成物件的修复任务。
[0064]
末端执行器6可以根据修复任务的需求选择不同大小的修复喷头,以实现多品种,多类型的物件修复工作。
[0065]
如图2所示,本发明提供的一种物件缺损智能增材修复方法,具体如下:
[0066]
1)获取待修复物件的cad模型,生成三角网格模型,在整个三角网格模型中选择待修复物件需要修复部分的三角网格数据;
[0067]
2)基于三角网格数据,利用三维修复轨迹规划算法生成初始修复轨迹;
[0068]
3)采用坐标变化调整初始修复轨迹中不合适的轨迹位姿后得到最终修复轨迹;
[0069]
4)将最终的修复轨迹转化为工业机械臂用于修复的修复指令集;
[0070]
5)工业机械臂获取修复指令集并根据修复指令集对待修复物件进行修复。
[0071]
如图3所示,步骤2)中,利用三维修复轨迹规划算法生成初始修复轨迹的具体步骤为:
[0072]
2.1)获取待修复物件三角网格数据的初始高度序列,利用自适应调节算法对初始高度序列进行优化得到优化特征高度序列,利用高度调节算法调整优化特征高度序列得到最终特征高度序列,具体实施如下:
[0073]
(a)根据修复物件待修复部分的三角网格数据以确定分层高度的最高值和最低值。
[0074]
(b)遍历修复物件的三角网格数据得到初始特征高度序列。
[0075]
(c)如图4所示,根据三角网格数据不同位置处的倾斜角度自适应的调节第i层分层的增材厚度δhi,进一步优化初始高度序列得到优化特征高度序列,以减少修复误差,具体实施如下:
[0076]
假设修复物件待修复部分三角网格数据中的一个三角面片
△
abc的垂直方向距离下一个分层截面的距离为d,三角面片的法向量n(n
x
,ny,nz)与增材方向的方向向量z(0,0,1)的之间的夹角记为θ。已知增材厚度为δhi,则第i层与第i+1层的关系表示为z
i+1
=zu+δhi,距离d表示为d=-δhicosθ,而夹角θ余弦值的向量用下式表示:
[0077][0078]
依据以上公式,增材厚度δhi的用下式描述。
[0079][0080]
为保证公式的有效性,此时的θ不能等于90
°
。
[0081]
(d)优化特征高度序列可能存在不满足修复需求的高度,为此,使用如图5所示的高度调节算法调整特征高度序列中不满足修复需求的高度,以得到最终特征高度序列,具体实施如下:
[0082]
(1)设置最小增材厚度δh
min
和最大增材厚度δh
max
;
[0083]
(2)优化特征高度序列中两个相邻高度之间的增材厚度δhi大于等于最小增材厚度δh
min
,小于等于最大增材厚度δh
max
,即为最终的特征高度序列;
[0084]
(3)当第i层的增材厚度δhi≤最小增材厚度δh
min
,确定第i层需要调节的高度δhi'=δh
min-δhi,先通过比第i层低的层与层之间的余量调节;为保证调整效率,当向下调节层数超过5层后,依然不能满足δhi′
需求时,向上采用第i+1层进行调整;
[0085]
(4)当第i层的增材厚度δhi≥最大增材厚度δh
max
,采用等厚插值进行分层;
[0086]
(5)当调整完所有特征高度序列后即得到修正后的最终特征高度序列。
[0087]
2.2)依次提取最终特征高度序列中的高度来定义分层截面。
[0088]
2.3)根据分层截面与待修复物件三角网格数据相交的点获取单层修复轮廓,轮廓获取的具体实施如下:
[0089]
(a)首先根据分层截面高度z
val
将与之对应的三角面片进行划分,每一个分层截面高度均存储在lay结构体中。找出每一个三角面片的最高点p
max
和最低点p
min
。
[0090]
p
min
≤z
val
≤p
max
将满足上式的三角面片划分到该分层截面中,用于求取该分层高度下分层截面和三角面片的相交坐标。
[0091]
(b)获取分层截面和三角面片相交点坐标,对于每一个三角面片,已知分层截面高度z
val
,以如图6所示的空间三角形abc为例,截面j与其相交于点h和点i。j的高度为zj,a的坐标为(xa,ya,za),b点的坐标为(xb,yb,zb),c点坐标为(xc,yc,zc)。截面j与ab边的交点h坐标为(xh,yh,zh),与ac边交点的坐标i为(xi,yi,zi);
[0092]
相交点坐标(xh,yh,zh)通过以下公式获取:
[0093][0094]
其中,c为常数,解方程后可以得到:
[0095][0096][0097]
zh=zj[0098]
(c)将所有的相交点坐标依次相连则得到待修复物件单层的修复轮廓,以五边形为例,单层修复轮廓示意图如图7所示。
[0099]
2.4)平行线填充单层修复轮廓,得到单层修复轮廓的填充轨迹,具体实施如下:
[0100]
(a)分别确定待修复物件单层的修复轮廓在x方向和y方向的填充距离以确定修复密度;
[0101]
(b)确定平行扫描线的方向,对待修复物件单层的修复轮廓进行平行扫描获取平行扫描线与待修复物件单层的修复轮廓的相交点。确定平行扫描线方向,以平行于x轴为例叙述,平行于y轴的填充与x轴的相同,实际上任意方向均可以,只需将最后得到的轨迹点做整体绕z轴做旋转变换即可。按照确定的方向对待修复物件单层的修复轮廓所在的平面逐行扫描,求出相交点;
[0102]
(c)对求出的相交点进行排序。对于每一条平行扫描线,与单层修复轮廓的交点均为2n个,n为与平行扫描线相交的轮廓数。由于是平行扫描,确定工业机械臂末端执行器6的运动方向后,据此选择从左到右或从右到左的顺序对相交点进行排序;
[0103]
(d)分组。由于打印的实体可能存在空腔,需要判断两点之间是否存在三角网格数据以确定是实体部分还是空腔部分,属于实体的两个相交点相连接以得到填充轨迹,而空腔部分在成型时需要空走,则不进行连接;
[0104]
(e)将扫描平行线按照(d)中的连接关系进行间隔平移,判断与待修复物件单层的修复轮廓是否有交点,有则返回步骤(c),否则至步骤(f);
[0105]
(f)结束。
[0106]
按照以上步骤,得到待修复物件需要修复部分每一层修复轮廓的填充轨迹;
[0107]
2.5)按照低到高的顺序逐层对待修复物件需要修复部分进行填充,填充完所有层后即可得到缺损物件的初始修复轨迹。
[0108]
步骤3)中,缺损物件修复过程,初始修复轨迹中经常存在工业机械臂2与修复物件的碰撞点,因此需要对这一部分轨迹点进行位姿调整以改变工业机械臂2的关节位姿来避免碰撞,具体实施如下:
[0109][0110][0111][0112]
上式是旋转算子,r
x
(θ
x
)、ry(θy)、rz(θz)分别代表绕x轴、y轴、z轴的旋转算子。在实际应用中,根据实际需求选择合适的旋转算子对部分碰撞点进行调整,使得工业机械臂2改变运动姿态。轨迹旋转一般仅需要单独绕某个坐标轴旋转,旋转完成后测试轨迹点是否正常,当所有轨迹点均调整完成后即可得到物件修复所需最终修复轨迹。以图8所示修复模型为例,获得的初始修复轨迹如图9所示。
[0113]
步骤4)中,根据工业机械臂2的控制策略将最终修复轨迹转换为控制工业机械臂2的修复指令集,并将修复指令集发送到工业机械臂2。