APP下载

基于3D 视觉传感器的龙门架机器人手眼标定方法

2021-05-17袁瑜键

光电工程 2021年4期
关键词:龙门架手眼标志点

程 麒,潘 丰*,袁瑜键

1 江南大学轻工过程先进控制教育部重点实验室,江苏 无锡 214122;

2 无锡信捷电气股份有限公司,江苏 无锡 214072

1 引言

随着工业机器人在我国的普及,具备视觉定位引导功能的机器人被逐渐应用到焊接、定位抓取、货件搬运、汽车喷涂等工业生产中,是工业生产自动化和智能化的重要发展方向[1]。手眼标定技术是机器人实现视觉定位引导的关键技术环节,针对不同工作模式的机器人和不同类型的视觉传感器,研究恰当可行且具有高精度、良好稳定性的手眼标定方法对机器人视觉系统的发展具有重要意义[2]。

业界对于六自由度机器人的标定方法已经进行了广泛的研究,研究成果主要分为“两步法”和“一步法”。“两步法”将刚性变换关系分为旋转关系和平移关系,并逐步进行求解,在求解过程中会出现误差传递,这种方法主要以Tsai[3]提出的旋转向量线性解法和Park[4]提出的李群最优定向法为代表。“一步法”将刚性变换关系用螺旋运动[5]来表示,一次求解出螺旋运动表达式。这种方法消除了误差传递,但对噪声比较敏感,主要以Daniilidis[6]提出的对偶四元数法和Malm[7]提出的矩阵直积法为代表。这些方法都需要控制机器人在不同姿态和位置下获取“手”和“眼”的标定数据,而在机器人可控自由度不足的情况难以实现。Zhang[8]针对SCARA 机器人只有一个旋转自由度和两个平移自由度的特性提出相应的方法,但无法解出相机与机械臂末端在z轴方向上的位置关系。叶溯等在此基础上提出了无需限定相机与机械臂在z轴方向上的安装位置即可求出手眼关系唯一解的方法[9]。文献[10-11]也针对类似情况进行了研究,提出了有价值的解决方案。

目前已有的标定方法大多是针对平面相机的手眼标定,随着3D 视觉传感器的发展,研究机器人与3D视觉传感器的手眼标定方法十分重要。大多数已有的方法如文献[12-14]都需要特制的立体标定靶标。郑健等提出了一种无需特定靶标,在空间直线约束下优化计算结构光视觉传感器与焊接机器人的手眼关系,大大降低了标定成本,但需要进行至少30 组采集,示教过程比较繁琐[15]。本文针对龙门架机器人只有三个平移自由度的执行机构与3D 视觉传感器的手眼标定问题提出了一种标定方法,只需要普通的平面标定板即可完成标定,且具有较高的精度和稳定性。

2 龙门架机器人手眼标定模型

2.1 机器人视觉系统模型

龙门架机器人的工作范围大,机器人的执行机构具有较高的重复定位精度,但只有三个相互正交方向上的平移自由度。3D 视觉传感器能够快速获取相机视野范围内待测物体的三维坐标信息,生成实时的点云数据。视觉传感器与机器人执行机构刚性连接,随着执行机构运动。

以机器人TCP 零位点作为原点,三个正交的运动方向为坐标轴方向建立机器人基坐标系OBase。由于执行机构不存在旋转自由度,执行机构与基坐标系的相对姿态关系是固定的,以执行机构当前位置的TCP 三维坐标xTCP=[xPyPzP1]T为原点,与基坐标系相同的坐标轴方向建立工具坐标系OTool。3D 视觉传感器C 采集物体在世界坐标系OWorld中的三维坐标信息并转换到点云坐标系OCam下。这四个坐标系及其相互转换关系构成龙门架机器人手眼视觉系统的数学模型,如图1 所示。

图1 机器人手眼视觉系统示意图Fig.1 Schematic diagram of the robot hand-eye vision system

3D 视觉传感器可实现待测物体的位置从世界坐标系OWorld到点云坐标系OCam的转换,其转换关系用矩阵表示;通过手眼标定可求出待测物体的位置从点云坐标系OCam到工具坐标系OTool的转换关系,用矩阵表示;通过机器人的运动反馈数据可以得到待测物体的位置从工具坐标系OTool到基坐标系OBase的转换关系,用矩阵表示。

以上三个转换关系矩阵,是实现机器人的定位引导的关键信息。其中,矩阵相当于视觉传感器的外参矩阵,在使用传感器采集待测物体的点云数据时实际上已经实现了矩阵所表示的转换过程,因此不需要对其求取。根据转换关系矩阵的性质,可将矩阵分解成旋转部分和平移部分,根据龙门架机器人基坐标系和工具坐标系的关系,可得其结构及获取方法:

分别用XCam=[xCyCzC1]T、XTool=[xTyTzT1]T、XBase=[xByBzB1]T表示待测物体在点云坐标系、工具坐标系、基坐标系下的齐次坐标。其转换关系为:

由于视觉传感器和机器人执行机构刚性连接,点云坐标系OCam和工具坐标系OTool的转换关系不随执行机构的运动而改变,因此矩阵是一个固定值。求得矩阵的值,便可通过式(2)和式(3)计算出待测物体在基坐标系下的位置坐标XBase,实现机器人的定位引导。手眼标定的目的就是对矩阵进行求解。

2.2 手眼标定方法

2.2.1 Tsai 和Zhang 的手眼标定方法

由于龙门架机器人的执行机构没有旋转自由度,无论操作机器人做任何运动,执行机构的姿态是固定的,即RA为单位阵。同理,由于相机与执行机构刚性连接,RB也为单位阵。显然式(5)并不能解算出,说明Tsai 法并不适用于龙门架机器人的手眼标定。

Zhang[4]针对SCARA 机器人的工作模式设计了一种手眼标定方法,这种方法在机器人旋转自由度有限的情况下,通过多次的纯平移运动,来解算手眼矩阵的旋转部分。当RA为单位阵时,式(6)可化简为

假设机器人做n(n≥3)次平移运动,得到n组矩阵方程:

只要每一次点云坐标系运动的平移矢量TBi(i=1,2,…,n)不共面,即可通过SVD 分解求解出。

Zhang 的方法可以在旋转自由度有限的情况下通过多次平移运动求解出手眼矩阵的旋转部分,但其求解手眼矩阵平移部分的方法并不适用于本文所述的龙门架机器人手眼系统。

2.2.2 适用于龙门架机器人的手眼标定方法

本文结合Tsai 法和Zhang 法,基于龙门架机器人的工作特性,设计了一种适用于龙门架机器人的手眼标定方法。

控制机器人的执行机构做两次相互正交的平移运动(基于龙门架机器人的运动结构,可分别沿机器人工具坐标系的x轴方向和y轴方向运动一段距离),得到工具坐标平移运动的两个正交矢量TA1和TA2,以及点云坐标系平移运动的两个正交矢量TB1和TB2,分别构造基于工具坐标系和相机坐标系的规范正交基MA和MB,构造方法如下:

1) 分别将矢量TA1、TA2、TB1、TB2单位化,得到四个单位矢量pA1、pA2、pB1、pB2,以获取单位矢量pA1=[XA1YA1ZA1]T为例,单位化方法为

2) 用单位矢量pA1、pA2以及它们的向量积pA1×pA2构造规范正交基MA,用单位矢量pB1、pB2以及它们的向量积pB1×pB2构造规范正交基MB。以构造MA为例,构造方法为

由正交基的性质可知,工具坐标系的任意平移运动都可由MA中基向量的线性组合表示,点云坐标系的任意平移运动都可由MB中基向量的线性组合表示,结合式(8)可得手眼关系的旋转部分的求解方程:

通过TCP 接触式测量到机器人基坐标系下的一个标志点的三维坐标xBase0=[xB0yB0zB01]T,并通过机器人运动反馈获取得到执行机构在当前拍摄位置的TCP 三维坐标xTCP0=[xp0yp0zp01]T,由式(1)和式(3)可得标志点在工具坐标系下的三维坐标xTool0为

3 标定数据的获取与优化

通过分析式(9)、式(10)、式(11)和式(13)可知,求解出手眼关系需要获取的标定数据有:工具坐标系平移运动的矢量TA1和TA2,点云坐标系的平移运动的矢量TB1和TB2,标志点在工具坐标系中的三维坐标xTool0,标志点在点云坐标系中的三维坐标xCam0。

其中,与工具坐标系相关的数据有TA1、TA2和xTool0。TA1和TA2可直接从机器人的运动控制参数中获取,xTool0通过式(12)获取,而式(12)中对xBase0的接触式测量方法如图2 所示。由于机器人工具中心点的定位精度很高,因此这部分数据是比较可靠的。

图2 接触式测量示意图Fig.2 Schematic diagram of contact measurement

与点云坐标系相关的数据包括TB1、TB2和xCam0。TB1和TB2需要通过平移前后采集到的点云数据中标志点坐标的变化量来计算。以计算TB1为例,假设执行此平移运动前后的标志点在点云坐标系中的三维坐标分别为,则TB1的计算方法为

显然,要获取到TB1、TB2和xCam0都需要实现标志点在点云数据中的定位。通过分析3D 视觉传感器生成的二维图像与三维点云的关系,设计了一种图像与点云结合来实现标志点精确定位的方法,并针对3D传感器非接触式测量可能存在的扰动,设计了相应的优化方法。

3.1 标志点的初定位

传统的以2D 相机为传感器的手眼标定只需要从标定板的图像中提取角点、圆心等特征点即可实现标志点的定位,但从点云中提取和识别一个平面上的特征点是难以做到的。本文所使用的3D 视觉传感器每次拍摄生成一张二维图像和一组点云数据,点云数据其实就是一系列三维坐标的集合,这些三维坐标有序排列,每一个三维坐标都对应图像中的一个像素。因此,通过提取某一特征点图像中的像素坐标(u,v),可以计算出此像素对应的三维坐标在点集合中的序号Nind,假设图像大小为Rrow×Ccol,则序号Nind的计算方法为

计算出Nind后,在点云的点集合中搜索到此序号对应的三维坐标,即为此特征点在点云坐标系中的三维坐标。但在实际标定中,为了获得更精确的数据,通常在图片中提取的标志点为亚像素,如果将亚像素取整后再搜索的话,得到的三维坐标与标志点实际的三维坐标存在一定的误差,因此这种方法只能实现标志点的初定位。

3.2 标志点的精确定位

初定位的精度依赖于3D 传感器的分辨率,也就是在3D 传感器有效成像距离内两个相邻点的空间距离。本文所使用3D 传感器分辨率为0.2 mm~0.4 mm,也就意味着初定位的标志点存在±0.4 mm 的误差,显然会对最终的标定结果造成很大的影响。为了精确定位标志点在点云坐标系中的三维坐标,使用一种以亚像素面积比例的倒数作为空间点插值权重的方法来精确估计标志点的点云坐标。

假设提取到的标志点的亚像素坐标为Pcenter=(uc,vc),其周围四个整数像素坐标分别为P0(u0,v0)、P1(u0+1,v0)、P2(u0,v0+1)、P3(u0+1,v0+1),以Pcenter为中心,将四个像素点围成的正方形划分为四个小矩形区域,如图3 所示,计算这四个矩形区域的面积S0、S1、S2、S3。显然,矩形面积与四个整数像素点对标志点的插值比例成反比,可以得到基于面积倒数的插值权函数:

图3 亚像素插值比例示意图Fig.3 Schematic diagram of sub-pixel interpolation ratio

使用初定位方法搜索到四个整数像素对应的四个点云坐标系中的三维坐标为x0、x1、x2、x3,由相机的投影成像模型可知,像素的插值比例与空间点的插值比例相同,因此可根据式(17)所示的权函数对这四个三维坐标进行插值计算,从而求得标志点在点云坐标系下的三维坐标xcenter,其计算式:

图4 标定板圆心检测效果图Fig.4 Rendering of a central point extracted from the point cloud

为了便于标志点像素坐标的采集,同时保证标志点的数量和在点云中的成像质量,本文借鉴OpenCV不对称圆形标定板设计了一种平面标定板,检测到圆心像素坐标如图4 所示。提取到点云中的圆心点效果如图5 所示。

3.3 加权平均法优化TB和

实际情况中由于种种干扰因素(杂光干扰、接触式测量、误操作等),通过单个标志点计算出的结果往往并不可靠。如图5 所示,可以从标定板的点云数据中定位出多个圆心点,假设选择其中n个圆心点的三维坐标xcenteri(i=0,1,…,n−1)作为标志点在点云坐标系中的三维坐标,即:

结合式(13)可以得到n个手眼矩阵平移部分的计算结果结合式(15)可以得到n个点云坐标系平移矢量的计算结果TBi(i=0,1,…,n−1)。使用加权平均的方法计算TB和的最优值,可以有效抑制噪声和误操作对标定结果带来的影响。

以计算TB为例,加权平均算法的程序流程如图6所示。选择Danish 函数[16]作为加权平均的权值函数,能够有效抑制大尺度噪声干扰,函数式:

4 实 验

4.1 实验流程

本文采用XINJE龙门架工业机器人与DLP投影结构光三维成像仪搭建实验平台,机器人重复定位精度达到0.01 mm,相机分辨率为728×544,测量精度为5 μm,一次成像生成点云点数为396032,邻近点间距为0.2 mm~0.4 mm。

图5 点云中的圆心点提取效果图Fig.5 Rendering of a central point extracted from the point cloud

图6 加权平均算法流程图Fig.6 The process for the weighted average algorithm

为了得到可靠的标定数据,提取4×11 标定板上全部共44 个圆心点作为计算式(15)的标志点;为了简化标定流程,只选择四个角上的圆心点进行TCP 接触式测量,作为计算式(13)的标志点。完成四个点的接触式测量后,操作机器人做两次正交的平移运动,记录三个位置下的TCP 坐标以及采集到的三组标定板点云数据即可完成标定。

由于本文方法主要用于现场标定,在某些缺乏客观评价工具的情况下,利用相对精度较高的机器人及视觉传感器对标定结果进行评价是一种比较方便有效的方法。本文设计了相应的误差验证方法:将标定板移动至另一位置,以四个角的圆心点作为测试点,分别采集其基坐标和点云坐标,结合式(12)和式(13)得到手眼坐标转换的绝对误差计算方法:

标定实验及误差验证实验步骤如下:

1) 操作机器人进行TCP 接触式测量,得到位于四个角的圆心点在基坐标系下的三维坐标xBase;

2) 操作机器人沿基坐标系x轴和y轴方向各做一次平移运动,采集平移前后的三组标定板点云数据,提取圆心在点云坐标系下的三维坐标xCam,记录三个拍摄位置下的TCP 三维坐标xTCP;

3) 根据式(9)、式(10)、式(15)构建基于工具坐标系的正交基MA及基于点云坐标系的正交基MB;

5) 移动标定板,重复步骤1),采集新位置下四个标志点的基坐标

6) 操作机器人在4 个不同位置拍摄标定板,得到相应拍摄位置下4 个TCP 位置坐标以及共16 个标志点点云坐标

4.2 实验结果及分析

按上述实验步骤,分别使用本文3.2 中插值方法以及像素近似取整法进行实验,计算16 个测试点的绝对误差。在使用近似取整法的实验中,测试点平均误差为0.248 mm,最大误差为0.347 mm;在使用本文插值方法的实验中,测试点平均误差为0.119 mm,最大误差为0.174 mm,实验结果如图7 所示。可以看出,本文的插值方法提高了标志点点云坐标的定位精度,明显降低了标定误差。

考虑到工业现场标定对鲁棒性的要求,分析本文方法需要获取的所有标定数据,包括机器人运动的平移矢量TA,标志点在点云坐标系中的坐标xCam以及在机器人基坐标系中的坐标xBase。其中TA从机器人的运动机构参数中获取,xCam从视觉传感器的点云中提取,他们的数据来源都比较稳定,而获取xBase需要操作人员控制机器人工具中心点与标定板上的标志点进行接触式测量,这其实受人为因素影响较大。因此为了提升标定的鲁棒性,关键是需要抑制接触式测量可能出现的误操作对标定结果带来的影响。

针对此问题,本文首先通过使用两步法,使接触式测量的结果仅与手眼关系的平移部分有关,确保手眼关系的旋转部分的准确性;然后通过对标定板上的4 个标志点进行接触式测量,并将这4 个标志点的测量结果都用于的计算,使用本文3.3 所述的加权平均法来抑制标志点接触式测量的误操作对标定结果的影响,从而达到提升标定方法鲁棒性的目的。

为了验证加权平均法对标定方法的鲁棒性的提升,对TCP 接触式测量时出现误操作的情况进行模拟。首先,在进行实验步骤1)时,对第4 个圆心点的测量结果的Y坐标加入1 mm 绝对误差,分别在正常数据和干扰数据下,使用算数平均法和本文3.3 中的加权平均法进行实验,得到测试点误差如图8 所示。可以看出,使用本文方法得到的前三个测试点的绝对误差在正常数据和干扰数据下十分接近,说明使用加权平均法可以有效抑制单个干扰数据带来的影响。

图7 取整法与插值法误差比较Fig.7 Comparison of errors between rounding and interpolation

图8 加权方法误差比较Fig.8 Comparison of errors between different weighting methods

表1 不同干扰量下的标定结果Table 1 Calibration results under different interference amounts

为了检验多个点都出现误操作时本文方法的鲁棒性,分别在四个标志点都加入不同程度的干扰的情况下进行标定实验,标定结果及算法运行时间如表1 所示。由表1 全部5 组实验可看出,在任意标志点的接触式测量结果上添加干扰都不会影响的标定结果;由其中第2、3、4 组的实验结果可看出,在4 个标志点测量结果中,仅有不超过3 个点发生测量误操作时,的标定结果与正常数据下的标定结果并没有太大差别;由第5 列的实验结果可看出,如果全部4个标志点都发生测量误操作时,的标定结果会与正常数据下的标定结果产生较大的出入。

实验结果表明,本文所使用的加权平均法可以有效抑制不超过3 个点发生较大接触式测量误操作时的测量误差对标定结果的影响,只有当四个点都出现测量误操作时,才会对标定结果产生较大影响。说明本文方法可以有效提升现场标定的成功率,具有较好的鲁棒性。

5 结论

本文设计了一种基于3D 视觉传感器的龙门架机器人手眼标定方法,通过控制机器人做两次正交的平移运动解算出手眼矩阵旋转部分,对标定板上的标志点进行TCP 接触式测量,根据测量结果以及已经求解出的手眼矩阵旋转部分来计算平移部分。搭建了实验平台进行标定实验,证实了本文方法具有较高的标定精度以及稳定性。本文针对传统标定方法不适用于机器人可控自由度不足的情况,提出了相应的解决方案,并详细介绍了针对3D 视觉传感器的标定数据获取及优化方法,为解决类似问题提供了新的思路。

猜你喜欢

龙门架手眼标志点
测量标志现状分析及保护措施
观察力、手眼协调能力
培养手眼协调能力,创意思维能力
飞机结构强度试验加载装置设计
观察力、手眼协调能力
培养手眼协调能力,创意思维能力
标志点定向系统几何精度因子的计算方法
一种圆形编码标志点的设计及解码算法研究
太阳能龙门架测高防撞报警器
铜阳极板压机龙门架的有限元分析