基于自动编程技术的分层控制策略研究

2015-12-15 10:46陆伟赵雅琪褚云胜黄学务
电气自动化 2015年3期
关键词:控制卡编程技术码垛

陆伟,赵雅琪,褚云胜,黄学务

(安徽安利合成革有限公司,安徽 合肥 230601)

0 引言

由于社会发展的需要,对工业机器人使用的数量将会越来越多,这就促使工业机器人向经济实惠、高效、低损耗的方向发展,未来工业机器人学的重大挑战就是经济的可行性[1],而在工业机器人领域,由于机器人控制的复杂性,需要进行大量的数学运算以及在运动控制过程中需要与驱动系统进行实时的数据交换等原因,为了保证其稳定性,这就对工业机器人控制系统软件环境的操作系统提出了很高的要求。目前主流的工业机器人都是采用的专门定制的运动控制卡,加上实时操作系统,这样既保证了数据的实时传输同时又能保证运动控制的精确执行,大大提升了整个系统的稳定性,从而提升机器人的性能。如ABB机器人,采用的是VxWorks+.NetFrameWork高性能稳定的操作系统来保证其精确的轨迹规划和定位控制,KUKA机器人控制软件运行于WindowsXP+VxWorks平台,既可以提供良好的人机交互界面,又能提供精确的实时控制。Keba与ABB和库卡不同,它不是机器人生产商,他的产品是工业级伺服控制系统,能够实现多自由度机器人的控制,其控制系统中通过VxWorks平台或者Windows+RTX实时扩展平台保证软件运行环境的实时性,通过运动规划和运动控制单元可以实现对总线式伺服驱动器的控制,从而达到对机器人的精确控制。采用VxWorks实时操作系统来搭建机器人控制系统是一个很好的解决方案,然而,其代价也是昂贵的,由于实时操作系统的成本高,很大程度限制了国内工业机器人产业化发展。

采用通用的操作系统由于消息处理机制的缺陷,不能满足工业机器人在运行的过程中高稳定性和响应快速性的要求,控制系统的上下位机之间进行频繁地通信的实时必然不能满足运动控制的要求,从而降低了工业机器人的产业化的可能。一些学者从控制算法以及控制系统的结构做了很大的改进。J.S.Gu和C.W.de Silva[2]提出,工业机器人系统必须具备具有实时操作功能的在线控制和高级智能决策,并设计了一种实时的开放架构的工业机器人控制系统。张良安,梅江平等[3]采用Petri网络建立软件模块调用规则模型和控制逻辑模型,避免机器人在码垛过程中的逻辑错误,从而提升机器人的码垛效率,并通过实际的工业现场码垛验证了该方法的有效性。张广立、谈世哲等[4]介绍了一个在Windows NT平台上开发的工业机器人控制系统,该系统可在通用的工业计算机上运行,系统运行环境为Windows加RTX实时扩展,可保证良好的实时性;该系统硬件平台为标准的PC硬件平台,控制软件采用模块化设计具有良好的开放性和可扩展性。但是控制系统的软件算法并不能脱离对实时性的要求。张广立、付莹等[5]开发了可在Windows NT平台下运行的开放式工业机器人控制系统。该系统采用单处理器结构,可在通用的工业计算机和Windows NT加RTX实时扩展环境下运行,具有良好的实时性和友好的图形用户接口。虽然提供了解决控制系统的可扩展性,但是不能解决系统对实时性的要求。田茂胜,唐小琦等[6]以嵌入式工业PC为硬件平台,Linux搭载实时RT核的操作系统为软件平台,采用模块化的软件设计方法,设计了工业机器人开放式控制系统来实现信号交互。Hang Thu Tran等[7]提出了一种实时的PC平台的实时机器人学控制器,该控制器能够方便的被用户使用,并实现了对二自由度拾放(pick-and-place)机器人的控制,该控制器能够使用户方便的实现其合理复杂度的控制算法。这些工作从一定程度上能够解决工业机器人在实际应用过程中的操作系统问题,但是不能解决对实时操作系统的依赖性。由于采用实时操作系统来搭建机器人控制系统的代价是昂贵的,如Vx-Works是Wind River System公司的一款实时操作系统,其价格达到数十万元甚至几十万元[8]。所以提出一种脱离主机,减少机器人控制对操作系统依赖性的控制策略将会对工业机器人产业化进程产生积极的意义。而泛型编程(Generic Programming)理论的发展使得跨语言编程成为可能,它支持不同数据类型的快速编程[9],这是使得字符特征的提取成为可能,通过对语法规则的构建,利用提取的语句特征进行程序合成,实现跨语言自动编程。

本文提出的自动编程技术解决工业机器人控制系统软件系统对操作系统的依赖性的策略正是以这种以泛型编程理论为基础的自动编程技术。通过自动编程技术,示教系统可以动态加载运动控制程序至下位运动控制器,使得下位运动控制器来管理机器人运动控制,在机器人运动的过程中,主机可以和控制器进行动态的通信,从而实现运动控制系统既不受限于主机的运动数据,也能响应主机的基本控制指令,如停止,参数监测等。

1 分层控制系统(Layered Control System)

分层控制系统是指工业机器人控制系统采用分层控制的思想,分成决策层和物理层两个独立的系统,决策层完成运动学计算以及动力学模型估计,物理层作为运动的执行部分,负责执行决策层的决策结果[10]。采用分层控制可以降低系统功能模块之间的耦合性,提高控制系统稳定性和可修改性。该系统分层控制体现在采用自动编程技术的示教系统和带有可编程运动控制器的运动控制系统。

1.1 采用自动编程技术的示教系统

示教系统采用的是工业嵌入式PC加载Windows操作系统,和底层运动控制器采用Ethernet高速通信,

并且提供友好的示教界面。该部分主要实现两个功能,机器人末端位置坐标记录和自动生成运动控制程序。

1.1.1 机器人末端位置记录

机器人的末端位置记录是通过电机位置编码器反馈回来机器人各个轴当前角度来进行正运动学计算获得机器人末端位置的空间坐标和姿态,并以机器人语言的方式进行记录,产生标准化的机器人语言的运动程序。

末端位置记录是为了方便机器人示教重现的过程,根据示教记录的空间点坐标,运用正逆运动学进行轨迹规划和速度规划,产生各个轴转动的角度,进而驱动电机转动。

1.1.2 自动编程技术

自动编程技术主要是通过软件算法来实现对机器人语言的运动学程序自动翻译生成运动控制卡语言的运动程序,自动生成的程序严格的符合运动控制器的编程语法。在控制的过程中,我们不采用实时操作系统,基于windowsXP的示教系统必须具有动态加载运动程序的能力,才能保证机器人运动正确运行。自动编程技术是实现工业机器人示教过程重现的关键技术,采用自动编程技术,可以对机器人示教系统产生的点进行程序合成,动态下载至运动控制卡中,从而避免了传统工业机器人实时加载运动数据的过程,即机器人的运动控制由底层的运动控制器来管理,实现运动控制脱离主机而独立运行。图1所示为自动编程技术算法结构流程。从算法的结构图可以看出,核心部分是机器人语言程序语句处理部分,采用泛型编程理论和机器人语言语法规则,提取出相关参数进行存储并进行分类。具体做法是根据泛型变成理论,定义特征标志结构体和容器变量,将语句解析过程中所获的特征标志赋值给特征结构体变量,将结构体存入容器变量。

图1 基于泛型编程理论的自动编程技术框图

其语句合成部分则按照运动控制卡语法进行合成,通过前面提取的运动学参数,包括坐标,插补方式,端口号和端口操作类型,根据事先定制好的运动控制卡运动学语法规则,对获得的参数进行语句合成,生成可执行文件,直接加载到运动控制卡中,使得机器人脱离主机,在只有运动控制卡参与控制的情况下进行示教重现运动。

1.2 运动控制系统

运动控制系统采用的是运动控制卡搭载伺服系统来构建,由于运动控制卡是一个独立的运动控制器,它在工作的过程中不需要主机的参与,同时能实时的与主机进行通信,接收和响应主机的命令,从而在运动的同时,能够执行主机的命令操作。该部分的运动控制卡采用支持加载运动程序的卡,即能通过上位机动态加载运动控制程序。

2 测试平台(Testing Platform)

测试平台是采用上述设计的机器人控制系统搭建工业现场使用的码垛机器人控制系统,根据实际生产的需要,编写了机器人示教器软件界面。在使用运动控制卡之前,先要将我们实现设计好的运动控制算法写入卡里,包括正逆运动学求解,并且使得运动控制卡工作在独立的坐标系模式下。

PMAC(Programmable Multi-Axis Controller)是美国 Delta Tau Data System公司推出的PC机平台上的运动控制器,是一个完全开放的系统。采用PMAC运动控制卡搭建机器人运动控制系统具有一定的优势,能够实现运动程序的自动加载与运行,通过VC++开发环境中MFC基础类开发可视化人机界面,并且根据运动控制卡提供接口函数对功能函数的封装。

图2所示的是采用PMAC运动控制卡搭建机器人控制系统的硬件结构图,整个系统分三层,即会话层,决策层和物理层,通过分层将运动控制系统进行模块化设计,回话层主要是指示教系统,采用嵌入式PC搭载工业触摸屏,构成嵌入式示教系统,决策层主要是指PMAC运动控制器,负责信息采集和命令决策,物理层采用安川伺服系统构建运动控制执行部分。

图2 PMAC运动控制系统结构

由PMAC运动控制卡和电机伺服驱动搭建的运动控制系统既能独立的运行,也能实时的和主机进行通信,并支持多线程操作,保证了机器人在独立运行的同时,能够实时的对主机的命令进行响应。根据合成的运动控制程序,PMAC管理运动学参数,包括正逆解,以及路径规划。由于PMAC运动控制器和主机之间的通信方式采用Ethernet高速通信模式,从而更加保证了整个系统的可靠性。

示教操作是上位示教系统的核心,采用逐点输入模式加载运动控制数据,支持多坐标系切换。在手动运行情况下,移动机器人末端,通过记录按钮,记录当前机器人末端坐标。通过示教器界面的编译按钮,可以对示教生成的程序进行编译生成PMAC运动控制语言。并生成control.pmc文件。图3所示的自动编程技术翻译的程序过程。

图3 自动编程技术程序解析

由于在初始化的过程中,将运动控制算法下载到卡里,这就使得机器人在运动控制时,按照自动编译成的运控制程序进行运行,不需要进行上位进行实时数据交换,使得运动控制部分脱离主机,将机器人放置工业现场,对其进行码垛测试,根据机构设计和控制系统分析的结果,采用NDI三维动态位移测量系统,标定机器人重复定位精度,并测试机器人D-H参数,进行机器人定位精度校核,根据生产搬运实际作业要求,示教产生实际的运动路径,进行机器人实际搬运作业性能试验,以获得样机性能测试数据。

经过码垛测试,从机器人码垛的负重,工作半径,工作节拍以及重复定位精度来与国内外工业机器人进行比较。表1所示的是该机器人与国内外先进机器人性能之间的比较,通过比较可得,在性能上与国外的机器人(ABB,OTC)达到同等水平,重复精度达到±0.3 mm,工作节拍能力相当,搬运速度较快。

表1 机器人实验数据对比

3 结束语

采用自动编程技术工业机器人示教系统可以自动进行跨语言平台进行自动编程,有效的实现运动控制程序的动态加载与执行,从而减少底层运动控制器和主机之间进行数据交换。降低控制系统对操作系统实时性的要求,从而降低工业机器人生产成本。

采用分层控制思想,将工业机器人的示教系统和运动控制进行分层设计,降低示教系统和底层运动控制之间的耦合,增强系统软件的可修改性和可扩展性,同时提高系统的稳定性。

[1]TORGNY B,Present and future robot control development—An industrial perspective[J].Annual Reviews in Control,2007(31)31:69-79.

[2]GU J S,SILVA C W,Development and implementation of a real-time open-architecture control system for industrial robot systems[J].Engineering Applications of Artificial Intelligence,2004,17:469-483.

[3]张良安,梅江平,黄田.基于 Petri网络的码垛机器人生产线控制软件设计方法[J].天津大学学报,2011,44(1):23-28.

[4]张广立,谈世哲,杨汝清.基于WindowsNT的开放式机器人控制系统[J].机器人,2002,24(5):443-446.

[5]张广立,付莹,杨汝清,等.基于Windows NT的开放式机器人实时控制系统[J].机器人,2003(5):724-728.

[6]田茂胜,唐小琦,孟国军,等.基于嵌入式PC的工业机器人开放式控制系统交互控制的实现[J].计算机应用,2010,11(30):3087-3090.

[7]HANG T T,AMIR KHAJEPOUR,KAAN ERKORKMAZ.Development and analysis of a PC-based object-oriented real-time robotics controller[C]//[CD]Proceedings of the 2005 IEEE Conference on Control Applications.Toronto,Canada,CCA.2005:1379-1384.

[8]SHAO B B,Open resources of RTOS for embedded systems[OL]//Conference of Nuclear Electronics&Detection2002-12-02/2002-12-04.http://wenku.baidu.com/view/2c25a1f49e31433239689352.html.

[9]奥斯腾.泛型编程和 STL(侯捷译)[M].北京:中国电力出版社,2003.

[10]FANG J,ZHAO J H,HE F,et al,Design and research of three-layers open architecture model for industrial robot software system,proceedings of 2013 IEEE International conference on mechatronics and automation,104-109[C],Takamatsu,IEEE:2013.

猜你喜欢
控制卡编程技术码垛
兼容多种运动控制卡的V割机数控系统关键技术*
可控机构式码垛机器人的运动学误差分析
移动式码垛机器人移动臂的优化设计
复杂零件的数控加工工艺及编程技术分析
GSK工业机器人码垛程序编写技巧
三轴机械手控制器设计
基于运动控制卡的桁架机器人控制系统设计
基于计算机软件工程的数据库编程技术
C语言编程技术的分析研究
基于云控制的运动控制卡硬件设计与实现*