盖胜男,王玉,王凯,肖珺
1.北京工业大学 材料与制造学部,北京 100124
2.北京工业大学 汽车结构部件先进制造技术教育部工程研究中心,北京 100124
21世纪以来,机器人已经成为现代工业不可或缺的重要工具。在焊接领域,投入生产的大多为示教再现型机器人,适用于动作简单、批量生产的任务。面对先进制造业的发展需求,简单的示教再现难以解决加工轨迹复杂、焊接姿态变化繁复、多机器人协作及辅助工装干涉等问题。随着计算机图形技术的快速发展,给机器人仿真带来了更多的可能性,将虚拟现实技术(Virtual Reality,VR)与机器人仿真相结合的研究逐步得到各界学者的关注。
蔡宇航等人[1]利用Robot Studio软件在工件表面创建边界,调用软件内部的算法自动生成机器人运动路径;王泽龙等人[2-3]开发了涂胶机器人工作站离线编程系统,将示教再现机器人在涂胶过程中出现的问题进行汇总,并在系统内加以优化,保障机器人涂胶质量。天津大学的尹国涛等人[4-5]基于Visio Studio对UG软件进行二次开发,并在激光三维切割和柔性冲孔领域对机器人运动路径分别进行离线编程;Lei等人[6]提出了一种基于VTK的机器人离线编程方法,提取节点位置和工具姿态,通过B样条曲线插值和四元数球面插值对机器人的完整运动轨迹进行了优化处理。
调用内置算法能够完成机器人运动轨迹的规划,但是生成的轨迹无法满足复杂需求,因此加入了人工离线示教,以提升系统实用性。郑博等人[7-8]针对机器人虚拟仿真教学展开研究,完成了三维模型的创建、运动学解析,机器人控制及运动仿真等部分;刘俊等人[9]基于Unity 3D平台,结合消费级VR设备对工业机器人虚拟现实编程教学仿真系统进行开发,可以直接将手柄与机器人末端工具进行连接,完成对机器人的控制;徐雅微[10]等人开发的机器人系统,通过抓取虚拟场景中的目标球,控制其末端的移动或旋转,将位置和姿态传递给机器人,实现对虚拟机器人的控制;Manou等人[11-12]开发的机器人离线编程系统,在手持示教工具完成运动示教后,将生成的轨迹代码传送给机器人,实现示教再现的功能;Chen等人[13-14]提出基于增强现实技术,结合Kinect传感器开发工业机器人示教编程系统,使用定制的手持式示教器对机器人进行示教,在示教过程中通过Kinect传感器捕捉深度信息进行碰撞检测,该系统具备较高的交互性和可行性。
目前,国内外研究开发的传统机器人离线编程系统都具备高功能性的轨迹规划功能,但操作较为繁琐,视角调整不够灵活,应用新技术的机器人离线编程系统在轨迹规划方面则效率较低,无法满足当下先进制造业高速发展的需求。针对以上问题,本研究结合虚拟现实技术的特性,搭建了基于虚拟现实的焊接机器人工作站,开发机器人离线编程系统,简化了机器人的控制方式,提升了视角调整的灵活性,并编写了机器人自动轨迹规划算法,提高了机器人离线编程系统的编程效率。
系统开发硬件选用HTC VIVE系列VR设备,包括VIVE头戴式显示设备、无线操作手柄和定位器。选用Unity 3D作为软件开发平台,在离线编程系统开发过程中,人机交互界面和虚拟场景的搭建在Unity 3D图形化编辑器中完成。
离线编程系统功能分为机器人控制、功能算法、交互界面及辅助功能四个主要部分。采用MVC模式划分的总体程序架构如图1所示,在整体架构中,机器人控制、功能算法及辅助功能属于Model(功能模型)部分,人机交互属于View(用户界面)部分,控制器按键功能开发属于Controller(控制器)部分。
图1 离线编程系统总体架构Fig.1 Overall architecture of offline programming system
使用Unity 3D对不规则几何模型进行特征点坐标信息提取,结合软件中连续曲面的内部定义,得到如下规律:当两个面结合形成凹面,且两面夹角小于某阈值,即认定为连续曲面,存在一条法线。
2.1.1 同点异线焊缝特征点提取算法
遍历模型中全部顶点,将各顶点的法线与前后各两个顶点的法线进行对比,得到坡口附近顶点的位置信息及对应的法线信息,同时获取坡口上沿的顶点信息;根据虚拟环境的渲染规律,删除特征点集中位置信息相同的点,得到焊缝特征点。
2.1.2 空间曲线排序
机器人在进行焊接任务时,其运动路径包含位置信息的同时也包括运动过程的顺序属性。为获取含有顺序信息的路径,本研究提出了一种便于应用的空间曲线排序算法。
(1)端点识别。
对于任意点A(xa,ya,za),计算特征点集中所有特征点到点A的距离d,并得到距离点A最近的两个顶点B(xb,yb,zb)和C(xc,yc,zc)。计算AB与AC的夹角,当所得夹角大于90°,则认为点B、C在点A两侧,即点A为路径中间点;当所得夹角小于90°,则认为点B、C在点A同侧,即点A为路径端点。当焊缝路径是一条闭合曲线时,不存在端点情况,则设定特征点集中的第一个顶点为路径的端点。在确定特征点集中的端点后,将与端点直线距离最短的点作为路径中的第二个点,并基于此两点进行空间曲线排序。
(2)基于端点的空间排序算法。
设端点为P0(x0,y0,z0),与端点直线距离最近的点为P1(x1,y1,z1),未排序的点为M(xm,ym,zm),依次计算特征点集中未排序的点与点P1的距离d1。直线P0P1的方向向量表示为:
计算未完成排序的点M到直线P0P1的距离d2。d1、d2可能存在差距较大的情况,再使用Sigmoid函数对d1、d2进行归一化处理:
由式(3)计算混合距离参数d,取d值最小的点为下一点,并在特征点集中删除该点;重复上述排序算法,直至完成完整特征点集排序。使用相贯线模型进行焊缝路径提取仿真,效果如图2所示。
图2 相贯线焊缝Fig.2 Intersecting line weld
机器人的运动轨迹包括运动的路径信息和末端工具的姿态信息。不同焊接工艺下的焊枪姿态,其焊枪角度均在垂直于工件表面的基础上,进行前倾、后倾及侧倾的角度调整。基于此进行机器人运动规划,先设定焊枪的基准姿态,即垂直于工件表面的姿态;再根据不同的工况,对焊枪的倾角完成自主调节。
2.2.1 焊枪基准姿态
在Unity 3D中,采用求解欧拉角的值来确定焊枪的姿态,以虚拟场景的坐标为基准,使用右手坐标系完成公式推导及实现,并根据相互对应关系(见图3),完成数据对的转换。
图3 虚拟场景与现实场景坐标系对比Fig.3 Coordinate system comparison between virtual scene and real scene
在焊枪基准姿态计算过程中,为满足焊枪在运动过程中始终垂直于工件表面的条件,将顶点的法线与工具坐标系的轴线重合。在Unity 3D中,欧拉角顺序为Y-X-Z,记为Eular(ϕ,θ,ψ),法线向量记为∂(x,y,z),将工具坐标系的Y轴与法线向量重合,则有:
式中ϕ为绕Z轴旋转的角度;θ为绕X轴旋转的角度;ψ为绕Y轴旋转的角度。
根据图3中坐标系的对应关系转换为右手坐标系,记为∂r:
虚拟场景中工具坐标系的Z轴与前进方向重合,于右手坐标系中,表示为前进方向与工具坐标系的Y轴重合。前进方向表示为当前点Pi(xi,yi,zi)到下一点Pi(xi+1,yi+1,zi+1)的方向向量,记为:
转换为右手坐标系表示为∂fr(xf,yf,zf),前进方向与工具坐标系的Y轴重合,可以得到:
式(7)和式(5)筛选出一组符合条件的欧拉角赋予焊枪,即可确定运动过程中焊枪垂直于工件表面的基准姿态。
2.2.2 全位置焊接姿态
本研究专注于全位置焊接姿态规划并对用户开放工作倾角调节功能。基准姿态时,由焊枪轴线与水平面夹角α的大小,可以判断当前焊接工艺是否属于平焊,如图4a所示。基准姿态时焊枪轴线与焊缝路径特征点集的法向量共线,使用法向量进行判断。当机器人焊接姿态不属于平焊时,根据焊枪的运动方向,即当∂f与虚拟场景中的Y轴夹角β大于某个阈值时,属于横焊,否则为立焊,如图4b所示,通过∂f的纵坐标正负进一步辨别立向上焊和立向下焊。
图4 焊接姿态辨别Fig.4 Identification of welding posture
全位置焊接姿态规划横焊时,在基准姿态的基础上,绕前进方向旋转调整焊枪姿态;立焊时,在基准姿态的基础上,绕工具坐标系的X轴旋转调整焊枪姿态。图5a表示全位置焊接姿态规划调整前的焊枪基准姿态,图5b中红色虚线坐标轴表示焊枪的基准姿态,红色实线坐标轴表示全位置焊接姿态规划后的焊枪姿态。
图5 焊接姿态规划Fig.5 Welding posture planning
为满足复杂空间曲线焊接任务对焊接工艺和焊枪姿态的需求,本研究在焊接机器人工作环境中加入KBR-2Z500双轴变位机,与焊接机器人组成工作站,建立其D-H坐标系如图6所示。平焊相较于其他两种方式更有利于焊缝成形,采用约束焊缝特征点的法线与重力方向相反的方式,在焊接过程中始终以平焊作为限制条件对焊接机器人工作站中冗余的自由度进行约束,即满足焊缝特征点的法线与虚拟场景中的Y轴同向,达到焊接机器人工作站协同运动轨迹规划的目的[15]。
图6 变位机D-H坐标系Fig.6 Positioner's D-H coordinate system
焊接机器人工作站如图7所示,其运动学耦合问题表现在机器人运动与变位机运动的耦合,因此在机器人末端焊枪位置,将坐标系封闭链解开为两部分,见式(8):
图7 焊接机器人工作站各坐标系封闭链Fig.7 Closed chain of coordinate system of welding robot workstation
式中 {0}为世界坐标系;{Rob}为焊接机器人基坐标系;{Pos}为变位机基坐标系,即图6中的{0}坐标系;{8}为变位机转盘坐标系,即图6中的{2}坐标系;{s}为对焊缝提取得到的特征点集进行焊枪姿态规划获得的焊缝坐标系;为变位机基坐标系相对于焊接机器人基坐标系的变换;为工件坐标系相对于变位机转盘坐标系的变换;为焊缝坐标系相对于工件坐标系的变换;s6T为工具坐标系相对于焊缝坐标系的变换。
在焊接机器人工作站的协同路径规划中,变位机的运动作为主动部分,机器人运动作为从动部分。通过调整变位机改变工件的姿态,使焊缝坐标系满足焊接姿态的要求;机器人基于时间约束运动至变位机完成姿态调整的空间位姿。已知调整后的姿态,将变位机转角代入式(8),获得新的焊缝特征点位置信息在变位机基坐标系中的表达,进而得到其在焊接机器人基坐标系中的位置信息。综上,焊接机器人工作站的协同运动路径规划框架如图8所示。
图8 主从协同路径规划框架Fig.8 Master-slave cooperative motion path planning framework
系统的虚拟现实场景主要包括焊接机器人、变位机、工件等还原现实场景的物品,以及完善的人机交互UI(User Interface)界面。交互界面分为机器人信息显示、主功能交互界面和副功能交互界面三个部分。主功能交互界面包括控制模式的选择、示教/自动轨迹功能的选择、轨迹重现、后置文件生成等部分;副功能交互界面用于补充个别功能的显示及参数调节,如自动轨迹规划功能中工作倾角的参数设定;将三个界面呈包围状排列,并在虚拟环境中加入护栏,最终效果如图9所示。
图9 虚拟场景UI界面效果Fig.9 Virtual scene UI interface rendering
HTC VIVE传感器将采集控制器的位置和姿态信息传送至焊接机器人,实现对机器人的运动控制,具体方法见式(9)、式(10):
式中Pc为控制器位置;Pc0为控制器初始时刻位置;Pw为焊枪位置;Qc为四元数表示的手柄姿态;Qw为四元数表示的焊枪姿态;为初始时刻控制器姿态四元数的逆;Qw0为初始时刻四元数表示的焊枪姿态。
(1)单机器人运动实验:验证焊缝识别算法、焊枪基准姿态规划算法,选用主管直径为120 mm、副管直径为100 mm,且两管道垂直相交的柔性工件模型,检验机器人在运动过程中是否存在碰撞等不符合需求的运动,实际空间与虚拟场景实验结果对比如图10所示。
图10 焊接机器人运动对比Fig.10 Motion comparison of welding robot
实验过程中,实际空间的焊接机器人与虚拟空间焊接机器人运动一致,且实际空间的焊枪严格按照虚拟空间提取的相贯线焊缝路径行进,验证了本文提出的同点异线焊缝识别算法。当仿真工艺参数设置为0,即上坡焊倾角、下坡焊倾角和侧焊倾角均为0°时,两个空间焊接机器人运动过程中,焊枪均始终指向支管的圆心并垂直于工件表面,验证了焊枪基准姿态规划功能的有效性。多次实验中,柔性模型并未发生位移及形变,即无碰撞,说明单机器人运动实验具有一定的可靠性。
(2)全位置焊接姿态规划实验:相贯线模型同时具备平焊、横焊、上坡焊和下坡焊等多种工况,是测试全位置焊接姿态规划算法较为理想的载体,本实验继续采用相贯线模型验证全位置焊接姿态规划算法,实验结果如图11所示。
图11 全位置焊接姿态规划对比Fig.11 Comparison of all position welding posture planning
实验过程中,计算得到相贯线模型横焊、上坡焊和下坡焊等工况下实际空间焊接机器人的焊接姿态变化角度,与虚拟空间焊接机器人设置姿态角度一致,验证了全位置焊接姿态规划算法可行性,同时成功生成系统后置文件。
(3)焊接机器人工作站协同运动仿真实验:相贯线焊缝具备多种工况共存的特性,焊接姿态变化较多、焊枪运动较为复杂,仍采用同一相贯线模型验证工作站协同运动规划算法,结果如图12所示。仿真实验结果表明变位机能够根据工艺约束,通过逆运动学算法计算出运行轨迹;变位机两轴转角和正运动学运算,能够对焊缝坐标系的空间位置进行求解,实现机器人的随动运动;继而根据时间线约束同时驱动机器人及变位机,实现协同运动控制。
图12 焊接机器人工作站协同运动仿真实验Fig.12 Collaborative motion simulation test of welding robot workstation
本文设计实现了一种面向先进制造业焊接生产需求的焊接机器人工作站,结合虚拟现实技术开发了配套的工作站离线编程系统。主要结论如下:
(1)设计了Unity 3D环境下的同点异线焊缝识别算法,实现焊接单机器人的轨迹规划和全位置焊接姿态规划。
(2)对焊接机器人工作站进行运动学解耦,得到KBR-2Z500双轴变位机与焊接机器人相互独立的运动控制方法,实现了双机协同的复杂轨迹规划功能。
(3)在虚拟场景中复现真实工况,开发人机交互界面,采用相贯线模型对焊接机器人工作站的离线编程系统进行功能测试和实验验证。实验结果表明离线编程系统能够达成简化机器人控制方式、灵活调整窗口视角和自动规划焊接轨迹的目标。
后续开发可以拓展的功能有以下几点:
(1)随着先进制造业的发展,多机器人协作是必然趋势,虚拟现实技术的诸多优势可以满足多机协作的功能需求,后续可以基于此开展多机器人协同工作研究;
(2)系统所使用的机器人模型、工件模型、变位机模型均为后端开发过程中导入,在推广应用过程中会带来一定的限制,在未来研究中,可以根据使用场景开发云端数据库,存储常用机器人模型,提升使用效率;
(3)添加辅助工业视觉传感器,开发自主扫略工件子程序,进一步提升虚拟场景中工件模型的建模精度和系统的工作效率。