基于MFC和VegaPrime的无人机三维视景仿真实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

趷趫 现代计算机 2013.08 中
开发案例
整的机身。 相比较传统模型的建立,这种方法大大减少 了操作人员建模的工作量。 在完成了无人机各部分的 建模工作后,贴上纹理图片,就可以得到一个完整的无 人机仿真模型,如图 2 所示。
图 2 无人机仿真模型图
3.2 地形场景模型的建立 Creator 是用海拔数据来生成 OpenFlight 格式的地
1 三维视景仿真环境简介
1.1 Creator 建模环境
Creator 是 Multigen 公 司 创 建 的 一 个 实 时 仿 真 建 模软件, 它拥有独创的用于描述三维虚拟场景的层次 化数据结— ——OpenFlight 数据结构。这是一种树形的层 次化结构,采用这种结构主要 基 于 两 点 考 虑[1]:一 是 这 种结构可以方便地将模型按照几何特性进行有效地组 织, 并将其转化为能够方便地进行编辑和移动的节点 的形式; 二是这种树形结构非常适合实时系统进行各 种遍历操作。 其中,所谓的节点(node)就是建构层次化 模型数据库最基本的元素或模块。 利用 Creator 构造出 的模型能与实时仿真软件紧密结合[2]。
Creator 主要包括两个窗口: 应用程序窗口和数据 库窗口。 Creator 的大部分工作都是在应用程序主窗口 内的模型数据库窗口中进行的, 用户可以使用 Creator 的工具条、建模工具或者菜单命令,在数据库窗口内完 成创建模型、调整视图、编辑模型等多种操作[1]。 1.2 Vega Prime 视景仿真环境
Biblioteka Baidu
,,,,,
Creator,,
,,,,
, ,.f lt, ,
MAT,,
Lynx Prime, ,,,
Vega Prime, ,
,,,,
图 1 系统总体设计流程图
用 Creator 建 模 的 传 统 方 法 是 运 用 它 的 面 体 基 本 工具相互组合构建规则模型 (无人机测控实验三维可 视 化 研 究 )[4],而 无 人 机 的 机 身 部 分 显 然 是 不 规 则 体 , 不 能用规则的几何体工具来建立实体模型,因此,就需要 利 用 Loft Tool (连 接 体 工 具 ,也 称 放 样 工 具)技 术 来 构 建。 在模型设计界面中加入准备好的无人机视图,设置 网格大小对齐背景图后,就可以制作物体剖面图,然后 使 用 放 样 工 具 生 成 模 型 大 体 形 状 [12],它 用 于 将 一 组 截 面 多边形连接生成为一个三维实体。 在背景图上,通过分 析无人机自身的几何特征, 将各个剖面多边形放到合 适的位置,调整好其倾斜的角度,从而整合形成一个完
*+,-





!"
#
$
%& ’
()
’ ;<=>?@ABC
:$
#
$
%& ’
./()
9+,-
01 $2 3’4 567 8
图 3 地形场景模型图
图 4 Vega Prime 应用程序基本框架
编写基于 MFC 对话框程序的 Vega Prime 应用程
形 数 据 库 [14~15],而 不 同 的 海 拔 数 据 又 具 有 不 同 的 清 晰 度 和格式。 只有把海拔数据转化成 Creator 内部的DED 格 式,才能输入 Creator 并继续生产地形数据库。 地形场 景的建立对整个三维视景有着至关重要的作用, 它能 够真实逼真地反映外部世界,让仿真更具真实感。 建立 一个视景仿真应用的地形是一个非常复杂的工作,一 般构造真实地形的步骤是先导入记录真实地理信息的 原始地形数据,设置地形转换算法,应用地形纹理,映 射地形特征数据,然后批处理生成地形模型数据库。 最 后,在铺好纹理的地形上导入各种地形特征后,一个完 整的地形场景模型就建立完成了,如图 3 所示。
3.3 视景驱动的实现 利用 Vega Prime 软件开发视景平台,主要包括两
个步骤:①利用 LynX Prime 建立底层模型,生成 *.acf 文件;②编写 Vega Prime 应用程序,驱动场景,完成视 景平台。
LynX Prime 只 是 用 来 设 定 和 预 览 Vega Prime 应 用程序的图形式用户界面, 可以进行简单的程序初始 化和设置, 对于高级仿真设计则需要利用 Vega Prime 提供的完整的 C 语言应用程序接口(API)编制仿真程序。 在 Windows 平 台 上 建 立 Vega Prime 应 用 程 序 有 两 种 较为典型的开发方式。 最简单的一种是 Windows 的“控 制台应用程序”[16]。 和传统的控制台程序一样, 入口是 常规的 main()。 另一种是基于 MFC (Microsoft Foundation Class)的应用程序,如图 4 所示,它使用 WinMain() 入口。 用户可以根据需要进行选择。
层次结构应尽可能简单明了, 这样既便于模型的读取 和移动,也方便用户根据个人需求进行相关修改。 由于 要 时 实 地 描 绘 出 无 人 机 的 飞 行 过 程 [9],包 括 在 细 节 方 面 无人机舵面的偏转和螺旋桨的转动, 就必须要使无人 机的局部能够相互独立分解运动, 这就要用到 Creator 工具中的自由度节点 DOF[10~11]。 根据实际情况,需要设 置 6 个 DOF 节点,其中 1 个为飞机的主体节点,5 个为 舵机节点。 要使舵机的偏转建立在整个机身偏转的基 础上,舵机的 DOF 节点必须以飞机的主体节点为父节 点,当视点离无人机较远时,使用多边形数相对较少的 细节层次节点 LOD 显示无人机,这时候无人机模型是 很简单很粗糙的;随着视点向无人机移动,会用一个复 杂的 LOD 代替前一个 LOD 节点,反之亦然。
现代计算机 2013.08 中 趹趫
开发案例
序主要解决两个问题: ①在什么地方执行 VP 的主循环; ②在哪个窗口显示 VP 场景。 对于第一个问题的解决,只有一个方法,就是要在
MFC 对话框程序里 启 动 一 个 工 作 者 线 程[13],在 线 程 的 主函数里初始化 VP 和执行主循环;而第二个问题,就 是 确 定 VP 窗 口 的 父 窗 口 ,VP 的 场 景 在 父 窗 口 上 显 示,具体就是把父窗口的句柄传给函数 setParent()。
2 无人机三维视景仿真总体设计
人机三维视景仿真的总体设计目标是以无人机自 主飞行为仿真对象,对其进行直观实时的再现,利用各 种技术描绘出无人机飞行的全过程。 在进行系统需求 分析的基础上,完成系统主要模块的建立。 无人机模型 的建立是整个系统的主要部分, 而构造场景模型是为 了描述地形及大气环境。 模型的建立就是将仿真的具 体对象与环境通过数学方法表达成一个三维图象的集 合存储于计算机内。 本文采用 Multigen-Creator 进行模 型的构造。 Vega Prime 驱动是视景系统根据对象运行 时 的 状 态 参 数 驱 动 所 建 立 的 场 景 驱 动 [8],可 以 生 成 实 时 视景。 视景系统可以通过数据传输技术从无人机飞行 控制的仿真环境中获取无人机飞行过程中的各项实时 数据。
VP 应用程序的主线程函数如下所示:
UINT PublicMember::CTS_RunBasicThread(LPVOID) {
vp::initialize(__argc,__argv); PublicMember::CTS_Define(); vpKernel::instance()->configure();
3 无人机三维视景仿真实现
3.1 无人机模型的建立 无人机模型的建立是利用三维仿真建模工具 Cre-
ator 来完成的。 首先要采集无人机的相关原始数据,包 括 图 片 、尺 寸 等 数 据 ,然 后 在 Creator 软 件 中 根 据 实 际 无人机的尺寸缩放到合适的比例,最后进行建模。 无人 机的建模在整个仿真视景中占据重要地位, 因此它的 细节必须做得比较精细, 这样才能真实地体现无人机 的形状姿态。 在模型的建立中,需要注意的是,模型的
Vega Prime 是 Multigen 公司推出的最新虚拟现实 开发工具,具有面向对象、功能强大、界面友好、平台兼 容性好等特点。 它是一个进行实时仿真和虚拟现实开 发 的 高 性 能 软 件 环 境 和 良 好 工 具 [3],能 高 效 地 创 建 和 配 置视景仿真、基于仿真的训练、通用可视化等应用程
收稿日期:2013-06-14 修稿日期:2013-07-15 作 者 简 介 :丁 梦 雨 (1989-),女 ,黑 龙 江 哈 尔 滨 人 ,硕 士 研 究 生 ,研 究 方 向 为 无 人 机 地 面 控 制 站
现代计算机 2013.08 中 趶趫
开发案例
序[2], 同时 Vega Prime 软件也融入了许多新的特性,这 将更好地为用户快速地创建、 编辑和运行复杂的三维 视景仿真应用。
Vega Prime 包含所有创建实时三维虚拟现实应用 程 序 的 API[3],但 还 是 专 门 设 计 了 LynX Prime。 LynX Prime 能够简化应用程序的开发过程 , 不通过 编 写 代 码,只是通过可视化的编辑界面进行配置,就能够开发 出实时三维虚拟现实应用程序。 通过 LynX Prime[7],开 发人员可以添加类的实例对象, 并为这些对象定义参 数。 这些参数都存储在一个应用程序的实例框架中,形 成一个应用程序配置文件(Application Configuration File, ACF)。 这个应用程序配置文件包含一个 Vega Prime 应 用 程 序 初 始 化 和 运 行 时 所 需 要 的 信 息 。 同 时 ,LynX Prime 还提供了一个预览功能,让开发人员对实时三维 虚拟现实应用程序的开发达到所见即所得的效果。
摘 要: 利用 Multigen Creator 建立无人机和地形场景模型,通过 Vega Prime 来驱动视景系统,实现 一个基于 MFC 的可视化无人机三维 视 景 仿真 实 验 平台 ,对 无 人机 的 飞 行过 程 进 行实 时 描 绘,良好地再现无人机自主飞行时的飞行姿态。通过无人机试飞实验证明,该视景仿真系统 取得比传统视景系统更好的效果。
vpWindow*vpWin=*vpWindow::begin(); vpWin->setParent(PublicMember::CTS_RunningWindow); vpWin->setBorderEnable(false); vpWin->setFullScreenEnable(true); vpWin->open();
开发案例
文 章 编 号 :1007-1423(2013)23-0085-05
DOI:10.3969/j.issn.1007-1423.2013.23.023
基于 MFC 和 Vega Prime 的无人机三维视景仿真实现
丁梦雨 , 芦利斌 , 金国栋
(第二炮兵工程大学 907 教研室, 西安 710025)
关键词: 无人机; Creator 建模; Vega Prime; MFC; 视景仿真
0 引言
近年来, 无人机在民用和军事领域都发挥着越来 越重要的作用。 随着无人机飞行功能的日益完善,使得 其飞控系统日趋复杂化,这就需要采集大量的数据。 通 常无人机地面站的数据回显功能主要由参数来直接显 示,这样不够直观,对于非专业操作人员来说,无法快 速直观地读取无人机的飞行状态。 同时,无人机飞行实 验具有高风险、高成本的特点,因此,开发一个能够满 足无人机试飞实验的三维视景仿真系统, 具有其特殊 意义和重要性。 无人机三维视景仿真是利用三维图像 来实现无人机的飞行过程,实时地再现其飞行状态。 操 作人员通过观察三维仿真视景中无人机的飞行姿态, 可以直接判断出无人机的飞行状态, 这样就大大减少 操作人员的工作量。 三维视景仿真是在虚拟现实技术 的基础上,综合计算机、图像、计算机交互及数据传输 等技术进行可视化显示的一个重要技术, 它能够实时 动态地再现无人机飞行全过程, 为今后研究无人机整 个运动过程提供直观易懂的事实依据。
相关文档
最新文档