开放式四自由度工业机器人控制系统研究

2015-05-07 06:26于喜红白晶张顺琦秦现生
机械设计与制造工程 2015年8期
关键词:人机界面命令上位

于喜红,白晶,张顺琦,秦现生

(1.西北工业大学机电学院,陕西 西安 710072)(2.陕西省数字化特种制造装备工程技术研究中心,陕西西安 710072)

机器人技术属于具有前瞻性、战略性的高技术领域,是未来科技重点发展方向之一。随着人力成本的增加,以机器人为主导的自动化设备越来越受欢迎。面对日趋复杂的机器人应用场所和应用需求,现有机器人的控制系统越来越无法满足用户的要求。机器人的计算平台已经不仅仅局限于传统的体积庞大的PC平台,而是扩展到了智能手机、平板电脑等体积小巧的移动设备;机器人配备的传感器从简单的光电开关、触碰开关发展到触觉、声觉、视觉等高端传感器。机器人智能化的发展必然要求机器人控制系统向开放型、标准化发展。

目前国内外已有PMAC(programmable multiaxis controller)应用于数控机床、机器人等的控制系统中的研究与实例,但是基本都是PMAC作为运动控制器,工控机作为上位机,此种方式的硬件搭配,一方面使得整个控制柜体积较大,在环境复杂的工厂内不便于安放与移动;另一方面,由于目前市场上的工控机硬件配置都较高,造成了工控机功能的冗余与资源的浪费,而且增加了整个控制系统的成本。尽管PMAC是在开放式体系结构的标准之上开发的,但是其对用户的开放程度是有限的,而且并没有提供一个功能强大的控制软件来实现较为复杂的功能,如机器人示教、坐标系标定等。更重要的是,PAMC只提供了Windows NT下的以太网通信驱动程序,并不提供在嵌入式操作系统如Windows CE、Linux 下的通信驱动程序[1],因而实现嵌入式操作系统与PMAC之间的数据通信是提高PMAC开放程度的重要条件之一。

为满足控制系统实时性要求,国内外已有文献[2-6]研 究 了 基 于 Windows+RTX、Linux+RTLinux以及Linux+RTAI的数控系统。然而,目前RTX与RTLinux已实现商业化,开发者要想使用需要支付高昂的费用,这无疑增加了整个系统的开发成本;而RTAI是开源程序,其大多数应用都是在实验室环境中对其进行修改后所实现的一些实验性质的应用,由于工厂环境复杂多变,电磁干扰等外界干扰信号较强,因此其可靠性与稳定性还需要经过大量的测试及实际工业应用才能验证。

机器人控制系统开放化的发展必然要求控制软件更加开放,软件功能更加强大,因而如何构建和实现功能强大的高层控制软件是研究的重点和难点。目前已发表的文献[7-8]多数是在 Windows NT和Linux下对数控机床的控制软件进行研究,少有文献研究Windows CE下的机器人控制软件开发以及Windows CE与PMAC的通信驱动程序的设计。

为了提高机器人控制系统的开放性,降低开发成本,提高系统稳定性与可靠性,本文对机器人系统的硬件结构和软件架构进行了设计,根据四自由度工业机器人特点,对控制软件进行了编程实现,并在Windows CE下设计了运动控制卡的通讯驱动程序;为了测试所开发系统对机器人的控制性能,本文还对机器人电机进行了位置阶跃响应实验和速度抛物线响应实验。

1 控制系统架构

机器人控制系统从功能上主要分为人机控制、运动控制、逻辑控制、位置控制、伺服驱动等模块。图1为机器人控制系统整体架构。

图1 机器人控制系统整体架构

人机控制通过人机交互界面实现,包括各种控制命令的接收和发送,机器人系统各种状态的监视及故障诊断。

运动控制是指使机器人根据给定的指令产生指定位移的运动。它主要是协调机器人各个关节的运动,为位置控制提供精确的位移指令。它主要的处理流程是对机器人控制代码进行译码、预处理等数据处理,然后进行粗插补计算,为后续的细插补和位置控制单元提供初始位移控制值。由于人机控制和运动控制对实时性要求不是很高,所以在Windows CE 下通过.net编程[9]就可以实现。

逻辑控制主要是完成机器人系统I/O点的控制以及其他一些辅助装置的控制。机器人控制器的I/O点主要负责采集系统中一些传感器的信号,根据采集的信息执行不同的逻辑操作。辅助装置主要负责机械臂的过载保护、行程限位及机器人回零等。逻辑控制对实时性要求较高,主要由PLC来完成。本系统采用Delta Tau公司的PMAC运动控制卡自带的PLC功能模块来实现。

位置控制主要是通过周期性的插补计算来完成电机的控制,对实时性要求较高,由PMAC运动控制卡来实现。位置控制中的误差补偿和伺服信息采集均可以通过运动控制卡来实现。

伺服驱动是机器人的执行机构,它准确地执行机器人控制系统发出的命令,是连接控制系统与机器人的枢纽。

2 控制系统硬件

机器人控制系统上位机采用PC104作为主处理器,与运动控制卡通过EtherNet协议实现通信,可以根据需求通过扩展多个PMAC运动控制器实现更多轴的控制,进而实现多机器人作业系统,也可以通过任意增减硬件模块来实现机器人系统组态。利用PC104强大的运算处理能力,运行控制软件或组态软件,来实现机器人示教、运动程序编辑及机器人系统各种状态的监视等功能。

Delta Tau公司的PMAC运动控制卡,其具有多轴同步、轨迹插补、可自定义伺服算法等功能,是一款相对开放的运动控制卡。本系统采用摩托罗拉DSP56321作为CPU,是因其具有强大的信息处理能力;选用的Turbo PMAC Clipper结合了4轴全功能运动控制(脉冲加方向、模拟量和全数字PWM输出于一体),最多可以扩展至32轴,能够支持较多生产厂商的伺服驱动器,而且PMAC自身提供了许多插补方式,如线性模式(Linear)、圆弧模式(Circle)、三次样条(Spline)模式和PVT模式等,通过机器人正、逆运动学求解,PMAC可以将运动控制中生成的粗插补数据进一步进行细插补,从而控制伺服驱动装置。

3 控制系统软件

为了提高机器人控制系统的通用性及开放程度,上位机的操作系统应该选择较为方便、易用的操作系统,如 Window NT、Windows CE、Linux等。考虑到本文设计的机器人控制系统对实时性要求较高的部分由PMAC来实现,上位机只负责完成一些对实时性要求不是太高的任务,因而上位机选用具有良好用户基础的嵌入式操作系统Windows CE。

3.1 软件架构

如图2所示,控制系统上位机软件分为3层:第一层为人机界面层(GUI),主要用于人机交互,如机器人控制指令的发送、机器人系统各种状态的监视、G代码程序的编辑等。第二层为任务规划层(TASK),主要有两个功能,一是轮询GUI层命令,根据不同的命令进行相应的操作,如机器人电机使能、运动急停、机器人运行模式切换等;在自动(Auto)模式和半自动(MDI)模式下的运动指令需要将其解释为规范的运动控制命令,所以需要调用G代码解释器;其他大部分命令都可以直接传递给接口层,通过接口层发送给PMAC,由PMAC来完成相应的任务。二是从接口层接收机器人的运行信息,并解析成上层可以识别的数据在人机界面中进行显示。第三层为接口层,用于连接PMAC与上位机软件进行数据交互。任务规划层将控制指令或命令队列以NML(neutral message language)消息[10]的形式发送给接口层,接口层将信息提取出来,通过调用PMAC的以太网协议命令集[11]将数据发送给PMAC。

图2 控制系统上位机软件结构

3.2 人机界面层(GUI)

人机界面是开放式控制系统的核心组成部分之一,是系统与操作人员之间信息交互的窗口,它为操作人员提供了便于操作的图形界面。人机界面直接影响着机器人的工作效率和运行效果,友好的人机界面是取得最好控制效果的保证。根据本文所研究的四自由度机器人特点,人机界面功能模块所包含的子模块如图3所示。

图3 人机界面功能模块

1)登录模块:进行用户信息的验证,实现控制系统的权限化操作。

2)用户管理模块:对用户的基本信息进行管理,用于用户的新增及删除操作。

3)参数管理模块:主要用于对机器人参数(如机器人的各轴长、轴对应电机的传动比等)、电机运行参数(如各电机的速度、加速时间、极限位置等)、机器人系统输入输出参数进行管理。

4)程序管理模块:用于程序及文件的新建、删除、修改、查找等操作。

5)状态监视模块:用于监视上位机控制系统当前与PMAC的连接状态,机器人电机的使能状态,输入、输出量的状态(如气爪的开合状态)。

6)坐标系管理模块:用于实现机器人工具坐标系标定、工件坐标系标定以及对机器人位置点进行示教记录等。

7)用户工艺模块:用于选择当前要执行的任务,如机器人码垛、机器人喷涂等。

人机界面层与任务规划层通过NML通信机制进行信息交互。根据机器人系统自身的通信需要,将系统所有消息定义为3种消息类:状态消息类(Robot_Stat)、错误信息消息类(Robot_Err)以及命令消息类(Robot_Comd)。状态消息类主要包括机器人系统的输入、输出状态以及当前的运行状态(如启动状态、停止状态等);错误信息消息类主要包括机器人系统的报警信息;命令消息类主要包括手动模式下的JOG命令以及对控制系统输出口的操作命令(如气爪开合等命令)。将机器人控制系统的所有信息全部封装在Robot_Meg类中,3种消息类通过继承Robot_Meg类来实现消息的分类管理。

利用Windows CE良好的人机交互单元开发平台,同时借助.net类库以及C#与C++语言良好的面向对象的设计特点,对人机界面窗体及其控件进行设计。图4为人机界面层中的部分界面(用户工艺界面)。

图4 GUI层——用户工艺界面

3.3 任务规划层

任务规划层有4个模块,分别是主控模块、机器人指令处理模块、G代码处理模块和粗插补模块。任务规划层是控制系统的大脑,在整个控制系统启动时需要将机器人系统的各个状态进行初始化设置,并且要获取机器人系统的初始状态。在与GUI层进行数据交互时,要根据机器人当前状态以及用户的具体命令来完成运动任务的调度。

当任务规划层的主控模块从GUI层获得命令后,先根据机器人的运行模式将获取到的命令进行分类。在手动(manual)运行模式下,指令会直接发送给接口层,由接口层再发送给PMAC;在Auto模式和MDI模式下,运动指令会通过调用G代码处理模块,进行词法检错、语法检错和语义检错[12],正确无误的G运动指令再由粗插补模块进行粗插补处理,最后存储在命令队列中,以NML消息为基本格式发送给接口层。

在AUTO模式和MDI模式下,当一条命令执行完以后,由任务规划层的调度函数从命令队列中获取下一条命令,并将控制器当前的执行状态置为命令预处理状态,等待电机、I/O等就绪以后,再将该命令发送到下一层,并将控制器当前的执行状态置为命令后处理状态。如此不断循环进行运动任务的调度。

主控模块运行在Windows CE的一个线程中,其启动和停止通过线程的启动和挂起来实现。命令队列中的任务RobotTask和任务执行是否完成标志TaskCompleted_Flag存储在全局信息表中,每一个任务开始前,TaskCompleted_Flag初始化设置为false,任务结束后设置为true,当任务队列为空或者TaskCompleted_Flag为false时,停止下一任务调度,进入轮询等待。部分代码如下:

3.4 接口层

上位机PC104与PMAC之间用网线连接,采用以太网通信方式,基于TCP/IP协议来设计通信程序。由于PMAC没有提供Windows CE下相关的驱动程序以及接口函数,所以控制软件接口层与PMAC通过套接字(socket)来实现。机器人控制系统通信的两个进程之间使用客户机/服务器模式,PMAC为服务器,上位机PC104为客户机,上位机向PMAC发出请求,PMAC接受到请求后提供相应的服务。上位机与PMAC采用阻塞模式进行异步连接[13]。上位机程序首先通过事件委托与PMAC进行连接,连接成功后释放阻塞的异步连接线程,并将连接线程阻塞标志进行标识,如果连接失败则再次进行连接,其连接流程如图5所示。

图5 上位机与PMAC连接流程

上位机与PMAC控制器之间传输的数据主要有两大类:周期性数据和非周期性数据。周期性数据采用UDP协议来收发,非周期数据采用TCP协议来收发。周期性数据主要有:电机脉冲数、工作模式、运行状态、伺服状态、当前运行程序的程序行等。非周期性数据主要有3部分:第一部分为系统启动时需从PMAC同步的数据,有PMAC寄存器信息、I/O信息;第二部分为上位机发送给PMAC的命令,有参数设置命令、输入输出控制命令、寄存器信息的更新命令、伺服状态修改命令、程序运行的相关命令等;第三部分为文件传送中用到的命令,如运动程序、PLC程序的下载等命令。

同样,数据收发采用阻塞模式与异步通信方式,上位机程序首先将数据收发的套接字设置为阻塞模式,然后开始异步发送线程,当数据发送成功以后,将收发线程阻塞标志中的数据发送标志进行标识,同时开始异步接受线程,当异步接受完成以后再将数据接受标志进行标识,并且释放收发线程阻塞,其流程如图6所示。

图6 数据收发流程

上位机发送的所有命令数据包都以以下结构形式通过socket发送:

4 应用实例

为了能够测试本文所设计的控制系统对机器人的控制性能,首先通过多次调试,对机器人各个电机的比例增益KP、微分增益KD、积分增益KI、速度前馈Kvff、加速度前馈Kaff、摩擦前馈Kfff等参数进行整定,并利用Turbo PMAC Clipper卡对电机的相关参数进行了采集。图7为机器人1号电机即x轴电机的位置阶跃响应曲线,表1为实验中的相关数据,其中KP,KD,KI为通过整定已设置好的参数,Mp为测得的最大超调量,Ts为测得的调节时间。从图7与表1可以看出,进给电机的刚性、超调量、静态误差以及振荡情况都较好,满足控制要求。图8为1号电机的速度抛物线响应曲线,通过系统抛物线响应过程中的速度跟随误差可以判断系统动态性能的优劣[14]。表2为实验中相关数据,其中Kvff,Kaff,Kfff为通过整定已设置好的参数,Mferr为测得的最大跟随误差。同样,从图8与表2可以看出,进给电机的命令速度与实际速度完全重合,最大跟随误差只有1.104 2cts,所以动态跟随性能较好。

图7 阶跃响应实验曲线

表1 阶跃响应实验参数

图8 抛物线响应实验曲线

表2 抛物线响应实验参数

该控制系统已被用作四轴直线导轨机器人的控制系统。系统硬件主要包括:1台四自由度直线导轨机器人,机器人末端执行器可以实现x,y,z方向的直线移动及z轴末端旋转;用于装配螺钉的末端执行器(图9(a));机器人的正负限位开关及外部控制按钮。

利用机器人示教器对机器人进行示教,根据实验板尺寸及板上螺纹孔的间距完成工件坐标系的标定,设置好螺纹孔的行数和列数以及装配过程中机器人的运行速度后进行机器人装配螺钉实验。图9(b)为机器人在移动速度为600mm/s、z轴下降速度为10mm/s下的装配效果。实验结果证明本文设计开发的开放式四自由度机器人控制系统性能达到了实际应用的要求。

图9 四轴机器人装配螺钉实验

5 结束语

本文通过分析机器人控制系统特点,对系统整体架构进行了设计。为了提高控制系统开放性,系统硬件采用PC104+PMAC运动控制卡的结构,其中PMAC用来完成实时任务,非实时任务由运行在上位机PC104上的控制软件来完成。本文选用具有良好用户基础的Windows CE操作系统,利用C#、C++语言设计开发了上位机控制软件。基于TCP/IP协议,采用套接字技术完成了对上位机与控制器的通讯驱动程序的设计。为了测试控制系统对工业机器人的控制性能,分别进行了位置阶跃响应实验及速度抛物线响应实验,通过实验得出进给电机的刚性、超调量、静态误差以及振荡情况满足设计要求,而且测试电机的最大跟随误差只有1.104 2cts,其动态跟随性能也能够满足控制要求。

[1] DELTA TAU.Turbo PMACuser manual[DB/OL].(2008 -09-16)[2015-05-10].http://www.deltatau.com/Manuals/Default.aspx

[2] 王世寰,王永章,付云忠.开放式软CNC发展趋势及其体系结构的研究[J].机床与液压,2004(2):7-9.

[3] 陈友东,陈五一,王田苗.基于组件的开放结构数控系统[J].机械工程学报,2006,42(6):188-192.

[4] RTAI Team.RTAI 3.4 user manual rev 0.3[DB/OL].(2006 -10 -04)[2015 -05 -10].https://www.rtai.org/?Documentation_Reference_Documents&search=user%2Cmanual.

[5] Erwinski K,Paprocki M,Grzesiak L M,et al.Application of ethernet powerlink for communication in a Linux RTAIopen CNC system[J].Industrial Electronics IEEE Transactions on,2013,60(2):628-636.

[6] 郭锐.基于Linux的微细电火花加工数控系统及其相关关键技术的研究[D].哈尔滨:哈尔滨工业大学,2007.

[7] Zhu Guangwei,Qian Xiaoyao,Zhu Jiang.Based on PMAC card gasket machine tool design and research[C]//Intelligent Computation Technology and Automation(ICICTA),May ,11 -12,2010,Changsha,China.Piscataway,N.J.:IEEE,2010:867 -870.

[8] 梁速,赵万生,康小明.基于Linux的五轴联动电火花加工数控系统[J].上海交通大学学报,2012(7):1097-1102.

[9] (美)Phung S.Windows CE 6.0嵌入式高级编程[M].张冬松,陈国芳,译.北京:清华大学出版社,2009.

[10]Shackleford W P.The NML C++programmer's guide[DB/OL].(2014 -07 -18)[2015 -05 -10].http://www.nist.gov/el/isd/cs/nmljava.cfm

[11] DELTA TAU.Software reference for turbo family[DB/OL].(2014-02 -24)[2015 -05 -10].http://www.deltatau.com/Manuals/Default.aspx

[12]王心光.虚拟数控加工通用G代码编译器的研究[D].杭州:浙江大学,2005.

[13]W.Richard Stevens,Bill Fenner,Andrew M.Rudoff.UNIX Network Programming.Volume 1,The Sockets Networking API[M].Peking:Post& Telecom Press,2009.

[14]高玉山,吴玉厚,张珂,等.基于PMAC下的直线电机PID控制性能研究[J].机电工程技术,2004,33(9):48-50.

猜你喜欢
人机界面命令上位
只听主人的命令
特斯拉 风云之老阿姨上位
移防命令下达后
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
CBTC系统车载人机界面的设计与实现
基于PLC与人机界面的经编机电子横移控制系统研究
这是人民的命令
以新思路促推现代农业上位
CTCS-3级列控车载人机界面的系统设计与实现