谢 宇,何坤金,陈义仁,王江坤
(1. 河海大学物联网工程学院,江苏常州 213022;2. 河海大学疏浚技术教育部工程研究中心,江苏常州 213022)
近年来,我国的水利工程建设逐渐成熟,国家对于近海清淤问题越来越重视。疏浚船在水利工程建设中有重要的作用,其中以绞吸式挖泥疏浚船的应用最为广泛,铰吸式挖泥船的工作效率高,适应的范围广,但由于疏浚过程的繁琐,疏浚作业环境复杂多变,为疏浚船的工作人员培训和工程的预测带来了不便。
以绞吸式挖泥船为代表的疏浚船,船身由船体、定桩、铰刀及吸排泥管[1]等组成,如图1所示,其工作时,通过主副桩固定船身以及驱动船身移动,前端的铰刀旋转进行挖掘工作,经过吸排泥管将铰刀切削的碎片输送至排泥区,完成整个疏浚的工作过程。
图1 船体结构
水下的地形,信息复杂,分析难度大,通过提前进行地形数据勘测,生成水下地形的模型,可以在作业前期对整个工作流程进行预估,减少实际施工的准备时间。王娟,季磊等人[2]通过C#编写CAD,以Delaunay三角网为理论基础生成了三维地形。何坤金等人[3]提出了三维地形与疏浚铰刀虚拟生成的方法,采用数据分块与网格表示三维地形,并建立了铰刀的三维模型及包围盒,提出的方法能够满足疏浚的要求。
疏浚船的核心作业部分是位于前方的铰刀头,传统培训工作在疏浚船上进行,船员无法对铰刀的工作情景有一个直观的感受,通过虚拟仿真技术对绞吸挖泥过程进行模拟,对水下地形在绞吸过程的变化进行模拟,降低培训的时间成本和消除潜在的安全的隐患。杨啸轶[4]对铰刀进行了有限元分析,计算并验证铰刀切削过程中的载荷情况及模态。苏召斌[5]等人对挖泥船挖岩过程进行了数值模拟,提出了切层厚度及步进距离的数学表示方法。
国外对于疏浚船仿真系统的研究起步较早,荷兰美国[6]设计的仿真系统,已应用于培训。国内对于此类仿真系统,倪福生等人[7]在绞吸挖泥船疏浚仿真研究一文中提出了采用多通道环幕投影的仿真系统以增强系统的临场感。基于Unity3D技术,姚鹏飞等人[8]针对切削流程,着重于解决挖泥船的铰刀切削的地形变化,以及使用虚拟现实技术进行操作系统的问题。
本文设计了一种基于Unity3D的疏浚船作业仿真系统,通过生成水下地形,疏浚船作业细节仿真,铰刀地形交互三个方面,对整个系统进行设计,旨在弥补传统疏浚船培训的不足,提高疏浚船作业流程的效率。
基于Unity3D的疏浚作业船作业仿真系统主要从以下三个方面来设计:地形生成模块、船体交互模块、铰刀挖掘模块,如图2所示。
图2 整体框架
根据组织框架,系统由三大模块组成,其中重点为地形生成模块以及铰刀切削模块。首先,在地形生成模块中,利用已有的数据进行插值处理,生成高程图,利用网格生成地形模型。其次,船体模型采用3ds Max建模软件,以“天狮号”疏浚船为模板,对疏浚船进行了建模。系统中设计了船体和船员两种不同的漫游视角,可自定义选取施工区域,可交互控制,同时加入了驾驶舱的设计,设置了多角度的观察视角。最后,在铰刀切削模块中,通过简化模型,添加包围盒,细化地形网格,层次细节(LevelofDetail,LOD)技术[9],曲面细分技术等方法,对铰刀与地形的交互变形进行了仿真,便于船员的观察。
水下地形信息复杂,是影响疏浚作业工作效率的主要因素之一,通过在系统中生成水下地形,可以在作业前对整个作业环境做出评估,规避障碍,提升作业效率,降低作业风险。该模块对水下地形从数据获取到可视化的整个处理过程进行了设计[10],提出在勘测过地形数据的区域,采用灰度值替代高程值的方法进行地形网格的生成。
地形数据是一组地理数据,包含位置信息和对应位置的高程值[11],其数据格式如表1所示。
表1 输入数据
对已知数据的水下地形,生成地形的步骤总结如下:
1)将数据进行插值处理,进行数据补足,便于网格细节的生成;
2)对原始数据进行灰度值归一化,将原有的高程值对应到灰度值中,见式(1)
(1)
其中H表示高程数据,Hmin表示高程数据中的最小值,Hmax表示高程数据中的最大值。
3)将处理好的数据进行灰度化处理,得到整个数据的等高线图及地形的灰度图。如图3所示。
图3 等高线图及灰度图
4)将灰度图导入到Unity3D中进行网格生成,利用灰度图生成地形的主要原理是通过网格表示地形[12],同时在网格上覆上灰度格中顶点的位置,黑色像素所对应的灰度值为0,代表海拔最低的位置,白色像素多对应的灰度值为255,代表海拔最高的地方。由此生成的网格地形如图4所示。左图中为数据点对应的位置,右图中为生成的网格模型。
图4 点云转化网格模型
由初始数据生成的地形,点的间距较大,生成的地形模型网格变化不连续,地形生成的效果较差,通过插值方法,将数据进行填充,得到填充后的数据灰度图后进行建模,如图5所示(图(a)为原数据建模,图(b)为采用最近邻插值法后建模,图(c)为薄板样条插值法后建模),通过对比可以发现填充后的数据,较原数据组更具有连续性,可以很好的将地形模型进行优化,原数据生成的模型的边缘尖锐问题,得到了很好的解决。
图5 地形建模
本文选择两种插值方法:最近邻插值法和薄板样条插值法,通过交叉验证进行对比,如图6(图(a)为最近邻法插值拟合结果,图(b)为薄板样条法插值拟合结果),薄板样条插值法得出的插值高程与实际高程的拟合度更大,且比较稳定,所有点都集中在正交直线上,薄板样条插值[13]方法的拟合性能更好,数据在拟合曲线的两侧的分布更均匀,因此本文选择薄板样条插值方法进行插值,得到的地形插值数据与实际情况更为接近,稳定性更好。
图6 拟合数据对比
疏浚船的模型结构非常复杂,组成部件众多,忽略螺丝等较小的模型外,还有四百多个组成部件,若每次在船体运动时,都需要渲染整艘船体模型,不仅工作繁琐,而且效率低下。而建立船体模型的目录树可以支持船体模型在运动渲染时,有针对性的进行选择渲染,提高模型的加载速度。建立的目录树模型层次结构取决于船体模型的层次关系。第一层是根节点,即完整的船体模型,第二层是对根节点的第一次划分,包括船体的主要组成部分,第三层是对上一层的主要组成部分进行继续划分;逐层往下,每层部件的所有孩子节点组合构成。
目录树的建立过程:首先,父节点建立成功后可以得到该父节点的句柄;然后,孩子节点寻找到它的父节点句柄后作为孩子节点加入父节点,即可建立父子关系。所以,目录树是按照层次顺序建立的。如图7所示。
图7 船体目录树
疏浚船的主要运动部件组成部分如图8所示。在该模块中添加了多端漫游系统,设置了两个不同的对象进行漫游,如图9,(a)是疏浚船的漫游,(b)为船员的漫游,以用户交互的方式切换控制对象。
图8 船体组成
图9 双视角漫游
此模块针对疏浚船的主要运动部件,在船舶内设置了多个漫游交互点,船员在进行漫游时可与之交互,显示相关设施的信息[14],提供船员进行理解,如图10(a)显示的为船体不同位置的驾驶舱观察视角,图10(b)为特定位置显示的部件信息。
图10 驾驶舱控制铰刀模型
驾驶舱中设计了主要的运动部件控制系统,以实现一端多控的功能,可以同时观察船体各部分的实时状态,船员在驾驶舱内即可进行相应的视角观察,因此,需要对主要工作部件建立相应的运动模型。疏浚船到达工作区域后,采用主辅桩定位横挖施工法进行疏浚施工,将挖槽中心线上的主副桩作为船体的旋转中心,依靠横移的作用使铰刀在挖槽宽度内做左右横向往返摆动,使铰刀分层切削开挖断面土层,通过台车控制主辅桩的移动,改变船体旋转中心,调整左右横移绞车收放横移线缆的速度,改变铰刀的移动速度及铰刀在断面上不同的切削位置。通过桥臂中置的泥浆泵吸入绞吸物,经排泥管线把泥水混合物输送到指定的吹填区。不同的收缆速度决定了船舶横移的速度,其速度关系式2如下
(2)
其中Vh表示疏浚船的横移速度,Vz表示收缆速度,其它符号如图11所示。
图11 铰刀臂运动
疏浚船的核心工作是铰刀组和桥臂的运动,所以铰刀切削模拟的效果至关重要[15]。在不同的地形上进行切削,铰刀和地形的交互变化是核心部分。为了更好的模拟出铰刀切削的效果,通过简化铰刀模型,网格和贴图变形结合的方式来提高仿真的效果。
铰刀头的主体由大环、刀臂、刀齿、轮毂组成,如图12左图所示。铰刀工作时,挖泥船绕主桩旋转,铰刀头也随之旋转,由于铰刀头距离主桩距离较远[16],疏浚船转动角度有限,铰刀头绕主桩的转动可以近似看成横移运动,铰刀头按一定的转速旋转,刀齿依次切削泥土,刀齿固定在刀臂上,刀臂旋转使得泥土聚集到内部的吸泥口,在仿真模拟时可以将铰刀刀臂上的刀齿进行简化,以降低计算机的运算消耗,提高运行速率。通过在3dsMax中对铰刀进行简化,去掉铰刀刀臂上的刀齿,只保留刀臂、大环和轮毂,如图12右图所示[15]。
图12 铰刀组成及简化模型
不同的地形土质需要配对不同类型的铰刀,铰刀,铰刀的结构形状可以通过相应的参数进行控制。如图13铰刀的结构图所示,刀臂轮廓1所示的铰刀内腔较大,适合挖掘土质较软的土壤,刀臂轮廓线2所示的铰刀适合挖掘土质中等的土壤,刀臂轮廓线3所示的铰刀适合挖掘土质坚硬的碎石土和岩石等。
图13 铰刀结构
铰刀的结构及参数如图14,15所示,根据公式(3)可以确定铰刀的数学模型,k1为铰刀介质切削系数,k2为铰刀形状参数,它们的取值由土质的力学性质来确定,土质越软k的取值越小。
(3)
图14 铰刀平面
图15 铰刀轴面
使用简化顶点面数的圆台铰刀包围盒来提高碰撞检测精度并减少碰撞检测复杂度,提高计算的速度,如图16所示。
图16 铰刀包围盒
挖掘模块中采取了网格变形和贴图变形的形式来进行地形挖掘的仿真[17]。首先提取原始地形网格中的顶点位置,生成点云模型[18],将原始网格顶点的位置储存在数组中,同时将每个顶点的速度也进行存储,为了更好的仿真切削力,通过添加偏移量的方式来模拟网格顶点受到的力的方向。由于每个网格顶点受到力的大小方向不同,相应获得的速度不同,网格的变形程度也不同。通过反平方定律来模拟里的衰减效果,本文中将原始力除以平方距离,即Fv=F/d2,为了在距离为零时,力处于全强度,将公式改为Fv=F/1+d2,将获得的力转化为速度,a=F/m,Δv=aΔt,由于网格顶点的质量为0,所以得到Δv=FΔt,同时重新计算顶点的法线方向。
实现步骤如下:
1)设置碰撞检测的条件,通过在铰刀模型的包围盒上设置碰撞体,检测与地形的碰撞。
2)遍历点云集合,在三角面片相连的顶点处生成新的顶点来控制网格的变形。
3)根据定点获得的力的方向和速度,改变网格顶点的坐标位置。
4)将改变的顶点位置应用到相应的顶点处,实现地形网格的变化,如图17所示。
为了增加地形挖掘的显示效果,同时在地形的下方放置两个摄像机,一个摄像机在第一帧时刻记录下地形的初始深度,另一个相机记录下铰刀实时下刀的深度,通过两个摄像机得到的深度差值信息,计算铰刀在运动时不同的位置信息。根据计算得到的深度值,进行轮廓检测,同时记录颜色,根据最后深度图的不同,将地形分为不同的通道,通过细分曲面技术,将两个通道的部分进行反方向移动顶点位置,形成铰刀扫过后两边凸起的部分,如图17所示,图(a)和图(b)为原地形模型和网格模型图(c)和图(d)为变形后的地形模型和网格模型。
图17 网格变形
在利用插值生成的细化地形网格模型上使用曲面细分技术,使得地形与铰刀进行交互时,可以更好的模拟出地形的变化过程,加入全局的小地图总览,可以根据挖掘的深度不同,显示出挖掘过的地区不同的显示效果,通过粒子效果的加入,还可以模仿水下地形受水流作用,挖掘的地形缓慢回填的效果,增强了仿真的效果,如图18所示。
图18 挖掘痕迹显示
本文通过Unity3D设计了以铰吸式挖泥船为代表的疏浚船虚拟仿真系统。该系统使用“天狮号”绞吸挖泥船为模板,在已勘测数据的地形区域通过插值算法,补充数据点,生成高精度的地形模型,为提高培训的逼真性,加入了多对象切换漫游系统,同时加入一端多控的模块;结合船舶横移算法公式、铰刀切削地形公式对铰刀切削的过程进行了仿真,提出了仿真优化的两种方案。该系统可以进一步提高疏浚仿真系统的逼真性,为疏浚船员的培训提供便利,还可以对疏浚工程进行工程预测与评估,提高了疏浚作业过程的安全性,降低了作业时的不确定性。此外,本文在后续的设计中还将加入船员权限系统,土壤产量的预估,以及对土壤切削过程的塌方等细节效果。