基于Unity3D的油田作业仿真考核系统移动设备客户端的设计与实现

2016-06-14 02:13李金永吴寅生郑建峰华北油田公司第三采油厂河北河间06450东北石油大学计算机与信息技术学院黑龙江大庆6338
系统仿真技术 2016年1期
关键词:移动学习

李金永,吴寅生,郑建峰,赵 娅(.华北油田公司第三采油厂,河北河间 06450;.东北石油大学计算机与信息技术学院,黑龙江大庆 6338)



基于Unity3D的油田作业仿真考核系统移动设备客户端的设计与实现

李金永1,吴寅生1,郑建峰1,赵 娅2
(1.华北油田公司第三采油厂,河北河间 062450;2.东北石油大学计算机与信息技术学院,黑龙江大庆 163318)

摘 要:本文旨在研究和开发可运行于智能移动设备之上的、脱离网络的油田作业岗前5分钟仿真考核系统。根据系统需要,文中分析了服务器端和移动客户端的功能需求,针对移动客户端需求进行了功能设计;研究了移动客户端系统功能实现时所涉及的部分关键技术;阐述了系统功能的具体实现流程;最终完成了一个可流畅运行于移动设备终端上的仿真考核系统客户端。该系统在油田作业岗前测试中投入使用后,取得了良好的测试效果,能帮助油田作业工在上岗前充分熟悉作业流程,有效避免作业事故的产生,深受油田作业单位的认可,具有向其他油田作业单位推广的潜质。

关键词:仿真考核;移动学习;Unity3D;移动客户端

1 引 言

安全性是油田在进行各项作业时永恒的追求目标,为了降低作业事故发生率,油田工人上岗前需要进行正确的作业培训及考核。传统的培训采取书本知识、视频演示及跟班学习等方式,采取统一的集中测试方式,所需时间集中、耗时长、耗费人力物力财力且效果一般。随着虚拟现实技术的出现,各种各样的油田作业仿真培训考核系统应运而生,这些系统大大节省了培训时间及培训消耗,虚拟现实的特性保证了作业的真实体验感、提高了培训效率。

随着油田对作业安全性的重视程度再提升,提出使用仿真系统利用岗前5分钟的时间对上岗工人进行作业前考核的想法,考核合格上岗,不合格不允许上岗,旨在将油田作业事故出现的可能性降至最低。前述的仿真系统一般以登录PC机通过网络连接服务器的方式进行访问使用,对油田野外作业而言其局限性不言自明,而智能移动设备的便携性及移动学习的成熟发展为这种想法带来新的契机。

基于此前提,本文旨在研究可运行于智能移动设备之上的、脱离网络的油田作业仿真考核系统。此系统作为客户端独立运行于智能移动设备之上,系统考核所需的前期数据可以在网络环境下从数据服务器下载至本机存储,考核所得的后期数据亦可以暂时存储在本机上,然后在网络环境下可上传至数据服务器,以便油田管理人员对上岗工人的岗前考核情况进行监管。

2 Unity3D游戏引擎简介

Unity3D由Unity Technologies公司发行,是一个全面整合的轻量级专业游戏引擎,能轻松实现三维互动功能[1~2]。Unitye3D的交互式图形化开发环境友好且简洁,具有可快速开发的特性。Unitye3D自身拥有图形渲染管道,且支持来自max、maya等建模平台的模型文件及动画的导入,其拥有的高逼真物理引擎PhysX能有效结合三维模型、视音频等素材元素,打造具有真实感和沉浸感的三维场景。Unity3D编辑器可运行在W indows和Mac OS X系统下,只需要对其工程文件设置进行简单调整,同一个项目文件既可方便的发布至不同游戏平台:W indows、Android、Web、Mac、iOS PS3、XBox 360和W indows Phone 8等,避免了重复开发和移植开发,节省了开发成本,提高了开发效益。

Unity3D游戏引擎的开发框架包含四个层次:Project工程,Scene场景,GameObject模型物体和ComPonent脚本组件,这四个层次相互配合共同作用完成项目的开发工作。

3 系统功能需求及设计

3.1服务器端功能需求

基于移动设备的系统客户端的正常运行离不开系统服务器端的支持[3],根据系统功能分析,系统服务器端主要为客户端提供数据支持和通信支持,其功能需求主要涵盖数据库需求及数据通信需求。

(1)数据库需求。

用户在移动设备上运行虚拟仿真考核系统客户端时,需要事先从数据库中下载相关的数据信息,包括:用户角色信息、具体考核作业模块相关信息、各个作业模块的操作工序信息等,只有这些信息是完备的,才可以保证系统在移动客户端上的正常运行及使用。考核完毕后,用户需要将其考核信息上传至服务器端数据库中,以便油田管理人员在服务器端进行用户考核信息的查看及统计。基于系统的数据库需求及数据信息的安全性考虑,系统在开发时选用了Oracle 10g数据库。

(2)数据通信需求。

在此系统中,客户端和服务器端之间的数据传输通过数据通信协议以数据包的形式进行。因此需要建立一套准确完善的数据通信协议以及和协议配套使用的高效简洁的数据交换格式。进行数据传输的数据包要保证其完整性和准确性,因此包结构的定义要规范,并注意传输过程中的保密性。

3.2客户端功能需求及设计

(1)系统客户端功能需求。

运行于移动设备上的虚拟仿真考试系统客户端是整个系统的核心功能。根据系统功能分析,系统客户端一方面需要服务器端为其提供数据支持,即数据通信功能的实现;另一方面是系统虚拟考核功能的实现。

系统客户端和服务器端的数据通信功能是由两者相配合实现的。

系统客户端在实现各作业模块考核功能时,需要构建各作业模块三维物体模型及角色模型,集成场景并优化,编写控制逻辑完成系统的考核功能。

(2)系统客户端的设计。

根据客户端的功能需求分析,客户端的设计分为三个层级:表现层(即三维建模、场景集成及优化),逻辑层(即控制逻辑脚本的考核功能编写),数据通信层(即客户端与服务器端的数据通信)。此外,针对系统客户端中所含的各个独立考核作业模块,还需要进行模块内容的功能结构及考核流程设计。

4 系统所涉及关键技术

4.1模型动态显示技术

由于硬件限制,移动设备的运行速率有限。而为了追求逼真度,系统所含各个作业模块的场景消耗非常大,如果在模块运行时一次性加载场景中的所有模型,系统运行的流畅性不易保证。为了提高系统运行速率,系统采用了模型的动态显示技术。

系统在运行时,每个被考核的用户在虚拟场景中都有一个模拟考核用户视点的摄像机,考核时视点观察范围主要集中在该摄像机周围。模型动态显示技术通过编写类来获取该摄像机的位置信息,并获取场景中其他模型及角色的位置信息,给定一个阈值,通过计算这些模型及虚拟角色与模拟用户视点的摄像机之间的距离,将距离与阈值进行对比,距离在阈值范围内的模型及虚拟角色进行渲染,从而有效地提升了系统的运行流畅性。模型动态显示判定方法如图1所示。

图1 模型动态显示判定方法示意Fig.1 Dynam ic d isp lay determ ining m ethod of m odels

4.2Shader的使用

Shader是GPU渲染流水线中的一个可编程渲染单元,可以用来控制图形渲染的输出效果,其代码直接在GUP上运行[4]。Unity 3D内置了ShaderLab语言进行Shader脚本的编写。

Shader分为顶点Shader及像素Shader,顶点shader进行三维模型各个三角面片顶点位置的计算,并为后期像素渲染做准备;像素shader是以像素为单位来计算光照和颜色的一系列算法。

为了进一步提高模型的质感及场景真实感,依据现实生活中真实物体的物理属性,系统对虚拟模型进行了纹理贴图及Shader脚本的设置,以模型的法线贴图为例:

void surf(InPut IN,inout SurfaceOutPut o)

half4 c=tex2D(MainTex,IN.uvMainTex)*_ Color;

o.Albedo=c.rgb;

o.AlPha=c.a;

o.Normal=UnPackNormal(tex2D(BumPTex,IN.uvBumPTex))*4.0f-1.0 f;

4.3自动的相机视点切换控制

虚拟仿真考核系统离不开视点的交互,通过视点交互用户才能正确地观察虚拟场景中的物体。用户在进行系统作业模块考核的过程中,视点需要随着场景中的工具或者角色的位置变化而变化,以保证用户所观察物体的正确性。在虚拟场景中,用户的视点是由摄像机来模拟的,通过调整系统摄像机的位置和角度可以模拟用户的视点切换。

系统各模块虚拟场景中的物体众多,要根据所观察的物体灵敏且准确迅速地进行准确的摄像机位置调整和角度变换有一定的难度。综合考虑视点切换的准确性及视点定位的快捷性,系统采用了一种通用的自动相机视点切换方法:为摄像机设置父物体。这样当用户的视点需要切换时,将摄像机的父物体更改为视点附近的某一物体以确定其位置信息,并对摄像机进行角度调整以达到最佳观察视角,即可达到准确变换视点从而观察物体的目的。这种方法简洁且通用,充分保证了相机切换的快捷性和准确性。

4.4虚拟角色自动寻路

虚拟角色的自动寻路是三维游戏以及虚拟仿真系统中不可避免要解决的问题,寻路问题的解决在于在虚拟场景中进行合理的路径规划,关于路径规划算法的研究与应用也是长期以来人们所关注的焦点,比较典型的路径规划算法有Dijkstra算法以及A*算法等[5]。

本文所实现的系统中多处需要实现虚拟角色的自动寻路,该功能的实现主要利用了Unity提供的一种类似于A*算法的优化算法。该算法对于障碍物静止、运动空间确定的静态环境,其路径规划可分为场景坐标化建模和路径搜索两个步骤。Unity3D利用NavMesh(导航网格)组件将系统场景中复杂的结构组织关系简化为带有一定信息的网格,即进行场景坐标化建模;接着在这些网格的基础上通过一系列的计算来实现虚拟角色的自动寻路,即进行虚拟角色的路径搜索。

具体应用时将NavMesh(导航网格)组件挂载到虚拟角色模型身上,在脚本控制逻辑中设置角色要到达的目标点坐标值;自动寻路功能启用时,虚拟角色便自行根据目标点坐标来寻找最直接的路线,并沿着该线路到达目标点。

4.5屏幕自适应

本文所实现的系统运行在移动设备之上,受生产厂商的限制,市场上的移动设备有不同的分辨率,没有统一标准。因此,如果不考虑设备分辨率,系统的UI在不同分辨率的移动设备上将会被压缩或者拉伸,失去界面原有的美感。为解决这个问题,就要充分考虑系统在不同分辨率移动设备上的界面定位问题,即系统的屏幕自适应问题,具体实现流程如图2所示。

图2 屏幕自适应功能的实现流程Fig.2 Realization p rocess of screen adap tability function

自选择具体的作业模块开始,首先进行模块在所运行移动设备上的UI原点定位,该系统中把定位坐标原点设定在移动设备的左上角,然后获取设备的分辨率,根据分辨率进行设备屏幕的显示比例计算,从而进行UI重定位,完成之后再进行最终的模块加载显示,这样能保证系统在不同分辨率的移动设备上都能正常显示和使用。

5 系统功能实现

5.1前期物体及角色建模、动画制作

虚拟仿真系统实现的基础是三维模型构建,包括物体模型及角色模型。三维模型构建是将现实世界中的物体及属性转化为机器世界表达的方法[6]。三维模型构建的质量将直接影响虚拟仿真系统的真实感。三维模型构建的主要流程包括:素材整理,模型构建及美化,动画制作。

5.1.1素材整理

为构建一个高度仿真的虚拟井场作业环境,素材整理是至关重要的第一步。

在调研明确油田作业具体的场景信息、作业中所涉及的设备及工具信息、具体的作业流程信息、参与作业的人员信息等信息之后,对信息进行分类,划分为物体类和角色类,以便后期分别采用不同的方法进行模型的构建。

根据三维模型的信息分类进行素材整理。物体类:勾画作业井场布局平面图,搜集井场所含设备和工具的外形照片、具体尺寸、内外部构造等参数,并拍摄尽可能多的图片以便进行模型真实感贴图。角色类:明确角色外部特征,本系统中主要是不同作业工的服饰、随身配备工具等。

5.1.2模型构建及美化

根据素材整理的内容,进行三维模型的构建。模型构建的原则是:在尽量保持模型真实感的情况下,所建模型面数尽可能的少,材质球尽可能的少。模型面数及采用的材质球数直接影响系统的运行效率。

物体类模型:利用基础建模、复合建模、Nurbs建模、命令器编辑修改等多种建模方法对系统中所含的物体模型进行构建,并进行合理的材质贴图设置,保证所构建物体的真实感。

角色类模型:通过几何建模的方法来构建虚拟角色的外形;接着构建骨骼,以支撑虚拟角色后期的运动;然后进行角色蒙皮,为虚拟角色设置材质贴图,保证所构建虚拟角色的外形是类真人的。

图3为所构建的抽油机物体模型及虚拟角色模型示例。

图3 抽油机物体模型及虚拟角色模型Fig.3 M odels of oil pum ping m achine and virtual character

5.1.3动画制作

系统中某些物体的自身周期运动(如抽油机的往复运动)及虚拟角色的固定动作在Unity3D中实现起来复杂且效果不好,而这些动作在max中实现起来较为简单。便捷的是,Unity3D提供了直接引用max动画的组件,因此,为了追求更加逼真的动作效果,可以在max中将一些物体运动及角色动作直接制作成动画片段,导出后在Unity3D中直接引用。

物体运动和角色动作在max中动画的制作,都是采用max中最为常见的关键帧动画的方式来实现。

5.2场景集成及优化

系统所含的各个作业模块具有不同的作业设备及工具,因此,在进行模型构建时采用单一模型构建法,构建完成的模型形成三维模型库,在搭建各个作业模块虚拟场景时,从库中实时抽取该作业场景所含的模型文件,进行场景集成,搭建和真实作业场景一致的虚拟作业场景。

集成完毕的虚拟作业场景只是在场景物体及角色构成上完成了对真实作业场景的实体仿真,在光效及周围环境上还需要进一步美化才能达到物理仿真。这些美化包括:自然的光照、真实的光照阴影以及周围的自然环境。

通过在Unity3D环境中进行场景集成、为场景设置光源、创建场景物体的物体阴影、为场景添加天空盒子等操作可以完成场景的优化,达到高度的场景实体仿真和物理仿真。

5.3控制逻辑的实现

系统各作业模块的考核功能主要是通过编写控制逻辑来实现的,系统包括以下几部分逻辑功能:数据通信逻辑、考核数据逻辑、用户登录逻辑、场景加载逻辑、操作响应逻辑、成绩管理逻辑,逻辑走向图如图4所示。

数据通信逻辑主要完成移动设备客户端与服务器端之间的数据通信。包括数据通信协议的制定及数据通信的实现。

考核数据逻辑通过数据通信逻辑从服务器端调取模块考核所需的用户信息及操作工序信息等数据信息到移动设备客户端并进行本地保存。

图4 控制逻辑走向图Fig.4 A lignm entm ap of control logic

用户登录逻辑用来实现油田作业工在各个考核模块中的按角色登录,以提取该角色在该作业模块中的考核操作工序信息。

场景加载逻辑在用户登录后加载用户所进入的作业模块虚拟场景,用户的仿真考核在该虚拟场景中进行。

操作响应逻辑针对用户的考核操作进行响应:播放操作工序内容、启用作业工具、变更设备状态等,以顺序有效地进行具体作业的操作工序展示。

成绩管理逻辑对用户考核过程中的考核成绩进行管理,包括记录各个考核操作工序的完成与否、各个考核操作工序的具体得分、以及考核完成时用户的总成绩,记录完成后将这些信息暂时保存在移动终端的数据文件当中,以便联网时通过数据通信逻辑存储到服务器端数据库中。

5.4客户端与服务器数据通信的实现

系统中,客户端需要和服务器端进行数据通信,才能进行用户信息、操作工序信息等考核相关数据信息的下载;将用户的考核成绩等信息回传。客户端和服务器端数据通信的实现包含三个过程:通信协议的定义、协议数据文件的编写及序列化和数据通信的实现。

5.4.1通信协议的定义

通信协议是指在客户端和服务器端之间事先约定好一定的数据格式和标识码(请求标识和应答标识),二者在进行数据通信时,将通信数据通过这种格式进行封装,经由网络协议进行传送,接收到的数据包再按照协议约定进行解析,还原所传输数据,从而完成二者之间的数据通信。在定义通信协议时,要充分考虑通信过程中的效率问题及安全性等问题[7],因此协议所包含数据包结构和数据的编码解码方式至关重要。

本系统定义的通信协议是基于数据包的交互式协议,经由TCP/IP网络协议进行数据的传输。数据包的定义格式为:标识码+包整体长度+包类型+包头+包体。

4.4.2协议数据文件的编写及序列化

Protocol Buffers是Google公司内部的混合语言数据标准,是一种轻便高效的结构化数据存储格式,可以用于序列化结构化数据[1 -2]。基于其特点,所开发的系统使用它来进行通信协议的序列化和通信实现,具体实现过程如下:

(1)在记事本中进行数据定义文件的编写,完成后选择编码为UTF-8、后缀为.Proto的方式进行保存;

(2)将第一步保存的数据定义文件利用转化工具ProtoGen进行转化,转化为以.cs为后缀的数据访问类文件;

(3)将上一步生成的数据访问类文件进行编译,编译进动态链接库进行调用。

5.4.3数据通信的实现

在实现系统客户端与服务器端的通信时,根据数据通信的定义方法,系统编写了两个数据定义文件:

(1)请求数据定义文件:此文件由客户端用来向服务器端发起请求。

(2)应答数据定义文件:此文件由服务器端用来向客户端发回应答。

系统启用数据通信功能时,由客户端向服务器端发送请求指令及数据包,服务器端接收后进行包的解析,明确客户端的操作需求,验证所请求操作的合法性,执行所请求操作;服务器端向客户端发送应答指令及结果数据包,客户端接收后进行包的解析,获取自己所需数据,执行相应操作。具体的通信流程如图5所示。

图5 数据通信流程Fig.5 Data comm unication flow

6 结束语

基于Unity3D的油田作业仿真考核系统架构于C/S模式之上,文中主要讨论了运行于移动设备之上的客户端的设计与实现。所实现的系统可稳定运行于移动设备之上,充分满足了油田作业工利用岗前5分钟进行考核、考核合格才能上岗的要求,能充分帮助油田作业工在岗前充分熟悉作业流程,有效避免作业事故的产生,深受油田作业单位的认可,具有向其他油田作业单位推广的潜质。

参考文献:

[1] 任建邦.基于Unity3D的手机游戏客户端的设计与实现[D].北京:北京交通大学,2013.

REN Jianbang.Design and imPlementation of client for Phone game based on the Unity3D[D].Beijing:Beijing Jiaotong University,2013.

[2] 陈俊锋.基于Unity3D的跨平台手机网络游戏的研究与实现[D].中山:中山大学,2013.

CHEN Junfeng.Research and ImPlementation of a cross -Platform mobile online game based on the Unity3D game engine[D].Zhongshan:Sun yat-sen University,2013.

[3] 苏志同,石绍坤,李晋宏.手机游戏开发架构的研究[J].计算机工程与设计,2010,31(7):1631 -1634.

SU Zhitong,SHI Shaokun,LI Jinhong.Research on develoPment framework for mobile games[J].ComPuter Engineering and Design,2010,31(7):1631 -1634.

[4] 李白云,赵春霞,张浩峰.自主机器人的快速激光雷达仿真算法研究[J].系统仿真学报,2009,21(16):5075 -5079.

LI Baiyun,ZHAO Chunxia,ZHANG Haofeng.New method of fast laser scan ranger simulation in ALV system[J].Journal of System Simulation,2009,21(16):5075 -5079.

[5] 唐振民,赵春霞,孙怀江,等.地面自主移动平台信息融合与路径规划系统[J].南京理工大学学报,2003,27(1):6 -10.

TANG Zhenmin,ZHAO Chunxia,SUN Huaijiang.The information fusion and trejectory Planning system forautonomous ground vehicle[J].Journal of Nanjing University of Science and Technology,2003,27(1):6 -10.

[6] 曲宝,赵娅,赵琦.基于Virtools的虚拟家居漫游系统的设计与实现[J].计算机工程与科学,2009,31 (12):130 -133.

QU Bao,ZHAO Ya,ZHAO Qi. Design and imPlementation of a virtual home ramble system based on Virtools[J].ComPuter Engineering& Science,2009,31 (12):130 -133.

[7] 王成浩.基于EPOLL的网络游戏服务器通信架构的研究与设计[D].大连:大连海事大学,2012.

WANG Chenghao.Research and design of EPOLL-based the network game server communication structure [D].Dalian:Dalian Maritime University,2012.

李金永 男(1970 -),山东利津人,高级工程师,主要研究方向为信息技术在采油工程中的应用

吴寅生 男(1962 -),上海人,工程师,主要研究方向为采油工程管理。

The Design and lmplementation ofMobile Device Client Based on Unity3D for Oilfield Operation Simulation Exam ination System

LI Jinyong1,WU Yinsheng1,ZHENG Jianfeng1,ZHA0 Ya2
(1.The Third ExPloit Factory Of Huabei Oilfield ComPany,Hejian 062450,China;2.ComPuter&Information Technology College,Northeast Petroleum Institute,Daqing 163318,China)

Abstrac t:This PaPer aim s to research and develoP the oilfield oPeration simulation exam ination system used in 5 m inutes before going to w ork,which can run on the intelligent mobile devices w ithout netw ork.According to the system needs,the PaPer analyzes the functional requirements of the server and the mobile client;designs the functions according to the mobile client needs;researches some key technologies involved in the im Plementation of the mobile client;describes the concrete realization Process of the system functions,finally com Pletes the simulation exam ination system clientwhich can run on the mobile devices smoothly.The system obtains good test effect after being used in oilfield oPeration,can helP the workers be fam iliarw ith the oPeration Process before going to work,can avoid the generation of oPeration accidents effectively,is recognized by the oilfield com Pany,has the Potential of being Promoted to other oilfields.

Key words:simulation exam ination;mobile learning;Unity 3D;mobile device

中图分类号:TP 391.9

文献标识码:A

基金项目:黑龙江省教育科学规划重点课题(GJB1215019);黑龙江省研究生教育创新工程资助项目(JGXM-HLJ-2015111)

猜你喜欢
移动学习
基于云计算的大学生移动学习模型构建
高职院校普及移动学习的策略研究
试析融合移动学习下的大学英语教学新模式
大学生移动学习模式分析
基于智能手机的高职学生移动学习需求分析研究
基于SOA的在线学习资源集成模式的研究
智能手机APP支持下的大学英语听力教学
智能手机在大学生移动学习中的应用研究
基于云计算的移动学习平台的设计
基于移动学习的自动问答系统设计