APP下载

一种基于Unity3d的工业机器人示教系统设计方法*

2017-07-31潘俊浩卜祥建

组合机床与自动化加工技术 2017年7期
关键词:圆弧运动学程序

潘俊浩,卓 勇,侯 亮,卜祥建

(厦门大学 航空航天学院,福建 厦门 361005)



一种基于Unity3d的工业机器人示教系统设计方法*

潘俊浩,卓 勇,侯 亮,卜祥建

(厦门大学 航空航天学院,福建 厦门 361005)

提出一种基于虚拟现实技术的工业机器人示教系统设计方案。系统分为示教场景及虚拟示教器两个部分。以目前广泛使用的ABB IRB4600-60/2.05机器人为例,首先利用D-H参数法建立运动学模型,求解正逆运动学方程,并进行机器人的运动轨迹规划;按照真实的机器人车间,在Unity3d中进行虚拟示教场景的搭建。参照ABB IRC5-FlexPendent示教器,结合具体的工程应用需求,开发Windows平板上的示教器软件。应用RPC(Remote Procedure Call Protocol)协议,实现示教场景和示教器间的通信。实验结果表明,使用该系统用户可以方便地进行机器人的简单示教。

工业机器人;示教;Unity3d;虚拟现实

0 引言

机器人示教器作为工业机器人重要的可选件,在实际应用与教学上均发挥了重要作用。随着工业机器人的发展,示教器的应用与研究也进入了一个全新的阶段。自上世纪七十年代,国外机器人技术研究兴起,机器人示教器也经历了一系列的变化,其技术基本成熟,并达到了实用化的阶段,如日本安川MOTOMAN机器人、瑞典ABB机器人等均有配套的机器人示教器[1-2]。国内在示教器方面的研究虽然起步较晚,但也有大量的研究与成果,进行了众多自主机器人示教器的研发[3-7]。

目前示教器的研究集中在两种形式:第一种是“实体—实体”的形式,即实体示教器控制实体机器人,该方式也是目前研究投入最多的方向,主要围绕在自主示教器系统的研发;第二种是“虚拟—实体”的形式,即虚拟示教器示教实体机器人的方式,该方式随着互联网技术、移动端的兴起,正占据着越来越大的比重。但不论第一种还是第二种形式,均受到场地的影响,无法做到随时随地进行机器人示教,这对条件不足的示教场所存在极大的限制。随着虚拟现实技术的兴起,为打破机器人示教的地域限制出现了可能。文中利用虚拟现实技术,以真实的ABB机器人示教器为参照,进行界面与功能上的设计,并将其部署在移动端的平板电脑上。在PC端进行虚拟示教机器人仿真场景的搭建。使用RPC技术进行平板端示教器与PC端虚拟机器人的连接。经过测试,系统可满足机器人示教需要。

1 系统分析与设计

文中开发的示教系统分为两个部分:示教器和示教场景。具体的结构如图1所示。示教器软件部分包含常用的功能模块,如程序数据模块、程序编辑器模块等,使用Unity3d的2D模式,参照ABB IRC5-FlexPendent示教器,在此基础上进行功能的筛选和界面的改进,旨在设计出符合自身特性的示教器;示教场景可以进行机器人车间的查看以及单独的机器人联动例子展示。

当前虚拟现实的开发平台众多,例如Unity3d、Unreal4、Q3D等等。文中选用Unity3d作为系统的开发平台,作为一个优秀的综合性虚拟现实平台,Unity3d可用于构建各种类型的互动内容,如实时动画、可视化建筑、3D游戏等;同时作为目前市场上支持平台最多的引擎,使用Unity3d开发的软件可以方便地进行不同平台的移植。

图1 系统总体结构

2 机器人示教场景及仿真

机器人示教场景的建立,首先需要在SolidWorks中进行机器人本体和工件的建模,并在Unity3d中进行机器人场景的搭建;其次,在对机器人物理参数分析的基础上,进行运动学求解;对机器人的轨迹规划进行研究,分析空间直线、圆弧的插补方法。建立示教场景的UI界面,实现在为示教器提供服务的同时,可以进行独立的机器人焊接仿真。机器人本体及三维模型见图2。

2.1 机器人模型及场景建立

ABB IRB4600-60/2.05型机器人具有6个自由度,其中3个自由度描述机器人的末端位置,另外3个自由度用来描述机器人的末端姿态[8]。

(a)机器人本体 (b)机器人三维模型图2 机器人本体及三维模型

在SolidWorks中进行机器人各个关节的建模,然后导入3ds Max进行各个关节坐标的修改,进行关节间父子级关系的设置,使得6个关节间可以进行从动控制。机器人连杆坐标系如图3所示。

图3 机器人连杆坐标系

利用D-H矩阵法[9],根据机器人的具体参数设置各连杆参数和关节变量如表1所示。

表1 ABB IRB4600-60/2.05机器人的连杆参数

为模拟真实的机器人工作环境,进行高真实度的焊接机器人车间(工作站)搭建。标准的机器人焊接工作站由机械、电气及焊接装置三部分构成。包括安全围栏、变位机、公共基座、操作台、机器人本体、固定工作台、夹具、电缆桥架以及机器人控制器和焊机等部分[10]。

对机器人车间进行简化,隐藏电缆等设施,在Unity3d中搭建焊接机器人工作站,并进行贴图渲染,简易的焊接机器人车间场景如图4所示。

图4 机器人车间搭建

2.2 机器人运动学分析

机器人运动学描述了机器人各个关节与组成机器人的刚体之间的运动关系。其中运动学分析的方法有多种,齐次变换法是其中较为直观方便的一种方式。

2.2.1 正向运动学求解

式(1)为连杆变换矩阵[11],描述了相邻连杆之间的转换关系。将表1中的连杆参数代入式(1)中,可得到各个关节的具体连杆变换矩阵。

(1)

将6个关节的连杆变换矩阵依次相乘,可得机器人末端相对于基坐标系的转换矩阵0T6。

(2)

在Unity3d中支持C#和JavaScript语言的脚本编程,考虑C#语言的面向对象特性及强大的函数库,使用C#作为文中的开发语言。声明UnityRobot作为机器人相关函数的命名空间,实现运动学正解的关键代码如下,建立FK类,包含GetMatrix()、MatrixCalculation()等关键函数。

public class FK

{

public static List GetMatrix(float[] ceta){...}

public static Matrix4x4 MatrixCalculation(float[] ceta){...}

}

2.2.2 逆向运动学求解

与运动学正向求解相比,运动学逆向求解在工程制造中的应用更加广泛,是机器人运动规划和轨迹控制的基础。

在实际的计算过程中,上述递推不需要全部完成,只需要利用等号两端矩阵元素相等的特点,求出全部的关节变量。使用C#实现关键代码,建立IK类进行机器人逆运动学的求解。

public class IK

{

public struct Position{…}

public static float[,] IKCulation(Position pos){…}

}

2.3 机器人轨迹规划

从外部输入需要仿真的路径信息,文中分直线和圆弧进行插补,对末端运动轨迹进行离散,得到各个点的位姿矩阵,再代入逆解程序,求得各个离散点处机器人各关节的转角,并在Unity3d中进行机器人的运动仿真。

机器人在起止位置的姿态不一,需要进行运动过程中的关节姿态插补[12],插补没有标准的方法,一般有齐次变换矩阵法、欧拉角法、单位四元数法等。

2.3.1 直线插补

已知机器人末端由A点移动到B点,直线起点A的坐标为(xA,yA,zA),直线终点B的坐标为(xB,yB,zB)。

则X、Y、Z三坐标轴每次插补的增量为:

(3)

式中,i=0,1…N-1,N为插补步数。

在Unity中编写相应的插补代码,实现机器人直线插补的功能。图5显示了在unity中实现的直线插补例子,图5a显示了机器人直线插补过程,图5b为最后的插补结果。

(a)直线插补过程 (b)直线插补结果图5 直线插补例子

2.3.2 空间圆弧插补

假设空间不在一条直线上的三点坐标为p1(x1,y1,z1),p2(x2,y2,z2),p3(x3,y3,z3),求过此三点的空间圆弧插补过程如下:

(1)求解空间圆弧的圆心坐标O和半径R;

(2)求圆弧平面的法矢量n;

(3)求圆弧的圆心角θ;

(4)求解插补递推公式。

具体的求解过程参见文献[13],这里将不再赘述。文中应用文献[13]的计算结果,得到图6中所示的空间圆弧插补效果。

图6 圆弧插补例子

2.4 工业机器人仿真

为了验证机器人运动学求解的正确性,根据前面章节的内容,在unity3D中进行机器人的仿真。

2.4.1 焊接参数

一般地,焊枪上焊丝的尖端被定义为工具中心点(TCP),即机器人的控制点。将工具坐标系{T}的原点置于TCP[14]。通过3个单位矢量描述焊枪的姿态:z向矢量与焊枪轴线或焊丝中心线共线,指向焊缝,称为接近矢量a;y向矢量指向焊接的前进方向,称为方向矢量o;最后一个矢量称为法线矢量n,n=o×a;以上分别对应式(2)中的n、o、a。

图7 工件坐标系{T}

一般地,使用焊缝倾角、焊缝转角来表征焊缝的位置;用焊枪工作角、焊枪行走角表征焊枪姿态[15]。文中建立焊接模型,将焊缝简化成空间曲线,通过焊接速度v、焊枪工作角α、焊枪行进角β三个参数来进行机器人焊接参数的设置。

2.4.2 UI界面设计

Unity3d提供了UGUI用于创建快速和直观的用户界面(http://unity3d.com/cn/),提供了众多的界面组件,例如文本框、输入框、图片、按钮等,用户可以自由组合搭建自己需要的界面。文中在示教器场景中建构了焊接参数的设置对话框(图8),通过输入焊接参数、工作角、行进角等简单参数可以对焊接参数进行设置,实现示教器场景中独立的焊接仿真。

图8 焊接参数设置界面

2.4.3 碰撞检测

在仿真过程中,机器人的形状复杂,运行过程中可能会发生自身的碰撞或是与其他设备的碰撞,因此需要实时的碰撞检测,在机器人发生碰撞时及时做出响应。

文中采用包围盒法进行碰撞检测[16]。包围盒法是使用包围盒近似表示复杂几何物体的形状,通过检测包围盒的相交情况来检测碰撞。Unity3d支持多种包围盒:球形包围盒(sphere collider)、六面体包围盒(cube collider)、胶囊体包围盒(capsule collider)及三角面片拟合的复杂形状包围盒(mesh collider)。

Unity3d提供了三个碰撞响应函数:

Void OnCollisionEnter(Collision collisionInfo);

Void OnCollisionExit(Collision collisionInfo);

Void OnCollisionStay(Collision collisionInfo)。

当物体的碰撞状态发生改变时,相应的碰撞响应函数在后台会自动被调用。

2.4.4 焊接效果

为了真实模拟出机器人焊接的效果,使得用户体验更有沉浸感,系统需要模拟出焊接时的火花、声音等效果。Unity3d中提供的粒子系统,采用模块化管理,可以用于制作烟雾、气流、火焰以及各种各样的大气效果。系统主要模拟的是弧焊时电火花效果,如图9所示。

图9 粒子系统实现

3 示教盒设计

示教器软件包含的主要模块有:

(1)程序数据模块:用户可以编辑机器人示教所需的数据,如位置点的信息、机器人的参数信息等;

(2)程序编辑器模块:在该模块,可以进行机器人语言程序的编辑,并能进行程序的单步运行、调试;

(3)手动操纵模块:通过该模块功能,用户可以手动操作机器人端部到指定的位置;

(4)自动生产窗口模块:示教器中预留了几个预设程序,用户可以直接运行程序,达到自动生产的功能;

(5)其他模块:包括系统信息模块、控制面板模块等功能。

3.1 示教盒界面设计

本示教器参照ABB机器人的示教盒,对其功能进行精简,保留主要的功能和界面。示教器的主界面如图10所示。示教器主要分为三块区域;

(1)主功能区:用于主要功能的实现,包括机器人信息的查看、系统信息、关节数据信息、程序的编辑等;

(2)按钮区:分为三个部分,从上往下依次为,预设按钮区,用于预设程序的运行和切换;模式切换按钮区,进行手动操纵时线性模式和重定位模式的切换,增量的设置等;编程按钮区,可以进行程序编辑时的单步运行、停止、前进、后退等功能;

(3)虚拟手柄区:用于手动模式时,进行关节模式、线性模式、重定位模式的控制。

图10 示教器主界面

3.2 模块设计

系统实现示教器的几大功能模块。

(1)程序数据模块

程序数据模块(图11)中可以对clock、loaddata、num、robtarget、tooldata、wobjdata等常用的6种数据类型进行编辑,进入相应的数据类型界面可以对数据进行编辑,如新建、修改、删除等功能。程序界面见图12。

图11 程序数据模块

(2)程序编辑模块

程序编辑器模块是机器人示教器的重点,机器人语言的解析是程序编辑模块的核心。ABB机器人使用RAPID语言,需要对该语言进行解析,将机器人语言转变成机器人示教系统所能够识别的软件命令。

机器人的代码集由各种控制指令组成,普通的编译器进行编译时,常要把代码中的字符分成运算符、终结符和非终结符进行归类,有时为了实现运算符的优先级别,还需要采用堆栈操作。而正则表达式采用直接匹配的编译方式,兼具开放性和高效性的特点[17],因此文中采用正则表达式的方式进行机器人语言的解析。

正则表达式是基于文本的编辑器和搜索工具的一个重要部分。一个正则表达式,就是用某种模式去匹配一类字符串中的一个字符[18]。正则表达式并非一门专用语言,但它是可用于在一个文件或字符里查找和替代文本的一种标准。

选择任务,点击“显示模块”按钮,进入程序编辑器的模块界面,将整个机器人语言程序分成多个模块。可以进行模块的查看、编辑等功能。程序界面见图12。

图12 程序界面

(3)手动操纵模块

手动操纵模式主界面,可以显示主要机器人属性,包括机械单元、绝对精度、动作模式、坐标系等信息,以及当前机器人的TCP的实时位置或者机器人关节的实时角度、操作杆方向的提示等。通过做虚拟操纵杆的操作,可以实时地改变机器人的TCP位置和关节角度。

(4)自动生产窗口模块

自动生产窗口模块中存储了预设程序,用户通过点击右上角的预设按钮,可以自动运行预设程序。

3.3 示教器的连接

文中采用了Windows平板电脑作为控制端,通过RPC协议与PC机端建立连接,实现对PC机端工业机器人的控制。采用平板电脑的形式,可以使系统的限制更小,使用范围更加广泛。另一方面,示教面板与PC机脱离,用户可以更为自由地观察和控制机器人,增强了用户的使用交互体验。

RPC协议通过网络直接向远程计算机程序上请求服务,而不需要用户了解底层的网络技术。在OSI网络通信模型中,RPC跨越了传输层和应用层[19]。

4 机器人示教结果及验证

为了验证文中开发的虚拟示教系统的可行性,对其基本功能进行测试。首先将示教器部分的软件安装到平板电脑上,文中选用Microsoft Surface Pro 3平板作为示教器的测试平台;并将示教场景软件安装到PC端。

步骤1:通过示教器的虚拟手柄,采用手动方式(图13),移动机器人工具端部到指定位置点,获取示教目标点的位置,将其进行存储;添加需要的示教指令。

图13 手动示教过程

步骤2:通过重复步骤1进行其他位置点的示教,文中以最常见的板板焊接为例,进行机器人的仿真,见图14。

图14 焊接仿真过程

仿真过程中,机器人运行平稳,期间未发生碰撞现象,轨迹满足需要。

步骤3:将系统中编写的程序导出,导入到机器人ABB RobotStudio中进行验证,如图15所示。

(a)系统路径 (b)RobStudio中的路径图15 机器人示教实例

通过图15a和图15b的比较发现,两者的路径一致,关键点数据相同,说明文中的示教及仿真结果正确,证明文中开发的虚拟示教器系统具有一定的实用性。

同时,图16给出机器人圆弧仿真的例子,证明了文中的系统在空间圆弧的示教和仿真方面同样能够胜任。

(a)圆弧示教过程 (b)圆弧示教结果图16 圆弧示教实例

5 结束语

文中构建了基于虚拟现实技术的工业机器人示教系统,系统分为示教场景和虚拟示教器软件;示教盒和示教场景通过RPC协议连接,实现相互间的数据通信。

以ABB IRB4600-60/2.05机器人为研究对象,通过分析其机构,构建了本体模型和场景模型;对机器人的物理参数进行研究,运用D-H参数法进行了机器人正逆运动学的求解;将机器人的轨迹分类,针对空间直线和空间圆弧进行了轨迹规划及相应的姿态插补;运用虚拟现实技术,在Unity3d中完成了机器人示教场景的搭建。参照ABB IRC5-FlexPendent示教器,进行虚拟示教盒软件的开发。软件具有多个功能模块,可以实现程序数据的存储、机器人程序的编写等多个实用功能。

本系统的沉浸感强,用户通过示教盒的操作,可以进行ABB IRB4600-60/2.05工业机器人的简单示教学习。示教盒与场景的分离设计模式,满足不同层次的需求,即使是初学者也不需担心对设备造成损坏,对于教学与实际的使用都具有较大的意义。

[1] 陈珊. 机器人示教盒系统研制[J]. 制造业自动化, 2005, 27(2): 75-78.

[2] 沈雅琼. 基于WinCE的工业机器人示教器软件设计[D].武汉:华中科技大学,2014.

[3] 王晓丽, 侯媛彬. MOTOMAN工业机器人示教编程方法研究[C]// 全国煤矿自动化学术年会中国煤炭学会自动化专业委员会学术会议,2008.

[4] Garcia E, Vergara S, Reyes F, et al. Development of a Teach Pendant for an ABB Robot[C]// International Conference on Electrical, Communications, and Computers. IEEE Computer Society, 2009:256-259.

[5] 陈友东, 王田苗, 魏洪兴,等. 工业机器人嵌入式控制系统的研制[J]. 机器人技术与应用, 2010(5):10-13.

[6] 杨敏, 王品, 郑玉虎. 人机会话方式的机器人示教盒的设计[J]. 组合机床与自动化加工技术, 2013(2):127-129.

[7] 杨威. 基于以太网的工业机器人示教装置开发[D]. 武汉:华中科技大学, 2011.

[8] 王一军. 基于工业机器人的飞机壁板高速精确制孔系统研究[D].杭州:浙江大学,2012.

[9] DENAVIT J, HARTENBERG R S. A kinematic notation for lower-pair mechanisms based on matrices[J]. Trans.of the Asme.journal of Applied Mechanics, 1955, 22:215-221.

[10] 陈渌漪. 焊接机器人工作站的设计与实现[D]. 北京:北京工业大学, 2012.

[11] JOHN J CRAIG. 机器人学导论[M]. 3版.贠超, 译.北京:机械工业出版社,2006.

[12] 高帅.工业机器人三维仿真及其运动控制研究[D]. 南京:南京理工大学,2015.

[13] 卓扬娃, 白晓灿, 陈永明. 机器人的三种规则曲线插补算法[J]. 装备制造技术, 2009(11):27-29.

[14] 周律, 蔡锦达, 钱炜,等. 弧焊机器人焊枪姿态的简便示教[J]. 机械工程学报, 2010,46(8):73-77.

[15] 哈尔滨焊接研究所. 焊接术语: GB/T 3375-1994[S]. 北京: 中国标准出版社, 1995.

[16] 马登武, 叶文, 李瑛. 基于包围盒的碰撞检测算法综述[J]. 系统仿真学报, 2006, 18(4):1058-1061.

[17] 何嘉健, 李伟光. 基于GRETA正则表达式的机器人解释器的研究[J]. 组合机床与自动化加工技术, 2012(1):17-19.

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

[19] 李大山. 嵌入式网络存储服务器的优化研究[D]. 上海:上海交通大学,2010.

(编辑 李秀敏)

Research on Industrial Robot Teaching System Based on Unity3d

PAN Jun-hao, ZHUO Yong, HOU Liang, BU Xiang-jian

(School of Aerospace Engineering, Xiamen University, Xiamen Fujian 361005, China)

In this paper, a design scheme of industrial robot teaching system is presented that is based on Virtual Reality in Unity3d. The system consists of teaching scene and teach pendent. And ABB IRB4600-60/2.05 is taken for research with is used widely. First, the kinematics model is established from positive and inverse kinematics problems through D-H theory. And two kinds of trajectory, linear and circular, are planned. According to the real robot workshop, the virtual teaching scene is set up in Unity3d. Referring to the ABB IRC5-FlexPendent, the teaching pendent software is developed on the Windows tablet combining with the requirements of engineering applications. Applying RPC (Procedure Call Protocol Remote) protocol, the communication between the teaching scene and the teaching pendent is established. Experimental results show that the system user can easily carry out the simple teaching of the robot.

industrial robot; teaching; Unity3d; virtual reality

1001-2265(2017)07-0110-06

10.13462/j.cnki.mmtamt.2017.07.026

2017-03-10;

2017-04-06

福建省高端装备制造协同创新中心(2015HZ0002-1);福建省科技重大专项

潘俊浩(1992—),男,浙江温州人,厦门大学硕士研究生,研究方向为工业机器人、虚拟现实,(E-mail)306431967@qq.com;通讯作者:卓勇(1970—),男,福建莆田人,厦门大学教授,博士,研究方向为机电产品数字化设计制造,(E-mail) zhuoyong@xmu.edu.cn。

TH128;TG659

A

猜你喜欢

圆弧运动学程序
浅析圆弧段高大模板支撑体系设计与应用
给Windows添加程序快速切换栏
基于MATLAB的6R机器人逆运动学求解分析
外圆弧面铣削刀具
工业机器人在MATLAB-Robotics中的运动学分析
试论我国未决羁押程序的立法完善
“程序猿”的生活什么样
双圆弧齿同步带的载荷特性研究
六圆弧齿廓螺旋齿轮及其啮合特性
英国与欧盟正式启动“离婚”程序程序