【研究意义】近年来,随着计算机技术、人工智能与自动化技术的迅猛发展,计算机仿真技术[1]特别是虚拟现实技术[2](Virtual Reality) 也得到相应的发展。虚拟现实技术是一种能够高度逼真地模拟人在自然环境中视、听、动等行为的人机交互技术,它以独特的沉浸性、交互性、构想性特征,在仿真领域得到广泛应用。它利用计算机构建虚拟环境,产生逼真的三维视觉、听觉、触觉等感官效果,借助硬件如力反馈器等设备,与虚拟世界客体进行交互,模拟人在自然环境中的行为,使得用户具有体验感和参与感[3]。【前人研究进展】目前,在海运发达的国家,主要是升级现有的航海模拟器和研究更加先进的导航产品,其他国家也正着手开发适应本国航海发展的模拟器[4]。美国国家海事科学院以开发海上避碰和航道安全航行为目的,研发一款综合性能很强大的仿真研究装置。该装置代表着目前的先进水平标准,它用途十分广泛,功能强大,适用性很强,为各国的模拟器研究提供一个良好的范本[5]。航海模拟器将在航海院校教学、培训和科学研究工作中发挥越来越重要的作用[6]。国内船舶模拟器起步较晚,最初基本上都是引进国外技术。近些年来自主研发的国产GMDSS培训软件、国产雷达、ARPA软件相继问世。2006年,大连海事大学高品质航海模拟器及其开发平台研制成功并通过交通部鉴定,之后又通过国际著名船级社——挪威船级社 (DNV) 所提出的最高级别A级航海模拟器性能指标的认证,标志着我国航海模拟器研究和使用总体上达到国际先进水平,打破了少数发达国家对高端航海模拟器市场的垄断, 极大地提高我国在应用航海模拟器进行航海教学、培训与开展科学研究领域的国际地位[5]。目前,国内科研单位在模型的构建、航海器的研制方面做了不少的努力,已经成功开发出多种船舶运动的数学模型和天气气候的仿真,逼真地再现现实中各种类型的船舶和天气环境[7-8]。如周昭明[9]进行船舶操作方面的仿真预报研究;乐美龙[10]探讨风、浪、浅水域的环境描绘; 国内知名的大型航运公司,如中国海运集团等也都相继引进、开发并配置现代船舶模拟器。【本文研究切入点】基于多源导航信息,设计实现一个三维辅助导航仿真系统,模拟海上航行的天气状况,用于驾驶员模拟驾驶训练。【拟解决的关键问题】利用电子海图提供的数字导航信息和OpenSenceGraph (OSG) 对雨、雪等粒子的模拟仿真能力,快速构建出海上航行的模拟视景,为船舶的模拟驾驶提供简便、直观的操作,用户可以使用本系统进行航海学习和模拟训练,进而加深对航海经验的汲取。
1 系统仿真 1.1 系统结构基于多源信息导航的三维导航辅助系统主要包括船舶模拟驾驶仿真[11]和电子海图。在船舶模拟驾驶仿真这一模块中,主要是接受电子海图提供的各种数据参数,然后将接收到的数据参数传送到各个相应的场景渲染模块,同时对这些数据参数所反映的环境进行动力学仿真,以便分析船舶的运动特征,而船舶模拟驾驶仿真模块地理位置的变换是由电子海图提供的数据 (经度、纬度、水深等信息) 实时驱动。电子海图还负责提供一些环境状况的数据参数,包括雨、雪、雾、海风、海浪、能见度等天气状况的数据参数;提供船舶的各种航行信息,包括船舶航行角度视景、航速、船舶模型、航线等信息。接收电子海图数据和进行视景仿真是系统的核心 (图 1)。
在计算机的处理控制下,电子海图会把航海信息、船位位置、雷达数据参数集中处理。电子海图不仅能连续给出船舶具体位置,还能提供并综合与航海有关的各种信息 (如航线基本的经纬度和浮标信息,相应的建筑物图标显示,航线的位置和水深),进行精确的定位和安全的航行,有效地防范各种险情。电子海图系统可以进行自动航线设计、航向航迹监测、自动存储本船航迹。系统中的电子海图只提供3个港口的电子海图信息:上海、连云港、宁波3个地区,本系统依照上海的海域为例子进行测试 (图 2)。另外,电子海图还负责提供一些环境状况的数据参数,包括雨、雪、雾、海风、海浪、能见度等天气状况的数据参数。
环境数据包含多样的海上天气气候,包括基本的雨、雪、雾、能见度低等环境,还可以提供海风、海浪等天气气候,这些数据会通过数据接口传递给模拟驾驶模块,模拟驾驶模块接收到数据后会进行渲染。调节不同的天气进度条,配置天气的各种参数,以组织不同的天气,达到模拟现实天气的效果[12]。同时还可以根据需求调整船航行的状态,从不同的角度观察船行驶的动态,了解船航行的信息。
在联网的情况下,环境设置还可以接受网络提供的天气环境数据,反映出实时的天气模拟模块,如图 3所示。
渲染引擎在接收到不同的渲染需求后,通过改变渲染的参数来调节各种环境的需求,其中最重要的问题是如何实现场景再现。首先将绘制好的河两岸的场景模型导入到程序中,构造出一个模拟现实的场景;接着场景再现模块接收来自电子海图提供的各种天气环境数据,借助OSG强大的粒子渲染能力[13-15]模拟仿真各种天气状况,步骤如下:
1) 粒子的产生:粒子源产生出新的粒子加入到系统中;
2) 粒子的初始化工作:设置每个粒子的属性 (颜色,形状,大小等信息);
3) 粒子的消亡设置:从系统中删除已经超过生命周期的粒子;
4) 粒子的运动设计:根据已经设置好的粒子动态属性对粒子运动进行移动和变换;
5) 粒子的绘制:循环步骤1)~4),显示所有有生命周期的粒子,模拟雨、雪、雾天的状况。
通过渲染模拟仿真,可以得到比较真实的仿真结果 (图 4~5)。
在海况这一模块中,至少要能够提供一个良好的海洋环境,其中海风、海浪和海平面的光照反射是不可或缺的。基于此,电子海图还提供了必要的海风、海浪等信息对海洋环境进行模拟。OSG不提供海洋渲染机制所需要的类库,因此需要编译额外的OsgOcean类库作为海洋开发环境的平台。导入编译好的OsgOcean类库,将接收到的电子海图关于海景实况的数据参数传入OsgOcean类库相关的函数中,调用相关的仿真函数,即可模拟出相应的海况,用到的OsgOcean特效有:支持海平面模型的快速傅里叶 (FFT) 变换、可调波浪大小、水面的反射与折射、水底光照、海面光晕、海底的雾效果等[12, 16]。
海面的颜色是由光的反射和折射共同决定的,为确定海面的颜色,必须建立模型来转化光的反射和折射。在模型中,用到3个不同的模型:普通环境光照、漫反射光照和镜面反射光照来重塑海洋平面的光照效果。
1) 普通环境光照:均匀分布在大气中的光照,相当于太阳光照,但是它是没有光源的。普通环境光照充斥着整个环境,为海面场景提供充足的光照和亮度,在海天交接的地方存在着特殊的普通环境光照,用来标记两者的差别。
2) 漫反射光照:当普通环境光照射在海面时,会产生一定的漫反射,由于环境光的位置不同、照射方位的差别,导致产生不同的漫反射效果。漫反射的一个重要特征是:反射光线与实验者的位置无关,利用这一特征,我们可以用漫反射光线模拟海面不光滑的波浪区域。
3) 镜面反射光照:根据物理学定律,当普通环境光照射在海面时, 会产生镜面反射光照,镜面反射光照随着入射光的增强而增强,它的生成与光源的位置、实验者的观察角度有关,试验中,我们一般用海面上的白色区域模拟光照特别强的光照镜面反射。
综上所述,不同的光照营造海平面生动的波浪场景,真实的模拟效果如图 6所示。
为达到较为简单的碰撞效果,保证场景的真实性,避免出现“穿墙而过”的失真现象,需要用到碰撞检测技术。基于物体空间的碰撞算法分为空间剖分法和层次包围盒算法。本仿真系统采用空间剖分法来设计碰撞检测[17-18]。
由于系统中模型众多,如果在每一帧中都要进行碰撞检测,则会大大增加计算量、降低交互的实时性和场景画面流畅度。为降低系统的处理能力和避免大量的碰撞检测,我们确定潜在的碰撞目标,取船舶的3个点来代表碰撞目标,然后把这3个点加上船舶的行驶速度得到3条线段,最后将这3条线段与整个场景做碰撞检测。如有任何一条线段与场景发生了碰撞,则判断船舶与场景发生碰撞。这3个点的位置分别位于船舶的左前方、右前方和中前方。图 7为碰撞检测真实图。
本系统开发的环境是:基于Win7的操作系统平台,在VS2010的编程平台上,利用OpenSenceGraph (OSG)、3rdParty和OsgOcean等第三方类库,进行C++环境的编程。此外,本系统还需要电子海图的支持。
本仿真系统充分考虑到船舶的水动力特性、风动力特性的等各种外界因素的影响以及船舶自身操作设备的建模。在实验的测试阶段,本仿真系统逼真地再现船舶模拟驾驶的场景;通过相关的硬件设备,实时操作船舶的航行,包括船舶的前进、后退、转向等;借助视点跟随技术,可以从不同的方位观察船舶的运行状态,保证船舶的正常行驶。图像的仿真性颇有层次感,体现出明显的距离感,在模拟平台上能真实地再现雨、雪、雾天气的变化。系统较稳定,能够稳定运行,容错性较高。
3 结论本仿真系统实现三维模拟仿真的基本功能,可为船舶的模拟驾驶能够提供简便、直观的操作,用户可以使用本系统进行航海学习和模拟训练,进而加深对航海经验的汲取,但也存在着一些不足。比如:仿真研究实现的船舶航行运动轨迹不够光滑,这是由于OSG渲染机制接受到的帧率限制了视景的刷新,有待改善; 其次,系统只提供基本的导航功能,没有实现定位系统的功能; 再者, 在船舶的运行过程中,船尾会引起大量的浪花和泡沫, 但船舶的模拟仿真并没有引起浪花和泡沫,仿真系统尚未考虑这一因素。这些均有待进一步研究解决。
[1] |
方泉根. 计算机仿真技术在21世纪航海教育中的发展与应用[J]. 上海海运学院学报, 2001, 22(2): 24-28. FANG Q G. Developments and applications of simulation technology of computer in maritime education of 21st century[J]. Journal of Shanghai Maritime University, 2001, 22(2): 24-28. |
[2] |
路勇, 马修真, 高峰, 等. 船舶动力技术虚拟仿真实验教学资源建设与实践研究[J]. 实验技术与管理, 2016, 33(3): 117-119. LU Y, MA X Z, GAO F, et al. Study on construction and practice of virtual simulation experimental teaching resource by using marine power technology[J]. Experimental Technology and Management, 2016, 33(3): 117-119. |
[3] |
马振霞. 船舶操纵控制虚拟现实仿真的研究[D]. 大连: 大连海事大学, 2013. MA Z X.Research on virtual reality based simulation for ship maneuvering and control[D].Dalian:Dalian Maritime University, 2013. |
[4] |
何治斌, 张均东, 林叶锦, 等. 国内外轮机模拟器的发展及对比研究[J]. 造船技术, 2007(1): 38-40. HE Z B, ZHANG J D, LIN Y J, et al. The development and contrast of the engineering simulator in the world[J]. Marine Technology, 2007(1): 38-40. |
[5] |
廖泽芳, 朱坚真. 中国海洋运输业竞争态势分析——兼与世界海洋运输强国的比较[J]. 海洋经济, 2013, 3(2): 23-27. LIAO Z F, ZHU J Z. Competition situation in the China's marine transportation— and comparison with the world marine transportation powers[J]. Marine Economy, 2013, 3(2): 23-27. |
[6] |
李军. 航海模拟器在我国的发展及存在的问题[J]. 航海教育研究, 2010(4): 43-45. LI J. The development and existing problems of marine simulator in China[J]. Maritime Education Research, 2010(4): 43-45. |
[7] |
王锐, 钱学雷. OpenSceneGraph三维渲染引擎设计与实践[M]. 北京: 清华大学出版社, 2009. WANG R, QIAN X L. Design and practice of OpenSceneGraph 3D rendering engine[M]. Beijing: Tsinghua University Press, 2009. |
[8] |
肖鹏, 刘更代, 徐明亮. OpenSceneGraph三维渲染引擎编程指南[M]. 北京: 清华大学出版社, 2010. XIAO P, LIU G D, XU M L. OpenSceneGraph 3D rendering engine programming guide[M]. Beijing: Tsinghua University Press, 2010. |
[9] |
周昭明. 单桨船两种舵型的舵力和操纵效果的比较试验[J]. 船舶工程, 1981(3): 10-18. ZHOU Z M. Comparative test of rudder force and control effect of two kinds of rudder types of single propeller ship[J]. Ship Engineering, 1981(3): 10-18. |
[10] |
乐美龙. 船舶操纵性预报与港航操纵运动仿真[M]. 上海: 上海交通大学出版社, 2004. YUE M L. The motion simulation of ship maneuvering prediction and harbor operation[M]. Shanghai: Shanghai Jiao Tong University Press, 2004. |
[11] |
石教英. 虚拟现实基础及实用算法[M]. 北京: 科学出版社, 2002. SHI J Y. Virtual reality foundation and practical algorithm[M]. Beijing: Science Press, 2002. |
[12] |
WANG N, WADE B.Rendering falling rain and snow[C]//Proceeding SIGGRAPH'04.New York, USA:ACM, 2004:14-15.
|
[13] |
SUNDAR S, NERESH R. Role of cloud droplets on the removal of gaseous pollutants from the atmosphere:A nonlinear model[J]. International Journal of Applied Mathematics and Computation, 2012, 3(4): 274-282. |
[14] |
张小辉. 虚拟交通场景中的雨雪仿真[D]. 成都: 西南交通大学, 2010. ZHANG X H.The simulation of rain and snow in virtual traffic scene[D].Chengdou:Southwest Jiaotong University, 2010. |
[15] |
王桐明, 杨琳. 基于osg粒子系统的海洋场景中下雪的仿真[J]. 电脑编程技巧与维护, 2016(5): 84-85. WANG T M, YANG L. Simulation of snow in ocean scene based on OSG particle system[J]. Computer Programming Skills and Maintenance, 2016(5): 84-85. |
[16] |
陆灏铭, 陈玮. 船舶运动可视化仿真平台的设计与实现[J]. 计算机仿真, 2012, 29(8): 277-281. LU H M, CHEN W. Design and realization of visualizing simulation platform for ship motion[J]. Computer Simulation, 2012, 29(8): 277-281. |
[17] |
王正山, 华芳, 顾耀林. 带碰撞自反馈的分布式虚拟环境实现[J]. 计算机工程与应用, 2006, 43(6): 82-84. WANG Z S, HUA F, GU Y L. Implementing of distributed virtual environment with collision self-response[J]. Computer Engineering and Applications, 2006, 43(6): 82-84. |
[18] |
马登武, 叶文, 李瑛. 基于包围盒的碰撞检测算法综述[J]. 系统仿真学报, 2006, 18(4): 1058-1061. MA D W, YE W, LI Y. Survey of box-based algorithms for collision detection[J]. Journal of System Simulation, 2006, 18(4): 1058-1061. |