基于目标检测的机器人手眼标定方法

2022-03-12 05:55肖贤鹏
计算机工程 2022年3期
关键词:手眼球心机械手

钟 宇,张 静,2,张 华,肖贤鹏

(1.西南科技大学 信息工程学院,四川 绵阳 621000;2.中国科学技术大学 信息科学技术学院,合肥 230026)

0 概述

近年来,机器人应用逐渐从工业领域向国防军事、医疗康复、助老助残、居家服务等领域迅速拓展[1]。RGB-D 相机可采集场景中的彩色图和深度图,获取视野内任意目标三维点云,被广泛应用于智能协作机器人以感知周围环境[2]。智能协作机器人在进入未知环境时,依赖视觉系统感知动态工作空间定位目标,实现机械臂对目标对象的自主抓取回收作业[3]。获取机器人坐标系和相机坐标系之间的变换关系,即手眼标定,是机器人进行视觉伺服作业的前提[4]。关于视觉系统与其他坐标系之间的标定方法,近年来受到了学者们的广泛关注并取得了一定的研究成果。手眼标定方法主要分为需要标定物和不需要标定物两类。文献[5-7]介绍了不需要标定物的手眼标定方法,标定过程复杂、干扰因素多。在基于标定物的传统方法中,机器人末端携带标定物,通过相机拍摄标定物多组不同姿态获得标定方程。文献[8-9]将传统标定板作为标定件,通过在多个坐标系之间的转换,求解齐次矩阵方程。在标定时需要高精度的标定板[10-11],且保持标定板位于相机视野范围内,但机器人的运动范围较有限。文献[12-14]利用激光跟踪仪或三轴跟踪仪进行手眼标定,复杂的辅助标定设备增加了手眼标定的难度和成本。文献[15-17]采用立体视觉获取空间点坐标计算手眼转换矩阵,标定精度仍有很大的提升空间。

针对RGB-D 相机与机器人坐标系的手眼标定问题,本文提出基于目标检测的机器人手眼标定方法,将3D 打印球作为标定件夹持在机械手末端工具中心点(Tool Center Point,TCP),使用改进的yolov3 目标检测神经网络实时检测与定位标定球在相机坐标系下的3D位置,计算并得到抓取机器人的末端TCP 在机器人本体坐标系与相机坐标系之间的转换关系。

1 相机成像模型

RGB-D 相机可获得彩色图和深度图,其中深度图由物体在像平面的像素坐标u、ν及其到像平面的距离d构成。利用小孔成像原理对相机进行建模[18],根据其内参矩阵k将二维像素坐标系下的点P(u,ν)投影到三维相机坐标系{C}空间中。

其中:f为相机焦距,单位为mm;dx和dy为像元尺寸,单位为mm;u0和ν0表示主点与图像中心点的偏离程度和;P Dz为P(u,ν)像素点对应的深度值。

若在相机内参矩阵k已知的情况下,则将像素坐标系{P}下的点P(u,ν)投影到相机坐标系{C}下的空间点坐标PC=[PCx,PCy,PCz],其中:

2 标定球检测

在本文方法中,3D 打印球被夹持在机械手末端TCP,如图1 所示。获取标定球的彩色图像后,从彩色图中检测并提取标定球的球心位置。霍夫变换圆形等传统特征检测只能从简单背景中提取圆形特征,不能在实际环境、机械手夹持遮挡等复杂情况下检测标定球。基于卷积神经网络的目标检测网络能自动学习目标特征,从图片中提取目标对象[19]。因此,本文利用改进的yolov3 目标检测神经网络[20]检测并定位标定球。

图1 标定球夹持在机械手末端的示意图Fig.1 Schematic diagram of the calibration ball clamped at the end of the manipulator

基于yolov3 的标定球检测模型如图2 所示,作为标定球检测器实现对标定球的检测定位,以获取标定球在像素坐标系下的成像的圆心坐标Pball(u,ν),网络结构中的DBL 是由卷积层、批标准化层和Leaky ReLu 层组成的模块。Yolov3 目标检测神经网络模型的改进主要包括:1)针对本文只检测标定球这一特定目标,重新设计预设先验框为1∶1 的比列,使神经网络模型更快速收敛;2)针对标定球成像尺寸变化不大的问题,删除原yolov3 网络中大目标检测支路,只保留对中小目标检测两个尺寸的支路输出,以提高检测速度。

图2 基于yolov3 的标定球检测模型Fig.2 Detection model based on yolov3 for calibration ball

采集150 张不同尺寸的标定球夹持在机械手末端的图片,制作单一类别球的小规模数据集。利用数据增强方式扩增数据集训练神经网络可增强网络模型的泛化能力与鲁棒性。通过在一定范围内随机改变图像亮度、对比度和色域度,以及在一定范围内随机对图像进行缩放、宽高扭曲和水平翻转,对采集的150 张图像的数据集通过数据集扩充10 倍后进行训练,部分数据集图像如图3 所示。采用PASCAL VOC 格式标注数据集,左上角(x1,y1)与右下角(x2,y2)两点标注格式如图4所示,标注中心点(xP,yP)为左上角和右下角两点的中点,计算公式如式(4)所示:

图3 部分数据集图像Fig.3 Part of the dataset images

图4 数据集标注格式Fig.4 Dataset annotation format

训练改进的yolov3 模型,将数据增强后的数据集随机按8∶2比例分成训练集和测试集,训练时Batch size设置为8,初始学习率设置为0.001,每一轮衰减系数设置为0.95,共训练50 个epoch。训练完成后将网络权重模型在测试集中进行测试,若预测并输出标定球的定位框与标签框的交并比(Intersection over Union,IOU)大于0.5,则为检测成功,在测试集中得到98.3%的检测成功率。

在实验过程中,正常的室内光照强度为150 Lux,对采集的图片加入干扰处理,测试检测模型的鲁棒性。对正常情况下采集的多组图片,调节亮度变化范围为[-70%,+70%]、对比度变化范围为0.0~0.3、三通道色域扭曲范围为[-30%,+30%]以及随机缩放范围为0.2~2.0。经过处理后得到100 组带干扰的图片送入模型进行标定球检测,标定球检测成功率为98%,部分检测结果如图5 所示。通过网络输出定位框,由式(4)计算标定球成像的圆心像素坐标。

图5 部分标定球检测结果Fig.5 Part of the detection results of the calibration ball

3 手眼标定计算

标定球被夹持在机械手末端的中心,即球心与机械手末端的TCP 重合。使用训练后的改进yolov3 目标检测神经网络模型检测提取标定球在像素坐标系下的球心坐标,结合RGB-D 相机获取的球心像素点对应的深度值,由式(3)计算得到标定球球心在相机坐标系下的三维坐标,将手眼标定问题转换为求解相机坐标系与机器人基坐标系之间的映射矩阵。相机坐标系与机器人基坐标系之间的映射矩阵计算如下:

其中:为相机坐标系{C}与机器人坐标系{B}之间转换的旋转矩阵;为平移向量;[P Bx,P By,P Bz]T为点P(u,ν)在机器人坐标系{B}下的坐标向量;[PCx,PCy,PCz]T为点P(u,ν)在相机坐标系{C}下的坐标向量。

在标定时,控制机械臂在相机视野中随机移动n个点,利用上述方法获得标定球在相机坐标系的三维坐标和对应点在机器人基坐标系下的坐标。记录标定球在相机坐标系和机器人坐标系下一一对应的点集:相机坐标系Ci={c1,c2,…,cn}和机器人基坐标系Bi={b1,b2,…,bn}。使用奇 异值分 解(Singular Value Decomposition,SVD)方法求解两个坐标系之间转换矩阵的最小二乘解[21]。计算相机坐标系{C}到机器人坐标系{B}映射的旋转矩阵和平移向量(如式(7)所示)的具体步骤如下:

1)计算标定球在相机坐标系和机器人坐标系下的两个点集的重心,如式(8)所示:

2)计算两个点集中的每个点减去重心后的平移数据,如式(9)所示:

3)计算X和Y的协方差矩阵S,其中X和Y由向量xi、yi构成,如式(10)所示:

4)对S进行奇异值分解,计算出旋转矩阵,如式(11)所示:

5)由旋转矩阵计算平移向量,如式(12)所示:

4 实验与结果分析

4.1 标定方法有效性验证实验

通过仿真实验验证本文提出的基于目标检测的机器人手眼标定方法的有效性。实际的机器人坐标系{B}与相机坐标系{C}之间的手眼变换关系是未知待求的,但仿真实验可人为设定标定量的真实值,以及末端机械手TCP 在机器人坐标系下的坐标点,从而检验并标定结果精度。

在仿真实验中,设定机器人坐标系{B}和RGB-D相机坐标系{C}之间的刚体旋转Rx(45°)、Ry(-30°)、Rz(60°)和平移X(850 mm)、Y(1 200 mm)、Z(1 350 mm)。Rx、Ry、Rz分别表示绕x轴、y轴和z轴旋转,因此两个坐标系的转换关系旋转矩阵和平移向量如式(13)和式(14)所示:

在仿真过程中,设定3D 打印球在机械手末端的夹持误差为-5~5 mm 的随机误差,相机坐标系{C}下TCP 在X、Y、Z各个方向的检测误差是均值为0、标准差为1.5 的正态随机误差。在机器人坐标系{B}下随机采集100 个标定点作为TCP 在机器人坐标系下的点集,利用设定的手眼转换矩阵式(13)和式(14),将点集代入式(6)中得到TCP 在相机坐标系下理论坐标点集。理论点集中的每个点加入上述夹持误差和检测误差,模拟真实情况下RGB-D 相机坐标系{C}对TCP 的测量,得到相机模拟检测点集。

利用在机器人坐标系{B}下采集TCP 的点集和在相机坐标系{C}下测量TCP 的点集,由奇异值分解方法求解式(7)~式(12)得到相机坐标系{C}与机器人坐标系{B}之间的标定结果和,如式(15)和式(16)所示:

图6 给出了在相机坐标系{C}下的标定球理论点集分布位置和检测TCP点集分布位置,其中,圆圈为标定球在各个标定点上的真实位置,十字为标定球加入检测误差后模拟RGB-D 相机真实情况提取标定球球心在相机坐标下各点分布位置。图7 给出了在机器人坐标系{B}中机械手末端TCP 真实位置点集和计算位置点集分布,其中,点集是利用标定结果式(15)和式(16)将相机坐标系{C}下检测点集由式(6)转换到机器人坐标系后得到,圆圈为机器人机械手末端TCP 在机器人坐标系{B}下的真实位置,十字表示通过标定结果将相机坐标系下的点转换到机器人坐标系下的各点分布位置。

图6 相机坐标系中的标定结果Fig.6 Calibration results in the camera coordinate system

图7 机器人坐标系中的标定结果Fig.7 Calibration results in the robot coordinate system

从仿真结果可看出,通过奇异值分解得到旋转矩阵和平移向量与标定量设定值基本一致。为进一步分析标定精度,定义标定误差:利用求得的标定结果,将相机坐标系下的点转换到机器人坐标系下,转换后的点与对应机械手末端TCP之间的欧氏距离为标定误差。该定义没有去除TCP 在相机中的检测误差和标定球在机械手末端的夹持误差,因此为复合误差,用于间接分析标定精度。仿真实验得到的标定误差分布如图8 所示,标定误差整体成正态分布,误差均值为2.63 mm,误差方差为0.92 mm,验证了本文提出的基于目标检测的机器人手眼标定方法的有效性。

图8 标定误差分布Fig.8 Calibration error distribution

4.2 手眼标定实验

利用末端安装有Robotiq85 机械手的6 自由度UR5 机械臂和Intel RealSense D415 深度相机搭建手眼系统,如图9 所示。算法运行环境为Windows10、Pytorch1.4.0、Python3.7,CPU 为i5-6200,GPU 为GeForce 940M 2 GB 显存。上位机通过网口与UR5控制机箱通信与机械臂运动,获取机械手末端TCP在机器人坐标系下的坐标,利用Intel RealSense D415 的PyRealSense2 包,获得相机内参矩阵k信息,通过USB 接口读取相机的彩色图和深度图。

图9 手眼标定实验设置Fig.9 Experiment setting of hand-eye calibration

使用直径为3 cm 标定球夹持在UR5 机械臂Robotiq85机械手末端,控制机械臂在相机视野中移动。在移动过程中,利用改进的yolov3 网络从RGB-D 相机返回的彩色图中检测标定球的球心坐标Pball(u,ν)并获得球心点深度值。利用式(3)计算标定球心在相机坐标系下的三维坐标,实现对标定球的空间定位。在机械臂运动空间内随机采集标定点,记录机器人机械手末端TCP 在机器人坐标系下的三维坐标(从机器人控制器中获取)和检测得到的标定球球心在相机坐标下的三维坐标,使用奇异值分解方法求解相机坐标系与机器人坐标系转换关系的旋转矩阵和平移向量。随着标定点数量的增加,标定误差的均值逐渐减小,当采样点数量大于30 时,标定误差均值逐渐趋于稳定,如图10所示。标定录像文件见https://share.weiyun.com/tyb6Zd0O。

图10 标定误差均值与标定点数量的关系Fig.10 The relationship between the mean value of calibration errors and the number of calibration points

训练后的改进yolov3 标定球检测模型权重占用192 MB 的内存空间,网络模型对416×416 像素单张图片预测输出标定球球心坐标的平均耗时为167.6 ms。采集标定数据后,利用50 组标定数据计算标定结果的旋转矩阵和平移向量最高耗时小于2 ms。

4.3 标定球检测实验

标定球被夹持在机械手末端,通过目标检测网络检测标定球位置进行手眼标定。当使用不同尺寸的标定球进行标定实验时,会得到不同精度的标定结果。为获得精度较高的标定结果,需找到最佳尺寸的标定球,分别测试8 种不同直径的标定球,得到不同的标定误差,如表1 所示。在实验中,标定球直径太大或太小都会使最终的标定误差增大。标定球直径过大容易引起较大的夹持误差,使标定误差增大;标定球直径过小,容易引起较大的检测误差,使标定误差增大。实验结果表明,在仿真中设定的误差分布情况与实际系统中直径为3.0~3.5 cm 的标定球的误差结果较接近。与其他直径的标定球相比,直径为2.5 cm 的标定球的误差均值、最大误差、误差方差均最小。

表1 不同直径标定球的误差结果Table 1 Error results of calibration balls with different diameters

4.4 标定精度验证实验

在上述两个测试实验的基础上,利用直径为2.5 cm 的标定球重新进行标定实验,在机器人运动范围内随机选取40 个采样点作为标定点,记录机器人机械手末端TCP 在机器人坐标系的坐标和标定球球心在相机坐标系下的坐标,求得手眼关系转换矩阵和平移向量,如式(17)和式(18)所示:

通过控制机器人使标定球在机器人运动范围内选取20 个采样点作为验证点,如图11 所示。使用式(17)和式(18)的标定结果,由式(6)将RGB-D 相机检测标定球在相机坐标系下的坐标转换到机器人坐标系下,转换后的空间点坐标与从机器人控制器返回的机械手末端TCP 坐标进行对比,求出各点转化后的距离误差均值和X、Y、Z方向的误差结果如表2 所示。在本文实验环境下使用最佳直径2.5 cm的标定球得到的标定结果,转换后机器人坐标系下空间点的距离误差均值为1.967 mm,在X、Y、Z各方向上的误差均值为0.895 mm、1.207 mm、1.142 mm,最大误差和误差方差均较稳定。

图11 验证点空间分布Fig.11 Spatial distribution of verification points

表2 验证点误差结果Table 2 Error results of verification points mm

5 结束语

本文提出基于目标检测的机器人手眼标定方法,将3D 打印球作为标定件,通过改进的yolov3 目标检测神经网络对标定球进行检测定位,可在较复杂的环境中实现对标定球的提取,从而完成机械手末端TCP 在相机坐标系与机器人坐标系之间的标定,避免了多个坐标系之间的复杂转换。实验结果表明,基于该方法转换后的空间点位置误差在2 mm以内,标定精度较高。下一步将分析标定求解算法及标定球的夹持安装精度、yolov3 标定球检测精度等对最终标定精度的影响。

猜你喜欢
手眼球心机械手
一种用于厢式压滤机的可调节悬浮机械手
直击多面体的外接球的球心及半径
有限元分析在外圆磨床机械手设计中的应用
观察力、手眼协调能力
培养手眼协调能力,创意思维能力
人体体感感知机械手设计与实现
观察力、手眼协调能力
培养手眼协调能力,创意思维能力
拆弹帮手
?如何我解决几何体的外接球问题