APP下载

一种工业机器人三层软件架构的设计与实现

2016-10-25陆伟

电气自动化 2016年2期
关键词:开放式分层工业

陆伟

(安徽安利材料科技股份有限公司,工程环保部 安徽 合肥 230601)



一种工业机器人三层软件架构的设计与实现

陆伟

(安徽安利材料科技股份有限公司,工程环保部 安徽合肥230601)

提出了一种新的适用于少自由度的工业机器人的软件架构参考模型,该模型采用软件分层理论,将机器人软件系统合理的分为三层,这种架构避免了传统的自上而下的软件结构方式的信息冗余和逻辑复杂等问题,并具有很好的软件扩展性和适用性。最后,在VisualC++6.0编程环境中实现了该架构模型,并验证了其在4轴工业搬运机器人中的应用。

三层软件架构模型;工业机器人;工业应用;软件设计;MFC实现

0 引 言

随着工业化步伐的加快,机器人越来越多地被应用到工业生产中以取代人的工作[1]。而对于工业机器人来说,软件的作用是毋庸置疑的,面对多变复杂的工业环境,在机器人本体结构修改有限的情况下,对软件系统提出了更高的要求,一个合理优化的软件架构对软件可靠性是至关重要的,这不仅仅能够提高工业生产的安全性同时也能提高机器人的生产效率和机器人的适用性。在传统的基于至上而下的软件设计理论中,它所能适用的工业机器人结构比较单一,通用性往往受到限制[2],而软件分层的思想在机器人领域已经提出,E. Freund和J. Rolmann等提出了软件分层的概念,并验证了这种软件架构在智能机器人领域的应用[3];由于机器人的控制系统一般都是封闭性,在复杂的工业环境中,而机械本体结构适应情况有限,这就对软件的可修改性提出了更高的要求,要求我们采用开放式系统理论来搭建工业机器人的软件架构[4-5]。目前机器人的开放式理念和分层架构也是机器人控制系统软件的研究热点之一,Klas Nilsson, Rolf Johansson等从用户的使用角度,提出了一种软件分层的编程思想,并在机器人编程和控制中应用, Andr’e Schneider de Oliveira等阐述了在机器人任务交互时采用了五层开放式软件架构[6]。Dilip Kumar Limbu等人根据系统的感知,控制,识别,和设备进行分层来搭建软件架构[7]。张广立、谈世哲等在Windows NT加RTX实时操作系统的情况下,在三个层次上对机器人系统软件划分模块[8]。 然而将软件分层的概念应用到工业机器人领域的文献还未见报导,本文则提出了采用三层开放式软件架构模型来搭建工业机器人的整体软件系统,并在四自由度工业搬运机器人控制系统中验证了该架构模型可以有效的避免机器人的数据处理过程中的信息冗余和逻辑复杂等问题,提高机器人的效率。

1 三层开放式软件架构模型

1.1概述

在工业机器人领域中,控制系统主要分成示教,运动控制和状态监测三个部分,示教也就是相当于工业机器人的可视化人机接口,而运动控制则主要完成机器人的运动学计算和轨迹生成,而状态检测部分则主要是实时监测硬件系统的状态信号。市场上一些做的比较成熟地机器人,如KUKA,OTC,ABB等,都采用上述的控制模式。而在软件方面大多数都才用至上而下的控制模式,在应用方面,由于机器人运动学控制过程中,运动学和轨迹规划要经过大量的数学运算来实现,采用这种至上而下的结构,示教、决策和底层信号监测采用一个模式,必定会导致机器人在运行中有大量的时间浪费在数据运算方面,而且容易导致机器人在运动过程中逻辑出错[9],这样很大程度降低了机器人的运行效率,一些学者虽然研究了一些优化的运动控制算法[10-12],但是很少有从软件结构方面考虑这个问题。

1.2三层开放式软件架构

三层开放式软件架构模型,首先是三层的思想;主要是应用面向对象的思想,将软件进行合理的封装成为相对独立的各个层,层与层之间采用标准化的通信方式进行数据交互。从工业机器人的硬件构成模块来看,主要是分三个部分:示教,数据管理和机器人本体;根据硬件的模块构成,我们将软件也分为三层:顶层会话层,中间决策层和底层物理层,分别对应硬件三个至上而下的模块,各个部分独立工作而又相互协作。其次,作为一个开放式结构,软件的系统必须有开放的接口,使得用户可以根据自己的需要定制自己的功能,同时能够保证稳定性。软件的开放性主要体现在系统软件的可移植性、便于升级和软件复用、交互性和分布性、效率和健壮性等方面[13],本软件系统采用开放式体系主要是体现在系统的功能复用,便于升级,交互以及健壮性方面。

三层软件架构主要是将控制系统软件所完成的各个任务进行分层,分为会话层、决策层和物理层。会话层主要是用来实现工业机器人和用户之间的信息交互,该层应具有友好的人机界面,方便进行人机交互;中间层是作为机器人核心层,主要是实现信息融合,数据处理以及指令决策等功能;该层具有开放式的用户接口,通过这些软件接口用户可以方便的进行软件扩展和二次开发;物理层是和硬件相关的,用作监测机器人状态,该层提供和硬件相关的动态链接库,通过调用这些库函数能够很好的访问硬件资源。图1是软件架构模型的结构框图。

图1 三层软件架构

从上面的架构图可以看出,软件的分层可以有效的降低各个模块中之间的耦合性,每个层独立运算,同时存在信息交互,保证机器人各个部分协调运行。

2 软件架构模型测试

2.1测试系统

本架构实验测试设备使用的是工业现场的搬运机器人,会话层用一个示教器,作为人机接口,示教器的硬件部分采用的是带有触摸屏的嵌入式PC机,软件部分是自主开发的软件界面,负责完成与用户的任务交互;其决策层使用一台工业PC机,由于工业PC机的性能稳定,功能强大等特点保证了决策层稳定性;物理层主要采用一台四自由度工业搬运机器人和一些外围器件来构成,图2所示的即机器人系统的整体结构。

图2 机器人系统整体结构

由图2可知,工业机器人的系统硬件模型主要是分三个层,能够很好的和本文提出的三层软件架构吻合,这种软件架构对系统的总体资源进行整合,有序的分层,使得机器人系统的各个部分既能独立运行,也能相互协调,在不失效率的情况下增强软件系统的集成性,有效提高系统软件的稳定性和可靠性。

2.2基于Visual C++6.0软件架构模型实现

整个架构的软件实现采用的是面向对象的思想对各种接口函数进行封装,基于MFC对话框的模板制作电机控制的可视化界面。接口函数的封装主要包括CVisualLayer类,CStratagyLayer类,以及CPhysicalLayer类等三个类的封装。为了增强软件的开放性,各个层之间的通信采用字符指令模式,使得后续的软件扩展简单易行,提高用户的可操作性。

首先,CVisualLayer类主要包括:

void CommandInput(…);

他曾仕途正顺,却辞官下海;他不懂包粽子,却成为中国的“粽子大王”,他带领五芳斋坚守品质之道,经历了半个世纪的变迁,铸就了家喻户晓的金字招牌;他启用现代化的管理方式促成五芳斋品牌规模持续壮大,也成为嘉兴的一张城市名片。

void Interface(….);

void CommandOutput(…);

等接口函数。Interface()用作函数接口扩展,CommandInput()和CommandOutput()用作指令的输入输出。

CStratagyLayer类中封装的函数和CvisualLayer类不同,作为系统的核心层,主要完成信息交换、数据处理和系统决策,如:正逆运动学计算、轨迹规划、动态生成机器人移动路线等,其主要封装的函数有:

void Communication(…);

void RobotKinmatic(…);

void RobotTraj(…);

void ImformationAcquire(…);

void SendMessage(…);

等等,通过socket侦听上下层发来的消息,在消息处理的过程中,支持中断优先级排队。采用抢占式调度方式,提高机器人控制的安全性。

CPhysicalLayer类主要是作为底层对象的封装,对机器人物理信号的监测,是软件和机器人的直接通信层。主要完成,数据采集,信号传递等功能。主要封装的函数有

图3 四自由度工业搬运机器人本体

voidDataAcquire(…);

void IoMannual(…);

等一系列对动态链接库的操作函数。图3所示为机器人本体,图4所示的为机器人动态示教操作界面。

图4 机器人示教操作界面

通过示教编程操作,使得机器人按照编程规定的路径进行运。从软件运行的状态显示栏,可以观察到电机的位置,速度,加速度(单位是counts/s)等状态,通过对状态的观察,可以得知电机的加速度连续和速度平稳。

2.3测试结果

搬运机器人码垛的产品是25 kg 每袋的改性聚丙烯。经过测试,四自由度工业搬运机器人可以稳定的运行,机器人搬运时间有效缩短,机器人插补运算平滑,能够稳定平稳的进行搬运操作,能够根据要求完成相应规格的码垛,并可以通过实际的二次编程对机器人的各个层之间的功能进行修改,定制用户自己需要的功能,具有一定的开放性。得到的结论如下:

(1) 四自由度工业搬运机器人能够平稳的搬运和稳定的运行,本软件架构模型在实际应用中能够达到预期的效果。

(2) 采用开放式软件结构,使得用户可以根据自己的需求定制相应的功能,很大程度上提高了用户的可操作性,提高了软件的适用性。

3 结束语

本文根据工业生产中实际存在的工业机器人运算效率、软件可靠性和实用性等问题,提出了一种适合工业搬运机器人的三层开放式软件架构,并通过四自由度工业搬运机器人的实际应用验证了本架构模型能够可靠运行,增强系统的适用性,提高系统的运行效率。

[1] 蔡军,王欣.浅析工业机器人的发展与现状[J].科技风,2013,26(21): 262.

[2] 胡国,栋许礼.进基于B&R控制系统的工业机器人开发.[J].科技资讯,2013,11(14): 205-226.

[3] FREUND E, ROL J.The development of reusable software systems for intelligent autonomous robots in industrial and space applications[J]. Intelligent Robots and Systems,1995,(2):321-326.

[4] 张广立,付莹,杨汝清,等.基于WindowsNT的开放式机器人实时控制系统[J].上海交通大学学报,2003, 37(5):724-728.

[5] 王天然,曲道奎.工业机器人控制系统的开放体系结构[J].机器人,2002,24(3):256-261.

[6] ANDR’E S O. A five-layer open-architecture robot controller applied to interaction tasks[C]. IEEE Robotic Symposium. Latin American,2008:184-189.

[7] DILIP K L, YEOW K T, RIDONG J, et al. A software architecture framework for service robots [C]. IEEE International Conference on Robotics and Biomimetic. Phuket: Thailand,2011: 1736-1741.

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

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

[10] TANG G, WANG Y .Theoretical and experimental research on time-optimal trajectory planning and control of industrial robots [J]. Control Theory & Applications,2003,20(2):185-192.

[11] TONG U B, BAZAZ S A. The three-cubic method: an optimal online robot joint trajectory generator under velocity, acceleration, and wandering constraints [J]. International Journal of Robotics Research, 1999, 18(9): 893-901.

[12] GALICKI M. The planning of robotic optimal motions in the presence of obstacles [J].International Journal of Robotics Research, 1998, 17(3): 248-259.

[13] JUAN A F, JAVIER G. The NEXUS open system for integrating robotic software[J]. Robotic and Computer Integrated Manufacturing,1999,(15):431-440.

Design and Implementation of a Three-layer Software Architecture for Industrial Robots

LU Wei

(Division of Engineering Environment Protection, Anhui ANLI Material Technology Co., Ltd., Hefei Anhui 230601, China)

This paper presents a novel software architecture reference model suitable for industrial robots with low mobility, which adopts software hierarchy theory to divide the robot software system reasonably into three layers. Such hierarchy avoids information redundancy and logic complexity of the traditional top-down software structure, and has superior software scalability and applicability. Finally, we implement this architecture model in the programming environment Visual C++ 6.0 and demonstrate its application in the 4-axis industrial transfer robot.

3-layer software architecture model, industrial robot, industrial application, software design, MFC implementation

10.3969/j.issn.1000-3886.2016.02.007

TP242.2; TP273+.5

A

1000-3886(2016)02-0018-02

陆伟(1969-),男,安徽人,电气工程师,专业:工业自动化。

定稿日期: 2015-10-22

猜你喜欢

开放式分层工业
开放式数字座舱软件平台IndiGO
有趣的分层现象
小学作文开放式教学的思考
雨林的分层
开放式计算机实验教学自主学习平台
工业人
开放式弹簧机数控系统开发
有趣的分层
掌握4大工业元素,一秒变工业风!
跨越式跳高递进与分层设计