工业机械臂辅助机器视觉的工件识别与定位*

2024-01-27 06:24刘文婧卢子航王建国王少锋
组合机床与自动化加工技术 2024年1期
关键词:标定坐标系边缘

刘文婧,卢子航,王建国,王少锋

(内蒙古科技大学机械工程学院,包头 014010)

0 引言

当前,利用工业机器人取代人工成为了工业生产的发展方向[1-2]。与人工相比,工业机器人有着许多优点,比如可以长时间、高强度、高精度地进行工件的检测,还能进行高难度的搬运和高效的装卸,机械臂便应用于工厂的生产与检测成为了一个大的方向[3-4]。而多品种小批量生产随着机械行业的发展也越来越多,多零件的单台装配数量很低,有的只有一件[5],不可能实现对每个零件都定制夹具为其检测。以广泛应用于交通隧道盾构机为例,由于其功能的特殊性,盾构机对零件的种类和需求量较大,安装精度要求较高,涉及上百种零件,且多为中厚板[6-8]。在一台盾构机中,单台装配数量达1000个,而每个零件大小和重量不一[9]。所以本文以该类多品种小批量生产的零件为背景,基于机械臂能够长时间、高强度、高精度地进行工件的检测,在没有工件夹具定位的条件下,考虑引入机械臂来对该多品种小批量零件的检测工作。

1 系统设计

1.1 系统组成

本文基于机械臂辅助机器视觉引工件识别与定位方法研究系统主要由工业机械臂、工业相机和上位机监视和控制器组成。

工业机器人选用KUKA KR20 R1810型机器人,如图1所示。最大载荷为20 kg,最大工作距离为1813 mm,重复定位准确度为±0.04 mm[10],能够满足机器人与上位机通讯和对工件的定位与检测。

工业相机选用HikRobot品牌的MV-CA016-10GC工业相机,如图2所示。该摄像机具有良好的成像品质,并能在千兆以太网上实现非压缩数据的快速、实时传送,最大帧速率达到78.2 fps。

上位机模块用Python程序编写,能够对机械臂的位姿进行实时监控,当机器人轨迹出现偏离时,通过上位机模块也可以对机器人进行微调。

1.2 系统工作原理

基于机械臂辅助机器视觉引工件识别与定位方法研究系统,工件如图3所示。在本系统中,通过对工件图像进行图像预处理,提取工件曲面表面的特征参数,将其与机器人存储内部的工件模版进行匹配,将工件表面的特征点作为机械臂在工件上运动的轨迹,来验证对工件定位的精准度。

图3 选用被定位的工件

2 工件的特征提取与模版匹配

2.1 图像的预处理

图像处理是为了提高图像的可视化程度,获得所需的特征,从而方便地对后续的图像进行分析[11]。

2.1.1 灰度化处理

由于彩色图像由R、G、B三个颜色分量构成[12],当要得到某种理想的灰度图像时,人为给R、G、B三个分量分别以不同的权重,则每一个像素点的灰度值如式1所示。

Gray(x,y)=0.299R(x,y)+0.578G(x,y)+0.144B(x,y)

(1)

2.1.2 直方图均衡化

直方图均衡化原理把原图像的直方图转换为均匀分布的形式,增加像素灰度值的动态范围,增强图像整体对比度[13]。当拍摄物体的背景过亮或过暗时,为更好的突出特征信息,避免灰度值过度集中于某个范围,从而达到对图像的对比度增强的效果。

计算原始直方图的概率密度:

P(rk)=nk/N

(2)

计算累计归一化直方图:

(3)

重新计算像素点的像素:

res=Sk×L

(4)

2.2 图像的边缘检测与特征提取

2.2.1 图像的边缘检测技术

通过对图像进行边缘提取,能够有效地减少计算量,并将其应用于图像的匹配[14]。选用Canny算子作为提取轮廓的边缘算子。Canny算子在保留较弱边缘特征的前提下,具有较强的抗生成能力。Canny算子边缘检测步骤为:

步骤1:应用高斯滤波来平滑图像;

步骤2:计算得到水平方向dx和垂直方向dy。梯度方向一般取0°、45°、90°和135°四个方向。其中:

(5)

(6)

步骤3:非最大抑制来消除边缘误检;

步骤4:双阈值方法来确定潜在的边界;

步骤5:利用滞后技术来跟踪边界。

2.2.2 改进的边缘特征提取算法

在Canny算子对图像轮廓提取后,图像存在边缘的断裂、毛刺点、断点和断线的现象。因此,需要对边缘进行跟踪和连接,从而弥补边缘提取算法的不足造成的边缘缺失现象。对中心像素点指向其邻域像素的方向进行编码,根据参与编码的邻域像素数目和改进的方向公式:

(7)

利用上述奇异点消除方法对提取出的轮廓进行处理,将一些不必要的像素点和线去掉,并根据边缘点的梯度方向判断边缘走向,进行边缘补偿。

2.3 基于模版匹配的定位方法

基于边缘搜索的方法通过首先计算边缘强度的度量,然后使用边缘的局部方向的计算估计来搜索梯度幅度的局部方向最大值来检测边缘[15]。

对于两组数据集合,为了得到它们之间的相似程度,可以利用Hausdorff距离进行相似度的计算。假设有两组集合:A={a1,a2,a3,…,an},B={b1,b2,b3,…,bn};

则两个点集合之间的单向Hausdorff距离:

(8)

(9)

H(A,B)=max{h(A,B),h(B,A)}

(10)

双向Hausdorff距离取单向Hausdorff距离中的最大值,度量了两个点集间的不相似程度(双向Hausdorff距离越小,匹配程度越高)。

在模版匹配的定位中,在KUKA机器人内部存储一个标准工件的轮廓模版图,在扫查工作时,要将待扫查的异型铸件轮廓提取出来,然后在利用提取的待扫查工件轮廓与异型铸件轮廓模版进行匹配,并计算误差值。

3 工业机械臂视觉系统标定方法

3.1 工具坐标系的标定

在机器人操作中,需要将机器人的控制程序中的运动命令转换为机器人工具末端执行器的运动,因此需要知道工具相对于机器人臂的位置和姿态。采用四点法标定工具坐标系,如图4所示。

图4 工具坐标系的标定步骤

用四点法标定的工具坐标系误差为0.2 mm,与机械臂末端X偏差2.238 mm,Y轴偏差7.216 mm,Z轴偏差304.820 mm,旋转轴A、B、C偏转角度为0°。

3.2 相机的成像模型与相机标定

3.2.1 相机成像模型

如图5所示,假设世界坐标系中有任意一目标点P,目标点P点在成像平面镜像面中的成像点为p,Oc为相机的光心,三点共处于同一条直线。焦距f为光心Oc到成像平面镜像面之间的距离,光心Oc到目标点P距离为Zc,Zc方向指向光轴外侧。

图5 KUKA KR20 R1810型工业机器人

根据三角几何关系可知,像素坐标系与图像坐标系转换关系:

(11)

图像坐标系与相机坐标系转换关系:

(12)

相机坐标系与世界坐标系转换关系:

(13)

将式(11)~式(13)联立可以得到世界坐标系中任一点与像素坐标系对应点之间的转换关系为:

(14)

式中:K3×4为所求相机内参矩阵。

3.2.2 相机标定

相机标定采用张正友标定法,求得相机外参矩阵。标定板由7×9黑白方格组成,角点数量为6×8个,方格为24.5×24.5 mm,用HikRobot进行图像采集,将相机固定在定制的法兰盘上,拍摄距离选择在1000 mm,拍摄30幅不同角度的标定板照片,如图6所示,加载到MATLAB的Camera Calibration程序中对相机进行标定,并对标定结果进行分析。

图6 棋盘格标定版

标定结果:标定板角点坐标的重投影的平均误差为0.26像素,小于规定的0.5像素,满足实验要求,相机内参标定结果如表1所示。

表1 KUKA KR20 R1810型工业机器人

3.2.3 手眼标定

选择Eye-in-hand模式对机械臂与工业相机进行标定。对于Eye-in-hand手眼标定方式,先对机械臂的末端与相机坐标的转换关系进行求解。Eye-in-hand的原理示意图如图7所示。

图7 手眼标定示意图

为了便表达,解出T坐标系与Cm坐标系之间的关系,假设Cl坐标系下某个点P0,T1为上一节求解的相机外参矩阵,根据T1能够将P0转换到Cm下点P1,再根据手眼标定矩阵(转换矩阵X)能够转换到T坐标系下点P2,然后再根据已知的机械臂自身参数(上一节求得末端tool与机械臂base转换矩阵T3),能够转换到B坐标系下点P3,关系式为:

T3XT1P0=P3

(15)

移动机械臂至任意位置,P0和P3的坐标值不变,但是P1和P2坐标值变了,式(15)变成以下公式:

(16)

(17)

变换得:

(18)

本研究使用KUKA工业机器人、HikRobot MV-CA016-10GC工业相机和A4大小标定板组成“Eye-in-hand”的手眼系统。相机通过固定支架固定在工业机器人的末端,搭建平台如图8所示。

图8 手眼标定的实验平台

最后求得手眼标定的转换矩阵为:

3.3 工件坐标系的标定

机械臂的工件坐标系标定是指确定机械臂末端执行器的坐标系在实际工作环境中的位置和姿态,以便精确控制机械臂的运动。机械臂可以和不同类别的工件配合工作,需在工作台上的一个特征位置建立一个如图9所示的工件坐标系。

图9 KUKA KR20 R1810型工业机器人

建立好的工件坐标系为(在机械臂的基坐标系下):

采用三点法对工件的传动装置进行标定,分别取O远点、X+方向和Y+方向的任意一点,将TCP端分别移动至该3点进行测量,并在KUKA示教端中进行保存。在base模式下,从标定结果中得到,建立的工件坐标系在base坐标系的原点O:(-188.217,-1034.052,276.949,0,0,0),最后求得工件坐标系与base坐标系之间的旋转矩阵为:

4 实验测试和结果分析

为了验证目标工件定位的精准度,决定在实验室环境下进行测试。选取目标文件,取4种工件的不同区域的识别点作为机械臂探针轨迹检测目标。工业相机通过支架固定在KUKA机械臂末端上方,工件置于传送带任意位置,现场图如图10所示。

图10 搭建的实验平台

在OpenCV图像库中调用Cv2_GRA指令对工件加权平均法对图像的灰度化处理。并对灰度化的图像调用cv2.equalizeHist和cv2.grayImage函数进行均衡化增强。效果图如图11所示。

图11 灰度化的图像与增强后的图像对比

过OpenCV图像库中调用cv2.Canny()对工件的灰度图像进行轮廓提取,并根据上一章提出的优化轮廓提取算法,对Canny算子到图像进行优化处理,如图12所示,Canny算子与优化的轮廓提取算法对灰度图像处理的效果图。

图12 Canny算子和优化边缘轮廓算法提取轮廓效果图

在OpenCv中调用cv2.matchTemplate()函数,对工件的廓的边缘进行提取并精准匹配。调试结果如图13所示,工件的轮廓以及表现得轨迹点用灰色虚线表示,工件处于黑色实线定位框内。

图13 工件到模版图与定位结果

为了设计的识别与定位算法的实时性、自适应性和鲁棒性,通过对工件进行旋转、平移、混合来分别进行多组实验,识别工件结果如图14所示。

图14 工件不同位置的定位图像

根据手眼标定获得的矩阵可获得相机(Cm)与基标系(B)之间的关系,工件坐标系的标定可以获取工件(G)与基坐标系(B)之间的关系,由此可以确定工件坐标(G)系与相机坐标系之间的转换矩阵。通过模版匹配实现了对工件的识别与定位,便可以实现对工件表面特征位置建立坐标系,该坐标系可作为工件表面所规划轨迹的工件坐标系。如图15所示。

图15 工件坐标系示意图 图16 工件的目标轨迹分布图

如图16所示,将工件表面4个轨迹点划分区域为A1,A2,A3,A4,其中A1区域18个轨迹点,A2区域16个轨迹点,A3区域18个轨迹点,A4区域14个轨迹点。

确认机器人回零点后,将工件放置在传送带任意位置,手动示教机械臂的末端探针分别移动到工件的A1区18个轨迹点,通过示教器在手动模式下对该轨迹点进行PTP指令的编程,并在上位机监视器上读取该区域点的(x,y)坐标系位置。随后,驱动机械臂回初始位置,切换为相机外部自动和机器视觉模式,使用相机获取图像后,与机器人内部的工件模版进行匹配。

当工件被定位后,通过按钮触发机器人进行自动化运行,进而通过控制机器人末端把空间坐标发送至机器人伺服控制器驱动机械臂末端移动到第1~18轨迹点,并从上位机上读取出轨迹点位于机器人base坐标系下的位置。以此类推,对4个区的轨迹点的实际轨迹坐标与解算的轨迹坐标进行记录,并计算误差,如表2~表5所示。

表2 A1区域实际坐标与轨迹解算的结果误差 (mm)

表3 A2区域实际坐标与轨迹解算的结果误差 (mm)

表4 A3区域实际坐标与轨迹解算的结果误差 (mm)

表5 A4区域实际坐标与轨迹解算的结果误差 (mm)

从表2~表5的实验结果来看,X轴向的最大误差为0.34 mm,Y轴向的最大误差为0.35 mm。

通过对比工件表面轨迹的的结果分析,误差主要来自4个方面:

(1)相机是手动对焦和手动调焦光圈的镜头,在拍摄过程中可能出现跑焦的问题造成采取图像模糊,影响轮后期图像边缘提取的精度;

(2)立体匹配算法误差。在图像采集和处理的过程中,通过对图像的预处理和轮廓提取,有可能会失去部分的边缘信息,而且受光照条件不稳定的影响,也会对匹配效果产生影响。因为相机标准的结果也会出现误差,这些误差的累积必然会影响视差的效果,进而影响轨迹解算的精度;

(3)工业相机与视觉相机本身就存在的误差以及在对相机的标定、手眼标定、工具坐标系标定和工件坐标系标定的过程中产的误差;

(4)地面的平整度不够和工件的底部平整度不够,工件坐标系标定误差影响了Zc值有一定变化,对坐标转换的精度有所影响。

5 结论

本文描述了工业机械臂辅助机器视觉的工件识别与定位系统,该系统硬件设备采用KUKA工业机器人和HikRobot品牌的MV-CA016-10GC摄像头模组,算法开发使用搭建的Python开发框架和移植的OpenCV计算机视觉库,通过软硬件的相结合,在整个平台实现了机器人通讯、机器人外部自动控制、采集图像、图像预处理、轮廓提取、基于模版匹配的目标识别与定位、相机标定和坐标系转换等过程,可以准确定位目标工件。最后通过实验测定误差在0.35 mm内,验证了定位的准确性。

猜你喜欢
标定坐标系边缘
使用朗仁H6 Pro标定北汽绅宝转向角传感器
解密坐标系中的平移变换
坐标系背后的故事
基于匀速率26位置法的iIMU-FSAS光纤陀螺仪标定
基于重心坐标系的平面几何证明的探讨
一张图看懂边缘计算
船载高精度星敏感器安装角的标定
基于Harris-张正友平面标定法的摄像机标定算法
极坐标系下移动机器人的点镇定
在边缘寻找自我