张立军,房绍伟,张天力,金永山,张德潇,王旱祥,张 辛,姜 浩
(中国石油大学(华东)机电工程学院,山东 青岛 266580)
切削技术是机械制造技术中应用最广泛的技术之一,在“切削原理与刀具”“机械加工概论”“先进制造技术”等课程中均有其相关知识点的讲述。近几年,切削技术与计算机辅助制造技术、机器人技术不断交叉融合,使得现代切削装备的发展突飞猛进。面对日新月异的技术发展,有必要让学生在掌握基本的切削技术的同时,也了解相关的新兴切削技术。
在切削技术的实践学习中,学生们所能接触到的切削设备大部分只有三个自由度,不能对空间复杂曲线进行高效率的切割,在切削操作时仍需要学生手动编程控制切削路迹,这一教学现状与切削设备智能化、自动化、高自由度化的发展方向存在一定偏离。为加深学生对现代化切割技术智能化的认识和理解,体会与其他学科交叉融合后的现代切割技术与传统切割技术的区别,笔者开发了一套牙齿热压模型切割教学实验平台。在实践教学中,学生可以通过自己的实践操作了解和学习D-H参数法的基本原理和逆运动学求解的方式方法,体会计算机辅助制造技术、机器人技术与切削技术的发展和融合。
本教学实验平台以牙齿热压模型的切割为应用背景,希望学生体会到现代切割技术在工程实践中的应用。隐形牙套是目前医疗领域中应用在隐形正畸方面的主要矫正工具。牙齿热压模型是隐形牙套的半成品,利用3-D打印技术和真空热压成型技术制作而成。通过后续的切割,可以将隐形牙套从热压模型上分离出来[1]。目前的切割方式主要是操作人员使用小磨钻进行手工切割,费时费力且精度不高。由于牙龈线复杂的空间结构,使用手工编程的切割设备也不具有可操作性。
本教学实验平台分为轨迹规划软件和激光切割设备两部分。轨迹规划软件在计算机端的控制平台运行,主要功能为切割路径的规划以及执行代码的生成;激光切割设备是执行平台,主要功能为按照规划好的路径以及生成的执行代码进行切割操作。整体结构如图1所示。
图1 牙齿热压模型切割教学实验平台
本实验平台的整体工作流程如图2所示。首先,轨迹规划平台初始化,同时激光切割平台各运动轴归零;其次,双目相机启动,通过控制载物平台的旋转采集完整的牙齿热压模型的图像信息,对所得到的图像信息进行细化、匹配等一系列的处理后获得牙龈线的三维坐标信息;然后,将所得到的牙龈线坐标信息导入到轨迹规划软件中,轨迹规划软件通过逆运动学求解得到各运动轴的移动信息,并将这些信息以G代码的形式输出;最后,将输出的G代码导入到激光切割设备,进而驱动激光切割设备进行切割动作。
图2 实验平台切割过程的工作流程图
轨迹规划软件使用 D-H参数法建立激光切割设备的运动模型,通过导入牙龈线的位置坐标,进行逆运动学求解,将求解结果转换成激光切割平台可以执行的G代码指令,实现自动化的编程功能。轨迹规划软件利用MATLAB平台下的图形用户界面(graphical user interface,GUI)编写而成。MATLAB的GUI功能十分强大,含有各种功能按钮控件和自定义的功能菜单,用户能依据自己的需要去定义属性、特征和菜单等编辑器,可以根据用户的需要构建一个功能完善的虚拟操作平台,进而能够实现用户与计算机之间信息的传递[2]。图形用户界面使学生在使用时不再需要编写冗长且复杂的代码,所需要的功能主要依靠点击图形按钮来实现,利用可视化的方式,降低了学生的学习成本,方便实践活动中的实际操作。新建GUI包括两个文件:一是包含callback函数的m文件,进行编程时内容保存在m文件中;二是包含GUI控件的fig文件,设计用户界面时内容保存在fig文件中[3-5]。该系统可以将其转化为exe文件脱离MATLAB环境运行。
轨迹规划软件主要有数据导入、仿真计算、G代码导出三个功能。通过数据导入命令将需要实现的末端移动轨迹导入仿真平台,利用坐标图进行直观的展示;以搭建出的模型为基础,以导入的末端轨迹数据为依据,进行逆运动学求解,将最终结果以动态视频的形式展现出来;将求解之后各轴的运动角度和运动距离通过G代码的形式导出。
根据总体设计框架的思路,使用按钮、坐标系、静态文本等界面元素,整个界面包括操作部分、显示部分和工具栏部分。操作部分主要通过单击按钮控件调用对应的callback函数,实现读取数据、弹出下一级窗口等功能;显示部分主要使用坐标系控件和静态文本控件,在坐标系内通过三维图的形式展现最终的计算结果,在静态文本内显示当前末端执行器所处的位置;界面上方的工具栏部分包括放大、缩小、平移和三维旋转等四个功能按钮,方便学生以不同的视觉角度去观察仿真规划的结果。软件界面如图3所示。
图3 轨迹规划软件界面
D-H参数法是由Denavit和Hartenberg提出的建立机械臂运动学方程的方法,这种方法对每个连杆建立坐标系,用齐次矩阵来描述相邻连杆的空间关系,通过矩阵的乘积得到最后一个连杆相对第一个连杆的位姿[6]。
根据D-H参数法,对一个具有n个关节、(n+1)个连杆的机械臂各部件进行编号。一般情况下连杆 0是机械臂的基座,连杆(n+1)用来固接工具视作末端执行器[7-8]。连杆(j+1)和连杆j通过关节j相连。用连杆长度aj和扭转角αj两个参数来描述一个连杆。用连杆偏移dj和关节角θj来描述一个关节,如图4所示。
图4 D-H参数法原理图
由图4可以进一步了解到连杆长度aj是指关节 j和关节(j+1)的两条轴线的公法线的长度,扭转角αj是指垂直于aj的所在平面内两轴的夹角,连杆偏移dj是指沿着关节 j的轴线从一个连杆坐标系到另一个连杆坐标系的距离,关节角θj是指连杆(j-1)相对于连杆j关于关节j的轴线的转动角度。
为方便建模,首先对每个关节建立一个本地坐标系,对于每个关节来说,必须人为指定z和x轴,但一般不需要指定y轴,因为y轴总是垂直于z和x轴[9]。通常情况下将关节的轴线定义为z轴,若关节为平移关节则将z轴定义为沿直线运动的方向;将两相邻轴线的公法线定义为x轴。特别的,若出现两个关节的z轴相互平行的情况,它们之间就会有无数条公法线,这时可挑选与前一关节的公法线共线的一条公法线作为x轴。
接下来将 zj-1-xj-1坐标系转换到 zj-xj坐标系,依据前面总结的位置特点,按如图5所示流程进行。首先,将 zj-1-xj-1坐标系绕 zj-1轴旋转 θj,因为 xj-1轴和xj轴都与zj-1轴垂直,这样可以使得xj-1和xj平行;然后,沿着zj-1轴将zj-1-xj-1坐标系平移dj的距离,使xj-1和 xj共线;接下来,沿着 xj轴的方向,将 zj-1-xj-1坐标系平移 aj的距离,使坐标系 zj-1-xj-1和坐标系 zj-xj的原点重合;最后,将 zj-1-xj-1坐标系绕 xj轴旋转 αj的角度,使 zj轴和 zj-1轴重合。通过这样的变化就能使得 zj-1-xj-1坐标系转换到 zj-xj坐标系。这种变化可以用四个齐次变换矩阵来表示,称为Aj矩阵[10]。
图5 坐标系转换流程图
对于转动关节展开可得:
对于移动关节展开可得
对于指定的连杆,参数aj和αj始终是常量;对于转动关节,θj是变量,dj是常量;对于移动关节,dj是常量,θj是变量[11]。
依据以上规则,从第1个关节开始变换到第2个关节,然后到第3个关节,一直到最终的末端执行器[12]。若把每个变换均用A矩阵的形式进行描述,则在基座与末端执行器之间的变换总则为:
激光切割设备可以看做由一组连杆组成,这些连杆通过关节连接起来。控制切割平台在 X、Y方向上移动的H形结构视作连杆由平移关节链接;调整激光射入角度的激光头运动模块视作两个连杆由转动关节链接。这些关节的平移或转动改变了相邻连杆的位置关系,进而改变了末端执行器的位姿。本实验平台使用MATLAB工具箱robot9.10开发而成,此工具箱提供了逆运动学封闭解求解函数ikine6s,但此函数仅对PUMA560型机械臂有效。PUMA560型机械臂具有前三个关节定位,后三个关节调整末端执行器的位姿的特点,由于这一特点与激光切割设备具有高度的相似性,因此采用等效处理的方式来建立实验平台的模型。
在保证同样的工作空间的前提下,PUMA560可以到达空间的任意位置,H形结构配合Z轴升降也可以保证激光切割平台到达工作空间的任意位置,这样就将PUMA560的前三个转动关节与激光切割平台的H型结构等效;将PUMA560的连杆6所有参数设为0,这样就将PUMA560的后三个连杆与切割平台的后两个连杆进行了等效。等效之后的建模数据如表1。
表1 切割平台的建模数据
这样既保证了轨迹规划平台与激光切割平台的统一性,也方便在计算逆运动学解时可以直接使用工具箱中的ikine6s函数。
使用MATLAB GUIDE进行应用程序的编写,关键在于回调函数的编写以及各功能模块的数据联通、协调配合[13]。
1)打开MATLAB,通过GUIDE新建一个空白的GUI。
双击GUI界面的空白位置弹出属性检查器,修改units、position、Resize等参数,使界面在桌面的合适位置出现。
2)在图像界面上放置控件并修改其属性参数。
在界面左侧放置三个按钮控件,分别修改其string属性为“数据导入”“仿真规划”“G代码导出”;在界面中间放置两个坐标系控件,用来实现轨迹的可视化;在界面右侧放置面板控件,修改其string属性为“坐标显示区”。在面板左侧放置三个静态文本,修改其string 属性为“X”“Y”“Z”,通过修改 ForegroundColor属性改变字体颜色;在面板右侧放置三个静态文本,修改BlackgroundColor属性改变背景颜色,用来显示当前末端执行器所在的空间坐标。
3)编写三个按钮的回调函数。
整理回调函数设计流程如图6,首先确定各个按钮所要实现的具体功能,依据总体设计逻辑,编写数据导入按钮的回调函数,此按钮的主要功能通过图7的语句实现。
图6 回调函数编写流程
图7 数据导入按钮的回调函数
在检查功能正确实现之后,继续编写仿真规划按钮的回调函数,其主要代码如图8所示。
图8 仿真规划按钮的回调函数
最后编写G代码导出按钮的回调函数,需要注意的是一般的 G代码在指令之后只有 X、Y、Z三个位置参数,针对切割平台的实际情况在G代码之后添加了A、B两个位置参数用来控制机械手臂上的两台舵机,主要代码如图9所示。在全部编写完成后,运行调试。
图9 G代码导出按钮的回调函数
激光切割设备的搭建重点在于机械结构的设计、电路的设计以及控制程序的编写。
由图10可以看出,激光切割设备主要由视觉重构部分和切割部分组成。视觉重构部分使用双目相机对牙齿热压模型进行拍照,经后期处理得到牙龈线坐标。切割部分由空间移动机构和激光切割手臂两部分组成,其中空间移动机构通过H形结构和升降结构的联动使激光切割手臂到达工作空间的指定位置,而激光切割手臂通过两台舵机构成云台悬挂于H形结构下方,通过调整两台舵机的旋转角度调整激光的射入角度。
图10 激光切割设备结构设计图
如图11和12所示,H形结构模块由光轴、H形同步带、两个同步轮、两个移动块及配套轴承组成。两台用来驱动H形结构的步进电机安装在机架底端,通过驱使两个同步轮转动进而带动同步带驱动H结构上的两个移动块,使切割平台实现 X、Y轴方向上的移动。升降结构采用步进电机驱动丝杠实现载物平台在Z轴方向上的移动。激光切割手臂使用一台单轴舵机和一台双轴舵机组成,单轴舵机固定于H形结构模块的下方,实现激光头在 XY平面上的转动;双轴舵机下方固定激光头,实现激光头垂直Z轴旋转。
图11 H形结构模块图
图12 激光切割手臂图
本切割设备的电路设计是在 Ramps1.4电路板的基础上通过修改得到,电路原理如图13所示。
因为本实验平台需要控制多个舵机和步进电机及激光的开闭等,为满足开发要求,选用具有54路数字输出/输入的Arduino Mega2560作为控制芯片。空间移动机构采用A4988微步电机驱动器驱动42步进电机;激光切割手臂机构采用LD-220MG和LD-27MG两种型号的数字舵机,理论最小可控角度为 0.3°;电源部分采用S-250-12稳压电源给实验平台供电。
控制程序部分的重点在于控制各轴的加减速以及步进电机与舵机之间的联动,为此设计编程逻辑如图14所示。
图13 电路原理图
图14 编程逻辑流程图
如图14所示,首先将规划之后的路径数据储存起来,需要注意的是常规G代码只有空间坐标数据和进给速度,为使G代码与本实验平台兼容,更改了G代码的表达形式和读取命令,添加了 A、B两个参数,用来确定激光切割手臂上两个舵机的转动角度;之后读取路径数据;数据读取完成后启动定时器;定时器中断时给X、Y、Z轴的步进电机发送脉冲,定时器定时长短的变化可以改变步进电机的运动速度,使其从第1个点到第2个点时经历加速、匀速、减速三个阶段,且第2个点到第3个点的加速阶段的起始速度与第1个到第2个点的减速阶段的最终速度相同,这样可以保证整体的切割过程平滑顺畅;在达到指定点之后启动舵机转到相应的位置。
(1)在上位机运行轨迹规划软件,激光切割设备开机并初始化。
(2)点击“数据导入”按钮,在弹出的对话框中选择需要导入的数据,数据导入完成后,学生可以在第1个坐标系上看到牙龈线的三维模型,通过点击工具栏上“放大”“缩小”以及“旋转”三个按钮可以观察不同视角下的牙龈线模型,如图15和16所示。
(3)点击“仿真规划”按钮,等待规划完成后,可以在第 2个坐标系下观察到模型机械手的运动轨迹,在最右侧的坐标显示区可以观察到此时机械手末端执行器所处的空间坐标,如图17所示。
图15 导入牙龈线数据
图16 牙龈线三维模型展示
(4)点击“G代码导出”按钮,在弹出的对话框中选择导出位置,导出完成后,学生便可以在导出位置看到命名为output的txt文件,双击打开即可观察到导出的G代码指令,将后缀修改为gcode即可转换为G代码文件,如图18和19所示。
(5)将生成的G代码文件拷贝进SD卡中并导入到激光切割平台,通过LCD显示屏左侧的旋钮选中导入的G代码文件,摁下旋钮,可以观察到激光切割平台开始运行,沿着牙龈线的轨迹切割牙齿热压模型。
图17 轨迹规划过程
图18 选择G代码的保存位置
图19 部分G代码展示
本文开发了牙齿热压模型切割教学实验平台。使用 MATLAB编写了轨迹规划软件,通过建立仿真模型求解逆运动学解,生成可供激光切割设备直接运行的G代码,并通过激光切割设备中的空间移动机构和激光切割手臂配合,实现了沿牙龈线切割牙齿热压模型。该过程直观地展示了自动化的现代切割技术在工程实际中的应用,以及计算机辅助技术对于完成复杂切割轨迹的帮助。学生通过本实验平台可以了解D-H参数法建模方法,掌握运动控制的编程方法,认识和熟悉多轴运动原理,加深对先进制造技术、机电信息检测与处理技术、切削技术与原理等相关课程的理解,达到了良好的实验效果。