基于计算机协同工作的高层体系结构组播扩展
2018-06-20张德刚王达达李泽河黄继杰
张德刚,王达达,李泽河,黄继杰
(1.云南电网有限责任公司教育培训评价中心,云南 昆明 510650;2.北京科东电力控制系统有限责任公司,北京 100192)
0 引 言
基于HLA/RTI的分布交互仿真技术在联合训练中得到了广泛应用,并且正在朝智能化[1]、服务化[2]和虚拟现实化[3]方向发展。在虚拟现实化方面,追求联合训练场景的逼真度和学员的沉浸体验度是当前的研究热点。以往针对分布交互仿真对象的运动所采用的插值技术难以满足这种逼真度的要求,需要实时地获得分布交互仿真对象的运动和位置数据,这就需要开发实时的RTI。
实时RTI的开发技术在高性能仿真领域作了许多研究,文献[4-5]通过共享内存技术来提高RTI的实时通信性能,在多核服务器上取得了很好的效果。文献[6-7]通过在服务器间构建Infiniband网络,并采用直接内存访问(remote direct memory access,RDMA)通信机制对RTI进行优化,在Infiniband网络环境下取得了很好的实时性,并且针对大数据包传输的实时性更显突出。这些研究都将RTI的底层通信代码进行了替换,将基于TCP/IP的网络通信换成了共享内存或内存映射等,但联合训练仿真多在基于TCP/IP的局域网环境下进行,这就需要扩展RTI的底层通信代码,而不是替换了。
以基于虚拟现实技术的变电设备运维多人协同培训[8]为应用背景,结合应用中所用的高速局域网环境,探讨计算机支持的协同工作技术(computer supported cooperative work,CSCW)及其所采用的终端组播技术的实时性,并研究将CSCW和HLA/RTI这两种技术进行融合,以提高三维虚拟场景下多人协同培训仿真的逼真度。
1 虚拟现实应用背景
基于虚拟现实的变电设备运维仿真培训系统应用架构如图1所示,包括N台变电设备、M个虚拟现实(VR)头盔和电网计算服务器。每个变电站设备和电网计算程序各自构成HLA的联邦成员[9],同时每个带VR头盔的培训人员和教师各自构成联邦成员。变电站中电气设备的可视化模型组件数目很多,且要达到虚拟现实的沉浸式实时渲染,至少要保证图形的刷新频率不低于60帧/秒,故为了达到三维场景的实时显示效果需要采用实时通讯技术。
图1 基于VR的变电设备运维培训架构
当前高速以太网可达1GbE甚至10GbE,需要从减少延迟的指标来选择,和延迟有关的两个问题是传输和序列化,但在延迟时间中序列化时间只占很小的一部分。连接层的巨大延迟主要是由连接的每一端的接口和系统引入的。对于一个特定的包来说,它通过一个1GbE的连接的往返时间是135 μs,而通过一个10GbE的连接的往返时间只能下降到75 μs,大多数其他的开销都是来自于设备的两端,而不是来自于连接本身。
由此,在基于增强现实技术的变电设备运维多人协同培训中采用了1GbE的网卡和网线来构建高速以太网,其两个节点间单向传输512字节包速度是75 μs,高于文献[6]中所测得的各种用高速RTI来更新对象属性的速度。故可采用CSCW组播技术来进行实时通信。
2 CSCW的实时通讯模式
CSCW的三要素是合作、协调和通信。CSCW的合作模式从时间和空间上可分为同步模式、分布式同步模式、异步模式和分布式异步模式[10-11]。其中,同步模式系统用于本地组(局域网)之间面对面的实时协同工作系统,这种模式的协同工作系统要达到“你见即我见”[12-13]。CSCW在协同操作过程中难免会碰到多个用户对同一个对象进行操作,这样就使得如何保证这些操作井然有序地执行是必须的,目前国内外针对协同编辑、协同设计、网络会议等协同工作系统上的并发控制进行了相关的研究。按照是否允许操作冲突的发生,共享对象的并发控制方法分为以下几种典型[14-15]:令牌控制方法、加锁方法、操作信息序列化、基于操作转换的并发控制。
CSCW的通信方式多采用终端系统组播方式,终端系统组播是由美国卡内基梅隆大学(Carnegie Mellon University,CMU)研究开发的实用组播系统,包括成员管理和数据包复制等。这种把由路由器支持的组播转变到由终端系统支持的组播,能够解决IP组播的大部分问题(传输的不可靠性)。组播树是终端系统组播的核心结构,它的创建分为两个步骤:首先初始化一个连通图(Mesh),使得Mesh中的每个节点是连通的;然后在Mesh上创建生成树,每个生成树以在Mesh上对应的源节点为根节点。
HLA通过采用LBTS算法来实现联邦成员的时空一致性,保证了仿真逻辑的正确性,但牺牲了仿真的实时性。因为在实现LBTS算法时,只能采用集中式的星型网络拓扑结构,由服务端来管理各成员间仿真时间的传输及HLA其他服务的订阅和发布处理,同时由各联邦成员端的RTI库组件来管理本地的时间推进以及对带时戳事件的处理。显然,这种RTI库组件间彼此不通信的星型网络拓扑结构增加了通信量,同时降低了成员间的信息交换速度。为此引入了CSCW的终端组播方式,而CSCW所面对的上述协调问题可由HLA的时间管理来解决,培训仿真中所用的CSCW组播通信仅完成HLA的非受控受限的消息收发,扩展的RTI的通信方式如图2所示。
其中方框代表RTI的服务进程,圆圈代表被联邦成员所调用的libRTI线程。图中左侧星型拓扑保留HLA/RTI所有六大类服务的功能,而右图中新增的四个联邦成员间的网状通信拓扑(Mesh)实现了CSCW的终端组播功能,用于联邦成员间交互彼此的三维绘图信息,这些绘图数据不影响仿真事件的时空一致性,只是达到协同仿真系统视觉上的“你见即我见”,用来提高虚拟现实环境下的沉浸式逼真度。
图2 终端组播扩展RTI的通信架构
3 RTI和CSCW通信拓扑的实现
与文献[3-4]一样,对开源CERTI作修改,需要利用RTI所支持的HLA服务来扩展libRTI线程,使其增添CSCW的终端组播功能。在CERTI的libRTI库中包含RTI成员大使和RTI回调大使两类接口,应用程序主动调用RTI成员大使接口,同时在RTI回调大使接口中定义自己的函数功能。这些RTI回调大使接口或是通过应用程序主动调用RTI成员大使接口tick来查询并执行,或是通过响应libRTI线程发来的消息执行。当然,在tick接口实现中包含了时间管理的实现,即通过LBTS算法来获取满足时空一致性的回调事件并执行相应的回调接口。对于文中关注的实时数据的传输,则通过响应libRTI线程发来的消息来执行。
首先是建立动态的终端组播网,包括成员组播链路的建立和删除,可通过RTI的声明管理和对象管理的订阅和发布功能来实现。当联邦成员加入联邦运行后,声明订阅和发布cosimNetCard对象类,它包含cardIP和cardPort两个属性,即在FOM中添加(Class cosimNetCard(Attribute cardIP reliable timestamp) (Attribute cardPort reliable timestamp))。之后每个联邦成员调用registerObjectInstance接口,其参数除了cosimNetCard对象类句柄外,第二个对象名参数采用“FedName:cardIP:cardPort”这一字符串,串中的FedName是该成员名字,cardIP是该成员所在机器的网络IP地址,cardPort是该成员libRTI线程监测实时数据通信所用的网络端口。
每个联邦成员在RTI的发现对象回调接口中判断该对象的对象类是否是cosimNetHandle,若是则解析回调参数中的“FedName:cardIP:cardPort”这一字符串,从而获得某联邦成员监测实时数据通信所用的网络地址和端口,并用此网络地址和端口向该成员发起连接,在获得linkID后将[FedName,cardIP,cardPort,linkID]四元组加入本地的队列中(逐步形成Mesh连通图),并以linkID作为关键字来查找对应的四元组,也可以用联邦成员名来查找对应的linkID。当成员FedName调用DeleteObjectInstance时,其第一个参数采用上述的“FedName:cardIP:cardPort”字符串,各联邦成员在回调接口中通过FedName可消除队列中对应的四元组。
每个联邦成员要发送实时数据时,先将数据打包后依次发给四元组队列中的各linkID(也可根据应用需要来过滤出实际的接收者,形成一棵Mesh生成树)。将libRTI线程的网络监听进行扩展,除了监听来自RTI服务端的网络事件和来自本地RTI联邦大使端的接口调用事件外,还监听实时数据通信所用的网络端口,如图3所示。当监听到实时通信数据后,libRTI线程向显示窗口发Windows消息,通知显示窗口接收消息并更新显示画面。
图3 终端组播扩展RTI组件的通信通道
联邦成员间建立了网状的通讯链路,但每个联邦成员要发送实时数据时,会根据应用的要求来构建实时的终端组播队列,将与满足条件的成员的连接加入到自身实时的终端组播队列中(Mesh生成树),从而对发送数据过滤,减少了通讯量并提高了执行效率。
4 构建RTI扩展终端组播的实验
基于虚拟现实技术的交互培训包括立体投影、立体弧幕、图像虚拟现实头盔、动作捕捉器、仿真工作站和网络交换机,采用虚拟现实头盔和立体弧幕投影两种沉浸式立体显示技术,具体的硬件结构如图4所示。
仿真工作站用来供教员进行虚拟操作,并将视频信号传送到融合机并通过6台投影输出到大型弧幕上。主工作站通过数据线连接动作捕捉器,实时获取人体的动作捕捉数据并驱动虚拟人与虚拟场景的设备实现交互操作。学员工作站可以通过佩戴3D眼镜的方式,沉浸式地体验变电站一二次设备的正常、异常、事故状态及其动作过程,进行变电站设备虚拟巡视、检查、漫游、操作及事故案例处理过程。其中,动作捕捉器(Kinect)实时获取用户运动关键位置的空间坐标和运动姿态数据,并实时将数据传送给网络中的工作站,以更新虚拟人物角色相应的关节旋转角度,从而实现虚拟人物的控制和场景交互操作;虚拟头盔(VR)配套了位置跟踪器,通过实时追踪头盔上的位置感应点,实时获取头盔的空间位置和方位并传送给网络中的工作站,来实时更新头盔内显示的三维影像和大型弧幕上的仿真场景。
图4 实验的硬件系统结构
该实验支持多人分别以监护员、操作员、负责人的角色交互,完全按照变电站实际运行的工作流程,协同完成一个任务。多个受训人员可分别以不同角色登录进入培训场景,以团队协作的方式共同完成一个多人参与的作业任务。在协同作业过程中,学员按照各自的角色、任务分工在仿真系统上进行仿真实操,用户之间采用文字、语音等通信方式进行沟通交流。各学员都在四核CPU的工作站上培训,以下三组学员在同时完成不同的任务,得到如图5所示的多人协同仿真显示效果。
在学员操作时,包括大电网仿真程序在内的所有联邦成员依旧按固定的仿真步长协同推进,采用的推进策略是既受限又受控;同时学员联邦成员和教员联邦成员在时刻监听libRTI线程利用Windows消息机制发来的运动和操作消息,并负责在显示线程中更新画面的显示。
5 结束语
在基于HLA/RTI的分布交互仿真应用中引入虚拟现实技术可增加仿真的可视化效果,但随着用户体验的逼真度要求越来越高,对RTI网络传输的实时性提出了更高要求。故须将传输数据分为支持虚拟场景
图5 基于扩展RTI的变电设备运维仿真培训
构建的场景交互数据和支持仿真时空一致性的数据,对于后者采用原有RTI的六大类服务来支撑;而交换场景数据的最佳方案是在联邦成员间直接传输。文中通过在开源CERTI的联邦成员组件libRTI中引入CSCW的终端组播机制,实现了变电站培训员间运动和操作数据的直接传输,达到了场景数据交互的实时要求。从最近两年针对大电网运行的仿真培训应用来看,该技术使仿真培训中的每个学员获得了满意的沉浸感。
参考文献:
[1] 梁彦刚,高晓升,张 翼,等.基于HLA的分布式仿真框架自动生成技术[J].计算机工程与科学,2014,36(1):34-38.
[2] 张 涛,史璐莎,张 斌,等.一种快速扩展HLA/RTI Web服务的方法[J].计算机技术与发展,2016,26(12):49-52.
[3] 王传魁,董云峰,邓武东,等.卫星编队构型设计可视化系统[J].系统仿真学报,2012,24(7):1428-1433.
[4] 张智慧,李伯虎,柴旭东,等.一种面向共享内存环境的高性能HLA/RTI原型系统[J].系统仿真学报,2014,26(2):315-322.
[5] 朱卫国,梁洪波,姚益平.面向装备体系对抗仿真的RTI关键技术研究[J].计算机仿真,2014,31(2):18-21.
[6] 邢 驰,李伯虎.Infiniband网络架构下RTI通信机制研究[J].电子学报,2016,44(2):327-333.
[7] 严 琳.基于HLA分布式实时仿真系统中软总线设计[J].电子科技,2015,28(6):91-94.
[8] 李蔚清,吴慧中,林昌年.变电站仿真培训系统虚拟环境的研究与实现[J].系统仿真学报,2006,18:123-126.
[9] 杨选怀,林昌年,王国平,等.基于高层体系结构的电力系统综合仿真平台[J].电网技术,2009,33(11):98-103.
[10] PENICHET V M R,MARIN I,GALLUD J A,et al.A classification method for CSCW systems[J].Electronic Notes in Theoretical Computer Science,2007,168:237-247.
[11] ZHAO Jianmin, LONG Xiaochun. A modified model for flexible workflow access control[C]//4th international symposium on computational intelligence and design.Hangzhou,China:IEEE,2011:279-281.
[12] ELMARZOUQI N,GARCIA E.ACCM:a new architecture model for CSCW[C]//Proceedings of the 2007 11th international conference on computer supported cooperative work in design.[s.l.]:[s.n.],2007:84-91.
[13] CONVERTINO G, BILLMAN D, PIROLLIP, et al.The CACHE study:group effects in computer-supported collaborative analysis[J].Computer Supported Cooperative Work,2008,17(4):353-393.
[14] 毛彩辉,于忠党.CSCW系统中的并发控制策略研究[J].计算机系统应用,2007,16(3):122-125.
[15] KHAN S M,SULAIMAN M,TAHIR A M.Domain-based classification of CSCW systems[J].Research Journal of Applied Sciences,Engineering and Technology,2011,3(11):1315-1319.