MOTOMAN工业机器人实时控制平台研究
2012-11-24徐呈艺陈广健徐晓峰焦恩璋
徐呈艺,陈广健,徐晓峰,焦恩璋
(1.南通职业大学机械工程学院,江苏南通 226007;2.江苏苏美达集团公司,南京 210018;3.南京林业大学机械电子工程学院,南京 210037)
0 引言
MOTOMAN工业机器人的运动控制和程序编制一般是通过示教盒来实现,其功能相对比较简单,控制范围半径较小,在恶劣的环境下,其作用就会受到限制。随着计算机技术高速发展和工业自动化水平不断的提升,实时控制系统的研究成为机器人技术研究领域的一个热点[1]。主控计算机可通过控制系统的人机控制界面直接对机器人进行控制,可加大原有对机器人的控制范围,给操作人员创造了一个良好、安全的操作环境。本文以MOTOMAN-UP6机器人为对象,采用VC++语言开发了工业机器人实时控制平台,为实现基于视觉技术的机器人搬运,分拣等实时控制作业打下了重要的基础。
1 机器人实时控制系统的组成与模块设计
这里研究的工业机器人实时控制系统由主控计算机,UP6机器人、YASNAC-XRC控制柜和摄像头组成,如图1,UP6 机器人具有 S,L,R,U,B 和 T 六个转动关节[2]。由于YASNAC-XRC控制柜不支持以太网通信,因此,工业机器人通过标准的RS232串口和主控计算机进行通讯,可以向工业机器人发送控制指令或作业程序,并接收机器人反馈信息[3-4]。
本文研究的机器人实时控制平台主要有“状态命令”、“操作命令”和“其他功能”三个模块组成,采用Visual C++6.0语言设计的UP6机器人实时控制的软件界面设计如图2所示。
图1 工业机器人控制系统组成
图2 UP6机器人实时控制软件主界面
(1)“状态命令”模块
“上伺服”和“下伺服”功能实现了对伺服电源的通断控制,“示教模式”和“运行模式”功能实现了对示教状态的选择控制,“回位”功能实现了机器人各关节回到起始位置的状态,即机器人各关节转角为零的状态。
(2)“操作命令”模块
“关节脉冲式”和“关节坐标式”功能模块都可以控制机器人以某一速度用关节的插补方式运动到某一位姿。前者用六个关节的脉冲数描述位姿,后者用直角坐标值即(X,Y,Z,RX,RY,RZ)描述位姿。同理,“直线脉冲式”和“直线坐标式”模块都可以控制机器人以某一速度用直线的插补方式运动到某一位姿,前者用六个关节的脉冲数描述位姿,操作对话框如图3,后者用直角坐标值(X,Y,Z,RX,RY,RZ)描述位姿,操作对话框如图4。
图3 “直线脉冲式”操作对话框
图4 “直线坐标式”操作对话框
“单步运行”功能模块是对UP6机器人功能的扩展,根据操作者设定的运行参数,可实现对机器人末端执行器直角坐标系下单个自由度方向的运动控制,或关节坐标方式下单个关节的运动控制。
“程序运行”功能模块可使“传送文件”功能实现的机器人控制柜中的作业文件执行。
(3)“其他功能”模块
“传送文件”功能模块可将操作者选择的MOTOMAN工业机器人可执行JBI格式文件下载到执行机器人控制柜中。“接收文件”功能模块可将器人控制柜中可执行程序JBI格式文件上传到主控计算机中,实现了计算机与机器人之间的高速数据交换以及对控制柜中作业文件的管理。
“视频”功能模块功能采用图像监控手段可实时显示机器人的操作画面,便于操作者对机器人进行远距离控制,避免与机器人同在一些恶劣环境下工作,同时也是采用视觉技术进行搬运和分拣等实时控制的重要准备[5-6]。
2 MOTOCOM32库的面向对象封装
MOTOCOM32是日本安川电机公司为其MOTOMAN系列机器人提供的软件开发工具包,包含了文件数据传送功能,机器人控制功能和I/O读写信号功能等,用户可根据实际要求情况进行开发,实现所需控制功能。MOTOCOM32本质为动态链接库(DLL),用VC++语言进行开发时,首先应在“Project Setting/Link”对话框中的“L对象/库模块”输入框中添加 Motocom32.lib库文件,如图 5,然后将“motocom32.h”与“motocom32.dll”拷贝到工程目录内[7]。
MOTOMAN公司虽然给用户提供了库手册,但说明比较简单,尤其对函数的使用方法介绍不多,同时为了避免运动控制函数的非阻塞性导致程序出错的问题,本文对MOTOCOM32库部分功能采用了面向对象的封装,公开接口如表1所示。应用面向对象封装后,更换不同类型的工业机器人,只需替换类文件,保持公共接口不变,就可以有较好的适应性。
图5 VC++中使用MOTOCOM32库
表1 MOTOCOM32封装后的公共接口
3 机器人实时控制平台程序的编制
“单步运行”功能模块充分体现了控制平台的实时性,是本文控制平台开发的重点之一。现以S轴为例来说明各个轴的具体运行操作方法,以下是此功能需要调用的主要函数[8-10]:
OnButtonS1()函数和OnButtonS2()函数均要调用OnOpenCom()函数。在OnButtonS1()函数运行的同时,OnSetposS1()函数同时运行,显示S轴正方向运动的当前脉冲数值和进度;OnSetposS2()显示S轴反方向运动的当前脉冲数值和进度。系统调用OnSelect()函数表示选择脉冲和角度的功能,同时OnSelect()将参数传到OnButtonS1()或OnButtonS2()供其调用。
由于篇幅关系,这里只给出S轴正向运行的源程序。
4 MOTOMAN机器人实时控制平台的测试
点击主界面的“传送文件”按钮,弹出对话框,如图6,选择计算机上的MOTOMAN机器人JBI格式作业文件,然后点击“执行”按钮,弹出传送成功的提示。点击主界面的“接收文件”按钮,可以看到刚才传送到XRC控制柜的机器人作业文件,选择计算机接收文件的存储路径,然后点击“执行”按钮,弹出接收成功的提示,根据刚才选择的存储路径,便可找到刚刚接收的的机器人JBI格式文件。至此表明已成功建立了主控计算机、YASNAC-XRC控制柜和MOTOMAN-UP6机器人三者之间的通信,体现了计算机与机器人控制柜高速数据交换功能。
点击主界面的“单步运行”按钮,弹出对话框如图7,首先选择脉冲或角度为运行单位,然后输入关节运动的速度值,脉冲值或角度值,然后就可选择各个关节进行操作。点击“+”按钮表示为对应关节正向运动,“-”按钮表示反向运动,操作的同时可观察到UP6机器人也实现对应控制关节的转动,同时对话框图7显示对应关节已运行的脉冲数和进度,显示的比值表示当前运行脉冲数占运行到极限位置脉冲数的比例。彩色进度条的红颜色为警戒位置,表明关节运动接近极限位置,提醒操作人员停止操作。如果操作者输入的值超过了对应关节运动范围,本系统禁止执行并将提示出错。
图6 “传送文件”对话框的操作
图7 “单步运行”对话框的操作
在“单步运行”功能中选择各个关节进行操作的同时,可点击主界面的“视频1”按钮,打开视频,如图8,通过视频可直接观察UP6机器人的作业状态。
图8 视频功能的模块
5 结束语
本文研究的工业机器人实时控制平台可以进行远距离控制,改善了操作者的示教编程环境。具有图像实时监控、速度控制和高速数据交换等功能,实现了实时单步运行控制,进行了关节运动转角范围设置,操作更具安全性。为基于视觉技术的搬运,分拣技术等实时控制的研究打下了重要的基础。
应用面向对象的技术对MOTOCOM32库进行封装后,提高了MOTOCOM32库的易用性,降低了编程难度,同时可以较好的适应其他类型的工业机器人,具有较强的通用性。
[1]陈美宏,焦恩璋,唐健,等.基于PC机的工业机器人控制平台[J].组合机床与自动化加工技术,2010(11):53-56.
[2]夏朝猛,钱新恩,刘白雁.动态UP6工业机器人运动轨迹的实时规划[J].湖北汽车工业学院学报,2005,19(1):42-45.
[3]武传松,许磊.基于ROTSY的弧焊机器人离线编程究[J]. 电焊机,2009,1(39):45-48.
[4]张建生,肖南峰.机器人远程控制系统的实时仿真与实现[J]. 计算机工程与应用,2009,45(14):245-247.
[5]焦恩璋,杜荣.工业机器人分拣技术的实现[J].组合机床与自动化加工技术,2010(2):84-87.
[6]焦恩璋,徐顺清.基于视觉伺服的机器人作业系统研究[J].组合机床与自动化加工技术,2009(7):67-81.
[7]杜荣,焦恩璋.Motocom32的应用及其面向对象封装研究[J]. 机电一体化,2009,15(6):80-83.
[8]文怀兴,雷晓丽.四自由度绘图机器人的控制系统设计[J].组合机床与自动化加工技术,2010(11):64-70.
[9]徐兆军,周勇,丁建文.数控曲线带锯机的数控系统设计[J]. 木材加工机械,2006(6):8-10.
[10]侯俊杰.深入浅出MFC[M].北京:华中科技大学出版社,2001.