APP下载

基于WebGL 的焊接机器人仿真及多层多道路径规划

2023-04-05王飞盛仲曦陈弈陈华斌

焊接学报 2023年1期
关键词:焊枪离线编程

王飞,盛仲曦,陈弈,陈华斌

(1.上海交通大学 材料科学与工程学院,上海,200240;2.东方电气集团科学技术研究院有限公司,四川,610000)

0 序言

随着科技的不断发展,机器人在各个领域得到越来越广泛地应用,尤其是焊接领域,机器人的离线编程技术已成为机器人焊接自动化、智能化的重要标志[1-3].机器人仿真技术和路径规划作为离线编程重要组成部分,一方面需要轻量化的、通用的仿真软件来为机器人提供运动仿真;另一方面需要更加精确的路径规划方法.

目前,大部分成熟的仿真软件大都是基于商业软件的二次开发[4-5],如RobWorks、RobotMaster等,这类软件价格昂贵,开放性低,不利于用作学术研究.而随着互联网技术的快速发展,网页应用的优势不断凸显,WebGL 作为一种新兴的3D 绘图标准,无需任何浏览器插件支持,用户只需要打开网页就能体验到Web3D[6],因此,在Web 上开发虚拟仿真的需求不断提高,国内外逐步有研究人员将WebGL 应用到工业机器人仿真中.Li 等人[7]利用WebGL 实现了对四轴SCARA 机器人的运动仿真,对机器人进行了展示以及最基础的运动,没有进行更深层次的仿真.翟敬梅等人[8]开发了一款基于B/S 模式的双机器人运动仿真实验系统,可完成单机器人运动规划、双机器人协作运动及机器人避障轨迹规划等仿真任务.

机器人路径规划作为机器人离线编程中的另一个重要内容,特别是在机器人焊接应用中.针对弧焊机器人的路径规划,焊枪TCP 点的位置、姿态是其规划的重点,焊枪位姿的准确性是规划结果能否应用到实际焊接的前提条件.随着激光视觉传感技术在焊接领域内的应用[9-10]越来越广泛,国内外研究人员利用该技术对路径规划做了大量研究.Yang 等人[11]提出了一种基于视觉传感器的厚板多道路径规划系统,通过提取几何特征,利用特征信息可以实现路径规划.曹守启等人[12]通过激光视觉传感器获得焊接图像,提取出焊缝特征后对焊缝坐标点进行直线拟合,将相邻的拟合直线交点作为焊缝的节点,完成轨迹规划.Njaastad 等人[13]提出了一种基于三维计算机视觉的焊接路径规划方法,利用低成本深度相机获取工件数据,结合CAD 数据模型,研究两者在不同位姿下的关系来对一系列焊接轨迹进行离线规划编程.Yan 等人[14]提出了一种基于激光结构光扫描的搭接焊接路径自动生成和自适应填充集成方法,通过激光扫描工件点云数据,重构搭接接头的焊接-焊缝模型,提取焊接路径的关键特征点,最终计算和优化相应的姿态.Geng 等人[15]提出了一种基于点云的钢筋网格焊接路径自动规划方法,利用三维视觉结构光相机获取钢网的点云模型,然后利用相关的点云处理算法计算钢网的焊接路径,获得焊接路径的三维信息,简化了焊接路径规划中复杂的教学和编程工作.

综上所述,由于焊接工艺的复杂性,焊接机器人路径规划困难等问题,尚未将WebGL 技术与焊接相结合.开发了基于WebGL 的焊接机器人离线编程系统并提出了基于激光视觉传感的多层多道路径规划策略,以V 形坡口工件为仿真对象,进行了多层多道路径规划,最终完成了焊接实验,验证了该离线编程系统的可行性.

1 机器人MAG 焊接系统

机器人MAG 焊接系统总体框架如图1 所示,主要包括四大部分,一是机器人执行模块,包含机器人本体、控制器、焊枪以及焊接电源等,通过获得轨迹坐标来执行相应的运动和焊接作业;二是视觉模块,包含相机以及数据采集部分,通过相机拍摄来获取需要的点云数据从而进行下一步工作;三是数据处理模块,包含点云预处理、点云信息提取等部分,通过对点云数据的处理获得相应的焊缝特征信息,然后利用这些信息对机器人的姿态,焊接的路径进行规划;四是机器人离线编程模块,包含工件建模、路径规划、机器人仿真部分,主要是对焊接进行路径预规划,然后利用点云数据得到的信息修正规划,对规划结果进行仿真,最后将规划轨迹点传输给机器人来执行焊接操作.

图1 机器人焊接系统Fig.1 Robot welding system

2 离线编程系统

结合现有的基于商业软件二次开发的机器人离线编程系统,开发了一种基于WebGL 的焊接机器人离线编程,该系统是在B/S 模式下开发的,在服务器端存放机器人的STL 模型用于被调用,浏览器端利用HTML、CSS 来编写人机交互页面以及相应的功能按钮,JavaScrit 实现机器人的运动控制及浏览器事件响应,利用WebGL 绘图协议和Three.js库来对实验环境和机器人三维模型进行绘制和渲染,从而模拟真实的焊接机器人作业环境.焊接机器人离线编程系统包含三个模块,分别是参数化建模、离线排道和机器人仿真模块.

2.1 参数化建模

参数化建模模块如图2 所示,该模块主要是对工件进行建模,分为三部分.一是工件截面图,以V 形坡口为例,可以显示其截面图,包括其高度、坡口角度等信息;二是工件尺寸部分,用来描述工件的具体尺寸,如长度、宽度等信息,也可以根据视觉传感器获得的工件实际信息进行尺寸修改;三是模型显示部分,可以用来显示绘制的工件三维模型.

图2 参数化建模页面图Fig.2 Parametric modeling page

2.2 离线排道

离线排道模块如图3 所示,该模块用于针对之前所建立的工件模型进行多层多道离线规划,分为四部分.一是离线排道结果显示部分,用于显示基于填充策略所规划出来的结果,也可以对其结果进行手动修改;二是基本功能部分,主要包括对机器人机当前位姿进行计算、对碰撞进行检测、根据激光视觉传感所获取的信息对规划进行修正以及用于坐标系间转换坐标的坐标转换等功能,最终可以将规划后的结果传递给机器人形成相应的路径点,完成仿真;三是规划结果截面图显示部分,用于显示yoz 平面下的焊道规划结果;四是三维显示部分,用于展示包括工件,焊枪模型,可以仿真焊枪的运动过程,显示规划后的轨迹线.图3 中所展示的是在等高型填充策略下对V 形坡口进行的多层多道路径规划结果.

图3 离线排道页面图Fig.3 Offline Lane layout page

2.3 机器人仿真

机器人仿真模块通过对实际场景的搭建,结合离线排道的结果对机器人焊接运动进行仿真,分为五部分.一是运动仿真模块,利用Three.js 搭建三维场景,加载机器人、工件等模型,实时展示机器人的运动状态;二是运动状态显示模块,可以实时更新机器人各关节的旋转角度以及机器人末端位姿,同时也可以记录当前机器人的运动状态作为参考点;三是机器人运动控制模块,可以控制机器人在不同坐标系下进行运动,轴系坐标下相当于机器人在世界坐标系下的运动,用户坐标系也就是工件坐标系是以工件为参考平面,这是为了将离线排道所规划出来的坐标与世界坐标之间进行转化,即乘上它们之间对应的转换矩阵,还有就是工具坐标系,以机器人末端法兰为参考的坐标系,可用于切换不同工具,在本系统中,大都在用户坐标系下进行规划;四是工件模块,主要用于根据参数化建模的信息生成工件,可以进行移动;五是仿真指令模块,包含常见的直线、曲线运动,仿真起止指令等.

3 多层多道路径规划

3.1 激光视觉传感系统

文中所采用的激光传感系统主要包括相机、激光发射器等.激光视觉传感器通过定制的工装固接在机器人末端法兰上,随着机器人的运动而运动,通过网线与工控机相连,利用相应的程序控制相机的工作状态.该视觉传感器采用的是面结构光,成像原理是光栅投影法,可以通过向物体发射面结构光来获取光面下物体的三维点云数据.

对于一个焊接机器人使用的激光视觉传感系统而言,要实现由图像目标点到实际物体上抓取点之间的坐标转换,就必须拥有准确的相机内外参信息.其中内参是相机内部的基本参数,包括镜头焦距、畸变等.一般相机出厂时内参已标定完成,保存在相机内部.相机外参表示的是机器人与相机之间的位姿转换关系.机器人与相机在不同的使用场景下其相对位姿不固定,需要在工作现场进行标定才能获得相机与机器人之间的手眼关系.试验采用Eye in hand 和多个随机标定板位姿方式相结合来进行机器人与相机之间的手眼标定.将相机固定在机器人末端法兰上,此时机器人末端法兰中心与相机光心之间的位姿相对固定,即需要标定的相机外参.而机器人末端法兰盘中心相对于机器人基坐标系的位姿已经确定,相机可以通过对标定板进行拍照,获得相机光心与标定板上每个圆点之间的位姿关系,标定板一般平放在相机视野可达区域,其相对于机器人基坐标系之间的位姿关系是固定的,这样就可以建立机器人、相机和标定板三者之间的相对位置关系,从而完成机器人与相机之间的手眼标定,获得其位姿转换关系.如果相机相对于机器人末端法兰中心坐标发生移动,对应的外参就会发生相应的变化,此时就需要重新进行标定.

3.2 点云处理

通过相机得到的原始点云,其规模大小,是否为有效部分,对后续的计算处理有很大的影响,同时由于焊接过程中的不稳定性,直接采集到的点云由于环境光、震动等因素存在大量噪点信息,或存在离群点等,需要对点云数据进行处理,目前已经形成了较为成熟的点云处理算法[16-17],文中所采用的点云处理流程如图4 所示.

图4 点云处理流程图Fig.4 Point cloud processing flow chart

在获得原始点云数据后,需要去除毫无价值的背景点云或者工作台点云,利用直通滤波的方法对原始点云数据进行裁剪,过滤范围如式(1)所示,即

式中:xi,yi,zi为相机获取的点的坐标;Xl,Xh,Yl,Yh,Zl,Zh分别表示三个方向上选取的过滤范围.

经过裁剪后的点云数据可以通过统计滤波进行降噪处理,对每一个点的邻域进行一个统计分析,计算它到所有临近点的平均距离di,如式(2)所示,即

式中:k为通过Kd-tree 搜索点云中每个点最近的k个点.

那么平均距离在标准范围(由全局距离平均值和方差定义)之外的点,可以被定义为离群点并从数据中去除,可以得到质量更好的点云数据.

经过降噪后的点云数据为了获取X方向上即焊枪前进方向上的截面信息,需要对点云数据进行切片处理.切片后的点云数据依旧是三维点云数据,为了获取焊道截面信息,需要将点云数据沿着法线方向投影,也就是将y方向的坐标值全部归为0,可以将三维点云数据转化为二维点云数据进行处理.

点云数据经旋转,切片和投影后,将三维点云数据投射到二维平面,形成的焊道二维点云数据,在二维点云数据的基础上,经过处理可以提取相应的几何特征信息,如焊道的高度、宽度等.将二维点云数据进行提取简化,再进行曲线拟合,可以获得焊道特征曲线,以此可以获取所需要的焊道特征信息.以打底焊为例,相机所获得的点云数据整个处理结果如图5 所示.

图5 打底焊道点云处理结果图Fig.5 Result diagram of spot cloud processing of backing weld bead

3.3 路径规划

在焊接过程中受到工件热变形、坡口加工精度等影响,焊缝的高度、宽度可能发生变化,为了更准确的对焊接路径进行规划,文中设计了一种基于焊缝特征曲线的多层多道焊接路径规划方法,其规划流程如图6 所示.首先通过激光视觉传感器获取工件焊缝的点云数据从而获得焊缝截面信息,然后通过这些信息,利用离线编程软件对工件进行预规划,从而规划出打底焊道参数,焊接完成后,通过相机扫描焊道获取焊道点云数据,经过点云数据处理获得实际焊道的信息,根据这些信息去修改之前预规划的结果,得到下一道焊道的参数,不断重复这个过程,最终完成路径的实时规划与焊接.

图6 焊接路径规划流程图Fig.6 Flow chart of welding path planning

在焊接之前利用多层多道离线编程软件,基于等高型填充策略,通过激光视觉传感器获得的工件信息,生成工件的三维模型,在此基础上对工件进行离线排道,完成对焊枪位置、焊枪倾角、焊枪摆幅以及焊接顺序的预规划.不同的焊道规划如图7所示.

图7 焊道规划示意图Fig.7 Weld bead planning diagram.(a)backing weld bead;(b)initial weld bead;(c)middle weld bead;(d)final weld bead

打底焊作为第一道焊道,无法通过其他信息来修正,采用预规划的参数进行焊接.整个模型可以简化成图7a,其焊枪位置位于焊缝中心线,h为预规划的焊道高度,那么可以得到

对于第二层及以后每层的初始焊道,在获取了上一层焊道的特征信息之后,可以对预规划做出如图7b 的修正.此时的焊接起弧点为点A,假设切线l 的斜率为k,则此时的焊枪倾角α为

对于第二层及以后的中间焊道,在已知了前一道焊道的特征信息之后,对其规划做出如图7c 的修正.此时的焊接起弧点为A,假设切线l的斜率为k,则有焊枪倾角α可表示为

对于第二层以上的末焊道,其规划修正如图7d 所示,焊枪竖直,焊接起弧点的位置为B 点,则B 点横坐标为

3.4 焊接试验

为验证规划策略的可行性,进行了厚板多层多道焊接实验.实验的平台是基于WebGL 的离线编程系统和机器人MAG 焊接系统.工件为为常见V 形坡口,对接接口,厚度为20 mm,坡口角度为90°.焊接方式采用MAG 焊,保护气体为80%Ar 和20%CO2的混合气体.

通过激光视觉传感器获得工件焊缝轮廓信息,将信息输入到离线编程系统中,进行预规划,规划为4 层10 道,利用预规划参数对打底焊道进行焊接,焊接完成之后再通过激光视觉传感器获取打底焊道的点云数据,经过点云处理算法得到打底焊道的特征信息,如高度、宽度等,对第二层第一道焊道的预规划参数进行修正,将修正后的参数用于焊接,不断重复,直到焊接完成,最终工件多层多道焊接完成结果如图8 所示.

图8 焊接完成示意图Fig.8 Schematic diagram of welding completion

4 结论

(1) 开发了基于WebGL 的焊接机器人离线编程系统,实现了机器人运动轨迹仿真和多层多道路径规划,提供了开放的、轻量化的系统平台.

(2) 提出了基于激光视觉传感的焊缝特征信息提取方法,利用点云裁剪、降噪、切片等一系列点云处理算法将三维点云转化为二维点云,拟合出焊道截面轮廓曲线,进一步实现了对焊道特征信息,如焊道高度、宽度等信息的提取.

(3) 提出了基于激光视觉传感的多层多道路径规划方法,在利用等高型填充策略对V 形坡口进行预规划的基础上,获取实际焊道的特征信息对预规划的参数进行修正,并将之应用于试验,随焊随修正,最终完成焊接试验,实现了中厚板多层多道焊接自适应规划.

猜你喜欢

焊枪离线编程
基于Solidworks 的蓝莓采摘车焊枪夹持机构设计
异步电机离线参数辨识方法
呼吸阀离线检验工艺与评定探讨
编程,是一种态度
元征X-431实测:奔驰发动机编程
浅谈ATC离线基础数据的准备
编程小能手
纺织机上诞生的编程
可调整焊枪姿态直线摆弧路径算法研究*
离线富集-HPLC法同时测定氨咖黄敏胶囊中5种合成色素