宋 群,马智慧
(1. 西北工业大学自动化学院,陕西 西安 710072;2. 上海交通大学材料科学与工程学院,上海 200240)
现代工业机器人可以根据人工智能技术制定的原则纲领行动,是集机械制造技术、电子技术、计算机技术和先进控制技术等多种先进技术于一体的现代制造业自动化装备,体现了现代工业技术的高效益特点,代表着先进制造业的核心技术和关键环节。随着工业发展,工业机器人在许多生产领域的实践应用证明: 它能够提高生产自动化水平,提升生产效率和产品质量,并能改善劳动条件[1]。机器人和计算机辅助设计技术在设计制造领域越来越重要。工业加工图纸常用AutoCAD绘制,但机器人无法直接读取识别DWG或DXF格式的文件,而是采用G代码来进行加工,这阻碍了工业机器人的自动化加工。因此,基于DXF文件,并优化G代码具有重要的研究意义[2]。
DXF文件含有多个“段”,生成G代码的图形信息存储在ENTITILES段,该段内定义了各种不同类型的图形,如直线、圆、圆弧、多段线和B样条曲线等,以及相关的具体参数。通过这些信息可以确定该图形在CAD中的坐标和尺寸。G代码是数控系统的操作指令[2]。从DXF文件自动生成G代码只需处理EIVTITILES段的信息,生成的G代码需要符合RS274标准。
本文基于DXF图形文件自动生成符合RS274标准的NGC加工代码,使工业机器人能用其进行加工,并对所生成的G代码进行优化,在保证足够精度的条件下尽可能地缩短加工时间,提高加工效率。通过仿真和实物加工测试,检验了软件设计和G代码优化方法的有效性。
DXF自动生成优化G代码的软件系统,能够处理DXF图中的一些基本图形。在实际应用中,DXF文件最复杂的图形为B样条曲线[3],其被用于描述曲线和曲面。其中,非均匀有理性曲线(NURBS)最为常见,其数学定义为:
(1)
其中,Ni, k(t)第i个k阶B样条基函数,t为节点矢量。p(t)为曲线位置函数,pi为控制点,ri为权重因子。
用计算机辅助软件处理B样条曲线[4],仅根据SPLINE中记录的控制点,无法完全复原B样条曲线。因此,需要采用插补算法进行DXF文件图像的复原。而deBoor算法[5]是处理B样条曲线的经典算法,可以计算B样条曲线上的一点p(t),将所有B样条曲线上的点连接,就形成了B样条曲线,其递推公式如下所示:
(2)
(3)
G代码生成过程如下: SPLINE“段”记录着B样条曲线的图形信息。每一条B样条曲线为一个SPLINE段,存储B样条曲线的控制点坐标、阶数、控制点数等。如SPLINE段中的10表示其后的数字为控制点的X坐标,20表示其后的数字为控制点Y坐标,30表示其后的数字为控制点Z坐标,10, 20, 30有多个条目,代表多个控制点。71表示其后的数字为样条曲线的阶数,73表示其后的数字为样条曲线的控制点数。
实现曲线复原,处理B样条曲线转化G代码的具体实现方法如图1所示。
图1 SPLINE处理流程图
通过图1所述方式,能够自动生成直线、圆、圆弧和多段曲线的G代码。
由于加工G代码较多,实际加工效率低,考虑对生成的G代码进行优化,主要包含3种G代码优化方法。
(1) 舍去冗余的点。在加工样条曲线时,如果有两个相距非常近的控制点记录在SPLINE段,会导致拟合点数更加密集,并造成deBoor算法的处理效率较低[7]。因此考虑舍去非常近的点,以提高加工频率。假设有一组点pt(i),i=1, 2, …,n,在未经优化时将会以G1XYZ格式写入NGC文件。考虑pt(i)点与pt(i+1)点的距离d,根据实际精度需要,设置阈值α,当d<α时,舍弃pt(i+1)点,不将其以G1XYZ格式写入NGC文件,并将pt(i)点作为新点;否则正常输出pt(i+1),以此类推,将新采样点与上一次写入NGC文件的点进行距离计算和比较。
(2) 调节插值密度。在处理NURBS曲线时,需要根据控制点,通过deBoor算法进行插值,每一段的插值点数应当设为变量,以适应实际加工的需要[8]。当处理的NURBS控制点数密集而图形实际尺寸很小,或精度要求不高时,可以减少插值点数,这样可以在保持原来样条曲线的形状下提高加工效率。
(3) 减少加工时重新定位起点的次数。在实际加工时,每完成一段连续图形的加工,机器都要重新定位到下一段的起点,需要经过抬高、水平移动、向下切削的步骤[9]。当上一段图形的终点与下一段的起点离得非常近,考虑省略这一步骤。每次处理完一段图形后,记录最后加工点的坐标为pt(j),根据实际加工情况及精度需要,设置一个阈值β,在快速定位下一段起点pt(j+1)前,计算pt(j)与pt(j+1)点之间的距离ds。当ds<β时,将不进行快速定位,而是直接以G01XYZ的格式直线插补至pt(j+1)。
将上述方法在软件系统中实现,使DXF文件在自动生成G代码的同时能对其进行优化。
本文采用的实验平台包括NC Viewer和新时达公司的机器人,在NC Viewer软件中查看由DXF文件生成的G代码[10],验证软件功能,如图2所示。采用VC6.0平台编写应用程序。以西北工业大学校徽为例,在机器人平台下进行实物加工,同时将对校徽DXF生成的未优化和优化的G代码进行对比分析,验证了G代码的优化功能。
(a) 仿真测试平台 (b) 实物测试平台
绘制直线、圆、圆弧、凸度为0的多段线、凸度不为0的多段线,以及B样条曲线等若干个DXF图形,如图3和图4所示。其中,图3为原始基础图形DXF图,图4为具有凸度的多段线DXF图。
图3 普通图形DXF图
图4 有凸度的多段线DXF图
将绘制好的直线、圆、圆弧、多段线以及B样条曲线的DXF文件,导入仿真平台NC Viewer,得到仿真图(见图5和图6),验证软件系统能够正常处理以上图形。
图5 普通图形仿真图
图6 有凸度的多段线仿真图
根据以上DXF图和仿真图,可验证本文软件系统可以正常的处理DXF文件中直线、多段线、带凸度的多段线、圆弧、圆和B样条曲线,使之自动生成正确的G代码。
选择包含直线、多段线、圆、圆弧以及B样条曲线的复杂图形,即西北工业大学校徽。在新时达机器人SD500下进行实物加工。在真实环境下,验证G代码生成方法的可靠性。
在机器人加工实物前,采用机器人仿真软件对加工过程进行仿真,如图7所示。其中,图7(a)显示了设置加工尺寸,其余3幅都是在模拟机器人加工过程中不同时刻的加工效果图,最终加工出期望的西北工业大学校徽图形。
(a) 校徽模具原型
在仿真结果基础上,通过导入、生成G代码,验证复杂图形的运动控制效果。在真实机器人上,对校徽图形进行绘制,能基本绘制出校徽主体的效果,如图8所示。
图8 复杂图形实际绘制过程
根据西北工业大学校徽DXF进行G代码优化对比分析。为了能够更加清晰地分析G代码优化效果,选取西北工业大学校徽中的“工”和“大”字单独进行对比分析,如图9和图10所示。其中,图9(a)和图10(a)为未优化的G代码生成的字体形状,而图9(b)和图10(b)为优化后的G代码生成的字体形状。图11为G代码生成整体形状对比图,图11(a)为未优化图形,图11(b)为优化图形。
(a) 未优化结果
(a) 未优化结果
在图9中,两图的NURBS曲线处理时插值密度均为1。从生成的“工”字图形可以清楚地看出: 优化后加工点数明显减少,并且加工效果和未优化时相比,精度仅在细节处有所损失。
图10(a)的NURBS曲线处理时插值密度为2,图10(b)的插值密度为1。从G代码生成的“大”字图形可以看出: 在减少插值密度后,加工点数明显减少,尽管曲线的平滑性相比于未优化的曲线有所下降,但由于实际加工时尺寸较小,这些损失并不明显。当对加工精度要求不高时,这种优化方法将能够显著提高加工效率。
通过对不同方法进行优化的加工点数进行统计,形成代码优化分析结果,如图12所示。
(a) 未优化结果
图12 优化代码结果分析图
基于机器人控制平台,设计了一种基于DXF文件自动生成G代码的软件系统。基于deBoor算法实现了基于DXF文件的G代码自动生成,并能较好地绘制直线、圆、圆弧、多段线以及B样条曲线;能够对起始位置、加工深度和比例进行相应的调节。采用减少处理B样条曲线时的插值密度、舍去冗余点以及减少重新定位起点的次数进行G代码优化。最后,通过仿真和真实实验,对提出的系统进行测试。测试内容包括绘制加工基础图形、B样条曲线图形以及综合性图形(校徽)。通过对比实验,所生成的G代码能够还原DXF文件图形,同时,优化G代码也能够减少冗余点和计算过程,达到最优路径规划目的。