ROV虚拟操控仿真系统基于水下作业级ROV视景仿真工作的需要,进行ROV虚拟仿真平台设计,并在虚拟仿真平台上搭建典型的虚拟作业场景以模拟真实的工作状况。
1. ROV操控训练仿真系统建设内容
ROV虚拟操控仿真系统由数据仿真和视景仿真两大部分组成,运用MATLAB进行数据仿真,完成ROV数学模型的建立、位置姿态信息的计算与统计、历史航迹位姿曲线及控制系统的后期调整等任务;视景仿真部分利用Unity3D来实现虚拟场景的搭建、ROV运动动作的展示及控制指令的接收与反馈等功能;最后利用实时通信实现MATLAB与Unity3D的联合仿真,将数据仿真与视景仿真融为一个完整的系统,为将MATLAB计算得到的数据信息转化为直观可见的图像信息,ROV虚拟操控仿真系统通过数据传输的方式,对MATLAB与Unity3D进行联合仿真。首先,由Unity3D负责接收键盘手柄等操作指令,然后将操作指令转换为数据形式,并通过UDP作为载体将数据传输给MATLAB;MATLAB接收到数据后进行解码,然后根据控制信号对ROV施加相应的力或力矩,并对ROV的位置姿态进行计算,将计算得到的数据保存并传输给Unity3D;Unity3D接收到数据后,进行坐标系的转换并同步更新将ROV的位姿信息以可视化的方式展示出来,通过二者的联合仿真,既发挥了MATLAB的计算能力,又充分利用了Unity3D的渲染功能。
2. ROV操控训练仿真系统开发流程
2.1 模型建立
首先通过SolidWorks对ROV进行三维模型建立,并对ROV三维模型进行水动力仿真得到ROV水动力参数进行计算。
2.1.1 三维模型建立
在建立ROV三维模型的过程中,为应对不同工况下的工作需求,ROV虚拟操控仿真系统用模块化的方式建立三维模型,模型共分为六大模块:主体框架、浮力材料、电子仓、机械臂、动力推进以及照明摄像模块。
2.1.2 数学模型建立
为精准模拟ROV在水下的运动状态",需要对ROV在水中受到的流体动力、静水力、洋流作用力、脐带缆作用力、推进器推力以及扰动力口进行分析计算。
2.2 虚拟仿真
Unity3D虚拟仿真主要分为4个模块设计,分别为环境背景模块、船体模块、通信方式、交互控制模块。
2.2.1 环境背景模块
地形模块是将既有的高程图导入到Unity3D中生成地形网格,将卫星影像图贴图到建立好的地形上,实现地形的仿真。水面模块是利用Perlin噪声生成地形网格四,添加Shader对地形表面进行渲染,从而建立水面模型,将水面坐标按时间偏移实现海水的流动效果。水体模块利用天空盒和UI滤镜实现海底效果。此外,添加太阳光与鱼类对仿真场景进行丰富。
2.2.2 船体模块
利用Solidworks制作ROV各部件的3D模型,将各部件按父子关系进行装配。首先,确定主体框架位置口,将浮力材料、电子仓安装到主体框架上,加入多个摄像头模组,保障不同工况下操作员不同的工作需求,为适应海底光线较弱的环境,为ROV探照灯添加体积光。最后,按预留位置和角度安装推进器,保证推进器可以正常旋转。
2.2.3 通信方式
为实现MATLAB和Unity3D的数据传输,需要配置通信方式, 由于交互式仿真平台对实时性要求较高,利用UDP实现MATLAB和Unity3D之间的数据传输与信息交换。
2.2.4 交互控制模块
为满足不同操作员的需求,设计了鼠标键盘控制模块、手柄控制模块以及人脸识别控制模块,各交互模块既可独立工作又可搭配控制,实现对ROV的位姿控制、机械臂控制以及镜头切换等功能。
ROV虚拟操控仿真系统通过Solidworks及MATLAB对ROV进行建模,并使用Unity3D设计虚拟仿真环境以及通过UDP进行数据传输实现实时交互。系统可同步显示ROV航行画面、历史航行轨迹以及位置姿态的数据和曲线,并以可视化的方式直接观测ROV的运行状况。