利用OpenGL图形系统建立六自由度机器手的三维模型.doc
《利用OpenGL图形系统建立六自由度机器手的三维模型.doc》由会员分享,可在线阅读,更多相关《利用OpenGL图形系统建立六自由度机器手的三维模型.doc(6页珍藏版)》请在三一文库上搜索。
1、利用OpenGL图形系统建立六自由度机器手的三维模型机器手三维建模仿真是机器人各项仿真中的一个重要组成部分,对于机器手的运动轨迹仿真有重要的指导意义。LabWindows/ C+VI(以下简称CVI) 是美国NI 公司推出的交互式C 语言开发平台。其集成化开发环境、交互式编程方法、函数面板和丰富的库函数大大增强了语言的功能,为熟悉C 语言的开发人员提供了一个理想的软件开发平台。由于在CVI 中已经集成了OpenGL 图形标准,并且OpenGL编程类似于C 编程,实际接口就是C,相对基于Visual C+基础类库MFC 和OpenGL 开发的三维仿真平台,在CVI 中利用可视化技术,开发基于Op
2、enGL 的三维图形更方便快捷,同时可在此三维模型平台上方便地进行轨迹规划和控制算法等方面的仿真研究。1 OpenGL的简介和基本操作过程1.1 OpenGL简介OpenGL图形系统是图形硬件的一种软件接口。OpenGL是SGI公司开发的开放式三维图形标准,它实质上就是一个三维图形和模型库,具有高度的可移植性,可以在多种操作系统平台上运行,例如各种版本的Windows、Unix/ Linux 和Mac OS等,具有非常快的渲染速度。它可以对计算机图形技术进行控制,产生逼真的图像或者虚构出现实世界没有的图像,是高性能图形和交互式场景处理的工业标准2。OpenGL 是一种高性能的开放式图形库,它的
3、图形API以函数形式提供了115个核心库函数、43个实用库函数GLU、31个编程辅助库函数GLAUX以及若干个X-Windows/MS-Windows专用库函数GLX/WGL。OpenGL提供了多种三维图形的绘制方法,包括线框绘制方式、深度优先方式、反走样方式、平面明暗处理方式、光滑明暗处理方式、阴影和纹理方式、运动模糊方式、大气环境效果、深度域效果3。OpenGL的这些功能可以实现逼真的三维绘制效果,创建交互性三维场景和视景动画。1.2 OpenGL的基本操作过程OpenGL对三维图形操作可以归纳为:场景描述、设置光照、观察场景、光栅化,这个过程与人们观察世界的过程是一致的,其具体操作步骤如
4、下:(1) 根据基本图形建立景物模型,并对所建立的模型进行数学描述;(2)把景物模型放在三维空间中合适的位置,并设置视点(Viewpoint),以观察场景;(3) 计算模型中所有物体的色彩,同时确定光照条件、纹理映射方式等;(4) 把景物模型的数学描述及其色彩信息转化至屏幕上的像素,即光栅化(RasterizATIon)。在这些步骤的执行过程中,OpenGL 还可能执行其他操作,如图1所示。程序从图1的左侧进入,经过一系列的运算处理,将几何顶点数据和图像像素数据加工后生成待显示的帧。另外,景物光栅化之后被送入帧缓存前,还可以根据需要对像素进行操作。2 在LabWindows/CVI中配置Ope
5、nGL在CVI开发环境中使用OpenGL开发三维仿真图形的关键是如何配置CVI和OpenGL的图形接口。2.1 添加与OpenGL相关的头文件和库文件在CVI下创建一个新的工程文件:OGLHand.prj,在OGLHand.c文件首部添加4个头文件:#include#include/基本库#include/实用库#include/辅助库在CVI编辑器的主菜单“edit”中选取“Add Files to Project”下的“Library”,在弹出的对话框里选取CVIsdklib中的3个库文件:glu32.lib、glaux.lib和opengl32.lib并添加到当前工程中。2.2 设置CV
6、I与OpenGL图形接口虽然OpenGL已经内嵌在CVI中,但是要让CVI控件显示OpenGL图形,必须把CVI的picture控件转换成OpenGL控件。需要在工程中添加函数cviogl.fp,其路径为:CVItoolslibcustctrl。并在OGLHand.c文件首部添加:#includecviogl.h。在主函数main()里调用函数将CVI的picture控件转换成OpenGL控件并返回控件句柄OGLCtrl,再调用InitControl()函数初始化OpenGL属性,最后调用int OGLRefreshGraph(int Panel_Handle,int OGL_Control_
7、Id)函数及时更新OpenGL控件图形的场景和图形属性。3 基于LabWindows/CVI和OpenGL的机器手三维建模3.1建立OpenGL光照、视图及透视模式视图决定模型在场景中的位置,同时要选择一个有利的观察点来观察场景。通过定义光照、视图及透视模式就能在二维屏幕上显示出立体的三维图形,这些都放在InitControl()函数中定义,包括初始化系统光照和初始化视图位置。/ 初始化系统光照OGLSetCtrlAttribute(hPanel,this-hControl,OGLATTR_LIGHTING_ENABLE, 1);OGLSetCtrlAttribute(hPanel, this
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 OpenGL 图形 系统 建立 自由度 机器 三维 模型
链接地址:https://www.31doc.com/p-3394454.html