当前位置:首页 期刊杂志

基于视觉引导的FANUC机器人抓取系统研究*

时间:2024-07-28

徐博凡,赵华东,薛文凯,翟晓彤,安宁

(郑州大学 机械工程学院,郑州 450001)

0 引言

2014年6月国家两院院士大会提出机器人是“制造业皇冠顶端的明珠”[1],其中工业机器人的应用越来越广泛,工业机器人的发展应用成为衡量一个国家科技和制造业水平的重要标志。传统的工业机器人应用中,需要通过示教和离线编程方式来完成相应动作,实际工作时只是简单重复执行预先编好的程序,当工作环境或产品尺寸等发生变化时就需要重新示教,这样就会大大影响生产灵活性以及生产效率[2-4]。

为了使机器人能感知外界环境变化,具备一定柔性生产能力,视觉定位并引导工业机器人的技术应运而生。当前研究多采用一个相机固定到目标物体正上方的单目视觉方式,当涉及相机跟随机器人移动拍照的场景就不适用。且视觉引导的机器人系统的研究主要针对扁平形状物体的搬运,末端执行器多采用吸盘,应用场合相对局限。

本文搭建基于FANUC六轴工业机器人和SMC电动手爪的抓取系统,以气缸套为目标物体。单目相机采集图像,上位机软件处理出工件图像特征,并将特征信息转换为定位结果经机器人通信模块发送给机器人进而通过视觉引导实现柔性抓取。

1 系统组成

如图1所示,系统硬件由FANUC M-10iA/12机器人、DH-HV5051UM-M紧凑型USB接口高分辨率CMOS工业相机、SMC LEHF电动夹爪和上位机组成。

图1 视觉引导机器人抓取系统硬件组成

系统软件由人机交互界面模块、相机标定及手眼标定模块、软触发拍照模块、图像特征处理模块和机器人通信模块组成。本系统采用.NET框架和Visual Studio为开发工具,以C#语言完成上位机程序开发,包括人机交互界面模块、机器人通信模块及软触发拍照模块。相机标定及手眼标定模块和图像特征处理模块借助OpenCV计算机视觉库利用C++进行开发,上位机程序调用上述模块生成的动态链接库即DLL以实现系统功能。

图2 系统工作流程图

系统工作流程如图2所示,首先进行相机标定以及手眼标定,利用标定参数就可以将图片上的特征信息转换为机器人的位姿。在此基础上,上位机作为整个抓取流程的主控制,上位机控制机器人开始运行相应程序,机器人到达拍照位置后发送给上位机到位信号DO,上位机轮询到此信号时软触发相机拍照,然后调用C++图像特征处理程序获取图片缓存进行图像处理。上位机再把图像特征提取结果转换为机器人位姿并发送到机器人指定位置寄存器,发送成功后上位机给机器人修改位置寄存器成功信号DI。机器人接收此信号时开始运动到相应位置进行抓取。

2 机器人视觉引导算法原理

本系统视觉引导的方法是利用单目相机采集目标物体即气缸套的图像,进行相应的图像处理获取图像中所需的特征信息,将此特征信息通过相关算法转换为机器人基座标系下的位置信息。转换算法为通过摄像机标定可知目标物体特征点在摄像机坐标系下的坐标,通过手眼标定可知摄像机坐标系下的点在机器人工具坐标系下的坐标,从而可知目标物体特征点在机器人基座标系下的坐标。

2.1 摄像机标定

摄像机标定是为了获得摄像机内外参数,建立摄像机图像坐标系与真实场景中世界坐标系之间的关系。方法是通过针孔成像模型[5-7],由已知标定板特征点的图像坐标和世界坐标求解出摄像机模型的内部参数和外部参数。在针孔成像模型中,O1-XY为图像平面坐标系,O-xyz为摄像机坐标系,Ow-XwYwZw为世界坐标系。空间任何一点p在图像中的成像位置可以用针孔成像模型近似表示,即空间点p在图像中的投影为P点,是p点与光心O的连线Op和成像平面的交点。在世界坐标系坐标表示的p点坐标与其投影点P的坐标(u,v)的关系表示为:

(1)

式中,M为3×3投影矩阵;M1为3×4矩阵,矩阵中参数ax、ay、uo、vo只与摄像机内部参数相关,将这些参数称为摄像机内部参数;R为3×3正交单位旋转矩阵,t为三维平移向量,O=(0,0,0)T,M2为4×4矩阵表示摄像机坐标系相对于世界坐标系的方位,矩阵中的参数称为摄像机外部参数。

根据上述摄像机透视投影模型,本文采用张正友等人提出的基于2D平面标靶的摄像机标定方法[8]。相对于3D立体标靶制作成本高及加工精度受限的缺点,该方法只需打印一张棋盘格标靶。由于本文目标物体特征在气缸套上表面,所以把棋盘格标靶平放在此表面进行摄像机标定。摄像机最少从三张不同方位拍摄平面靶标的照片,就可以求解出摄像机的内外参数。本文基于OpenCV计算机视觉库,利用张正友标定方法实现摄像机标定具体步骤如下:

(1)通过CAD自制棋盘格标靶,标靶棋盘格角点为7×6共42个,每个棋盘格实际尺寸为20mm×20mm;

(2)为了获得较高精度的摄像机内外参数,机器人带着摄像机在不同方位拍摄15张图片;

(3)调用OpenCV库中的calibrateCamera()函数,输入棋盘格角点实际坐标、图像棋盘格亚像素角点坐标,图像分辨率就可以求解出摄像机内外参数及畸变参数。

2.2 手眼标定

手眼标定是为了建立摄像机坐标系与机器人工具坐标系关系,进而建立摄像机坐标系与机器人基座标系关系。Eye-in-Hand手眼系统有小视野、分辨率高及很好避免机器人对目标物体的遮挡等特点,适用于小视野精确定位场合。同时根据气缸套实际生产时上料方式为料框上料,针对料框中不同层的工件只需调整摄像机到对应拍照高度就能顺利引导抓取,不需再对视觉算法进行修改。此方式机器人手眼标定采用的方法是:机器人末端执行器带着摄像机在多个不同的方位,观察摄像机标定时的平面靶标[9]。在不同方位通过摄像机的外部参数及对应机器人工具坐标系位置和姿态,计算出摄像机坐标系与机器人工具坐标系关系。

如图3的机器人手眼标定模型表示了机器人平台从位置P1移动到位置P2时各坐标系的转换关系。机器人在位置P1时,摄像机坐标系为Cc1,工具坐标系为Ce1;机器人在位置P2时,摄像机坐标系为Cc2,工具坐标系为Ce2;Cobj为棋盘格标靶坐标系。A、B分别为摄像机在P1、P2位置处相对于棋盘格标靶的外参矩阵,C矩阵表示Cc1与Cc2之间的相对方位,由此C=AB-1。D矩阵表示Ce1与Ce2之间的相对方位,此矩阵可由机器人控制器读出数据解得。X矩阵表示Cc1与Ce1,Cc2与Ce2之间的相对方位,即要求的手眼标定参数。设空间某点P在Cc1、Cc2、Ce1、Ce2四个坐标系下的坐标分别为Pc1、Pc2、Pe1、Pe2,则有如下关系:

Pc1=CPc2

(2)

Pc1=XPe1

(3)

Pe1=DPe2

(4)

Pc2=XPe2

(5)

由式(2)~式(5)可得:

CX=XD

(6)

式(6)为手眼标定基本方程式,C由两处位置摄像机外参数得到,D由机器人控制器数据得到,X为要求的手眼标定参数。

图3 机器人手眼标定模型

3 目标物体图像特征提取

本文中视觉引导抓取过程中视觉引导系统主要工作为获取目标物体位置信息,由于目标物体是空心圆柱体的气缸套,因此只涉及工件位置定位,不用关注工件方向。为了完成工件定位,首先要从目标物体图像中提取出特征点。如图4图像处理的流程为:机器人到达拍照位置后单目相机拍得工件图像,首先图像处理程序读取拍得图像的缓存,并对图像进行中值滤波降噪、自适应二值化分割的预处理。然后从二值图像中查找轮廓,其中最大轮廓中心对应气缸套上表面圆心即所求特征点。

图4 图像处理流程图

3.1 图像预处理

图像在采集及传输的过程中,不可避免的会受到各类噪声信号影响,从而降低了图像质量,采集的图像也常常包含大量的背景信息,为了获取图像中所需要的特征信息,就需要对图像进行对应的预处理。本文首先对图像进行中值滤波,此方法既能保留图像的边缘细节又能很好地去除脉冲噪声、椒盐噪声,是一种典型的非线性滤波方法,其原理是用像素点邻域灰度值的中值作为此像素点的灰度值。然后进行图像的阈值化处理,利用图像中目标区域和背景区域的灰度值差别,将图像中所有像素点的灰度值与选取的阈值比较并做出相应处理,本文通过OpenCV中的adaptiveThreshold()函数实现对图像的自适应阈值化操作[10]。图像预处理效果如图5所示。

原始图像 中值滤波图像

自适应阈值化图像图5 图像预处理效果图

3.2 图像特征提取

经过上述图像预处理能够比较好地将目标区域和背景区域区分开,此时能够方便地提取工件中心。气缸套工件是规则的空心圆柱体,但由于透视投影关系圆形变换到图像上往往是椭圆。在二值化后的图像上提取出所有的轮廓,用遍历比较的方法找出其中最大的轮廓即为所需的椭圆轮廓,对应的椭圆中心即工件上表面圆心。对此轮廓进行椭圆拟合找出椭圆及中心,实现工件位置定位,并将椭圆及中心绘制到工件原始图像上显示特征提取效果如图6所示。

图6 特征提取效果图

4 机器人通信模块

FANUC Robot Interface是通过以太网读写机器人数据的Windows软件开发工具包,其中包含FRRJIF.DLL动态链接库文件。通过库中的相应函数实现读取机器人项目:I/O信号,当前位姿,数字寄存器,位置寄存器,字符串寄存器,系统变量,程序运行状态,报警信息。实现写入机器人项目:部分I/O信号,数字寄存器,位置寄存器,字符串寄存器,部分系统变量。在此基础上根据场景的需要在Visual Studio中利用C#语言调用库函数开发机器人通信模块。

机器人通信模块功能主要包括:读取机器人当前位姿;读写机器人指定I/O信号与上位机软件进行必要的逻辑交互;把定位结果指定写入机器人位置寄存器;指定写入机器人系统变量值来选择并开始机器人运动程序。上位机读、写机器人数据流程如图7所示。

图7 上位机读、写机器人数据流程图

5 实验

通过目标物体图像特征提取获得工件上表面中心的图像像素坐标,通过摄像机标定和手眼标定模型将工件上表面中心图像像素坐标转换为机器人基座标系下的坐标完成工件定位工作,利用机器人通信模块把定位结果发送给机器人控制柜并引导机器人抓取。将气缸套摆放在拍照区域内的不同位置,抓取系统均能顺利完成视觉引导抓取实验。在机器人基座标系下气缸套上表面中心实际位置与视觉定位结果如表1所示。

表1 实际位置与视觉定位结果 单位:mm

视觉系统误差主要来源为摄像机标定和机器人工具坐标系建立。坐标转换时摄像机标定后加入了畸变影响。但建立机器人工具坐标系TCP时,采用六点示教法,其标定精度依赖于工具从不同方位对空间一固定点的对准程度,工具坐标系建立精度不能绝对保证,因此会影响视觉定位结果。在拍照区域内不同位置进行多次视觉引导抓取实验,通过比较表1实验结果中的工件中心实际位置与定位结果差异。

如表2所示,可知在机器人基座标系X、Y方向定位误差绝对值分别都在0.4mm以内,工件中心定位误差绝对值在0.5mm以内,可以满足柔性化抓取的定位要求。

表2 SALBP方案2优化结果

6 结束语

对基于单目视觉引导的工业机器人抓取系统进行了研究,其中FANUC M-10iA机器人和SMC LEHF电动夹爪为抓取执行装置,工业CMOS相机、机器人控制柜和上位机组成视觉引导平台。通过建立摄像机标定模型和手眼标定模型分析从图像像素坐标到机器人基座标转换的视觉引导算法原理,利用OpenCV计算机视觉库进行图像处理获取目标物体特征,然后把特征信息转换为抓取信息并通过系统软件的机器人通信模块将抓取信息发送给机器人,进而实现机器人对目标物体气缸套的精确定位及抓取,从而降低了人工等成本,提高了工作效率。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!