钟元权,张裕生
(安徽文达信息工程学院,安徽 合肥 231201)
VR 技术是电子技术与计算机技术相互发展与结合的一门新型技术,该技术能够构建一种逼真的虚拟环境,并利用各种类型的传感设备,使用户能够通过视觉、触觉、听觉等自身感官,并通过特定的动作技能来感知与操作虚拟环境中的物体,从而使其能够真正参与到虚拟环境当中去,进而给用户带来一种身临其境的感觉。VR 技术的出现,使人机交互方式得到了彻底的改变,其属于一种更加高级的人机接口技术,其能够使计算机和用户之间实现感性、直观而又自然的交互。现阶段,我国已经开始大力开展对VR 技术的研究,VR 技术的应用前景正变得日益广阔,并在军事、设计、如乐、信息管理、医学等诸多领域中有着极高的应用价值与发展潜力,特别是在机器人领域中,VR 技术更是已经成为机器人领域的未来研究方向。编程作为机器人应用系统中的重要环节之一,为了能够满足市场的发展需求,我国制造领域正日益趋向于小批量、多品种的柔性化发展,而在这种发展形势下,传统的机器人离线编程技术不仅需要耗费较大的人力与物力,而且难以保证编程效果。因此,面对制造领域的柔性化发展要求,人们急需探寻一种更加快捷而高效的编程方法,而基于VR 技术的机器人离线编程技术,则是借助于计算机图形学技术来构建虚拟工作环境与机器人模型,并通过相应规划算法的应用,能够使机器人在离线状态下实现路径规划。事实证明,基于VR 技术的机器人离线编程技术能够提高机器人应用系统的安全性,缩短机器人的离线时间,并起到降低人力物力成本投入的效果。
目前,我国在机器人离线编程技术中已经开发出许多工具,这些工具的出现,使机器人的离线编程技术要求得到了一定的满足,不过,现阶段我国所采用的机器人离线编程技术在某些方面仍旧存在较多缺点,这些缺点主要体现在以下几个方面:其一,现阶段所采用的三维仿真所提供的信息不符合人类工程学特点,这也使三维仿真技术的深度不够,用户仍旧需要通过屏幕来对场景进行被动式的观察,在观察深度上明显存在不足。比如,三维仿真技术在应用过程中进行碰撞检测时的难度过大;其二,无法随意确定机器人的工具中心点路径,并且所采用的方法具备很大的不便性。比如,用户通过鼠标或键盘来对机器人的目标点坐标数据进行输入时,仿真机器人与用户之间无法进行三维交互;其三,用户在对仿真系统进行操作时,需要用户具备较强的专业性,能够熟练操作仿真系统,并且还要用户具备一定的工作经验。从上述缺点中可以很明显的看出,我国现阶段所使用的机器人离线编程技术忽略了人的因素,其仅仅只对少部分人的能力进行了利用,比如立体与多面图像。此外,我国在机器人离线编程技术应用中仍旧受到显示屏幕、鼠标及键盘等硬件方面的制约[1]。
相比于以往的机器人离线编程技术来说,通过VR 技术来构建三维虚拟环境,并结合计算机图形接口技术的应用,以形成具备交互式特点的操作环境,能够大幅提高机器人离线编程的有效性,进而使VR 技术成为机器人离线编程的一种有效解决方法。用户可借助于数据手套、可穿戴式头盔来实现虚拟环境下的交互式操作,在虚拟环境中不仅包括场景与机器人,同时还能使用户真正的参与进来,进而改变以往的被动式观察方式,用户可借助于数据手套来对虚拟环境中的机器人进行控制[2]。因此,基于VR 技术的机器人离线编程技术具备以下应用优势:其一,VR 技术能够按照人类工程形式向用户提供信息,以使三维虚拟场景的构建变得更具深度,用户可对工作单元进行可视化的布局,使用户对机器人的工作空间有一个更加深入的了解,从而使机器人的工作中心布局变得更加快速,并且在虚拟碰撞检测方面也更易实现;其二,用户可通过数据手套等交互式设备来对机器人的工具中心点中的任意一条路径进行快速确定,以使用户的能力得到充分的发挥,使用户能够自行对路径进行最优规划;其三,基于VR 技术的机器人离线编程技术能够为用户提供一个先进的交互式人机接口,从而使机器人的编程工作得到大幅简化,仅需通过少量专家经验的应用就能快速完成机器人的编程工作。同时,用户可通过多模块人机接口来实现虚拟环境中机器人与用户之间的交互式操作,如手势交互、语音交互等,这使用户的操作变得更加便捷而直观,即使用户不具备编程知识,也同样能够进行编程操作,并且其不需要用户对机器人的构造及操作有所了解;其四,基于VR 技术的机器人离线编程技术还能够对程序进行快速的修改与测试[3]。通过上述分析可以了解到,VR 技术不仅是一种友好的人机交互界面,其还能作为一种可靠的平台来进行机器人离线编程及仿真工作,进而缩小了编程时间,使编程任务得到了相应的优化,同时还能针对整个单元系统进行并行化编程,降低了编程任务对用户操作水平与经验的要求,使用户能够快速学会控制机器人。
本文所提出的基于VR 技术的机器人离线编程系统结构为单主机单用户多外设的结构,该结构在VR 引擎与用户交互时,主要是以输入/输出设备作为交互媒价的,I/O 设备能够对用户的输入信息进行读取,并将仿真结果反馈给用户。
在基于VR 技术的机器人离线编程系统的硬件结构中,其主要包括以下部分,分别是SGI 图形工作站、数据手套、超声波头部跟踪装置、Fastrak 跟踪装置以及液晶光闸眼镜,SGI 图形工作站是由Silicon Graphics 公司研发的,其属于一种Indigo2 High Impact 的图形工作站,该工作站相当于整个系统的计算平台。数据手套则是由5DT 公司研发的,手套选用5th Glove。Fastrak 跟踪装置是由Polhemus 公司研发的,该跟踪装置作为一种高效的3SPACE Fastrak 传感器系统,其在机器人工作点中能够为用户提供六个自由度的定位服务。超声波头部跟踪装置是由Logitech 公司研发的,其具备视觉随动功能。液晶光闸眼镜是由Stereo Graphics 公司研发的,在该眼镜中配备有CrystalEyes 体视系统,该系统能够为用户带来逼真的立体视觉效果。而通过超声波传感设备的应用,则能够跟踪用户的头部运动及方向,计算机则能够根据用户的头部运动情况及其观察方向对显示画面进行实时的计算,并将画面信息利用立体显示设备反馈给用户,从而使用户能够观察到想要观察的画面场景。此外,用户还能利用Fastrak 传感器来对虚拟环境中机器人的手臂运动进行控制,计算机会对机器人的变化模型进行计算,然后借助数据手套将相应的手势语言进行表示出来,从而实现对机器人手臂动作的控制。基于VR 技术的机器人离线编程系统硬件结构如图1所示。
图1 基于VR技术的机器人离线编程系统硬件结构
在基于VR 技术的机器人离线编程系统的软件结构中,其主要是利用WTK 函数库来进行软件开发工作的,WTK 的全称为 WorldToolkit,利用WTK 函数库来对机器人中的参数进行标定,以此实现对建模系统的开发。通过RGMS 的应用,即Robot Geometric Modeling System 来对三维虚拟场景中的物体及机器人模型进行构建,然后将构建的三维模型进行转换,使其能够成为被WTK 所支持与识别的格式文件,然后将该图形文件导入到WTK程序当中来渲染模型,通过相应纹理、阴影、颜色及光照等效果的应用来使三维虚拟场景及机器人模型变得更加生动、逼真。在利用WTK 函数库时,主要是通过仿真管理程序的应用来对虚拟场景中的进程执行情况进行控制,仿真管理程序的应用原理应和Windows 中的消息循环机制相似,以实现对虚拟场景的高效化管理。在WTK 函数库中有着相应的函数命令,其能够对仿真循环状态与事件次序进行改变,比如,WTuniverse-go 函数命令的调用就能够使仿真循环状态启动,而WTuniverse_stop 函数命令的调用则会使仿真循环状态中断[4]。WTK 的任务仿真循环过程如图2所示。
图2 WTK的任务仿真循环过程
在利用VR 技术来构建机器人的离线编程仿真环境时,需要针对虚拟环境场景及机器人来进行相应的三维建模,应优先明确虚拟环境场景的大小及机器人的几何尺寸,然后通过交互方法采用RGM 来对虚拟环境场景及机器人的三维模型进行分别构建。在三维模型构建完毕后,将其进行图形文件导出,导出的图形文件应能够被WTK 所识别,并且在WTK 中导入图形文件之前,应先对构建的三维模型进行审视,确保三维模型构建正确并满意后将其单独存储至模型库当中,然后导入到WTK软件当中,将这些构建的三维模型当作节点添加到场景当中,以使各个节点能够按照层次进行排列,从而组成相应的场景图形,并将机器人的手臂、躯干等部分进行组合,使其在场景图中能够作为一个相应的节点层次。比如,在对Puma 机器人进行组装时,其运动臂共包括六个关节与连杆,并且连杆和基座由对应的关节进行连接,而第二个连杆和第一个连杆则是和第二关节进行连接,并以此进行类推。在第六连杆中,其和末端夹具相连接,并固定于基座当中。对于Puma 机器人来说,其六个连杆及基座均可当作相应的分离节点来构建三维模型,并在WTK 软件中以从上至下的原则来对分层结构进行组建,在该分层结构中,基座为顶部分离结点,六个连杆则为底部分层节点。当分层结构中的某个分离结点在进行几何运动时,则其也会带动其他同层次与下层次的分离节点共同进行几何运动,而对于上层的分离节点则不会受到影响。比如,在第二连杆做几何运动时,则第三、四、五、六连杆同样也会随之进行几何运动,但对于第一连杆与基座来说,则不会受到第二连杆的任何影响。而当第六连杆做几何运动时,对于其它分离节点则不会受到任何影响。这是因为第六连杆为分层结构中的最底部分层节点,其只会随着上部分层节点进行运动。当要想使机器人的整体进行几何运动,则只需确保最顶部的分层节点进行几何运动即可,也就是说,只需要使基座进行几何运动即可。而对于机器人运动臂和传感器之间的运动连接关系,则可利用传感器来对机器人运动臂进行信息驱动,即可实现机器人运动臂和Fastrak 传感器之间的运动连接,同时,通过运动约束条件的设置,便可实现利用Fastrak 传感器对机器人运动臂进行控制了[4]。
对于场景图渲染来说,通过在场景图中各个图形节点中设置材质、纹理、颜色、阴影等效果,能够使模型变得更加逼真、生动。同时,为了使三维虚拟场景具备更快的显示速度,应尽量避免场景过于复杂,可尽量减少多边形的处理数量,并通过LOD,即Level of Detail 法来进行细节层次处理,以使多边形的显示数量得以降低[5]。对于立体显示来说,可通过Crystal Eyes 体视系统来实现,该体视系统共由三个部分组成,分别是SGI 图形显示器、液晶光闸眼镜以及红外线控制装置。SGI 图形显示器的显示频率为120 帧/s,其相比于普通的显示器来说,在显示频率上要高出两倍左右,可通过仿真软件将显示器的视频模式设置成STEREO,由计算机对RGB 信号进行发送,RBG 信号应采用偏移及交替的透视图像,由眼镜对红外线进行检测,并通过电路对液晶镜头的开启关闭状态进行切换,以使其能够和显示器中的图像进行视域同步,左视域与右视域切换中其对应的左右镜头中仅有相对应的镜头是处于开启状态的,而另一镜头则是关闭状态的[6]。
在基于VR 技术的机器人离线编程系统中,其视域跟踪功能的实现是通过三维头部跟踪装置来实现的,该跟踪装置共包括三个组成部分,分别是控制单元、发射器以及一个单独的接收器,其发射器中布置有三个超声波发生器,这三个超声波发生器均被固定于三角架上,并且发生器的布置间距为30cm,发射器的布置方向需要面向于用户的头部前方。而接收器则共包括三个麦克风,其在液晶光闸眼镜中是以三角形进行布置的,在液晶兴闸眼镜中的控制单元能够对声波的传播时间进行计算,以实现对头部方向及位置的确定,并利用RS232 接口和SGI 进行连接,以使头部方向及位置信息能够发送到主机当中去,从而使仿真系统能够依据这些数据来对虚拟场景进行实时的更新,进而使用户的视线能够观察到想要观察的虚拟场景[7]。
在运动路径生成方面,需要对机器人模型中的末端节点进行定义,以使运动路径得以生成。该系统的Fastrak 传感器能够进行六个自由度的工作点定位,以使用户与机器人之间得以进行三维交互。在Fastrak 传感器系统中,其共包括控制单元、发射源与传感器三个组成部分,其中,发射源与传感器共同与控制单元相连接,并利用RS232 串口和SGI主机进行连接。控制单元能够将传感器中的模拟信号进行转换,而发射源则能够对电磁场进行发送,并利用传感器进行检测,由传感器转换成具备三个方向参数与位置参数的六个模拟信号,并发送给控制单元,由控制单元根据这六个模拟信号来对传感器的方向及位置进行描述,从而根据传感器的方向及位置来对手套方向及位置进行确定,并由仿真软件来根据方向与位置信息来对机器人的末端工作点进行定位[8]。
在手势识别及机器人的动作控制方面,主要是通过数据手套来实现的,在数据手套中嵌入有五个光纤传感器,这五个光纤传感器分别位于各个手指当中,以实现对手形状的测量,并利用二轴侧倾传感器来对手腕的俯仰角与侧倾进行测量,而手的位置则是由六自由度的跟踪器来进行确定的。数据手套和SGI 主机之间是利用串口进行连接的,数据手套的工作方式包括利用命令、连续数据、报告数据与模拟鼠标。仿真软件可对手套中用户的手指屈伸度数据进行读取,并通过模板匹配来实现手势的实别,从而达到用户通过数据手套来控制机器人运动臂动作的目的[9]。
在基于VR 技术的机器人离线编程技术中,碰撞检测是其关键技术,其对于动作控制的精确性与真实感有着决定性的影响。对于碰撞检测问题来说,可将其向多面体干涉检验问题进行转化,并按照三个层次来进行,分别是求交检查、包容性测试与包容盒检查。当机器人在按照路径进行运动时,只需对各个离散点进行上述三个层次的检验,即可实现对该路径和环境的碰撞判定,从而确定该运动路径的安全性[10]。在该系统中,主要是利用颜色变化来对碰撞与否进行指示的,当用户在执行发生碰撞的动作指令时,仿真器会拒绝执行该动作指令,并发出报警。
VR 技术的出现,使其为机器人领域带来了巨大的变革,极大促进与带动了机器人相关技术的发展与相互渗透,基于VR 技术的机器人离线编程系统,能够为用户提供一个良好的高级人机交互接口,从而使机器人的离线编程工作能够在一个直观而有效的虚拟场景中更加高效的进行。