,
(大连海事大学 航海动态仿真和控制交通行业重点实验室,辽宁 大连 116026)
工程船克令吊广泛用于海上物料的起重、转移、装卸等作业中。目前,克令吊操作人员大多采用实物教学,存在培训成本高、效率低且风险大的缺点。随着虚拟现实技术的蓬勃发展,通过真实再现克令吊的各种运动形态,模拟实际作业过程中所需的天气条件,可以提高培训效率,缩短培训周期,同时增强海洋工程船海上作业的安全性[1],因此,关于海洋工程设备——克令吊的模型及仿真研究逐渐受到国内外众多学者的关注[2- 6]。有学者基于MFC-OSG框架开发了海洋工程船克令吊装卸仿真原型系统,实现了克令吊装卸作业过程的三维动态仿真[7]。但由于该系统未能实现上端吊臂和整体吊臂的分离,不能进行主吊和辅吊同时作业;且该系统缺乏第一人称视角,用户体验效果有限。
基于前人的研究成果,分析克令吊吊臂仰俯运动过程,并借助Unity3D引擎[8]及C#语言,模拟工程船克令吊的操作,搭建工程船克令吊的三维交互仿真系统,在增加第一人称视角的基础上实现主吊和辅吊同时作业的功能,并将该系统与航海模拟器进行集成,改变依靠克令吊实物进行教学培训的局面。
克令吊吊臂是克令吊作业的关键部分,仰俯动作可通过平移和旋转实现,其技术原理是三维空间中的几何变换[9]。对于一些质量较大的物体,克令吊一般使用主吊进行作业。这就要求克令吊吊臂整体运动,整体吊臂模型的简化结构如图1所示。
图1 克令吊的结构分析原理
克令吊整体吊臂是以E点为中心进行转动,点A、点C同步围绕E点进行旋转且模型Y轴朝向E点,所以只需要实时计算出A点、C点的位置,并根据AF、CF两点连线的方向分别设定AF、CF段模型的朝向,即可保证模型旋转的同步性。
设:A点到E点坐标系的平移矩阵为TA(见式(1));
C点到E点坐标系的平移矩阵为TC(见式(2));
绕E点进行仰俯时的变换矩阵为SE(见式(3))。
(1)
(2)
(3)
式中:(-xA,-yA,-zA,1)为A点偏移量;(-xC,-yC,-zC,1)为C点偏移量;β为克令吊吊臂绕E点的仰俯角度。
A点绕E点旋转的合变换矩阵如式(4)所示,C点绕E点旋转的合变换矩阵如式(5)所示。
M1=TA·SE·(-TA)
(4)
M2=TC·SE·(-TC)
(5)
则有:
(xA′,yA′,zA′,1)=(xA,yA,zA,1)·M1
(6)
(xC′,yC′,zC′,1)=(xC,yC,zC,1)·M2
(7)
通过式(6)、式(7)可得到A点、C点经过平移、旋转再平移之后的位置。其中:(xA,yA,zA)为A点未旋转前坐标,(xC,yC,zC)为C点未旋转前坐标,(xA′,yA′,zA′)为A点旋转θ1角之后的坐标, (xC′,yC′,zC′)为C点旋转θ2角之后的坐标。
旋转后A、F两点连线及C、F两点连线的方向向量之间的夹角为θ1、θ2,根据向量的内积和向量的模长,两夹角的求解如下:
(8)
(9)
式中:FA和FA′分别为吊臂旋转β角度前、后FA段朝向向量;FC和FC′分别表示吊臂旋转β角度前、后FC段朝向向量。
根据以上运动过程分析,当吊臂旋转时,前段绳索AB、CD随着吊臂的运动而运动,后段绳索AF、CF根据吊臂旋转角度确定自身旋转角度,保证了运动的同步性。
测试旋转的效果如图2所示。
图2 整体吊臂仰俯效果图
在船舶克令吊作业的过程中,对于一些质量较小的物体,一般使用辅吊进行搬运及转移,克令吊上端吊臂模型的简化结构如图3所示。
图3 克令吊上端的结构分析
图3所示结构中,上端吊臂以C点为基点旋转,所以只需要实时计算出A点的位置,并根据AF两点连线的方向设定AF段模型的朝向,即可保证模型旋转的同步性。与克令吊主吊运动过程相似,当上端吊臂旋转一定角度时,前段绳索AB随着上端吊臂的运动而运动,后段绳索AF根据上端吊臂的旋转角度确定自身的旋转角度,保证了运动的同步性。上端吊臂旋转的效果见图4。
图4 上端吊臂仰俯效果
通过借助HTML文件来解决航海模拟器中MFC应用程序接口与Unity3D程序的对接问题。
具体过程为:Unity3D程序通过外部调用函数Application.ExternalCall()来向HTML文件中的JavaScript函数传递数据,MFC接口程序通过加载IE控件的StatusTextChange()消息处理函数来接收已编辑好的HTML文件;MFC接口程序通过加载IE控件BeforeNavigate2()内部SendToUnity()函数并借助HTML文件中的SendMessage()函数向Unity3D发送消息,由此实现将克令吊三维可视化模块与航海模拟器相结合。
克令吊仿真系统的开发流程见图5。
1)系统的开发首先采用3DMax创建克令吊及其操作台的三维模型,利用PhotoShop对处理好的结构图片进行贴图,即完成材质球的制作。
2)对需要进行人机交互的结构进行分离,使其成为独立的模型,而对不需要进行人机交互的模型进行三角面优化,同时进行渲染烘焙生成最终的纹理贴图[11]。
3)将模型保存为.FBX格式文件并导入到Unity3D中,导入到Unity3D中的模型还需添加摄像机、灯光以及碰撞检测的设置,并通过CJHJ脚本的编写实现克令吊装配及卸载的过程仿真。
4)为了增加操作真实感,借助GUI组件在主界面上显示克令吊各个功能模块及其实现的操作键,并利用第一人称视角及Shader编程渲染出克令吊操作台周围的玻璃效果,实现交互功能[12]。
5)最终通过Unity3D的跨平台功能将其发布为网页版,使工程船克令吊的仿真系统实现真正的跨平台使用。
图5 系统开发流程
用户体验设计包括信息架构、内容文本、视觉设计、交互设计等[13],原有基于MFC- OSG框架开发的海洋工程船克令吊装卸仿真原型系统中缺乏第一人称视角,用户体验效果有待提高。船舶克令吊仿真系统的用户主要是海事院校的师生及参加评估培训的社会船员,这些用户群体对航海操作实践有着较高的要求,这就使得所开发的系统需要紧密结合航海操作实践,充分考虑用户使用需求。基于Unity3D开发出的克令吊仿真系统增加了第一人称视角,当用户在操作仿真系统时,可以根据自身的需求进行调整,使得在增强仿真系统的真实感和灵活性的同时提升用户体验效果。例如,用户在利用键盘进行人机交互的前提下,不仅可以通过鼠标点击操作台的按钮来控制克令吊的运动,也可以使用主界面中GUI组件显示的克令吊功能模块的操作键来控制克令吊的运动。此外,采用Shader编程渲染出克令吊操作台周围的玻璃效果,起到了增强克令吊三维仿真系统的操作真实感的作用。
基于对克令吊吊臂仰俯运动过程的研究,通过不同的变换矩阵实现克令吊作业过程中吊臂模型运动效果的模拟;采用经典的三维变换理论实现绳索的收缴与放出效果的模拟。在克令吊三维交互设计中,碰撞检测是其中的关键部分,是保障三维仿真系统真实感的必要条件,利用Unity3D引擎中自带的碰撞检测组件实现碰撞检测;添加相应的碰撞检测组件后,通过编写包含碰撞检测函数的C#脚本,实现相应的碰撞检测以及控制碰撞检测后的行为。通过在包含碰撞检测的脚本中对“父子关系”的设定来实现主吊装配及卸载货物的过程仿真。
基于虚拟现实技术设计并开发了海洋工程船挺杆式克令吊的仿真系统,模拟了克令吊装卸货物时吊臂及绳索的运动过程,并从用户体验角度出发,增加第一人称视角,提升了用户的体验效果,实现了克令吊仿真系统的人机交互。该仿真系统界面友好、性能稳定,使用效果良好,基本可以满足使用仿真系统训练克令吊操作人员的要求,对于航海仿真用户海上物料的装卸转移的虚拟培训具有一定的实用价值。由于文中模型并未考虑外界环境(如风流干扰)对吊物运动的影响,因此目前该克令吊仿真系统只适用于理想海况下的虚拟训练;为了扩大该仿真系统的使用范围,在后续研究中需要进一步完善克令吊的运动模型,使得克令吊仿真系统可应用于更多不同海况环境下的培训。
[1] DONG X Y. Research on the virtual reality training simulation technology based on key technology of physical simulation[J]. Advanced materials research, 2013,791- 793:1208- 1213.
[2] ELLING R, MCCLINTON A. Dynamic loading of shipboard cranes[C]Engineering in the Ocean Environment, Ocean 73 - IEEE International Conference on. IEEE, 1973:174- 177.
[3] MALEKI E A. Dynamics and control of a small- scale boom crane[J]. Journal of computational & nonlinear dynamics, 2011,6(3):921- 928.
[4] WILSON B H, MOURANT R R, LI M, et al. A virtual environment for training overhead crane operators: real- time implementation[J]. Iie transactions, 1998,30(7):589- 595.
[5] 姜银方,姬胜杰,潘凌云,等.回转式起重机吊摆系统的建模与仿真分析[J].电子科技,2015,28(10):22- 26.
[6] 吕宏松.起重船吊物系统动态特性分析及模型实验研究[D].武汉:华中科技大学,2009.
[7] 王秀杰.海洋工程船克令吊装卸作业数学模型研究[D].大连:大连海事大学,2015.
[8] 吴亚峰,于复兴.Unity3D游戏开发技术详解与典型案例分析[M].北京:人民邮电出版社,2012.
[9] SCHNEIDER P J, EBERLY D. Geometric tools for computer graphics[M]. Elsevier Science Inc. 2002.
[10] 梁民仓.基于虚拟现实技术的深潜器收放操作仿真[D].大连:大连海事大学,2016.
[11] XIAO J. Design and implementation of 3D virtual digital campus - based on Unity3D[C] Eighth International Conference on Measuring Technology and Mechatronics Automation. IEEE, 2016:187- 190.
[12] 符斌,任鸿翔,李小涛.触控式航海模拟器人机交互系统优化设计[J].舰船科学技术,2017,39(6):110- 114.