工业机器人手眼标定综合实验设计

2024-05-15 13:21茅靖峰丁寅佳王正堂吴爱华
实验室研究与探索 2024年3期
关键词:手眼位姿圆心

茅靖峰,丁寅佳,王正堂,吴爱华

(1.南通大学电气工程学院,江苏南通 226019;2.无锡信捷电气股份有限公司,江苏无锡 214063)

0 引言

根据《“十四五”机器人产业发展规划》统计,我国已经连续8 年成为全球最大的工业机器人消费国。随着应用领域的不断扩大,市场规模还将不断提升,预计到2025 年工业机器人年销量将突破45 万台[1],相关技术人才需求井喷式增长[2-4]。

工业机器人技术课程是一门典型的多学科深度交叉融合的新兴前沿专业课程[5-6],涉及数学建模、控制、计算机、机械、电气、电子、人工智能等诸多内容[7-9]。为了便于学生学习理解、提高学生学习兴趣,增进学生实操能力和创新素养培养,设计具有多学科交叉、多技术融通特点的综合性实验项目是非常必要的。

针对由机器视觉引导的机械臂抓取技术教学内容,采用ABB公司的IRB-140 型工业机器人和梅卡曼德Mech-Eye DEEP系列的3D相机,设计了基于Visual Studio的工业机器人眼在手外模式的机械臂手眼标定综合实验,帮助学生更好地理解手眼标定理论知识。

1 眼在手外手眼标定实验设计

1.1 眼在手外手眼标定原理

手眼标定是指统一视觉系统和机器人的坐标系,将视觉系统所确定的物体位姿转换到机器人坐标系下,由机器人完成对物体的作业。要实现图像目标点到实际物体抓取点之间的坐标转换,就必须拥有准确的内外参信息。相机内参是相机内部的基本参数,包括镜头焦距、畸变等,一般相机出厂时内参已标定完成,保存在相机内部。相机外参是机器人与相机之间的位姿转换关系,即手眼关系,因此相机外参的标定被称为机器人的手眼标定[10-11]。

眼在手外的标定方式是将相机固定在被拍摄物体上方一定高度的支架上,相机和机械臂分离,此时相对于机器人基座相机是固定的,机械臂在运动过程中对相机不产生影响,主要标定相机和机械臂基底的转换矩阵,如图1 所示。图1 中,HCAM,ROB为相机和机械臂基底的转换矩阵。

眼在手外的标定方式需要将相机架设在距离被拍摄物体上方一定高度的固定支架上,此时相机不能随机器人运动,并且不干涉机器人的运动空间,避免机器人与相机发生碰撞。将标定板固定在机械臂末端,组成的手眼标定坐标系有机械臂基坐标系base(ba)、机械臂末端坐标系end(e)、相机坐标系camera(c)和标定板坐标系board(b)。图2 为手眼标定坐标系示意图。图2 中,K为所要求解的手眼矩阵,A、B为根据标定图片列出等式后最终化简得到的2 个参数矩阵。

图2 手眼标定坐标系示意图

眼在手外手眼标定的目标是求解相机坐标系到机械臂基坐标系的变换矩阵,记为Mba,c,也称为手眼矩阵。使用相机拍摄n(n>3)张不同机械臂姿态下的标定板图片,每张图片均应符合

式中:Mba,e为机械臂末端坐标系到机械臂基坐标系的变换矩阵;Me,b为标定板坐标系到机械臂末端坐标系的变换矩阵;Mb,c为相机坐标系到标定板坐标系的变换矩阵。

标定板是固定在机械臂末端的,对于每张图片标定板坐标系到机械臂末端坐标系变换矩阵都相同,即Me,b不变。将式(1)进行变形,可得

对于第1 张和第2 张标定图片都有式(2)关系,因此根据Me,b相等可得到以下等式:

式中:下标1 表示第1 张标定图片;下标2 表示第2 张标定图片。对式(3)进行化简,等式两边分别左乘M(ba,e)2、右乘M(b,c)1,可得

因此,对于n张标定图片可以得到(n-1)个等式:

式中:Mc(1→2)为相机坐标系下第1 张标定图片到第2张标定图片的变换矩阵;Mba(1→2)为基坐标下机械臂末端位姿1 到位姿2 的变换矩阵。因此,方程组(5)可以化简为:

Mba,c即为K,表示所要求解的相机坐标系到机械臂基坐标系的变换矩阵;Mba(n-1→n)即为参数矩阵A,表示基坐标系下机械臂末端位姿(n-1)到位姿n的变换矩阵;Mc(n-1→n)即为参数矩阵B,表示相机坐标系下第(n-1)张标定图片到第n张标定图片的变换矩阵。方程组(9)可简化为一个包含(n-1)个方程的经典方程组,即AK=KB[12]。通过求解参数矩阵A和参数矩阵B,即可计算出手眼变换矩阵K。

1.2 眼在手外手眼标定实验步骤

1.2.1 求取机械臂末端位姿变换矩阵

任意一个三维空间中的定向(orientation)都可以被表示为一个绕某个特定轴的旋转,给定旋转轴和旋转角度就可以把其他形式的旋转表示如欧拉角、旋转矩阵转化为四元数或者将四元数转化为其他形式的旋转表示[13]。将位置信息转化为3 ×1 的平移矩阵,四元数转化为3 ×3 的旋转矩阵,就可以得到由平移矩阵和旋转矩阵组成的机械臂末端到基坐标系的4 ×4 的变换矩阵。

机械臂末端的位姿信息可以在示教器中获得,示教器中的位姿信息如图3 所示。图3 中,X、Y、Z表示位置信息,q1、q2、q3、q4为四元数,用来描述三维空间中的姿态。

图3 示教器中的位姿信息

图3(a)为位姿1 信息图,X、Y、Z分别为784.94、12.72、634.18 mm,q1、q2、q3、q4分别为0.005 29、0.928 74、0.370 40、-0.014 76;图3(b)为位姿2 信息图,X、Y、Z分别为1 083.48、-322.93、634.19 mm,q1、q2、q3、q4分别为0.005 29、0.928 74、0.370 41、-0.014 74。

参数矩阵A 是基坐标系下机械臂末端位姿(n-1)到位姿n的变换矩阵,可以将某个位姿下对应的姿态信息和位置信息转化为旋转矩阵RA和平移矩阵TA,然后得到基坐标系下的变换矩阵MA,分别为:

根据式(12),可得到位姿1 的变换矩阵MA1、位姿2 的变换矩阵MA2。将位姿1 到位姿2 的变换矩阵设为A1,即MA1A1=MA2,可以得到,此时以图3 中位姿1 和位姿2为例,得到MA1、MA2和A1,分别为:

在实际实验中,首先通过示教器,获取n=20 种不同位姿下机械臂的位姿信息,构造出具有19 个等式的方程组(9);然后使用Visual Studio编程软件,将20 种位姿根据式(10)~(12),计算得到20 个基坐标系下的位姿矩阵MAn,即表示基坐标系下机械臂末端位姿(n-1)到位姿n的变换矩阵;最后通过20 个位姿变换矩阵之间的转换,计算得到19 个位姿变换矩阵An。

1.2.2 求取标定板图片变换矩阵

拍摄标定板图片前需要选取一个正常标定板。标定板上圆点清晰,没有明显的刮花痕迹,标定板没有明显弯曲变形。图4 为实验标定板示意图和标定现场图,实验所用标定板是圆形标定图案。

图4 实验标定板示意图和标定现场图

图4(a)为实验所用的标定板示意图,标定板上的圆形图案是非对称的,共有4 行5 列,20 个圆,圆心距为100 mm。拍摄的标定板图片实际上是标记标定板上20 个圆的圆心坐标。将标定板安装在机械臂末端进行拍摄。图4(b)为标定现场,采用ABB 公司的IRB-140 型工业机器人和梅卡曼德Mech-Eye DEEP系列的3D相机。

Microsoft Visual Studio 是支持多种程序设计语言的集成开发环境,所写的目标代码适用于微软支持的所有平台,可用于编辑、调试并生成代码,然后发布应用。使用Visual Studio编程软件调用OpenCV 库中的findCirclesGrid()函数来获取标定板中圆心点坐标,findCirclesGrid()函数返回的是圆心列表,即识别出标定板中的圆,并获取到圆心坐标。

图5 为标定图片识别出的圆心点及得到的二维坐标。将二维坐标映射到三维点云上,即可获取点云上圆心点的三维坐标。图6 为映射的三维点云及对应的三维坐标。

图5 识别到的圆心点及其坐标

图6 映射的点云及对应的三维坐标

机械臂在n种位姿下拍摄对应的n张标定图片,每张图片依次进行如上操作均可以获得n组三维坐标。参数矩阵B 表示相机坐标系下第(n-1)张标定图片到第n张标定图片的变换矩阵,可以转换为第(n-1)组三维点集到第n组三维点集的变换矩阵,即求2个点集之间的旋转矩阵RB和平移矩阵TB。将第1组的点集设为:L={l1,l2,…,lm},第2 组的点集设为:S={s1,s2,…,sm},其中每个点都是(x,y,z)三维的。首先,分别计算每个集合的中心点lc和sc:

式中,m表示标定点的数量,即拍摄的每张标定图片上的圆心数量。其次,将点集中所有的点减去中心点,生成新的点集L′和S′,即:

接着,计算新的点集之间的协方差矩阵

最后,通过对协方差矩阵进行奇异值分解[14],获得对应的奇异向量U和V即:

式中,Σ 为对角阵,对角元素为奇异值。此时,旋转矩阵RB、平移矩阵TB和B分别为:

以拍摄2 张标定图片为例,使用Visual Studio 编程软件分别提取标定图片中的圆心坐标,然后映射为三维坐标,最后通过这2 组三维点集就可以得到第1个参数矩阵B1:

实际实验中,拍摄20 张标定图片,拍摄的每张标定图片上的圆有20 个,即m=20。经过上述操作,由20 张标定图片信息可以计算得到参数矩阵B。

1.2.3 求取手眼矩阵

将方程组(9)转化为

式中:Mba,ij为机器人在基坐标系下i时刻的末端位姿到j时刻的末端位姿的变换矩阵;Mc,ij为相机坐标系下i时刻的标定板上标记点到j时刻的标定板上标记点的变换矩阵;K 为所求解的相机到机械臂基底的齐次变换矩阵,由3 ×3 的旋转矩阵R 和3 ×1 的平移矩阵T组成。旋转矩阵R为正交矩阵,公式如下所示:

在使用Tsai 两步法[15]求解K 时,先求解旋转部分R,再使用旋转部分求解平移部分T。将式(20)展开得

式中:Rba,ij为机器人在基坐标系下i时刻的末端位姿到j时刻的末端位姿的旋转矩阵;Tba,ij为机器人在基坐标系下i时刻的末端位姿到j时刻的末端位姿的平移矩阵;Rc,ij为相机坐标系下i时刻的标定板上标记点到j时刻的标定板上标记点的旋转矩阵;Tc,ij为相机坐标系下i时刻的标定板上标记点到j时刻的标定板上标记点的平移矩阵。将式(22)化简后得到

将式(23)展开后得:

对式(24)化简后可得:

式中,I表示单位矩阵。使用Visual Studio编程软件编写程序,采用Tsai算法求解得到手眼标定的旋转矩阵R和平移矩阵T分别为:

K的旋转部分为正交矩阵,需要验证所求手眼矩阵中旋转矩阵R是否为正交矩阵。若R为正交矩阵,则满足RRT=I,即RT=R-1。因此,只需验证RR-1是否为单位阵。计算RR-1,可得

RR-1=I满足条件,即R为正交矩阵。故可得

2 实验结果分析

对于标定好的外参数据,需要对得到手眼矩阵后的标定结果进行误差分析,同时判断是否满足精度要求。标定板上标记的是20 个圆心坐标,映射到三维点云上就是20 组三维坐标。将20 个圆分为5 个部分,如图7 所示,分别为左上、左下、中间、右上和右下5 个部分,每个部分有4 个圆。

图7 标定板上圆划分区域示意图

将标定板上的圆心映射到三维点云上后每部分用4 组三维坐标的平均值来代替。将相机坐标系下5 个部分的标记点通过手眼矩阵和机械臂末端姿态信息转换到机械臂基坐标系下,与实际值进行对比。

点云的误差参考标准为:一般工程场景下,要求所有数据点误差小于3 mm;高精度场景下,要求所有数据点误差小于2 mm;码垛拆垛场景下,要求所有数据点误差小于5 mm。表1 为手眼标定数据。通过实验数据求得手眼矩阵并分析得到手眼标定在3 个方向的总平均误差为±2 mm左右,符合各种场景要求。

表1 手眼标定数据 mm

3 结语

采用ABB 公司的IRB-140 型工业机器人和梅卡曼德Mech-Eye DEEP 系列的3D 相机,以眼在手外的手眼标定方法,运用机械臂、相机、标定板和Visual Studio编写程序,开发了工业机器人眼在手外模式的机械臂手眼标定综合实验。实践证明,通过眼在手外的手眼标定系统,获取机械臂末端位姿变换矩阵、标定板图片变换矩阵和手眼矩阵,并进行手眼标定误差分析,可帮助学生加深眼在手外的手眼标定知识理解。

猜你喜欢
手眼位姿圆心
二次曲线的一个类似圆心的性质
观察力、手眼协调能力
培养手眼协调能力,创意思维能力
观察力、手眼协调能力
培养手眼协调能力,创意思维能力
以圆周上一点为圆心作圆的图的性质及应用
基于共面直线迭代加权最小二乘的相机位姿估计
基于CAD模型的单目六自由度位姿测量
小型四旋翼飞行器位姿建模及其仿真
基于几何特征的快速位姿识别算法研究