1、基于视觉的焊缝路径识别与轨迹规划的软件开发与系统实现 袁玉荣 鲁其星 康静 山东科技大学机械电子工程学院 摘 要: 本文研究基于视觉的焊缝路径识别与轨迹规划系统的系统软件架构和 Matlab与 VC+的接口设置, 并基于上述提出的视觉识别与轨迹生成算法进行平面曲线焊缝的焊接实验, 最后对实验结果进行误差分析。关键词: 焊接; 视觉; 识别; Matlab; VC+; 作者简介:袁玉荣 (1988-) , 女, 工学学士, 研究生在读, 研究方向:机构创新与机器人技术Software development and system implementation of weld path recog
2、nition and trajectory planning based on visionYuan Yurong Lu Qixing Kang Jing Abstract: In this paper, the system software architecture of weld path recognition and trajectory planning system based on vision and the interface setting of MATLAB and VC + + are studied, and the welding experiment of pl
3、ane curve welding is carried out based on the visual recognition and trajectory generation algorithm. finally, the error analysis of the experimental results is carried out.Keyword: Welding; Visual; Recognition; Matlab; VC+; 1 引言我国制造业在未来十几年将要要向自动化、智能化的方向发展, 其中焊接技术在现代制造业中占据非常重要的地位, 因此焊接过程的自动化和智能化将是焊接
4、技术未来发展的方向之一。焊接技术是衡量一个国家制造业和国民经济发展水平的重要指标。本文基于视觉传感系统和 6 自由度焊接机器人对焊缝路径进行图像采集, 基于OPENCV 对焊缝图像进行分析处理得出焊缝数据信息, 基于 MATLAB 软件对焊缝进行三维重建并对焊接机器人进行轨迹规划, 并用 C+语言在 Windows 平台下对基于视觉的焊接机器人软件系统进行模块化设计, 实现对基于视觉的焊接机器人的运动控制, 对于提高焊接质量和效率, 提高焊接机器人的自动化程度具有重要的现实意义和实用价值。2 系统软件设计2.1 软件开发语言与环境本文的软件系统是基于 Open CV、Matlab 和 VC+的
5、混合编程, 采用模块化设计方法, 并在 Windows7 操作系统, 运用 Visual Studio2010 开发平台所提供的MFC 工具, 对基于视觉的焊缝识别和轨迹规划系统进行软件设计。其中 Open CV (Open Source Computer Vision Library) 是一种开源计算机视觉库, 用一系列的 C 函数和 C+类来实现图像处理方面的算法, 利用 Open CV 能够很大程度的缩短视觉系统软件的开发周期。Matlab 是一种广泛应用于工程计算及数值分析领域的高级语言, 可进行线性代数、自动控制理论及图像处理等, 功能非常强大, 并应用 Robotics Toolb
6、ox 机器人工具箱, 可便于进行仿真和轨迹规划。VC+和 Matlab 都是当前主流的编程工具, 但也都有各自的优势和劣势。VC+界面友好, 代码执行速度快, 易维护和升级, 但需掌握大量的编程技巧和算法知识。Matlab 编程不能脱离平台独立运行, 程序移植性和开放性较差。利用 VC+和 Matlab 混合编程可以将彼此的优点很好的结合起来, 大大提高软件开发的效率。2.2 系统软件架构基于视觉的焊缝路径识别与轨迹规划系统是一种综合性强和人机交互的系统, 软件设计比较复杂。本文采用模块化的设计思想对软件系统进行设计, 按照功能进行模块划分的系统软件的基本架构如图 1 所示。图 1 系统软件的
7、基本架构 下载原图基于视觉的焊缝路径识别与轨迹规划系统的软件主界面, 如图 2 所示。图 2 基于视觉的焊缝路径识别与轨迹规划系统的主界面 下载原图在图 1 系统软件的基本架构所示中的自动化焊接模块, 主要调用其他模块实现平面曲线焊缝的全自动焊接, 是本文设计的最终目的。其自动化焊接的流程如图 3 所示。图 3 自动化焊接的流程 下载原图3 Matlab 与 VC+的接口设置本文采用在 VC+中调用 Matlab 的 M 函数编译成的动态链接库 (DLL) 。3.1 将 M 函数编译成动态链接库 (DLL) 在 Matlab 窗口中运行 deploytool 工具箱, 选择“Library C
8、ompiler”, 选择“C+Shared Library”, 添加 M 函数, 点击“Package”进行打包, 界面如图4 所示。编译完成后, 生成 dll 会弹出文件夹, 如图 5 所示, 在“for_redistribution_files_only”文件夹中存在所需要的库文件, 如图 6 所示。图 4 打包界面 下载原图图 5 生成 dll 的文件夹 下载原图图 6 所需库文件 下载原图3.2 VC+环境设置首先设置环境变量, 再对 VC+目录进行配置。设置过程如下:项目-属性-VC+目录;在“包含文件”中添加目录:D:Program Files (x86) MATLAB2014ae
9、xterninclude;在“库文件”中添加目录:D:Program Files (x86) MATLAB2014aexternlibwin64microsoft;配置界面如图 7 所示。然后将 Matlab 生成的.h、.lib 与.dll 文件拷贝到工程目录下, 并在需要用到Matlab 函数的文件中引入相关库, 最后进行初始化库。最运行结果实例如图 8所示。图 7 VC+目录的配置 下载原图图 8 运行结果示例 下载原图4 系统实现基于视觉的焊缝路径识别与轨迹规划的最终目的是为焊接机器人的自动化焊接提供连续的焊枪位置和姿态, 以便最终完成焊接任务。焊枪位姿的合理性则有焊接实验所得到的焊缝
10、质量来检测。4.1 焊接试样与焊接参数焊接试样选择的是 I 型坡口曲线焊缝, 试样材料为铝合金, 长 520mm, 宽 300mm, 厚 3mm, 焊接试样实物图如图 9 所示。图 9 焊接试样实物图 下载原图4.2 焊接试验与误差分析(1) 焊接试验:利用基于视觉的焊缝路径识别与轨迹规划的系统软件, 首先, 对摄像机进行标定, 得到摄像机的内外参数, 进行手眼标定得到手眼标定参数;其次, 开启机器视觉系统采集焊缝路径图像, 对图像进行处理, 提取焊缝路径信息;然后, 建立焊缝特征坐标系;最后, 以改进的等间距直线逼近法并根据建立的焊缝特征坐标系实时调整焊枪位姿生成平面曲线焊缝。在焊件长度方向
11、上每隔 26mm 测量焊缝的熔宽中心与实际焊缝中心的偏离误差, 如图 10 所示。图 1 0 熔宽中心与实际焊缝中心的偏离误差 下载原图从图 10 中可知, 熔宽中心与实际焊缝中心偏离的最大误差不超过 1.8mm, 且分散比较均匀, 说明本文的基于视觉的焊缝路径识别与轨迹规划的算法设计可行, 生成的焊枪位姿数据能实现平面曲线焊缝的准确焊接。(2) 误差分析:在基于视觉的焊缝路径识别与轨迹规划的自动化焊接的各个阶段中, 都存在着误差。其中, 最主要的是机器人定位精度误差、成像系统的误差以及手眼标定误差。机器人在制造和装配等过程中均存在误差, 这些误差直接反应在机器人的定位误差中。一般的工业机器人
12、的重复定位精度较高, 但绝对定位精度不高, 当绝对定位精度不能满足要求时, 需要通过标定提高机器人的绝对定位精度。摄像机镜头的畸变会造成采集的图像的畸变, 以及光照条件等都会影响摄像机的标定精度, 因此成像系统存在一定的误差, 在对摄像机进行标定时, 要充分考虑这些因素, 选择对标定精度影响最小的光照环境条件。手眼标定中是利用机器人的理想模型, 因此标定结果中存在系统误差。一般利用多机器人和手眼关系同时进行标定以减小系统误差。5 结束语本文主要研究了基于视觉的焊缝路径识别与轨迹规划系统的系统软件架构和Matlab 与 VC+的接口设置, 基于本文提出的视觉识别与轨迹生成算法进行了平面曲线焊缝的
13、焊接实验, 并对实验结果进行了误差分析。参考文献1李坤.钻机减速器箱体专用焊接机器人的研究与仿真D.华中科技大学, 2007. 2徐培全, 唐新华, 李莉娜等.视觉传感机器人焊缝跟踪系统J.上海交通大学学报, 2008, 42 (1) :28-31. 3钱炳锋, 刘南生, 刘明友等.结构光视觉传感焊缝类型自动识别J.南昌大学学报 (工科版) , 2007, 29 (4) :368-370. 4杨杰.数字图像处理及 MATLAB 实现:学习与实验指导M.北京电子工业出版社, 2010. 5卢君宜, 杨庆华, 高峰等.五自由度农业采摘机器人轨迹规划J.机电工程, 2010, 27 (12) :1-6.