基于双目视觉的大视场下工件焊缝自主定位方法及系统

文档序号:31186814发布日期:2022-08-19 22:23阅读:106来源:国知局
基于双目视觉的大视场下工件焊缝自主定位方法及系统
焊缝自主定位方法及系统。
9.根据本发明提供的一种基于双目视觉的大视场下工件焊缝自主定位方法,包括:
10.步骤s1:建立基于双目视觉的自动焊接系统;
11.步骤s2:基于相机标定并以双目相机为基准建立相机坐标系与图像像素坐标的关系, 通过手眼标定获取相机坐标系与机器人坐标系的转换矩阵;
12.步骤s3:通过双目视觉相机获取工件图像,基于获取的工件图像得到工件焊缝特征 点像素坐标;
13.步骤s4:通过极线约束,结合工件焊缝特征点于图像中的坐标,对特征点建立匹配 关系,确定同一个特征点在双目视觉相机两幅图中的像素坐标;基于同一个工件焊缝特 征点在双目视觉相机两幅图中的像素坐标利用相机坐标系与机器人坐标系的转换矩阵 获得工件焊缝特征点的机器人坐标;并对获得的工件焊缝特征点的机器人坐标进行误差 修正;
14.步骤s5:通过已经确定的特征点的机器人坐标系下的三维空间坐标计算工件焊缝中 心位置的坐标,完成工件焊缝的自主定位;根据特征点对焊接轨迹进行规划,并将数据 传输给机器人。
15.优选地,所述基于双目视觉的自动焊接系统包括:工控机1、采集卡2、焊接机器人 3、机器人控制柜4、旋转变位工作台5、双目视觉系统6以及待焊接件7;
16.所述工控机1与所述机器人控制柜4通过总线连接;所述机器人控制柜4与所述焊 接机器人3连接,从而控制机器人以及作为机器人外部轴的旋转变位系统的运动;
17.所述采集卡2安装于所述工控机1上;
18.所述双目视觉系统6包括了双目相机和云台;且所述双目相机固定在所述云台上; 并通过总线与所述采集卡2连接,实现所述工控机1对双目相机的控制以及两者之间的 数据传输;
19.所述待焊接件7放置在所述旋转变位工作台5上。
20.优选地,所述步骤s2采用:
21.步骤s2.1:去除畸变得到相机平面下的真实像素坐标(u

,v

);
[0022][0023]
其中,(u,v)表示特征点p在左右相机图像中对应像素点的坐标;k1、k2、k3是径向 畸变系数;p1、p2是切向畸变系数,r2=u2+v2;
[0024]
步骤s2.2:通过棋盘格法对双目相机进行内外参数标定,根据双目相机的内外参数 的标定建立空间点p的以相机为基准建立的相机坐标系的相机坐标与点p的图像像素 坐标的关系;
[0025]
真实像素坐标与相机坐标系坐标的关系:
[0026][0027]
[0028]
其中:
[0029][0030]
m2=[r t]
ꢀꢀ
(5)
[0031]
其中,(xw,yw,zw)表示世界坐标系下的坐标值;(xc,yc,zc)表示相机坐标系下的坐标 值;r表示世界坐标系到相机坐标系的旋转矩阵;t表示世界坐标系到相机坐标系的平移 矩阵;(u0,v0)表示像素坐标系原点;f表示相机的焦距;在成像平面和像素平面中,用d
x
和dy表示像元间距;
[0032]
步骤s2.3:手眼标定时,把标定板的棋盘格多组角点作为参照物,通过测量标定板 上角点的tcp坐标值和相机坐标值,运用最小二乘法求得相机坐标系到机器人坐标系的 转换矩阵t
c-r
,再将相机坐标系下的棋盘格点投影到机器人坐标系中计算误差;
[0033]
xr=t
c-r
·
xcꢀꢀ
(6)
[0034]
d=|x
r-t
c-r
·
xc|
ꢀꢀ
(7)
[0035]
其中,xc为相机坐标系,xr为机器人基座的坐标系;d表示计算误差。
[0036]
优选地,所述步骤s3采用:
[0037]
步骤s3.1:通过双目视觉相机获取工件图像,基于采集到的工件图像通过深度学习 算法确定图像中工件感兴趣区域;
[0038]
步骤s3.2:对确定的图像中工件感兴趣区域进行预处理,得到预处理后的图像;
[0039]
步骤s3.3:对预处理后的图像运用边缘检测方法对图像中的工件轮廓信息进行提取;
[0040]
步骤s3.4:采用霍夫变换检测工件及其焊缝边缘直线并合并特征直线;
[0041]
步骤s3.5:根据检测所得直线计算交点从而确定工件以及焊缝特征点的像素坐标。
[0042]
优选地,所述步骤s4采用:
[0043]
步骤s4.1:获取焊缝特征点在双目视觉相机其中一张图像中的成像点,通过极线约 束得到在双目视觉相机的另一幅图像中相对应的匹配点;
[0044]
步骤s4.2:通过焊缝特征点在左右图像中成像的像素坐标计算焊缝特征点在相机坐 标系下的三维坐标,并将相机坐标系下的三维坐标转化为机器人坐标系下的坐标;
[0045]
在双目相机左右图像中对应像素点的坐标分别为(u1,v1)和(u2,v2),
[0046][0047]
其中,(x,y,z)表示特征点的相机坐标系的坐标;
[0048]
[0049]
步骤s4.3:获取多组工件焊缝特征点计算后的机器人坐标数据,并用tcp点测量其 准确特征点的三维坐标值,针对不同的点对x、y、z的误差去极大极小值后,求平均值, 得到其偏移量作为坐标转换的修正值δt;
[0050]
xr'=xr+δt
ꢀꢀ
(10)。
[0051]
根据本发明提供的一种基于双目视觉的大视场下工件焊缝自主定位系统,包括:
[0052]
模块m1:建立基于双目视觉的自动焊接系统;
[0053]
模块m2:基于相机标定并以双目相机为基准建立相机坐标系与图像像素坐标的关系, 通过手眼标定获取相机坐标系与机器人坐标系的转换矩阵;
[0054]
模块m3:通过双目视觉相机获取工件图像,基于获取的工件图像得到工件焊缝特征 点像素坐标;
[0055]
模块m4:通过极线约束,结合工件焊缝特征点于图像中的坐标,对特征点建立匹配 关系,确定同一个特征点在双目视觉相机两幅图中的像素坐标;基于同一个工件焊缝特 征点在双目视觉相机两幅图中的像素坐标利用相机坐标系与机器人坐标系的转换矩阵 获得工件焊缝特征点的机器人坐标;并对获得的工件焊缝特征点的机器人坐标进行误差 修正;
[0056]
模块m5:通过已经确定的特征点的机器人坐标系下的三维空间坐标计算工件焊缝中 心位置的坐标,完成工件焊缝的自主定位;根据特征点对焊接轨迹进行规划,并将数据 传输给机器人。
[0057]
优选地,所述基于双目视觉的自动焊接系统包括:工控机1、采集卡2、焊接机器人 3、机器人控制柜4、旋转变位工作台5、双目视觉系统6以及待焊接件7;
[0058]
所述工控机1与所述机器人控制柜4通过总线连接;所述机器人控制柜4与所述焊 接机器人3连接,从而控制机器人以及作为机器人外部轴的旋转变位系统的运动;
[0059]
所述采集卡2安装于所述工控机1上;
[0060]
所述双目视觉系统6包括了双目相机和云台;且所述双目相机固定在所述云台上; 并通过总线与所述采集卡2连接,实现所述工控机1对双目相机的控制以及两者之间的 数据传输;
[0061]
所述待焊接件7放置在所述旋转变位工作台5上。
[0062]
优选地,所述模块m2采用:
[0063]
模块m2.1:去除畸变得到相机平面下的真实像素坐标(u

,v

);
[0064][0065]
其中,(u,v)表示特征点p在左右相机图像中对应像素点的坐标;k1、k2、k3是径向 畸变系数;p1、p2是切向畸变系数,r2=u2+v2;
[0066]
模块m2.2:通过棋盘格法对双目相机进行内外参数标定,根据双目相机的内外参数 的标定建立空间点p的以相机为基准建立的相机坐标系的相机坐标与点p的图像像素 坐标的关系;
[0067]
真实像素坐标与相机坐标系坐标的关系:
[0068]
[0069][0070]
其中:
[0071][0072]
m2=[r t]
ꢀꢀ
(5)
[0073]
其中,(xw,yw,zw)表示世界坐标系下的坐标值;(xc,yc,zc)表示相机坐标系下的坐标 值;r表示世界坐标系到相机坐标系的旋转矩阵;t表示世界坐标系到相机坐标系的平移 矩阵;(u0,v0)表示像素坐标系原点;f表示相机的焦距;在成像平面和像素平面中,用d
x
和dy表示像元间距;
[0074]
模块m2.3:手眼标定时,把标定板的棋盘格多组角点作为参照物,通过测量标定板 上角点的tcp坐标值和相机坐标值,运用最小二乘法求得相机坐标系到机器人坐标系的 转换矩阵t
c-r
,再将相机坐标系下的棋盘格点投影到机器人坐标系中计算误差;
[0075]
xr=t
c-r
·
xcꢀꢀ
(6)
[0076]
d=|x
r-t
c-r
·
xc|
ꢀꢀ
(7)
[0077]
其中,xc为相机坐标系,xr为机器人基座的坐标系;d表示计算误差。
[0078]
优选地,所述模块m3采用:
[0079]
模块m3.1:通过双目视觉相机获取工件图像,基于采集到的工件图像通过深度学习 算法确定图像中工件感兴趣区域;
[0080]
模块m3.2:对确定的图像中工件感兴趣区域进行预处理,得到预处理后的图像;
[0081]
模块m3.3:对预处理后的图像运用边缘检测方法对图像中的工件轮廓信息进行提取;
[0082]
模块m3.4:采用霍夫变换检测工件及其焊缝边缘直线并合并特征直线;
[0083]
模块m3.5:根据检测所得直线计算交点从而确定工件以及焊缝特征点的像素坐标。
[0084]
优选地,所述模块m4采用:
[0085]
模块m4.1:获取焊缝特征点在双目视觉相机其中一张图像中的成像点,通过极线约 束得到在双目视觉相机的另一幅图像中相对应的匹配点;
[0086]
模块m4.2:通过焊缝特征点在左右图像中成像的像素坐标计算焊缝特征点在相机坐 标系下的三维坐标,并将相机坐标系下的三维坐标转化为机器人坐标系下的坐标;
[0087]
在双目相机左右图像中对应像素点的坐标分别为(u1,v1)和(u2,v2),
[0088]
3、机器人控制柜4、旋转变位工作台5、双目视觉系统6以及待焊接件7;
[0110]
所述工控机1与所述机器人控制柜4通过总线连接;所述机器人控制柜4与所述焊 接机器人3连接,从而控制机器人以及作为机器人外部轴的旋转变位系统的运动;
[0111]
所述采集卡2安装于所述工控机1上;
[0112]
所述双目视觉系统6包括了双目相机和云台;且所述双目相机固定在所述云台上; 并通过总线与所述采集卡2连接,实现所述工控机1对双目相机的控制以及两者之间的 数据传输;
[0113]
所述待焊接件7放置在所述旋转变位工作台5上。
[0114]
步骤s2:基于相机标定并以双目相机为基准建立相机坐标系与图像像素坐标的关系, 通过手眼标定获取相机坐标系与机器人坐标系的转换矩阵;
[0115]
具体地,所述步骤s2采用:
[0116]
步骤s2.1:去除畸变得到相机平面下的真实像素坐标(u

,v

);
[0117][0118]
其中,(u,v)表示特征点p在左右相机图像中对应像素点的坐标;k1、k2、k3是径向 畸变系数;p1、p2是切向畸变系数,r2=u2+v2;
[0119]
步骤s2.2:通过棋盘格法对双目相机进行内外参数标定,根据双目相机的内外参数 的标定建立空间点p的以相机为基准建立的相机坐标系的相机坐标与点p的图像像素 坐标的关系;
[0120]
真实像素坐标与相机坐标系坐标的关系:
[0121][0122][0123]
其中:
[0124][0125]
m2=[r t]
ꢀꢀ
(5)
[0126]
其中,(xw,yw,zw)表示世界坐标系下的坐标值;(xc,yc,zc)表示相机坐标系下的坐标 值;r表示世界坐标系到相机坐标系的旋转矩阵;t表示世界坐标系到相机坐标系的平移 矩阵;(u0,v0)表示像素坐标系原点;f表示相机的焦距;在成像平面和像素平面中,用d
x
和dy表示像元间距;
[0127]
步骤s2.3:手眼标定时,把标定板的棋盘格多组角点作为参照物,通过测量标定板 上角点的tcp坐标值和相机坐标值,运用最小二乘法求得相机坐标系到机器人坐标系的 转换矩阵t
c-r
,再将相机坐标系下的棋盘格点投影到机器人坐标系中计算误差;
传输给机器人。
[0150]
根据本发明提供的一种基于双目视觉的大视场下工件焊缝自主定位系统,包括:
[0151]
模块m1:建立基于双目视觉的自动焊接系统;
[0152]
具体地,所述基于双目视觉的自动焊接系统包括:工控机1、采集卡2、焊接机器人 3、机器人控制柜4、旋转变位工作台5、双目视觉系统6以及待焊接件7;
[0153]
所述工控机1与所述机器人控制柜4通过总线连接;所述机器人控制柜4与所述焊 接机器人3连接,从而控制机器人以及作为机器人外部轴的旋转变位系统的运动;
[0154]
所述采集卡2安装于所述工控机1上;
[0155]
所述双目视觉系统6包括了双目相机和云台;且所述双目相机固定在所述云台上; 并通过总线与所述采集卡2连接,实现所述工控机1对双目相机的控制以及两者之间的 数据传输;
[0156]
所述待焊接件7放置在所述旋转变位工作台5上。
[0157]
模块m2:基于相机标定并以双目相机为基准建立相机坐标系与图像像素坐标的关系, 通过手眼标定获取相机坐标系与机器人坐标系的转换矩阵;
[0158]
具体地,所述模块m2采用:
[0159]
模块m2.1:去除畸变得到相机平面下的真实像素坐标(u

,v

);
[0160][0161]
其中,(u,v)表示特征点p在左右相机图像中对应像素点的坐标;k1、k2、k3是径向 畸变系数;p1、p2是切向畸变系数,r2=u2+v2;
[0162]
模块m2.2:通过棋盘格法对双目相机进行内外参数标定,根据双目相机的内外参数 的标定建立空间点p的以相机为基准建立的相机坐标系的相机坐标与点p的图像像素 坐标的关系;
[0163]
真实像素坐标与相机坐标系坐标的关系:
[0164][0165][0166]
其中:
[0167][0168]
m2=[r t]
ꢀꢀ
(5)
[0169]
其中,(xw,yw,zw)表示世界坐标系下的坐标值;(xc,yc,zc)表示相机坐标系下的坐标 值;r表示世界坐标系到相机坐标系的旋转矩阵;t表示世界坐标系到相机坐标系的平移 矩阵;(u0,v0)表示像素坐标系原点;f表示相机的焦距;在成像平面和像素平面中,用d
x
和dy表示像元间距;
[0170]
模块m2.3:手眼标定时,把标定板的棋盘格多组角点作为参照物,通过测量标定板 上角点的tcp坐标值和相机坐标值,运用最小二乘法求得相机坐标系到机器人坐标系的 转换矩阵t
c-r
,再将相机坐标系下的棋盘格点投影到机器人坐标系中计算误差;
[0171]
xr=t
c-r
·
xcꢀꢀ
(6)
[0172]
d=|x
r-t
c-r
·
xc|
ꢀꢀ
(7)
[0173]
其中,xc为相机坐标系,xr为机器人基座的坐标系;d表示计算误差。
[0174]
模块m3:通过双目视觉相机获取工件图像,基于获取的工件图像得到工件焊缝特征 点像素坐标;
[0175]
具体地,所述模块m3采用:
[0176]
模块m3.1:通过双目视觉相机获取工件图像,基于采集到的工件图像通过深度学习 算法确定图像中工件感兴趣区域;
[0177]
模块m3.2:对确定的图像中工件感兴趣区域进行预处理,得到预处理后的图像;
[0178]
模块m3.3:对预处理后的图像运用边缘检测方法对图像中的工件轮廓信息进行提取;
[0179]
模块m3.4:采用霍夫变换检测工件及其焊缝边缘直线并合并特征直线;
[0180]
模块m3.5:根据检测所得直线计算交点从而确定工件以及焊缝特征点的像素坐标。
[0181]
模块m4:通过极线约束,结合工件焊缝特征点于图像中的坐标,对特征点建立匹配 关系,确定同一个特征点在双目视觉相机两幅图中的像素坐标;基于同一个工件焊缝特 征点在双目视觉相机两幅图中的像素坐标利用相机坐标系与机器人坐标系的转换矩阵 获得工件焊缝特征点的机器人坐标;并对获得的工件焊缝特征点的机器人坐标进行误差 修正;
[0182]
具体地,所述模块m4采用:
[0183]
模块m4.1:获取焊缝特征点在双目视觉相机其中一张图像中的成像点,通过极线约 束得到在双目视觉相机的另一幅图像中相对应的匹配点;
[0184]
模块m4.2:通过焊缝特征点在左右图像中成像的像素坐标计算焊缝特征点在相机坐 标系下的三维坐标,并将相机坐标系下的三维坐标转化为机器人坐标系下的坐标;
[0185]
在双目相机左右图像中对应像素点的坐标分别为(u1,v1)和(u2,v2),
[0186][0187]
其中,(x,y,z)表示特征点的相机坐标系的坐标;
[0188][0189]
其中,上标1和上标2分别表示双目相机的左右相机;
[0190]
模块m4.3:获取多组工件焊缝特征点计算后的机器人坐标数据,并用tcp点测量其 准确特征点的三维坐标值,针对不同的点对x、y、z的误差去极大极小值后,求平均值, 得到
其偏移量作为坐标转换的修正值δt;
[0191]
xr'=xr+δt
ꢀꢀ
(10)。
[0192]
模块m5:通过已经确定的特征点的机器人坐标系下的三维空间坐标计算工件焊缝中 心位置的坐标,完成工件焊缝的自主定位;根据特征点对焊接轨迹进行规划,并将数据 传输给机器人。
[0193]
实施例2
[0194]
实施例2是实施例1的优选例
[0195]
本发明的目的是为了提供一种基于双目视觉的焊缝自主识别及定位方法,实现 大视场下工件的焊接自主定位和轨迹规划,解决目前焊接示教过程复杂效率低的问 题,克服现有技术存在的缺陷。
[0196]
为了实现上述目的,本发明提出一种基于双目视觉的焊缝自主识别及定位方法 及系统,通过双目相机拍摄大视场下的工件照片,结合图像处理寻找焊缝坡口特征 点,对左右相机所获图片中的特征点进行匹配并计算其机器人坐标系下的空间坐标, 实现快速精准的工件的焊接自主定位和轨迹规划。
[0197]
如图1所示,本发明提供了一种基于双目视觉的工件焊缝自主定位方法,包括:
[0198]
步骤s1:构建自动焊接系统。如图2所示,将工控机1及采集卡2、焊接机器 人3及其控制柜4、旋转变位工作台5、双目视觉系统6、以及待焊工件7等部件组 成自动焊接系统。如图2所示,本实施例由工控机1及采集卡2、kuka kr60-3机器 人3及其控制柜4、旋转变位工作台5、双目视觉系统6、以及待焊工件7等部件组 成,双目视觉系统6安装在机器人3外侧,距离旋转变位工作台的工作距离约为2 到3m,视野范围为1.5m
×
1.2m,旋转工作台5处于机器人3正前方,作为库卡机器 人的外部轴所使用。相机为flir公司生产的型号bfs-pge-200s6m-c相机,分辨率 5472
×
3648,采用v2528-mpy镜头。采集卡型号为point grey双端口 gige-pcie2-2p02网络接口卡。
[0199]
所述的工控机1与机器人控制柜4通过总线相连,控制机器人3以及作为机器 人外部轴驱动的旋转变位系统5的运动。
[0200]
所述的双目视觉系统6固定在机器人和工作台外的云台上,通过总线与安装于 工控机1上的采集卡2相连,实现工控机1对双目相机6的控制以及两者间的数据 传输。
[0201]
步骤s2:系统标定。根据双目相机和机器人之间的几何模型,对相机内外参数 进行标定,获得像素坐标系到相机坐标系的转换矩阵。再通过最小二乘法进行机器 人手眼标定,最终完成相机坐标系到机器人坐标系的转换。
[0202]
步骤s3:图像处理。从双目相机获取工件图像,通过深度学习网络获取工件roi (感兴趣区域);结合图像滤波、边缘提取、霍夫变换等方法求取工件焊缝特征点 像素坐标。
[0203]
步骤s4:特征点空间坐标计算。通过极线约束,结合特征点于图像中的空间方 位,对特征点的匹配程度进行衡量,将这些点建立匹配关系,确定同一个特征点在 两幅图中的像素坐标。利用基础矩阵结合坐标系转换矩阵计算各特征点的空间坐标。 把不同位置特征点x、y、z三个方向上的误差量化,并得出双目相机模型的修正矩 阵δt。之后运用此修正矩阵对特征点的三维坐标再次进行修正。
[0204]
步骤s5:焊接轨迹规划。根据所求特征点对焊接轨迹进行规划,并将数据传输 给机器人,完成了机器人对于大视场下工件焊缝自主定位。通过已经确定的特征点 的机器人
坐标系下的三维空间坐标,可以进而计算工件焊缝中心位置的坐标,从而 完成工件焊缝的自主定位。坐标值的系统测量误差也达到了0.8mm的精度要求。
[0205]
进一步的,所述步骤s2包括:
[0206]
步骤s2.1:双目相机标定并求得像素坐标系到相机坐标系的坐标转换关系。为 了将焊缝特征点从图像的像素坐标系转换至世界坐标系下,需要进行双目相机的内 外参数标定。
[0207]
通过棋盘格法对双目相机进行内外参数标定,采集标定板的不同位置不同姿态 下的左右相机图片共84组,运用matlab相机标定工具toolbox_calib得到相机各 参数,并通过反投影量化了标定参数的误差,根据误差判断是否重新标定。
[0208]
具体的,选择具有9行10列方格的标准棋盘格板,每个棋盘格的大小为30
×
30mm。 在选择棋盘格角点时,因为matlab相机标定工具箱的要求,必须保证x和y方向的 方格数一个为偶数,一个为奇数,标定时以中间的8行9列的棋盘格角点为准。
[0209]
将双目相机系统位置固定后,确保两相机相对位置固定,相机外参数不会发生 改变。将标定板放置在实际工件的放置区域内,尽可能多地在不同位置和不同姿态 下拍摄棋盘格的照片,并且要求照片覆盖标定板的每个方格。使用了拍摄的76组与 手眼标定时拍摄的8组,共84组照片进行标定。
[0210]
进行标定时需要将左右相机分别进行单目标定并计算内参数,最后根据两相机 的标定结果进行双目标定计算外参数。双目标定时需要同时向工具箱中导入左右相 机的单目标定结果,进行双目标定后会对单目标定的结果进行修正。
[0211]
根据标定工具箱中的优化函数计算出相机的内外参数。其中内部参数包括左右 相机的焦距长度f
l
、fr,左右像平面的主点坐标c
l
、cr,相机的畸变系数kc= [k1;k2;p1;p2;k3],前两项与最后一项为径向畸变系数,第三、四项为切向畸变系数。
[0212]
外参数包括,右相机到左相机的旋转矩阵r,右边相机到左边相机的平移向量t, 用以表示两个相机之间的位置关系。
[0213]
根据双目标定所得内外参数可以建立空间某一点p其世界坐标与其图像像素坐 标的关系,如图3所示,设点p在世界坐标系下的坐标值为(xw,yw,zw),在相机平 面下的坐标值为(xc,yc,zc),其在像平面下的理想成像点pn,发生畸变后的实际成像 点为pi。pn点在像素坐标系pcs下的坐标点为(u,v),成像平面下的坐标为(x,y)。畸 变后的成像点在像素坐标系下为(ui,vi),在成像平面坐标系下的坐标为(xi,yi)。由小 孔成像原理,坐标公式推导如下:
[0214]
(1)目标点p在相机平面坐标系下的坐标(xc,yc,zc)与在世界坐标系下的坐标 (xw,yw,zw)可由下式:
[0215][0216]
式中,r是世界坐标系到相机坐标系的旋转矩阵,为3
×
3的矩阵,t为世界坐 标系到相机坐标系的3
×
1的平移矩阵。
[0217]
(2)在成像平面和像素平面中,用d
x
和dy表示像元间距,用(u0,v0)表示像素坐 标系原点即主点在成像平面坐标系下的坐标,即可得以下关系式:
[0218][0219]
(3)由相似三角形的关系可知pn(x,y)与p点相对于相机坐标系下的坐标点 (xc,yc,zc)有如下几何关系:
[0220][0221]
其中f为相机的焦距。
[0222]
(4)把前三式转化为矩阵形式,可以推导出可以推导出pn点坐标(u,v)与p点 世界坐标系坐标(xw,yw,zw)的关系为:
[0223][0224]
其中:
[0225][0226]
m2=[r t]
[0227]
令m=m1
·
m2,则:
[0228][0229]
(5)设空间点(x,y,z)在双目相机左右图像中对应像素点的坐标分别为(u1,v1) 和(u2,v2),则可推得:
[0230][0231]
依据此关系我们可以将点的像素坐标转换为相机坐标。
[0232]
(6)考虑相机畸变模型,主要考虑径向畸变与切向畸变。考虑畸变后投影点pi的坐标为:
[0233][0234]
其中,k1、k2、k3是径向畸变系数,p1、p2是切向畸变系数,r2=x2+y2。其 中,δxr表示x方向的径向畸变,δyr表示y方向的径向畸变,δx
t
表示x方向的切向 畸变,δy
t
表示y方向的切向畸变,r4表示r的4次方,r6表示r的六次方,r的二 次方r2=x2+y2,变量r与下标r并无
关联
[0235]
根据上述(1)至(6)步公式推导,可以建立图像中点p其世界坐标与其图像像素 坐标的关系。根据标定结果可以确定(4)步中的矩阵m1及m2矩阵进而计算得出矩 阵m。已知点p在左右相机图像中对应像素点的坐标分别为(u1,v1)和(u2,v2),结 合(6)步,去除畸变求得相机平面下的真实像素坐标(u1',v1')和(u2',v2'),根据(5) 步的方程即可求解点p的世界坐标系坐标(x,y,z),完成从像素坐标到世界坐标的转 换。上述步骤用下式指代:
[0236]
(x,y,z)=f(u1,v1,u2,v2)
[0237]
步骤s2.2:手眼标定求取相机坐标系至机器人坐标系的转换矩阵。由于机器人 实际运行时是以机器人坐标系为基准,而步骤s201中所得的特征点坐标是建立在以 相机为基准的世界坐标系(相机坐标系)中,故需要进行坐标转换。如图4所示,设x
t
为机器手的tcp坐标系,xc为相机坐标系,xr为机器人基座的坐标系,xw为世界坐 标系。坐标转换公式如下所示:
[0238]
xr=t
c-r
·
xc[0239]
为了求得将特征点从相机坐标系转换到机器人坐标系的转换矩阵t
c-r
,需要进 行手眼标定,即获取多组角点的机器人坐标系坐标以及对应的相机坐标系坐标,利 用上式求解转换矩阵。进行手眼标定时,把标定板的棋盘格角点作为参照物,通过 测量标定板上角点的tcp坐标值和相机坐标值,运用最小二乘法求得相机坐标系到 机器人坐标系的转换矩阵t
c-r
,再将相机坐标系下的棋盘格点投影到机器人坐标系 中计算误差。
[0240]
在具体标定时,将标定板放在焊接操作台上,通过双目相机系统采集标定板的 照片,再求出其在相机坐标系下的坐标xc并记录。然后通过手动控制机器人tcp点 对准棋盘格中如图5中所示的1~4号点,在机器人控制器中读取这些特征点在机器 人基座坐标系下的坐标xr,为了提高标定的精度,以这4个点为基础计算中间72 点的机器人坐标系下的坐标,这样操作一方面可以减少手动操作机器人对准棋盘格 角点时所产生的人工误差,另一方面能大大节省时间,并获取足够数量的数据点。 之后,改变标定板的位置和姿态,尽量包含工件所在区域,得到共8组不同位置下 的棋盘格图片和特征点坐标。将8组角点坐标从每组4个扩充到每组72个,将这 576个点运用最小二乘法进行数据拟合求得的转换矩阵t
c-r

[0241]
之后进行验证,用所求得的转换矩阵t
c-r
,对576个点进行反投影,通过下方 公式求出各点的残余误差。若误差过大则重新标定。
[0242]
d=|x
r-t
c-r
·
xc|
[0243]
最终各点残余误差的平均值为0.1656mm,精度较好。
[0244]
进一步地,所述步骤s3包括:
[0245]
步骤s3.1:基于采集到的待焊工件图像通过深度学习算法确定图像中工件感兴 趣区域,排除多余背景的干扰;
[0246]
具体地,所述步骤s3.1采用:
[0247]
步骤s3.1.1:将采集到的待焊工件图像通过训练后的深度学习网络生成包含大 部分工件图像像素的掩膜图像;
[0248]
步骤s3.1.2:掩膜图像通过形态学处理将掩膜扩大并修正,从而将工件完整地 包含进去,实现工件与背景基本分离的效果。
[0249]
更为具体地,采用:
提取,为寻找特征线和特征点做准备;
[0267]
具体地,所述步骤s3.3采用:
[0268]
步骤s3.3.1:通过canny边缘检测提取待焊工件及焊缝边缘轮廓;canny边缘 检测算法包含以下几个步骤:第一步为使用高斯滤波器对图像进行去噪。由于边缘 检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因 此必须采用滤波器来改善与噪声有关的边缘检测器的性能。常见的滤波方法主要有 高斯滤波,即采用离散化的高斯函数产生一组归一化的高斯核,然后基于高斯核函 数对图像灰度矩阵的每一点进行加权求和。第二步便是计算梯度幅值和方向。第三 步,在边缘上使用非最大抑制(nms),这一步排除非边缘像素,仅仅保留了一些细线 条(候选边缘)。最后,canny算法使用了滞后阈值,包含两个阈值分别为高阈值 和低阈值。
[0269]
(1)若某一像素位置的幅值超过高阈值,该像素阈值被保留为边缘像素
[0270]
(2)若某一像素位置的幅值小于低阈值,该像素被排除
[0271]
(3)若某一像素位置的幅值在两个阈值之间,该像素仅仅在连接到一个高于高阈 值的像素时被保留。
[0272]
步骤s3.3.2:对曲线图像施加闭运算联通canny算子提取边缘数据;闭运算即 针对白色像素先膨胀后腐蚀,能够填平小孔,弥合小裂缝,而总的位置和形状不变, 能够连通更多的图像区域。
[0273]
步骤s3.3.3:基于八连通的概念删除总面积小的连通像素保留边缘主体。如图 3所示,四连通域指的是像素周围上下左右四个区域,而八连通域指的是像素周围 的八个区域。所需要保留的边缘像素曲线往往是以八连通的方式形成连通区域的, 只需要对八连通的连通区域的大小进行判断,将过小的连通区域当作噪点排除,即 可保留完整的边缘曲线。实施例中仅保留连通域大小100以上的像素区域。
[0274]
步骤s3.4:通过直线检测突出工件边缘特征,便于之后提取特征点;具体地, 采用霍夫变换检测工件及其焊缝边缘直线并合并特征直线;
[0275]
具体地,所述步骤s3.4采用:
[0276]
如图4所示,步骤s3.4.1:在霍夫变换中,直线用数学表达式ρ=xcosθ+ ysinθ来表示。其中,ρ是原点到直线的垂直距离,θ为直线的垂线与横轴顺时针 方向的夹角。
[0277]
如果一条线在原点下方经过,ρ的值就应该大于0,角度小于180,但是如果从 原点上方经过的话,角度不是大于180,也是小于180,但ρ的值小于0。垂直的线 角度为0度,水平线的角度为90度。只要确定了ρ与θ的值以及原点的坐标,便能 得到直线在图像中的具体位置。
[0278]
其算法设计如下步骤:
[0279]
步骤s3.4.1.1:将参数空间(ρ,θ)量化,赋初值给一个二维矩阵m,m(ρ,θ) 就是一个累加器。
[0280]
步骤s3.4.1.2:对边缘图像中的每个像素点进行变换得到一组(ρ,θ),将该组 (ρ,θ)对应的累加器中的数值加1。
[0281]
步骤s3.4.1.3:当所有的像素点都处理完毕后,分析得到的累加器m(ρ,θ), 设置一个阈值t,当m(ρ,θ)》t时,就认为存在一条有意义的直线,对应的(ρ,θ) 就是这条直线方程的参数。
[0282]
步骤s3.4.1.4:根据(ρ,θ)和点(x,y)计算出直线方程。
[0283]
步骤s3.4.2:合并特征直线。由于在边缘检测的过程当中,我们所获得的焊缝 边缘并不是一条平滑的直线,很多情况下是一串不连续的边缘点。因此,用边缘图 进行霍夫变换后的结果往往是一条边缘可能测出多组直线,需要将这些特征直线进 行合并处理。
[0284]
依据每条直线的(ρ,θ)值对它们进行分组。如图5所示,首先根据θ值将全部 直线进行排序,对排序后的直线在θ值发生跳变处设置标记,这样即可完成初步的 直线分组。下一步对每组直线根据ρ由小到大进行排序,与前一步相似,同样在ρ 值发生跳变处设置标记。这样就可以完成直线分类。θ值的阈值取π/10,ρ值的 阈值取25。
[0285]
由于同一组需要合并的直线之间的ρ和θ非常接近,故合并后的直线的 (ρ',θ')采用将所有直线的ρ和θ相加取平均值的方法,简单有效而且误差不大。
[0286][0287][0288]
步骤s3.5:根据检测所得直线计算交点从而确定工件以及焊缝特征点的像素坐 标。
[0289]
具体地,如图6所示,所述步骤s3.5采用:步骤s3.4所得的特征直线5中可 以分辨出工件上边缘的四条直线以及焊缝边缘的两条直线。考虑到对于坡口较浅的 焊件,焊缝边缘的识别误差会较大,因此需要在坡口附近开设小区域的方式,在该 区域中进行霍夫变换以及交点的计算。
[0290]
上边缘四条直线的交点的所在区域即为工件上方四个角点的所在区域,根据上 方角点以及焊缝边缘直线,可以大致将坡口角点的所在位置6在图中找出。
[0291]
针对小区域内部边缘特征进行直线提取即可计算求得坡口角点,设待求焊缝特 征点p的像素坐标为(x,y),所提取的两条直线分别为l1和l2,l1的直线方程为:
[0292]
ρ1=x cosθ1+y sinθ1[0293]
l2的直线方程为:
[0294]
ρ2=x cosθ2+y sinθ2[0295]
解得焊缝特征点p的坐标为:
[0296][0297]
其中,ρ1是原点到直线l1的垂直距离,θ1为直线l1的垂线与横轴顺时针方向的 夹角;ρ2是原点到直线l2的垂直距离,θ2为直线l2的垂线与横轴顺时针方向的夹角。
[0298]
进一步的,所述步骤s4包括:
[0299]
步骤s4.1:特征点匹配。即已知空间特征点在两图像中的其中的一个成像点(或 称为源匹配点),后在另一幅图像上寻找与之相对应的目标匹配点(或称为同名像 点),完
[0320]
其中l2是3
×
1向量,代表着直线方程中的三个系数a、b、c,即:
[0321]
l2=ax+by+c
[0322]
虽然理论上p点在右图中的像素点应该在对极线上,但由于相机的畸变、标定 的误差、角点提取不准确等种种因素,导致像点在对极线周围。我们可以通过计算 右图特征点到到左图对应点的对极线的距离d作为极线约束的误差,将其量化。右 图中对应点q的像素坐标为x2=(u
2 v
2 1)
t
[0323]
到对极线的距离d可用下方公式表示:
[0324][0325]
在实际判断匹配情况时,我们可以通过设立一个误差阈值,当匹配点对的d超 过一定值时,则认为两点并不匹配。各点误差的平均值为0.5724pixel,精度较好。
[0326]
步骤s4.2:空间坐标计算。
[0327]
根据步骤s2.1建立的双目相机的几何模型,我们可以通过特征点在左右图像中 成像的像素坐标,通过公式可以计算出该点在相机坐标系(左相机坐标系)下的三 维坐标,可用如下公式表示:
[0328]
(xc,yc,zc)=f(u1,v1,u2,v2)
[0329]
通过步骤s2.2机器人手眼标定得到的相机坐标系到机器人坐标系的转换矩阵 t
c-r
,将计算得到的相机坐标系坐标xc(xc,yc,zc)转换到在机器人坐标系xr(xr,yr,zr) 下的坐标:
[0330]
xr=t
c-r
·
xc[0331]
最终实现特征点从像素坐标(u1,v1),(u2,v2)到机器人坐标系坐标(xr,yr,zr)的转 换。
[0332]
步骤s4.3:系统误差修正。
[0333]
实际测量时发现所得坐标在某一固定误差附近波动,考虑到实际焊接工艺的需 求,为降低误差,需要进一步对误差进行修正。为了观察数据点的波动以及误差情 况,通过不断拍摄同一工件的图像,获取20组工件特征点计算后的机器人坐标数据, 并用tcp点测量其准确特征点的三维坐标值。将连续多组坐标数据放在一起观察可 以发现,去除极大极小值后,所得坐标相对稳定。这种误差产生的原因可能是因为 在标定时存在系统误差矩阵。为了消除此误差,可以针对不同的点对x、y、z的误 差,去极大极小值后,求取平均值,得到其偏移量,作为坐标转换的修正值δt。最 终坐标:
[0334]
xr'=xr+δt
[0335]
运用此修正矩阵对特征点的三维坐标再次进行修正,测得与真实特征点的平均 距离误差为0.770mm,证明了修正矩阵具有一定的适用性。
[0336]
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系 统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明 提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制 器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置 及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模 块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是 实现方法的软件程序又可以是硬
件部件内的结构。
[0337]
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上 述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改, 这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的 特征可以任意相互组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1