载人深潜技术是进行海洋资源开发的必要手段,随着陆地资源的过度开采以及国家制定的一系列海洋强国战略,深潜技术的提升势在必行,而载人深潜器是进行深海勘探的必备工具。虚拟现实技术的发展促进了操纵训练模拟器在军事以及民用机构中的普及,但相关的潜器模拟器功能并不完善,比较典型的有:美国伍兹霍尔海洋研究所(WHOI)研制了基于网络的分布式ALVIN模拟器,该模拟器主要给科学家提供一种有效的潜水培训和任务预演,以延长在海底的工作时间;ALVIN模拟器的另一个用途是让新的操作手熟悉面板布局和操作控制的位置,并不注重视景系统的研发。日本海洋科学技术中心(JAMSTEC)研制了“深海 2000”载人潜器的操纵模拟训练器,该模拟器能够模拟潜水器的运动性能、设备操作、报警性能和海底视野及环境条件,海底视野的模拟是用一定缩比的海底模型(山、谷、断崖和平坦海底)及跟随深潜器三维运动的摄像机系统[1]。青岛海军潜艇学院的潜艇模拟训练系统[2]—一种水面航海模拟器其视景系统采用了虚拟现实技术,但整个视景系统较为简单。中船重工702所和大连海事大学联合开发的采用基于虚拟现实技术的载人潜水器运动虚拟仿真系统,是一套人在回路中的可视化仿真系统,可进行载人潜器操纵运动性能综合可视化仿真。现有的仿真系统将船舶水上航行、潜器水中作业作为重点进行模拟,尚未涉及有关潜器布放入水和回收至母船的过程仿真,没有实现潜器的布放回收和下潜作业的完整模拟[3];并且现有仿真系统均是平面视景,沉浸感不强。
目前针对潜航员的培训更多的还是采用实艇进行训练,必然伴随着风险大、成本高以及培训周期长等缺点。“蛟龙”号作为我国第1台载人深潜重大装备,也是我国海洋高技术发展的典型代表,社会公众对其认识程度尚且不够,缺乏一个直观、具体、鲜明、形象的宣传平台与科普教育平台。针对上述问题,本文以“蛟龙”号为仿真对象,开发具有高度沉浸感的载人深潜器布放操作的三维交互仿真系统。
1 系统开发流程本系统的开发首先采用3ds Max创建“蛟龙”号、支持母船以及A型架等相关结构的三维模型,并进行展UV操作,利用PS处理好的结构图片进行贴图,完成材质球制作。对需要交互的结构切割分离等操作使其成为独立的模型,不需要进行交互的模型进行三角面优化,最后进行渲染烘焙生成最终的纹理贴图[4]。
模型制作完毕,将模型保存为.FBX格式文件并导入到Unity3D中,添加水、天空盒和灯光等资源搭建交互场景,设计友好的交互界面并通过脚本的编写实现交互功能。基本交互完成之后,需要将头盔与Unity3D程序连接,基于头盔开发沉浸式的视景系统[5]。如图1为系统开发流程图。
系统的开发关键在于三维模型渲染、A型架的液压杆驱动模拟以及人性化交互模式下的头盔视景的实现。
2.1 三维模型渲染物理模型是三维交互仿真系统真实感的关键,在3ds Max中模型创建完毕之后,需要进行材质的制作,最终进行渲染烘焙,生成相应具有逼真的材质感和光影效果的纹理贴图,决定模型视觉效果的就是贴图的质量。
目前三维模型的渲染实现方式主要有2种:静态烘焙与基于着色器的局部动态光照模型[6]。本文采用静态烘焙的方式,即在完成三维建模工作后,对模型的结构进行合理的设计和充分的分析,进而进行UV展开(X,Y,Z对应三维空间的坐标,U、V、W对应三维空间的贴图坐标,所以3ds Max中贴图坐标被称为UV坐标),展UV是模型和贴图之间的纽带,只有模型和贴图坐标高度切合,最终渲染效果才更加逼真,此处以A型架主体部分为例,其UV展开如图2所示。
最终将三维模型的原始材质纹理、光照效果预先渲染成如图3所示的纹理贴图(对应图2的贴图展UV坐标),在三维引擎实时渲染时三维模型即会具有真实的材质感与静态的光照效果,基于静态烘焙的渲染手段可减少动态光照效果的实时计算量,降低程序运行时计算机资源的占用。
最终渲染出的三维模型如图4所示。
蛟龙号深潜器在布放回收过程中最重要的运载工具就是A型架,该结构由液压杆驱动,图5为模型的简化结构分析图。
如图5所示结构图,A型架整体运动元件可分为三部分:主体AD段、S1和S2,由A,B,C,D四个连接点构成一个四边形,整体是通过S1段的伸缩变换驱动元件围绕基部的C,D两点分别进行旋转。图中分别建立对应结构的局部坐标系,运动时主体AD段和AB段是固定连接,无相对运动,围绕D点进行旋转;S1段模型以B点为局部坐标原点,也是该部分的旋转中心;S2段模型以C点为局部坐标原点,也是该部分的旋转中心;S1和S2两部分模型始终保持在同一直线上。
根据上述结构,提出A型架液压驱动的运动模型,通过实时改变AD段的旋转角度控制整个A型架的摆动,具体步骤如下:
A型架主体以D点为中心进行转动,S1段模型局部坐标中心点B同步围绕D点进行旋转且模型Y轴朝向C点,S2段模型局部坐标中心C点位置不变,在自身局部坐标系下进行旋转并保持模型Y轴朝向B点。所以只需要实时计算出B点的位置,并根据BC两点连线的方向分别设定S1、S2段模型的朝向即可保证模型旋转的同步性。设定D点进行旋转变换的矩阵为SD,B点到D点坐标系转换的平移矩阵为TB,B点绕D点旋转的合变换矩阵为M[7],则有:
${{{T}}_B} = \left[ {\begin{array}{*{20}{c}}1 & 0 & 0 & 0\\0 & 1 & 0 & 0\\0 & 0 & 1 & 0\\{ - {x_D}} & { - {y_D}{\kern 1pt} } & { - {z_D}} & 1\end{array}} \right]\text{,}$
|
(1) |
${{{S}}_D} = \left[ {\begin{array}{*{20}{c}}{\cos \theta } & {{\rm{ }}\sin \theta } & 0 & 0\\{ - \sin \theta } & {{\rm{ }}\cos \theta } & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{array}} \right]\text{,}$
|
(2) |
${{M}} = {{{T}}_B} \cdot {{{S}}_D} \cdot \left( { - {{{T}}_B}} \right)\text{,}$
|
(3) |
$\left( {{x_{B'}},{y_{B'}},{z_{B'}},1} \right) = ({x_B},{y_B},{z_B},1) \cdot {{{T}}_B} \cdot {{{S}}_D} \cdot ( - {{{T}}_B})\text{,}$
|
(4) |
$\cos \beta = \mathop {CB}\limits^{\rightharpoonup} \cdot \mathop {CB'}\limits^{\rightharpoonup} /\left( {\left| {\mathop {CB}\limits^{\rightharpoonup} } \right| \cdot \left| {\mathop {CB'}\limits^{\rightharpoonup} } \right|} \right)\text{。}$
|
(5) |
其中:
头盔也称头戴式显示器,是可提供高度沉浸感视景的虚拟现实设备,佩戴时将视线完全遮蔽,该设备的使用给传统上使用键盘鼠标方式造成不便,此时操作人员完全处于盲打状态且鼠标不在头盔视景中显示,如果需要键盘键以及鼠标操作过多,必然需要移开头盔,降低沉浸感体验[8]。针对上述问题,需要基于头盔开发只需配合简单的键盘操作以及鼠标点击的交互方式。
头盔的软件开发包中封装了包括获取头盔摄像机位置、姿态和旋转角度等参数的函数,所以可以直接以头盔摄像机的视点中心为起点,向正前方发射一条射线,通过检测射线与场景中的物体碰撞代替鼠标悬停的触发函数,进而配合鼠标点击的方式实现物体的拣选。头盔射线碰撞检测的简化结构图如图7所示:
以从摄像机中心发射的射线表示视线,在投射的物体上绘制图标表示视野中心,该图标可根据需要进行修改,并且根据距离的远近进行缩放以保证图标看起来大小不变。当视线投射到需要交互的物体上时,物体高亮显示或直接点击鼠标实现鼠标操作。视点射线碰撞检测的测试效果如图8所示。
根据仿真系统的开发流程图,在3ds Max软件中完成蛟龙号、母船、A型架和虚拟人等模型的创建以及贴图的制作,将模型保存为.FBX格式文件并导入到Unity3D中进行整合,添加灯光、海水等资源搭建场景,利用引擎内置的UGUI实现系统UI界面的设计。仿真过程涉及到橡皮艇和ROV设备的布放以及船尾多个吊的配合,可通过点击相应的操作菜单按钮实现摄像机的瞬移,使得摄像机以适当的视角显示将要操作的物体模型;A型架以及拖曳缆等布放主要设备是通过便携式操作面板进行控制,系统运行时以小窗口的形式在左上角显示或隐藏,可是用鼠标实现与面板按钮的交互。
根据“蛟龙”号布放回收的实际操作规程,编写脚本文件实现逻辑功能,最终连接虚拟现实头盔进行视景输出,完成“蛟龙”号布放操作的三维交互仿真系统。系统运行时的交互场景如图9所示。
本文对“蛟龙”号布放回收操作仿真过程中涉及到的关键技术进行了研究,通过A型架结构的运动数学模型实现液压杆驱动的模拟,并以射线的碰撞检测方式实现头盔视景的三维交互,利用编写的脚本驱动场景,开发了沉浸式的蛟龙号布放操作交互仿真系统。其中A型架的驱动采用的是运动数学模型,下一步工作可基于物理模型进行模拟,但模拟效果满足开发的需求;头盔视景使得仿真系统具有高度沉浸感,提高了操作人员的体验感。本文开发的仿真系统可用于深潜器布放操作员的认知和技能培训,也可以作为深潜器蛟龙号的宣传教育平台,具有一定的工程应用价值。
[1] | 谢俊元, 马岭, 胡震. 载人深潜器运动操纵模拟[J]. 中国造船, 2006, 47 (2): 62–69. |
[2] | 方亮, 袁书明, 杜红松. 潜艇操纵模拟器综述[J]. 舰船科学技术, 2010, 32 (1): 141–143. |
[3] | 李玉东, 胡大斌, 陈勇, 等. 潜艇操纵控制系统仿真平台设计与实现[J]. 舰船科学技术, 2013, 35 (5): 123–127. |
[4] | 沈浩生, 张均东, 曹辉, 等. 船舶机舱三维视景仿真系统的应用与发展[J]. 中国水运, 2016, 16 (6): 66–70. |
[5] | 宋银灏, 费允锋, 孙广毅, 等. 沉浸式微机电系统三维仿真及可视化[J]. 系统仿真学报, 2014, 26 (9): 1956–1968. |
[6] | 曾鸿. 视景仿真技术在轮机模拟器中的应用研究[D]. 大连: 大连海事大学, 2012. |
[7] | SCHNEIDER P, EBERLY D H. Geometric tools for computer graphics[M]. Burlington, Massachusetts:Margan Kanfmann Publishers, 2002. |
[8] | 陈涛, 袁东, 吴衡. 头盔显示/瞄准系统仿真技术研究[J]. 系统仿真学报, 2008, 20 (8): 2014–2017. |