APP下载

工业机器人三维虚拟监控系统的设计与实现

2020-10-21孙恺廷朱隽垚于存贵周成

机械制造与自动化 2020年5期
关键词:应用程序虚拟现实监控

孙恺廷,朱隽垚,于存贵,周成

(1. 南京理工大学 机械工程学院,江苏 南京 210094;2. 湖北江山重工有限责任公司 火箭炮研究院,湖北 襄阳 441057)

0 引言

随着工业机器人在工业领域的普及和推广,工业机器人将会越来越多地代替人完成一些高难度、高风险、工作环境恶劣的工作,在这种情况下如何实现对工业机器人的有效监控就显得非常重要了。近年来,随着计算机仿真技术的发展,基于实时数据驱动的工业机器人三维虚拟监控系统备受关注,国内外许多学者也对此进行了研究,但是普遍存在系统开发门槛高、开发效率低、系统可移植性差、监控方式单一等问题。

目前,可实现虚拟监控系统的方式大致可以分为4类[1-6]:

1) 利用三维动画软件实现

通过预先设计好三维模型的各种动作,如:转动、平移、缩放等,利用三维动画制作软件建模,生成控制对象各种角度、姿态对应的图片,并按一定的规则对其进行编号。在显示时,只需计算控制对象对应的图片编号并加以调用显示就可以达到实时仿真的目的。但是由于该方法只能在可知范围内对控制对象的简单动作进行动画演示,在控制对象动作复杂、运动趋势不确定的情况下采用三维动画制作软件的方式实现虚拟监控,往往会造成系统庞大、实时性差以及控制对象动作失真的情况。

2) 直接利用OpenGL实现

OpenGL(open graphics library,开放图形库)是一种适用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,是一种独立于硬件设备和操作系统的图形与硬件的接口,开发人员可以利用它开发出功能强大的交互图形应用程序。由于OpenGL的核心API没有窗口系统、音频、打印、键盘/鼠标或其他输入设备的概念,这就意味着如果直接使用OpenGL开发虚拟监控系统需要自己完成窗口界面的设计、交互程序的开发以及模型对事件的响应等底层程序开发工作。这些程序开发工作要求开发者熟练掌握C/C++和Java语言,这对非计算机专业的人员来说,直接使用OpenGL开发复杂的三维应用程序是比较困难的。

3) 利用Web3D技术实现

目前,Web3D的实现有几十种可供选择的技术和解决方案,相关的软件有30多种,并且仍然有新的技术出现,使Web3D的渲染速度、图形质量、造型技术、交互性以及数据的压缩与优化等不断得到提高。典型的Web3D技术有:Cult3D、Java3D、Atmosphere、Direct3D、Viewpoint、X3D/VRML2.0(VRML1997)等。但是,由于缺乏统一的标准,各种技术都是由不同的厂商自行开发的解决方案,使得每种技术使用的都是不同的格式和方法,而且几乎每个厂商开发的标准都需要自己的插件支持,这极大地限制了Web3D技术的应用。

4) 基于虚拟现实技术的多软件协同实现

采用虚拟现实开发引擎如Unity 3D、IdeaVR,结合三维实体建模软件如Solidworks、Creo,模型渲染软件如Maya、3Ds Max协同开发虚拟现实系统。采用多软件协同开发的优势在于可以充分发挥各专业软件的性能优势,减少系统底层开发的工作量,降低了系统的开发门槛,缩短了系统的开发周期。

综上所述,本文选择第4种方式开发虚拟监控系统。具体来说,以ABB公司生产的六自由度串联工业机器人IRB1400本体和IRC5控制器组成的机器人控制系统为研究对象,通过Creo三维实体建模、3DS Max模型渲染、Unity3D虚拟场景构建以及TingWorx采集数据实现虚拟监控系统的成功上线。系统的开发可分为3个阶段:模型构建、实时数据采集传输以及基于实时数据的模型驱动。

1 模型构建

在工业机器人的三维虚拟监控系统开发中,首先要进行的就是三维模型的构建。建模是对现实对象或真实环境的模拟,逼真的模型是实现虚拟现实系统真实感和沉浸感的基础[7]。

本系统三维模型构建的具体步骤:

1)模型数据的采集

本系统以个性化印章生产线中的搬运机器人为原型,工业机器人的外观、几何参数来自于设备厂商,纹理信息来自实地拍摄的照片,其他场景、设备信息根据需求实地测量或者合理设计获得。

2)模型创建

采用Creo软件创建工业机器人三维实体模型。为提高三维虚拟监控系统的性能,在模型创建时就需要删除机械臂、控制柜内部等具体结构中一些不可见的、不必要的几何元素。

3) 模型渲染

在3DS Max软件中,渲染创建好的三维实体模型,利用材质、纹理贴图模拟真实材料的质感,使模型具有真实材质纹理的感官效果。为方便后续在Unity3D中定义机械臂的动作,每一个运动单元都应是一个独立的物体,如图1所示。

图1 机械臂关节独立示意图

4) 场景搭建

将3DS Max软件渲染完成的模型以.FBX格式导入Unity3D中,然后将机械臂以及其他模型添加到场景的合适位置,调整模型各个属性的参数值,添加灯光效果,使模型具有光学上的真实感。场景模型如图2所示。

图2 系统场景模型

2 数据采集与存储

工业机器人三维虚拟监控系统是由真实的设备数据进行驱动的,因此需要将机械臂各关节的实时角度、末端的世界坐标以及末端执行器的状态信息采集、传输到数据库。具体实现过程可分为两步进行:使用ABB提供的PC SDK开发上位机程序读取需要监测的数据信息;基于Remoting协议采用C#语言编写应用程序将数据与ThingWorx进行对接。

2.1 数据采集

ABB提供的PC SDK允许系统集成商、第三方或个人用户为IRC5控制器添加自定义的应用程序。这种自定义的、独立的应用程序通过网络与机器人控制器进行通信,并可以作为独立的PC应用程序使用。本文通过该PC SDK开发的应用程序的功能主要包括两部分:扫描在线的ABB机器人;采集所有在线机器人的六关节轴角度以及末端的世界坐标和IO信息(末端执行器状态),数据采集结果如图3所示。程序运行结果表明有2台ABB机器人在线,这也是符合现场实际状态的。

图3 工业机器人数据采集结果

2.2 数据传输与存储

ThingWorx提供了相应的数据访问接口,只需在开发环境中使用C#语言将数据与相应的接口进行绑定,就可以实现数据的上传;由于ThingWorx内部已经集成了PostgreSQL数据库,对于上传的数据会进行自动保存,这大大简化了开发过程。数据传输部分程序如图4所示。

图4 数据传输部分程序

3 基于实时数据的模型驱动

基于实时数据的模型驱动是实现虚拟监控系统的关键环节,其实现过程可分为以下4部分内容:建立合理的层次关系、从ThingWorx获取实时数据、对实时数据进行解析以及将数据与运动单元进行绑定。

3.1 建立合理的层次关系

虚拟场景采用场景树进行管理,利用树结构来表现物体之间的层级关系,子节点是父节点的子物体,所有节点是根节点的子物体。工业机器人的层次关系如图5所示。

图5 模型的层次关系

3.2 从数据库获取实时数据

ThingWorx支持网页访问数据库,因此本文通过编写C#程序访问特定网址的方式获取实时数据,并设定数据读取频率。update函数可实现每秒50次的数据更新,但考虑实际应用需求和服务器处理能力,设定数据读取频率为10。部分程序如图6所示。

图6 获取实时数据

3.3 对实时数据进行解析

因为数据库中包含车间所有设备的状态数据,如图7所示。因此在获取实时数据后,还需要对数据进行匹配和解析。部分程序如图8所示。

图7 数据库中的实时数据

图8 数据解析

3.4 将实时数据与运动单元进行绑定

这里使用了Unity3D提供的Dotween插件,它提供了常用运动的API函数,可以快速对模型的运动进行定义。部分程序如图9所示。

图9 基于实时数据的模型驱动

3.5 系统发布与调试

工业机器人三维虚拟监控系统最终是通过网页的形式进行发布的。本文通过示教器手动随机操作机器人的方式验证系统的监控效果,并通过调整Dotween API函数的参数,实现模型运动与真实运动的同步。现场调试过程如图10所示。

图10 现场调试

4 结语

本文研究了一种基于多软件协同的方式实现工业机器人三维虚拟监控系统,提出一种基于Creo、3DS Max、Unity3D、ThingWorx软件相结合的工业机器人三维虚拟监控系统的快速开发方法。使用SDK编写自定义的数据采集程序实现工业机器人实时数据的上传,简化了系统的结构;采用虚拟现实的方式实现监控过程,其效果更加逼真,人机交互性更好;采用网页的形式进行发布,允许移动智能终端的访问,提高了监控的便捷性。由于本监控系统仅作为数字化车间三维虚拟监控系统的一部分内容,整体系统还未开发完毕,对工业机器人的监控只是作为系统可行性的验证,接下来将整合整个车间的生产过程,并在场景性能优化、人机交互、可视化管控等方面继续研究。

猜你喜欢

应用程序虚拟现实监控
The Great Barrier Reef shows coral comeback
虚拟现实技术在中学校园中的应用
删除Win10中自带的应用程序
你被监控了吗?
Zabbix在ATS系统集中监控中的应用
谷歌禁止加密货币应用程序
风口上的虚拟现实
虚拟现实技术向科幻小说借灵感
PDCA循环法在多重耐药菌感染监控中的应用
浅谈虚拟现实