面向工业机器人的非线性手眼标定方法研究

2024-04-02 03:42胡宇鹏蒋年德
现代电子技术 2024年7期
关键词:手眼精确度畸变

胡宇鹏,蒋年德

(东华理工大学信息工程学院,江西南昌 330013)

0 引 言

随着我国制造强国战略逐步深化,人工智能制造[1]成为“中国制造2025”明确主攻方向,越来越多的工厂开始使用工业机器人和机器视觉实现自动化生产,使机器人能够适应更复杂的生产环境,提高生产效率。作为实现人工智能制造和智慧城市基础[2]的手眼标定,是机器人和机器视觉进行协调工作的必要内容,通过重构三维场景获取相机坐标系和机器人坐标系之间的位姿关系,因此提升其精确度、标定范围和稳定性非常重要。

目前,标定的主要方法有主动视觉标定法、相机自标定法和传统相机标定法[3]。主动视觉标定法优点在于不用借助标定物、稳定性强及算法简单,但成本高、设备昂贵;相机自标定法[4]灵活性强但精度低、鲁棒性差;传统相机标定法需要标定物辅助标定,但是算法足够成熟,鲁棒性强且操作简单[5-9]。对于精度要求高和成本需要控制的场景,传统相机标定法能够满足要求。其中常用的方法有直线标定法、Tsai 两步法和张氏标定法,这也是当前比较常用的几种方法。

文献[10]提出的DLT(Direct Linear Transformation,直线线性变换)方法是根据小孔成像提出的一种理想标定方法,因为没有考虑到相机镜头畸变的影响,标定结果精确度低。文献[11-12]采用两步法先线性求得相机参数,再考虑畸变因素得到初始的参数值,通过非线性优化方法得到最终的相机参数,Tsai 两步法速度较快,但仅考虑径向畸变,精确度较低。文献[13]提出了平面棋盘格靶标标定方法,该方法更加灵活,通过单应矩阵计算出相机内外参数。张氏标定法不用较多的测试设备,操作简单、精确度较高。

九点标定法是目前常用的手眼标定方法,基于张氏标定法进行标定,通过检测标定圆的圆心像素坐标和世界坐标计算变换矩阵。由于九点标定法无法适应相机镜头的非线性畸变,导致标定结果精确度低,工业机器人无法实现高精度作业,所以本文对该方法存在的不足进行改进和提升[14]。

理想情况下,相机小孔成像不会产生畸变,像素坐标系与机器人世界坐标系之间呈线性变换关系。但受到镜头畸变和机器误差影响,像素坐标系与世界坐标系之间存在非线性变换,并且镜头下每个区域的畸变程度不同,距离镜头中心越远畸变程度越大。所以让变换矩阵[15]适应不同区域的畸变就显得尤为重要。受到卷积原理的启发,本文提出基于卷积的工业机器人非线性手眼标定方法。将标定物分为多个卷积区域,提取每个区域畸变特征,生成最适合该区域的矩阵参数,减小镜头畸变对相机标定的影响。该方法通过增加标定点个数,提高标定精度和检测工作范围。通过实验验证表明,本文方法精确度相比于九点标定法有了明显改进,更加满足于精确度高、检测范围大和稳定性强的场景。

1 相机标定原理

1.1 常用坐标系

手眼标定可实现图像坐标和机器人世界坐标之间的转换,需要建立起相机的成像模型,主要涉及到4 个坐标系,分别是世界坐标系OW-XWYWZW(单位:mm)、相机坐标系OC-XCYCZC(单位:mm)、图像坐标系O-xy(单位:mm)和像素坐标系Oo-UV(单位:pixel),如图1 所示。

图1 相机成像模型

世界坐标系和相机坐标系之间属于刚体变换,由旋转矩阵R和平移向量t表征。相机坐标系到图像坐标系属于透视投影,由3D 变换到2D 空间,损失一维深度信息即焦距f。图像坐标系和像素坐标系可通过平移尺度变换表征二者关系,但受到透镜实际形状、位置抖动及焦平面倾斜等影响,不符合线性变换。

1.2 坐标系转换

图像坐标系转换像素坐标系,如图1 所示,Oo是像素坐标系原点,O是图像坐标系原点。假设dx、dy是每个像素在x和y方向上的长度,则图像坐标系中的点x、y对应像素坐标系应有如式(1)所示的关系:

相机坐标系和图像坐标系之间可以利用相似三角形求出转换关系。f表示相机焦距,xy平面表示相平面,转换关系如式(2)所示:

世界坐标系转换相机坐标系的过程属于刚体变换,转换不会发生形变,由旋转矩阵R和平移向量t进行变换。其中R是一个3×3 的正交单位矩阵,t为3×1 的矩阵。转换关系如式(3)所示:

将像素坐标系、图像坐标系、相机坐标系和世界坐标系之间的转换关系结合,可得到像素坐标系和世界坐标系之间的关系,即相机坐标系与机器人坐标系之间的位姿关系,如式(4)所示:

2 相机线性与非线性模型

在理想状态下,相机每个坐标系之间的转换都是线性变换,相机成像过程中不会产生误差,可以直接使用Abdel线性模型进行标定,如式(5)所示:

式中:ZC为未知尺度因子;T为投影矩阵;K为相机内参矩阵;M为外参矩阵,由R和t组成。

但是受到目前镜头工艺水平和机器误差的限制,相机成像无法达到理想化小孔成像模型,实际所成的图像与理想图像之间存在着非线性几何失真。目前最主要的畸变误差有径向畸变、切向畸变和薄棱镜畸变等。非线性模型在线性模型基础上加入由多项式拟合的像点位置偏差(Δu,Δv),可以减少畸变误差影响,如式(6)所示:

加入了像点位置偏差的非线性模型虽然有了极大改善,但依然无法达到理想线性相机模型,机器人在进行高精度作业时仍会有较大误差。因此,要找到一种适合实际场景应用的手眼标定方法,提高相机识别精确度及识别范围极为重要。

3 改进九点标定法

3.1 九点标定法

九点标定法是基于张氏标定法进行标定,通过检测标定圆的圆心像素坐标和世界坐标计算变换矩阵。九点标定本质是点与点之间进行仿射变换,具有操作简单、精确度高、稳定性强等优点,是机器人标定中的常用方法。主要操作方法包括以下几个步骤:

步骤1:准备一张印有9 个圆的标定物纸张,一般为3×3 标准,并确保相机能够全部采集到。

步骤2:确保标定物在相机采集过程中保持静止,使用图像处理和控制机械臂方法获取标定圆的圆心像素坐标和圆心机械臂坐标。

步骤3:通过步骤2 获取的像素坐标和机械坐标进行仿射变换生成矩阵参数,通过矩阵参数可以将任意像素坐标转换成世界坐标。

九点标定法的缺点在于无法减小相机镜头畸变引起的标定误差,在精确度和标定测试范围上无法同时满足实际需求。标定范围扩大会受到镜头畸变影响,导致标定精确度降低,标定范围缩小精确度高,实际检测范围无法满足实际需求。

3.2 基于卷积的非线性手眼标定方法

针对目前九点标定法无法同时满足标定范围和标定精确度的不足,本文提出一种基于卷积的非线性手眼标定方法对原有的方法进行改进。该方法在保证精确度的前提下扩大标定检测范围,满足更多工业机器人场景需求。

该标定方法操作步骤相较九点标定法有所不同,具体操作步骤如下所示:

步骤1:准备一张印有若干圆的标定物纸张,具体个数根据检测范围大小确定,将这些圆排列成n×m的标准,并确保相机能够全部采集。

步骤2:确保标定物在相机采集过程中保持静止,使用图像处理和控制机械臂方法获取标定圆的圆心像素坐标和圆心机械臂坐标。

步骤3:使用3×3 的卷积核遍历标定物上的圆,按照从左到右、从上到下的顺序进行遍历,具体操作如图2所示,共标定54 个圆,生成28 个卷积区域对应的旋转矩阵参数,左上角方框为第一个卷积区域,右下角方框为最后一个卷积区域。

图2 使用卷积方法的标定圆

步骤4:将所有卷积区域旋转矩阵参数进行保存,坐标系转换时使用该卷积区域的旋转矩阵参数,提高标定精确度。

4 实验过程及结果

4.1 实验准备

为确保实验结果的真实性和可靠性,使用四轴机械臂的机械坐标作为世界坐标。选取500 万像素(2 448×1 536)工业款相机进行图像采集,距离标定面高度400 mm。机械臂与标定圆纸张位于同一平面,具体如图3 所示。

图3 实际标定界面图

4.2 实验过程

分别用九点标定法和本文改进的算法对不同范围大小标定物进行标定,将标定结果测试后比较,分析两种算法的测试结果及优缺点。现对基于卷积的工业机器人非线性手眼标定方法实验过程进行概述。

1)获取标定圆圆心像素坐标

张氏标定法通过棋盘格角点检测进行标定,本文采用圆心检测进行标定,圆心检测相比于棋盘格角点检测可以达到更加精确的效果。首先对相机采集的图像进行预处理,提高识别精确度,主要包括灰度化、二值化、高斯模糊、形态学处理和轮廓查找等操作;再通过圆形特征获取标定圆圆心坐标,并将检测获取的像素圆心坐标按照从左到右、从上到下的顺序保存。该检测方法在实验过程中具有运算速度快、稳定性强和鲁棒性高等优点。

2)获取标定圆圆心机械臂坐标

根据步骤1)获取的圆心像素坐标顺序,通过控制机械臂获取标定物圆心对应的世界坐标进行保存。这个过程需要通过通信协议指令控制。为了确保机械坐标结果更加准确,使用工业机器人视觉标定针辅助标定。

3)计算旋转矩阵参数

通过卷积的原理在标定物上按照从左到右、从上到下的顺序依次遍历,卷积核大小为3×3。根据前两步得到的结果在每个卷积区域生成对应的旋转矩阵参数。遍历结束后,将每个区域的旋转矩阵参数进行保存。

4)计算误差

为了使实验更加具有可靠性,误差计算采用测试点在基于卷积的工业机器人非线性手眼标定方法中进行测试。通过旋转矩阵参数转换图像处理后的像素坐标,得到重建的坐标值,最后分析实验结果。

4.3 实验结果分析

为达到实验目的,本文采用测试点分别在九点标定法和本文算法下进行比对,分析两者误差。使用两种方法在标定物上标定,得到各自的标定结果。测试点通过标定结果重建的坐标值和真实值之间的距离表示各自标定的误差值,并增加测试点取平均误差达到更稳定、精确的实验结果。

两种算法经过多次测试,误差结果如表1 所示。随着标定范围扩大,九点标定法误差也随之增大,本文算法依然保持着较小的误差。由此可见,在实际应用场景中,使用本文手眼标定算法的工业机器人视觉精确度更高,能满足更多的机器视觉项目。误差分析比较如图4所示。

表1 算法测试误差mm

图4 误差分析比较

最终实验表明,九点标定法矩阵参数过于单一,无法适应标定范围扩大引入的镜头畸变影响,精确度不稳定,工业机器人在实际应用中无法满足作业需求。针对九点标定法存在的不足,本文提出的基于卷积的工业机器人非线性手眼标定方法能有效减少镜头畸变误差,保持较高的精确度,满足标定需求,可以更好地使工业机器人适应不同卷积区域的相机畸变参数,完成高精度作业。

5 结 语

本文提出的基于卷积的工业机器人非线性手眼标定方法主要基于卷积的原理,通过3×3 卷积区域依次遍历相机标定范围,求解每个卷积区域的旋转矩阵参数。通过让旋转矩阵参数适应镜头下每个区域畸变的方法,从而减少相机镜头畸变的影响。与传统的九点标定法相比,本文提出的算法不仅提高了相机标定检测范围,同时提高了精确度,性能更加稳定,能够满足工业机器人的更多实际应用要求。

猜你喜欢
手眼精确度畸变
研究核心素养呈现特征提高复习教学精确度
观察力、手眼协调能力
培养手眼协调能力,创意思维能力
“硬核”定位系统入驻兖矿集团,精确度以厘米计算
观察力、手眼协调能力
培养手眼协调能力,创意思维能力
在Lightroom中校正镜头与透视畸变
辐射诱导染色体畸变的快速FISH方法的建立
《癌变·畸变·突变》2014年第26卷索引
《癌变·畸变·突变》第六届编委会第2次会议纪要