张 洋 (大庆钻探工程公司钻井工程技术研究院信息中心,黑龙江大庆1 6341 3)
王 鑫 (东北石油大学计算机与信息技术学院,黑龙江大庆1 63318)
虚拟现实技术在诸多行业已经广泛兴起,其主要技术是利用先进的软件和硬件设备 (如计算机、仿真手套等),使参与者产生身临其境的感觉。该技术在培训领域有着巨大应用潜力,而在油田钻井方面的应用培训还是处于起步阶段。为此,笔者结合虚拟现实技术和油田钻井作业的特点,以大庆某钻探公司的一个野外钻井现场为虚拟对象,使用Virtools工具开发出钻井作业考试系统。
法国的全球交互三维开发解决方案公司Virtools开发的Virtools软件,因其方便易用、应用领域广,在各行业中被广泛应用,其三维引擎已经成为微软XBox认可系统[1]。Virtools软件是1套具有丰富行为交互模块的可视化三维开发工具,其应用目前主要针对静态模型的虚拟漫游和系统仿真等方面,由开发模块、生成模块和发布模块组成[2](见图1)。
图1 Virtools组成模块
该系统漫游平台下的图形渲染是实时的,同时还应具有较强的人机交互能力,可根据不同登陆者的身份给予不同的操作权限,操作者可以在场景中自由移动,针对培训者考试后还给出考试分数和未完成的作业步骤。考虑到该系统主要为工人培训使用,需要专门人员进行分值设置,故加入了登陆模块,以便区分参加培训者和管理员。针对培训者设计了该系统核心模块,即评分模块。由于钻井相关设备较多,初级操作者难以区分,加入了鼠标识别功能模块。此外,还加入了漫游模块和音乐控制模块。
针对不同用户的不同权限分配设计了相应登陆方式,普通用户 (接受培训的用户)可以直接进入该系统,并自动进入考评界面,而管理员则凭口令登陆并可以修改每步操作的分值。考虑到趣味性,登录模块设置了背景音乐和动态背景,对于登陆按钮和界面采用了渐隐渐显并且与声音配合的方式。
对于钻井作业考试中的每步分值,可以通过Virtools内部自带的表格进行初始化。考虑到一旦被发布为html或exe文件就难以再次编辑array,因此预留出设置分支的接口,方便管理员随时设置某一钻井作业的每步分值。当普通用户操作完毕后,可将考试成绩和没有完成操作规程的相应步骤自行显示在评分界面上。
该模块的功能是使操作者在考试过程中明确当前鼠标所指物体得名称,当鼠标移到相关操作物体上时,马上显示该物体名字,从而方便操作者识别和确认当前操作设备或工具。
将该模块分为自主漫游模块和自动漫游模块:①自主漫游模块。通过该模块操作者能自由控制虚拟角色在整个漫游场景的移动,从而到达虚拟作业场景中任一位置。操作者通过键盘和鼠标操作,可以进行任何视角的旋转及前、后、左、右的移动。②自动漫游模块。通过该模块操作者可以根据需求选择虚拟场景中1条事先制定好的路线,而漫游引擎可根据该路线为用户展示沿线的虚拟作业场景。此外,操作者也可以按照自己的想法定制漫游路径。
普通用户可直接进入该系统,而管理员用户要通过口令验证才能登陆 (见图2),但其拥有更高权限,如可以修改分值等。
1)建表 该步骤包括建立记录操作表和对比操作表,并在对比操作表中记录好每1步的名称及相应分值。
在VT中建立一个能够用于参照的评分标准,包括具体操作步骤及每1步的分值,将该表命名为对比操作表。以表层钻进中的二开操作演练系统例,打开 VT单击选项卡 “level Manager”左边会出现一系列的新建命令,单击 “Creat Array”命令,在弹出的 “Array Setup”设置界面中单击 “Add Column”按钮,同时修改列名和数据类型为 “步骤”和 “String”,接着再添加一列列名和数据类型分别为 “分值”和 “intger”,再根据操作演练的步骤来设置行数,通过多次单击“Add Row”来实现添加行。
图2 管理员登陆界面
在弹出的 Add Column对话框修改列名和数据类型,建立记录操作表 (见图3),与对比操作表的不同之处是该表多1列,命名为 “是否读取过”,数据类型为integer,由于默认值是0,可以用 “1”来代表该行 (步)并确定是否进行了该步的操作。
图3 记录操作表
2)建立线性脚本 按照操作顺序,为每1步骤建立脚本,且每1步骤之间的关系是线性的,即只有完成上1步骤后才能执行下1步骤,与此同时根据对比操作表向记录操作表中写入数据。该系统中由于相关模型可能需要经过多次点击才能进行操作,而如何判断是正确操作下的点击还是错误操作导致的点击以及当前被点击模型是第几次被点击,一个好的方法是把正确操作做成线性的脚本 (不能跳跃执行),再建立一个等待单击所有可点击物体的脚本。由于设定用户对于可点击物体仅可以点击一次,因此每点击一次就对比表中该次所对应步骤的行的第2列,看其标志量是否为1,如果是则证明该步操作已经正确完成,否则证明当前操作错误,并改写标志量为1(见图4)。
3)计算分值 将对比操作表和记录操作表加以比较,测试哪些步骤已经完成,哪些步骤没有完成,然后计算分值并显示出来 (见图5)。
图4 部分线性脚本
图5 计算分值脚本
根据鼠标当前拾取物体是否在指定的组中来判定当前物体的名称,再将名称显示到鼠标所在位置 (见图6)。考虑到系统不间断地判断鼠标所指物体名称会消耗大量CPU的处理能力,从而导致漫游画面出现停滞、闪烁的现象,所以在该次点击完毕和下次点击之前应将鼠标识别功能关闭。
图6 鼠标识别物体脚本
结合虚拟现实技术和油田钻井作业的特点,以大庆某钻探公司的一个野外钻井现场为虚拟对象,使 用Virtools工具开发出钻井作业考试系统。通过该系统能够随时随地针对需要考核的钻井工人进行钻井专业的考评,而且能够实现考试数据结果的保存,也可以对钻井操作规程中的具体作业步骤的分值进行修改,为钻井工人技术考核提供了全新方式。
[1]刘贤梅,李勤,司国海,等.虚拟现实技术及其应用[J].大庆石油学院学报,2002,26(2):112-115.
[2]刘晓波,张琴舜,张和林.一个基于MultiGen/Vega的虚拟场景漫游系统 [J].计算机应用,2009,22(12):85-86.
[3]刘明昆.三维游戏设计师宝典 [M].成都:四川电子音像出版中心,2005.