3自由度Delta型并联机器人控制系统设计*
张中辉1,温秀兰1,徐官南2,夏庆观2
(1. 南京工程学院 自动化学院,南京211167;2. 南京康尼科技实业有限公司 技术中心研发部,南京210038)
摘要:针对康尼公司设计的3自由度Delta型并联机器人机械本体样机,提出了一种基于PC机和运动控制卡的控制系统设计方案;在Windows操作系统下,基于PCI1040运动控制卡和Visual C++ 6.0软件,开发了3自由度Delta型并联机器人控制系统平台。通过编写实验程序对机器人进行了试运行,实验结果证实了该控制系统满足稳定性、准确性和简单易操作要求。
关键词:Delta并联机器人;控制系统;运动控制卡
文章编号:1001-2265(2015)09-0099-03
收稿日期:2014-11-08
基金项目:*江苏省自然科学
作者简介:张中辉(1990—),男,江苏盐城人,南京工程学院硕士研究生,研究方向为机器人控制技术;
中图分类号:TH165;TG659
Design of 3-DOF Delta Parallel Robot Control System
ZHANG Zhong-hui1,WEN Xiu-lan1,XU Guan-nan2,XIA Qing-guan2
(1. Automation Department, Nanjing Institute of Technology, Nanjing 211167,China;2. Technology Center R&D Department, Nanjing Kangni Technology Industy Co.,Ltd., Nanjing 210038,China)
Abstract:According to the 3-DOF delta parallel robot prototype developed by KNT company, the design scheme of the control system based on PC and movement control card is proposed. Under the Windows operating system, the control system platform is developed based on PCI 1040 movement control card and Visual C++ 6.0 software By writing the test program to debug the robot, the experiment results verify the control system meets the requirements of stability, accuracy and easy operation.
Key words: delta parallel robot; control system; motion control card
0引言
并联机器人具有结构简单、运动精度高、速度快和负载大等优点[1],近年来已在众多工业领域中得到了广泛应用。并联机器人控制系统是一种非常典型的多自由度实时运动控制系统,控制系统设计优劣将直接决定整个机器人系统的性能。绝大多数传统工业机器人控制器都是专用控制器,其功能取决于机器人所需要完成的特定任务,而且这些专用控制器几乎都是封闭的,没有开放性,开发成本高,周期长[2]。针对这些情况,开放式控制系统应运而生,伴随着计算机技术和DSP技术的快速发展,基于PC+DSP运动控制卡的开放式控制器因其开发周期短,经济实用,已逐渐得到大家的认可,成为机器人控制发展新的潮流方向[3],如美国Delta Tau公司的PMAC运动控制卡已经在很多工业机器人上得到成功运用,东南大学研究的基于PCI8134的多轴联动控制系统[4],华中科技大学基于PC机+运动控制卡的焊接教学机器人研究等。
本文从研究应用的角度出发,通过以PC+运动控制卡为核心,搭建3自由度Delta型并联机器人的控制系统平台,并基于VC6.0软件提供的MF研究开发该并联机器人控制系统软件,旨在完成3自由度Delta型并联教学机器人设计以实现推广应用。
1机器人控制系统硬件设计
1.13自由度Delta型并联机器人本体
并联机器人的本体样机如图1所示,该机器人主要由上平台(静平台)、下平台(动平台)、3个交流伺服电机、3根驱动杆和3个平行四边形从动支链组成。
伺服电机与驱动杆的一端固定连接,驱动杆的另一端通过转动副与平行四边形从动支链连接,从动支链由球头关节轴承与杆件组成闭环的平行四边形,此闭环通过两个球头球铰与动平台连接。3根驱动杆分别在3个伺服电机的驱动下作一定的角度摆动,动平台就能耦合出3个自由度(即X方向、Y方向和Z方向)。
图1 3自由度Delta型并联机器人本体
1.2控制系统的硬件组成
机器人控制系统的硬件主要包括以下几部分:PC机(Windows XP操作系统平台)、PCI1040运动控制卡、KSA—07BAB交流伺服驱动器、米格60ST—MO1330伺服电机、限位开关接近传感器和其他一些控制电路,其控制系统结构如图2所示。整个控制系统是采用通用的PC机和运动控制卡为控制中心,进行伺服控制和一些开关量的控制。PC机和PCI运动控制卡组成了上位机控制单元,运动控制卡插在PC机主板上的PCI插槽内。PCI1040是PCI总线最多可独立控制八轴伺服电机的运动控制卡,可完成直线插补和S曲线加减速等功能。
图2 机器人控制系统结构图
1.3控制系统的控制线路设计
机器人控制系统的控制电路主要由运动控制卡控制电路、伺服电机驱动电路、限位开关控制电路组成[5],控制电路的实体接线图如图3所示。主要控制过程如下:闭合伺服驱动器的使能开关,对控制系统进行相应的运动参数设置之后,PC机控制运动控制卡发送位置指令等信号给伺服驱动器,从而控制3个伺服电机驱动3组摆杆运动,耦合出动平台的平移和上下运动。其中,运动控制卡可接受每个伺服电机内部的增量式编码器反馈回来的脉冲信号,构成了半闭环回路控制系统;在每组手臂上摆杆的工作行程两端都装有限位开关,防止电机转动角度超程,实现了硬限位功能。
1.3.1伺服驱动电路
PCI1040运动控制卡与一号电机的交流伺服驱动器的接线图如图4所示,其中二号、三号伺服电机驱动器的接线图与图4类似,不同之处是对应所接的PCI1040运动控制卡引脚号不同。
图3 控制电路实体接线图
图4 运动控制卡与伺服驱动器接线图
1.3.2限位开关控制电路
3组伺服电机在行程的两端都有正负限位开关传感器与PCI1040运动控制卡相连,其中一号伺服电机的正向限位开关电路接线如图5所示,其余电机的正向限位开关电路接线图与图5一样类似。
图5 运动控制卡与限位开关接线图
2机器人控制系统软件设计
3自由度Delta型机器人软件系统以Visual C++ 6.0的MFC为开发平台,采用WindowsXP操作系统平台,即充分发挥了PC机的优势,又能实现运动控制的精度和速度。MFC不仅为用户提供了Windows图形环境下的应用程序的框架,而且还提供了创建应用程序的组件。MFC完整地封装了Windows API函数,且其为经常使用的Windows API函数提供支持,包括窗口函数、消息、控件、菜单、对话框、GDI(图形设备接口)对象、对象链接,以及多文档界面(MDI)[6]。PCI1040运动控制卡提供了Windows下动态链接库,它是用户控制运动控制卡的接口,用户通过调用其库函数,就可控制运动控制卡实现相应的功能。
2.1控制系统程序流程
图6 机器人控制系统流程图
控制系统启动之后,运动控制卡首先进行初始化,通过人机界面设置其运动参数后,运动控制卡接收PC机发来的命令,从而执行运动控制程序。控制程序流程图如图6所示。
2.2控制系统软件的功能模块
2.2.1逆解运算模块
将并联机器人的逆解算法程序写在此模块中,只需在逆解运算的人机接口界面中,输入动平台中心点的(X,Y,Z)坐标,执行逆解运算程序,就可以算出每个伺服电机所需的转动角度。当输入的目标点坐标超出机器人的工作空间范围,程序就会自动报错,提醒用户重修输入一个合适的坐标。
2.2.2运动控制模块
单轴运动控制是通过设置速度、加速度等参数来调试3个伺服电机的性能,通过调用PCI1040_StartLVDVCHV单轴直线/S曲线函数来启动每个伺服电机的单步正反向运动,进行每个电机的单步调试,检查其是否能正常工作。
3轴联动功能模块则通过调用PCI1040_StartLineInrerpolation_3D 3轴直线插补驱动函数来控制机器人的3轴耦合运动,通过读取逆解运算模块中的三个电机的转动角度,换算成脉冲量后控制电机的运动。返回原点功能是通过调用PCI1040_SetOutORG原点搜寻函数和PCI1040_SetOutEnableDrv启动函数来是实现的。当电机到达原点时,接近开关信号和编码器的Z相信号就会发生跳变,电机就立即停止运动,就实现了返回原点功能。只要机器人在运动过程中,有任何轴运动超程,就会促发限位开关传感器发出低电平信号给运动控制卡的硬件限位ELP接口,从而调用PCI1040_InstStop函数,使机器人立即停止运动。
2.2.3运动状态实时显示模块
在机器人运动过程中,状态显示模块能够实时显示机器人每条支链的运动状态,通过调用PCI1040_ReadCV读取电机的当前速度、调用PCI1040_ReadCounter读取位置计数器的值,通过相应的换算,转换成速度和角度等信息在控制面板上显示。
3机器人控制系统的程序实例
首先通过Visual C++ 6.0的MFC AppWizard建立一个基于对话框的工程,将PCI1040.lib和PCI1040.h文件添加进工程[7],并在对话框中添加相应的按钮和编辑框等控件,修改相应的菜单和工具栏等资源,机器人控制系统人机界面如图7所示。
图7 机器人控制系统人机界面
以单轴运动控制模块,实现其单轴正方向单步运动为例具体介绍开发过程,相关代码如下:
在OnInitDialog( )函数中加入如下代码对运动控制卡进行初始化工作:
HANDLE hDevice;//定义设备对象句柄
hDevice=PCI1040_CreateDevice(0);//创建句柄设备ID号
PCI1040_Reset(hDevice,AxisNum);//对某个轴进行复位
在CDeltaDlg类中,对单轴运动控制模块的各个编辑框关联成员变量m_Multiple,m_StartSpeed,m_DriveSpeed,m_Acceleration,m_PluseNum设置单轴S曲线的运动参数:
DL.Multiple=m_Multiple;//倍率(0.1~250)DL.StartSpeed=m_StartSpeed;//初始速度(1~4095750)
DL.DriveSpeed=m_DriveSpeed;//驱动速度(1~4095750)
DL.Acceleration=m_Acceleration;//加速度(125~511 968 750)
DL.Deceleration=m_Deceleration;//减速度(125~511 968 750)
DL.nPluseNum=m_PluseNum;//单步运动的脉冲数
设置完运动参数后,在“单轴正向单步运动”按钮的OndanzhouStepMove()函数中添加如下代码:
PCI1040_InitLVDVCHV(hDevice,pDL,pLC);//初始化连续脉冲驱动
PCI1040_StartLVDVCHV(hDevice,PCI1040_AXIS1);//启动单轴正向单步运动
如果在单步运动时,电机的转角超过行程,就会立即触发限位开关,电机停转,其实现代码如下:
PCI1040_SetELPFun(hDevice,0,LCData.AxisNum)//正向硬件限位
PCI1040_DevMode(hDevice,LCData.DecMode,LCData.Line.Curve,LCData.AxisNum);//设置停止运动模式
最后在“停止运动”按钮的OndanzhouStop()函数中添加以下代码:
PCI1040_InstStop(hDevice,PCI1040_AXIS1);//立即停止一号电机
PCI1040_ReleaseDevice(hDevice);//释放设备。
利用所编写程序对机器人多次运行,结果证实了所设计控制系统能够满足稳定性、准确性和简单易操作要求。
4结束语
通过对并联机器人特性分析,确立了基于PC机加运动控制卡的控制系统体系架构,建立了机器人控制系统的硬件结构和软件调试平台。针对性地进行了软件的人机界面设计,编写了详细的控制软件程序,实现了运动逆解、单轴运动、三轴联动、运动显示等任务功能,证实了该机器人控制系统不但满足了研究的需求,而且操作简单、动作准确、稳定,具有一定实用价值,便于推广应用。
[参考文献]
[1] 刘善增,余跃庆,杜兆才,等,并联机器人的研究进展与现状[J]. 组合机床与自动化加工技术,2007(7):4-10;2007(8):5-13.
[2] 王启春. 六自由度开放式工业机器人控制系统设计[D]. 上海:华东理工大学,2011.
[3] 赵春红,秦现生,唐虹.基于PC 的开放式数控系统研究[J]. 机械科学与技术,2005,24( 9) : 1108 -1113.
[4] 吴小丽,丁维明,程力. 基于PCI8134的多轴联动控制系统[J]. 工业控制计算机,2011,24( 4) :11-13.
[5] 窦伟. 三自由度并联机器人控制系统[D]. 天津:天津理工大学,2010.
[6] 孙鑫,余安萍. VC++深入详解[M]. 北京:电子工业出版社,2006.
[7] 高煊,何广平. 基于VC++的四轴运动控制卡软件系统开发研究[J]. 制造技术与机床,2009(6):24-28.
(编辑李秀敏)