放逐者佩里罗莉尔...吧 关注:65贴子:870
  • 14回复贴,共1

传说中的毕设【Creator】+【Vega】最终论文

只看楼主收藏回复

摘 要
水下机器人的设计工作完成后,还需要对该水下机器人的各项性能指标进行测试,以检验其各项性能的优劣。使用虚拟仿真模拟技术进行测试,既可以缩短研发的周期,又可以节省下大量的经费,并且还对提高系统的可靠性具有极其重要的意义。通过对水下机器人虚拟仿真模拟测试系统的研制,将视景仿真技术应用到测试所用的系统当中,可以在实验室通过计算机系统来模拟各类实际场景、水下机器人的操纵状况以及水下环境的干扰情况,完成水下机器人的性能测试评估工作。
本文首先对水下机器人及虚拟现实仿真技术的背景及其在国内外的发展趋势进行简单分析,然后对虚拟现实场景中的三维建模以及虚拟现实场景的生成方法进行简单的研究和总结,其中包括实时场景渲染软件Multigen-Paradigm Creator以及Multigen-Vega,并对Vega的场景渲染技术和Vega软件进行研究和总结。在以上研究和总结的基础上,利用Creator及Vega制作出一个虚拟的水下环境,并通过简单的测试试验,使得该场景可以在配置一般的个人计算机上进行流畅运行。最后,在总结各项工作的基础上,对未来进行展望。
关键词:虚拟现实技术;水下机器人环境测试;Creator;Vega;视景仿真
Abstract
Afterthe completion of the design work for underwater vehicles, it is needed to testits various performance indicators. Using virtual simulation test technology,the development cycle for underwater vehicles can be shorten, and a lot ofmoney for it can be save, and also the reliability of its system can beimproved.Through the visualsimulation technology is applied to test the system, the computer system in thelaboratory can simulate all kinds of the actual scene, control condition ofunderwater vehicles as well as the interference for underwater vehicles in theunderwater environment.
Thispaper carries on the simple analysis for the background and its developmenttrend both at home and abroad of underwater vehicles and virtual simulationtechnology. It is simply studied and summarized to the 3-D virtual realityscene modeling and the generation approach of virtual reality scene, includingreal-time scene rendering software Multigen -Paradigm Creator and Multigen-Vega. And the scene rendering technique of Vega and the Vega software arestudied and summarized. On the basis of the above research and summary, itcreates a virtual underwater environment by the use of the Creator and Vega,and after simple test experiment, the scene can be smoothly displayed ongeneral personal computer. Finally, the paper points out the main work in thefuture.
Keywords:virtual reality technology; environmental testing forUnderwater vehicles; Creator;Vega; visual simulation
目 录
第一章 绪论............................................................... 1
1.1 虚拟现实仿真技术的概述............................................. 1
1.2水下机器人简单介绍................................................. 2
1.3水下机器人课题的研究背景........................................... 3
1.3.1课题开展的目的和意义.......................................... 3
1.3.2国内外水下机器人的研究现状与进展.............................. 4
1.4论文内容安排....................................................... 6
第二章 虚拟场景的建模技术................................................. 8
2.1建模的基本概念..................................................... 8
2.2 建模软件的基本介绍................................................. 9
2.2.1MultiGen-Creator建模软件简介.................................. 9
2.2.20penFlight格式介绍........................................... 10
2.3MultiGen Creator建模的关键技术..................................... 11
2.4使用MultiGen Creator建立的AUV模型................................ 11
2.5本章小结.......................................................... 15
第三章 虚拟场景实时渲染.................................................. 16
3.1实时场景驱动软件Vega............................................. 16
3.1.1实时场景驱动软件Vega介绍.................................... 16
3.1.2LynX图形界面介绍............................................ 17
3.1.3API函数的简单介绍........................................... 19
3.2Vega的虚拟现实仿真程序........................................... 19
3.3基于Vega的仿真程序建立........................................... 21
3.4Vega仿真程序的实现与调试......................................... 21
3.4.1Vega的初始化设置............................................ 24
3.4.2物体对象(objects)及场景(scenes).............................. 25
3.4.3运动物体(Players)............................................. 27
3.4.4视觉通道(Channels)........................................... 28
3.4.5观察者(Observes)............................................ 29
3.4.6环境特效(Environments)及环境影响(Environments Effects)........ 31
3.4.7路径(Pathing)和路径工具(Navigator)........................ 33
3.4.8最终成品运行后的效果图....................................... 35
3.5 基于MFC的Vega应用程序......................................... 35
3.5.1MFC编程原理................................................ 35
3.5.2MFC的编程原理.............................................. 36
3.6 本章小结......................................................... 38
结 论................................................................... 39
参考文献................................................................. 41
攻读学士期间发表的论文和取得的科研成果................................... 42
致 谢................................................................... 43


IP属地:北京1楼2014-07-25 21:48回复
    2.5 本章小结
    本章使用MultiGen Creator来进行三维建模。作为专门针对虚拟现实仿真技术的建模软件,Creator拥有独特的0penFlight树状层次结构分层,可以使用户能够更直观地对模型进行编辑和修改。使用PS软件来对模型的贴图进行格式转化,贴图可以用来弥补多边形建模对于细节方面的缺失。


    IP属地:北京5楼2014-07-25 21:53
    回复
      第三章 虚拟场景实时渲染
      虚拟显示仿真程序以立体的三维建模为基础,利用各类仿真手段,以达到最终人机交互的目的。
      本章就虚拟现实软件Vega的使用和开发方法作了一个简单的研究和总结。
      3.1 实时场景驱动软件Vega3.1.1实时场景驱动软件Vega介绍
      Vega是由MultiGen-Paradigm公司开发的一款用于实时场景仿真、声音仿真、虚拟现实等领域的高性能软件和开发平台[9],通常用于渲染战场、娱乐、城市的仿真,还用来作为训练模拟器和计算可视化视景数据库等项目,利用Vega可以实现环境效果和人机交互控制,是世界上最先进的用于虚拟现实的视景数据库之一。Vega软件的基本功能是控制与管理虚拟场景,并通过结合大量的特殊声音及视觉效果、以及数量众多的功能模块来实现虚拟场景的布设,大幅度减少了用户关于源代码的使用数量,使即使是不懂得VC++的用户也可以制作出强大的虚拟现实场景,极大的提高了开发效率。
      虚拟现实软件Vega可以很好的支持多格式数据块调入、多处理器、多通道渲染和其他附加的可选模块、第三方模块、其他快速而复杂多样的视觉仿真模拟程序,可以方便快捷的创建出各种各样的实时虚拟仿真三维环境。除此之外,Vega还支持立体现实、iDesk系统、Cave系统、柱面屏幕,并基于此建立大型的虚拟现实系统。
      Vega不仅拥有一套具有很大灵活性又能提供充分的软件控制的基于C语言的程序应用接口API、实用而丰富的函数数据库、数量庞大的有参考价值的源程序库,还有近似而齐全的帮助文档,还拥有一个可以很大程度简化程序开发过程的图形环境用户界面LynX。它把极为简便的工具与先进的仿真功能融为一体,使得不论是业余的虚拟仿真爱好者还是专业的虚拟仿真程序员都能方便的操作使用,即使是不懂代码编写的人,依旧可以使用Vega软件来创建复杂的虚拟现实仿真程序。
      从整体上看,Vega包括有以下几个特点:[9]
      (1)易用性:LynX图形界面比起其他界面程序来说更为友善,可以帮助使用者设定及浏览Vega应用程序。
      (2)高效性:Vega与OpenFlight格式的无缝接合,对虚拟现实场景中的模型控制的更为有效精确;在IRIX环境下,Vega跟OpenGL Performer紧密接合,能将SGI图形硬件发挥出最大功率;LynX的的动态预览功能,可以使用户随时浏览虚拟现实场景运行操作后产生的最终效果;统计数据模块的作用是在终端及时的显示出目前系统中各部分是否按计划执行以及系统执行的情况,以便有效地对整个系统进行合理配置。经过无数次的实践,可以证明Vega的确有减少代码开发时间提高工作效率的功效。
      (3)集成性:Vega软件巧妙的把实时仿真程序中大部分繁琐步骤清晰化、紧密化、高效化,使之完善的集合在同一个大框架下,如此便可更好的维护系统、支持应用,使系统的使用者可以相对轻松的在预算内完成所需要的效果和功能;Vega支持多种格式的数据,允许它们进行综合显示,并且还提供了效率极高使用方便的CAD数据转换器,并且把制作模型者、程序员、设计者、工程师和管理人员的工作连接起来,使之没有空缺遗漏和中断。
      (4)可扩展性:Vega使用极富拓展性的模块机制来完善自身所不具备的各种功能,通常情况下附加的拓展模块包括音响环境模块、大地地形数据库管理模块、人体动作模拟模块、特殊效果模块、面板仪表模拟模块等。用户也可以自己开发自己所需要的拓展模块,或是满足一定标准的特殊模块,也可以使用安装由第三方提供的针对于某些场景的专用模块,安装后可以和原有系统提供的模块集成在一起一并使用。
      (5)跨平台性:Vega绝大部分可选模块和所有的基本模块均可以同时支持SGIIRIX平台和WindowsNT平台,其应用程序对于不同的平台都具有极高的兼容性。
      3.1.2 LynX图形界面介绍
      LynX是Vega自带的一个友好且方便的应用程序图形界面,也是一个完美的动态预览工具,LnyX旨在说明在虚拟场景中的物体的属性和各个组件间相互之间的关系,并可以方便简单不需要任何额外指令就可以浏览参数设置、修改后所发生的变化、产生的效果,以及生成最终的虚拟现实应用程序定义adf格式文件。
      图形界面LynX的用户界面直观且灵活,修改重要参数便不需要编写代码,可以通过图形界面LynX直接修正或预览场景,极大的提高了使用效率,亦是彰显了实时渲染程序Vega直观简便的可视化能力。见图3.1。
      图3.1 Vega的LynX图形界面
      LynX用户图形界面可分为三大块:菜单工具栏、图标工具栏和面板设置区[9]。见图3.2。其中的位于界面最顶端的菜单工具栏的内容选项会随着操作对象的变更而变化,图标栏的作用是提供图标化列表,以方便操作。而面板设置区则占据了LynX的大部分空间,用于显示当先目标的各类参数,并且使参数调整更简单。
      图3.2 Vega的LynX图形界面的布局
      Vega提供了非常丰富的拓展模块,所有模块都是一个拥有特定功能的函数数据库。所有数据库的使用方法基本与Vega的用法相同,并且在界面上同时提供了用户界面接口,使用户可以在LynX上直接使用,更方便的定义设置数量繁多的组件参数。这些可选的扩展模块包括:虚拟人物仿真模块、虚拟声音仿真模块、大特殊效果模拟模块、传感器视效模拟模块引航与信号灯模块、动态光束模拟模块、动态仪表面板仿真模块、海洋仿真模块、雷达仿真模块、分布式交互仿真模块、非线性失真校正模块、规模数据管理模块、仿真电录回放模块、远红外传感器仿真模块、沉浸式环境配置模块等[9]。用户也可以自己开发用于虚拟现实场景的第三方模块。
      3.1.3 API函数的简单介绍
      Vega本身包含有完整的VC语言程序接口,以及隶属于Vega程序的API数据库,基于VC++6.0的应用程序之系统环境,利用Vega API数据库函数来编写开发虚拟现实仿真环境程序,不仅有效的提高了编程效率,而且还大量减少了源代码的开发时间,也能使虚拟场景中的漫游更为灵活[10]。
      每个Vega类作为类控制结构而言都是十分完整的,这种控制结构在一般情况下是用在各个项的内容处理和执行各个项内容的特征的,在Vega中类涵盖了大部分的项目几乎是用在了所有的内容里[9]。
      3.2 Vega的虚拟现实仿真程序
      在虚拟现实视景仿真系统的设计中, LynX用户图形界面可用于系统的初始化参数设置,系统、窗口、场景的定义、物体及物体碰撞检验以及环境和环境特效的制作还有交互设备的连接使用等,初始化各个项目,以ADF格式文件的形式保存起来,实时仿真系统所需要的虚拟现实仿真环境系统便可自动的生成出来。而人机交互则功能则是直接利用Vega本身所自带的应用程序的接口以及其本身的视景仿真系统,将已经存储好的ADF文件数据载入其中并加载与虚拟现实场景目标相关的函数数据库,见图3.3,构建一个新实例,完成系统的初始化,利用系统自带的帧循环函数,渲染相关功能的数据函数库,将相关场景进行刷新,将仿真对象和其环境对象进行有效的改变,用以实现更新系统自身的属性和状态。
      图3.3 Vega的类
      3.3 基于Vega的仿真程序建立
      新建Vega虚拟仿真应用程序的步骤有三:
      (1)初始化系统。
      (2)预定义系统的仿真。
      (3)配置更新系统。
      所谓初始化系统,即是创建共享的信号区域和内存区域,一般情况下,是通过调用vglnitSys函数系统的初始化来实现的。内存区域的初始化是通过调用vgGetSharedArenaSize0以及vgSharedArenaSize0这两个函数来读取的。
      系统仿真的预定义即是定义整个系统,一般通过创建目标对象和事件来完成。为了视景仿真环境的优质逼真性和物体系统表现良好,正确的创建新的实时仿真对象和场景是非常有必要的。同时,处理好雾化、光照、外观、纹理及阴影等诸多各类图形效果也是尤为重要的,完成以上两个原则后基本就能生成优质且逼真的虚拟现实仿真环境了。可简单的直接在程序中调用已有函数来创建Vega对象,也可使用文件Adplication DefinitionFile来定义生成视景仿真环境。所有有关于Vega的对象都必须在系统配置前完成建立。
      配置新系统所需要的要求是使ADF文件的定义与函数的调用相互结合起来,一般情况下用户可以使用vgConfigsys数据库来结束Vega程序的创建。见图3.4。
      LynX图形界面的显示窗口包括显示窗口(windows)、屏幕(screen)、视觉通道(Channels)、观察者(Observes)、物体对象(Objects)、运动物体(Players)、场景(scenes)、光照(Lights)、环境特效(Environments)、交互设备(Input Device)等[9],这些都是创建一个新的adf文件所需要定义的,而且需要将其进行初始化。将上述窗口以Adf格式文件的形式完成创建之后,这些定义文件便可以随时随地的直接运用在整个视景仿真环境的仿真程序之中。
      3.4 Vega仿真程序的实现与调试
      首先,单击开始菜单中的LynX图标,启动LynX图形界面。见图3.5。
      单击File菜单下的New菜单选项,新建一个应用程序定义文件。
      图3.4 使用LynX制作并且实施预览的场景
      在系统所默认的状态下,若是直接新建一个新的应用程序定义文件,LynX会激活所有已安装的有效模块,这对特定的仿真应用来说并不一定是最为理想的状态。激活不必要的模块可能导致系统开销较大,不利于模块的选取,也降低工作效率。所以,单击File菜单下的Active Modules菜单选项,取消不需要模块名前面的勾标。其相应的菜单和面板就会从新建的LynX窗口中消失。见图3.6。
      图3.5 LynX图标
      图3.6 ActiveModules菜单选项


      IP属地:北京6楼2014-07-25 21:55
      回复
        3.5.2 MFC的编程原理
        Vega自带的联机系统帮助中的大部分帮助都是在介绍Win32位控制台下Vega程序的开发,几乎没有对MFC的帮助介绍,而为数不多提及MFC的帮助里所提供的例子也十分简单无法举一反三,所以,用户在依照帮助将控制台Vega程序转载到MFC中时,许多操作的结果却并不如人意,甚至于预想的全然不同[12][13]。所以,我们只能通过不断的实践,然后依照实践中所产生的问题并对这些问题加以分析、总结,最终修改出一个可以使用的MFC程序。
        实际上Vega本身就具备一个基于MFC框架的优秀例子,它提供了从Cview类派生出的子类函数zsVegaView,这个函数的作用是用来提供启动Vega线性程序的最为基本的功能,并从虚拟函数的形式定义了特定应用所需的操作的通用接口[8]。用类zsVegaView来嵌入与Vega功能相关的功能代码,模拟渲染主循环和便于用户拓展的几个虚函数接口。对于Cview的关联仅仅是使用了Cview类所有用的视窗口的句柄而已。在实践过程中我们对此派生类进行了修正,我们从zsVegaView派生出一个新类CmyVegaView,并重载必要的虚函数[8]。见表3.1。
        表3.1 MFC类的层次结构
        组 名 类 名 基 类 功 能
        创建工程时自动生成的类 CMainframe CFraimWnd 实现程序的主窗口框架
        CMFCVegaAPP CWinAPP 建立文档、视图和框架之间的联系
        CMFCVegaDocC CDocument 保存程序文档数据的内容
        弹出式对话框类 CAboutDlg CDialog 软件版本信息
        CSetEnvDlg 环境设置
        CTest AUV的测试
        COut AUV数据的记录与打印
        自创类 zsVegaView CView 提供启动Vega线程等基本功能
        CmyVegaView zsVegaView 完成虚拟场景的渲染
        classCmyVegaView:public zsVegaView
        子类zsVegaView提供了启动整个Vega线程最基本的功能,可以用于开启一个新的线程,把Vega的渲染置于视图窗口中,然后调用VegaNT的API函数vglnitWinSys,将Vega的渲染加到MFC的视图窗口中。而CmyVegaView类才是关键[8]。
        virtualconst char*getAdfName(void);//读入ADF文件
        virtualvoid postlnit(void);//初始化后要进行的操作
        virtualvoid postDefine(void);//读入ADF文件之后要做的操作
        virtualvoid postConfig(void 1;//初始化
        virtualvoid postSync(void).//主循环中帧同步完成后的操作
        virtualvoid postFrame(void);//主循环中帧渲染完成后的操作
        zsVegaView中定义了这6个虚函数,为了保持良好的编程风格,保持zsVegaView.cpp和zsVegaView.h不动[8]。需要重写以上六个虚函数。
        为了启动Vega线程,我们一般通过重新载入OnIntialUpdate()函数的方法,作为用户派生出来的子类,调用基类的runVega()显然是一种很好的解决方法。启动新的子线程可以利用派生类的指针,将它作为参数来传送启动。
        Vega配置最主要是函数vglnitWinSys(),这个函数是用来初始化Vega系统的,还可以用来创建共享内存,以及打开一个新的窗口子线程,这个子线程会根据传送的窗口句柄创建一个与该句柄对应View窗口格式相近的窗口,并将其覆盖住。这样一来,Vega系统的渲染窗口便可以很方便的加入到基于MFC的可视化窗口中了[8]。见图3.20。
        图3.20 仿真程序界面
        3.6 本章小结
        本章使用MultiGenVega来进行虚拟现实渲染。LynX是Vega自带的一个图形界面,帮助用户在不使用编程语言的情况下进行虚拟现实场景的构架。要按顺序创建并调试视觉通道(Channels)、观察者(Observes)、物体对象(Objects)、运动物体(Players)、场景(scenes)、光照(Lights)、环境特效(Environments)等模块,最终使虚拟现实场景得以实现。此外,为了方便其他用户的使用,我们还需要借助VC++6.0的MFC来构建出一个窗口,来对场景进行观察与控制。


        IP属地:北京8楼2014-07-25 21:58
        回复
          参考文献
          [1] 汪成为,高文,王行仁.灵境(虚拟现实)技术的理论、实现及应用[M].北京:清华大学出版社,1997.
          [2] 朱光亚.灵境(虚拟现实)技术的理论、实现及应用[M].北京:清华大学出版社,1997:序.
          [3] 百度百科.下机器人的分类[EB/OL]http://baike.so.com/doc/5958030.html.
          [4] 徐如玉,彭超.水下机器人发展趋势[J].自然杂志,2011,33(3).
          [5]百度百科.MultigeIl Creator软件介绍[EB/OL]. http://wenku.baidu.com/link?url = Pej7BDRnrXT8W3le_9dZkQO63gHJPpVo4CpFpc5PVs9wKCCtVN79-_qOk9rIDJCCzWOPMUd2FYgFA3A_tmFv9Ex-S4kEwTYpMZqaie4RuOu.
          [6] 陶艳玲,邱俪华,王占林.飞机防滑刹车过程的视景仿真研究[J].仪器仪表学报,2004,25(增刊)..
          [7] 王乘,均清,李利军.Creator可视化仿真建模技术[M].武汉:华中科技大学出版社,2005.
          [8] 肖婧.图像跟踪器测试评估系统的虚拟仿真环境研究与实现[D].西安电子科技大学硕士论文,2009.
          [9] 王乘,周均清,李利军.Vega实时三维视景仿真技术[M].武汉:华中科技大学出版社,2005.
          [10]申闰春,才庆样,张幼蒂.马从安.虚拟现实技术在露天矿生态重建仿真中的应用[J].中国矿业大学学报,2002,l(1):1-4.
          [11] 龚卓蓉.Vega程序设计[M].北京:国防工业出版社,2002,第一版.
          [12] 李瑞,刘鹏远,张锡恩.Vega程序设计在MFC中的应用[J].计算机工程与设计,2002,23(8):55,57.
          [13] 宋志明,康凤举.Vega开发环境的扩展研究[J].系统仿真学报,2004,16(1):178,179.


          IP属地:北京10楼2014-07-25 21:58
          回复
            致 谢
            时光如梭,光阴似箭,昔日顽童,今值壮年。时之美好,宛若烟花,极尽辉煌之灿烂,却是闪念而消逝。
            吾之论文,耗时数月,现已毕,心乐之。吾书论文三月之久,亦有艰难困阻无数,绞尽脑汁,不得其解。故尤谢与吾之恩师,教授李晔先生,孜孜不倦,言传身教,解吾疑难困惑。数月之期,吾收获颇丰,感激涕零不知所言。李晔先生知识之渊博、治学之严谨、工作之负责,震撼吾之心神,有如醍醐灌顶,令吾等受益终生。
            另谢吾之课题指导者,研究生孟德壮学长,吾逢疑惑,登门拜访,学长素来不厌其烦,事无巨细,皆细心解答,吾不胜受恩感激。
            亦谢吾之父母,殷殷鼓励,默默支持,爱意之深厚,恰如春蚕蜡炬。所谓求学之路多艰辛,高堂至亲泪沾巾。十年寒窗无人问,唯有爹娘盼佳音。故感恩戴义,怀欲报之心。
            过往数载亦深蒙诸位尊师、学长、同窗、好友倾力相助,出谋划策,如此种种,不胜枚举。此一并谢之。
            感慨千万,话不能言。言辞有尽,敬谢无穷。恭祝吾之恩师、父母、学长、亲朋事事顺心,万事顺意。


            IP属地:北京11楼2014-07-25 21:59
            回复
              虽然极其讨厌我的大学,但毕竟毕设是自己写的,艰难困苦的,所以还是留在这里吧。


              IP属地:北京12楼2014-07-25 22:00
              收起回复
                MLGBD,最后就是觉得只有致谢写的好啊,剩下的都是狗SHI。尼玛。


                IP属地:北京13楼2014-07-25 22:02
                回复
                  。。。文言文啊


                  IP属地:北京来自Android客户端14楼2014-07-30 06:36
                  回复
                    请问有没有vega的安装包或者能下载到此软件的地址呢?需要用但是找不到,谢谢了!


                    15楼2016-04-20 10:19
                    收起回复
                      你好可以跟你请教一下吗,我现在也在做这个


                      16楼2017-07-20 09:45
                      回复