肖剑波 胡大斌 胡锦晖
(海军工程大学动力工程学院武汉430033)
交互式机舱漫游系统关键技术研究∗
肖剑波 胡大斌 胡锦晖
(海军工程大学动力工程学院武汉430033)
船舶机舱环境设备众多、场景复杂、管系纵横交错,论文根据机舱训练需求,开展了基于虚拟现实技术的交互式机舱漫游系统关键技术研究。首先介绍了基于网络的分布式系统硬件结构及模块化软件结构;结合实际系统存在的网络及硬件采集数据延迟等情况,开展了运动预测与平滑算法研究;最后对系统中虚拟人、操作手、视点等的矩阵变换进行了研究;试验结果表明,系统具有较好的沉浸感,可以满足船员舱室漫游、设备交互操作、联网训练等要求。
虚拟现实;机舱;交互;漫游
Class NumberTP391
随着计算机图形学、人机交互学、网络通信等的发展,虚拟现实技术日益成熟,应用也越来越广泛[1]。相比于传统的实船训练或者基于半实物仿真的模拟训练系统而言,基于虚拟现实技术的交互式训练,具有费用低、时间短、施训灵活等特点。船舶机舱环境设备众多、场景复杂、管系纵横交错,利用虚拟现实技术构建机舱复杂环境[2],实现机舱的三维可视化及漫游交互系统,对提高船员培训效率具有重要的现实意义。
船舶机舱交互漫游系统是以虚拟现实技术、人机交互方式构建的漫游系统[3~4],主要实现如下功能:进行第一视角漫游;机舱内部及船外自然环境仿真;操作提示语言显示及语音播放;系统文件记录功能;虚拟人与操控台碰撞检测功能;虚拟人、手等的实时姿态显示;操控台的指令响应;分布式交互仿真。
系统具有离线和联网两种使用模式:离线使用时,本系统独立运行,用户可对舰船内部舱室布局、设备、舰船外部进行直观地预览、评估,并可对设备进行操作控制,开展单系统、单设备独立训练;联网使用时,本漫游交互系统以联邦成员的形式加入到分布交互式仿真系统中,为岗位人员提供逼真的虚拟工作场景(包括设备的仪表显示等),同时,将岗位人员的操作信号发送到仿真系统中。
2.1 硬件结构
系统基于网络的分布式硬件结构,硬件组成包括:
1)计算机及网络设备;
2)头盔式显示器(Head Mounted Display);
3)6DOF运动跟踪传感器;
4)数据手套(Data Glove);
5)Wand操作杆。
硬件结构如图1所示。
图1系统硬件结构图
2.2 软件模块
联网训练模式采用HLA1516体系结构,选用Vega Prime、DI-Guy作为三维仿真开发软件,基于Creator构建场景机舱布局、舱室设备等三维模型,通过Vega Prime实现场景模型的驱动控制及机舱外部自然环境等的渲染,运用DI-Guy实现往场景中添加特定行为的人物,并实现便捷改变虚拟人的服饰、颜色。系统软件包括场景显示模块,硬件设备输入模块,界面操作模块,人物显示与控制模块,数据通讯模块,配置文件解析模块,提示信息模块,音响效果管理模块等多个部分组成。
3.1 运动预测与平滑
交互式机舱漫游系统是建立在网络环境上的分布式系统,各节点通过网络彼此交换数据,这就必然存在传输延时[5];另一方面,系统中用于测量头部、手腕运动的6DOF运动跟踪传感器以及测量手部各关节运动的数据手套都是通过RS323与上位计算机相连的,计算机获得的测量参数必然存在延时。从这些具体的数据问题中,可以抽象出一个共同的技术问题,就是延时的确定与补偿问题。
确定延时大小基础是利用时钟同步技术所建立的统一时间基准。
1)网络传输延时
在接收节点,假设其迭代计算为等间隔循环计算,迭代周期为T,这样每个迭代周期的起始时刻为t=kT,k=0,1,2…,并假设在每个迭代计算周期内的计算流程为:采样本机数据→接收网络数据→模型计算→输出(本机及网络数据)。这里约定,用编号k标记迭代运算周期,由于网络数据接收与迭代计算无固定的相位关系,这里用编号m标记与接收的数据包相关的量。
这样假如在第k个计算周期获得了网络数据(意即此时网络数据为新数据),记下此刻的时间tm,显然kT<tm<(k+1)T,假设该数据包的时间戳为tstm,则该数据包的总传输延时为
假如网络延时为恒定的情况下,显然tm-tm-1=-。在一般情况下,网络延时的波动是比较大的,因此这一假设是不成立的;但对于节点数目比较少的局域网来说,可认为此假设近似成立。另假设前一次收到数据的时间为tm-1(它位于某一计算周期[kmT,(km+1)T]之内),前二次收到数据的时间为tm-2(依次类推),则对于k+1周期以后的各计算周期,如果没有收到新数据,必须进行估计。
2)预估算法
对于第k+i(i≥1)个计算周期,采用下面的方法进行状态估计:滑方法获得状态:
其中,Xm,Xm-1分别是在tm时刻和tm-1时刻收到的数据包中包含的系统状态量,tk+i表示状态估计时刻的时间点,(k+i+1)T<tk+i<(k+i+2)T。是先将Xm向前移动一段时间ε(即认为它是未来值),然后在利用点(Xk,tk)和(Xm,tstm+ε)进行线性内插,获得Xk+1。
现假设在k+1计算周期以后的各周期内,均能收到网络真实数据,则有
式(1)称为一阶估计,式(2)称为二阶估计。
4)传感器数据延时
传感器测量延时的确定方法是:计算机在采样传感器数据时,首先向传感器接口发送采集指令,记录这一时间点tk,当接收到传感器数据后记录此刻的时间,则按下面的式子确定传感器测量延时:
可见,估计就是利用历史值的线性组合预测未来值,也就是在由历史值张成的一个线性子空间中,取未来值的一个近似。
3)平滑问题
假设在第k个计算周期内采用的是估计值Xk,而在第k+1个计算周期是收到了网络数据(真实值)Xm,k+1计算周期假如直接使用此时收到的网络数据Xm作为Xk+1,则如果比较大时,易引起跳动。
解决的方法是在k+1计算周期采用下面的平
其中α为实验参数,且0<α<1。
在延时确定以后,补偿方法与上面的计算原理一致,不再赘述。
3.2 人物驱动与编辑
场景中人物接收来自硬件输入模块的数据驱动人物运动,将数据信息处理后,得到人的姿态信息和用户进行虚拟操作的结果信息,并将姿态和虚拟操作结果发送给三维场景效果显示模块。
1)DI-GUY人物实时动作驱动
DI-Guy先进的运动引擎使人物的一举一动都十分逼真,它的动作库拥有2000多个基本动作及其过渡动作[6],但在实际的应用中这些动作并不能满足要求,而且这些是固化的动作,在虚拟场景中虚拟人只能完成简单、既定的操作,无法实现复杂操作动作和人物的实时驱动控制,即只能实现训练的演示而无法实现真正意义上的训练,从而极大地限制了虚拟人在各种实时训练系统中的应用[7]。
DI-Guy提供了可以实现对虚拟人体物理结构(全身关节)进行控制的API,克服了固化动作的缺点,将DI-Guy从单纯的演示系统中解放出来[8]。DI-Guy虚拟人由14个基本关节构成,包括颈关节、左右肩关节、肘关节、腕关节、腰关节、胯关节、膝关节、踝关节。另外,针对特殊人员提供特殊的关节控制,如飞行指挥员人物模型提供对手指关节的控制以实现特殊手势的表达。
DI-Guy提供的关节的实质是建立在Open⁃Flight格式人体模型文件基础上的DOF(Degree Of Freedom,简称DOF)节点,关节的运动即是提供各自由度方位数据来驱动各节点的运动[9~10]。DI-Guy人体的14个关节均为3自由度DOF,即关节运动只能绕X、Y、Z轴旋转运动。系统选用Flock of Birds六自由度跟踪器,配合数据手套捕获人体各关键关节的运动参数,传递给虚拟人相应关节以实时驱动虚拟人身体的运动。
2)DI-GUY场景人物添加
DI-Guy包含了大约100个照片级人物的模型,包括八种士兵和一系列专业人员,如飞行指挥员、带防毒面具的应急人员、警察等,其它还包括多个普通男性和女性市民。DI-Guy使用行业标准的OpenFlight模型,从而可以利用建模工具建立修改所需引用的人体模型并添加到人物库中。
人体是由200多个关节组成的复杂实体,如手臂、头、身躯、腿及脚等,而手臂也有很多组成部分,由后臂、前臂、手掌组成。在虚拟环境的几何建模中,通常采用层次建模方法以对人体模型有一个规范而详尽的定义。利用树形结构表示实体各个组成部分即可表示成分层结构,分层结构通过子对象及其之间的联结表达,表现各子对象间拓扑特性。树根为人体重心、树的内部结点为骨架层上的人体各关节点(如肩关节、肘关节等),树的外部结点为部位层上的人体各部位(如头部、胸部等)。用Mul⁃tigen Creator建模工具在树形结构的基础上采用自底向上流程进行人体外形建模,将人体模型及纹理文件放至DI-Guy安装目录下即完成了自定义人体模型的添加。
3)人物编辑
DI-Guy人物只提供固定人物特征的替换,而且模型也是加密的,因此对人物特征的编辑组合不够灵活,为解决该问题,为用户提供更加灵活的组合和扩展方法;本系统借用了DI-Guy的自定义人物驱动思想和模型,从建模层就把头盔、马甲、手持物、面部表情等特征单独分离开来。提供对头盔、马甲、手持物、面部表情的自由组合和编辑。
系统仿真运行平台采用普通商用计算机(基本配置如下:intel I3处理器,Geforce GTX 760显卡,4GB内存),试验结果表明:仿真过程平均运行速率为30fps,系统具有较好的沉浸感,可以满足船员舱室漫游、设备交互操作、联网训练等要求。图2为系统运行效果图。
图2手指与操控台按钮碰撞检测响应
本文在分析机舱训练需求的基础上,介绍了基于网络的分布式系统硬件结构及模块化软件结构;结合实际系统存在的网络及硬件采集数据延迟等情况,开展了运动预测与平滑算法研究;并对场景中DI-GUY人物实时动作驱动和自定义人物编辑等进行了研究。为船舶机舱虚拟训练提供了技术基础,并对城市漫游、室内设计展示、工业仿真、数字博物馆等具有借鉴意义。
[1]龚立,张晓锋,沈雅慧.舰艇虚拟舱室训练环境设计研究[J].计算机与数字工程,2014,42(4):725-728. GONG Li,ZHANG Xiaofeng,SHEN Yahui.Virtual War⁃ship Compartment Environment Design[J].Computer& Digital Engineering,2014,42(4):725-728.
[2]钱江,余昆,颜声远,等.大型船舶驾驶室数字化人机工程设计评价方法[J].中国舰船研究,2014,9(4):18-24. QIAN Jiang,YU Kun,YAN Shengyuan,et al.Ergonomic design evaluation method for the wheelhouse on large ships[J].Chinese Journal of Ship Research,2014,9(4):18-24.
[3]商蕾.基于视景仿真的船舶驾驶舱人机工程设计评价研究[J].武汉理工大学学报:交通科学与工程版,2011,35(4):840-844. SHANG Lei.Research on bridge man-machine engineer⁃ing evaluation based on visual simulation[J].Journal of Wuhan University of Technology(Transportation Science&Engineering),2011,35(4):840-844.
[4]曾鸿,张均东,任光,等.船舶机舱三维视景仿真系统设计与实现[J].系统仿真学报,2014,26(2):363-375. ZENG Hong,ZHANG Jundong,REN Guang,et al.Design and Implementation of Marine Engine Room Three-dimen⁃sional Visual Simulation System[J].Journal of System Simulation,2014,26(2):363-375.
[5]李荣川,陈宁,聂垒鑫.基于三维视景的立体显示及漫游系统开发[J].船舶工程,2013,35(3):105-108. LI Rongchuan,CHEN Ning,NIE Leixin.Stereo Display and Roam Program Development Based on 3D Vision[J]. SHIP ENGINEERING,2013,35(3):105-108.
[6]邓贤晖,张玉梅.大型舰船虚拟导引训练系统研究[J].计算机与数字工程,2013,41(4):580-583. DENG Xianhui,ZHANG Yumei.Vitual Guided Training System on the Warship[J].Computer&Digital Engineer⁃ing,2013,41(4):580-583.
[7]胡维华,钱克宠.三维跑步场景与多角色虚拟人的融合设计[J].计算机工程与科学,2010,32(3):52-54. HU Weihua,QIAN Kechong.Designing the Multi-Media Treadmill Fusion With Multiple Characters and Structured Scenes[J].Computer Engineering&Science,2010,32(3):52-54.
[8]马立元,谢建华,张睿.某型导弹虚拟训练系统中虚拟人运动控制的实现[J].计算机工程与应用,2005,11:205-207. MA Liyuan,XIE Jianhua,ZHANG Rui.Accomplishment of virtual human movement control of virtual operation sys⁃tem of certain missile[J].Computer Engineering&Appli⁃cation,2005,11:205-207.
[9]张松涛.海上搜救模拟器中虚拟人的应用研究[D].大连:大连海事大学,2011. ZHANG Songtao.The application of virtual human in mari⁃time search and rescue simulator[D].Dalian:Dalian Mari⁃time University,2011.
[10]常高祥,徐晓刚,张雷.虚拟维修中虚拟人的动作模型设计[J].工程图学学报,2011,1:99-103. CHANG Gaoxiang,XU Xiaogang,ZHANG Lei.The De⁃sign of Virtual Human's Action Models in Virtual Mainte⁃nance[J].Journal of Engineering Graphics,2011,1:99-103.
Research on Key Technologies of Interactive Roaming System for Marine Engine Room
XIAO JianboHU DabinHU Jinhui
(College of Power Engineering,Naval University of Engineering,Wuhan430033)
There are lots of equipment and pipes in the marine engine room,which makes the environment complexity in the scene.In this paper,based on the requirements of cabin training,the design and development of interactive roaming system for en⁃gine room based on VR is researched.The hardware structure and software module of the distributed system based on network are in⁃troduced at first.Aimed to solve the problem of data acquisition delay due to network and hardware of the system,motion prediction and smoothing algorithm are carried out.Finally,matrix transformation of the virtual person,operator hand and viewport are stud⁃ied.Experimental results show that the system has good sense of immersion and can meet the requirements of engine room roaming,equipment interactive handling and networking training.
virtual reality,engine room,interactive,roaming
TP391
10.3969/j.issn.1672-9722.2017.07.021
2017年1月8日,
2017年2月27日
国家自然科学基金项目(编号:51179196)资助。
肖剑波,男,博士,讲师,研究方向:机舱自动化与仿真,视景仿真及虚拟现实技术。胡大斌,男,教授,博士生导师,研究方向:舰船动力装置仿真及机舱自动化。胡锦晖,男,博士,讲师,研究方向:船舶动力装置仿真及机舱自动化。