数据驱动系泊船三维控件开发技术研究

2016-11-28 05:08邱占芝杨福安张崇赵星甜
大连交通大学学报 2016年3期
关键词:缆绳系泊控件

邱占芝,杨福安,张崇,赵星甜

(大连交通大学 软件学院,辽宁 大连 116028)



数据驱动系泊船三维控件开发技术研究

邱占芝,杨福安,张崇,赵星甜

(大连交通大学 软件学院,辽宁 大连 116028)

为实现开敞式码头系泊监控系统三维显示效果,提高系统的构建效率,开发系泊船及其系泊缆绳三维控件.在分析船舶六个自由度运动以及缆绳所受拉力的基础上,研究系泊船舶及缆绳运动模型、构建方法与控件开发技术.控件开发以VS2010为开发平台,基于OpenGL函数类库,采用模块化的方法对各三维模型进行构建,并实现三维模型与运动模型相结合,实现三维控件受实时监测数据驱动.采用此控件构建的码头系泊监控系统可以实时、逼真显示系泊船舶的运动姿态、系泊缆绳张力等实时作业状态.控件具有可重用性,在码头系泊领域具有广泛的应用前景.

数据驱动;系泊船三维控件;三维模型构建方法;OpenGL函数类库;控件重用性;开敞式码头

0 引言

随着我国经济飞速发展,国际进出口贸易总额日益攀升,对于日渐增多的开场式码头,安全与高效作业越来越受到业界关注,亟待建立开敞式码头系靠泊监控与预警系统[1].为增强开敞式码头系泊监控系统三维显示效果,提高系统的构建效率,需要开发系泊船及其系泊缆绳三维控件[2].以VS2010为平台、OpenGL库函数为基础,设计了大型开敞式码头系泊三维控件,其中包括船舶的六个自由度运动,与船体连接的缆绳随船体运动以及由于缆绳所受拉力变化,导致颜色变化.该控件可以直观,形象地反映出船舶运动情况以及缆绳拉力情况.

1 控件开发架构

控件开发模块架构,主要包括三个部分:三维图像建立,船舶运动建模与求解,交互界面设计.

(1)三维模型建立.该模块对所有控件中所需要的三维图形进行读取或绘制以及坐标定位.按照模块化的思想,该控件包括以下几个三维图像模型:船舶图形,护舷图形,缆柱图形,操作台图形,缆绳图形以及控件背景.

(2)船舶运动建模与求解.该模块实现了对于海洋运动学中船舶运动状况的建模与船舶运动学算法构建,该算法运用于控件中,表现为对于船舶运动以及缆绳等周边环境运动的控制.

(3)交互界面设计.该模块提供人机交互界面,在界面中根据相应比例、位置绘制出船舶模型以及周边其他图像模型,并可根据鼠标操作,通过第三方平台对相应缆绳进行操作.

2 运动模型建立

控件运动模型,主要包括三方面:

(1)由于系泊位于环境情况恶劣,受风浪流影响,系泊在开敞式码头中自由飘荡,导致船舶出现运动偏移,船舶运动模型:横移,纵移,升降,横摇,纵摇和旋转六个自由度运动[3];

(2)由于系泊船舶运动,最终导致船舶与码头港口之间的缆绳运动,缆绳运动模型,表现为已和船舶相连的缆绳,根据船舶运动而表现出不同的运动状况;

(3)护舷运动表现为船舶由于海浪等自然因素向护舷方向不断靠近,不断压迫,进而导致护舷被压缩,护舷在该方向上的大小根据船舶运动状况伸缩.

2.1 船舶运动模型

根据三维立体坐标系,以船舶起始位置作为坐标轴原点(0,0,0),船舶的六个自由度运动可转化为船舶在三维坐标轴上的运动:

(1)平行移动:对船舶模型所在X、Y以及Z坐标值进行更改,在控件中通过调用glTranslatef平移方法与Invalidate(true)即时刷新来实现;

(2)旋转:船舶分别以X、Y以及Z轴为中心旋转轴旋转[5],此处将调用glRotatef旋转方法,以Z轴为中心进行旋转;

2.2 缆绳运动模型

缆绳模型主要由缆柱端固定坐标与船舶模型相连端非固定坐标组成,在假设船体位置,缆绳端的原坐标为(X0,Y0,Z0),船舶在X,Y,Z轴上的平移运动量分别为:PX,PY和PZ,因此,在只有船舶平移运动的情况下,船舶端缆绳的坐标为(X0+PX,Y0+PY,Z0+PZ),因此,以下只对船舶旋转,纵摇和横摇的情况下船舶端缆绳坐标值(X,Y,Z)的计算进行阐述:

(1)X坐标

根据图1缆绳端X坐标运动图中分别抽象表示船舶旋转,纵摇和横摇运动过程中,只对船舶的X坐标进行研究.

(a) 旋转

(b) 纵摇

(c) 横摇

因此X的坐标为:

X=X1+X2+X3

由图1(a)旋转示意图中所示,X1=n×sin(angleY).旋转过程中,船体本身长度不变,m=n,并可看出m取值大小为旋转运动前船舶端缆绳的Z坐标值,即为Z0+PZ,m=n=Z0+PZ.因此,

X1=(Z0+PZ)×sin(angleY)

图1(b)纵摇示意图中,纵摇过程中,对X值不产生任何影响,因此,X2=0.

图1(c)横摇示意图中,X2=n×cos(angleZ).

横摇过程中,船体本身长度不变,m=n,并可看出m取值大小为横摇运动前船舶端缆绳的X坐标值,即为X0+PX,m=n=X0+PX.因此,

X3=(X0+PX)×cos(angleZ)

因此,经过六个自由度运动之后,船舶端的缆绳X坐标为:

X=(Z0+PZ)×sin(angleY)+

(X0+PX)×cos(angleZ)

(2)Y坐标

根据图2缆绳端Y坐标运动图中分别抽象表

(a) 旋转

(b) 纵摇

(c) 横摇

示船舶旋转,纵摇和横摇运动过程中,只对船舶的Y坐标进行研究.因此Y的坐标为:

Y=Y1+Y2+Y3

如图2旋转示意图中所示可得:

Y2=(Z0+PZ)×sin(angleX)

Y3=(X0+PX)×sin(angleZ)

因此,经过六个自由度运动之后,船舶端的缆绳Y坐标为:

Y=(Z0+PZ)×sin(angleX)+

(X0+PX)×sin(angleZ)

(3)Z坐标

根据图3缆绳端Z坐标运动图中分别抽象表示船舶旋转,纵摇和横摇运动过程中,只对船舶的Z坐标进行研究.因此Z的坐标为:

Z=Z1+Z2+Z3

(a) 旋转

(b) 纵摇

(c) 横摇

由图3旋转示意图中所示可得:

Z1=(Z0+PZ)×cos(angleY)

Z2=(Z0+PZ)×cos(angleZ)

Z3=0

因此,经过六个自由度运动之后,船舶端的缆绳Z坐标为:

Z=(Z0+PZ)×cos(angleY)+

(Z0+PZ×cos(angleX)

3 技术处理

3.1 三维模型建立

运用模块化思想构建控件中的各图像模型板块,使每个板块之间相互独立,如此便可对每个板块中的图像内容进行自由且独立的增加、删除以及修改.

窗口创建:将图像窗口抽象为方法reshape,对整个窗口显示内容进行参数设置.该方法将定义所有控件窗口中的各项指标参数,例如通过glViewport设置三维世界的窗口大小,gluLookAt对视觉角度进行位置,glColor窗口着色情况以及glDepth构建三维空间的深度[6-8].

背景创建:背景抽象为方法BackGround,即三维控件的背景图像.将背景理解为置于屏幕后方的白板,将背景图案贴在白板上.首先,在保证白板四个角坐标置于同一平面,并且可构成矩形的情况下.用glBegin(GL_QUADS)在三维空间中放置四个点坐标,此方法将四个点坐标相连接自动形成平面,绘制出三维空间中的四边形.在矩形平面绘制过程中,坐标的添加可通过glVertex3f在三维空间中直接绘制.最后将已选定背景通过调用glBindTexture纹理化,并通过glTexCoord2f将背景图片根据图片与矩形四个角对应,进而将图片贴在该矩形上形成背景图案.

缆绳创建:缆绳抽象为方法dis_rope.缆绳可理解为一个端点固定,另一个端点随船体运动的线段.首先通过调用glBegin(GL_LINES)为函数,其中调用glVertex3f函数创建缆绳在三维空间内的两个坐标,并将两坐标相连接形成线段缆绳模型.接下来用glColor3f改变缆绳颜色[9].

船体创建:三维船体抽象为方法dis_ship.首先通过调用glmReadOBJ调用OBJ格式的三维模型,调用glmScale来设置模型在三维控件中的大小,glmFacetNormals计算模型的平滑顶点法向,glmDraw最并在三维坐标中绘制船体模型,之后调用glTranslatef平移函数与glRotatef旋转函数来确定船体的坐标位置以及角度[10-15].

3.2 界面交互设计

缆绳颜色变化:系泊缆绳所受张力通过传感器传输到控件中,缆绳颜色将随着所受张力值的改变改变颜色(正常绿色,预警橙色,报警红色).缆绳颜色提醒:控件在第三方平台中加载成功以后,可通过鼠标双击触发事件,控件可将信号传送至第三方平台,通知第三方平台进行相应操作.该过程中,将鼠标放在缆绳所在位置上,进入相应区域后,缆绳颜色会发生改变,提示使用者鼠标处于事件触发区域内.

4 控件验证

基于上述建立的模型和技术方法,采用VisualStudio 2010与OpenGL结合,开发了大型开敞式码头三维控件ship.ocx,控件运行效果如图4所示.三维系泊船的横移、横摇、纵移、纵摇、回转、升降等6个自由度运行幅度将受其实时监测数据的驱动,其运动平滑度取决于实时数据的采样率,在监控系统开发中,可通过设置合适的数据采样周期决定.系统开发者可通过鼠标对控件进行人工交互操作.

图4 控件成果图

5 结论

论文给出了开敞式码头系泊船控件的开发方法,研究了系泊船及其缆绳的动态模型和空间开发处理技术.通过以VS2010平台,基于OpenGL函数类库开发了受数据驱动的系泊船三维运动控件 .控件验证表明:三维动态控件界面简洁、直观 ,具有良好的实时性和逼真性,用户可操作性强.文中开发的控件具有可重用性,可广泛应用于码头系泊自动化系统构建与监控系统开发领域.

[1]魏昌理.在大型开敞式码头建立缆绳拉力、护舷压力监控预警系统的必要性[J].水运工程,2007,407 (9):115-118.

[2]秦子君.大型油轮缆力约束的统计分析 [J].水运工程,2012,468 (7):86-97.

[3]刘必劲,张亦飞,孙昭晨,等.波浪作用下大型开敞式码头系泊船舶撞击能量研究[J].水运工程,2011,455 (7):71-75.

[4]李志,张磊,梅国雄.地址勘察信息系统中三维模型控件的设计与实现[J].南京工业大学学报(自然科学版),2011,33(3):93-97.

[5]王兰美,赵继成,秦华泰.OpenGL及其在VC++下的开发应用[J].武汉大学学报(工学版),2006,39(4):62-65.

[6]杨光,陈勇,乔园园,等.在因特网上显示分子三维结构的ActiveX控件的开发[J].计算机与应用化学,2000,17(2):135-136.

[7]孙朝云,邹鹏,李伟.基于OpenGL路面裂缝三维重构技术研究[J].水运工程,2014,34(5):73-76.

[8]ROYAN J,GIOIA P,CAVAGNA R,et al. Network-Based Visualization of 3D landscapes and city models[J].IEEE Transactions on Computer Graphics and Applications,2007, 27(6):70-90.

[9]MAIRE C,DATCU M. Earth observation image and DEM information aggregation for realistic 3D visualization of natural landscapes[J].IEEE Transactions on Geoscience and Remote Sensing,2005,43(11):2676-2683.

[10]Manish Bajpai,C.Schorr,M.Maisl,Phalguni Gupta,et al. High resolution 3D image reconstruction using the algebraic for cone-beam geometry over circular and helical trajectories[J].NDT and E International,2013,60:62-69.

[11]闫贺,吴怀宇,彭晟远,等.四自由度模块化机械臂运动学建模[J].信息技术,2011 (10):1- 4.

[12]孙亮,马江,阮晓钢.基于OpenGL的六自由度机械臂三维仿真工具的设计[J].计算机测量与控制,2009,17(5):983-984.

[13]凌云,储林波.用Visual C++中的MFC和OpenGL建立三维图形应用环境[J].微型机与应用,1998(4):60-64.

[14]常树龙.空空导弹遥测数据三维实时显示系统设计与实现[J].现代电子技术,2010(4):64-66.

[15]刘国栋,李宏.基于OpenGL的虚拟历史博物馆漫游设计与实现[J].电脑与信息技术,2010(1):58-61.

Development Technology of Data-Driven Mooring Ship 3D Controls

QIU Zhanzhi,YANG Fuan,ZHANG Chong,ZHAO Xingtian

(Software Institute, Dalian Jiaotong University, Dalian 116028, China)

In order to achieve three-dimensional display effect of mooring monitoring system at open sea terminal, improve efficiency of system construction, 3D controls of mooring ship and mooring cable are developed. On the basis of analysis of ships freedom motion and mooring cable tension, the motion model of mooring ship and mooring cable, the model construction methods and controls development technology are studied. The controls are developed by VS2010 development platform, the 3D model construction is besed on OpenGL function librariy and modular method, and realize that the 3D controls is conbined with the motion model, and drived by real-time monitoring data. The Terminal mooring monitoring system constructed by the controls can realistically display motion stance of mooring ship and real-time work state of mooring cable tension. The controls are of reusability, and have a broad application prospect in the field of terminal mooring monitoring.

data-driven; mooring ship 3D controls; 3D model construction method; OpenGL function librariy; controls reusability; open sea terminal

1673- 9590(2016)03- 0107- 05

2015-03-30

大连市科技计划资助项目(2014A11GX006)

邱占芝(1960-),女,教授,博士,主要从事网络控制系统、计算机远程监控系统的研究E- mail:wangjianchao8099@126.com.

A

猜你喜欢
缆绳系泊控件
基于CFD方法的系泊状态FSO舵载荷计算
高韧性海洋用三级系泊链钢的研制
航空拖曳诱饵系统机动过程缆绳张力仿真
基于.net的用户定义验证控件的应用分析
MEG4 规范对导缆孔的新要求及 相应的设计改进
船舶靠泊过程中系缆作业仿真
关于.net控件数组的探讨
深水工程船舶缆绳测力装置设计与应用
用于FPSO系泊系统的吸力锚疲劳分析研究
系泊布置设计中几个问题的讨论