基于六轴工业机器人的虚拟仿真教学系统开发与应用

2019-12-03 05:02崔陆军郭士锐李晓磊崔英浩徐景霞
中原工学院学报 2019年5期
关键词:教学系统脚本部件

郑 博, 杜 虹, 崔陆军, 郭士锐, 李晓磊, 崔英浩, 徐景霞

(中原工学院 机电学院, 河南 郑州 450007)

高档数控机床和机器人是“中国制造2025”规划中“制造业十大重点领域”之一[1]。目前,生产一线对工业机器人等智能设备的需求不断扩大。针对工业机器人开展的实验教学课程,在相关专业的课程培养中十分重要。工业机器人系统复杂、价格昂贵、实验及维护成本较高,在工业机器人实验教学中应用虚拟仿真技术是一种高效经济的解决方案[2-3]。

目前市场上主流工业机器人厂商开发的仿真软件主要面向生产应用,学习门槛较高,且不同厂商的仿真软件相对闭源,互不开放[4]。因此,现有仿真软件并不切合面向教学的实验课程需求。

随着计算机软件、计算机图形学及虚拟现实相关技术的发展,诸多便于快速开发的虚拟仿真引擎相继问世。Unity3D是一种专门针对虚拟交互开发、视景仿真、多平台部署应用需求的三维仿真引擎,能够帮助开发者快速构建虚拟仿真系统。以Unity3D仿真引擎为工具,实现机器人运动的虚拟仿真,对虚拟仿真实验教学具有重要的参考价值[5]。

1 六轴工业机器人的虚拟仿真建模

1.1六轴工业机器人的结构分析

本文将装配作业用IRB1410型工业机器人作为虚拟仿真的对象。该型机器人为关节型六轴机器人,具有工作范围大、到达距离长且结构紧凑等优点,在弧焊、物料搬运和过程应用领域得到了大规模应用,具有比较典型的实验教学价值。IRB1410型六轴工业机器人的结构组成如图1所示,其各关节轴具体参数[6]如表1所示。其中轴1-轴3分别控制机械臂基座旋转、下臂和上臂转动;轴4-轴6控制上臂末端球形手腕关节在空间中3个自由度的旋转。其中,轴6末端法兰盘上可安装气缸夹具、焊枪、喷涂工具等,实现机器人作业。

图1 IRB1410型六轴工业机器人的结构组成

表1 六轴工业机器人各关节轴具体参数[6]

1.2 机器人三维模型的建立

虚拟仿真的基础工作是建立对应实体的三维模型。机器人是由多种零件组合装配而成的综合系统,其零部件结构及其装配关系复杂。仅从建模及仿真运动角度考虑,在虚拟仿真环境下,对机器人空间位置及其运动状态进行的仿真表现,并不涉及其内部零件的具体细节。因此,建模时应遵循独立原则和运动关系,将六轴工业机器人分为不同的运动部件,建立相对应的部件模型[7]。机器人所用装配零件繁多,为减少后续导入软件后零件固定副的数量,简化零部件间配合引用的关系,对于无相对运动的零件,装配时要进行压制,在保证精确仿真的基础上简化模型[8]。

所建立的机器人三维模型最终将被集成在Unity3D虚拟仿真环境中。Unity3D虚拟仿真引擎对复杂尺寸构形的建模能力较差,考虑到建模所需的精度要求,故首先使用SolidWorks软件建立机器人模型,然后经过模型格式处理,将其集成在Unity3D环境中。其具体步骤如下:①将机器人分为底座、六轴部件、平衡连杆机构等部分,以真实尺寸进行建模装配;②将在SolidWorks中建立的装配体模型以STEP文件格式导出,并将该格式文件导入3Dmax中处理(这里需注意,Unity3D中模型各部件坐标点、坐标轴方向及单位长度的设置依赖于3Dmax模型的单位设置,故导入时需对模型装配体各零部件坐标点及坐标轴方向进行调整,并将模型长度单位定为 m);③将3Dmax模型以FBX文件格式导出,并导入Unity3D的项目中(这里需注意,SolidWorks及3Dmax建模环境中坐标系均为右手坐标系,而Unity3D环境下坐标系为左手坐标系。因此,为便于后续脚本控制模型旋转运动,各轴部件的坐标原点及坐标轴朝向应与轴的旋转方向一致)。

虚拟仿真不仅需要将机器人的模型设计贴近实际设备,还需要模型的材质、场景、光照等仿真元素的配合,才能很好地还原机器人真实的物理运动效果[9]。在保证模型结构和外形尺寸的前提下,对模型进行外观材质渲染等操作,使其具备美观逼真等特点。模型处理流程中各步骤的模型外观如图2所示。

SolidWorks建模 3Dmax处理 Unity3D集成图2 模型处理流程中各步骤的模型外观

2 六轴工业机器人仿真运动的实现

2.1 仿真运动的逻辑关系建立

(1)

六轴工业机器人的坐标变换可表述为:

(2)

图3 机器人部件模型的从属关系

2.2 仿真运动脚本控制的实现

Unity3D中的模型部件基本单元为GameObject,可通过C#语言脚本对其进行控制。Unity3D虚拟仿真引擎支持以C#编程语言实现脚本。通过脚本可控制GameObject的运动、外观材质等属性。以机器人的轴1运动为例(轴1部件及其坐标定义如图4所示),Z坐标轴与轴1转动轴重合,故可通过控制轴1部件绕Z轴方向的旋转来实现轴1运动。

控制轴1运动的脚本代码如下:

J1.GameObject.transform.localEulerAngles = new Vector3(0, 0, -currentAngle);

在该脚本语句中,J1为轴1部件的三维模型GameObject;currentAngle为当前旋转角度;J1运动属性Transform中的localEulerAngles定义了该模型在其自身坐标系中的欧拉旋转角。需注意,在机器人系统中运动以右手坐标系定义,而脚本控制运动仍以Unity3D中左手坐标系为准,故旋转角度为-currentAngle。轴2-轴6的运动可按照类似方式实现。

图4 机器人的轴1部件及其坐标定义

除主要的6个关节轴运动外,IRB1410型六轴工业机器人还有从属于关节轴的机械运动。它主要包括连接轴2与轴3的平衡弹簧、平衡连杆的运动。平衡弹簧运动通过上下两个弹簧组件实现弹簧的拉伸压缩。平衡连杆的模型结构如图5所示。它是一个铰链四杆机构。通过编写CranckRocker脚本代码,主动件随轴3转动,带动平衡连杆运动。

机器人仿真需实现机器人运动控制仿真,且要实现机器人运动仿真状态的获取。六轴工业机器人的运动仿真状态主要包括各轴旋转姿态参数和机器人末端工具中心点(Tool Center Point,TCP)的位置坐标。获取轴的旋转姿态参数即获取各轴部件模型的旋转角度。获取TCP点坐标需定义机器人模型中TCP点位置,并计算TCP点坐标与机器人工作坐标系原点之间的坐标差值。在本文研究的机器人系统中,机器人工作坐标系原点即机器人默认的大地坐标系中心点(World Center Point,WCP),位于机器人底座的中心。在Unity3D环境中,以命名为TCP和WCP的两个GameObject语句来定义TCP点和WCP点的位置,并采用GetTcpCoordinate方法来计算TCP点坐标。由于Unity3D坐标系为左手坐标系,而机器人坐标系为右手坐标系,故在图6所示机器人TCP点与WCP点定义坐标系下,应对TCP点坐标进行如下计算:

图5 机器人平衡连杆的模型结构

public Vector3 GetTcpCoordinate()

{

return new Vector3(-(TCP.transform.position.x-WCP.transform.position.x),

-(TCP.transform.position.z-WCP.transform.position.z),

TCP.transform.position.y-WCP.transform.position.y);

(a) TCP点定义 (b) WCP点定义图6 机器人TCP点与WCP点定义坐标系

}

对TCP点坐标计算的结果,可用UnityEngine命名空间下的Vector3结构体表示。

3 虚拟仿真教学系统的设计与实现

本文在实现六轴工业机器人虚拟仿真模型控制的基础上,设计一种虚拟仿真教学系统。该系统设计架构如图7所示。系统通过人机交互界面实现虚拟仿真的场景视角控制和机器人运动操纵控制,并实现对虚拟仿真环境及模型的控制。机器人运动控制脚本驱动机器人运动,同时仿真信息脚本实时获取三维仿真模型的姿态位置等信息,并实时显示在人机交互界面上,实现虚拟仿真系统从仿真控制到信息反馈的闭环控制。

图7 机器人虚拟仿真教学系统的架构

虚拟仿真教学系统的登录界面如图8所示。

图8 虚拟仿真教学系统的登录界面

输入用户名及密码,登录后即可进入系统。系统界面如图9所示。

图9 虚拟仿真教学系统界面

通过系统界面可具体实现以下功能:①通过鼠标拖曳、滚轮缩放、特定方向正交视图等多种方式,可多角度查看机器人设备模型;②通过UI界面,控制轴1-轴6运动的滑块即可控制轴1-轴6的关节转动;③通过文本框输入轴1-轴6转动参数,可查看特定转动参数下机器人的运动姿态;④机器人运动时实时显示末端TCP点运动轨迹,以直观展示各轴运动对机器人运动轨迹的影响;⑤实时显示机器人末端TCP点在基坐标系中的坐标值,其中TCP点被定义为机器人默认的TCP点位置,即轴6末端法兰盘的中心位置。

Unity3D开发项目可部署为Windows、WebGL、iOS及Android等多平台。考虑到教学系统使用的便捷性,该系统选择WebGL平台来部署项目。WebGL可以为网页的HTML5 Canvas组件提供硬件3D加速渲染,以支持系统显卡在浏览器内部对3D虚拟仿真模型的加速渲染[11]。该系统部署后选择Windows Server平台下的Internet Information Services(IIS)进行服务发布,发布后通过浏览器访问发布地址即可访问该系统(见图10)。

图10 虚拟仿真教学系统的访问界面

4 结语

本文以IRB1410型六轴工业机器人作为研究对象,分析了其机械结构、零部件组成和运动关系,在Unity3D虚拟仿真环境中集成了全尺寸机器人三维仿真模型,通过C#语言脚本代码实现了对机器人的虚拟仿真运动控制。在此基础上设计开发了一种六轴工业机器人虚拟仿真教学系统。该系统具有以下特点:①可实现六轴工业机器人运动虚拟仿真,其运动仿真符合机器人的实际运动方式,能够为机器人运动仿真相关研究提供参考;②能够实现机器人虚拟仿真数据的实时获取,从控制到反馈的仿真过程完全闭环,作为虚拟仿真人机交互的软件开发基础;③能够提供便捷的人机交互操作界面,实现网站部署,同时系统访问便捷,易于操作,便于辅助相关实验教学。

在本文研究和软件开发的基础上,后续将在虚拟仿真环境中建立机器人正逆运动学方程,对机器人虚拟仿真监控技术进行深入研究,以顺应虚实结合映射、数字孪生技术等智能工业发展方向。

猜你喜欢
教学系统脚本部件
酒驾
淄博市大力推进交互式在线教学系统应用
基于Unity的计算机硬件组装仿真教学系统设计
加工中心若干典型失效部件缺陷的改进
安奇奇与小cool 龙(第二回)
基于移动学习理念的智慧教学系统
奥迪e-tron纯电动汽车的高电压部件(下)
基于BP与GA对非标部件结构对比研究
快乐假期
基于NRF无线通讯技术的自组网互助教学系统研究与开发