基金项目:国家自然科学基金(51205332); 福建省科技重大专项(2016HZ0001-6)
通信作者:mseliuyu@xmu.edu.cn
(厦门大学航空航天学院,福建 厦门 361102)
(School of Aerospace Engineering,Xiamen University,Xiamen 361102,China)
MATLAB; V-REP; co-simulation; robot modeling; tool path generation; robot motion simulation
DOI: 10.6043/j.issn.0438-0479.201710018
提出了联合MATLAB和V-REP进行机器人加工轨迹生成和运动仿真的方法.该方法首先在MATLAB中,计算机器人操作空间中刀具的轨迹,并通过逆运动学计算获得刀具轨迹对应的关节参数.然后在V-REP中,采用基于关节和连杆统一坐标系的建模方法,建立与刀轨文件一致的机器人及其加工环境的三维模型.最后通过MATLAB中的外部控制程序和V-REP中的控制脚本、MATLAB和V-REP之间的通信接口,使V-REP中的机器人模型响应外部控制程序进行运动仿真和碰撞检测.采用所提出的方法对密胺脂餐具盘的机器人铣边过程进行了仿真,仿真结果表明该方法能够生成无干涉加工轨迹和正确的机器人关节运动参数.
A method of machining path generation and motion simulation of robots is presented by integrating MATLAB and V-REP.First,in MATLAB,the tool path in the robot operating space is calculated,and the joint parameters corresponding to the tool path are obtained by inverse kinematics calculations.Then,in V-REP,the modeling method based on unified coordinate systems of joints and links is used to build 3D models of robot and its machining environment which is consistent with the tool path file.Finally,through the external control program in MATLAB and the control script in V-REP,and the communication interface between MATLAB and V-REP,the robot model in V-REP responds to the external control program for motion simulation and collision detection.After the edge milling process of a melamine tableware by a robot is simulated by our method,simulation results show that our method can generate interference free tool paths and correct motion parameters of robots.
机器人建模和仿真是当前开展机器人任务规划和实际应用的必要手段.目前国内外对机器人的建模和仿真主要是基于通用计算机辅助设计/计算机辅助制造(CAD/CAM)软件、MATLAB、OpenGL图形库、专用软件(如RobotStudio、RoboGuide等)[1-2].UG、PRO/E等CAD/CAM软件适用于产品设计与分析,可通过仿真进行虚拟加工和制造,但其功能的扩展性和开放性较差[3-4].MATLAB凭借其丰富的数学计算工具在机器人领域应用较为广泛[5].但是MATLAB不擅长三维图形显示,难以有效进行机器人及其工作环境的三维仿真.OpenGL图形库功能强大,用于机器人建模和仿真时需大量软件开发工作,对操作人员的编程能力和机器人相关知识的要求较高[6-7].而专用软件适用于特定品牌的机器人,难以进行扩展开发.
本研究提出了机器人建模和仿真的集成方法.该方法结合CAD软件在三维建模、MATLAB在数值计算、V-REP在运动仿真方面的优势,解决了不同系统集成时机器人约束模型的建立、从工件模型生成机器人刀具轨迹(简称刀轨)、MATLAB和V-REP联合仿真等问题,实现了机器人加工轨迹生成和运动仿真.其中V-REP作为三维运动仿真平台,具有开源性和包含丰富的应用程序编程接口(API)等优点[8-9].MATLAB则作为外部控制程序进行轨迹计算和提供通信接口.
本研究所提出的机器人建模和仿真方法主要包含以下步骤:首先在三维软件中生成工件坐标系下的加工刀具位置(简称刀位)文件; 接着在MATLAB中计算机器人操作空间中末端刀具的轨迹,并通过逆运动学计算获得刀具轨迹对应的关节参数[10-11]; 然后在V-REP中建立与刀轨文件一致的机器人及其加工环境的三维模型; 最后通过MATLAB中的外部控制程序和V-REP中的控制脚本、MATLAB和V-REP之间的通信接口,使V-REP中的机器人模型响应外部控制程序进行运动仿真和碰撞检测.下文将详细介绍上述步骤中涉及到的机器人建模方法、机器人刀具轨迹生成方法、MATLAB和V-REP之间的任务分工及通信控制方法.
关节和连杆的统一坐标系是指关节i的坐标系与连杆i的坐标系始终保持一致重合,而关节和连杆的运动由对应的坐标系的运动表示,故关节i的运动与连杆i的运动相同.
工业机器人常用的关节有旋转、移动和球关节,分别用圆柱、长方体和球来表示3种关节的三维模型.其中旋转关节有1个绕圆柱的轴线转动的自由度,移动关节有1个沿与长方体长边平行的中心轴移动的自由度,球关节有3个绕球心转动的自由度.
为了描述关节的位姿,在每个关节上定义关节坐标系,各关节坐标系的原点均为其几何中心.旋转关节坐标系的z轴是其旋转轴,x轴和y轴是在与z轴垂直的平面内互相正交的任意两个方向.移动关节坐标系的z轴是其移动轴,x轴和y轴是在与z轴垂直的平面内互相正交的任意两个方向.球关节坐标系的x轴、y轴和z轴是任意3个组成右手正交坐标系的方向.
连杆采用文献[12]中的定义.如图1所示,轴i-1和轴i分别是关节i-1和关节i的轴线,连杆i-1的连杆坐标系为xi-1yi-1zi-1,连杆i的连杆坐标系为xiyizi.连杆i-1由连杆长度ai-1、连杆扭角αi-1、关节i处的关节角θi和偏置距离di来描述.
根据连杆长度和扭角是否为零可将连杆形式分成4类; 再根据关节偏置或者关节角是否为零,连杆形式进一步各被分成8种类型.当关节i是旋转关节时,根据关节偏置di=0和di≠0的2种情况,连杆i-1有8种可能的形式,表1给出了表示这8种L1~L8的连杆形式,此时关节变量为关节角θi.当关节i是移动关节时,根据关节角θi=0和θi≠0的2种情况,连杆i-1也有8种形式,其关节变量为关节偏置di.
根据连杆的不同形式来建立连杆的简化三维模型.下面以旋转关节对应的8种形式的连杆的建模为例进行说明.首先定义连杆坐标系xi-1yi-1zi-1和xiyizi. 注意xi-1轴应同时与zi-1轴和zi轴垂直.然后以连杆坐标系的原点为球心生成三维球体,分别构造长度为ai-1(ai-1≠0)、轴线方向为xi-1的圆柱连杆i-1和长度为di(di≠0)、轴线方向为zi的圆柱连杆i将球体连接起来.最后组合连杆坐标系、球体和圆柱体得到如图2所示的连杆i-1的简化三维模型.注意连杆坐标系xi-1yi-1zi-1相对连杆i-1是固定的.坐标系xiyizi相对连杆i-1的位姿是随关节变量θi的值变化的.
常见的工业机器人是由一系列连杆通过关节交替连接而成的开式链.文献[12]中已经给出不同连杆坐标系之间的坐标变换关系.基于关节和连杆的统一坐标系按如下步骤进行机器人的建模:1)根据机器人的尺寸和规格,建立机器人的连杆坐标系,获得机器人的连杆参数.2)根据关节坐标系与连杆坐标系重合计算各关节在世界坐标系中的位姿,并在同一场景中建立所有关节的三维模型.3)确定关节的相互
图2 旋转关节对应的8种连杆的简化三维模型
Fig.2 Simplified 3D model of the 8 types of link-poles corresponding to rotational joints
运动关系.从与基座相连的关节1开始,依次令前一关节为后一关节的父节点,而后一关节为前一关节的子节点.父关节的运动将叠加在子关节的运动上.4)依 次建立连杆的三维模型,并通过连杆坐标系与关节坐标系重合的约束依次将连杆依附到对应的关节上,使连杆的运动等于对应关节的运动,从而完成机器人的建模.基座没有对应的关节.在建立基座的三维模型,确定基座相对世界坐标系的位姿后,基座就作为根节点成为其他所有关节和连杆的父节点.图3所示为在V-REP中进行机器人建模时连接起来的2个连杆的简化模型及其模型树.
上述机器人的建模方法不仅适用于从连杆的简化模型快速建立机器人的简化模型,也适用于从连杆的精确模型建立机器人的精确模型.但V-REP的三维建模能力较弱,难以建立连杆的精确模型.可以在UG、PRO/E等三维建模软件中建立机器人的精确模型,然后由V-REP提供的接口(V-REP支持导入的格式为obj、stl、dxf、3ds等)将精确模型导入到V-REP中.但导入的过程中会丢失各个连杆模型的坐标系的信息.V-REP会根据每个导入模型的最小包围盒重新定义其坐标系.在基于关节和连杆的统一坐标系的机器人建模方法中,连杆的运动由关节的运动决定,因而V-REP的导入模型的坐标系的设定不会影响机器人模型的运动.
但连杆模型相对关节模型的位姿需与实际机器人一致,才能准确进行机器人的运动仿真和碰撞检测等.V-REP会通过使导入模型的世界坐标系与V-REP的世界坐标系重合来确定导入模型在V-REP场景中的位置.在三维建模软件中建立机器人的精确模型时,需保证精确模型与对应的连杆坐标系之间的正确位姿,且调整精确模型的连杆坐标系相对世界坐标系的位姿,使之与V-REP中所建立的连杆坐标系之间的位姿一致.这样就能根据导入到V-REP的模型来建立准确的机器人模型.
机器人末端刀具轨迹的生成过程分为2个步骤:1)基于工件三维模型生成轨迹的APT文件; 2)将APT轨迹文件转换为机器人的轨迹文件.以密胺脂餐盘的去毛边和打磨操作为例,密胺脂餐盘的生产采用热压成型,成型后需打磨去除餐盘外边缘和把手孔边缘处形成的毛边,以保证边缘的光滑.目前去毛边和打磨操作均由工人手工操作,工作效率不高,且产生的粉尘危害工人健康.若机器人配备圆柱铣刀或立铣刀沿餐盘边缘铣削,则可在去除毛边的同时,获得较好的加工表面光滑度,提高生产效率,改善工人工作环境.
首先在CAD/CAM软件中生成刀轨及其APT文件.以图4餐盘为例,图4(a)中餐盘边缘的粗线条为CAD/CAM软件中生成的刀位轨迹,线条的宽度等于所采用的刀具的直径.图4(b)为刀轨所对应的APT文件.在APT文件中,刀轨由线段和弧线段组成.
其次,为了使刀具沿给定的轨迹运动,需将APT轨迹文件转换为机器人的轨迹文件使机器人可以控制刀具的位置和姿态(主要是刀轴矢量).而文件转换的关键在于将表示刀具的位置和姿态的刀具坐标系{T}与表示刀具运动到目标点的位置与姿态的目标坐标系{G}重合.刀具坐标系的z轴与刀轴矢量共线,而x轴和y轴在与刀轴矢量垂直的平面内选取,一般取与机器人末端连杆的连杆坐标系的坐标轴平行的方向矢量.
刀具轨迹点处的目标坐标系{G}一般根据加工要求来确定.如图4(a)所示的密胺脂餐盘在热压成型中的分模面与工件坐标系的z轴是垂直的,因而选择与工件坐标系的z轴平行的刀轴方向能够获得较好的铣边效果.对图4(a)所示的密胺脂餐盘,目标坐标系{G}的x轴和y轴的方向矢量可设置为常矢量.这样在整个铣边过程中,刀具除了绕刀轴旋转外,只需做平移运动.图4(a)中所示的工件坐标系与CAD/CAM软件的世界坐标系重合,因而APT文件中给出的刀具轨迹是定义在工件坐标系中的.刀轨点处的目标坐标系{G}也是相对工件坐标系来描述的,即用齐次变换矩阵PGT来描述,其中左上标P表示工件坐标系{P}.
如图5(a)所示,将APT轨迹文件转换为机器人的轨迹文件还需知道工件坐标系{P}、目标坐标系{G}、机器人基坐标系{B}、机器人末端连杆坐标系{6}、刀具坐标系{T}之间的变换关系.这些坐标系之间的位姿关系形成了图5(b)所示的封闭环,即
BPTPGT=B6T 6TTTGT.(1)
从式(1)可得机器人末端刀具沿给定轨迹运动时,机器人的运动学方程:
B6T=BPTPGTGTTT6T,(2)
其中,GTT为单位矩阵,BPT和T6T为常数矩阵,PGT沿轨迹变化,B6T为机器人末端连杆6相对其基座的位姿矩阵.
位姿矩阵B6T还可通过机器人的连杆变换获得,即
B6T=B1T12T…56T.(3)
在每个轨迹点处由式(2)求得B6T,然后根据式(3)求机器人的运动学反解[12],从而给出刀具到达轨迹上某一点时机器人的关节变量的取值.求得的运动学反解往往不唯一,须根据机器人的各项参数和工作环境选择最合适的解.首先每组解对应关节角度值应该符合机器人手册里面规定的关节角的取值范围.其次从满足关节角运动范围的解集中选择关节角绝对值之和最小的解作为最合适的解.
结合MATLAB和V-REP的优势进行机器人的运动仿真和碰撞检测.MATLAB读取APT轨迹文件,进行轨迹插值和采样,计算不同坐标系之间的位姿变换矩阵,求取机器人运动学的正解和反解.另外,在MATLAB中编写控制程序,通过MATLAB和V-REP之间的通信连接,使得V-REP中模型能够响应MATLAB中编写的控制程序进行运动仿真.
V-REP则用来建立机器人加工的三维场景,根据MATLAB提供的关节参数等的控制值进行机器人运动仿真和碰撞检测.在V-REP中创建的机器人控制模型包括机器人及其加工环境的三维模型、机器人的控制代码和通信接口.在V-REP的控制脚本中为机器人编写控制代码和连接通信接口.V-REP的控制脚本分为线程脚本和非线程脚本2种.线程脚本在运动模拟时能够从通信接口不断接受外部指令进行运动.因此选择线程脚本,以便V-REP能不断接受MATLAB控制程序发出的控制指令.
V-REP中的机器人控制模型和MATLAB控制程序之间需要可靠地数据通信服务.通信体系选择常见的客户端-服务器模式,以V-REP为客户端,MATLAB控制程序为服务器端,具体的过程可以参考V-REP中的帮助文件.仿真开始时,先点击V-REP中的仿真按键,然后在MATLAB中运行控制程序,V-REP中的机器人就会按照MATLAB控制程序生成的控制值进行运动.
以FANUC-M10I机器人对密胺脂餐盘进行铣边加工为例,对机器人加工过程进行运动仿真和碰撞检测.
根据机器人尺寸规格等相关技术资料获得表2所示的FANUC-M10I型机器人的连杆参数,建立图6所示的连杆坐标系.根据表2中关节变量的取值和连杆参数定义连杆坐标系在世界坐标系中的位置,并采用前文所述关节和连杆统一坐标系的建模方法在V-REP中建立关节模型、连杆模型、机器人模型.
考虑实际加工的需要,选择铣刀的型号为UTEB9014,其刃径为4 mm,切削长度为20 mm,总长为60 mm.根据铣刀的参数,在V-REP中建立末端刀具和工作台的简化模型,并通过V-REP导入餐盘三维模型.最终建立了图5(a)所示的机器人及其加工环境的三维模型.在建模过程中,确定了工件坐标系和机器人基坐标系之间、刀具坐标系和机器人末端连杆坐标系之间的位姿关系.
借助CAD/CAM软件生成密胺脂餐盘的刀轨迹及其APT文件.然后在MATLAB中读取APT文件,重新计算轨迹点,定义轨迹点处的目标坐标系,由式(2)和式(3)计算刀具沿轨迹运动时机器人的关节变量的取值.对于密胺脂餐盘,除去进刀退刀的轨迹点,共获得了均匀分布的4 570个轨迹点,轨迹点之间的间距约为0.4 mm,其中外边缘有3 590个轨迹点,左右把手的孔边缘各有501个和479个轨迹点.最后结合MATLAB和V-REP对铣边过程进行运动仿真.图7是运动过程中4个时刻的截图.
V-REP可在运动仿真中实时计算刀具与工件之间的最短距离,进行碰撞检测.如果发生碰撞,则改变工件的颜色.在整个仿真过程中,均未出现工件改变颜色的情况,因而刀具沿所生成的轨迹运动时没有与工件发生干涉.为了对碰撞情况进行定量分析,获取刀具在每个轨迹点时与工件的最短距离d.对于外边缘轨迹,d的均值为0.05 mm,均方差为0.03 mm,d的最大值为0.15 mm.对于其中一个把手的孔边缘轨迹,d的均值为0.08 mm,均方差为0.03 mm,d的最大值为0.18 mm.对于另一个把手的孔边缘轨迹,d的均值为0.07 mm,均方差为0.03 mm,d的最大值为0.12 mm.由此可见刀具沿给定轨迹运动时,刀具到工件的最短距离并没有达到理想的零值.这是因为工件模型是以网格模型导入到V-REP中的,存在模型近似和导入误差.另外轨迹的提取和计算、坐标系的建立和变换等还存在舍入误差.这些误差的积累导致刀具到工件的最短距离不为零.通过前述定量分析得到刀具到工件的最短距离保持在0.06 mm左右,均方差约为0.03 mm,满足餐具盘铣边加工的精度要求.
本文中提出了联合MATLAB和V-REP进行机器人加工轨迹生成和运动仿真的方法.在MATLAB中计算刀具轨迹和机器人运动学的正解和反解; 在V-REP中建立机器人及其加工环境的三维模型; 通过MATLAB中的外部控制程序和V-REP中的控制脚本、MATLAB和V-REP之间的通信接口,使V-REP中的机器人模型响应外部控制程序进行运动仿真和碰撞检测.
在机器人建模方面,定义了不同关节和连杆的简化模型,提出了基于关节和连杆统一坐标系的建模方法,给出了机器人简化模型和精确模型的2种建模方式; 在机器人轨迹生成方面,给出了从工件三维模型生成机器人刀具轨迹的方法,包括刀轨的APT文件获取方式和APT文件到机器人轨迹的转换方法.
采用本文中的方法对密胺脂餐盘的机器人铣边过程进行了仿真.建立了机器人及餐盘铣边加工环境的三维模型,获取了餐盘外轮廓和把手孔的铣边轨迹,对铣边过程进行了运动仿真和干涉检查.仿真结果表明所提出的方法能够生成无干涉加工轨迹和正确的机器人关节运动参数.下一步的工作包括对其他工件的加工过程进行仿真,开展机器人加工实验等.