钢桶视觉的机器人螺纹盖装配技术(5)-钢桶螺纹盖装配系统搭建与实验结果分析
文/徐超
第五章 钢桶螺纹盖装配系统搭建与实验结果分析
5.1 引言
第二章确定了钢桶螺纹盖自动化装配系统的总体方案,第三章基于形态学处理和Hough变换提出了一种钢桶螺纹盖位姿识别算法,第四章介绍了本文针对钢桶螺纹盖装配所设计的末端执行器的机械结构和控制系统,并对机器人工具参数标定算法进行介绍。本章将在此基础上开发钢桶螺纹盖装配系统的上位机软件,同时搭建系统实验平台,通过相关实验验证本文所提出算法的优越性及钢桶螺纹盖自动化装配系统的有效性。
5.2 钢桶螺纹盖自动化装配系统上位机软件开发
在前面章节确定了钢桶螺纹盖装配系统的整体方案和相关算法以及末端执行器的设计之后,要想实现钢桶螺纹盖的自动化装配还需要进行上位机软件的开发。作为一款自动化装配系统的控制软件,需要完成钢桶螺纹盖自动化装配过程中相关参数的设置、钢桶螺纹盖图像信息处理,同时还要与系统中机器人控制柜和末端执行器控制器实现通讯,从而保证整个钢桶螺纹盖自动化装配系统有效可靠地进行。
在整个自动化装配系统工作之前首先需要实现系统上位机和下位机之间的通讯,整个系统中包含有两个下位机,如图5-1所示。一个是机器人控制柜,一个是末端执行器中的STM32控制器。上位机与机器人控制柜实现通讯,将钢桶螺纹盖的位姿数据发送给机器人控制柜,从而实现钢桶螺纹盖的定位抓取;上位机与末端执行器中的STM32实现通讯,发送钢桶螺纹盖装配速度及装配扭矩值,同时接收STM32发来的钢桶螺纹盖在传送带上的位置信息,从而触发相机拍照获取钢桶螺纹盖图像信息。两个下位机之间的通讯主要是末端执行器开始及停止装配信号之间的传递。

图5-1 钢桶螺纹盖自动化装配系统组成
实现了上位机与下位机之间的通讯之后,还需要进行系统中视觉部分手眼参数标定、末端执行器的TCP标定,因此需要开发系统标定模块,从而获得手眼参数和机器人工具参数,并进行相关参数配置,然后是图像采集模块和图像处理模块,包括手动状态下相机的开启和关闭、图像的实时显示、图像的采集、图像的处理及钢桶螺纹盖的定位。最后人机交互界面设计,系统软件界面应该简洁清楚,方便上手,便于非专业人士进行参数设置及相关操作。
综上分析,钢桶螺纹盖自动化装配系统上位机软件具体的设计要求如下:
1、通讯要求:与系统中相关下位机实现通讯;
2、参数标定:应具备手眼标定和机器人工具参数标定功能;
3、视觉定位:能够对钢桶螺纹盖图像进行采集及相关处理,得出位姿信息,并根据手眼参数标定结果,转换为机器人基坐标系下坐标;
4、友好的人机操作界面:要求操作界面简洁清楚,方便上手。
5.2.1 软件整体方案设计
由于Windows操作系统使用普及率高,稳定性好且支持多种高级开发语言,因此本文选择基于Windows操作系统进行上位机软件开发。软件开发平台为Visual Studio 2010,开发环境为.NET Framework 4.0,编程语言为C#。C#编程语言是一种面向对象、功能强大的高级开发语言,能够快速地开发和部署运行在.NET Framework上的应用程序,开发过程中引用MathNet.Numerics库文件进行矩阵及向量运算,同时结合Halcon图像算法库进行图像模块的编写。
根据软件的具体开发要求及采用的编程语言和开发环境,确定钢桶螺纹盖自动化装配系统上位机软件的开发框架如图5-2所示:

图5-2 上位机软件开发框架
系统的主界面如图5-3所示,主要包含三大区域:系统操作区域、图像实时显示窗口、手动控制区域。用户可以根据按钮提示进行相关操作,首先在系统操作模块,依次进行通讯参数配置、手眼标定、TCP标定以及末端执行器的装配参数设置,点击按钮后即可弹出相关界面,然后点击启动系统自动运行,显示窗口会实时显示钢桶螺纹盖图像信息及处理结果;当需要进行系统调试时,可以在手动模块进行相机启停、图像采集、图像处理、工件定位等操作。

图5-3 上位机软件主界面
5.2.2 软件主要模块介绍
1、通讯模块
本文上位机软件通讯模块界面如图5-4所示,分为网口通讯和串口通讯两部分,网口通讯主要用于上位机与机器人控制柜之间的通讯,采用以太网对上位机和机器人控制柜之间建立socket通讯连接。socket是一种基于网线的服务器(Server)-客户端(Client)通讯模式,在同一个网络上允许存在多个系统,Server需要提供PC的IP地址和端口号,由Client发送连接请求,一个Server可以连接多个Client。本文以上位机作为Server,机器人控制柜作为 Client,在建立通讯时只需要在软件界面中输IP地址及端口号,点击监听,即可等待机器人控制柜连接,如图5-4(a)所示,在连接成功后,通讯状态窗口会显示通讯成功标志。
上位机与末端执行器控制系统的STM32通过串口进行通讯,如图5-4(b)所示,在配置好串口通讯相关参数如串口号、波特率等之后,选择数据发送方式,然后点击打开串口即可完成与STM32的串口通讯,在数据接收区可以显示发送来的数据,同时可以通过数据发送区手动发送数据,便于系统调试。

图5-4 通讯界面
2、标定模块
本软件中参数标定模块,主要包括手眼标定和机器人工具参数标定,上位机软件中手眼标定界面和TCP标定界面如图5-5所示。在进行手眼参数标定时,首先点击获取标定图片,然后点击角点定位,再依次输入机器人基坐标系下的9个靶点坐标,点击标定即可完成手眼标定过程,点击“保存标定结果”可以将标定结果以.txt文件的形式保存,避免在没有改变相机与机器人相对位置的情况下参数丢失从而进行重复标定。具体的标定步骤将在5.4.2小节手眼标定实验时进行描述。
机器人工具参数标定界面如图5-5(b)所示,首先在工具参数标定界面输入工具标定数据,然后点击“工具标定”即可在工具参数标定结果下显示工具参数,同时点击“保存参数”即可以.txt 文件的形式保存标定结果。为避免手动输入数据,在完成一次数据输入之后,可以点击“保存数据”,即可将标定数据保存下来,再次使用时直接点击“导入数据”即可完成标定数据的导入。

图5-5 标定界面
3、图像采集模块
软件中图像采集模块见图5-3主界面,包含一个图像实时显示窗口,和手动模式下相机的相关控制,可以对相机进行打开、关闭、采集图像的相关操作,便于系统调试。
4、图像处理模块
软件中图像处理模块集成到一个按键中,点击“图像处理”即可完成图像的相关处理工作,点击“视觉定位”即可获得工件在机器人基坐标系下的坐标。
5、其他相关部分
系统上位机软件中除了通讯模块、标定模块、图像采集模块、图像处理模块之外,之外,还有一些软件登录、末端执行器参数配置、扭矩反馈等相关界面,如图5-6所示,用户可通过按键提示进行操作,这里不再过多描述。

图5-6 其他相关界面
5.3 基于改进随机Hough变换的直线检测算法仿真实验
为验证本文所提出的改进直线检测算法的优越性,本文将设计三组对比实验,分别对仿真图像、近景楼房图像、道路图像等大量数字图像进行直线提取,并与标准Hough变换进行对比分析。
5.3.1 实验目的
在3.4.2小节,本文提出一种基于改进随机Hough变换的直线检测算法,用于钢桶螺纹盖的直线提取,为进一步验证改进算法在检测直线时的稳定性和优越性,分别对仿真图像、近景楼房图像、道路图像进行直线特征提取,并与标准Hough变换进行对比分析,实验结果中算法处理时间是指图像经边缘检测后至线段提取完成时所需要的处理时间,实验平台为Matlab R2014a。标准Hough变换直线检测算法采用Matlab中自带函数。
5.3.2 实验设计
实验1:图5-7(a)为含有高斯噪声的仿真图像,内部含有4条明显的直线特征,标准Hough变换和本文算法对边缘检测后的二值图像进行直线提取后的结果如图5-7(b)、图5-7(c)所示。检测后的直线端点坐标及线段长度如表5-1所示。标准Hough变换的相关参数设置如下:ρ的量化间隔为1,θ的量化间隔 0.01°,参数投票的累加阈值Tmax=0.1nmax;本文算法相关参数设置如下:最短边缘像素阈值Tmin =20;梯度方向差分阈值Tα =0.08 ,梯度方向差分累加阈值Tα-min=60,点到直线距离阈值δ= 1.414。

图5-7 仿真图像直线边缘检测
表5-1 端点坐标及线段长度

实验 2:图5-8(a)是一幅含有较多直线特征的建筑物数字图像,通过标准Hough、和本文算法对边缘检测后的二值图像进行直线提取后的结果如图5-8(b)、图5-8(c)所示。标准Hough变换的相关参数设置如下:ρ的量化间隔为 1,θ的量化间隔0.01°,参数投票的累加阈值T =0.1nmax ;本文算法相关参数设置如下:最短边缘像素阈值Tmin=25,梯度方向差分阈值Tα=0.08,梯度方向差分累加阈值Tα-min=80,点到直线距离阈值δ= 1.414。由于楼房图像中直线特征较多,求取线段的长度和端点坐标无实际意义,因此,并未进行线段端点坐标和长度的计算。

图5-8 近景楼房图像直线边缘检测
实验3:汽车进行自主导航时常需要视觉进行道路识别以规划行驶路径,图5-9(a)是两边带有植物干扰的道路图片;通过标准Hough和本文算法对边缘检测后的二值图像进行直线提取后的结果如图5-9(b)、图5-9(c)所示。标准Hough变换的相关参数设置如下:ρ的量化间隔为1,θ的量化间隔0.01°,参数投票的累加阈值T=0.3nmax;本文算法相关参数设置如下:最短边缘像素阈Tmin=60,梯度方向差分阈值Tα=0.08 ,梯度方向差分累加阈Tα-min=100,点到直线距离阈值 δ=1.414。由于求取道路图像中线段的长度和端点坐标无实际意义,因此,并未进行线段端点坐标和长度的计算。

图5-9 道路图像直线边缘检测
5.3.3 仿真实验结果分析
三组对比实验的统计结果如表5-2所示。
表5-2 算法处理时间对比

由实验1结果可以看出,对于干扰较小,直线特征明显的仿真数字图像,本文算法和标准Hough变换直线检测算法均能有效地提取出图像中的直线特征,但在处理时间和算法效率方面,本文算法所需要的处理时间约为标准Hough变换的三分之一,且可以有效地提取出线段的端点坐标和长度。
由实验2结果可知,建筑物数字图像由于植物干扰,采用标准Hough变换进行直线检测在干扰部分产生大量错检,存在直线过连接现象,而本文算法很好地排除了噪声干扰,有效地检测出了图像中的直线特征;且直线的连贯性较好,且检测效率更高。 由实验3结果可知,标准Hough 换对道路图像进行直线检测时由于道路两旁植物噪声干扰,未能很好地检测出道路边缘,而本文算法很好地排除了两旁噪声干扰,准确地识别出道路边缘信息,检测效率更高,具有更好的实际应用价值。
综合三组实验结果可得得出本文算法能够有效地提出不同种类数字图像中的直线特征,且与标准Hough变换相比具有更好的抗干扰能力,直线连贯性好,计算速度快,很大程度上解决了标准Hough实时性问题,能够更好地应用于生产实际中。
5.4 基于视觉的机器人钢桶螺纹盖装配实验
为验证钢桶螺纹盖自动化装配系统的可行性及稳定性,本文将搭建系统仿真实验平台,并基于此平台进行手眼标定TCP 标定以获取相关参数,最后在此基础上进行钢桶螺纹盖自动化装配实验。
5.4.1 实验平台
根据钢桶螺纹盖自动化装配生产要求,在实验室搭建仿真实验平台如图5-10 所示,以PC作为上位机,分别与机器人控制柜、末端执行器控制系统建立通讯,将钢桶桶盖固定在三脚架平台上模拟200L钢桶,本课题将在该实验平台上进行手眼标定、TCP标定及钢桶螺纹盖自动化装配实验。由于本文主要对钢桶螺纹盖自动化装配过程进行研究,并未对钢桶螺纹盖的上下料进行详细讨论,因此实验过程不考虑钢桶螺纹盖的上下料问题,同时由于钢桶大螺纹盖和钢桶小螺纹盖的装配过程相同,区别仅在与末端执行器的夹持部分,因此本实验以钢桶大螺纹盖自动化装配为例进行验证。

图5-10 钢桶螺纹盖自动化装配仿真实验平台
5.4.2 手眼标定TCP标定
1、手眼参数标定
实验采用工业上常用的9点法进行工业机器人和工业相机之间的手眼参数标定,其相关参数及标定的原理已在3.5.3节中详细说明,具体的标定过程如下:
(1)选择一个合适的标定板,标定板要求靶点坐标提取方便且准确性高,本实验制作的标定板如图5-11(a)所示;
(2)在机器人末端安装80mm标准圆锥尖点,如图5-11(b)所示;
(3)控制机器人带动尖点一次碰标定板上的九个靶点,并记录下九个点在机器人基坐标系下的坐标值;
(4)取下尖点,安装末端执行器及相机,控制机器人达到系统设定拍照点,记录下拍照点坐标,同时拍下一副标定板图像,并通过图像处理得到标定板图像的9个靶点像素坐标,由于标定板背景单一,与靶点对比度明显,图像处理过程较为简单这里不再过多描述。

图5-11 手眼标定工具
如图5-12所示,通过机器人SP1示教器即可读取机器人末端法兰坐标系在基坐标系下的坐标信息,获得的9个靶点坐标如表5-1所示。

图5-12 手眼标定
表5-1 9 点法机器人基坐标系下靶点实验数据

相机拍摄到的标定板图像经靶点提取后的结果如图5-13所示,得到的9个像素坐标系下的靶点坐标如表5-2所示。

图5-13 靶点提取
表5-2 九点法图像坐标系下靶点实验数据

将实验参数代入到系统软件的手眼标定模块可以得到,图像像素坐标系到机器人基坐标的转换矩阵H,结果如下:

假设钢桶螺纹盖中心位于点P,P点在图像像素坐标系下的坐标为(u,v),则可根据式(5-2)得出其在机器人基坐标系下XY平面的坐标,由于钢桶螺纹盖所在的传送带的高度不变,因此P点的高度信息只需要通过一次示教人工获得,从而得到了钢桶大螺纹盖中心点P在基坐标系的三维坐标。

2、TCP参数标定
本文采用TCP多点标定法对末端执行器进行工具参数标定,标定的原理已经在4.4节进行详细的描述,本文选择3个标定点,如图5-14所示,控制末端执行器以三种不同的位形到达空间中的同一点,机器人末端执行器的末端盖板底部中心处有一个小的定位孔,实验过程中只需要保证定位孔卡入到尖点中,即表示末端执行器到达了指定点。通过SP1示教器读取到的机器人末端法兰坐标系在机器人基坐标系下的位姿数据如表5-3所示。

图5-14 执行器工具参数标定
表5-3 工具参数标定实验数据


将式(5-3)和式(5-4)代入到式(4-9)中,即可得到末端执行器的三个工具参数,事实上,式(4-9)是位形1与位形2建立等式,位形2与位形3建立等式联立推导得出,代表一种组合情况,三组数据一共有三组组合情况,为提高标定的精度,避免某一组组合情况偏差过大,对实验结果产生影响,本文将对三种组合情况分别求解,然后去三组结果的平均值作为最终实验结果,如表5-4所示。
表5-4 工具参数标定实验结果

最终末端执行器TOF到机器人末端法兰坐标系下的齐次变换矩阵为:

在编写机器人运动控制程序时,即可通过上述参数建立机器人工具坐标系,在获取钢桶大螺纹盖在机器人基坐标下的位姿数据之后即可完成抓取和搬运。
5.4.3 钢桶螺纹盖自动化装配实验
在完成了钢桶大螺纹盖自动化装配系统的手眼标定和TCP 定之后,接下来要进行钢桶大螺纹盖的自动化装配实验,具体的实验步骤如下:
1、在 5.2节中所述的钢桶螺纹盖自动化装配系统上位机软件中设定钢桶大螺纹盖装配参数,本次实验中设定旋紧扭矩为2N·m,旋紧速度为120r/min;
2、完成上位机与机器人控制柜和末端执行器控制系统中STM32之间的通讯;相关参数配置如下:
网口通讯:IP 地址:192.168.0.12;端口:1000
串口通讯:串口号:COM1;波特率:115200;数据位:8;停止位:1;字符串形式发送;奇偶校验位:NULL
3、机器人的动作流程如图5-15所示。其中涉及6个位置点,除抓取点pHere和工件临近点pDepart外,其余点的值不会发生改变,可以通过SP1示教器一次性示教得出,相关的位置点的定义如下,坐标如表5-5所示。
pHome:初始点;pCamera:拍照点;
pDepart:工件临近点;pAppro:桶盖螺纹盖临近点;
pHere:抓取点; pAss:装配点。

图5-15 机器人动作流程
表5-5 机器人动作位置点的坐标

4、在完成上述步骤之后,即可进行钢桶大螺纹盖的自动化装配实验,装配过程如图5-16所示。
本文进行了8次钢桶大螺纹盖自动化装配实验,记录每次实验中完成钢桶大螺纹盖自动化装配的时间,如表5-6所示,实验结果表明,本系统能能够实现钢桶螺纹盖的自动化装配,且装配时间满足8s之内的生产要求。

图5-16 钢桶大螺纹盖自动化装配过程
表5-6 机器人动作位置点的坐标

5.5 本章小结
本章在钢桶螺纹盖自动化装配系统总体方案、钢桶螺纹盖视觉定位算法以及末端执行器设计开发的基础上,根据钢桶螺纹盖的装配需求编写了钢桶螺纹盖自动化装配系统上位机软件,对上位机开发的总体框架及各部分的功能模块进行了详细的描述;然后对提出的改进算法进行不同场景下的对比实验,验证了算法与标准Hough相比的优越性;同时搭建了钢桶螺纹盖在自动化装配系统的仿真实验平台,编写相关程序,并在此平台上,基于上位机软件进行手眼标定、TCP标定,最后以钢桶大螺纹盖为例,进行自动化装配实验。实验结果证明,本系统能够完成钢桶螺纹盖的自动化装配,且装配过程可靠满足生产要求。
|