基于M型标准块的视觉引导机器人系统手眼标定方法研究

2024-02-04 04:14邰承岳谌业清李昊冉张烈山
计算机测量与控制 2024年1期
关键词:手眼标定坐标系

邰承岳,谌业清,李昊冉,张烈山

(1.浙江理工大学 机械工程学院,杭州 310018;2.浙江理工大学 信息科学与工程学院,杭州 310018)

0 引言

随着智能制造战略的不断推进,工业机器人已成为现代智能生产线上具有标志性的重要装备。视觉传感器与工业机器人手眼协同技术正在悄然改变传统的机械制造业,基于视觉传感器的机器人系统使得制造、装配等工艺活动更加具有柔性和环境适应性。一般地,机器人视觉系统采用非接触式测量技术作为工业机器人的“眼睛”来获取目标的空间位置,而线结构光传感器[1-2]由于具有抗干扰能力强、精度高等优点被广泛应用于焊接[3]、研磨[4]、铣削[5]、抓取[6]等加工生产领域中。为了获得被测物在机器人基坐标系下的坐标数据,需要确定机器人末端坐标系与传感器坐标系之间的坐标变换关系,该过程称之为手眼标定,而手眼标定的精度影响着整个机械制造工艺过程的精度。

目前,手眼标定算法的理论已经有了很多前人的研究基础[7-8]。手眼标定算法一般是通过多次改变机器人位姿,观测一个已知结构的靶标,建立约束关系来求解手眼关系矩阵。机器人的视觉传感器按照测量维度分为2D和3D传感器两种[9-10]。对于3D传感器,典型方法为采用摄像机作为传感器且以棋盘格作为靶标的标定方法,该方法根据约束关系建立型如AX=XB的齐次方程[11-12],然而,该方法计算复杂,标定精度较低、鲁棒性低。同时,3D视觉传感器普遍测量精度较低,不能满足工业机器人柔性焊接、打磨等高精度作业的要求。对于2D传感器即主要为线结构光扫描视觉传感器,主要采取的方法是以标准球作为靶标,获取标准球球心位置作为约束,从而建立数学模型求出手眼关系的矩阵[13]。为了提高手眼标定结果的精度,Xie[14]等人基于线结构光传感器建立了包含6自由度机器人运动学参数及手眼标定参数的误差模型,机器人的标定精度得到显著提高;高金锋[15]等人提出一种采用标准圆柱中轴线作为约束的手眼标定方法,该方法利用粒子群优化算法(PSO)及广义拉格朗日乘子法的融合算法求解标定矩阵;孙炜[16]等人提出一种基于阶梯形标定物手眼标定方法,该标定方法具有较高的精度和稳定性;He Xie[17]等人提出一种使用任意曲面作为标定物的标定方法,该方法同时标定机器人几何参数和手眼标定参数,具有较好的精度、重复度和鲁棒性;Amy[18]使用迭代的方法进行手眼关系的校准,极大的提高了校准精度;Sharifzadeh[19]基于一个单平面进行手眼标定,该方法具有成本低、制作简单、精度较高等优点。虽然学者们对机器人的标定做了大量的研究,提出了许多有效提高标定精度的标定方法,但这些方法往往极大地提高了标定的成本或复杂性,不能适应实际工业生产中复杂环境。因此,一个低成本、标定方法方便快捷、可以适应复杂环境的标定方法的研究是十分有必要的。

基于上述问题,本文针对6自由度机器人搭载线结构光传感器的机器人系统,提出一种以M型标准块作为靶标的手眼标定方法。该方法通过改变机器人末端位姿,每次可采集出试块的一条M型截面轮廓,该轮廓由4条呈现M型的直线组成,左右两组直线的相交就可以得到一对M型标准块脊线上的点,结合机器人运动学模型[20],以点云到两条平行直线的距离为约束,同时辨识出机器人运动学及手眼关系矩阵的参数误差。为了验证标定方法的有效性,提出以某精加工平面为基准,利用标定后的机器人系统对该平面进行点云采集,以实测点云到最小二乘拟合面距离的均方根值作为手眼标定算法的评价依据。该方法操作简单,能有效提高机器人手眼标定的精度,可以适应工业生产中复杂的环境。

1 机器人手眼标定模型

机器人手眼标定常规方法以标准球为标定物,其标定系统示意图如图1所示,主要由工业机器人、线结构光传感器和标定物组成。

图1 以标准球约束标定系统示意图

将线结构光传感器搭载在机器人末端,多次改变机器人位姿扫描空间中一固定点位置,可以得到该点在线结构光传感器坐标系下的位置Xs与其在机器人基坐标系下的位置Xb的转换关系,其转换关系为:

Xb=Tf·Ts·Xs

(1)

其中:矩阵Tf为机器人末端坐标系相对于基坐标系的转换矩阵;矩阵Ts为线结构光传感器坐标系相对于机器人末端坐标系的转换矩阵即手眼关系矩阵。

目前,工程上测量空间固定点的方法主要为扫描一个已知半径为R的标准球来获得球心坐标Xs(xs,ys,zs),若线结构光传感器扫描所得弧状点云拟合圆的坐标为Xc(xc,yc,zc),半径为r,所求球心在线结构光传感器坐标系下的位置为:

(2)

式中,ys的符号需要根据传感器与标准球的相对位置来确定。

对于以标准球为目标的手眼标定方法,主要存在以下几个问题:第一,对于每次扫描求得的球心坐标都需要人为判断Y轴方向上的正负,当扫描圆心与球心接近时,极易判断错误,这将导致手眼标定无法进行或标定结果错误;第二,每次采集数据后结算球心坐标时都需要圆拟合等算法求解Y轴方向上坐标,会增大Y轴方向上的噪声,鲁棒性较差;第三,以标准球作为测量对象,算法的精度严重依赖球的加工精度,通常来说球的制造精度不易控制,不仅提高了系统成本,也难以保证标定效果。因此,采用以标准球为目标的手眼标定方法精度和稳定性都不是十分理想

本文设计了一种M型标准块,其截面形状呈现M型。该M型标准块在标定时主要用到了上部呈现屋脊状的4个平面,以这4个屋脊面构建两条平行的脊线作为手眼标定算法的约束。M型标准块如图2所示。

图2 M型标准块模型图

设计M型标准块顶端两条脊线上分别存在坐标系{l1}、{l2},两坐标系满足以下条件:

1)坐标系{l1}、{l2}之间没有姿态的变化;

2)坐标系{l1}、{l2}的X轴分别与对应直线重合;

3)坐标系{l2}相对于{l1}只存在Y轴方向上的位置变化;

4)机器人基坐标系相对于坐标系{l1}、{l2}在X轴方向上的坐标为0。

以上条件可以确定坐标系{l1}、{l2}的位姿。对应的标定系统如图3所示,则可以重新构建数学模型如式(3)所示:

图3 以M型标准块约束标定系统示意图

(3)

其中:Xl1、Xl2表示直线l1、l2上点云在坐标系{l1}、{l2}上的位置,Tl1、Tl2为机器人基坐标系{b}相对于直线坐标系{l1}、{l2}的转换矩阵。在无噪声影响下,对于直线坐标系{l}上的点云坐标Xl上理论上满足约束条件:yl=zl=0。但由于实际测量时,必定存在噪声的影响,所以目标方程为:

(4)

式中,d为直线点云到直线的距离。

相较于标准球,M型标准块具有易于加工、加工精度高的特点;同时,消除了使用标准球标定时因判断球心在线结构光传感器上的位置的Y轴坐标的正负导致无法标定的情况;采用M型标准块标定时,有着更大的机器人姿态变换范围,这将易于标定数据的采集并且提高标定的精度和鲁棒性。

2 M型标准块脊线点云采集方法

如图4所示,改变机器人姿态使得扫描仪每次能够同时获得直线l1与l2上的点。

图4 采集点云数据图

每次采集的扫描仪点云数据呈现“M”型,将点云数据拟合成4条直线,直线间两两相交得到的2个交点即为M型标准块脊线上的目标点,线结构光传感器采集脊线点云的处理过程如图5所示。其中,每组扫描仪采集点云还有有效点约750个,细线为拟合出来的4条直线,两个“*”点为直线交点。因为加工工艺的限制,M型标准块的理想脊线并不存在,需要通过直线交点计算来得到一对脊线上的点,因此需要通过多次扫描测量,再通过直线拟合来间接得到脊线点云。

图5 直线交点提取示意图

该方法的重点为线结构光传感器一次扫描得到的点云中4条直线的分类提取,本文提取方法如下:

1)初始化数据,令距离阈值d=0.01 mm,采集点云数据,记为Data数组;

2)初始化适用于拟合直线模型点云数据,记为Model,为Data数组的序号第10至第30的点云数据;

3)使用数据Model拟合直线,获得直线参数:斜率k和截距b;

4)计算数据Data中每个点至直线距离ddata,更新数据Model为小于距离阈值d的点云数据;

5)重复步骤3)、4),若Model不再更新,则输出直线参数k、b;

6)计算Model中最高的点云序数pmax,删去点云数据Data第1至pmax的点云;

7)重复步骤2)~6),直至得到4条直线的参数。

提取出线结构光传感器点云数据中的4条直线之后,进行直线交点的计算,令两条直线的的斜率分别为k1、k2,截距分别为b1、b2,其交点坐标为(xp,yp),则可以得到如式(5)所示的型如Ax=b的公式。

(5)

最小二乘式的求解方法如(6)所示:

x=(ATA)-1ATb

(6)

3 基于M型标准块的手眼标定算法

3.1 初值计算

1)手眼关系初值计算:

在M型标准块上任一直线上标记一点,不断控制机器人扫描该点,获取该点在线结构光传感器下的坐标以及对应的机器人末端位姿,建立式(1)所示的模型,即为式(7)所示:

[xb,yb,zb]T=

RfRs[xs,ys,zs]T+Rfts+tf

(7)

式中,ys=0,Rf、tf分别为工业机器人末端的姿态和位置,Rs、ts分别是手眼关系的旋转矩阵和位置矩阵。

采集n组数据之后,可以得到式(8):

Rf1Rs[xs1,0,zs1]T+Rf1ts+tf1=

RfiRs[xsi,0,zsi]T+Rfits+tfi

i=2,3…n

(8)

化简得:

(9)

式(9)中,r是旋转矩阵Rs的3个旋转分量。即Rs=[r1r2r3]。通过最小二乘法求解出r1、r3以及ts之后,根据右手定则,可以得出:

r2=r3×r1

(10)

通过式(7)、(8)的方法可以计算机器人在不考虑运动学误差的情况下的手眼关系,以其作为本文标定的一个初值。

2)M型标准块位姿初值计算:

按如图6所示采集M型标准块两条脊线上A、B、C三个点,通过公式(1)的转换关系得到这3个点在机器人基坐标系下的坐标位置。

假设点A、B、C的位置坐标为PA、PB、PC,令n1=PB-PA、n2=PC-PA,则旋转矩阵的旋转分量为:

(11)

其中:“×”表示向量之间的叉乘关系,r1为直线l1和l2的方向向量,r2为直线l1指向直线l2的方向向量,r3为直线l1和l2组成的平面的法向量。

由于机器人基坐标系在直线坐标系{l1}上X轴坐标为0,所以直线坐标系{l1}在机器人基坐标系上的位置等价于原点在该直线上的垂足在机器人基坐标系上的位置,如图7所示,令点A位置坐标为(x1,y1,z1)、点B位置坐标为(x2,y2,z2),直线外一点即机器人基坐标系坐标为(0,0,0),则位置矩阵参数为:

图7 点到直线垂足示意图

(12)

式中,

(13)

根据式(11)、(12)得到直线坐标系{l1}相对于机器人基坐标系上的转换关系bTl1,反之则可以得到机器人基坐标系相对于直线坐标系{l1}上的转换关系为Tl1:

Tl1=bTl1-1

(14)

由于直线l1与l2相互平行,若两条直线间的距离为d,则可以得到机器人基坐标系相对于直线坐标系{l2}上的转换关系为:

Tl2=transl(0,±d,0)·Tl1

(15)

其中:transl()为平移变换函数。

至此,手眼关系矩阵以及机器人基坐标系在对应的两条直线上的位姿矩阵的初步标定完成。初步标定方法简单快捷,不需要复杂的运算。由于该运算方法未曾考虑机器人运动学误差的影响,计算出的结果与实际有所偏差。因此,需要考虑机器人运动学误差的影响,建立误差辨识的模型,通过修正手眼关系误差、机器人运动学误差以及机器人基坐标系在M型标准块上的直线的位姿误差,从而使标定的手眼关系更加准确。

3.2 误差辨识方法

得到参数Tl、Ts的初值之后,考虑到机器人存在运动学参数误差,因此,需要建立误差辨识的模型如式(16)所示:

Xl+ΔXl=(Tl+ΔTl)(Tf+ΔTf)(Ts+ΔTs)Xs

(16)

消去其中的高阶项,仅保留低阶项,可以得到式(17):

ΔXl=

ΔTlTfTsXs+TlΔTfTsXs+TlTfΔTsXs

(17)

根据微分运动学原理:

ΔT=TδT

(18)

(19)

(20)

结合式(17)、(20)的可以得到误差辨识的公式如式(21)所示:

Ax=b

(21)

其中:

(22)

其中:ni是3×1的向量,m是机器人的转轴数量,m=6,但由于单条直线的约束对于坐标系{Tl}的姿态仅可以确定其X轴的方向,Y、Z轴的方向依然可以绕X轴旋转,所以,单条直线的约束不能确定坐标系{Tl},因此本文以两条直线作为约束建立最小二乘模型,这不仅可以提高手眼标定的精度,还可以确定坐标系{Tl}的位姿。

对式(22)作如下处理:

1)标定方法是以直线作为约束,因此不存在X轴方向上的约束,需要删去矩阵A、b的第一行;

2)机器人基坐标系{Tb}相对于坐标系{Tl1}、{Tl2}姿态不变,在Y轴上位置存在差异,在X、Z上位置不变,且在X轴上的位置为0,因此删去参数x中的Δxl,改Δyl为Δyl1、Δyl2,然后对矩阵A作相应的更改;

3)考虑到x冗余参数的影响,需要去除冗余参数,可通过QR分解辨识出冗余参数。

经过以上三点的修改之后,A、b、x的参数如式(23)所示:

(23)

综上,多次改变位姿测量M型标准块,获得试块直线的点云坐标,经式(17)~(23)建立最小二乘式如(24)所示:

Ux=V

(24)

通过最小二乘法求解出误差参数x的值之后,将误差补偿进标定模型中,然后再次进行误差辨识,不断迭代,直至辨识出的误差参数x小于阈值,算法流程如图8所示。

图8 标定算法流程图

阈值一般取接近0的数,经过测试,本文仿真及实验中取阈值为10-10即可得到满足要求的标定结果。

4 实验与结果分析

4.1 数值仿真分析

分别建立本文以M型标准块为标定物的方法和传统以标准球为标定物的方法的的数学模型。

两条的仿真直线参数分别为:

(25)

式中,PL1和PL2分别为直线上一点,VL为直线方向向量。

将线结构光传感器坐标系的XOZ平面用点坐标PP、法向量VP并表示,则每次设定机器人姿态和位置后得到的目标点坐标计算方法如式(26)、(27)所示:

Px=PL+k*VL

(26)

k*VL·VP=(PP-PL)·VP

(27)

为了研究误差对该模型的影响,对机器人的运动学模型添加表1所示的系统误差以模拟实际模型参数。然后给机器人手眼关系的6个参数分别添加0.01 rad和0.1 mm的角度误差和位置误差作为验证本文误差辨识算法时转换矩阵Ts的初值。同理,给Tl添加相同的角度误差和位置误差。其中Δα0、Δɑ0、Δθ1、Δd1四个参数会与Tl的参数冗余,本文系统模型无法将其辨识出来,所以进行仿真实验将不会对其施加系统误差。

表1 机器人运动学仿真系统误差设定值

经过给机器人标定模型仅施加系统误差的仿真实验,得到的运动学误差辨识结果如表2所示,其验证了本文算法的正确性,其中Δd2的误差会被其它运动学参数补偿掉,不会影响机器人末端的位姿,Δθ6、Δd6的误差会被手眼关系矩阵Ts的参数冗余,在实际的标定过程中也无法标定出它的误差,但其不影响工业机器人的工作。因此,主要第1个关节的参数无法标定出来,且会对机器人的工作造成一些影响。需要后续进行更加深入的研究。

表2 机器人运动学误差仿真分析辨识结果

为了验证本文算法拥有更优秀的性能,对每次调整机器人后的的机器人末端位置的x、y、z方向施加符合高斯分布N(0,σ2)的随机误差。同理,建立以标准球为目标约束的误差模型,施加同样的随机误差。比较两种算法的参数辨识结果。

通过图9可以得出,相较于以标准球为标定物的标定方法,采用以M型标准块为标定物的标定方法可以有效提高标定精度。从图(a)和图(c)姿态偏差的对比可知,本文方法对噪声敏感性极低,标定的效果有显著的提高;从图(b)和图(d)位置偏差的对比可知,本文方法的优势不是十分显著。产生这种结果的原因为:(1)本文标定方法以两条直线作为约束,直线的方向包含在约束关系之中;而标准球的方法以球心作为约束,无法确定球心的姿态,因此易受到噪声的影响。(2)虽然两种方法的位置偏差对比不明显,但造成偏差的原因不相同,本文方法是由于经式(20)至式(21)的变化之后,少了dx的约束;而标准球方法是单点约束,其检测结果更易受噪声影响。

图9 σ由0.01至0.05 mm时的偏差

对40个不同机器人位姿状态下采集的数据施加σ=0.05 mm的随机误差,然后进行标定,依次进行100组标定,每次完成后,比较标定出误差与设定误差,结果如图10所示。

图10 100组仿真各项偏差计算结果(σ=0.05 mm)

由图10可得,可以得出结论:(1)无论是从手眼关系姿态还是机器人末端的姿态,本文方法的重复性及精度均明显优于标准球的的方法;(2)从机器人末端位置偏差来看,标定误差主要集中在0~5 mm范围,标准差分别为1.601 mm和5.468 mm;从手眼关系位置偏差来看,标定误差主要集中在0~1 mm范围,标准差分别为0.335 mm和0.480 mm;所以本文方法有更好的重复性精度。

4.2 实验分析

为验证本文手眼标定算法的有效性,建立了机器人手眼标定系统。如图11(a)该系统主要由ABB 机器人 IRB6700-155/2.85、基恩士 LJ-X8000线结构光传感器(传感器的精度优于0.02 mm)以及上位机组成。标准球的直径约为50.697 mm,同时采用的M型标准块实物如图11(b)所示.,其两条脊线间距为39.93 mm。

图11 机器人手眼标定系统及标定物

在完成标定计算后,为验证算法有效性,针对某精加工平面进行测量实验,该精加工平面的平面度误差约为0.01 mm。当手眼标定算法存在误差时,机器人视觉系统测量得到的平面点云偏离实际平面,表现出类似于存在平面度误差的现象。本文参照平面度误差评定方法,提出了一种以点云到拟合平面距离的均方根误差(RMSE,root mean square error)作为手眼标定算法性能的评价依据。均方根误差指点云观测值与真值偏差d的平方和与点云数量n比值的平方根,均方根误差计算方法为:

(28)

在机器人手持线结构光传感器扫描空间合适的范围内放置M型标准块。首先,调整机器人扫描试块上一点,以此方式获得3组机器人末端位姿及对应的线结构光传感器扫描点云数据,以此计算机器人手眼关系Ts初值。然后,调整机器人扫描M型标准块,共采集40组数据,其中选择两组用作Tl1、Tl2的初值计算。最后,用这40组数据进行机器人运动学和手眼标定的参数误差辨识。

标定完成后,将精加工平面放置于适当位置,不断调整机器人,采集多组数据,使用本文标定方法和标准球的标定方法的标定误差分别来计算这多组点云在机器人基坐标下的位置,然后进行平面拟合,计算精加工平面的均方根误差[21-22]。比较使用这两种方法标定之后的点云到平面的距离误差及均方根误差,然后改变精加工平面位置,再次测量其误差,一共测量10次,图12展示前4次测量所有有效点云的误差,图13表示10次改变平面位置测量的均方根误差。

图12 标定后4次测量的点云距离误差

图13 标定后10次测量的均方根误差对比图

通过图12展示的点云误差对比可知,本文方法相较于使用标准球标定的方法,有效的减少了点云到理想平面的误差。由图13可知,采用标准球的标定方法与本文方法标定后对精加工平面测量10次得到的均方根误差的平均值分别为0.152 mm和0.080 mm,说明本文方法的绝对精度更高;而测量10次得到的均方根误差的标准差分别为0.043 mm和0.005 mm,说明本文方法重复性精度更高,与仿真结果相匹配。

5 结束语

本文针对使用标准球标定精度不高、鲁棒性弱等缺陷,设计了一种M型标准块作为标定物的标定方法,M型标准块相较于标准球成本更低且易于控制机器人采集其点云数据。使用该模块顶端两条平行直线作为约束,建立手眼标定误差、机器人运动学参数误差以及模块直线坐标系误差模型,通过最小二乘法不断迭代更新误差模型,最后得到准确的标定参数误差。

同时,本文提出以均方根误差作为评估标定精度的方法,该方法以线结构光传感器采集的某精加工平面进行均方根误差计算,间接评价机器人运动学参数及手眼标定参数辨识的效果。

最后,本文通过仿真分析,人为地对建立的运动学参数和手眼关系的模型添加系统误差及随机噪声,与以标准球为标定物的标定方法进行对比,本文方法具有更高的精度、重复性和鲁棒性,尤其在姿态误差测量上具有显著的优势。通过实验分析,使用均方根误差进行评估,相较于以标准球为标定物的手眼标定方法,本文方法的均方根误差由0.152 mm减少到0.080 mm,均方根误差的标准差由0.043 mm减少到0.005 mm,实验结果与方政结果相匹配,验证了本文方法的有效性与优越性。

猜你喜欢
手眼标定坐标系
观察力、手眼协调能力
培养手眼协调能力,创意思维能力
使用朗仁H6 Pro标定北汽绅宝转向角传感器
观察力、手眼协调能力
培养手眼协调能力,创意思维能力
解密坐标系中的平移变换
坐标系背后的故事
基于匀速率26位置法的iIMU-FSAS光纤陀螺仪标定
基于重心坐标系的平面几何证明的探讨
船载高精度星敏感器安装角的标定