基于虚拟现实技术的水下生产系统虚拟仿真系统研究

2021-12-07 07:45安维峥柳依何贾纪川顾继俊
电子设计工程 2021年23期
关键词:碰撞检测漫游虚拟现实

马 强,安维峥,柳依何,贾纪川,顾继俊

(1.中海油研究总院有限责任公司,北京 100028;2.中国石油大学(北京)机械与储运工程学院,北京 102249)

随着经济的快速发展,油气资源消耗量不断增加,陆上油气勘探开发日趋成熟,其资源总量持续下降[1],海洋油气资源作为满足未来油气需求的重要储备力量,已成为当今油气勘探开发的重点和热点。水下生产系统[2]通过水下井口、采油树、水下管汇和海底管道等生产设施将开采的油气就近输送到平台或浮式油轮进行处理与外输,可节省大量开发成本,缩短建造周期,而且水下生产系统受灾害天气影响较小[3-5],因此水下生产系统逐渐成为海洋油气开采的主要技术装备,并得到广泛应用,其安装拆除等作业过程是整个深海油气田开发任务中的重要环节,采用虚拟现实仿真技术对其作业过程进行设计与仿真实现,对于海洋油气田的开发、建设、生产具有重要意义[6-7]。

文中将虚拟现实仿真技术与水下生产系统的安装、维修、拆除工艺流程相结合,通过对水下生产系统的三维建模及可视化漫游制作,开发了集成海上作业测试功能的虚拟仿真测试软件,有效地解决了工作人员因水下生产环境恶劣而不方便观察研究的难题,为员工培训、作业流程指导、问题研究等方面提供了有效的帮助。

1 虚拟仿真系统

1.1 虚拟现实技术

虚拟现实融合了计算机图形学、人机交互技术、传感器技术及仿真技术等多种科学技术[8],具有沉浸性、交互性、想象力[9]3 个基本特征。虚拟现实技术包括虚拟环境、感知和传感设备。虚拟环境是由计算机实时动态生成的三维逼真图像。除了计算机产生的视觉感知之外,还有听觉、触觉、力感知,甚至嗅觉和味觉的多重感知属性。传感设备是指三维交互设备,包括立体头盔、数据手套、3D 鼠标和用户佩戴的其他设备,以及设置在真实环境中的传感器设备,如照相机、地面压力传感器等。

虚拟现实技术被广泛应用于医学、建筑与军事实践等领域,虚拟仿真系统使用虚拟现实技术可以模拟各种场景,并为用户在视觉、听觉、触觉方面生成极其逼真的虚拟环境。Gonzalez-Badillo 等人[10]开发了一套基于触觉反馈的虚拟现实装配系统,用于汽车装配培训。Freitag 等人[11]将虚拟现实用于家具行业的设计与展示过程。徐等人[12]开发出了一套基于虚拟现实的起重机培训系统,使起重机操作人员能够安全地体验到真实的事故现场。

1.2 系统总体架构

虚拟仿真系统采用Unity 3D 引擎作为开发平台。Unity 3D 中内置了NVIDIA Physx[13]物理引擎,其优秀的渲染效果,可为用户提供逼真的沉浸体验,且Unity 3D 同时支持Directx 与OpenGL 图形优化技术。Unity 3D 支持使用面向对象的语言开发,大大简化了开发流程,且其开发的产品可在Windows、iOS、Mac、Android 等多平台进行发布。

如图1 所示,系统分为5 个架构层,分别为数据层、支撑层、模型层、功能层、交互层。各层间的逻辑关系为:支撑层提供场景搭建、仿真平台运行、程序脚本等后台基础服务功能,模型层为仿真培训和训练考核提供仿真模型调用,功能层为交互层提供系统功能调用,支撑层、模型层、功能层调用的基础数据均从数据层进行提取,同时将仿真过程生成的数据存入数据层以便下次调用。

图1 总体架构

1.3 系统开发流程

开发基于Unity 3D 的水下生产系统虚拟仿真测试系统,首先需要采用3ds Max 对水下生产系统的作业场景与作业机具模型进行三维建模,并进行纹理渲染、格式转换,将模型导入Unity 3D 中进行场景搭建,重现实际作业场景,达到真实的场景还原效果;采用多镜头技术对作业流程进行多方位展现;通过C#语言编写程序脚本,结合射线检测与碰撞检测技术实现仿真操纵;采用Unity 中的UGUI 进行人机交互设计,经过对仿真流程、虚拟仿真系统的反复测试、优化,最终发布生成水下生产系统虚拟仿真系统。

2 系统关键技术研究

2.1 登录模块

为方便对虚拟仿真系统的管理,需要设置用户管理功能,通过Unity 3D 中的UGUI 进行人机交互界面制作,并在界面上添加上相应控件,实现账号及密码验证保护机制,如图2 所示。

图2 系统登录界面

2.2 场景开发与异步加载

可选择的建模技术有两种方式,一种为采用Unity3D 自身的功能建模,另一种为通过别的建模软件(如3ds Max、Maya 等)导入到Unity 中。由于场景所需模型数量较多且结构复杂,因此采用3ds Max 建模后将模型生成的FBX 格式文件导入到Unity 3D中,搭建虚拟场景及作业机具模型库。虚拟仿真系统需要进行多场景切换,为避免因计算机性能不足导致在进行场景漫游时无法及时完成帧处理,而影响了场景切换的流畅性出现卡顿的问题,应对模型中的三角形面数进行减面处理[14]。

该系统由18 个子场景组成,用户可通过场景间的链接来进行场景切换。每个场景都对应相应的工艺过程,在当前场景完成作业过程的培训后,点击UI界面上的按键便可进行场景的跳转,继续进行相应的作业培训。由于系统环境较大,为缩短场景加载时的耗时,采用异步加载的方法来进行场景加载。场景的加载分为同步加载与异步加载[15],同步加载在保留原场景的基础上加载新的场景,异步加载在不影响当前场景的基础下加载新的场景,新场景加载完成后对原场景进行销毁,释放内存。

2.3 碰撞检测技术

碰撞检测用于检测虚拟场景中的物体是否相交以及对各种交互动作进行触发。虚拟仿真系统中存在着物体间的接触与碰撞,为保证虚拟场景的真实性,避免物体间发生穿透现象以及保证物体间的物理作用,因此需要采用碰撞检测技术,使系统对物体碰撞作出响应。在Unity 3D 中,只需对物体添加刚体(Rigidbody)和碰撞体(Collider)组件便可实现相互碰撞。根据物体的形状不同可选择不同的Collider,Unity 3D 提供了BoxCollider、SphereCollider、WheelCollider、MeshCollider[16]等多种碰撞器,其采用了目前应用较多的碰撞检测算法中的层次包围盒法。系统中的碰撞检测如图3 所示。

图3 碰撞检测

3 系统功能与实现

3.1 功能划分

系统功能分为三大模块,分别为仿真培训模块、场景漫游模块、系统设置模块,下面着重介绍仿真培训模块和场景漫游模块。

3.1.1 仿真培训模块

仿真培训模块包括安装工艺仿真、维修工艺仿真、测试工艺仿真、拆除工艺仿真四大子模块。在各模块的仿真培训中,用户根据系统UI 界面的操作提示,先进行工艺流程的理论学习,学习完成后,通过系统中的交互操作进行工艺仿真模拟,系统对用户的操作进行监测并对错误操作进行提示。

安装工艺的案例仿真包括吸力锚、跨接管、水下管汇。维修工艺仿真是对舱内的干式采油树小修过程(更换节流阀)进行仿真。拆除工艺仿真是对安装工艺中的典型案例进行拆除操作仿真。测试工艺仿真是对安装、维修、拆除各工艺流程中的环节进行测试,主要包括:安装过程中的吸力锚水平度与深度测试、跨接管的连接器锁紧测试、采油树的压力测试、水下管汇的功能测试;维修过程中的节流阀更换测试;拆除过程中的跨接管连接器解锁测试。

3.1.2 场景漫游模块

场景漫游功能包括人物漫游与机器漫游,由于水下生产系统的海底作业环境复杂、操作风险大,因此海下作业均由ROV(水下机器人)来完成,水下机器人是能在海底行走的具有观察能力和使用机械手或其他工具进行水下作业的自动化装置[17],实际的机器人均依靠黑白或彩色摄像头与摄像俯仰云台进行水下观察。

虚拟仿真系统中采用水下机器人进行场景漫游,将Unity3D 中的Camera 组件挂载于ROV,通过控制Camera 对象调整视角,通过多镜头技术实现全方位观察。该系统的控制方式为:1)编写ROV 运动脚本,通过Translate()函数与Rotate()函数[18]实现ROV 的升沉、进退与旋转运动;2)编写Camera 脚本,通过键盘WASD 键控制Camera 的前后左右移动,鼠标控制观察方向。

3.2 系统实现

为加强显示效果,采用大屏幕投影的方式将系统部分场景进行展示,虚拟仿真测试系统运行效果如图4 所示,实现了海面作业环境与海底作业环境仿真,分别展示了绞车起吊吸力锚和ROV 观测水下管汇的虚拟仿真。交互方式主要通过键盘实现绞车、ROV 的运动控制,鼠标实现观察视角的变换。

图4 系统展示

4 结论

文中使用Unity 3D 软件开发了水下生产系统虚拟仿真系统,该系统模拟了水下生产系统中典型装备从安装、维修、测试到拆除的过程,有效解决了从业人员培训受环境限制的问题,使用户获得了沉浸式、交互式体验。虚拟仿真系统实现了水下生产系统作业流程原理展示、仿真培训、场景漫游等功能,用户可在虚拟环境中近距离学习装备结构及工作流程,在培训中为用户提供一种新的学习方法。

猜你喜欢
碰撞检测漫游虚拟现实
全新预测碰撞检测系统
基于BIM的铁路信号室外设备布置与碰撞检测方法
霹雳漫游堂
REALITY BITES
风口上的虚拟现实
NASA漫游记
虚拟现实技术向科幻小说借灵感
空间遥操作预测仿真快速图形碰撞检测算法
BIM技术下的某办公楼项目管线碰撞检测
浅谈虚拟现实