APP下载

一种基于多线结构光视觉引导的工业机器人定位方法*

2020-02-02李泷杲

航空制造技术 2020年22期
关键词:角点辅助线位姿

俞 隽,李泷杲,李 根,主 逵

(1.南京航空航天大学机电学院,南京210016;2.深圳市劲拓自动化设备有限公司,深圳 5181021)

工业机器人以其效率高、环境适应性强以及具有较高稳定性等特点,配合各种末端执行器被广泛应用在装配定位、自动钻铆、检测探伤、喷涂等飞机装配作业中[1]。对于机器人的多数应用场景而言,需要确定目标对象的位姿才能完成相关作业,传统的工业机器人定位方法是通过离线编程或示教实现,这种方法严格限定了目标工件的起始和终止位姿,只能机械地重复提前规划好的路径,无法满足柔性智能装配系统的要求[2]。特别地,在飞机装配领域中,部分曲面复合材料胶结件具有弱纹理且无明显定位特征点等特征都需要新的技术手段引导机器人进行定位工作。

机器视觉技术通过非接触测量手段,获取目标特征信息并对其进行处理,能够实时地对目标或环境的变化做出响应,将其与机器人相集成,提高了机器人的环境感知能力和灵活性,减少了机器人离线编程所占用时间,成为工业机器人智能化发展中被广泛研究和应用的技术手段[3]。翟敬梅等[4]在工件上方安置相机,采用二维视觉引导系统的方式实现工业机器人的定位抓取,但只能进行水平传送定位,无法应用于三维定位场景;Ulrich[5]采用单目摄像机对三维目标进行识别定位和姿态识别,该方法没有选用灰度和物体表面纹理作为特征,因此只适合工业环境中特定的金属工件识别;Ishibashi[6]利用双目视觉系统进行机器人定位操作,可以实现目标对象的快速、非接触三维定位,但双目视觉对应点难以匹配,仅能应用于具有显著特征的目标对象;Li 等[7]提出了一种基于视觉的抓取系统,该系统使用一个摄像机从9 个方向拍摄目标信息,实现了目标检测和姿态估计;冯志刚等[8]采用多目相机构成Eye–in–Hand 工业机器人视觉系统,控制机器人完成精确定位的作业任务,但是需要提前在工件上粘贴视觉靶标点。

为解决上述问题,本文提出一种基于多线结构光视觉引导的工业机器人定位方法。以工业相机为主要测量设备,增加多线结构光光源,构成“Eye–in–Hand”手眼视觉系统。通过将多条规则的结构光束投射到弱纹理和无明显定位特征点的工件表面,辅助创造出可提取的定位特征点,结合理论模型数据,获取待定位工件在相机坐标系下的三维位姿,再根据机器人手眼标定与末端标定参数,构建基于位姿反馈的闭环定位调姿系统,实现机器人对目标对象的定位。

1 定位系统组成与基本原理

1.1 系统硬件组成

如图1 所示,定位系统主要由控制中心、工业机器人、末端执行器、工业相机、多线结构光发射器和待定位工件组成。控制中心能够获取测量设备的测量数据,进行相关处理计算并将结果反馈到执行设备中。工业相机和激光器构成末端测量装置,采集作业工件上的特征信息并解算相关位姿信息。执行设备有工业机器人和末端执行器,由工业机器人搭载的末端执行器根据测量系统的反馈,调整到一定位姿,完成对工件的抓取、装配等操作。

1.2 基本定位原理

针对弱纹理和无明显定位特征点的工件,利用多线结构光的辅助作用,建立图2 所示的闭环反馈定位调姿系统,实现机器人的定位运动。视觉测量过程是由相机采集结构光投射图像后,对定位特征点进行提取,利用立体视觉原理[9]进行三维重建,获取定位特征点在相机坐标系下的三维信息。再结合工件坐标系下的理论模型离散点集与机器人手眼标定和末端标定参数[10]解算得到机器人工具末端和待定位工件之间的实际位姿参数。通过实时位姿反馈,建立由视觉系统测量得到的实际位姿与理论位姿的偏差关系,将其传递给机器人控制器进行补偿。由于存在系统误差,机器人很难一次完成定位,故需进行数次迭代调姿以完成定位运动。

其中,视觉测量部分所需提取的定位特征点为多线结构光投射在待定位工件上表面的光条与4 条边界的交点,得到定位特征点在相机坐标系下的三维坐标后,将其与工件坐标系下的理论边界离散点集进行配准,即可得到工件相对于相机的位姿关系。理论边界点集是通过CATIA 三维软件在工件理论模型上建立坐标系,提取出工件上表面边界,并将其离散得到,如图3 所示。同时,由建立的工件坐标系可以确定机器人末端定位时的理论位姿。

图1 系统硬件组成Fig.1 System hardware composition

图2 机器人闭环反馈定位系统Fig.2 Robot closed loop feedback positioning system

图3 理论边界离散点集Fig.3 Discrete point set of theoretical boundary

2 定位特征点提取与三维重建

2.1 定位特征点提取

由于待定位工件为曲面模拟件,以及多相机拍摄视角不同的原因,采集到的光条与边界交点形式有两种类型(图4,其中红色标记点为待提取的定位特征点)。图4(a)中的定位特征点为上表面光条在边界处形成的断点,图4(b)中定位特征点为上表面光条与工件侧面上光条形成的交点。为此,本文设计了针对多线结构光边界定位特征点的提取算法,主要步骤包括特征点的粗提取,误判点的剔除和特征点位置修正。

2.1.1 特征点粗提取

由于采集到的图像中待提取特征点构成形式不唯一,以及在曲面工件上投射的光条不为直线等原因,难以通过直接细化光条求交点和端点的方法提取,故提出基于角点检测的定位特征点提取算法。在图像处理中,如果某一点在任意方向的一个微小变动都会引起灰度很大的变化,那么我们就把它称之为角点[11]。由角点定义可知,待提取的定位特征点属于角点范畴,所以本文设计的特征点粗提取算法基于角点提取,通过创建滑动搜索窗口和辅助线,对角点进行分类筛选,实现特征点的粗提取。具体流程为:

(1)图像边缘提取:首先对图像进行降噪处理,再使用Canny 边缘检测[12],提取图像边缘,为角点检测提供质量稳定的边界信息。

(2)角点提取:本文采用Shi-Tomasi 角点检测[13],如图5 所示经过角点检测后提取到包含待提取特征点的一系列角点,但是仍存在较多杂点,需要进一步筛选和剔除。

(3)光条与边界的估计斜率获取:利用Hough 变换[14]检测出图像中所有的线段,并求每条线段的斜率,得到所有的斜率集合{k1,k2,…,kn},遍历全部斜率,当其中两个斜率接近时,即:

判定两个斜率值属于同一集合,归入集合Ki={ki,kj,…,kp,kq},本文中tol 取0.05。统计判定后各个集合K中元素个数,以元素个数最多集合中的斜率均值作为光条初始估计斜率kl:

其中,m为元素最多集合中的元素个数。

通过离线编程驱动机器人运动至工件上方,在该初始工作位下,激光器发射出的光条与边界大致垂直,所以边界初始估计斜率kb为:

(4)角点分类筛选:根据图像画幅大小,创建两条距离为d的平行线作为搜索窗口在图像上进行滑动搜索(本文d取50 像素大小),如图6 所示。为提高搜索效率和筛选的准确性,以边界估计斜率创建平行线窗口,但由于无法保证边界与光条精确垂直,故以kb为中值,Δk为范围创建搜索窗口,Δk为上一步中所有光条斜率与kl差值中最大值的绝对值,本文Δk取值0.5。所以初始平行线窗口斜率kw为:

图4 待提取的定位特征点Fig.4 Positioning feature points to be extracted

图5 角点检测结果Fig.5 Corner detection result

在平行线滑动过程中,两条平行线方程分别为:

对于任意角点(xi,yi),如果:

则表示此角点在L2直线左侧,同理可判断角点是否在直线L1右侧,若同时满足两个条件,则表示当前角点位于平行窗口中。遍历所有角点,找出位于当前滑动窗口内的角点,再利用窗口内的角点使用最小二乘法拟合出辅助线用以分类筛选,辅助线方程为:

对当前平行线内点按到辅助线距离远近分类,利用式(8)

式中,(xi,yi)为平行线内的角点坐标。根据理论模型离散的边界点集设置距离阈值δ,本文中δ取值3,按点到辅助线的距离将点分为InLineP和OutLineP:

如果当前窗口内的InLineP的个数多于OutLineP的个数,则保存此窗口下的拟合直线以及与其对应的InLineP。为了防止边界特征点的提取出现遗漏,当前斜率的搜索窗口在图像上全幅滑动结束后,以0.1 为间隔增加斜率创建新的搜索窗口,重复以上步骤,直到斜率kw=kb+Δk为止。

(5)特征点粗提取:由于搜索窗口在滑动时会有重叠,所以需要对上一步搜索得到的辅助线与对应的InLineP进行去重和再筛选。对于两条近似相等的辅助线,保留InLineP点个数多的直线与对应点。若InLineP点个数相同,计算InLineP中各点到辅助线距离的平均值,保留距离均值较小的辅助线与对应点。

最后筛选出InLineP点个数最多的辅助线及对应的InLineP点。为防止遗漏,将与此条直线斜率近似相等的辅助线及其对应特征点一并提出,如图7 所示。

图6 平行线窗口滑动搜索Fig.6 Parallel line window sliding search

图7(b)中由于有两条边界斜率近似,导致边界特征点提取出现误判。为此,提取工件上表面固有特征以确定上边界,本文以吸盘为固定参照物,采取对图像进行椭圆检测[15]的方法,提取黑色吸盘中心点位置。距离椭圆中心点较近的辅助线对应的InLineP点即为本文需要的边界点,如图8 所示。

2.1.2 误判点的剔除

由于投射在背景上的光条也会在图像的工件边界上产生交点,所以经过上一步粗提取后的角点中会有误判点存在,故需对其进行剔除。

利用在特征点粗提取中得到了光条的估计斜率kw和吸盘椭圆圆心相对辅助线的位置,以每个已提取的特征点为顶点,根据图像画幅尺寸大小与相邻光条间距离,按比例创建对角线为a个像素长度的矩形,如图9 所示。获取矩形内每个像素点的灰度值,统计矩形内灰度值大于m的像素点个数,m由图像预处理时获得的灰度阈值确定。若当前角点所在矩形内灰度值大于m的像素个数小于阈值n的即判定为误判点,并予以剔除,个数阈值n为矩形判断框内总像素个数的1/6。本文中参数分别设置为a=10,m=150,n=15。

2.1.3 特征点的位置修正

为了提高定位特征点的提取精度,需要通过位置修正确保提取出的特征点位于光条中心处。本文采用Hessian 矩阵法,在得到图像的Hessian 二阶矩阵后,利用Hessian 矩阵的最大特征值求出特征向量即为当前特征定位点处光条的法线方向。基于光条横截面的能量分布规则,利用高斯曲线拟合法[16]拟合光条法向上的像素点集合,记录曲线峰值点位置即为位置修正后的定位特征点坐标。定位特征点的位置修正效果如图10所示。

图7 辅助线与对应特征点的提取结果Fig.7 Extraction result of auxiliary line and corresponding feature points

图8 椭圆中心提取与辅助线筛选结果Fig.8 Ellipse center extraction and screening results of auxiliary lines

2.2 定位特征点的三维重建

本系统中利用4 个相机构成4 个双目立体视觉系统,在双目系统中首先需要对两个相机采集到的特征点进行匹配,本文利用极线几何约束匹配法[17]来确定特征点在两幅图像中的对应关系。在完成特征点匹配后通过三角测量法来解算特征点的空间坐标。

如图11 所示,两相机的相对位姿变换矩阵为T=(R,T)。重建特征点为Pi,在两相机坐标系下坐标分别为pc1(x1,y1,z1)和pc2(x2,y2,z2),在左图中有特征点pl(u1,v1),对应的右图中有特征点pr(u2,v2),设两相机内参为K1、K2。

按相机成像几何关系,设和为两特征点的归一化坐标:

则它们满足:

图9 误判点的剔除Fig.9 Rejecting misjudgment points

图10 特征点的位置修正Fig.10 Position correction of feature points

其右侧可以看成z2的一个方程,可以据此直接求得z2。将z2代入式中,z1也可求出。求得深度后,特征点在相机坐标系下的空间坐标便可求出:

通过4 个相机之间的相对位姿关系,将各双目系统下特征点的空间三维坐标统一到同一个相机下。

3 相对位姿解算与定位调姿

3.1 相对位姿解算

为了获取目标工件与相机之间的位姿关系,在工件理论模型上建立工件坐标系,提取工件上表面4 条边界并将其离散,得到边界在待定位工件坐标系下的点集,将上一步中得到的相机坐标系下的定位特征源点集P与边界离散目标点集Q进行配准。本文采用迭代最近点算法[18](ICP)对两点集进行配准,如图12 所示。在进行ICP 配准时,随着视觉系统测量得到的源点集数量越多,配准结果趋于稳定,但测量点个数受限于多线激光器发射出的光条个数这一固有属性,而测量点过少可能导致配准精度过低,从而影响最终定位位姿精度。综合考虑,本文选用的多线激光器单个可投射不少于15条光线,视觉系统由于测量视场等限制共采集到的测量点不少于45 个。

图11 立体视觉三维重构原理Fig.11 Stereoscopic reconstruction principle

图12 点集配准结果Fig.12 Point set registration result

使用ICP 算法将源点集和目标点集配准后即可得到目标在相机坐标系下的位姿再结合机器人手眼标定获得的相机与机器人末端位置关系末端标定获得的执行器工具末端与机器人末端法兰的位置关系,即可解算出目标工件相对于机器人工具末端的位姿

3.2 定位调姿

机器人工具末端到达目标位置的理论位姿是前期预设的参数,记为结合上面所解算出的机器人工具末端的实际位姿便可建立机器人末端的理论位姿与实际位姿之间的关系,进一步可求出机器人需要补偿的运动偏差ΔT:

在得到上述偏差矩阵后,将其转换为六参数矩阵Δx,传递给机器人控制器进行补偿。因为系统误差的存在,机器人无法一次完成定位,故采用迭代调姿的方法。如图13 所示,末端初始位姿为T0,通过末端视觉测量装置获取相对位姿,迭代调姿2~3 次后末端位姿为T2,偏差值在设定阈值之内,完成定位运动。

4 试验结果与分析

搭建图14 所示的试验平台,机器人采用KUKA KR90R3100 extra 工业机器人系统;工业相机采用4 个像素为2452×2056 的AVT Stingray F–504 相机,搭配8mm 的定焦镜头;结构光发射器采用4 个Osela 3D 专用多线型激光器,输出波长为650nm;待定位工件为曲面模拟件,加工精度为0.02mm。

图13 末端定位调姿Fig.13 End positioning and posture adjustment

试验中引入激光跟踪仪作为测量基准,本文使用Lecia AT901–MR 型号的激光跟踪仪最远测量距离50m,测量精度为15μm+6μm/m,本次试验的工作距离为2m。分别在目标工件和执行器末端上设置激光跟踪仪测量靶标,靶标在各自零件自身坐标系下的坐标预先标定,利用激光跟踪仪分别测量目标工件上的靶标点和执行器工具端的靶标点,可获得两者分别相对于激光跟踪仪测量坐标系的相对位姿,联立求解即可得到目标工件相对于末端执行器的相对位姿参数。试验具体步骤如下:

(1)机器人运动至待定位工件上方,使得工件处于相机视场中;

(2)利用本文的结构光视觉定位系统,控制机器人进行调姿,直到视觉测量位姿与理论位姿偏差小于阈值时停止运动;

(3)利用激光跟踪仪测量当前末端与工件的位姿关系,并与理论位姿进行比较;

(4)使机器人末端处于不同初始姿态,重复10 次上述操作,统计每次的定位误差如表1 所示。

从图15、16 中可以看出单方向的位置误差分布在–0.2~0.2mm 之间,单方向的姿态误差分布在–0.07°~0.07°之间。就整体而言其平均位置误差为0.184mm,平均姿态误差为0.038°。

5 结论

本文针对工业机器人对弱纹理且无明显定位特征点的目标定位问题,研究了基于多线结构光视觉引导的工业机器人定位方法,主要贡献如下:

图14 试验平台Fig.14 Experiment platform

表1 定位误差测量值Table 1 Measurement of positioning error

图15 机器人定位位置误差Fig.15 Robot positioning position error

图16 机器人定位姿态误差Fig.16 Robot positioning posture error

(1)设计了基于多线结构光的工业机器人视觉定位系统,建立了位姿反馈型的机器人闭环调姿模型。

(2)提出了基于角点检测的多线结构光定位特征点提取算法,解决了需要在工件表面粘贴视觉靶标点的问题;通过特征点提取与立体视觉重建,得到其在相机坐标系下的精确三维信息;利用迭代最近点算法,将相对位姿解算转化为点集的配准问题,为闭环调姿提供参数。

(3)搭建试验平台,此机器人定位系统的平均位置误差为0.18mm,姿态误差为0.038°,定位精度满足抓取、装配等作业要求,对提高工业生产效率和自动化水平有重要意义。

猜你喜欢

角点辅助线位姿
例谈初中数学几何图形求证中辅助线的添加与使用
多支撑区域模式化融合角点检测算法仿真
两种重要的辅助线
基于位置依赖的密集融合的6D位姿估计方法
船舶清理机器人定位基准位姿测量技术研究
角点检测技术综述①
基于灰度差预处理的改进Harris角点检测算法
优化ORB 特征的视觉SLAM
基于FAST角点检测算法上对Y型与X型角点的检测
基于单目视觉的工件位姿六自由度测量方法研究