基于虚拟现实技术的船用锚机交互仿真系统

2019-06-13 01:18蒋效彬谭家万任鸿翔邱绍杨
关键词:锚机碰撞检测虚拟现实

蒋效彬,谭家万,任鸿翔,邱绍杨

(1. 大连海事大学 航海动态仿真和控制交通行业重点实验室,辽宁 大连 116026;2. 重庆交通大学 航运与船舶工程学院,重庆 400074)

0 引 言

锚机和绞缆机(统称锚机)是船舶操纵的重要机械设备。由于锚机是由众多部件组成的复杂系统,且价格昂贵,操作危险性较大,同时受场地、时间等因素限制,目前各航海院校在对船员教学培训中基本没有真实锚机供船员操作,导致船员对锚机使用操作和检查维护培训严重不足。近年来,虚拟现实技术快速发展,利用该技术开发出具有沉浸感和交互性的锚机交互仿真系统可较好解决上述问题。此外, 2010年发布的STCW公约马尼拉修正案B部分中增加了“船上工作的船长和驾驶员培训指南”[1],指南中明确提出应使用锚操作模拟器对船员进行培训。

国内外学者研究了虚拟现实中的某项技术,为开发船用锚机交互仿真系统打下了基础。比如:李从信等[2]通过研究虚拟人技术,将反向动力学应用到仿真系统中,并取得了不错效果;郝会龙等[3]将A*算法应用到虚拟船员路径规划中;M.MÜLLER等[4]提出了一种连续碰撞检测方法,能处理可变形物体在迭代计算步长之间的碰撞检测问题;高丽娜等[5]将场景中的物体剖分成三角形,并将问题转化为点与三角形之间碰撞检测问题,减少了计算量,提高了计算效率;雷林等[6]建立起ST OFFSHORE锚的三维模型并对其结构强度进行了分析;邹川等[7]建立了锚绞机和起货机的液压管路系统和控制单元三维模型,开发出了虚拟现实仿真系统。

笔者对虚拟人动画、自动寻路及碰撞检测等关键技术进行了深入研究,应用以上技术开发了锚机交互仿真系统,实现了对船用锚机虚拟场景漫游和三维人机交互功能,并集成到航海模拟器中。

1 系统架构

为提高锚机仿真系统的 真实感、沉浸感和交互性,笔者从系统需求分析入手,分别从支持技术层、开发工具层和显示应用层这3个层级进行系统模块设计。以虚拟人技术、粒子系统、物理引擎、网络技术等作为底层技术支持,把5×104t级散货船“长山海”作为母船,采用3DS Max软件建立船体、锚设备、系泊设备的三维模型,利用Unity 3D引擎模拟锚机相关功能, 建立锚机和绞缆机操作训练系统。系统结构如图1。

图1 系统总体架构Fig. 1 Overall architecture of the system

2 关键技术

2.1 虚拟人技术

虚拟人技术是人工智能技术与计算机图形学科的综合运用,该技术通过虚拟现实中人与物理环境产生动作行为,在虚拟现实中通过行为控制来模拟人的动作。笔者在分析人物行走、操纵、旋转、攀爬等动作基础上,采用骨骼蒙皮技术建立起虚拟人几何模型,并通过旋转骨骼关节实现虚拟人动画显示。反向动力学可提高操作位置的精确性及虚拟人动作解算效率,笔者采用反动力学实现虚拟人动作模拟。其姿势由各骨骼关节之间夹角θ和末端骨骼节点位置x表示,可写为式(1):

θ=f-1(x)

(1)

反向动力学主要通过IK解算器模拟虚拟人动作,IK解算器通过控制柄位置旋转和平移来实现IK链中相应关节的移动和旋转,其中控制柄是连接起始关节节点和末关节节点的向量。

图2 IK控制柄解算流程Fig. 2 IK control handle solution flow

(2)

图3 虚拟人动作Fig. 3 Virtual human action

2.2 自动寻路

让虚拟人用更短距离到达目的地,需对虚拟人进行路径规划。启发式搜索算法中A*算法是目前为止最快的一种计算最短路径算法。因此笔者采用A*算法对虚拟人行走路径进行规划。A*算法的核心是估价函数[8],如式(3)。

f(n)=g(n)+h(n)

(3)

式中:f(n)为从初始节点s到目标节点t的估价函数;g(n)为从初始节点s到中间节点n的实际代价;h(n)为中间节点n到目标节点t最短路经的估计代价。

A*算法最关键问题是确定估价函数。在计算下一步估价函数f(n)时,实际代价g(n)已经确定,因此估计代价h(n)计算至关重要。笔者采用两点间欧几里德距离计算h(n),如式(4):

(4)

式中:xt、yt为目标节点t坐标;xn、yn为当前节点n坐标。

路径规划区域如图4;A*算法执行步骤如图5;虚拟人自动寻路过程如图6。

图4 路径规划区域Fig. 4 Path planning area

图5 A*算法流程Fig. 5 A*algorithm flowchart

图6 虚拟人沿行走路径Fig. 6 Virtual person walking along the path

图4中:从开始点s探寻到一条到目标点t的路径,探寻每一步都以当前节点为基点,扫描其相邻的8个节点,计算当前节点到终点距离,计算出最短路径,各相邻节点左上方、左下方和右下方的3个值分别表示f(n)、g(n)和h(n),得到最小f(n)值,通过这样的估价函数可找到最短路径;图6中:虚拟人沿着红线指示方向行走。

2.3 碰撞检测

进行虚拟漫游时,控制摄像机(视点)在相对静止场景中运动。为提高仿真系统环境真实感,需对人和物体间可能发生的碰撞进行检测,根据新视点判断虚拟人是否会与场景中物体发生碰撞。若直接对两个物体对象进行碰撞检测,其计算代价往往比较高昂。系统利用基本碰撞检测、触发器碰撞检测和光线投射等碰撞检测方法,在完成物体碰撞体测试后再进行几何相交测试,从而减少计算消耗。

2.3.1 基本碰撞检测

针对虚拟场景基本碰撞检测技术主要有轴向包围盒(AABB)检测、方向包围盒(OBB)检测、包围球检测、离散方向多面体(k-DOP)检测等[9],如图7。

图7 包围盒类型Fig. 7 Types of bounding box

Unity3D提供了多种碰撞器组件用于物体间基本碰撞检测,包括球碰撞器、胶囊碰撞器、盒碰撞器、网格碰撞器和角色控制碰撞器等[10]。前3种碰撞器分别可模拟球体、胶囊体、立方体形状物体碰撞。网格碰撞器则根据三维模型网格外形模拟碰撞效果。角色控制碰撞器可用来判断角色是否和其它物体发生碰撞。在锚机仿真中虚拟人依赖于角色控制碰撞器,与锚机、墙体等物体进行碰撞检测。

2.3.2 触发器碰撞检测

指定一个处于触发状态的碰撞器,将被检测碰撞对象包含进该触发器中。这样角色与对象的碰撞检测就转换为角色与触发器之间的碰撞检测。船舶锚泊和靠离泊操纵是船员人身伤害事故的高发区。如在操作锚机进行带缆绳作业时,缆绳都存在危险扇形区域,船员站在此区域十分危险,这些可行走但危险区域,即可用此法实现危险区域报警提示功能。当操作锚机进行抛锚作业时,人如果距离锚机太近易被锚链缠绕发生危险,也可通过添加触发器方式实现危险区域报警功能。图8实现了当锚机转动时虚拟人进入危险报警区域时的报警界面。

图8 危险区域报警Fig. 8 Danger zone alarm

2.3.3 光线投射

在系统中需要设置撇缆终点位置,这将涉及到光线或有向线段计算。基本光线跟踪算法要对每条射线和所有物体求交,然后再对所得全部交点排序以确定可见点。对锚机交互仿真系统场景,这种处理办法效率低下,需改进光线跟踪算法。常用策略有控制跟踪深度、空间网格剖分、层次包围体、空间八叉树剖分等,空间网格中均匀网格相对其他算法容易构建、容易遍历。故笔者采用均匀网格相交优化光线跟踪(图9),沿直线方向对6个邻接网格单元体进行遍历。在3D环境下,若网格单元体间存在某些共享面,则其连接度为6(2D环境下连接度为4);若考虑网格单元体间共享边,则其连接度为16。若两个网格单元体之间存在共享面、共享边及共享顶点,则其连接度为26(在2D环境下为8)。

图9 2D直线的网格单元连接特征Fig. 9 Connection characteristics of grid cells of 2D lines

在船进行靠泊操作时,需要船上水手进行撇缆作业,把撇缆绳撇至码头。在仿真实现时,人为设定撇缆位置,通过光线投射算法获取撇缆位置。船上水手收到撇缆命令后将撇缆绳撇到撇缆位置,撇缆后效果如图10(为清晰显示,图10将撇缆绳和撇缆头放大10倍)。

图10 撇缆后效果Fig. 10 Effect of after leaving the cable

3 系统实现

笔者对锚机交互仿真系统的设计从系统需求入手,设计了系统的各个功能模块,利用计算机建模软件建立起包括码头、船舶、锚机、虚拟人等的三维场景,并集成了灯光、天空盒、海浪等特效[11],构建出锚机仿真场景。

依据不同设备特点和实际情况,笔者设计不同交互方式。并结合反向动力学原理、A*算法及碰撞检测等技术实现了锚机仿真系统交互功能。该系统为方便使用者操作锚机,借助GUI组件实现系统用户界面设计,添加了包括二维导航、三维导航、工具箱、多人操作、提示信息窗等UI菜单。虚拟锚机场景和GUI界面如图11。

图11 锚机场景及GUI界面Fig. 11 Windlass scene and GUI interface

4 结 语

笔者以船用锚机作为主要研究对象,通过研究虚拟现实技术中的虚拟人技术及自动寻路技术,实现了虚拟人操作锚机的动作模拟及自动寻路功能;结合基于包围盒和网格剖分技术的碰撞检测算法实现锚机操作的碰撞检测,并研发了锚机交互仿真系统。

该系统操作切合实际,可重复操作,极大节省成本,降低风险,有效保护船员安全。同时借助Unity 3D引擎跨平台性,实现了锚机交互仿真系统多平台发布,增强了仿真系统通用性和锚机教学培训灵活性。目前,现该仿真系统已经集成到航海模拟器中,使用效果良好。

猜你喜欢
锚机碰撞检测虚拟现实
基于动力学补偿的机器人电机力矩误差碰撞检测
全新预测碰撞检测系统
深水半潜式平台舷外锚机操维平台建造及锚机安装工艺研究
虚拟现实技术在中学校园中的应用
基于BIM的铁路信号室外设备布置与碰撞检测方法
风口上的虚拟现实
虚拟现实技术向科幻小说借灵感
BIM技术下的某办公楼项目管线碰撞检测
基于模糊PID算法的船舶锚机控制系统设计
山特维克强调:加强掘锚机日常保养防患未然