• 沒有找到結果。

焊接机器人离线编程系统接口设计与开发

N/A
N/A
Protected

Academic year: 2022

Share "焊接机器人离线编程系统接口设计与开发"

Copied!
73
0
0

加載中.... (立即查看全文)

全文

(1)

硕士学位论文

焊接机器人离线编程系统接口设计与开发 姓名:杲绍风

申请学位级别:硕士 专业:材料加工工程 指导教师:唐新华

20070122

(2)

焊接机器人离线编程系统接口设计与开发 摘 要

工业机器人的发展经历了示教再现和离线编程两个阶段。近年 来,以离线编程为基础的机器人柔性自动化系统的开发,代表了机器 人系统二次开发的方向。本文在前人研究成果的基础上,结合汽车工 业中与机器人相关的实际应用研究项目,针对本实验室早期开发的基 于 PC 的机器人三维可视化离线编程与仿真系统 WinROBWeld 进行了 二次开发的。

WinROBWeld 系统在开发之初是针对 ABB 公司的 IRB2000 机器 人的,它使用的是 S3 控制系统和 ARLA 编程语言,而目前实验室使 用的是 ABB 公司的 IRB140 机器人,它采用的是 S4Cplus 控制系统和 RAPID 编程语言,因此系统存在重新建模、程序转换以及与机器人 通讯等方面的匹配问题,使该系统一直没有在实验室目前的 IRB140 机器人上得到应用。由于实际生产中的项目研究需要,必须使该系统 能够实现对 IRB140 机器人的离线编程,针对上述情况,本文在研究 S4Cplus 机器人控制系统和 RAPID 编程语言的基础上,对 WinROBWeld 离线编程系统进行了重新开发,并重新建立了以下三个功能模块:工 件 3D 建模、通信模块及程序转换模块。

工件的 3D 建模分两步实现,首先在其他 CAD 软件中将工件以 VRML 格式导出,其次再把工件从 VRML 格式转换到系统所支持工 件格式。这是因为 VRML 格式是目前多数 CAD 软件均支持的输出格式 之一,且其代码及相关协议均公开。本文在重点分析和研究 VRML2.0 结构与语法的基础上,通过重新设计转换算法,设计开发了新的工件 3D 模型文件转换工具,并加入了转换工具对定位参数输入功能的支 持。

通讯模块用来实现系统与机器人的通信。采用两种通讯技术,一

种是传统计算机与机器人之间的通信技术,另一种是基于 C/S 模型的

计算机与机器人之间的网络通信技术。前者主要用来实现系统的文件

管理及机器人简单控制,比如程序的上传与下载,启停机器人程序的

(3)

执行等。后者可省去程序转换过程,提高编程效率,方便对程序运行 的实时控制。本文采用基于 C/S 模型与 ABB WebWare SDK,编制了 网络通信接口函数,解决了基于串行线路接口协议的通信功能薄弱与 不完整、实时性差等问题,并可以通过机器人控制器控制激光器、 TIG 及 MIG 等加工设备。

程序转换模块用来完成系统程序对特定类型机器人语言的程序 转换,本文在分析与研究 RAPID 语言结构及语法规则的基础上,重 新开发了系统的程序转换模块,扩充与完善了该模块的功能,使其能 同时支持 ARLA 和 RAPID 语言。

最后,结合汽车工业的某研究项目,针对某汽车后车盖的空间 3D 模型进行了系统离线编程与仿真试验,实现了从工件 3D 建模,离线 编程、程序仿真、程序转换、程序下载运行到在线监视等整个过程。

关键字

离线编程;接口开发;工件 3D 建模;网络通信;C/S 模型;

程序转换

(4)

THE DESIGN AND DEVELOPMENT OF INTERFACE OF WELDING

ROBOT OFF-LINE PROGRAM SYSTEM

ABSTRACT

The development of industrial robot has gone through two steps, which are Teaching and Playing and off-line programming. Recently the development of robot flexible automotive system based on off-line programming delegates the secondary development direction of robot system. This research which is based the former research result, combined with the practical robot implement development projects in the auto industry, aims at the secondary development of robot off-line programming and simulation system—WinROBWeld. Which is based on PC, developed in the our lab.

At the beginning of WinROBWeld development, it aimed at the IRB2000 robot of ABB, which used the S3 serial control system and ARLA programming language.

But now the robot used in our lab are IRB 140, which uses the S4Cplus control system and RAPID programming language. So there are some problems about the modeling and program conversion interface, and the communication interface hasn’t been set up, as a result, the system hasn’t been really applied in lab. In the need of project research development in practical production, the system should be used to off-line program and be connected with the IRB 140 robot. According to the above situation, the WinROBWeld was be developed again based on the analysis of S4Cplus robot system and RAPID. And the main work focuses the following three facets’

development: workpiece 3D modeling, communication model and program conversion model development

Workpiece 3D modeling was realized in two steps. Firstly the workpiece is exported in VRML format by other CAD system, and then converted to wpc format by the converse on tool. So the main task of workpiece modeling is the development of this conversion tool. This is because the VRML is supported by most CAD system, which protocol and code is public. In the thesis, based on the analysis of the grammar and structure of VRML 2.0, the conversion algorithm was designed again.

The conversion tool was designed and developed, which also supports the position function by editing the position parameter.

Communication model is used to realize the communication between system and actual robot. And this model was realized by two communication technique. The one

(5)

based on C/S model. The former is used for system file management and simple robot control, such as program file download and upload, program run and stop. The latter is used for real-time controlling robot, and leave out the program conversion process, therefore improving programming efficiency. The communication interface was developed based on C/S model and ABB WebWare SDK, solve the shortcomings of serial communication, such as function weakness and non integrity, and low real-time property, and meanwhile control the process machines (laser/TIG/MIG) by robot controller.

Program conversion model is used to convert the system program data to robot program. The grammar and structure of RAPID was analyzed to extend and perfect this model. Now it supports two robot languages (ARLA and RAPID) conversion.

In the end, combination with the lab’s projects, a car’s back cover was used to do off-line programming and simulation test. The workpiece modeling, off-line programming, program simulation, program conversion, program download and upload, program running and real-time monitoring was realized by WinROBWeld system.

KEY WORDS off-line program; interface development;

Workpiece modeling; network communication; C/S model

program conversion

(6)

图 2-1 WRAPS 系统结构框图 ...7

图 2-2 WinROBWeld 系统结构...8

图 2-3 传感器系统示意图...10

图 2-4 WinROBWeld 系统开发环境...12

图 2-5 Device Configuration Utility 界面...13

图 2-6 添加新机器人别名...13

图 2-7 Profile Editor 界面 ...14

图 2-8 InterLink Monitor 界面...14

图 2-9 虚拟机器人浏览...15

图 3-1 WinROBWeld 系统机器人程序下载运行界面...18

图 3-2 WinROBWeld 系统文件管理界面...18

图 3-3 C/S 的三层结构...19

图 3-4 C/S 的 INTERNET 的三层结构 ...20

图 3-5 基于 C/S 模型机器人与计算机通信示意图 ...21

图 3-6 远程过程调用...21

图 3-7 WinROBWeld 系统与机器人通信原理...22

图 3-8 系统程序间通信图...22

图 3-9 机器人 RAPID 主程序流程图 ...23

图 3-10 通信模块的层次结构...25

图 3-11 走直线函数 Line 的程序流程图 ...27

图 4-1 工件 3D 建模流程...28

图 4-2 读取函数的调用结构...33

图 4-3 程序转换流程图...34

图 4-4 RAPID 语言程序的基本结构 ...35

图 4-5 简单 RAPID 程序文件结构 ...36

图 4-6 程序转换模块功能示意图 ...38

图 4-7 程序转换主体函数的工作流程 ...38

图 4-8 程序转换界面显示的转换结果 ...39

图 5-1 WinROBWeld 系统主界面...40

图 5-2 WinROBWeld 编程界面之路径编辑...41

图 5-3 WinROBWeld 编程界面之程序编辑...42

图 5-4 停顿点和非停顿点附近运动示意图 ...44

图 5-5 工件格式转换程序界面 ...47

图 5-6 WinROBWeld 的系统配置界面...48

图 5-7 试验中工件定位...49

图 5-8 WinROBWeld 程序数据...50

图 5-9 WinROBWeld 编程界面之程序仿真...50

图 5-10 程序仿真结果...51

图 5-11 使用 Virtual Controller 虚拟运行程序...51

图 5-12 WinROBWeld 系统程序转换界面...52

图 5-13 记事本打开或编辑转换后程序...53

图 5-14 程序下载运行界面...54

(7)

Fig. 2-1 The structure of WRAPS ...7

Fig. 2-2 The structure of WinROBWeld system ...8

Fig. 2-3 The sketch map of sensor system ...10

Fig. 2-4 Development environment of WinROBWeld system...12

Fig. 2-5The interface of Device Configuration Utility...13

Fig. 2-6 Add S4 Robot Alias ...13

Fig. 2-7 The interface of Profile Editor...14

Fig. 2-8 The interface of Interlink Monitor...14

Fig. 2-9 Virtual Robot Browser...15

Fig. 3-1 The interface of downloading and running program of WinROBWeld system...18

Fig. 3-2 The file management interface of WinROBWeld system...18

Fig. 3-3 Three-layer structure of C/S model ...19

Fig. 3-4 Three-layer structure C/S model of internet ...20

Fig. 3-5 The sketch gap of connection between robot and computer based C/S mode...21

Fig. 3-6 Remote procedure call...21

Fig. 3-7 The connection principle between WinROBWeld system and robot...22

Fig. 3-8 Communication between system’s programs ...22

Fig. 3-9 The flow chart of the server robot RAPID program...23

Fig. 3-10 The hiberarchy of connection model ...25

Fig. 3-11 The flow chart of the fuction for Line path...27

Fig. 4-1 The 3D modeling flow of workpiece...28

Fig. 4-2 The transfer frame of reading fuction...33

Fig. 4-3 The flow chart of program conversion ...34

Fig. 4-4 The basic structure of RAPID ...35

Fig. 4-5 The structure of simple RAPID program...36

Fig. 4-6 The sketch map of program conversion module’s function...38

Fig. 4-7 The work flow of the main function of program conversion...38

Fig. 4-8 The conversion result in program conversion interface...39

Fig. 5-1 The main interface of WinROBWeld system...40

Fig. 5-2 The programming interface of WinROBWeld system---Path edit...41

Fig. 5-3 The programming interface of WinROBWeld system---Program edit ...42

Fig. 5-4 The movement sketch chart for stop and non stop positon...44

Fig. 5-5 The interface for workpiece format conversion...47

Fig. 5-6 The system configuration interface of WinROBWeld ...48

Fig. 5-7 The position and orientation of workpiece in test...49

Fig. 5-8 The program data of WinROBWeld ...50

Fig. 5-9 The programming interface of WinROBWeld system---Program simulation ...50

Fig. 5-10 The simulation result ...51

Fig. 5-11 running program using Virtual Controller ...51

Fig. 5-12 The program conversion interface of WinROBWeld system...52

Fig. 5-13 The converted program opened or edited in notepad...53

Fig. 5-14 The interface of downloading and running program ...54

Fig. 5-15 The contrast between practical and simulation result...55

(8)

表 1-1 示教编程与离线编程比较 ...1

表 3-1 WinROBWeld 系统指令类型及其编码...24

表 3-2 RAPID 变量类型及与之相应的 OLE 对象类型 ...25

表 4-1 VRML 节点类型表 ...30

表 5-1 机器人系统预设的减速区域参数 ...45

Table. 1-1 The contrast between On-line programming and Off-line programming...1

Table. 3-1 The instruction type and its code of WinROBWeld system ...24

Table. 3-2 The RAPID variable type and its corresponding type in...25

Table. 4-1 The node type table of VRML ...30

Table. 5-1 The predefined deceleration zone parameter of robot system...45

(9)

学位论文原刨性声明

;ntx”*一芝釉i涂

日M:j柙’阵-LPP-E日

黧篡 椰挑树~

篡黧 篙篡№

谢眦麒似娜

篡=㈣

=篓m

螂㈣骺姗鳃

;纂裟

(10)

学位论文版权使用授权书

奉学位论文作者完全r解学校有关保留、使用学位论文的规定,

目嚣{校保留并向目家有关部门或机构☆交论文∞复印件■№f版.

允许论文被查阅和借阅。本人授权上海交通大学可以将本学位论文的 全部或部分自喜编^有*数据库进行&索.日H采月影口、缩目或扫

描等复%4手段保存和舡编木学&论文。

保密口,在一年解密月适月本授权书,

率学位论立属}

不保密日。

(请在咀±方框内打“√”)

{Ⅱ*女**§嘞f如 指导教师£g/j{}i:寿孪务

8”:冲2”咖 8Ⅻ娴4}月析

(11)

第 1章 绪论

1.1 离线编程概述

机器人在现代工业制造过程中的应用日趋广泛,它的使用效率和经济性在很 大程度上决定于它的编程方法。在进行工业机器人的作业规划时,有二种方法可 以采用:在线示教(Teaching- Playing)和离线编程(off-line programming)。早期 的机器人主要应用于大批量生产,如在自动生产线上点焊,工作任务简单而且不 变化,采用手工示教的方式就可以完成机器人的工作规划。随着机器人应用到小 中批量生产,所完成任务复杂程度的增加,以及产品寿命周期缩短、生产任务更 迭加快,用手工示教的方式就很难满足要求。解决此问题的有效途径之一,就是 采用离线编程,把机器人从在线编程中解放出来,从而提高其使用效率和生产过 程的自动化水平,降低成本。

机器人离线编程系统,是利用计算机图形学的成果,建立起机器人及其工作 环境的模型,利用机器人语言及相关算法,通过对图形的控制和操作在离线的情 况下进行轨迹规划。机器人离线编程系统已被证明是一个有力的工具,用以增加 安全性,减少机器人不工作时间和降低成本等。表1-1 为示教编程与离线编程 两种方法的比较[1]

示教编程 离线编程

需要实际机器人系统与工作环境 需要机器人系统与工作环境的图形模型 编程时机器人停止工作 编程不影响机器人工作

在实际系统中试验程序 通过仿真试验程序

编程的质量取决于编程者的经验 用规划技术可以进行最佳路径规划 很难实现复杂的机器人轨迹路径 可实现复杂运动轨迹的编程

Table. 1-1 The contrast between On-line programming and Off-line programming 表 1-1 示教编程与离线编程比较

与手工示教相比,离线编程系统具有如下的优点:

1) 减少机器人不工作的时间,当对下一个任务进行编程时,机器人可仍在 生产线上工作。提高利用率与生产效率。

2) 使编程者远离危险的编程环境。

3) 使用范围广,离线编程系统可以对各种机器人进行编程。

4) 优化机器人工作区域布置与任务规划,可使用机器人编程语言对复杂任 务进行编程。

5) 便于修改机器人程序,调用以前编写的机器人程序。

方便集成传感器信号、环境信息(CIMS,CAD\CAM system)到程序中。

6) 可以通过图形仿真试验程序。

(12)

1.2 离线编程分类

根据编程人员定义工具运动的控制级别,可将离线编程分为四个级别:关节

级、执行级、对象级和任务级[2]

1) 关节级 (Joint level):为完成所要求的运动,在关节坐标空间里,分别 对机器人的各个关节进行编程。由于给定的工作任务大多是在直角坐标空间中描 述,因此关节级编程很不直观。即使完成简单的作业,也要做运动综合才能实现,

整个编程过程很不方便且效率低。

2) 操作手级(Manipulator level):对于给定的工作任务,在直角坐标空间 里进行编程,根据操作手末端执行器的位姿,采用数学方法计算各个关节的运动 量。关节级和操作手级的编程是以机器人的运动为描述中心,通常由使机器人末 端执行器从一个位置运动到另一个位置的一系列命令组成,所以也称为动作级编 程。

3) 对象级 (Object level):该级别比操作手级更进一步,它不需知道操作手 末端执行器位姿的具体信息(末端执行器的直角坐标值),只要得到确定操作手 末端执行器位姿的上级信息(比如一条焊缝的信息),系统自动计算末端执行器 的直角坐标值,根据末端执行器的直角坐标值完成预定的工作任务。这意味着存 在一个机器人单元的世界模型,从中抽取确定操作手位姿所需的信息,并用于运 动控制。

4) 任务级 (Task level):这是当前机器人编程的最高级别。任务级编程时,

编程者只给机器人直接下达执行某一确定任务的命令(如焊接第三条焊缝),应 用人工智能的技术使机器人自动完成指定任务,而不需要指定机器人每一个动作 的细节。这不仅要求包含机器人工作环境的世界模型数据,而且需要应用过程的 知识和智能算法。

很多商业化的离线编程系统的控制级别达到了操作手级,一些达到了对象 级。任务级还处在研究阶段。另有一种分类方法[3],根据程序创建的方式,可分 为两类:基于文本的编程和基于图形的编程[4,5] 。前者的早期研究如 ROWEL 语言

[6], 是最初的离线编程技术,是基于文本编程语言的运用,用符号来描述机器人 的动作。这种方法可提高编程效率,接受传感器信息,协调多台机器人工作,可 以引入逻辑判断、决策和规划功能。具有机器人语言编程能力的机器人通常仍然 保留示教盒功能。目前的机器人语言都是动作级和对象级语言,编程工作是相当 冗长繁重的。而且这种编程方法缺少可视性,只在很少的场合下是有效的。

基于图形的编程实际上就是CAD/CAM的方式[7]。离线编程在图形环境下进 行,用户在计算机屏幕上对工件、焊枪、机器人等进行几何造型,利用规划算法,

通过对图形的控制和操作,在离线的情况下进行机器人运动的轨迹规划,离线生 成机器人程序,再通过图形仿真模拟整个施焊过程,进行程序校验和碰撞干涉校

(13)

机器人语言,经转换成特定的机器人控制语言后,可下载到机器人上运行[8,9]这 样的系统,不仅可以在生产过程中对不同的工件进行编程,而且对科研项目立项 论证,机器人焊接工作站设计,选购机器人及相应的辅助设备,进行工作站的合 理布置也是十分重要的工具。本文中介绍的焊接机器人离线编成系统

WinROBWeld属于这种类型,通过交互式编程与图形仿真,离线生成特定格式的 程序,然后通过程序转换模块,可以转换为不同类型的机器人程序。

1.3 国内外离线编程的研究状况

机器人离线编程与仿真系统是机器人应用与研究不可缺少的工具。它促进了 机器人的应用与柔性制造系统(FMS)发展。国外在这方面研究较早,自20世纪 80年代以来,美国、英国、法国、德国、日本及以色列等许多大学实验室、研究 所、制造公司对机器人离线编程与仿真系统做了大量的研究,并取得了大量成果,

其中有些软件已经商品化。

美国Tecnomatix公司1986年推出的ROBCAD机器人CAD及仿真系统[10]短短几 年内,ROBCAD已在实际工业系统中得到了广泛地应用,成为世界上流行最广的机 器人仿真系统之一。美国另一个著名得机器人离线编程与仿真软件包是IGRIP[11], 它是美国Deneb Robotics公司推出的交互式机器人图形编程与仿真软件包,主要 用于机器人工作单元布置、仿真及离线编程。IGRIP可在SGI、HP、SUN等工作站 上运行。

以色列Campucraft公司开发了机器人仿真软件RobotWorks[12]。RobotWorks是 一种CNC类型的专供工业机器人离线编程用的编程平台。它的服务目标是中小公 司,RobotWorks更加强大而灵活,特别是当机器人的型号、规格需要改动时更加 快捷。它能在一个交互式的环境中创建机器人的运动路径、部件、夹具和工具。

它能在几秒钟内生成路径所需的曲面和曲线特性,并生成一个可进行交互编辑的 动画[13].

国内的华中理工大学首先用微机开发了机器人离线编程系统,又在此基础上 研制了机器人离线编程系统 HOLPS[14]。该系统包括机器人语言处理模块、运动 学规划模块、机器人运动学仿真模块、通信模块和主模块。HOLPS 系统在微机 上对PUMA562 机器人进行编程,使其走出了多种空间曲线。并成功地应用于汽 车车身的喷漆生产线。

清华大学研制的仿真系统可对PUMA560 及类似结构的机器人进行运动学、

动力学轨迹规划,并在此基础上开发了 ROBSM 系统[15]。它可使用SVAL 语言作为 输入,增加了三维图形输出和碰撞检查以及传感器仿真、典型动作和典型任务仿 真。

浙江大学研制的智能装配机器人离线编程系统ARPS[16],用操作手级的机器 人语言ARL 描述机器人作业,通过图形仿真调试机器人程序,目标程序和数据

(14)

通过串行口送至机器人控制器,并已成功应用于 863 智能精密装配机器人。

南京理工大学[17]开发了 HOLPS 离线编程系统。该系统采用模块化设计,具有 几何建模、运动学建模、图形示教、简单的轨迹规划、数据通讯等模块整个系统 采用菜单式驱动。

机器人离线编程和仿真技术己受到各国的广泛关注,并且己取得了大量的 研究和应用成果。但是国外在这方面研究要更深入一些,并且己到实用化阶段。

国内在研究方面也作出了大量的成果,但是还存在不少差距。

上海交通大学焊接所[18]提出了一种基于 PC 的交互式三维可视化离线编程和 动态仿真系统WinROBWeld。利用目前流行的 PC 机和 Windows 操作系统所支持 的OpenGL 三维图形功能,在系统中实现了焊接机器人及其工件的三维几何建模 和机器人运动学建模,并研究了机器人运动轨迹的自动规划和编程以及它的图形 化三维动态仿真。采用交互式三维“虚拟示教”方式实现了机器人单道焊焊接路 径的规划和编程,对多层多道焊,则通过采用“宏”技术实现机器人焊接运动轨 迹的自动规划和编程,通过图形化三维动态仿真实现了对机器人程序及运动轨迹 的可靠性和安全性验证。离线编制的程序在向机器人控制系统传送的过程中实现 了向机器人语言的自动转换,从而使机器人离线编程的实用性得到大大提高。本 文研究内容就是针对这个系统进行二次开发而展开的。

1.4 离线编程的发展方向

近年来,国内许多大、中型企业都装配了自动化加工设备和计算机辅助设备 与系统。同时,CAD/CAM技术已趋于成熟,其便捷、高效的建模手段及集成技术,

能够成为工业机器人编程中的有力工具。这些设备和系统为工业机器人的离线编 程技术研究和推广提供了基本的硬件和软件条件。然而,机器人系统作为一个相 对独立的单元,限制了CAD/CAM 平台的应用范围的进一步扩大。图形交互式工业 机器人离线编程系统能够实现编程系统和机器人系统的集成,具有广阔的应用前 景[19,20].

现代工业机器人趋向于由改变过去的“部件发展方式”,向“系统发展方式”

发展。传统的局限于机器人单机控制的编程方式,将无法适应这种系统化的要求。

因此面向机器人作业单元的系统化任务编程、仿真和监控,使机器人融入整个生 产设备的统一工作框架,将成为工业机器人任务语言和编程方式的主要发展方 向。作为工业机器人一个重要组成部分的机器人离线编程系统也必将向这一方向 发展:发展出面向任务的机器人作业描述语言、发展出融合了多传感器的机器人 建模方法、发展出一套完整的机器人建模误差标定方法、发展出面向系统的多机 器人协调工作原则、进一步发展机器人基础理论。

(15)

机器人离线编程技术的研究方向主要集中在以高度智能化的方式让机器人 完成作业任务。机器人仿真系统正朝着通用化、完整化、交互式计算机图形化、

智能化和商业化的方向发展。

1.5 本文的研究内容

随着工业机器人在生产领域中的广泛推广和应用,为提高机器人的编程效 率,降低机器人编程的劳动强度,提高编程的安全性和准确性,同时也为了提高 机器人在生产线上的工作利用率,离线编程系统的开发和应用将得到愈来愈多的 关注。在汽车制造领域,目前我们在与上海某汽车公司的合作项目中,其内容之 一就是要实现焊接机器人的离线编程,这是鉴于目前汽车车型更新换代的加快,

实际生产中对机器人在线编程工作量加大,为提高机器人的生产效率而提出的现 实要求;在造船领域,我们又有一个与上海某船厂的合作项目,其主要内容也是 采用离线编程实现对船用型钢划线切割的机器人系统的编程,在该离线编程系统 中,可以把多种规格的型钢钢种和多种形状的切割图形通过建立型钢库和切割图 形特征库的方式存储于系统数据库中,然后通过系统调用与离线编程的方法直接 生成机器人切割程序,大大提高编程效率。

根据生产上上述项目的研究内容及其对离线编程的需求,研究与开发一套 简单易用、符合实际需求的离线编程系统并将其推广应用意义重大。鉴于此,本 文将首先对实验室早期开发的基于 PC 的三维可视化焊接机器人离线编程系统 WinROBWeld 进行进一步的研究和分析,分析它的组成模块及存在的不足之处,

并根据目前实验室所采用的 IRB140 焊接机器人对离线编程的具体要求,确定系 统改进的方向和基本内容,然后再进行具体的功能模块的设计和编程、调试工作,

最后通过机器人运动轨迹的动态仿真和实际试验,验证系统通过离线编程所产生 的机器人程序能够切实在 IRB140 焊接机器人上得到运行。以此作为本人毕业设 计和论文的主要研究工作。

根据分析,发现实验室原有的离线编程系统是针对老款的 IRB2000 机器人 的,该机器人采用的是早期的 S3 控制系统,而机器人编程语言为 ARLA,编程系 统与机器人之间的通讯只能通过唯一的串口进行,速度慢、可靠性差;而目前实 验室拥有的 IRB140 机器人,采用的是 S4CPlus 控制系统,机器人编程语言则为 RAPID,且该控制系统可通过其两个网络端口中的任意一个与上位 PC 机进行通 讯。因此,要实现原有的离线编程系统对 IRB140 机器人的离线编程,首先必须 解决系统与该机器人的接口匹配问题,其中主要包括通讯接口和程序转换接口的 匹配,同时也有机器人本身的三维几何模块和运动学参数的匹配问题;另外,鉴 于该系统在早期开发时由于当初对三维几何模型的表示和描述方法没有统一的 标准,采用了其自身特有的三维文件格式来对工件和机器人本身的三维模型进行 表示和描述,而如今,各种 CAD 三维设计软件对三维物体进行描述和存储的文件

(16)

格式多种多样,但都与本系统的文件格式不兼容,为此,还必须为本系统设计开 发一套转换工具,实现对现有的 CAD 三维设计软件文件格式的支持,使任何一种 CAD 软件设计输出的工件三维模型均能通过转换载入本离线编程系统中,构造机 器人三维工作环境和对象。

综上所述,本文的研究工作主要在于对 WinROBWeld 的改进和进一步开发,

使其适应新的机器人控制系统和机器人编程语言,以及新的工件三维模型构造方 式。具体说来,包括以下三方面的内容:

首先是工件的 3D 建模,由于目前大多数的 CAD 三维设计软件基本上都支持 VRML 文件格式的输出,为了简化工件 3D 模型的格式转换模块的设计与开发,提 高其效率和兼容性,本文采用两步实现这一功能:首先在其他CAD 软件中将工 件以VRML 格式导出,其次再采用自己开发的转换工具实现工件从 VRML 格式 到系统所支持工件格式的转换。这样,系统这一功能模块的开发就简化为两种文 件格式之间的转换,从而加强了系统的三维建模功能。

其次是通讯模块,计算机与机器人之间的通讯主要有两种技术,即传统计算 机与机器人之间的通信技术和基于 C/S 模型的计算机与机器人之间的网络通信 技术。前者主要用来实现系统的文件管理及机器人简单控制,比如程序上传与下 载,起停机器人程序的执行等;后者可以省去程序转换这个过程,提高编程效率,

方便对程序运行的实时控制。本文将采用基于C/S 模型与 ABB WebWare SDK,

编制网络通信接口函数,解决基于串行线路接口协议的通信功能薄弱与不完整、

实时性差等问题,并可以通过机器人控制器控制激光器、TIG 及 MIG 等加工设 备。

然后是程序转换模块,用来完成系统程序对特定类型机器人语言的程序转 换,本文将通过研究分析RAPID 语言结构及语法规则,重新开发系统的程序转 换模块,扩充与完善系统的程序转换模块,使其能同时支持ARLA 及 RAPID 语 言。同时作为一种设计思路,本文所采用的方法也可以用于扩充转换模块对其他 机器人语言的转换支持。

最后,本文将结合汽车工业的某研究项目,针对上海某汽车公司的某车型的 后车盖的空间3D 模型进行系统离线编程与仿真试验,从而实现从工件 3D 建模,

离线编程、程序仿真、程序转换、程序下载运行到在线监视等整个过程。

(17)

第 2章 WinROBWeld 系统结构及接口设计

本章首先研究分析典型离线编程系统的基本构架,重点分析 WinROBWeld 系统及其组成模块,并分析它的不足之处,进而确定毕业设计的主要工作。最后 对系统接口设计与开发的软硬件环境及有关内容作相关描述。

2.1 一般离线编程系统的基本框架

在 1987 年的自动化及机器人焊接国际会议上,对离线编程的发展进行了总 结[21]。其中最有代表性的工作是WRAPS 系统[22],虽然该系统设计开发比较早,

但它具备了离线编程系统的基本框架。WRAPS 系统总体框图如图 2-1 所示。

Geometric Data

Weld Database

Computer

Computer Graphics Workstation

Robot Program

Teach Mode

Robot Controller

Simulation&

Programming

Expert System

Product Evalution Inerface Sensing

Devices

Fig. 2-1 The structure of WRAPS 图 2-1 WRAPS 系统结构框图

设计离线编程系统应考虑以下几个方面:

1)机器人的工作过程知识;

2) 机器人和工作环境三维实体模型;

3)机器人几何学、运动学和动力学知识;

4) 基于 1), 2), 3)的软件系统,该系统是基于图形显示的,可进行机器人 的图形仿真;

5) 轨迹规划和检查算法,如检查机器人关节角超限,检测碰撞,规划机器 人在工作空间的运动轨迹等;

6) 传感器的接口和仿真,以利用传感器的信息进行决策和规划;

7) 通信功能,进行离线编程系统所生成的运动代码到各种机器人控制柜的 通信;

8) 用户接口,提供有效的人机界面,便于人工干涉和进行系统的操作;

9)机器人及其单元标定。

(18)

2.2 WinRobWeld 系统及其结构

WinROBWeld 系统是可运行在普通 PC Windows 操作系统下的三维可视化离 线编程和仿真系统,是在微软Windows 操作系统下利用 Visual C++ 6.0 平台开发 的,它的三维图形与硬件接口采用国际工业标准OpenGL。同时充分考虑到操作 人员的技术特点,采用了图标化交互式离线编程以及宏编程,大大降低了编程的 繁琐,提高了编程效率。WinROBWeld 系统是利用计算机图形学的成果,建立 起机器人及其工作环境的几何模型,再利用机器人的运动学原理和一些规划算 法,通过图形学的控制和操作,在离线的情况下进行轨迹规划和编程。通过对编 程结果进行三维图形动画仿真,以检验编程的正确性,最后将生成的代码传到机 器人控制柜,以控制机器人运动,完成给定任务。

WinROBWeld 系统不仅要在计算机上建立起机器人系统的几何模型和运动 学模型,而且要对其进行运动轨迹的规划、编程和动画仿真,以及对编程结果进 行后置处理。它包括以下一些主要模块:机器人系统及工件的 CAD 建模、离线编 程、图形仿真、人机界面、传感器以及后置处理等。如图 2-2 所示 。

Fig. 2-2 The structure of WinROBWeld system 图 2-2 WinROBWeld 系统结构

2.3 WinROBWeld 系统接口功能与设计

结合一般机器人离线编程系统[23]的组成,对 WinROBWeld 的结构与功能进行 分析,进而确定需要新建或完善的接口。

1) CAD 建模

CAD 建模是系统的基础,为机器人和工件的编程和仿真提供了可视的立体 图像。它需要完成以下任务:⑴零件建模;⑵设备建模;⑶系统设计和布置;⑷

(19)

几何模型图形处理[24]。通常有三种建模方式:内置建模、从模型库导入、以及从 其它应用程序文件转换[25]。WinROBWeld 系统对不同对象采用了不同的建模方式。

目前大多数的 CAD 三维设计软件基本上都支持 VRML 文件格式的输出,为了 简化工件 3D 建模的设计与开发,提高其效率和兼容性,系统的工件 3D 建模,将 通过格式转换的方式实现。取用其它CAD 软件创建的三维模型,并存于工件库 以备调用;具体是指从其他的 CAD 系统中将工件模型以 VRML 格式导出,然后通 过格式转换工具实现工件格式的转换。因此本文涉及的工件 3D 建模研究与开发 的主要任务就是工具转换的工具的设计与开发。采用两步实现这一功能:首先在 其他CAD 软件中将工件以 VRML 格式导出,其次再采用自己开发的转换工具实 现工件从 VRML 格式到系统所支持工件格式的转换。这样,系统这一功能模块 的开发就简化为两种文件格式之间的转换,从而加强了系统的三维建模功能。

机器人 3D 建模,则通过CAD 创建或从其它图形格式转换的方式构造,除了 构造机器人三维几何模型,根据机器人的 DH 参数构造它的运动学模型,使机器 人模型按实际机器人的运动规律移动,并正确反映机器人的实际位置坐标。模型 存于机器人库,需要时可由系统装入;另外仿真过程中动态产生的焊缝成形三维 模型,则通过系统本身内置功能创建。

2) 图形仿真

计算机图形仿真是机器人离线编程系统的重要组成部分,它将机器人仿真的 结果以图形的形式显示出来,直观地显示出机器人的运动状况,从而可以得到从 数据曲线或数据本身难以分析出来的许多重要信息,离线编程的效果正是通过这 个模块来验证的。离线编程系统的一个重要作用是离线调试程序,而离线调试最 直观有效的方法是在不接触实际机器人及其工作环境的情况下,利用图形仿真技 术模拟机器人的作业过程,提供一个与机器人进行交互作用的虚拟环境。

WinROBWeld 系统在示教过程中,只要鼠标点击虚拟工件模型上的某一点,

虚拟机器人的焊枪端部(即TCP)便随即自动到达该位置,如果该点的位置已超出 机器人的可达空间,系统会自动发出警告信息,并停止继续往该位置移动。机器 人在某一位置的手臂姿态可通过改变姿态参数(abc)调整,使焊枪的位置和角度 与焊缝走向及工件形状相配合,同样机器人的姿态也受各运动轴移动范围的限 制。虚拟机器人的当前位置及姿态参数可作为特征点储存起来,编程时这些特征 点便可组成机器人的运动轨迹。

一般情况下,用户在离线编程模块中为作业单元编制任务程序,经编译连接 后生成仿真文件。在仿真模块中,系统解释控制执行仿真文件的代码,对任务规 划和路径规划的结果进行三维图形动画仿真,模拟整个作业的完成情况,检查发 生碰撞的可能性及机器人的运动轨迹是否合理,为离线编程结果的可行性提供参 考。

3) 编程

(20)

在机器人技术发展初期,较多采用特定的机器人语言进行编程。一般的机器 人语言采用了计算机高级程序语言中的程序控制结构,并根据机器人编程的特 点,通过设计专用的机器人控制语句及外部信号交互语句来控制机器人的运动,

从而增强了机器人作业描述的灵活性。

但是,不同类型的机器人语言不具有通用性。即便是同一个制造商生产的机 器人,不同时期所开发的控制系统所采用的机器人编程语言甚至也不具有兼容 性。所以,如果用机器人语言直接来编程,不仅对编程人员有很高的专业要求,

而且编出来的机器人程序可移植性差,不能满足不同类型的机器人的共享。

WinROBWeld 系统为了解决上面的问题,采用图标化离线编程。用户所设 计的机器人运动路径方案是以一种与机器人无关的语言存储的,并且用某种形象 化的易于理解的图标配以一定的文字说明来表示。这个图标可以是一条单一指 令,也可以是一组指令或完成某个复杂任务的宏指令。这些图标指令可以在交互 式离线编程时从现成的指令库列表或宏指令列表中通过拖曳的方式直接插入程 序,某些必要的参数则通过对话框的提示进行更改或缺省输入,不需要记忆复杂 的编程指令及其语法规则。

最后把生成机器人程序通过相应的编译模块翻译成为机器人专用语言。因此 即使相同的程序应用在不同的机器人上,只要在机器人的工作范围之内,程序都 可以不做修改直接运行。

面向任务的机器人编程是高度智能化的机器人编程技术的理想目标[26]。实际 生产中,机器人的一系列动作可以按任务分解成若干个单元,如:从工具架上取 焊枪然后到达某一指定位置、焊接某一段焊缝、若干次焊接后清理一次焊枪喷嘴,

等等,每个任务单元中包含许多动作过程,每次执行一个任务单元,就重复其中 所包含的所有动作。因此在编程时往往把它作为子程序处理,子程序一般用来处 理重复性较强且包含动作较多的机器人任务单元,或者即使动作不多,但是使用 率 较 高 , 而 且 其 中 所 包 含 的 运 动 轨 迹 并 不 完 全 相 同 。 针 对 这 种 情 况 , 在 WinROBWeld 系统中,可以把它定义成一个“宏”存放于宏指令库中。编程时 可直接调用这些“宏”,并将轨迹匹配后插入程序中,而无需反复的重新编写,

大大提高了离线编程的效率。

4) 传感器

传感器适用于感知某种信息的器件。传感过程[27]可用图 2-3 表示。

Fig. 2-3 The sketch map of sensor system 图 2-3 传感器系统示意图

(21)

传感器本质上是一种能将具有某种物理表现形式的信息变换成可处理信息的输 入换能器。通过传感器获得信息,并将这种信息变换成与处理器兼容的形式。经 过处理后,信息又将变换成适合输出到外界的形式。机器人控制涉及的几何量、

物理量等多方面的参数,为了测量每一个参数而采用的传感器又涉及多种原理,

所以传感器种类繁多。机器人传感器又可分为两大类:用于测量、控制机器人自 身状态的内传感器;为进行某种操作而安装在机械手或移动机器人上的外传感 器。

近年来,随着机器人技术的发展,传感器在机器人作业中起着越来越重要的 作用,对传感器的仿真已成为机器人离线编程系统中必不可少的一部分,并且也 是离线编程能够实用化的关键[29]。利用传感器的信息能够减少仿真模型与实际模 型之间的误差,增加系统操作和程序的可靠性,提高编程效率。对于有传感器驱 动的机器人系统,由于传感器产生的信号会受到多方面因素的干扰(如光线条件、

物理反射率、物体几何形状以及运动过程的不平衡性等),使得基于传感器的运 动不可预测。传感器技术的应用使机器人系统的智能性大大提高,机器人作业任 务已离不开传感器的引导。WinROBWeld 中也有相应的传感器模块,目前尚未 与实验室的传感器连接,鉴于时间关系留作系统进一步开发。

5) 程序转换模块

程序转换模块也成为后置处理,它的主要任务是把离线编程的源程序编译为 机器人控制系统能够识别的目标程序。即当作业程序的仿真结果完全达到作业的 要求后,将该作业程序转换成目标机器人的控制程序和数据,并通过通信接口下 载到目标机器人控制系统,驱动机器人去完成指定的任务。由于机器人控制系统 及其通讯接口协议的多样性,要设计通用的通信模块比较困难,因此一般采用后 置处理将离线编程的最终结果翻译成目标机器人控制系统可以接受的代码形式,

然后实现加工文件的上传及下载。机器人离线编程系统中,仿真所需数据与机器 人控制系统中的数据是有些不同的。所以离线编程系统中生成的数据有两套:一 套供仿真用;一套供控制系统使用,这些都是由后置处理进行操作的。

本文在程序转换模块的研究与开发工作将集中在由离线编程的源程序对 RAPID 的编译(转换)。首先将分析 RAPID 语言结构及语法,结合系统源程序 的存储特点,设计出数据结构及转换算法,以扩充与完善系统的程序转换模块,

使其同时支持对ARLA 及 RAPID 语言的翻译。

6)通讯模块

通讯模块主要用来实现系统与机器人的通信。WinROBWeld 系统原有通讯 模块只支持与机器人之间串口通讯,速度慢、可靠性差;本文将使用网络接口,

采用两种通讯技术,分别是传统计算机与机器人之间的通信技术和基于 C/S 模型 计算机与机器人之间的网络通信技术,重新建立系统通讯模块。前者主要用来实 现系统的文件管理及机器人简单控制,比如程序的上传与下载。后者可以省去程 序转换这个过程,提高编程效率。采用基于C/S 模型的计算机与机器人通信技术,

(22)

本文将分析以机器人控制器为服务器,外部计算机为客户机组建机器人控制网络 运行原理、结构及其主要功能;分析设计在机器人系统上远行的 RAPID 主程序的 主要数据结构及算法;从通讯数据流处理及通讯结构层次两个角度,分析与设计 客户端。

2.4 WinROBWeld 开发环境

Controller:S4Plus Manipulator: ABB 140 PC

Internet

Hub Firewall

Industrial PC

Other PC

Fig. 2-4 Development environment of WinROBWeld system 图 2-4 WinROBWeld 系统开发环境

开发环境由软硬件组成,如图 2-4 所示,硬件包括:普通计算机、工控机、

ABB 140 机器人(控制器S4Plus 和操作机)、局域网及辅助的加工平台与设备等。

软件包括:Visual C++、RAPID、WebWare SDK、VRML 浏览器(cortvrml)

等。以下将分析RAPID 、WebWare 及 VRML 各自的特点及作用。

2.4.1 RAPID 特点

RAPID 是 ABB 公司开发的新一代机器人编程语言,适用于 ABB 公司使用 S4Cplus 控制系统多种型号的机器人:IRB140、IRB6400、IRB2400 等等[29]。RAPID 语言具有计算机高级语言的特征,属于结构化的机器人语言,多模块和多子程序 的结构,适用于编写可读性强的复杂机器人程序。该语言包含丰富的数据类型、

系统函数和指令,可以满足机器人控制系统对机器人及其他设备的多种操作。

(23)

2.4.2 WebWare SDK

WebWare SDK 是一套 ABB 公司提供的功能强大的工具集,它简化了 PC 应 用程序与机器人控制器通讯,使开发者从底层通讯协议中解脱出来,从而可以专 注于用户界面及功能设计。WebWare SDK 提供了 Device Configuration、InterLink Monitor、IO Simulator、Virtual Controller、Virtual Robot Browser 及 WebWare SDK Helper 等工具。

1) WebWare SDK 配置

使用WebWare SDK 前,需要先进行配置。WinROBWeld 系统调用机器人时,

使用的是WebWare SDK 提供的虚拟机器人(Virtual Robot)。

Fig. 2-5The interface of Device Configuration Utility 图 2-5 Device Configuration Utility 界面

Fig. 2-6 Add S4 Robot Alias 图 2-6 添加新机器人别名

在开发与使用系统前,需要先为实际机器人在 WebWare SDK 的 Vice Configuration Utility 工具中配置机器人别名(Alias)。其界面如图 2-5 所示。

点击 以添加S4 系列 ABB 机器人。如图 2-6 所示,在 Define the Alias Name 栏中为机器人起个别名,比如S4,WeldRobot 等等。填 Select a Profile 栏时,一

(24)

般需要点击Edit Profile 按钮,出现的界面如图 2-7 所示。重点配置 IO config file 项,选择EIO.cfg 文件(机器人系统文件,可在机器人系统文件中找到)。

若要没有通过网路和机器人相连时,可以模拟机器人运行,这时需要勾上 Interface 中 Simulate interface 选项。若已经和机器人相连了,不需要勾上此选项。

其他配置选项可参照图,详细信息可参考WebWare SDK 帮助文档。

Fig. 2-7 The interface of Profile Editor 图 2-7 Profile Editor 界面

填写Connection Address 栏时,可以直接输入机器人的 IP 地址,也可以点击 Address…按钮进行详细的配置。

完成了机器人别名配置后,打开InterLink Monitor 后界面如图 2-8 所示,

若连接上了机器人,State 显示为 Running;若模拟机器人运行,State 显示为 Simulate。

Fig. 2-8 The interface of Interlink Monitor

(25)

2)Virtual Control 运行机器人程序

Virtual Control 是 WebWare SDK 提供了一个很实用的工具,它可以运行 RAPID 程序,也可以检查出程序潜在的问题。

Fig. 2-9 Virtual Robot Browser 图 2-9 虚拟机器人浏览

使用前应先在Virtual Robot Browser 中,设置当前的虚拟机器人。把机器人 系 统 文 件 直 接 将 其 拷 到 C:\Program Files\Common Files\ABB Automation\Controls\V32\Robots 目录下。打开 Virtual Robot Browse,如图 2-9 所示,点击Go to SystemPool,选择图示的 Current Directory 目录。然后点击左 侧Systems 中的 WEI,再点击 Set Current Robot。

2.4.3 VRML 语言

VRML—虚拟现实建模语言,全称为 Virtual Reality Modeling Language,是 一种在二维的计算机屏幕上显示三维世界的语言。VRML 是基于SGI 公司的 Open Inventor(一种 C++例行程序运行库和描述三维对象的相关语言的语法)所建立 的公开的建模标准语言。VRML 可以建立起三维景物,并支持动画。

与HTML 一样,VRML 也是一种 ASCII 的描述语言。只是 HTML 用于平面 的排版与创作,VRML 则可用于雕塑,甚至于装置艺术,可以用其产生物体、

才智、灯光与摄影视觉角度等。VRML 的出现弥补了 HTML 只能显示二维信息 的不足。目前大多数图形软件都开发了 VRML 文件格式(.wrl)输出接口。

(26)

WinROBWeld 系统工件 3D 建模,采用格式转变方式,即通过其他 CAD 软 件创建的三维工件模型导出为 VRML 格式,然后利用转换程序转换为系统工件 格式。VRML 格式将在第四章中详细介绍。

(27)

第 3章 系统通信模块的设计与开发

离线编程作为机器人系统开发的核心技术,需要外部计算机直接与机器人控 制器通信,实现机器人的离线编程。而机器人控制器作为机器人控制系统的本体,

不但完成操作手的伺服控制、轨迹规划,同时它还具有与外界控制系统进行通信 的功能,如早期机器人控制器的SLIP(Serial Line Internet protocol)串行线路接口 协议,实现了机器人与外界控制系统的简单通信功能[30]。应该说这些功能是薄弱 和不完整的,首先它通信功能的范围很窄,只限于程序的上下载和简单的动作触 发;其次它无法实现机器人与外界控制系统之间的在线通信,即无法实现实时通 信。随着网络通信技术对控制系统的革新,开发基于网络,具有开放式、分布式 机器人控制系统如今已成为机器人控制器研究的重点;另一方面,机器人控制系 统结构沿着网络化、分布式方向和控制系统体系沿着开放性方向发展是机器人控 制系统技术创新的趋势。

WinROBWeld 系统采用两种通信技术,分别是传统计算机与机器人之间的通 信技术和基于 C/S 模型计算机与机器人之间的网络通信技术。前者主要用来实现 系统的文件管理及机器人简单控制,比如程序上传与下载,启停机器人程序的执 行等。利用ABB WebWare SDK 软件提供的接口,开发与机器人通讯的函数,并 使用类封装通讯函数,用来实现前者的主要功能。

针对基于 C/S 模型计算机与机器人之间的网络通信技术的特点,首先分析 C/S 模型;其次分析以机器人控制器为服务器,外部计算机为客户机组建机器人 控制网络运行原理、结构及其主要功能;再次分析设计在机器人系统上远行的 RAPID 主程序的主要数据结构及算法;最后设计客户端,它对应于WinROBWeld 系统的通信模块。从通信数据处理过程及层次结构这两个角度分析与实现通信模 块。将处理过程分为读取、转换及发送三个过程,通信模块分为组织层、支持层 及执行层三个层次。

3.1 传统计算机与机器人之间的通信技术

传统计算机与机器人之间的通信技术,是指首先由计算机生成机器人语言程 序,然后下载到机器人内存,接着运行机器人程序。系统将这种通信技术的实现 过程分为两个阶段:程序转换与下载运行。程序转换是指系统将离线编程所获得 的程序数据,通过程序转换模块转换成相应类型的机器人程序。系统的程序转换 模块将在第四章详细介绍。下载运行是指,系统将转换后的机器人程序下载到机 器人中,然后发送运行程序指令到机器人,进而控制机器人执行程序。

(28)

在WinROBWeld 系统中,利用 ABB WebWare SDK 软件提供的接口,开发 出与机器人通讯的函数,并使用类封装通讯函数,可以方便得实现机器人程序的 下载运行。与此对应的界面如图 3-1 所示。在这里可以实时获取机器人的信息,

如状态信息、当前TCP、IO 状态等。选择欲执行的程序文件,点击 Run 即可。

出现紧急情况时,点击Emergent Stop。

Fig. 3-1 The interface of downloading and running program of WinROBWeld system 图 3-1 WinROBWeld 系统机器人程序下载运行界面

Fig. 3-2 The file management interface of WinROBWeld system 图 3-2 WinROBWeld 系统文件管理界面

图3-2 为系统的文件管理界面,界面左侧列表的左栏列出机器人与计算机

(29)

机器人程序文件,选定该文件,然后点击Run,如果文件已经在机器人系统上,

则直接运行该机器人程序;如果文件在计算机上,则先将文件下载到机器人上再 运行该程序。

3.2 基于 C/S 模型计算机与机器人之间的网络通信技术

基于C/S 模型计算机与机器人之间的网络通信技术,利用以机器人为服务器,

外部计算机为客户端,组成的机器人控制网络。

3.2.1 Client/Server 结构

C/S 计算模型是由麻省理工学院的 Forrestoer Restarch 于 1989 年首先提出口

[31],起初是为了解决台式计算机与网络服务器之问的数据和应用软件的共享而设 计的一种计算机网络结构。如今,基于C/S 的计算机网络模型已发展为一种标准 的计算机网络模型,它可以定义如下:客户机是指运行用户服务请求程序,并将 这些请求传送到服务器的计算机。服务器是指管理数据资源,响应并受理由客户 机发出的请求,并将计算结果传送给客户机的计算机。服务器可接受多个客户机 的多个请求,将请求排队或同时处理。可以看出,服务器运行服务器程序,响应 并执行来自前端客户的服务请求,最后向前端返回计算结果;而客户机,前端运 行客户端程序,向服务器发出请求。两者基于网络通信机制实现了任务的分工和 资源的共享。

Fig. 3-3 Three-layer structure of C/S model 图 3-3 C/S 的三层结构

C/S 计算模型以三层 C/S 模型为基础,可以概括有以下两种类型:(1)C/S 三 层结构模型的分布式表示,如图 3-3 所示。服务器不仅用于数据管理服务,而 且用于对数据进行计算并显示结果应用程序服务,客户机则只显示系统的计算结 果,多数处理保留在主机或服务器上,客户机和服务器在同一个局域网里。由于 有数据服务、应用服务和客户端三个层次,所以称之为C/S 模型三层结构。(2) C/S 三层结构模型的Internet 远程表示,如图 3-4 所示。这是 C/S 三层结构模型的扩 展,在服务器上进行数据管理和计算,而在客户机上只显示计算结果,服务器不

(30)

显示结果,服务器和客户机不在同一局域网里,而是属于Internet 范畴。因此,

在C/S 模型中,服务器上进行数据管理和一部分计算,客户机上进行一部分计算 并显示计算结果,这种方式的应用程序分布在服务端和客户端,利用了工作站的 计算能力减少了服务器的处理请求,并且可灵活配置硬件和软件,实现了C/S 计 算模型。同时,对于局域网内的多个不同平台的C/S 应用,采用 C/S 思想的,基 于Internet 的 Web 应用方式,可以实现异构系统之间的信息交换及其几乎是无限 制的系统扩展能力。采用这种结构,由于使用TCP,IP 协议,使 Internet 和所有 局域网无缝连接,解决了异构系统同的连接,系统不限制系统的用户数,具有彻 底的开放性,系统扩充容易。

Fig. 3-4 Three-layer structure C/S model of internet 图 3-4 C/S 的 INTERNET 的三层结构

3.2.2 基于 C/S 模型机器人与计算机之间的网络通信模式

以机器人控制器为服务器,外部计算机为客户机组建机器人控制网络。ABB S4 型工业机器人控制器具有基于 C/S 模型性能,提供了一些标准的服务,并可 响应外部计算机作为客户机发出的请求,其服务程序主要提供的功能[32,33,34,35]

有:

基本管理服务,如建立或关闭外部计算机与机器人的连接;

机器人语言数据的通信,外部计算机可以在线与机器人 RAPID 程序数 据区定义的数据进行通信。如布尔型,空间点型,夹具型,速度型等数 据类型;

文件管理服务,外部计算机可以在线的进行文件的传输,打开关闭文件 等操作;

机器人程序控制服务,如机器人程序的装入,执行,停止等操作;

(31)

S4 控制器配置服务,如机器人控制器状态读取,机器人状态的控制,机 器人的打开关闭等操作。

如图 3-5[36]所示,机器人控制器一方面作为操作手的控制系统;另一方面 作为服务器,提供数据管理服务和应用服务,响应并受理由外部计算机发出的请 求,并将计算结果传给外部计算机。

Manipulator Controller

RPC Server RPC Client PC/Workstation

Ask Answer Spontaneous

informent

Fig. 3-5 The sketch gap of connection between robot and computer based C/S mode 图 3-5 基于 C/S 模型机器人与计算机通信示意图

ABB 公司的 WebWare 软件是基于 Ethernet 进行计算机与机器人程序的数据 通信,其原理是基于RAP 的 DCOM。机器人控制器所具备的所有服务,也是以 远程过程调用 RPC 存根函数库的接口形式提供,服务器程序则由机器人控制器 厂家自动转载。远程过程调用RPC,其基本原理[38]见图 3-6,从图可以看出,

Fig. 3-6 Remote procedure call 图 3-6 远程过程调用

(1)主控计算机调用过程在向机器人发出远程调用 RPC 后,即被挂起,直 到被调用的远程过程执行完后继续执行.(2)主控计算机调用过程可以向远程机 器人计算机中的被调用过程传递参数,参数通过请求消息传出,远程过程通过应 答消息返回结果给调用过程.远程过程调用将本地计算机与机器人间的通信隐藏 起来,使得过程调用在用户看起来好像在主控计算机上执行机器人函数一样.

如图 3-7 所示,机器人软件结构由多任务操作系统BaseWare OS、基于该 操作系统的机器人RAPID 程序及 RPC 服务器程序组成。由于机器人的运动与操 作只受RAPID 程序控制,若要实现对机器人的在线控制,必须与 RAPID 程序进

(32)

行实时数据通信。RPC 服务器程序可以跨进程与操作系统或机器人程序进行数 据通信,从而获得机器人系统和机器人程序的状态和数据变量。外部计算机运行 RPC 客户端程序,通过 WinROBWeld 的通信模块向机器人控制器发出请求,并 实时响应机器人控制器上的RPC 服务器程序的答复的方法进行数据通信。

Fig. 3-7 The connection principle between WinROBWeld system and robot 图 3-7 WinROBWeld 系统与机器人通信原理

3.2.3 机器人 RAPID 主程序设计

机器人RAPID 主程序,主要用来完成对机器人的控制与操作以及辅助设备 的控制。它分为两部分:数据区和程序区,如图 3-8 所示。数据区被程序区调 用,数据区与WinROBWeld 系统的通信模块进行实时通信。

Fig. 3-8 Communication between system’s programs 图 3-8 系统程序间通信图

在程序区中建立了与不同路径类型对应的子程序及控制加工设备的子程序,

并在数据区预设路径元素的坐标数据,机器人主程序循环检测各个子程序入口的

(33)

布尔量,如果布尔量为 1 则执行相应的子程序,因此WinROBWeld 系统可以对 各子程序的布尔量进行设置 1 和 0 来决定机器人程序的流程,执行相应的操作。

在设置子程序布尔量之前,WinROBWeld 系统首先把路径元素的数据传输给机 器人数据区的数据变量,使机器人获得计算机离线编程后的路径轨迹数据,然后 WinROBWeld 系统对机器人程序中的该子程序入口的布尔量进行置 1,则机器人 程序就执行相应路径的行走动作。这样就实现了 WinROBWeld 系统在线控制机 器人进行空间操作的方法。机器人主程序流程图如图 3-9 所示。

Fig. 3-9 The flow chart of the server robot RAPID program 图 3-9 机器人 RAPID 主程序流程图

该方法突破了传统计算机与机器人之间的通信技术,解决了以往不能在线获 得机器人控制器以外传感器的数据,并节省了计算机与机器人大量数据通信的时 间。

(34)

控制加工设备的子程序,比如控制激光器、MIG 及 TIG 焊机等的子程序。这 些子程序是,根据机器人IO 口与加工设备的连接情况,依次设置或读取 IO,进 而控制加工设备。

3.2.4 客户端程序设计

客户端程序,对应于 WinROBWeld 系统的通信模块。从通信数据处理这个 角度将通信模块处理过程分为读取、转换及发送三个过程。

读取:系统的程序数据主要存储在全局的结构链表中。分为指令序列链表和 指令链表。指令序列链表是总体框架,并与其他指令链表,如路径链表、速度链 表、域值链表等存在映射关系。指令链表的定义如下:

instr_number 是当前结点的索引,instr_type[0]代表当前结点指令类型,映射 到相应类型的指令链表中。instr_type[1]是当前结点的指令内容在被映射的指令 链表中的索引。系统重要指令链表如表 3-1 所示,通过依次读取指令序列链表 中的数据,并以此为基准读取其他链表的数据,从而获取全部的程序数据信息。

指令类型 CALL COMMENT FETCH FRAME RRETURN TCP WAIT

指令编码 2 3 4 5 11 14 17

Table. 3-1 The instruction type and its code of WinROBWeld system 表 3-1 WinROBWeld 系统指令类型及其编码

转换:将读取到的程序数据信息转换到 InterLink OLE Object 中,比如 S4RobPosData 、S4RobTarget、S4Pose、S4SpeedData、S4ToolData 及 S4ZoneData 等。OLE object 可以像结构体那样来定义与使用。下列代码给出 S4RobTarget 在 Visual C++中的定义。定义后就可以使用它的成员函数访问它的内部数据了。

表3-2 给出了 RAPID 数据类型、Visual C++中的类名及 InterLink OLE 对象类

IRobPosData m_Robpos;

m_Robpos.CreateDispatch("S4RobPosData");

ASSERT(m_Robpos.m_lpDispatch);

struct instruction_order {

int instr_number; //结点索引

int instr_type[2]; //指令类型及其内容 struct instruction_order *next;

};

typedef struct instruction_order INSTR_ORDER;

(35)

RAPID Type Class Type in VC++ InterLink OLE Object Type

Array of any type IArrayData S4Array

confdata IConfData S4ConfData extjoint IExtJoint S4ExtJoint

loaddata ILoadData S4LoadData motsetdata IMotSetData S4MotSetData orient IOrient S4Orient pos IPos S4Pos pose IPose S4Pose progdisp IProgDisp S4ProgDisp robposdata IRobPosData S4RobPosData robtarget IRobTarget S4RobTarget speeddata ISpeedData S4SpeedData tooldata IToolData S4ToolData wobjdata IWorkObjectData S4WorkObjectData xdata IXData S4XData

zonedata IZoneData S4ZoneData

Table. 3-2 The RAPID variable type and its corresponding type in OLE and in class type in Visual C++

表 3-2 RAPID 变量类型及与之相应的 OLE 对象类型

发送:通过WebWare SDK 的 ActiveX 控件的 helper 对象,将转换后的信息 发送到机器人程序数据区的 RAPID 变量对象中。比如发送到 robtarget、pose、

speeddata、tooldata 及 zonedata 等变量中。RAPID 变量类型、VC++的类名及 OLE 对象类型如表3-2所示。

3.2.5 通信模块层次结构

上小节从通信数据处理这个角度,将通信模块处理过程分为读取、转换及发 送三个过程。在这里分析通讯模块的层次结构,如图 3-10 所示,将通信模块设 计成以下三层:组织层、支持层及执行层。

Fig. 3-10 The hiberarchy of connection model 图 3-10 通信模块的层次结构

(36)

组织层,完成用户交互及信息显示,分析 WinROBWeld 系统生成的离线编 程数据,根据程序的路径不同,完成数据的读取与转换,并放于系统的临时对象 后,调用支持层。实时读取支持层的状态信息以控制程序的运行节奏。

支持层,接收系统临时对象中的数据,发送数据到机器人 RAPID 程序,并 根据路径类型设置相应子程序的入口布尔量。实时读取机器人运行程序状态以控 制程序的运行节奏。把这些功能封装到 CRobotS4API 类中,这样既提高了编程 效率与程序代码简洁性,也方便了程序移植。CRobotS4API 主要功能有:启停机 器人;运行与停止机器人RAPID 程序;控制机器人行走直线、圆弧、园等路径;

读写程序变量与机器人I/O;控制路径与激光焊接参数及获取实时 TCP 等。

CRobotS4API 类的设计编写是支持层开发的重点,以下给出 CRobotS4API 类的启动机器人函数的部分代码:

与机器人RAPID 程序的子程序对应,RobotS4API 类中包含了回零(Home)、走 直线(Line)、走圆弧(ARC)、走园(Circle)及快速到达某点(MoveTo)函数,

还有设定速度、域值及机器人IO 等函数。这些函数的设计思路基本一致,走直 线函数Line 的程序流程图如图 3-11 所示。

bool CRobotS4API::RobotS4StartUp() {

/*This method is used to place the control in Run mode. You can think of this method as setting the robot controller Motors On button to ON.*/

short status=m_CHelper->S4Run(0,&ResultID);

if (status) {

…(此处为出错处理)

} }

(37)

Fig. 3-11 The flow chart of the fuction for Line path 图 3-11 走直线函数 Line 的程序流程图

首先定义IarrayData 类型的变量 s4array,设定数组为一维且长度为 2,然后将直 线路径两个端点的位姿放到 s4array 中,并将 s4array 数据发送到机器人 RAPID 程序的数据区的 LinePos(同为 IarrayData 类型变量)中。其次置机器人走直线 路径的入口布尔量为1,这时机器人 RAPID 程序开始执行 走直线子程序。最后,

循环读取直线路径完成标志布尔量,直到机器人完成直线路径行走后,Line 函数 才退出。

执行层,机器人循环运行机器人 RAPID 程序,接收数据,根据子程序的入 口布尔量,判断执行相应的子程序。其他设备(如加工设备:激光器、焊机等;

辅助设备:保护气阀、冷却水阀等。)根据机器人IO 送来的信号执行相应动作。

(38)

第 4章 系统工件 3D 建模及程序转换模块设计与开发

本章中,将讨论离线编程系统中的CAD 建模与程序转换模块两个组成部分。

对于工件 3D 建模,采用格式转换的方式取用其它 CAD 软件创建的三维模型,

并存于工件库以备调用,格式转换通过调用工件转换工具完成。首先分析VRML 语言的语法及结构,其次分析 WinROBWeld 系统工件文件的存储结构,最后设 计工件转换工具的数据结构与算法。

程序转换是指,将系统经过离线编辑后的程序数据转换为目标机器人所支持 的特定类型的机器人程序。通过对系统程序数据存储格式及RAPID 语言特征的 分析,使用类封装程序转换过程,并给出转换涉及的主要数据结构与算法。

4.1 工件 3D 建模

在AutoCAD、UG、SolidWorks、Pro/E、3DSMax 等软件中建立三维工件模 型后,通过软件的导出功能,可以很方便地将三维工件模型以VRML 格式导出。

如图 4-1 所示,以VRML 格式的三维工件模型作为输入,通过工件转换工具,

可将三维工件模型转换为 WinROBWeld 系统的工件格式。由此可以看出,

WeldROBWeld 系统的工件 3D 建模主要工作就是工件转换工具的开发。

Fig. 4-1 The 3D modeling flow of workpiece 图 4-1 工件 3D 建模流程

4.1.1 VRML 结构分析

VRML 的结构类似于 OpenGL 的显示列表[38],VRML 用树状的场景图来 描述三维世界。应用面向对象技术,不仅使场景图对三维世界的描述变得 清晰,还通过封装属性和建立场景图内部消息通道很方便地实现虚拟实体 的交互和动画等功能。

VRML 文件可以包括下列四个主要成份:VRML 文件头、原型、造型和 脚本、路由。并不是所有的文件都包括这些要素,唯一必须的是 VRML 文 件头。VRML 中包含描述空间中造型及其属性的节点,这些是 VRML 的构 件。单个节点描述造型、颜色、光照、视点、以及造型、动画定时器、传 感器、内插器等的定位和朝向等等。

數據

Fig. 2-1 The structure of WRAPS  图 2-1 WRAPS 系统结构框图  设计离线编程系统应考虑以下几个方面:  1)机器人的工作过程知识;  2) 机器人和工作环境三维实体模型;  3)机器人几何学、运动学和动力学知识;  4) 基于 1), 2), 3)的软件系统,该系统是基于图形显示的,可进行机器人 的图形仿真;  5) 轨迹规划和检查算法,如检查机器人关节角超限,检测碰撞,规划机器 人在工作空间的运动轨迹等;  6) 传感器的接口和仿真,以利用传感器的信息进行决策和规
Fig. 2-3 The sketch map of sensor system  图 2-3 传感器系统示意图
Fig. 2-4 Development environment of WinROBWeld system  图 2-4 WinROBWeld 系统开发环境
Fig. 2-5The interface of Device Configuration Utility  图  2-5 Device Configuration Utility 界面
+7

參考文獻

相關文件

• Appearance: vectorized mathematical code appears more like the mathematical expressions found in textbooks, making the code easier to understand.. • Less error prone: without

• The memory storage unit holds instructions and data for a running program.. • A bus is a group of wires that transfer data from one part to another (data,

• The Java programming language is based on the virtual machine concept. • A program written in the Java language is translated by a Java compiler into Java

Various programming languages used to create computer programs A variety of Web development and multimedia development tools. Steps in the program development life cycle and tools

• As the binary quadratic programming program is NP-hard in general, identifying polynomially solvable subclasses of binary quadratic programming problems not only offers the-

Program C: Differential Geometry and Geometric Analysis Nan Kuo Ho (NTHU)—Program Chair. River Chiang (NCKU) Chun-Chi Lin (NTNU) Chung-Jun

Clinical Supervision Practices and Satisfaction Within the Public Vocational Rehabilitation Program. Effectiveness of a Training Program to Enhance Clinical Supervision

These include developments in density functional theory methods and algorithms, nuclear magnetic resonance (NMR) property evaluation, coupled cluster and perturbation theories,