时间:2024-08-31
李 渊,武建新,郭宇鸿,李博伟,2
(1.内蒙古工业大学 机械学院,内蒙古 呼和浩特 010051;2.乌海市特种设备检验所,内蒙古 乌海 016000)
本文所研究的是6自由度机械手,所以采用Galil公司提供的六个自由度的DMC-2163运动控制器。DMC-2163系列是Galil经济型多轴独立控制器,它提供两个通信通道:RS-232(最高波特率19.2kBd/s)和10Mb/s以太网,且提供4MB Flash EEPROM 存储器,用于存储应用程序、参数、变量、数组,可以很容易地在现场对固件进行升级。
DMC-2163专为解决复杂运动问题而设计,能够在包括点动、点到点定位、矢量定位、电子齿轮同步、电子凸轮、组合运动、轨迹运动的应用中使用。控制器通过对运动规划曲线的平滑处理以及加、减速过程的控制,可大大减小对机械部分的运动冲击。为了对复杂轮廓平滑跟踪,DMC-2163还提供无限直线、圆弧线段的矢量进给。控制器的电子齿轮也提供了多主轴以及龙门模式的操作[1]。
六自由度机器人是一种典型的工业机器人,在自动搬运、装配、焊接等工业现场有着广泛的应用。该机器人采用六关节串联结构,各关节以“绝对编码器电机+精密谐波减速器”作为传动。在机器人的控制方面,采用集成了PC技术、图像技术、逻辑控制及专业运动控制技术的运动控制器,其性能可靠稳定,高速高精度[2]。本次实验所使用的机械手的一些技术参数如表1所示。
本文所论述的是六自由度机械手,采用了Galil公司的DMC2163运动控制卡,使运动系统具有精确的定位抓取功能。图1为机械手抓取物体的实物图以及机械手配电柜的接线图。
表1 机械手技术参数
图1 机械手抓取物体的过程及配电柜
其他的控制系统一般采用 WSDK、SmartTerminal作为伺服调节工具,而本文所述的系统采用的伺服调节工具是GalilTools。GalilTools为控制卡调试基本工具,并带有开发函数包。调试工具部分分为收费版本和免费版本,收费版本功能接近WSDK,免费版本接近SmartTerminal。它支持现有所有型号的控制器,支持XP及以上的Windows系统。使用Galil-Tools伺服调整软件,当打开此软件时,会自动识别控制卡的通讯状态,而不需要像旧的伺服调整软件(如SmartTeminal、WSDK)那样首先注册卡的信息。通过GalilTools软件向控制卡发送指令,实时控制和监测伺服电动机的运动。也可以通过软件编写程序,然后下载到控制卡中,由控制卡连续自动执行。
Galil运动控制器提供了功能强大且使用方便的编程语言,用户使用GalilTools能够快速编程来解决任何运动控制方面的难题。能够把程序下载到运动控制卡的存储器中,无需主机干预,即可执行。多任务功能同时执行8个用户程序,允许各独立任务同时执行。采用GalilTools来执行复杂程序,让主计算机执行其他任务;不过,即使程序正在执行中,控制器仍能随时接收来自主计算机的命令。除标准运动命令外,Galil还提供许多命令,使其做出自行决定,这些命令包含各种跳转、事件触发及子程序。Galil还提供了用于检测、修正系统误差及处理来自外部开关的中断自动子程序。为了更高的编程灵活性,Galil提供了用户自定义变量、阵列及算术函数[3]。
为了各种运动形态和应用,Galil提供了广泛的指令集,用2字符ASCII命令代表这些指令,使编程更加简单。使用双字符语言编写的程序主要可以完成如下的运动方式:PTP定位、JOG运动、2D直线和圆弧插补、直线插补、电子齿轮、ECAM和仿形加工等。
只有完整的GalilTools版本(即收费版本)才有PID自动调整功能。下面主要介绍PID自动调整功能在GalilTools中的具体实现过程。
(1)首先启动GalilTools软件,在“Scope”功能下有“Tuner”功能项,所有的PID数值都是初始值。PID自动调节工具如图2所示。
图2 PID自动调节工具
(2)设置“Scope”的 Mode选项为Repeat,然后点击Start使得Scope可以接收获取数据。
(3)编写一段 DMC(Digital Motion Control)程序,使得速度、加速度、减速度均为最大值。然后把编写的程序下载到控制器中,以后就可以更加直观地对比PID调整前后的图像。如下是一段实现X轴间歇运动的DMC程序:
(4)在GalilTools的终端中输入XQ#A(执行程序),然后点击Tuner中的 Autotuner,系统会进行PID的自动调整。
点击Autotuner后的效果如图3所示。而没有经过PID整定的控制效果图如图4所示。对比图3与图4可以发现,在经过PID调整以后,显然实际位置与编码器反馈回来的位置基本重合,因此提高了控制系统的稳定性。
图3 经过PID自动调整的控制效果
图4 未经过PID调整的控制效果
Galil除了提供 GalilTools、SmartTerminal和WSDK基本通信软件以外,还提供了软件开发工具CToolkit、ActiveX Toolkit,用户可以用 C、C++、VB、VC、Labview开发应用接口程序。在开发接口程序时,用户可以利用API函数直接调用Galil的Dll,或者使用 ActiveX COM 控件[4]。
本文所述的系统是在Windows平台下使用Visual Studio 2010软件开发的。为了使在 VS 2010中编写的运动程序也具有PID自动调整功能,则需要在VS 2010中首先调用 GalilTools,这样在 VS 2010中编写的C++程序在执行过程中也同时启动了Galil-Tools,即整个运动过程具有了PID自动调整功能。
在Visual Studio 2010控制台程序编写时,需进行如下配置:
(1)在系统环境变量的PATH变量中,添加C:\Program Files\Galil\GalilTools\bin\。
(2)打开VS 2010,新建一个C++空工程。
(3)在解决方案中,选择资源文件,右击添加C:\Program Files\Galil\GalilTools\lib\hello.cpp。
(4)项目/属性/配置属性/C/C++/常规/附加包含目录“C:\Program Files\Galil\GalilTools\lib”。
(5)项目/属性/配置属性/C/C++/代码生成/运行库改为多线程调试DLL。
(6)项目/属性/配置属性/链接器/输入/附加依赖项“C:\Program Files\Galil\GalilTools\lib\Galil1.lib”。
(7)将LibGalil-1.6.4.552-vs2010-x86中的Debug(包含Galil1.obj和Galil1.dll)分别复制到C:\Program Files\Galil\GalilTools\bin\和 C:\Program Files\Galil\GalilTools\lib\。
在Visual Studio 2010中,开发了一个 MFC的人机操作界面,实现机械手对物体的准确抓取,其具体操作过程如下:首先连接控制器,然后选择回原点标定,最后进行机器人抓取物体。在抓取物体的过程中应进行物体的图像捕捉,在系统内部进行各种矩阵变换,使得机械手能够准确抓取到物体。人机界面的开发是在调用GalilTools软件基础上进行的,使得整个运动系统具有PID自动调整功能,这样机械手就能快速、准确地抓取物体。机械手的人机界面如图5所示。
本文以六自由度机械手作为GalilTools的应用实例,首先在GalilTools中进行简单的应用编程,再利用VS 2010作为开发平台进行了一些开发环境的配置工作,配置完成后制作了一个MFC人机界面,通过人机界面的操作,使机械手能够将物体准确抓起。由于GalilTools具有这些优点,因此在进行机械手人机界面的设计中,就是在调用它的基础上开发应用的。
图5 机械手的人机界面
[1] 吴忠.基于Galil运动控制器的切割机控制系统[J].机电工程,2003,20(4):44-46.
[2] 马强.六自由度机械臂轨迹规划研究[D].哈尔滨:哈尔滨工程大学,2007:9-14.
[3] 何均.高平稳数控运动控制算法与系统软件开发方法研究[D].南京:南京航空航天大学,2010:23-26.
[4] 王伟.基于GALIL卡的火焰切割机数控系统的开发研究[D].大连:大连交通大学,2011:25-31.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!