广东工业大学学报  2023, Vol. 40Issue (2): 30-38.  DOI: 10.12052/gdutxb.220106.
0

引用本文 

何汉武, 余秋硕, 聂晖, 何明桐, 李晋芳. 基于HTC Vive的虚拟工业机器人示教编程系统[J]. 广东工业大学学报, 2023, 40(2): 30-38. DOI: 10.12052/gdutxb.220106.
He Han-wu, Yu Qiu-shuo, Nie Hui, He Ming-tong, Li Jin-fang. Teaching Programming System of Virtual Industrial Robot Based on HTC Vive[J]. JOURNAL OF GUANGDONG UNIVERSITY OF TECHNOLOGY, 2023, 40(2): 30-38. DOI: 10.12052/gdutxb.220106.

基金项目:

广东省科技计划项目(2016A040403108);广东省科技创新战略专项资金项目(pdjh201b0156);广州市科技计划项目(202206010130)

作者简介:

何汉武(1966−) ,男,教授,博士,博士生导师,主要研究方向为数字化设计与制造、增强现实交互技术与装备、虚拟医疗手术及装备、工业机器人应用等,E-mail:hwhe@gdut.edu.cn

通信作者

李晋芳(1975−) ,女,副教授,博士,硕士生导师,主要研究方向为图形图像、虚拟现实、增强现实的基础理论和应用技术,E-mail:lijinfang@gdut.edu.cn

文章历史

收稿日期:2022-06-08
基于HTC Vive的虚拟工业机器人示教编程系统
何汉武1,2, 余秋硕1, 聂晖1, 何明桐1, 李晋芳1    
1. 广东工业大学 机电工程学院,广东 广州 510006;
2. 广东工贸职业技术学院 机电工程学院,广东 广州 510510
摘要: 我国已经成为全球最大的工业机器人消费国,但相关的技术人才缺口正逐年扩大。其重要的原因是工业机器人成本高、操作危险,导致机器人示教编程存在困难。针对这一问题,基于HTC Vive(由HTC公司与VALVE公司合作开发的一款VR设备) ,将虚拟现实(Virtual Reality,VR) 技术与机器人示教编程相结合,开发了虚拟工业机器人示教编程系统。首先,分析系统的VR环境特点,为系统的主界面交互设计立体式用户界面 (User Interface, UI) ;然后进行机器人运动学建模,实现直接拖拽机器人的示教方式;运用词法分析、语法分析和语句执行机制,开发虚拟解释器,并实现快速插入式编程的功能;最后,系统实现了可进行复杂轨迹运动的机器人示教编程功能。实验测试表明系统具有良好的交互性,能进行虚拟机器人示教编程操作。本系统操作安全,并可降低机器人示教编程的成本,有助于机器人相关人才的培养、为工业生产中机器人的仿真提供方案等,助力中国制造业的发展。
关键词: 虚拟现实    机器人示教    机器人编程    HTC Vive    
Teaching Programming System of Virtual Industrial Robot Based on HTC Vive
He Han-wu1,2, Yu Qiu-shuo1, Nie Hui1, He Ming-tong1, Li Jin-fang1    
1. School of Electromechanical Engineering, Guangdong University of Technology, Guangzhou 510006, China;
2. Mechanical and Electrical Engineer Institute, Guangdong Polytechnic of Industry and Commerce, Guangzhou 510510, China
Abstract: China has become the largest consumer of industrial robots in the world, but the gap of related technical talents is expanding year by year. The important reason is the high cost and dangerous operation of industrial robots, which leads to difficulties in teaching and programming of robots. To solve this problem, based on HTC Vive (a VR device jointly developed by HTC and VALVE), a virtual industrial robot teaching programming system is developed by combining virtual reality (VR) technology with robot teaching programming. First, the VR environment characteristics of the system is analyzed, and a three-dimensional UI (User Interface) designed for the main interface interaction of the system. Then the kinematic modeling of the robot is carried out to realize the teaching method of dragging the robot directly. Using lexical analysis, syntax analysis and sentence execution mechanism, the virtual interpreter is developed, and the program editing mode of inserting instructions quickly is realized. Finally, the system realizes the robot instruction programming function which can carry out complex trajectory motion. Experimental tests show that the system has good interactivity and can be used for virtual robot teaching and programming. The system is safe to operate, and can reduce the cost of robot teaching and programming, contribute to the training of robot related talents, provide solutions for robot simulation in industrial production, and help the development of China’s manufacturing industry.
Key words: virtual reality    robot teaching    robot programming    HTC Vive    

伴随着“工业4.0”和“中国制造2025”战略的不断推进,我国已经连续8年成为全球最大的工业机器人(下称机器人) 消费国。我国实施“中国制造2025”,坚持创新驱动、智能转型、强化基础、绿色发展,从制造大国转向制造强国,对机器人领域的人才需求就必然会增加[1]。另外《制造业人才发展规划指南》指出[2],我国机器人技术人才的缺口正逐年扩大,2020年我国高档数控机床和机器人领域人才缺口达到300万,到2025年缺口将进一步扩大到450万。导致人才缺口的重要原因之一是机器人示教编程技术的学习存在困难,其困难体现在:机器人设备属于贵重商品,往往需要高昂的购买费用;初学者容易出现操作不当的情况,轻则使设备受损以致财产损失,重则危害人身安全发生伤亡事故[3-4]

为了创建良好的机器人示教编程的环境,国内外许多机构和专家开发了机器人仿真系统。例如,瑞士ABB公司[5-6]开发了Robot Studio机器人仿真软件,但该软件只支持ABB品牌的机器人;何汉武等[7]在离线编程系统HOLPS中,为PUMA系列机器人、PJ-1系列机器人实现了一种图形示教盒,以取代现场的示教盒;KUKA公司[8]开发的KUKA.Sim Pro是一款KUKA机器人仿真软件,具有大量智能组件和多种应用程序编程接口(Application Programming Interface, API) 、组件对象模型 (Component Object Model,COM) 功能;FAUNC公司[9]开发的Robo Guide、Yaskawa公司[10]开发的Moto Sim能对FAUNC机器人进行仿真;Dassault公司[11]开发的Delmia包含了许多机器人模型和周边设备资源,可用于工厂布置规划,但操作不易,且价格昂贵;Jabez Technology公司[12]开发的Robot-Master,适用大部分机器人品牌,集成多种功能旨在提升机器人示教编程效率。以上这些软件只专注于仿真功能,缺乏交互体验和示教编程的操作优化等方面的研究,普遍存在以下问题:人机交互形式不友好、虚拟示教编程功能较少。

虚拟现实技术(Virtual Reality,VR) 的崛起为上述问题提供了突破口,这是20世纪末兴起的一门崭新的综合信息技术[13],其所具有的沉浸性、交互性和构想性,能为学习者提供视觉、听觉等多感官互动体验。

笔者以Unity软件为平台,对虚拟机器人建立运动学模型,实现运动仿真功能;设计机器人语言解释器,实现程序语言解释分析功能,最终开发实现了基于HTC Vive(一款VR设备) 的虚拟工业机器人示教编程系统。在本系统中,用虚拟机器人代替现实中的机器人,不仅节省了昂贵的设备成本,同时避免了实际操作中实物损坏,进而能节省维修保养的人力财力,更为重要的是,可保证操作者的人身安全。除此之外,与传统的工业机器人仿真系统相比,本系统提供沉浸式的交互环境,操作更具趣味性,有利于激发用户的兴趣,提高学习效率。

1 系统总体设计及开发工具

根据用户需掌握的技能,系统需实现机器人虚拟示教编程的功能。在虚拟示教操作中,为了交互便利,使用直接拖拽机器人的方式进行机器人示教,在程序编辑方面实现快速插入指令的功能,以简化操作步骤,提高效率。

1.1 系统框架设计

根据系统的功能需求,设计系统的整体框架如图1所示,运用词法分析、语法分析和语句执行机制等算法,开发机器人语言解释器,实现机器人虚拟编程功能;建立机器人运动学模型,为系统中虚拟物体的几何模型添加碰撞检测功能,最后实现了机器人运动仿真,可进行机器人虚拟示教。用户通过HTC Vive设备,进入系统的沉浸式虚拟环境中,可使用HTC手持控制器(VR手柄) 对机器人进行手把手示教(拖拽示教) 与快速插入式编程。

图 1 系统整体框架设计图 Figure 1 System overall framework design drawing
1.2 系统的开发工具

HTC Vive是HTC公司与VALVE公司合作开发的VR设备,如图2所示。设备由一个头戴式显示器(VR头盔) 、两个手持控制器和两个定位器组成。HTC Vive显示器用于展示系统的场景,手持控制器为用户与系统之间进行信息交互的工具,定位器用作系统场景的空间定位。

图 2 HTC Vive VR设备 Figure 2 HTC Vive virtual reality device

系统的程序编辑和逻辑控制方面使用C#编程语言,开发所需的软件工具如表1所示。

表 1 系统开发工具 Table 1 Software tools and hardware
2 系统的交互设计 2.1 立体式UI

用户界面(User Interface,UI) 交互是用户与计算机之间进行信息传递和信息交换的桥梁[14]。在穿戴HTC Vive显示器后,视野中显示一个立体式UI,如图3所示,包括VR标注栏、VR移动栏、VR示教编程栏和VR布局栏4个模块。

图 3 系统交互界面 Figure 3 The interface of system interaction

立体式UI具有以下特点:(1) 因系统无鼠标与键盘的输入交互,需依赖HTC Vive的手持控制器发出的射线来点击UI界面进行交互。立体式UI减小了射线与UI之间的距离,使得目标UI易于被选中。(2) 系统的环境视野受HTC Vive显示器的限制,显示范围较窄,立体式UI的方案可有效节省空间。(3) 立体式UI相比于二维UI,操作灵活,更具动感,更具趣味性。

2.2 示教操作方式

机器人的示教方法可以分为直接示教与离线示教两种。直接示教方法主要有示教器示教与手把手示教。手把手示教是由操作人员直接拖拽机器人的方式实现复杂轨迹的示教[15]。在传统的机器人示教编程实训中,普遍采用实体示教器控制机器人运动,此方式需要反复多次点按示教器中的多个按钮,操作繁琐,消耗时间长。为解决该问题,系统采用直接拖拽机器人的方式,即手把手示教,使得机器人快速到达示教点。拖拽工具为HTC手持控制器,拖拽的方式分为两种,一种是选中机器人的末端进行拖动,如图4(a) 所示;另一种是选中机器人指定关节,进行相应的拖动旋转,如图4(b) 所示。

图 4 拖拽机器人进行示教 Figure 4 Dragging the robot to teach

利用Unity中的Rigidbody(刚体) 组件与Collider(碰撞盒) 组件,使得两个物体之间无法相互穿透,当发生碰撞时可触发相应的事件,实现机器人示教过程的避障功能。

2.3 程序编辑方式

手动编程是一种用户通过键盘鼠标的交互,自由地在编程面板输入程序的编程方式。而VR环境已摆脱了鼠标键盘的束缚,相比于手动编程的方式,快速插入指令的编程方式更适用于VR环境,且更快捷高效。采用这种方式实质上是利用了已有的指令模板,通过按钮下拉框选择的方式来更改参数进行插入,确保在VR环境中的编程不会出现语法和词法错误,能顺利通过机器人解释器的编译。不同的机器人品牌有着不同的编程语言,使用快速插入法让用户更专注于机器人编程的逻辑思维而不仅仅专注于机器人编程语言的语法等。例如,将一些常用的运动指令、保存好的示教点变量、常用的速度参数集成在一个面板上,通过下拉框对它们进行选择,实现指令的快速插入,提高程序编辑的效率,如图5所示。

图 5 VR环境快速插入指令编程 Figure 5 Fast insert instruction programming in VR environment
3 机器人运动学分析及示教功能 3.1 机器人运动建模

在虚拟示教中,要使机器人按照目标点进行轨迹运动,需要对机器人进行运动学建模。在三维空间中任意刚体Q,设定自身坐标系为{B},基坐标系为{A},如图6所示。

图 6 刚体Q的位姿表示 Figure 6 The position and rotation of the rigid body Q

用列向量 ${}_B^A{\boldsymbol{Q}} = {[{q_x},{q_y},{q_z}]^{\rm{T}}} $ 描述刚体Q在基坐标系{A}中的位置,其中 $ {q}_{x},{q}_{y},{q}_{z} $ 对应着Q点从坐标系{B}到{A}的不同分量关系。坐标系{B}相较于{A}的姿态变化关系由旋转矩阵 $ {}_B^A\boldsymbol{R} $ 描述。

$ \begin{split} {}_{B}^{A}\boldsymbol{R}=&\left[\begin{array}{ccc}{{\boldsymbol{X}}_{B}} \cdot {{\boldsymbol{X}}_{A}}& {{\boldsymbol{Y}}_{B}} \cdot {{\boldsymbol{X}}_{A}}& {{\boldsymbol{Z}}_{B}} \cdot {{\boldsymbol{X}}_{A}}\\ {{\boldsymbol{X}}_{B}} \cdot {{\boldsymbol{Y}}_{A}}& {{\boldsymbol{Y}}_{B}} \cdot {{\boldsymbol{Y}}_{A}}& {{\boldsymbol{Z}}_{B}} \cdot {{\boldsymbol{Y}}_{A}}\\ {{\boldsymbol{X}}_{B}} \cdot {{\boldsymbol{Z}}_{A}}& {{\boldsymbol{Y}}_{B}} \cdot {{\boldsymbol{Z}}_{A}}& {{\boldsymbol{Z}}_{B}} \cdot {{\boldsymbol{Z}}_{A}}\end{array}\right]=\\ &\left[\begin{array}{ccc}{r}_{11}& {r}_{12}& {r}_{13}\\ {r}_{21}& {r}_{22}& {r}_{23}\\ {r}_{31}& {r}_{32}& {r}_{33}\end{array}\right] \end{split} $ (1)

式中: $ {{\boldsymbol{X}}_{A}} $ $ {{\boldsymbol{Y}}_{A}} $ $ {{\boldsymbol{Z}}_{A}} $ 为坐标系{A}在其坐标轴方向的单位向量, $ {{\boldsymbol{X}}_{B}} $ $ {{\boldsymbol{Y}}_{B}} $ $ {{\boldsymbol{Z}}_{B}} $ 为坐标系{B}在其坐标轴方向上的单位向量。

当坐标系{B}相对于坐标系{A}分别绕Z,X,Y坐标轴旋转角度为θ时,如图7所示,其旋转变换矩阵分别为式(2)、式(3)、式(4)。

图 7 绕单一轴旋转 Figure 7 The position and rotation of the rigid bodyQ
$ {\bf{Rot}}\left(Z,\theta \right) =\left[\begin{array}{ccc}\mathrm{c}\mathrm{o}\mathrm{s}\theta & -\mathrm{s}\mathrm{i}\mathrm{n}\theta & 0\\ \mathrm{s}\mathrm{i}\mathrm{n}\theta & \mathrm{c}\mathrm{o}\mathrm{s}\theta & 0\\ 0& 0& 1\end{array}\right] $ (2)
${\bf{Rot}}\left(X,\theta \right) =\left[\begin{array}{ccc}1& 0& 0\\ 0& \mathrm{c}\mathrm{o}\mathrm{s}\theta & -\mathrm{s}\mathrm{i}\mathrm{n}\theta \\ 0& \mathrm{s}\mathrm{i}\mathrm{n}\theta & \mathrm{c}\mathrm{o}\mathrm{s}\theta \end{array}\right] $ (3)
$ {\bf{Rot}}\left(Y,\theta \right) =\left[\begin{array}{ccc}\mathrm{c}\mathrm{o}\mathrm{s}\theta & 0& \mathrm{s}\mathrm{i}\mathrm{n}\theta \\ 0& 1& 0\\ -\mathrm{s}\mathrm{i}\mathrm{n}\theta & 0& \mathrm{c}\mathrm{o}\mathrm{s}\theta \end{array}\right] $ (4)

用位姿矩阵 $ {}_{B}^{A}\boldsymbol{T} $ 来同时表示刚体Q的位置及姿态,如式(5) 所示。

$ {}_{B}^{A}\boldsymbol{T}=\left[\begin{array}{cc}{}_{B}^{A}\boldsymbol{R}& {}_{B}^{A}\boldsymbol{Q}\\ 0& 1\end{array}\right] $ (5)

系统将机器人底座命名为连杆0,末端执行器命名为连杆h,结合改进的D-H坐标系法则,建立了如图8所示的连杆坐标系,其中 $ {X}_{0}-{Z}_{0} $ 为基坐标系, $ {X}_{h}-{Z}_{h} $ 为手部坐标系。轴4、轴5和轴6坐标系原点汇聚于关节5这一手腕点,方便矩阵计算和机器人逆运动学的求解;建立手部坐标系{h}则便于计算得到机器人末端中心的位置及姿态。

图 8 机器人的连杆坐标系的建立 Figure 8 Establishment of affixing frames to links for six-axis robot

根据系统建立的运动学模型与机器人各部位尺寸参数,对机器人的末端姿态进行逆运动学求解,将末端姿态转换为机器人各个关节转动的角度,从而实现拖拽机器人末端使机器人到达示教点的功能。

拖拽机器人关节到达示教点的操作,原理是计算当前帧和上一帧手柄投影向量所差的角度值,从而驱动该机器人关节旋转这一差值。以选中第一个关节为例,如图9所示,分别将当前帧和上一帧的右手手柄位置与关节点1(p点) 进行连接,将得到的连线投影在关节点1所在的 $ {X}_{1}-{Y}_{1} $ 平面上,得到两个向量 $\rightharpoonup{{{{V}_0}{p}}}$ $\rightharpoonup{{{{V}_1}{p}}} $ ,通过Vector3.Dot( $ \rightharpoonup{{{{V}_0}{p}}} $ $\rightharpoonup{{{{V}_1}{p}}} $ )点积运算得到两个向量之间夹角α的余弦值。通过Vector3.Cross( $\rightharpoonup{{{{V}_0}{p}}} $ $\rightharpoonup{{{{V}_1}{p}}} $ ), 叉积运算的值a判断旋转方向,a>0为顺时针,a<0为逆时针方向。至此,得到机器人每个关节各要转[α,0,0,0,0,0]角度,根据机器人正运动学能求出对应的机器人运动位姿。若选中其他的关节,也是同理求机器人运动的位姿以达到示教目的。

图 9 投影向量差原理 Figure 9 Principle of projection vector difference
3.2 虚拟示教功能

虚拟示教模块的功能是保存示教点、机器人I/O(Input/Output,输入/输出) 状态设置、查看已保存示教点信息。

(1) 保存示教点。根据机器人示教方式的不同,所获得的示教点类型有所不同。以拖拽机器人末端获得的示教点为Pose类型,以拖拽机器人关节获得的示教点为Joint类型。在获得示教点后,可对其进行保存:首先对示教点赋予编号,然后记录示教点的类型,点击Save按钮便可保存示教点,示教点对应的机器人末端位姿信息以及各个关节的转动信息同样被保存下来,如图10所示,可支持保存16个示教点。

图 10 保存示教点过程 Figure 10 The process of saving teaching point

(2) 机器人I/O状态设置。系统可对机器人进行I/O配置,配置后用户可以直接调用吸取、夹取等功能。机器人DO(Digital Output,数字量输出) 表信息,如表2所示。

表 2 机器人DO表 Table 2 Robot DO table

现实中实体机器人的DO输出信号传送给PLC(Programmable Logic Controller, 可编程逻辑控制器),PLC通过中间继电器控制电磁阀,使机器人完成相应的动作。在本系统中,通过修改机器人I/O状态,间接模拟信号控制这一过程,提高示教过程的效率。以机器人搬运盒子为例,如图11所示,在HTC Vive显示器中可见到当机器人移动到盒子上方时,在I/O状态设置面板中,将DO14状态设置为ON(当前I/O口的状态以绿色高亮显示),机器人便执行吸取操作;当需要放下盒子时,将DO14口状态切换为OFF。

图 11 VR环境修改I/O状态 Figure 11 Modifying I/O status in the VR environment

(3) 查看已保存示教点信息。系统提供一个延展面板来查看示教点的类型和值,如图12所示,一个示教点的类型和值可以通过重新示教保存进行更改操作。

图 12 查看已保存变量信息 Figure 12 Viewing the saved variables

系统的虚拟示教功能,解决了传统仿真系统中需要多次点击机器人移动按钮的问题,能够快速移动机器人到示教点,简化操作流程并提高效率。

4 机器人解释器与编程

虚拟解释器是实现机器人虚拟编程功能的核心,其主要功能就是将机器人源程序进行解释执行。机器人的响应速度和执行的稳定性会与解释器性能的强弱有关,其性能的强弱还会影响语言解释器的拓展性与可维护性[16]

4.1 虚拟解释器

系统的虚拟解释器分为交互模块、解释模块和机器人模块,如图13所示。其中,交互模块向用户提供系统的交互操作;解释模块完成机器人程序的解析与运行;机器人模块负责实现虚拟机器人的运动学求解与驱动。

图 13 虚拟解释器 Figure 13 Virtual reality interpreter

解释模块包含有3个主功能模块和1个辅助功能模块,主功能模块分别是词法分析、语法语义分析和运行模块,辅助功能模块是错误处理模块。词法分析[17]模块接受来自交互模块的字符串流形式的机器人源代码,通过匹配词法集JSON文件记录的词法规则,分割源代码形成词法单元序列;语法语义分析模块得到词法单元序列输入后,遍历扫描词法单元序列,根据机器人语言的文法规则构建语法树节点,并结合全局符号表验证节点的语义正确性,最后输出语法树[18];运行模块解析执行构造后的语法树,根据指令向虚拟控制器发送命令,触发控制函数驱动虚拟机器人;错误处理模块负责收集发生在词法分析、语法语义分析和程序执行等过程中发现的错误。

虚拟解释器能够帮助用户判断机器人编程的准确性,校正用户错误的编程逻辑思维和错误编程习惯,有利于用户在实体机器人操作中掌握机器人编程的要点和提升处理程序错误的能力。

4.2 虚拟编程功能

系统通过点击按钮快速插入指令的方法,减少手动输入操作,可快速地选择保存后的示教点,操作便捷。在机器人编程操作中,包括插入编程指令、绑定分析、运行验证3个主要功能。

(1) 插入编程指令。用户可通过下拉框选择好运动指令类型、示教点变量名、速度3个参数信息,然后点击“快速插入”按钮,编程面板便呈现插入好的指令,如图14所示。点击“撤销”“重写”按钮可撤销或清除已经编辑好的程序。

图 14 插入运动指令过程 Figure 14 Robot teaching panel

(2) 绑定分析。完成插入指令后,点击“绑定”按钮将指令绑定到当前操作的机器人,点击“分析”按钮对指令进行分析,如图15所示。

图 15 绑定分析通过过程 Figure 15 The process of binding analysis

(3) 运行验证。机器人程序分析通过后,通过点击编程界面中的“启动”按钮,可重现示教时候的机器人轨迹。

5 系统示教编程案例及系统评估 5.1 系统示教编程案例

系统的示教编程操作流程如图16所示,首先点击立体式UI的“jog”按钮,激活机器人虚拟拖拽功能;在示教面板中查看示教点信息,使用HTC Vive手持控制器拖拽机器人到示教点进行保存;完成所有示教点保存后,进入编程面板,选择指令及配置参数并通过点击“快速插入”按钮实现插入编程指令的操作,在编程面板则呈现出相应的指令;完成所有指令编程后,将程序绑定到机器人,解释器对程序进行分析;在分析成功通过后,可试运行编程轨迹,验证示教点和编程逻辑的正确性。

图 16 机器人示教编程操作流程 Figure 16 Robot teaching and programming process

使用系统搭建一个机器人实训平台,运用示教与编程功能,能够实现绘画、喷涂、模拟点胶、包装分拣等应用。机器人绘画操作中,涉及到直线与曲线运动,这不仅考验系统运动学模型的准确性,也能更好地锻炼用户的编程能力,以此为例进行分析。

在机器人绘画中,机器人末端夹具对置物架的画笔进行夹取,在画板上画出三条直线加一条圆弧曲线的封闭图形。首先需要对该过程中机器人经过的轨迹点进行示教,并保存下来,如图17所示。

图 17 机器人画画示教及保存 Figure 17 Robot teaching and preservation during robot drawing application

通过示教获得p0、p1、p2等多个示教点,再通过快速插入指令方法,编写出可成功完成任务的程序。绑定分析后得到结果如图18所示。

图 18 机器人绘画编程 Figure 18 Robot drawing programming

机器人程序分析通过后,点击编程界面中的“启动”按钮,可以重现示教时的机器人轨迹。如图19所示,机器人末端从置物架中选择画笔,然后沿着示教的轨迹移动到画板上方,通过执行编辑好的程序,进行绘画操作,绘画的结果如图19(c) 所示。

图 19 机器人绘画轨迹运行效果 Figure 19 The running effect robot drawing track

案例中的包装分拣、模拟点胶、喷涂、入库等案例应用,因篇幅限制,不作赘述。通过实现这些案例,用户能够掌握机器人的示教与编程技能。

5.2 系统评估

评估的目的是测试本系统的体验性、交互性以及功能效果。参与测试共有10人,身份为学生,均无机器人示教编程经验,年龄范围在19~24岁之间,问卷内容如表3所示。

表 3 问卷内容 Table 3 Questionnaire content

题目的1、2的评分范围为1~5分,分数越高,则评价越好。题目1、2的评价结果一致,均为4分占3人,5分占7人,统计结果如图20(a)所示,反映出本系统的沉浸式环境良好,系统运行流畅。对于题目3、4,参与测试人员均给出肯定的评价;题目5的统计结果如图20(b)所示,大部分测试人员能够在7天内掌握机器人示教编程的技能。以上说明实验人员认为本系统体验良好,并可以通过使用系统完成示教编程的学习。

图 20 系统测试调查结果 Figure 20 System test results

系统的案例是根据现有的机器人实训平台搭建,测试者在VR系统中掌握了机器人示教编程技能后,可直接在实训平台中进行实操。实训平台所用到的机器人是由配天机器人有限公司生产制造,VR系统中的机器人与实训平台的一致,所以本系统可代替配天机器人示教编程的学习。不同品牌的机器人,其编程语言有所不同,因本系统可培养用户的编程逻辑能力,通过在本系统学习后,亦可以缩小掌握其他品牌机器人示教编程的时间。

6 结语

将VR与机器人示教编程相结合,设计开发了基于HTC Vive的虚拟工业机器人示教编程系统,通过案例验证了系统的可行性。并通过实验测试,表明系统具有良好沉浸式环境,系统的拖拽示教与快速插入式编程,解决了传统仿真系统中需要多次点击机器人移动按钮的问题,能够快速移动机器人到示教点,简化操作流程、提高效率。通过在系统的VR环境中进行机器人示教编程,既避免了机器损坏的问题,又节约机器的维护成本,并且保证操作的安全性。

后续的研究中,在使用HTC Vive设备的基础上,增加更多新型人机交互形式,如可结合Leap Motion设备通过手势识别示教机器人、结合Kinect设备通过动作识别示教机器人等。

参考文献
[1]
金恒越, 马建国. “中国制造2025”战略背景下物联网发展趋势与技术挑战[J]. 广东工业大学学报, 2018, 35(3): 10-17.
JIN H Y, MA J G. Internet-of-things for "made in China 2025": the trends and technology challenges[J]. Journal of Guangdong University of Technology, 2018, 35(3): 10-17. DOI: 10.12052/gdutxb.180024.
[2]
方晓霞. 中国机器人产业: 现状、问题与对策[J]. 发展研究, 2018, 35(10): 25-33.
FANG X X. China’s robotics industry: current situation, issues and countermeasures[J]. Development Research, 2018, 35(10): 25-33.
[3]
秦方博, 徐德. 机器人操作技能模型综述[J]. 自动化学报, 2019, 45(8): 1401-1418.
QIN F B, XU D. Review of robot manipulation skillmodels[J]. Acta Automatica Sinica, 2019, 45(8): 1401-1418.
[4]
陈子健. 基于WPF与Unity3D的工业机器人虚拟示教与仿真开发[D]. 厦门: 厦门大学, 2020.
[5]
何剑敏, 羊荣金, 沈孟锋. 基于Robot Studio的智能制造单元实验平台仿真设计[J]. 实验技术与管理, 2022, 39(3): 99-104.
HE J M, YANG R J, SHEN M F. Simulation design of experimental platform for intelligent manufacturing unit based on Robot Studio[J]. Experimental Technology and Management, 2022, 39(3): 99-104. DOI: 10.16791/j.cnki.sjg.2022.03.018.
[6]
KALAIARASAN G, THOMAS A T, KIRUBHA C, et al. Development of edge processing and drawing algorithms for a 6 axis industrial robot[J]. Springer India, 2016, 28(11): 761-768.
[7]
何汉武, 熊有伦, 黄楼林. 机器人图形示教盒编程的研究[J]. 机器人, 1993, 15(1): 30-34.
HE H W, XIONG Y L, HUANG L L. A study on robot graphic teach-in programming[J]. Robot, 1993, 15(1): 30-34.
[8]
SAFEEA M, NETO P. Kuka Sunrise toolbox: interfacing collaborative robots with matlab[J]. IEEE Robotics & Automation Magazine, 2019, 26(1): 91-96.
[9]
YAO G, DUAN F, LU Z, et al. Application of virtual reality technology for fanuc robot in industrial production based on robot guide platform[J]. Mechanical Engineer, 2014, 20(1): 60-63.
[10]
QIAN Y J, ZHANG A H, CHEN X X. Yaskawa robot virtual teaching simulation based on motosim EG[J]. Journal of Wuxi Institute of Technology, 2017, 16(1): 47-49.
[11]
CHERA I, BOLOGA O, RACZ G, et al. Trajectrory control for an incremental forming process using an industrial robot in delmia[J]. Academic Journal of Manufacturing Engineering, 2013, 14(2): 86-95.
[12]
KULAKOV F, SOKOLOV B, SHALYTO A, et al. Robot master slave and supervisory control with large time delays of control signals and feedback[J]. Applied Mathematical Sciences, 2016, 10(36): 1783-1796.
[13]
赵沁平, 周彬, 李甲, 等. 虚拟现实技术研究进展[J]. 科技导报, 2016, 34(14): 71-75.
ZHAO Q P, ZHOU B, LI J, et al. A brief survey onvirtual reality technology[J]. Science & Technology Review, 2016, 34(14): 71-75.
[14]
张凤军, 戴国忠. 虚拟现实的人机交互综述[J]. 中国科学:信息科学, 2016, 46(12): 1711-1736.
ZHANG F J, DAI G Z. A survey on human-computerinteraction in virtual realty[J]. Scientia Sinica (Informationis), 2016, 46(12): 1711-1736. DOI: 10.1360/N112016-00252.
[15]
陈宇鹏, 高伟强, 卢一光. 手把手示教喷涂机器人的示教数据优化方法[J]. 广东工业大学学报, 2020, 37(4): 21-26.
CHEN Y P, GAO W Q, LU Y G. A teaching data optimization method of hand by hand teaching spray robot[J]. Journal of Guangdong University of Technology, 2020, 37(4): 21-26. DOI: 10.12052/gdutxb.200001.
[16]
陈旭, 陈富林. 工业机器人语言及其解释器的研究与实现[J]. 组合机床与自动化加工技术, 2019, 61(5): 111-113.
CHEN X, CHEN F L. The study and implement of industrial robot language and interpreter[J]. Modular Machine Tool & Automatic Manufacturing Technique, 2019, 61(5): 111-113.
[17]
郑炳坤, 叶峰, 赵崇裕, 等. 工业机器人语言的词法语法分析器研究[J]. 机械设计与制造, 2014, 52(1): 209-212.
ZHENG B K, YE F, ZHAO C Y, et al. Study on the lexical and syntactic analyzer for industrial robot language[J]. Machinery Design & Manufacture, 2014, 52(1): 209-212. DOI: 10.3969/j.issn.1001-3997.2014.01.064.
[18]
MIGUEl C, JOHAN F. Live robot programming: the language, its implementation, and robot API independence[J]. Science of Computer Programming, 2017, 133(1): 1-19.