基于虚拟现实技术的LNG船舶仿真系统
2021-06-28时光志周毅李萌张海涛王瑛
时光志,周毅,李萌,张海涛,王瑛
(中海油能源发展股份有限公司 采油服务分公司,天津 300452)
虚拟现实技术(virtual reality,VR)在船舶领域应用广泛[1],其交互性、沉浸感和构想性的特性可以较好地解决传统教学、训练方法无法解决的问题。相比其他船舶,LNG船的驾驶及货物装卸难度较大,为提高船员对LNG船舶的整体认知及应对各种海况的能力,有必要开发LNG船舶航行仿真系统。近几年,国内在虚拟船舶仿真领域的研究较多,主要集中在船舶运动数学模型开发、航行环境模拟等[3-5]。缺少对船舶主体和相关设备的仿真研究,也没有将海上航行环境、船舶运动数学模型、船舶三维模型等有机结合起来。根据LNG船舶的实际航行情况,考虑围绕三维船体和虚拟航行环境,开发基于虚拟现实的LNG船舶仿真系统,以达到降低学习、训练成本和风险,提高对LNG船舶整体认知的目的。
1 总体设计
LNG船舶仿真系统是一个人机交互平台,利用最新的虚拟现实理论,通过刚体、流体建模及航行环境模拟等基于物理的复杂场景动态演化技术实现高沉浸感、高可信度的虚拟仿真系统。仿真系统的总体架构见图1。
图1 仿真系统总体架构
2 关键技术
2.1 船舶运动数学模型
考虑到船舶自身的运动问题和海面与船舶的相对运动问题[6],采用固定坐标系和运动坐标系相结合,船舶运动的描述更符合实际航行情况。如图2所示,为了简化方程,将运动坐标系固定在船体上,该坐标系随船体做多个方向的轴向运动。船舶在海平面理想状态下的运动是沿着3个坐标轴的运动,在3个轴向上的速度向量分别表示为VGx,VGy,VGz,重心速度则用VG表示,3个方向的坐标向量因航行环境的影响,还会进行一定的旋转运动,因此船舶航行运动是一个6自由度运动。
图2 船舶运动坐标系
在建立运动模型前,需要对船舶运动过程中的两个坐标系进行转换[7]。完成船舶运动坐标系和固定坐标系的转换后,为了系统数学建模的方便,假设船舶是一个强度足够大的刚体,且运动环境为微幅规则波,海水运动时产生的动力频率与船体的振动频率无关。基于以上假设,得到船舶在海面上运动的运数学模型。
2.2 海浪建模技术
模拟船舶航行环境时,海洋约占整个场景的一半区域,其模拟效果好坏直接关系系统运行的环境真实感。对海水等流体建模时,考虑到水体作为一种流体,具有不可压缩性,采用WCSPH(weakly compressible smoothed particle hydrodynamics)方法实现流体的建模。在屏幕空间能够高效率的绘制粒子,但在屏幕空间进行绘制的同时也会带来流体表面凹凸不平的问题[8]。针对此问题,利用三维拉普拉斯平滑处理对应位置上的流体粒子[4],使粒子分布更加紧密,解决粒子排布不规律的问题。流体建模效果见图3。
图3 流体建模效果
2.3 柔性物体模拟
船上有锚链、缆绳等柔性物体,针对柔性物体的模拟,比较常见的方法有质点-弹簧模型、PBD、ASM等。考虑到船舶系泊过程中缆绳的特点,采用PBD方法进行模拟。PBD方法可以直接控制对柔性体粒子的位置,具有简单快捷、高效性、可控性等优点[9]。PBD方法的原理是通过对约束条件进行控制,从而改变柔性体中粒子的位置[10]。
根据缆绳的特点,在采用PBD方法的过程中主要考虑距离约束和弯曲约束。距离约束是指缆绳粒子在经过积分计算后,粒子之间的距离会变化,此时约束移动粒子的位置,让粒子之间保持1个确定的距离d。弯曲约束则是让3个不在1条直线的相邻粒子趋向1条直线,用以实现实际情况下缆绳的高抗弯曲度和低拉伸度的效果。
假设p按照某运动控制方程移动,且将每个约束函数单独线性化,基于非线性Gauss-Seidel迭代求解约束方程,△p按照与原方向垂直的梯度方向▽pC(p)移动,因此令:
△p=λ▽pC(p)
式中:λ为拉格朗日乘子。之后求解由单个约束给出的非线性方程的常规迭代步长。从而得到单个粒子i约束后的位移向量。
△pi=-s▽piC(p1,…,pN)
式中,对约束C作用范围内的粒子,s的值都是恒定的。求出△p后,当前位置更新为p←p+△p。通过在新的位置评估▽pC(p)和C(p),然后重复该过程。
3 系统实现
3.1 三维船舶建模
三维船舶建模主要建立LNG船舶整体和各典型区域的三维模型,主要工作分为2部分:一是建立船舶主体、上层建筑、驾驶室、仪器仪表、甲板设备等船舶驾驶部分的三维模型;二是建立LNG船舶货物系统、动系统等船舶轮机部分的三维模型,实现LNG船舶货物系统和动力系统的高精度仿真与运行模拟。而针对于船舶上每一个设备的建模包含两个方面:形状和外观[11]。对设备形状的建模主要通过点、线、面等来确定,物体的外观则由表面纹理、颜色、光照系数等来确定。
使用多边形建模方法对船舶进行建模,主要的工具是3D Studio Max,具体建模过程见图4。建模过程中,首先在3D Studio Max中对模型进行烘焙、渲染得到模型的UV,提取出模型的UV图,绘制出相应的纹理,然后保存带有贴图的图片。将所有烘焙贴图绘制好后,在3D Studio Max中,将贴图重新赋给模型,查看效果再进行进一步修改完善,从而达到最佳效果。LNG船舶建模效果见图5。
图4 三维建模流程
图5 LNG船舶三维模型
3.2 海洋场景模拟
为了模拟高可信度的船舶航行环境,基于前述流体建模技术,通过屏幕空间流体绘制来实现海洋场景的模拟,具体过程见图6。
图6 屏幕空间海洋场景模拟流程
在渲染海水的过程中,首先要获得距离观察者位置最近的流体自由表面,记录下每个像素点到眼睛的距离,即为深度值;其次,对这些深度值构成的深度纹理图进行双边滤波,得到过滤后的深度纹理;再次,将过滤后的深度纹理作为输入值,根据平滑后的深度图计算视点空间的位置和法向量,同时结合背景纹理和厚度纹理,进行光照计算并对流体进行着色,得到流体纹理;最后,将流体纹理和泡沫纹理作为输入值,并在一个帧缓冲对象中渲染,得到最终的流体渲染效果见图7,海水与船舶的相互作用效果见图8。
图7 流体的渲染效果
图8 海水与船舶的相互作用
3.3 场景优化
为了逼真展现船舶的海上航行环境,要求虚拟场景中的物体建模应更加精细,同时三维场景的实时绘制要更加高效。考虑到两者之间的平衡,需要对场景做一定的处理,在不影响视景效果的前期下,提高场景绘制的效率。
3.3.1 模型结构优化
模型结构的优化是指对场景模型采用空间组织和逻辑组织相结合的结构,这样既方便场景库的编辑和维护,又可以保证整个场景的绘制效率。如图9码头场景先根据模型所在位置将其安排到Area1、Area2、Area3和Area4 4个节点中,对每一个Arean,再根据模型的逻辑意义组织数据,例如,Area1节点下,树和建筑物又被分成了Tree1和Buildings12个节点。
图9 模型结构的优化
3.3.2 LOD技术
LOD技术主要根据模型的距离和重要程度来划分在场景中的显示层级。根据视点的远近,将模型显示为一个细节层次不同的状态,其模型的分辨率和精细度随着漫游视点而改变。船舶场景中基本上每一个模型都采用了LOD技术,这样场景既能提供足够的细节,又能保持相对快速和稳定的显示。但在场景库中应注意LOD的结构。图10为一采用LOD的模型,model1、model2、model3、model4为模型的各级LOD,系统根据LOD的切入(Switch in)/切出(Switch out)距离选择不同的等级。图10a)为平层LOD结构,此时系统必须检查每个LOD节点以判断其是否显示,效率较低。图10b)为嵌套LOD结构,系统对此结构进行如下判断:根据视点和模型的距离选择显示l1或l2(或什么都不显示);如果l1切入,系统选择显示l3或l4,如果l2切入,系统选择显示l5或l6;如果l1或l2切出,它的后代直接剔除。LOD采用嵌套结构,场景可以更加快速的剔除不在显示距离内的LOD,有效提高系统的运行效率。
图10 LOD的结构
采用上述场景优化技术实现的“301”船舶停靠码头时的模拟效果见图11,场景多边形数量在2 000万以上,绘制速度不低于35幅/s。
图11 场景优化效果
4 结论
本文以“海洋石油301”LNG船舶为母型船,将海上航行环境、船舶运动数学模型、船舶三维模型等有机结合起来,研发了基于虚拟现实技术的LNG船舶航行仿真系统,达到降低学习、训练成本和风险,提高对LNG船舶整体认知的目的。
在后续研究中,将对系统运行效率、恶劣海况模拟等做进一步研究,使其成为LNG船舶仿真研究的科研平台。