一种复杂异型工件自动焊接轨迹生成系统及方法与流程

文档序号:12330858阅读:来源:国知局

技术特征:

1.一种复杂异型工件自动焊接轨迹生成系统,其特征在于:包括工作台、用于固定工件的工件支撑回转台、实现工件三轴移动的工件装夹系统、机器视觉测量系统、触控显示屏,运动控制系统,

所述的工件支撑回转台和工件装夹系统设置在工作台上,所述的工件支撑回转台包括竖直设置在工作台(1)上的旋转伺服电机(18)、连接所述旋转伺服电机(18)输出轴的旋转夹具(19);所述触控显示屏与运动控制系统电路连接,并通过安装手臂固定在工作台一侧,所述机器视觉测量系统通过机器视觉测量系统支撑台固定在工作台(1)上,并通过以太网口与工控机通信,用于根据获取的工件图像获得焊接轨迹;

所述的运动控制系统包括运动控制器,通过通信线与工控机进行数据的传输与读取,用于结合生成的焊接轨迹发送运动脉冲到各伺服电机,驱动焊接机械手进行相应的轮廓焊接。

2.根据权利要求1所述的系统,其特征在于:所述的工件装夹系统由下至上依次包括固定在工作台(1)上的X向驱动气缸(15)、通过气缸安装架(14)竖直设置在X向驱动气缸(15)移动部上的Z向驱动气缸、设置在所述Z向驱动气缸移动部上的Y向驱动气缸,所述Y向驱动气缸的前端设置有机械手。

3.根据权利要求2所述的系统,其特征在于:所述的Z向驱动气缸包括相互平行设置的第一Z向驱动气缸(11)和第二Z向驱动气缸(13),所述的所述Y向驱动气缸包括相互平行设置的第一Y向驱动气缸(10)和第二Y向驱动气缸(12),所述第一Y向驱动气缸(10)的前端设置有第二机械手(20),后端设置在第一Z向驱动气缸(11)上,所述第二Y向驱动气缸(12)前端设置有第一机械手(17),后端设置在第二Z向驱动气缸(13)上。

4.根据权利要求3所述的系统,其特征在于:所述工件支撑回转台的两侧分别设置有用于放置工件的预装工位(3)和冷却工位(16),所述的预装工位(3)、冷却工位(16)与工件支撑回转台的间距与第一Z向驱动气缸(11)和第二Z向驱动气缸(13)的间距相同。

5.根据权利要求1所述的系统,其特征在于:所述的机器视觉测量系统包括固定在机器视觉测量系统支撑台上的相机驱动气缸(4)、相机组件,所述相机组件由上至下包括相机(7)、镜头(8)、光源(21),所述相机组件通过相机固定件(9)与相机驱动气缸(4)的活动端相连接。

6.一种基于权利要求1至5中任一项所述系统的复杂异型工件自动焊接轨迹生成方法,其特征在于,包括步骤:

(1)相机组件获取工件图像,并对所获取的图像进行预处理后提取外形轮廓得到数据点;

(2)将获得的数据点进行NURBS拟合,从而获得焊接轨迹;

(3)运动控制系统结合生成的焊接轨迹发送相应运动脉冲到各伺服电机,驱动焊接机械手进行相应的轮廓焊接。

7.根据权利要求6所述的方法,其特征在于:所述的步骤(1)具体包括:

(11)获取工件图像,运用Halcon对图像进行分离、腐蚀、提取骨架处理;

(12)将与焊接轨迹无关的图像噪声区域剔除;

(13)获得亚像素进度下的图像轮廓;

(14)获取图像轮廓的数据点。

8.根据权利要求7所述的方法,其特征在于:所述的步骤(12)具体包括:

(121)设定面积上下阈值;

(122)计算联通区域的阈值;

(123)将面积阈值之外的面积灰度值设为0;

(124)设定宽度上下阈值;

(125)计算剩余连通区域的宽度;

(126)将宽度阈值之外的区域灰度值设为0;

(127)设定高度上下阈值;

(128)将高度阈值之外的区域灰度值设为0。

9.根据权利要求1所述的方法,其特征在于:所述的步骤(2)具体包括:

(21)NURBS拟合:用最小二乘全局逼近的方法对提取出来的数据点进行拟合:

设定一条K次NURBS曲线可以表示如下:

<mrow> <mi>C</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>N</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>k</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo> </mrow> <msub> <mi>&omega;</mi> <mi>i</mi> </msub> <msub> <mi>P</mi> <mi>i</mi> </msub> </mrow> <mrow> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>N</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>k</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo> </mrow> <msub> <mi>&omega;</mi> <mi>i</mi> </msub> </mrow> </mfrac> <mo>,</mo> <mn>0</mn> <mo>&le;</mo> <mi>u</mi> <mo>&le;</mo> <mn>1</mn> <mo>,</mo> </mrow>

其中基函数

其中Pi(i=0,1,…n)为第i个控制顶点;ωi=(i=0,1,…,n)为Pi的权因子,由两者可知,当给定一条参数曲线的Pi、ωi、K和U后,就可以确定一条K次NURBS曲线,选择K=3;

(22)NURBS曲线参数化:根据提取出来的数据点{Qk},k=0,1,…,n,采用弦长参数化,得到各数据点的参数值:

令d为总弦长,则

(23)数据点权值的设定:权因子ωi只影响定义在参数区间[ui,ui+k)上的曲线形状,ωi可以看成控制顶点Pi对NURBS曲线的引力系数,ωi增大时,曲线被拉伸向控制点Pi,ωi减小时,曲线则远离控制点,为了避免非线性问题,设定权值为1;

(24)最小二乘曲线逼近:根据计算好的数据点的参数值和节点矢量;建立并求解线性最小二乘问题求解未知控制点:

由于不是曲线上与Qk最接近的点,令

<mrow> <msub> <mi>R</mi> <mi>k</mi> </msub> <mo>=</mo> <msub> <mi>Q</mi> <mi>k</mi> </msub> <mo>-</mo> <msub> <mi>N</mi> <mrow> <mn>0</mn> <mo>,</mo> <mi>p</mi> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mover> <mi>u</mi> <mo>&OverBar;</mo> </mover> <mi>k</mi> </msub> <mo>)</mo> </mrow> <msub> <mi>Q</mi> <mn>0</mn> </msub> <mo>-</mo> <msub> <mi>N</mi> <mrow> <mi>n</mi> <mo>,</mo> <mi>p</mi> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mover> <mi>u</mi> <mo>&OverBar;</mo> </mover> <mi>k</mi> </msub> <mo>)</mo> </mrow> <msub> <mi>Q</mi> <mi>m</mi> </msub> <mo>,</mo> <mi>k</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>m</mi> <mo>-</mo> <mn>1</mn> <mo>,</mo> </mrow>

然后令

<mrow> <mtable> <mtr> <mtd> <mrow> <mi>f</mi> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <msup> <mrow> <mo>|</mo> <msub> <mi>Q</mi> <mi>K</mi> </msub> <mo>-</mo> <mi>c</mi> <mrow> <mo>(</mo> <msub> <mover> <mi>u</mi> <mo>&OverBar;</mo> </mover> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>|</mo> </mrow> <mn>2</mn> </msup> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <msup> <mrow> <mo>|</mo> <msub> <mi>R</mi> <mi>K</mi> </msub> <mo>-</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <msub> <mi>N</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>p</mi> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mover> <mi>u</mi> <mo>&OverBar;</mo> </mover> <mi>k</mi> </msub> <mo>)</mo> </mrow> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>|</mo> </mrow> <mn>2</mn> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <mrow> <mo>(</mo> <msub> <mi>R</mi> <mi>K</mi> </msub> <mo>-</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <msub> <mi>N</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>p</mi> </mrow> </msub> <mo>(</mo> <msub> <mover> <mi>u</mi> <mo>&OverBar;</mo> </mover> <mi>k</mi> </msub> <mo>)</mo> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <mi>R</mi> <mi>K</mi> </msub> <mo>-</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <msub> <mi>N</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>p</mi> </mrow> </msub> <mo>(</mo> <msub> <mover> <mi>u</mi> <mo>&OverBar;</mo> </mover> <mi>k</mi> </msub> <mo>)</mo> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <mo>&lsqb;</mo> <msub> <mi>R</mi> <mi>K</mi> </msub> <msub> <mi>R</mi> <mi>K</mi> </msub> <mo>-</mo> <mn>2</mn> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <msub> <mi>N</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>p</mi> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mover> <mi>u</mi> <mo>&OverBar;</mo> </mover> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <mi>R</mi> <mi>K</mi> </msub> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <mrow> <mo>(</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <msub> <mi>N</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>p</mi> </mrow> </msub> <mo>(</mo> <msub> <mover> <mi>u</mi> <mo>&OverBar;</mo> </mover> <mi>k</mi> </msub> <mo>)</mo> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <msub> <mi>N</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>p</mi> </mrow> </msub> <mo>(</mo> <msub> <mover> <mi>u</mi> <mo>&OverBar;</mo> </mover> <mi>k</mi> </msub> <mo>)</mo> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>&rsqb;</mo> </mrow> </mtd> </mtr> </mtable> <mo>,</mo> </mrow>

Px,Pyf是关于n-1个变量P1,…,Pn-1的标量值函数[18],现应用标准的线性最小二乘拟合技术,为使目标函数f关于n-1个未知控制点的偏导都等于零,它的第个偏导为

这意味着

于是

上式是一个控制点P1,…,Pn-1为未知量的线性方程,令则得到n-1个含未知量和n-1个方程的线性方程组:

(NTN)P=R,

所述线性方程组中,有一个系数矩阵,两个右端项:由R中各元素的x,y坐标组成的列向量Rx,Ry;分别对应于两组未知量:由P中各控制点的x,y坐标组成的列向量Px,Py;解该线性方程组,即可得到各控制点的坐标;

(25)将求解全局逼近所需要的条件Pi、ωi、K和U代入到步骤(21),即可拟合出NURBS曲线。

10.根据权利要求6所述的方法,其特征在于:所述的步骤(3)具体包括:在运动控制器中,进行曲线插补,生成一系列曲线插补点,再通过给伺服电机每个伺服周期发送脉冲的方式,驱动焊机进行相应的焊接轨迹焊接,完成轮廓焊接过程。

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