移动机器人自主导航仿真系统的研究与设计.docx
- 文档编号:8444647
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:101
- 大小:1.24MB
移动机器人自主导航仿真系统的研究与设计.docx
《移动机器人自主导航仿真系统的研究与设计.docx》由会员分享,可在线阅读,更多相关《移动机器人自主导航仿真系统的研究与设计.docx(101页珍藏版)》请在冰豆网上搜索。
移动机器人自主导航仿真系统的研究与设计移动机器人自主导航仿真系统的研究与设计中南大学硕士学位论文摘要I摘要随着计算机科学技术以及多媒体应用技术的飞速发展,虚拟现实技术和仿真技术越来越受到人们的广泛关注。
它们广泛应用于工业、国防、教育、医疗以及娱乐等方面。
本文旨在应用虚拟现实技术来设计一个仿真系统,仿真智能机器人在未知环境中的自主导航。
通过对移动机器人导航仿真系统所涉及的机器人学、计算机图形学、3D数学建模以及Direct3D相关的技术与理论进行研究,本文将问题主要分成四个部分:
虚拟对象模型创建、设计对象模型的着色器、碰撞检测和运动控制。
本文研究内容和取得的成果如下:
1.对创建虚拟对象的数学模型的过程进行详细描述,其中包括机器人模型的创建,虚拟地形模型生成以及虚拟环境的制作三个部分。
2.利用可编程的着色器语言HLSL(HighLeverShaderLanguage)及其开发工具FxComposer,编写了机器人模型、虚拟地形和天空盒的着色器(Shader),从而可以在编程过程中动态地调整对象模型的渲染参数,使虚拟场景在视觉上更具有真实感。
3.研究了相关的碰撞检测算法,比较了基于包围球、包围方盒与基于凸包的边缘包围盒三种封装模型的方法。
利用基于凸包的边缘包围盒来封装对象模型,使用HS-jump算法来进行碰撞检测。
4.采用VisualStudio.NET并基于DirectX9SDK建立了仿真系统框架、绘制了对象模型以及虚拟机器人自主避障。
该三维模拟系统完全可以使用户从不同角度不同位置观看场景并与用户有着良好的交互性。
此系统实现了机器人在不同场景中运动的视觉效果,可以生动地呈现移动机器人在未知环境中的自主导航特征。
关键词Direct3D,虚拟现实,碰撞检测,HLSL,着色器中南大学硕士学位论文ABSTRACTIIABSTRACTWiththerapiddevelopmentsofcomputerscienceandmulti-mediatechnique,virtualrealityandsimulationtechniquearemoreandmorebeingattachedImportanceto.Theycanbewidelyappliedinindustry,nationaldefense,medicalcareandentertainmentetc.Thepaperpresentsasimulationsystembasedonvirtualrealitytechniquesoastosimulatetheautomaticnavigationofanintelligentrobotinunknownenvironment.Throughstudyingofrobotics,computergraphics,3DmodulationandcorrespondingknowledgeonDirect3Dtechniqueandtheorieswhichreferstosimulationsystemofmobilerobot,theprojectisdividedintofourparts:
constructionofvirtualobjects,designoftheshaderofanobject,collisiondetectionandmovementcontrol.Thecontentandresultsare:
A)Itdescribesindetailtheconstructionprocessofmathematicsmodelofvirtualobjects.Itiscomposedofthreeparts:
theconstructionofrobotmodel,virtualterrainmodel,andvirtualenvironment.B)UsingHLSL(highlevelshaderlanguage)andrelatingtoolsFxComposer,wedesigntheshaderofrobotmodel,virtualterrain,andskybox.Theeffectparameterscanbecoordinateddynamicallyduringprogramming.Virtualsceneisauthenticatinginvision.C)ItStudiescollisiondetectionalgorithm,comparesboundingsphere,boundingbox,andconvexhulltobounding.Itinvestigateshowtoencapsulateobjectmodelbyusingconvexhull,andhowtodetectcollisionaccordingtoHS-jumpalgorithm.D)UsingVisualStudio.NETandDirect3DSDK,wedesignaframeworkofsimulationsystem,whichrendersobjectmodelandrealizesobstacleavoidanceofthevirtualrobot.Thecircumstancescanbeviewedfromdifferentviewpoints.Thesimulationsystemisinteractive.Thesimulationsystemrealizesvisualeffectsofrobotsinvarious中南大学硕士学位论文ABSTRACTIIIscenes.Itdemonstratesvividlyautomaticnavigationofrobotsinunknownenvironments.KEYWORDSDirect3D,virtualreality,collisiondetection,HLSL,Shader中南大学硕士学位论文目录i第一章绪论.11.1课题的研究背景.11.2移动机器人以及虚拟环境的研究概况.11.2.1移动机器人的研究概况.11.2.2虚拟3D环境的研究现状.21.3DirectX技术.21.3.1DirectX概述.21.3.2DirectX9.0C版本的新特性.41.4论文的主要内容与结构安排.5第二章Direct3D基本原理.62.1Direct3D中的几何描述.62.1.13D图元.62.1.2Direct3D中的变形操作.82.2Direct3D的体系结构.92.3绘制管道.112.3.1虚拟相机.112.3.2绘制管道框架.12第三章3D模型创建.143.1对机器人建模.143.1.1创建机器人骨骼.143.1.2对骨骼进行蒙皮.163.1.3对模型进行UV映射.193.1.4进行纹理贴图.193.1.5加入动画.203.2创建3D地形.203.2.1如何描述地形.213.3.2加入纹理.223.2.3加入光照效果.223.2.4利用CLOD进行处理.233.3使用天空盒.25第四章使用可编程的着色器.274.1顶点着色器与象素着色器.274.1.1顶点着色器虚拟机.274.1.2象素着色器虚拟机.284.2HLSL的特性以及编辑工具FXComposer.314.2.1HLSL的优点.314.2.2着色器编辑工具FXComposer.314.3编写着色器.334.3.1光的类型与属性.334.3.2材质.364.3.3纹理.37中南大学硕士学位论文目录ii4.3.4编写天空盒的着色器.404.3.5编写机器人的着色器.40第五章碰撞检测.435.1碰撞检测概述.435.2碰撞检测算法.445.2.1边界球法.445.2.2边界方盒法.455.2.2基于凸包的边界盒法.465.3视点与地形碰撞检测.48第六章系统实现.496.1选择开发工具.496.2基于DirectX的Windows框架程序.496.3载入网格体以及其对应的着色器.516.3.1载入网格体.516.3.2装载效果文件以及绘制模型图像.526.4实现运动控制.52第七章结论与展望.567.1结论.567.2展望.57参考文献.58致谢.61攻读研究生期间主要研究成果.62中南大学硕士学位论文第一章绪论1第一章绪论1.1课题的研究背景本文“移动机器人自主导航仿真系统”来源于国家自然科学基金重点项目:
“未知环境下移动机器人导航控制的理论与方法研究”。
未知环境中的移动机器人导航控制理论和方法的研究目的是在机器学习、环境认知、在线规划、运动控制等方面的理论和方法上有突破性进展,推动认知科学、模式识别、非线性控制等学科的前沿问题研究,提供新的设计理论和技术12。
本文的研究目的在于为“未知环境下移动机器人导航控制的理论与方法研究”提供一个模拟演示平台,由于此机器人在近一段时间内不能被发送至火星上去,因此如果建立一个虚拟的火星场景和机器人模型,则可以模拟机器人在火星的特殊环境下自主运动的情形。
1.2移动机器人以及虚拟环境的研究概况1.2.1移动机器人的研究概况移动机器人技术的发展经过了较长的历程3。
从六十年代,美国俄亥俄州立大学进行车辆自动驾驶控制技术的研究开始,英国和日本的一些研究机构也相继进入这个研究领域,如英国的PATH(ProgramonAdvancedTechnologyfortheHighway)研究实验室、日本MITI的机械工程实验室等。
到了八十年代,移动机器人技术发展迅速,众多的国家开始研制自主移动机器人,并且取得了很多有意义的研究成果。
九十年代至今,有更多的国家加入到智能移动机器人技术的研究,主要研究热点是将各种智能控制方法应用到移动机器人的控制。
我国自“八五”期间开始进入这一研究领域,机器人技术与自动化工艺装备等方面已取得了突破性进展,缩短了同发达国家的差距,但是在机器人的核心及关键技术的原创性研究、高性能关键工艺装备的自主设计和制造能力、高可靠性基础功能部件的批量生产应用等方面,同发达国家相比,我国仍存在较大的差距4。
中南大学硕士学位论文第一章绪论21.2.2虚拟3D环境的研究现状随着现代计算机科学技术的飞速发展,虚拟3D技术越来越受到人们的广泛关注。
这项技术可将因时空限制人类无法直接看到的场景,或迄今为止尚不存在的虚拟场景以3D的立体的方式呈现在观察者面前5。
自90年代以来,虚拟现实的进步和发展对科学进步和社会发展产生了深远的影响。
这些领域包括航空航天技术、工业产品的创新设计、气象及自然灾害的精确预报、军事训练和仿真、常规和战略武器的研制、药物设计和手术模拟等。
目前,国际上对该领域的研究工作非常活跃。
美国是从事虚拟现实研究最早、研究范围和水平最高、相关研究对国家发展贡献最大的国家,从事虚拟现实的大学包括MIT、Stanford大学、华盛顿大学、UniversityofIllinoisatChicago、CMU等几乎所有著名的大学,其研究内容侧重新概念发展(如虚拟现实的概念模型)、单项关键技术(如触觉反馈)和系统实现,并参加了许多有关虚拟现实的国家项目。
其研究的许多成果已被国家研究机构用来解决国家的战略问题67。
我国的研究人员从90年代初开始这方面的研究和开发工作,主要单位有浙江大学、清华大学、中科院软件所/自动化所/计算所、北京航空航天大学、国防科技大学、大连海事大学等单位。
1.3DirectX技术1.3.1DirectX概述在Windows操作系统的体系构架中,在内核与硬件之间有一层抽象层,专门对硬件进行屏蔽抽象,所以用户不再被允许对硬件进行直接访问。
这样做以后,大大地提高了操作系统的抗破坏性和抗干扰性,但这样以来,使硬件操作的效率大打折扣,许多新硬件的新特性无法直接使用,这对多媒体和计算机图形技术的发展显然是一种障碍。
DirectX是微软公司(MicrosoftCorp.)提供的一套优秀的应用程序编程接口(ApplicationProgrammingInterfaces简称APIs),用于联系应用程序和硬件自身,它对发展Windows平台下的多媒体应用程序、计算机图形应用程序以及电脑游戏起到了关键的作用。
在DirectX中的X是代表很多东西,实际上DirectX就是一个由显示(DirectGraphics)、声音(DirectSound)和输入(DirectInput)三大部分组成的一种应用程序接口,也可以将DirectX简单的看成是一个提高系统性能的加速软件,它可以让以Windows为平台的游戏或多媒体程中南大学硕士学位论文第一章绪论3序获得更高的执行效率,加强3D图形和声音效果,最大限度地发挥最新PC硬件多媒体应用的性能。
其中DirectX的显示部分又分为DirectDraw和Direct3D(Direct3-Dimension),前者主要负责2D加速,比如看DVD就是用的DirectDraw,但人们一直都把目光放在了Direct3D身上,因为后者才是真正负责3D加速的。
DirectX最早的版本1.0开发于1994年底到1995年9月,当时显卡芯片制造商在软件支持方面没有一个强而且统一的标准。
唯一统一的标准是BIOSINT10,那个标准只支持640x480x16或320*240*256以下的显示模式。
而当时的显卡芯片则在不同程度上提供超越这个标准的能力。
另一个标准是VESA的标准,这个标准的问题是它只规定像素级别的操作,对块操作则没有什么支持。
这种局面对软件开发商,硬件开发商,以及用户都造成了不利的影响。
软件开发商得根据不同的显卡来编写不同的代码,硬件开发商则要为那些大牌应用程序开发驱动程序,这些驱动程序的要求又各不相同。
最终用户则不知所措,没有什么可以保证你的显卡和应用程序能够一起工作。
因此为了在硬件开发商,软件开发商以及最终用户之间找到平衡点,微软制定了这一套标准。
表1-1DirectX发展简史DirectX版本标志性技术标志性硬件标志性效果1.0-2.0Direct2D成熟Trident9680,S32D动态效果3.0Direct3D雏形Riva128,i740简单3D效果5.0基本3D技术RivaTNT雾化(FogEffect),阿尔法混合(-Blend)6.0成熟3D技术TNT,TNT2双线性过滤/Mipmap过滤(Bilinear/MipmapFiltering)7.0T&LGeforce256,Radeon凹凸映射8.0象素着色器(PixelShader)和顶点着色器(VertexShader)Geforce3Ti,Radeon8500水波纹8.1象素着色器,顶点着色器的升级Geforce4,Radeon9500大纹理水波纹9.0象素着色器3.0,顶点着色器3.0NV40,R420皮毛效果中南大学硕士学位论文第一章绪论4经过十年的时间,DirectX从出现至今已将近十年,经过了9个版本的改进,从它的发展简史8(表1-1)可以看出DirectX从刚开始默默无闻的1.0到初露锋芒的3.0再到奠定API霸主地位的7.0,以及现在统领大局的9.0,每一次API的升级,都会给显示芯片带来新的标准和规范,而这往往就成了升级显卡的最大理由,客观上带动了显卡的更新换代。
DirectX9.0的出现也不例外,正如上文对它的技术上革新的肯定,它的出现,直接催生了NVIDIA(NVIDIACorp.)公司和ATI(ATITechnologiesInc.)公司的王牌产品NV40、R420的面世,在随后各大媒体对它们的测试来看,接近电影般画质的效果的确令人叹为观止,这其中,DirectX9.0新技术的作用可谓是功不可没。
表1-1中Riva128、RivaTNT、TNT2、Geforce系列和NV40是NVIDIA公司的产品,Radeon是ATI公司的产品。
1.3.2DirectX9.0C版本的新特性微软公司于2004年10月发布了最新的DirectX版本9.0C,并于2004年10月发布了至今为止最新的软件开发包(SoftwareDevelopmentKit)DirectX9.0SDKUpdateOctober2004。
DirectX9.0C除了在以上提出的可编程的顶点着色器和象素着色器以外,在DirectXGraphics,DirectXSound中都有一些新的特点和新增强的特性。
DirectXGraphics的新的特性有如下几点:
(1)可以更加有效地绘制多实例几何体在一个包含多对象的场景中,用户可以绘制一些不同方向、大小、颜色的实例,这些实例出自同一个几何体。
并且绘制出的效果以及其性能将会更优。
(2)效果系统(EffectSystem)增加了预着色(Preshaders)和“”参数快(ParameterBlocks)预着色是一项利用预计算常量着色来提升着色效率的技术,其功能的改进使得的着色器只需更少的常量寄存器(ConstantRegisters),可以提高5到20的性能。
(3)HLSL(High-LeverShaderLanguage)可以支持到着色器模式3.0版本HLSL是一种语法类C/C+的面向过程的语言,其针对顶点着色器和象素着色器引擎进行开发。
它支持vs_3.0和ps_3.0意味着用户针对硬件开发引擎时不必使用固定函数通道(FixedFunctionPipeline),且使得开发变得更容易,代码更可读。
中南大学硕士学位论文第一章绪论5(4)应用程序框架(SampleFramework)的改进应用程序框架是指用户开发Windows程序界面以及消息传递时所需的一些APIs。
它的改进使得应用程序界面更加美观,功能更加完全。
1.4论文的主要内容与结构安排本学位论文的内容安排如下:
第一章主要介绍了论文的研究背景、意义,研究现状,本文所做的主要工作以及论文的结构安排。
第二章从理论的角度介绍Direct3D的几何学原理,及其相关的数学其所需要的数学理论支持。
两种不同的角度来分析讨论了Direct3D的体系结构,并介绍了Direct3D的绘制管道。
第三章首先介绍如何创建机器人模型以及使用相关的工具对其进行纹理贴图。
其次讨论如何生成虚拟3D地形,着重讨论了CLOD中的Geomipmapping算法,以及如何使用其对虚拟地形进行精简,从而使得地形在虚拟场景中更加具有现实性以及提高绘制效率。
最后介绍如何制作天空盒。
第四章主要介绍了HLSL的特性和相关技术及其相关的编辑器FxComposer,介绍了如何编辑顶点着色器和象素着色器。
讨论了如何使用HLSL来编辑天空盒的着色器,机器人模型的着色器。
第五章主要介绍机器人漫游过程中的重要的问题碰撞检测,对机器人进行碰撞检测可避免其在漫游过程中出现穿墙而过、车轮远离地面或陷入地面的情况。
首先简单介绍边缘球法和边缘方盒法,再根据系统的特殊要求,讨论基于凸包来封装机器人模型以及使用HS-jump算法进行碰撞检测。
第六章讨论了如何实现该虚拟系统。
接着介绍基于DirectX的虚拟习用的程序框架,如何载入网格体及其相应的着色器,最后介绍如何在程序中控制模型的运动。
第七章在全面概括本文所开展的工作的同时还对该系统中存在的一些不足以及将来所需要开展的工作做了总结和展望。
中南大学硕士学位论文第二章Direct3D基本原理6第二章Direct3D基本原理前面已经简单的讨论了DirectX技术是由DirectGraphics,DirectSounds,DirectInputs这三大部分组成的,由于本系统是建立一个虚拟的场景,并且主要是在3D模型以及图形图像上做工作,因此也只运用DirectGraphics中Direct3D的相关APIs和接口(Interfaces),所以在本文中只具体介绍与系统紧密联系的Direct3D相关内容。
Direct3D是一种低层次的图形APIs,可以简单的被认为是存在于应用程序层与图形设备层之间的一种中间层,它可以使开发人员利用3D硬件加速(3Dhardwareacceleration)来展示一个3D世界。
在本章中首先介绍Direct3D的系统框架,然后分别介绍各个部分其所需要的数学理论支持以及原理。
2.1Direct3D中的几何描述编写Direct3D应用程序必须熟悉几何学原理,这一节将会介绍创建3D场景需要的几何学概念。
2.1.13D图元在几何学中,物质的形状在根本上是基于空间中一些点的坐标。
在一个局部范围内感知到的周围世界,在数学上对应于欧几里德几何空间。
一般编写3D图形应用程序都是基于两种类型的笛卡儿坐标系:
右手系和左手系(如图2-19所示)。
Direct3D系统使用的是左手系,因此在Direct3D环境下描述的图元都是基于左手系的。
图2-1笛卡儿坐标系3D图元是一组形成简单3D实体的顶点集,最简单的图元就是在坐标系中描述的一组点,被称作点序列(PointList)。
通常情况下3D图元是多边形,一个最简单的多边形必须含有3个顶点也就是三角形。
众所周知一个多边形可以由任意中南大学硕士学位论文第二章Direct3D基本原理7多个三角形组成,Direct3D就是基于这种思想来绘制任意一个复杂的多边形和网格的。
并且有一点十分重要,那就是必须保证三角形的3个顶点必须共面,因为绘制非共面的顶点是非常没有效率的。
尽管是在3D世界里进行工作,但在进行具体编程时也用到2D和4D向量,它们用以下方式进行描述10:
2D:
u(ux,uy)(2-1)3D:
N(Nx,Ny,Nz)(2-2)4D:
c(cx,cy,cz,cw)(2-3)网格的每一个面都有一个与之正交的法向量,这个向量的方向由定义的顶点的顺序所决定。
法向量的指向就是这个面的正方向(图2-2所示),可以看出正面内的顶点都是以顺时针方式来定义的。
在Direct3D中任意一个多边形都由两类面构成:
正面(可见的)和背面(不可见的)。
(如图2-3所示)。
图2-2基本的几何元素图2-3两类面的构成由于Direct3D要对几何体进行光照,Gouraud11明暗处理(GouraudShading)以及纹理效果时,必须对使用顶点法向量(VertexNormal)。
前面已经介绍面的法向量是用来描述多边形朝向哪个方向,顶点法向量的提出也是基于这种思想的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 移动 机器人 自主 导航 仿真 系统 研究 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)