来源:第三维度
作者:刘喜作、周晶、毛建周
单位:大连理工大学船舶工程学院
摘要:针对航海模拟器在进行靠离码头训练时,舰艇指挥员观察指挥范围受限,环幕视景系统又存在距离感不强的问题,对航海模拟器中靠离码头训练进行特殊设计。介绍缆绳交互界面设计、多视点观察通道设计和视景系统的信息辅助提示设计,并给出仿真效果图。结果表明:该设计能使舰艇指挥员直观地观察到码头周围的情况,看到锚缆的状态和听到舰艇来车的情况,同时通过直接提示得到本舰距码头距离。
0 引言
航海模拟器是一种典型的人在回路中的仿真,人作为一个环节参与到仿真系统中,通过仿真系统提供的各种信息,经过判断和决策对系统进行操纵和控制,进而达到人员训练、方案论证和海事分析等目的[1-2]。
在现有的环幕航海模拟器中,视点的位置假定在驾驶台的中央,视线的方向与舰艇的首尾线平行,在航行的水域比较宽阔,来往船舶不是很多,交通流密度比较小,该显示方式能够准确地提供本舰安全航行的必要信息。当舰艇在靠离码头时,指挥员为了保证舰艇航行的安全,需要了解更多必要的信息,主要包括靠离码头周围的环境、本舰与码头距离、本舰的缆绳操作及受力情况等等,但这些信息舰艇指挥员在模拟器驾驶台内很难通过观察目前视景系统得到[3-4],这给指挥操纵带来困难。
对现有的航海模拟器,通过某种适当的方式,提供靠离码头的必要信息,是航海模拟器的需要,也是航海实践的需要,笔者就其特殊设计进行论述,主要包括缆绳交互界面的设计,多视点观察通道的设计和环幕视景系统的信息辅助提示设计。
1 缆绳控制交互界面设计
舰艇靠离码头离不开缆绳的运用。在实际情况下,对缆绳的操作由舰艇人员在甲板上完成,而模拟器只提供驾驶台活动空间,人员无法完成实际缆绳的操作过程,要通过相应缆绳交互界面来实施。
通过二维界面形式提供舰艇离靠码头时的系缆操作及其受力情况的显示。按照驱护舰通常靠离码头对缆绳的运用,每舷模拟 4 根缆,左右舷共计 8根。在设计缆绳交互界面时,考虑到操作动作与实际的一致性,并体现操作时的快捷与方便,采用面板表达和触摸屏按键操作方式进行设计,如图 1。
图1 缆绳控制交互界面
在图 1 中,缆绳控制面板包括了操作缆绳的动作和缆绳状态显示。其中操作缆绳的动作包括通过点选数字号码进行左右舷 1、2、3、4 缆的选择,通过“+”,“-”符号对系缆柱的选择,通过带缆、挽缆、绞缆、溜缆和解缆对缆绳动作的选择。缆绳的状态显示包括当前缆绳的长度,距系柱的距离和当前吃力状态,同时提示本舰艏/艉到码头间的横距。
缆绳控制交互界面布置在航海模拟器的驾驶室里,与电子海图并放在一起,使缆绳操作的结果能在电子海图上显示,也会反映到三维视景当中。缆绳控制交互界面在驾驶室里实现了舰艇靠离码头时对缆绳的操作、控制和状态显示,帮助指挥员完成对缆绳操作的指挥,弥补了系统中指挥员无法命令甲板人员实际进行操作以及操作结果反馈的不足。
2 多视点观察通道的设计
当舰艇在靠离码头时,舰艇指挥员往往会从驾驶室走出来,到驾驶台的两翼甲板,了解本船与其他物标的相对位置关系,主要观察本舰左右舷舰首、舰尾相对于目标(包括目标船、码头、碍航物等)的移动情况和在接近码头时本舰是否与码头平行,以及相对于码头横向移动的情况等。这对于固定视点位置和视线方向的航海模拟器来说,显然不能满足舰艇靠离码头模拟训练的需要,不符合航海实践。
在现有的视景系统中增加多视点观察通道,使视点的位置可以在驾驶台中央及其驾驶台两翼甲板的最外侧自由移动,并改变视线的方向,提供最佳观察角度。这样会及时准确地向舰艇指挥员反映本舰的位置、缆绳的状态和本舰船体离岸的距离等,是航海模拟器一个非常重要的功能。
2.1 视点的选择
通过上述分析,视景系统中的视点除了位置位于本舰驾驶台正中,视线方向与本舰首尾线平行的视点以外,增设了 8 个视点位置,如图 2 所示:前甲板、后甲板,左舷舰首、左舷舰中部、左舷舰尾、右舷舰首、右舷舰中部和右舷舰尾,提供多位置多角度观察的功能。
在靠离码头时,视点将从驾驶台中央移至驾驶台两翼甲板的相关位置上,同时视线的方向也将做相应的变换。舰艇指挥员为了清楚地了解本舰靠离码头的情况,其主要指码头泊位周围的情况以及本舰锚缆的情况,往往需要低头以获取这方面的信息,这时在视线方向还需上下偏转。
图 2 视点控制交互界面
上述平移和旋转变换是在本舰的局部坐标系中完成,设位置移动为 Txyz (, ,) ,移动的角度为R( , 0, ) p h ,其中 h 为绕 Z 轴旋转的水平角,其中 p 为绕 X 轴旋转的俯仰角,变换矩阵 A 是 4 4 × 矩阵,可以写成如下形式:
以OSG[5](Open Scene Graph)作为三维引擎其写法如下:
osg::Matrixd matR; osg::Matrixd matT;
matR.makeRotate(0,osg::Vec3(0,1, 0),p ,osg::Vec3(1,0, 0), h ,osg::Vec3(0,0, 1));
osg::Vec3 position = osg::Vec3 (, ,) x y z ;
matT = osg::Matrixd::translate(position);
A = matR * matT
其中, A 成为在本舰局部坐标系下视点变换的合成矩阵,再左乘本舰的姿态位置矩阵,最终变为在世界坐标系下的观察矩阵。
2.2 观察通道显示
多视点观察通道如同三维战场观察器[6-7],在模拟训练过程中不向仿真网络中发送数据,仅通过接收来自其他仿真节点的信息来实现上述观察。这些信息主要包括导演部发送的环境信息和目标船信息,动力模型结算得到的本舰位置姿态信息及锚缆状态信息。多视点观察通道平台接收到信息后,在保证地理气象环境与系统一致的前提下,在仿真实体列表中找到本舰后将视点依附到其上,并根据图2 视点控制交互界面制定的位置、角度等信息设置观察的位置和方向,完成靠离码头训练时特殊观察。
多视点观察通道单独使用一台高分辨率的显示器,把视点变换后的视景图像,包括起用望远镜功能时望远镜通道的视景图像,输出到该显示器上。
而该显示器也将像其他用于显示导航雷达图像和电子海图等设备一样放置在驾驶台里面。
3 视景系统的信息辅助提示设计
环幕视景系统在靠离码头训练时存在着层次感不强,体现不出明显的距离感的问题[8],影响了指挥员对码头泊位距离的判断。另外,在靠离码头时,指挥员还要通过周围的飘动物体判断风向以及通过主机及螺旋桨发出的声音判断来车给出动力的情况。这些信息对指挥员指挥靠离码头非常关键,要求系统通过相应的方式自动给出。
3.1 显示文字
在实际靠离码头时,舰艇指挥员要时刻掌握与码头的距离及角度。但目前环幕视景系统显示的视景与在实际当中看到的视景在距离感方面存在一定误差,总体给人感觉近,指挥员无法根据当前看到的虚拟景象正确判断与码头的距离,很难正确给出车舵口令。
为了拟补距离感偏近的问题,环幕视景系统增加了文字提示。因为模拟训练时,舰艇模拟靠离的泊位是指定的,在其指定的泊位前增加了两艘并靠位置固定的舰艇,并且在内舷舰艇的后锚灯杆的上方用文字实时提示本舰舰首处距此后锚灯杆的距离。这两点间的距离直观地反映本舰目前距泊位的距离,其变化率直观地反映本舰的速度,便于指挥员根据其提示及时下达车舵命令。另外,在指定泊位的系缆柱上方同样用文字显示其编号,使指挥员能够准确下达某号缆带到某号系缆柱口令。
利用 OSG 核心库 osgText 进行提示文字的绘制,设定了文字显示的位置、大小及方向(始终朝向视口),并且加入了 LOD 节点,规定只有距本舰500 m 以内才进行显示,使这种类似的增强显示方式只在靠离码头训练时起作用。
3.2 绘制飘动的旗子
在实际靠离码头时,舰艇指挥员通过码头周围的飘动物体(旗子、烟等)来判断风的大小和方向,进而判断对舰艇操纵的影响;因此,视景系统中要有飘动物体的模拟,能够根据大体反映导演部设定关于风的大小和方向信息。
按照前面的设置,在内舷舰艇的后锚灯杆上挂了一面旗子,该旗子利用粒子和弹簧的集合进行模拟[9],它会根据当时的风向和风速相应地飘动,风速很小时,会因其重量而垂下。这样,舰艇指挥员通过观察视景环境中旗子状态来判断风向风速。
3.3 三维声音的模拟
在实际靠离码头时,尤其在缆绳已带上,靠车、舵和缆配合时,舰艇指挥员往往通过主机及螺旋桨发出的声音判断来车给出动力的情况,并及时给出用车、用舵和用缆的命令,通过声音可补充由于视野所限视景未显示到的信息,所以对三维声音的模拟是航海模拟器靠离码头时不可缺少的一个环节。
虚拟环境中对声音时变性的仿真是重点[10]。舰艇主机及螺旋桨发出的声音是与它自身的运行状况密切相关的,不同的状况,主机发出的声音也不同。
为了模拟真实声音效果,系统建立了声音样本库,记录本舰在各种用车档位主机及螺旋桨发出的声音。然后根据指挥员和声音相对的位置关系,利用OpenAL 声音引擎[11],根据当前的用车情况,对硬盘中保存的样本声音进行调用,生成具有三维信息的声音效果。这样,指挥员可以通过听到主机发出的声音知道舰艇来车的情况,进而下达相关指令。
4 仿真效果图
笔者建立了靠离码头训练特殊环境。图 3 是多视点通道显示的效果,表示指挥员站在驾驶台右翼甲板向舰尾观察到的场景。
图 3 多视点通道显示场景
图 4 是视景系统中辅助信息显示的效果,包括文字提示本舰舰首距停靠在码头上的内舷舰艇后锚灯杆距离及距泊位的大概距离,文字提示泊位上系缆柱的标号以及内舷舰艇后锚灯杆旗子因风飘动的情况。
图 4 辅助信息显示场景
5 结束语
为了完成靠离码头训练的需要,笔者在航海模拟器中进行了缆绳交互界面的设计、多视点观察通道的设计和环幕视景系统的信息辅助提示设计,并已运用到舰副长班靠离码头的模拟训练中,通过这些特殊设计,舰艇指挥员可以直观观察到码头周围的情况,看到锚缆的状态和听到舰艇来车的情况,同时通过直接提示得到本舰距码头距离,有效地协助其完成靠离码头的指挥训练,取得了很好的效果。
参考文献:
[1] 金一丞, 尹勇. 公约、技术与航海模拟器的发展[J]. 中国航海, 2010, 33(1): 1-6.
[2] 任鸿翔. 航海模拟器中基于GPU的海洋场景真实感绘制[D]. 大连: 大连海事大学, 2011: 1-9.
[3] 赵学军, 齐绍江. 从航海模拟器的局限性展望其发展方向[J]. 青岛远洋船员学院学报, 2009, 30(3): 15-17.
[4] 孙腾达, 尹勇, 金一丞. 船舶操纵模拟器视景系统中视点跟踪的实现 [J]. 大连海事大学学报 , 2002, 28(1):26-30.
[5] OSG 中国官方网站 [EB/OL]. [2013-6-15] //www.osgchina.org.
[6] 郑长伟, 薛青, 张小超. 陆军分布式作战仿真对抗系统战场观察器开发 [J]. 系统仿真学报 , 2006, 18(1):209-212.
[7] 陈春, 李陆冀, 刘兴. 飞行模拟器视景系统中视觉传感器仿真模型[J]. 兵工自动化, 2010, 29(11): 6-8.
[8] 李军. 航海模拟器在我国的发展及存在的问题[J]. 航海教育研究, 2010, 27(4): 43-45.
[9] Bourg, D. M. 游戏开发物理学[M]. O’Reilly Taiwan 公司译. 北京: 电子工业出版社, 2004: 274-287.
[10] 郭龙, 谭同德, 赵红领, 等. 基于osgAL的三维虚拟声音的设计与实现[J]. 微计算机信息, 2009, 25(2-1):301-303.
[11] OPENAL 官方网站 [EB/OL]. [2013-06-15]. //connect. creativelabs.com/openal.