分布式虚拟环境/高级体系结构

概述

• 分布式虚拟环境 – 分布式交互式仿真

• 死亡推算

• 高级体系结构

分布式虚拟环境

• 引言。

• 它们是什么?

• DVE 与分析仿真的对比

• 分布式交互式仿真(DIS)

  • 设计原则

• 示例。

分布式虚拟环境(DVE)

  • 一个将人类和/或物理设备嵌入其中的合成世界
  • 嵌入的人类/设备与模拟元素之间的互动
  • 涉及不同位置的人类、设备、计算
  • 示例 ; 军事训练(SIMNET,分布式交互式仿真,HLA) ; 多人视频游戏
  • 一个关键问题是确保不同参与者对DVE的观点一致 ;在时间和空间上一致 ;“公平战斗”问题 ;延迟,通信带宽有限

DVE 架构

地理分布的用户和/或资源有时是必需的 

  • 通过互联网进行的互动游戏
  • 专用硬件或数据库

仿真类型

一个广泛使用的分类仿真类型的分类法 :

  • 实时仿真: 一种涉及真人操作真实系统的仿真
  • 虚拟仿真: 一种涉及真人操作模拟系统的仿真 虚拟仿真通过行使运动控制技能(例如飞行飞机)、决策技能(例如投入火控资源进行行动)或通信技能(例如作为C4I团队的成员)将人类置于中心位置 
  • 建构性模型或仿真: 涉及模拟人员操作模拟系统的模型和仿真。真人激活(输入)这些仿真,但不参与决定结果

分布式交互式仿真(DIS)

“DIS的主要任务是定义一种基础设施,用于将多个位置的各种类型的仿真连接起来,创造出用于模拟高度互动活动的真实、复杂的虚拟‘世界’”[DIS愿景,1994年]。

  • 最初为训练而开发,由美国国防部开发
  • 在DoD中广泛使用的分布式虚拟环境;在其他领域(娱乐、紧急计划、空中交通控制)的使用也在增长

DIS设计原则

• 模拟节点的自主性

  • 模拟传播感兴趣的事件(消息称为协议数据单元PDU)给其他模拟;无需确定哪些其他节点需要信息
  • 接收者确定信息是否与其相关,并模拟新信息的本地影响
  • 模拟可以在练习进行中加入或离开

• 传输“真实情况”信息

  • 每个模拟传输其对象状态的绝对真实信息
  • 接收者负责适当地“降级”信息(例如,由于环境、传感器特性) • 仅传输状态变更信息
  • 如果行为“保持不变”(例如,直线平稳飞行),状态更新将降至预定频率(例如,每五秒一次)

• “死亡推算”算法

  • 根据最后报告的位置推算移动对象的当前位置

• 模拟时间约束

  • 许多模拟是人在回路中
  • 人类无法区分小于100毫秒的时间差异
  • 对模拟平台的通信延迟施加约束

典型的DVE节点模拟器 每1/30秒执行一次:

• 接收传入消息和用户输入,更新远程车辆的状态 •

• 更新本地显示

• 对每辆本地车辆 

  • 计算(整合)当前时间段的新状态 
  • 发送消息(例如,广播)表明新状态 典型序列

  1. 检测扳机按压

  2. 播放“开火”声音

  3. 显示枪口闪光

  4. 发送开火PDU

  5. 显示枪口闪光

  6. 计算弹道, 显示曳光弹

  7. 显示弹壳撞击

  8. 发送爆炸PDU

  9. 显示弹壳撞击

  10. 计算伤害

  11. 发送实体状态PDU表明伤害

分布式虚拟环境-总结

• 分布式虚拟环境与分析模拟有不同的需求,导致解决方案的不同

  • 为了实现更好的视觉真实感,牺牲精确度可能是可以接受的
  • 经常可以利用人类感知的限制

• 分布式交互式模拟(DIS)是构建DVEs所采用的方法的代表

死亡推算

• 基本死亡推算模型(DRM)

  • 生成状态更新
  • 位置外推

• 改进

  • 时间补偿
  • 平滑处理

分布式模拟示例

• 包含两辆移动车辆的虚拟环境模拟

• 每个联合体(模拟器)一辆车

• 每个车辆模拟器都必须追踪其他车辆的位置,并生成本地显示(从本地车辆看)

• 方法:每1/30秒(约34毫秒):

  • 每辆车向另一辆车发送一条消息,指示其当前位置
  • 每辆车接收来自另一辆车的消息,更新其本地显示

通信需求

• 每个玩家拥有1.0 Mbits/sec连接

• DIS:PDU包含144字节(1152比特)

• 每辆车每1/30秒生成一次位置更新

  • 每秒34,560比特

• 上限:支持29个实体

• 上述情况非常乐观

  • 无法利用所有可用带宽
  • 实体生成其他PDU(例如,武器开火)
  • 每个人类玩家多个实体(合成力量)

• 56Kbits/sec调制解调器:最多,只能一辆车!

问题

• 如果有许多车辆,需要生成许多消息;我们需要找到节约通信带宽的方法

• 位置信息对应于发送消息时的位置;没有考虑通过网络发送消息的延迟

死亡推算是一种尝试解决每个问题的技术。

死亡推算

• 更少频率发送位置更新消息

• 本地死亡推算模型预测远程实体之间的更新位置

重新同步DRM

何时生成位置更新消息?

• 比较DRM位置与精确位置,如果错误太大,则生成更新消息

• 以某种最小速率生成更新,例如,5秒(心跳)

死亡推算模型

  • P(t) = 实体在时间t的精确位置
  • 位置更新消息:P(t1), P(t2), P(t3) …
  • v(ti), a(ti) = 第i个速度,加速度更新
  • DRM:估计D(t),时间t的位置 ; ti = 最后一个更新之前的时间 ;∆t = t - ti
  • 零阶DRM: D(t) = P(ti)
  • 一阶DRM: D(t) = P(ti) + v(ti)∆t
  • 二阶DRM: D(t) = P(ti) + v(ti)∆t + 0.5a(ti)(∆t)²

潜在问题:

  • 当位置更新到达时可能会发生不连续性; 可能在显示中产生“跳跃”
  • 没有考虑消息延迟

时间补偿

考虑消息延迟

  • 在生成更新时向消息添加时间戳(发送者时间戳)
  • 基于消息时间戳进行死亡推算

平滑处理

减少更新发生后的不连续性

• “逐渐”引入位置更新

• 更新到达后

  • 使用DRM预测接下来的k个位置
  • 插值下一个更新的位置

死亡推算-总结

• 管理通信是实施分布式模拟的主要问题

• 死亡推算模型(DRM)

  • 根据过去的更新外推当前位置
  • 当DRM误差变得太大时发送更新消息
  • 减少处理器间通信

• DRM基于运动方程

• 时间补偿以考虑消息延迟

• 平滑处理以避免显示中的“跳跃”

高级体系结构

  • 高级体系结构(HLA):背景
  • 规则
  • 接口规范
  • 对象模型模板

HLA:动机

• 因“独立管道模拟”问题困扰的国防部:单独设计和定制的模拟,用于特定应用

  • 不易适应其他用途,导致软件重用有限,大量重复劳动
  • 不能轻松利用在其他DoD建模和仿真程序中开发的功能

• 高级体系结构的目标:定义一个共同的仿真基础设施,以支持国防仿真的互操作性和重用

  • 分析模拟(例如,战争游戏)
  • 培训(平台级,指挥级)
  • 测试和评估

DoD中的分布式模拟

• SIMNET(SIMulator NETworking)(1983-89)

  • DARPA和美国陆军项目
  • 网络互动战斗模拟器
  • 数十到几百个模拟器

• DIS(分布式交互式模拟)(1990-96)

  • 基于SIMNET成功迅速扩展
  • 数万个模拟实体
  • IEEE标准1278

• 聚合级模拟协议(ALSP)(1980年代末至1990年代)

  • 将网络模拟概念应用于战争模型

高级体系结构(HLA)

• 基于可组合“系统中的系统”方法

  • 没有单一的仿真可以满足所有用户需求
  • 支持DoD仿真之间的互操作性和重用

• 仿真联盟(联合体)

  • 纯软件仿真
  • 人在环仿真(虚拟模拟器)
  • 实时组件(例如,仪器化武器系统)

• 自1996年9月以来,被指定为美国国防部所有建模和仿真(M&S)的标准参考体系结构

HLA包括

  • 仿真(联合体)必须遵循的规则,以在联合执行期间实现正确的交互
  • 对象模型模板(OMT)定义了联合体(联合体对象模型)使用的公共对象集的格式,它们的属性以及它们之间的关系
  • 接口规范(IFSpec)提供了与运行时基础设施(RTI)的接口,该基础设施在模型执行期间将联合体联系在一起

HLA(高级体系结构)讲解

模拟模型的组合=联盟

模拟模型/包=联盟成员

HLA

联盟/联盟成员规则

  • 确保联盟中模拟的正确交互
  • 描述模拟和联盟成员的责任 •

接口规范

  • 定义运行时基础设施(RTI)服务
  • 确定每个联盟成员必须提供的“回调”函数 •

对象模型模板

  • 提供记录信息的通用方法
  • 确立关键模型的格式 --->联盟对象模型(FOM) ---> 模拟对象模型(SOM)

HLA规则

联盟(Federation)规则

  1. 联盟应有一个HLA联盟对象模型(FOM),按照HLA对象模型模板(OMT)记录。
  2. 在联盟中,所有与模拟相关的对象实例表示应在联盟成员中,而不在运行时基础设施(RTI)中。
  3. 在联盟执行期间,联盟成员之间的FOM数据交换应通过RTI进行。
  4. 在联盟执行期间,联盟成员应按照HLA接口规范与RTI交互。
  5. 在联盟执行期间,一个实例属性在任何时候最多只能由一个联盟成员拥有。
  6. 联盟成员应有一个HLA模拟对象模型(SOM),按照HLA OMT记录。
  7. 联盟成员应能够更新和/或反映任何属性,并发送和/或接收交互,如其SOM所指定。
  8. 联盟成员应能够在联盟执行期间动态转移和/或接受属性所有权,如其SOM所指定。
  9. 联盟成员应能够根据其SOM指定的条件(例如,阈值)变更提供属性更新的条件。
  10. 联盟成员应能够管理本地时间,以便他们能够与联盟的其他成员协调数据交换。

HLA联盟

互联自主模拟器

运行时基础设施(RTI)

提供创建和管理联盟执行的服务

  • 联盟设置/拆除
  • 在联盟成员之间传输数据
  • 同步(时间管理)

HLA运行时基础设施

• 运行时基础设施(RTI)是一组提供多个模拟系统所需的共同服务的软件。

• 六个服务组:

  • 联盟管理
  • 声明管理
  • 对象管理
  • 所有权管理
  • 时间管理
  • 数据分发管理

典型的联盟执行

初始化联盟

  • 创建联盟执行(联盟管理)
  • 加入联盟执行(联盟管理)

声明联盟成员共同关心的对象

  • 发布对象类(声明管理) 
  • 订阅对象类属性(声明管理)

交换信息

  • 更新/反映属性值(对象管理) 
  • 发送/接收交互(对象管理) 
  • 时间推进请求,时间推进授权(时间管理)
  • 请求属性所有权假设(所有权管理)
  • 修改区域(数据分发管理)

终止执行

  • 辞去联盟执行(联盟管理)
  • 销毁联盟执行(联盟管理)

联盟成员与RTI启动的服务

一些服务由联盟成员启动,其他由RTI启动

• 联盟成员调用的服务

  • 发布,订阅,注册,更新
  • 类似于对库的调用
  • 在RTI大使中定义的程序

• RTI调用的服务

  • 发现,反映
  • 联盟成员定义的程序,在联盟大使中

对象模型模板

  •  HLA OMT提供了一个模板,用于记录有关模拟或联盟对象及其属性和交互的HLA相关信息。

— 它提供了一个公认的机制,用于指定数据交换和联盟成员之间的一般协调。

— 它提供了一种常见的、标准化的机制,用于描述潜在联盟成员的能力。

— 它有助于设计和应用HLA对象模型开发的通用工具集。

  • HLA对象模型可以用来描述一个单独的联盟成员(联盟成员),创建一个HLA模拟对象模型(SOM);或者描述一组多个互动联盟成员(联盟),创建一个联盟对象模型(FOM)。
  • 在任何情况下,HLA OMT的主要目标都是促进模拟之间的互操作性和模拟组件的重用。

HLA OMT组件:

  • 对象模型识别表:关联重要的识别信息
  • 对象类结构表:记录所有模拟/联盟对象类及其类/子类关系的命名空间
  • 互动类结构表:记录所有模拟/联盟互动类及关系的命名空间
  • 属性表:指定模拟/联盟中对象属性的特征
  • 参数表:指定模拟/联盟中互动参数的特征
  • 路由空间表:指定联盟中对象属性和互动的路由空间
  • FOM/SOM词汇表:定义表中使用的所有术语

基于类的数据分发

• 联盟对象模型(FOM)定义了在联盟成员之间传输的信息类型

  • 对象类(例如,坦克)
  • 属性(例如,炮塔的位置、方向)

• 一些关键原语(联盟成员/RTI接口)

  • 发布对象类属性:由联盟成员调用,声明其能够更新的对象类和属性
  • 订阅对象类属性:声明联盟成员感兴趣接收的对象类和属性
  • 注册对象实例:通知RTI在联盟成员中已创建一个对象的实例
  • 发现对象实例*:通知联盟成员已注册了一个订阅类的对象实例
  • 更新属性值:通知RTI已修改一个或多个对象的属性
  • 反映属性值*:通知联盟成员其已订阅的属性已被修改

高级体系结构-总结

  • 高级体系结构是实现分布式模拟的一种方法
  • HLA规则定义了贯穿整个体系结构的一般原则
  • HLA接口规范定义了一组支持分布式模拟的运行时服务
  • 数据分发基于发布/订阅机制
  • 25
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值