APP下载

一种双目视觉引导的工业机器人铣边方法

2020-07-02

航空制造技术 2020年9期
关键词:手眼双目标定

(厦门大学航空航天学院,厦门361102)

铣边加工广泛用于去除焊接件、注塑件、金属压铸件等工件的毛刺和毛边,获得平整光洁的边缘或断面。通常采用手工、铣床、专用铣边机或碾磨机等进行铣边加工。手工铣边存在劳动强度大、环境恶劣、效率低、尺寸一致性差等问题。采用铣床等则存在工件尺寸受限制,只适用于特定工件或简单边缘等问题。工业机器人具有较大的工作空间,能生成复杂加工轨迹,因而被用于铣边加工中,克服上述铣边方法的不足。传统的工业机器人需通过示教编程生成铣削轨迹。对于复杂轨迹,示教点多、操作繁琐、耗时长,限制了工业机器人在铣边加工中的应用。本文提出的双目视觉引导的工业机器人铣边方法将提高工业机器人铣边轨迹生成效率。

已有不少研究围绕带视觉的工业机器人展开。区志财等[1]利用视觉系统定位放置在二维平面上的工件,控制机器人抓取工件并按照预先设定好的程序对其打磨抛光。王连生等[2]利用机器视觉与蚁群算法优化机器人去毛刺路径,引导机器人完成去毛刺操作。上述方案均采用单目视觉方案,难以获得工件任意平面上边缘轨迹的三维信息。Mizukawa等[3]使用视觉系统实时获取工件局部二维图像,重建被加工部分的三维模型,并根据三维模型的尺寸规划机器人加工路径,但其最终加工效果并无理想的精度评价。RTS 公司使用机器人视觉辅助系统完成舰船螺旋桨的生产,并使用CAD模型监督精密叶片的磨削[4],但其精确轨迹的获取无法脱离CAD模型的几何参数。

本文提出了一种双目视觉引导下工业机器人铣边的方法,适用于由三维平面所组成的工件,无需已知或重构工件的三维模型。该方法主要包括以下3个步骤:(1)采用张正友标定法计算出双目相机的内外参数,再根据Tsai-Lenz 手眼标定法求解双目相机坐标系与机器人基坐标系的手眼转换矩阵;(2)对双目图像进行二值化处理来检测工件边缘,并基于预先设置的ArUco 标签建立双目图像上边缘采样点的对应关系;(3)根据手眼转换矩阵和所匹配的边缘采样点计算工件边缘上的三维采样点,将三维采样点进行投影和拟合,生成机器人铣边轨迹和作业文件,并将作业文件发送至机器人控制柜,使机器人执行铣边操作。

双目相机的手眼标定

1 相机标定

通过相机标定获取相机内参,对图像畸变进行校正。而手眼标定将建立相机坐标系和机器人坐标系之间的转换关系[5]。本文采用张正友标定法[6]完成对双目相机内外参数的标定和畸变矫正。

设一点在世界坐标系中的坐标为(xw,yw,zw),该点在相机成像平面上生成的像点为图像坐标系中的像素(u,v)。则根据相机成像的针孔成像模型,有如下关系[7]:

式中,zc表示该点在相机坐标系中的z坐标,cx=f/dx,cy=f/dy,f表示镜头焦距,dx和dy表示像素在成像平面坐标系x和y方向上的物理尺寸,(u0,v0)表示图像坐标系原点表示从世界坐标系到相机坐标系的旋转矩阵表示从世界坐标系到相机坐标系的平移向量。H1为相机内参数矩阵,描述从相机坐标系到图像坐标系的转换关系;H2为外参数矩阵,描述从世界坐标系到相机坐标系的转换关系。

在实际成像过程中,由于镜头制造工艺的限制造成了成像畸变,使点根据前述针孔模型计算得到的理想成像坐标与实际成像坐标之间存在一定的误差。为了准确计算坐标,还需消除径向畸变和切向畸变[8]。成像平面上有畸变的实际成像点坐标与消除畸变后的理想成像点坐标的关系如下:

式中,(x',y')为理想成像点坐标,(x,y)为实际成像点坐标,(δxr,δyr)为径向畸变,k1、k2、k3为径向畸变系数,(δxd,δyd)为切向畸变,p1、p2为切向畸变系数为实际成像点到成像平面坐标系原点的距离。再根据式(3)计算出理想成像点在图像坐标系中的像素坐标(u',v')为式(3)。

图1 手眼标定示意图Fig.1 Schematic diagram of hand-eye calibration

2 手眼标定

如图1所示,Obase为机器人基坐标系,Ocamera为单个相机坐标系,Oend为机器人末端执行器坐标系,Ogrid为标定板坐标系。根据相机标定获得Ocamera与Ogrid的转换关系,用矩阵cgH表示。根据工业机器人五点示教法获得Oend与Obase的转换关系,用矩阵beH表示。末端执行器与棋盘格标定板均固定安装在机器人末端法兰上,因此Oend与Ogrid的转换关系是固定的,用常量矩阵表示。Ocamera与Obase的转换关系为手眼转换关系,用矩阵表示。

根据Tsai-Lenz 手眼标定法[9]列出矩阵方程:

机器人的2个姿态只能计算出一对矩阵C与D。根据上述矩阵方程和旋转矩阵的性质,计算一次手眼转换矩阵X需要机器人4个姿态,计算两对矩阵C与D。将第一对中的矩阵记为p,第二对中的矩阵记为q,则手眼转换矩阵X中的旋转矩阵由下式给出:

式中,kCp、kCq为矩阵C对应的旋转轴单位向量,kDp、kDq为矩阵D对应的旋转轴单位向量。将cbR代入式(4),采用最小二乘法求得手眼转换矩阵X中的平移向量cbt。对双目相机分别进行手眼标定,获得完整的手眼转换关系。

双目图像的边缘检测与立体匹配

1 基于图像二值化的边缘检测

黑白图像中每个像素点的灰度值分为256个等级,通过设置适当的灰度阈值可以选择出整体图像中的局部特征。图像的二值化处理就是将图像中被选中的区域呈现灰度值为255 而非选中的区域呈现灰度值为0的黑白效果[10]。在二值化后的图像中提取灰度值突变的像素,由这些像素构成图像中的边缘轮廓。从轮廓树中选择最外层轮廓以分割黑色背景中白色工件的边缘。最外层轮廓在图像中表示为若干像素构成的一条边缘曲线,在图像坐标系中可获得边缘曲线上像素的坐标,如图2所示。

2 基于ArUco 标签的立体匹配

平面的单应性映射为从一个平面到另一个平面的投影映射[11]。设某一平面上的点Q=(xq,yq)T映射到另一平面上的点P=(xp,yp)T,并引入比例因子s,则单应性变换可表示为:

工件的某一待加工平面在双目相机的成像平面上分别成像,求解两个像图之间的单应性变换需要计算一个单应性变换矩阵H,即求解矩阵H中的8个未知变量。因此,至少需要找出两个像图上4 对匹配的映射点,得到8个线性方程,通过求解这8个线性方程方可得到单应性变换矩阵H。如果可以匹配出足够多映射点,则可使用最小二乘法求解单应性矩阵H以提高单应性变换的鲁棒性。

目前,特征匹配算子无法有效匹配无特征或弱特征的平面及其边缘,为了获取双目图像上工件待加工平面边缘成对匹配的映射点,引入ArUco 标签[12]作为双目匹配的特征标志物。ArUco 标签是一个二进制的正方形标签,由内部二进制矩阵和四周的黑边组成,内部的二进制矩阵决定了标签的规格和ID,外部的黑边有利于快速检测到标签并提供4个角点用于双目立体匹配(图3)。可同时识别多个标签来计算平面姿态的变换关系,以此提高计算结果的稳定性和鲁棒性。

工件在装夹的过程中可将待加工平面调整至任意合适的姿态,以保证待加工平面边缘表现出清晰的成像效果。在工件待加工平面上设置ArUco 标签,双目相机拍摄该平面的图像经过二值化处理后,程序在视场中检测是否存在给定种类的ArUco 标签,如果检测到给定种类的标签则返回每个标签的ID值和标签4个角点的像素坐标信息;如果未检测到标签则需调整光照并改善标签的清晰度与平整度,再重新检测。标签的数量通常是冗余的,理论上只要检测到1个标签就可以进行立体匹配。在双目图像中对检测出的标签ID值按从小到大的方式排序,对检测出的4个角点按顺时针方向排序,并将排序后的ID值和角点像素坐标的信息存储在相应的列表中。

图2 通过图像二值化提取圆形与矩形边缘Fig.2 Extracting circular and rectangular edges through image binarization

图3 规格为6×6的ArUco标签Fig.3 ArUco markers with size 6×6

提取每个ArUco 标签在双目图像中的4个角点进行映射关系匹配,根据列表中标签角点的像素坐标计算双目图像中工件待加工平面的单应性变换矩阵H。然后设置适当的像素间隔,对工件边缘曲线上的像素进行采样,确保由直线段连接采样点构成的曲线与工件边缘曲线的偏差不大于给定像素数(试验中是1个像素)。最后根据单应性变换矩阵将双目图像边缘曲线上的采样点成对匹配起来(图4)。

机器人铣边轨迹的生成

1 基于手眼标定和立体匹配的轨迹点生成

生成机器人铣边轨迹的关键是获得工件边缘采样点在机器人基坐标系中的坐标。手眼标定获得了相机坐标系与机器人基坐标系之间的变换关系,但无法获得工件边缘点在机器人基坐标系中的坐标。双目图像立体匹配给出了世界坐标系中一点在双目图像中的匹配点对,通过进一步计算就能获得该点在世界坐标系中的三维坐标,但如果不给出相机坐标系与机器人基坐标系之间的变换关系,也无法获得该点在机器人基坐标系中的坐标。下文将根据手眼标定和立体匹配的结果,生成机器人基坐标系中工件边缘的采样点。

令世界坐标系与机器人基坐标系重合,则相机成像模型中的外参数矩阵H2为手眼转换矩阵cbH。根据手眼标定得到的手眼转换矩阵cbH及Arllco中立体匹配得到的采样点对(ul,vl)与(ur,vr),联立双目相机成像模型得到以下方程组:

式中,H1l、cbHl、zcl表示左相机的参数,其含义与式(1)中一致;H1r、表示右相机的参数,其含义与式(1)中一致表示一点在机器人基坐标系下的坐标;矩阵表示与的乘积;矩阵表示与的乘积。将式(8)展开得到方程组(式9)与的表达式(式10):

将式(10)代入式(9)消去zcl与zcr,求得双目相机图像坐标系下的采样点对与机器人基坐标系下原始三维采样点的坐标转换方程为:

图4 工件边缘的采样点匹配Fig.4 Sampling points matching of workpiece edges

记为:

通过最小二乘法求解式(12)得机器人基坐标系下原始三维采样点的坐标为:

原始三维采样点并没有准确位于同一张平面上。从原始采样点拟合平面,再计算原始采样点在拟合平面上的投影点,将采样点限制在最佳拟合平面上。将投影点作为机器人末端执行器运动轨迹所需经过的点,设置末端执行器轴线的姿态使之在无干涉的情况下垂直于最佳拟合平面,获得机器人末端执行器运动轨迹。

2 机器人作业文件的生成

本文的试验平台使用的是安川机器人。将轨迹信息按照规定格式写成机器人作业文件(图5)。采用Motocom32 SDK 进行计算机与安川机器人的通讯,并编写计算机软件实现了对安川机器人的操作控制。SDK中主要包含一个动态链接库Motocom.dll,调用库中的函数即可开发安川机器人的各项功能。将工件待加工平面边缘处理后的采样点三维坐标信息写成JBI 格式的机器人可执行作业文件。使用Motocom32.dll 动态链接库中BscDownLoadEx(nCid,strFileName,strFilePath,TRUE)函数向控制柜发送作业文件,并通过BscStartJob(nCid)函数使机器人执行作业文件,使机器人完成铣边作业。

试验

本文方法采用VC++语言和计算机视觉库OpenCV 在VS2008 平台下编程实现,其中张正友标定法和边缘轮廓提取分别使用了OpenCV库 函 数cv::calibrateCamera()和cv::findContours(),标签的检测由cv::aruco::detectMarkers()函数完成。

铣边试验系统(图6)采用圆形边缘和矩形边缘的雪弗板作为工件毛坯,在机器人作业范围内的工作台上安装夹具固定工件。将双目相机安装在摄影三脚架上并调整其姿态,保证工件在视场中占有合理的范围。末端执行器为固定在机器人末端法兰直流电主轴上的直径1.5mm铣刀。同时,棋盘规格为12mm×9mm,小格边长为10mm的标定板安装在电主轴夹具前方,与末端执行器保持相对固定。

图5 JBI格式的机器人可执行作业文件Fig.5 Executable job file of robot in JBI format

图6 铣边试验系统Fig.6 System of milling experiment

表1 相机标定和双目匹配结果Table1 Results of camera calibration and binocular matching

试验首先令机器人末端处于4个不同姿态。双目相机拍摄每个姿态下标定板的图像,同时记录对应的机器人末端执行器的位姿。然后进行双目手眼标定。接着二值化双目图像,提取图像中的工件边缘及其采样点。通过ArUco 标签计算单应性变换矩阵,进行立体匹配。根据双目图像上每一对采样点的像素坐标计算真实边缘曲线上原始采样点的三维坐标。最后生成机器人加工轨迹,进行铣边加工。相机标定和立体匹配的结果见表1。除去进刀点和退刀点,对于圆形边缘共获得均匀分布的818个采样点,对于矩形边缘共获得均匀分布的1000个采样点。

图7 投影点的拟合结果Fig.7 Results of fitting projection points

表2 圆形及矩形边缘的拟合结果Table2 Results of fitting circular and rectangular edges

表3 圆形及矩形边缘工件的铣边加工结果Table3 Results of milling process of circular and rectangular edges mm

图8 铣边前后效果对比Fig.8 Contrast of result before and after milling

根据从投影点到投影点最小二乘拟合曲线的距离,对铣边加工误差进行分析。对圆形边缘的采样点进行圆拟合;对于矩形边缘的采样点,将投影点分4 段进行直线拟合,如图7所示。表2中为拟合得到的函数。对于圆形边缘,投影点与拟合标准圆的平均距离为0.168mm,最大距离为0.369mm;对于矩形边缘,投影点与拟合直线的平均距离为0.197mm,最大距离为0.427mm。对于圆形边缘,使用游标卡尺测量铣削前后圆形边缘的直径;对于矩形边缘,使用游标卡尺测量铣削前后矩形边缘四边的边长。令铣刀的直径为d,双目视觉获取工件的尺寸为D1,铣削前后测量工件的尺寸为D2和D3。生成轨迹没有进行铣刀半径补偿。则双目视觉边缘实际检测误差e1=D1–D2,实际加工误差e2=D3–D2+d,试验结果见表3。对工件的最终铣边加工后获得了光滑的工件边缘,如图8所示。上述实际加工误差e2是系统的总误差,包含了双目视觉边缘实际检测误差e1和机器人自身运动的误差。试验结果表明,在圆弧和直线边缘的铣边加工中,最大边缘总误差不超过0.5mm,满足一般铣边加工的精度要求。

结论

本文提出了一种双目视觉引导的工业机器人铣边方法。该方法首先进行相机标定和机器人的手眼标定;然后提取双目图像边缘进行立体匹配;最后根据手眼转换矩阵和所匹配的边缘采样点计算工件边缘上的三维点,生成机器人铣边轨迹和作业文件,完成机器人铣边操作。在对圆弧和直线边缘的铣边试验中,采用本文方法进行铣边加工获得了光滑的工件边缘,且满足一般铣边加工的精度要求。该方法还可同时对多个平面进行铣削加工。下一步的工作包括提高本文对环境光照、复杂边缘等的适应性,将本文方法应用到更多工件的铣边加工中。

猜你喜欢

手眼双目标定
霜 降 苏美玲
基于双目视觉的机器人定位与导航算法
观察力、手眼协调能力
培养手眼协调能力,创意思维能力
使用朗仁H6 Pro标定北汽绅宝转向角传感器
培养手眼协调能力,创意思维能力
基于双目测距的卡尔曼滤波船舶轨迹跟踪
培养创意思维能力,手眼协调能力
CT系统参数标定及成像—2
CT系统参数标定及成像—2