欢迎来到天天文库
浏览记录
ID:34134279
大小:324.59 KB
页数:5页
时间:2019-03-03
《基于opengl的机器人仿真技术研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、万方数据基于OpenGL的机器人仿真技术研究朱玉蓉,翟雪琴,郝矿荣(浙江海洋学院,浙江舟山316000)TechnologyResearchBasedonOpenGLaboutRoboticsSimulati。nZHUYu—rong.ZHAIXue—qin.IIA0Kuang—rong(Zhejiang()ccanUniversity.Zhoushan316000.China)摘要:以机器人运动学仿真为例,阐i萎OpenGI。与VisualC++混合编程的接口过程,以及实现机器人仿真的步骤、方法和动画机理。结果证明,利用OpenGL所实
2、现的参数化动态仿真模型在研究领域、虚拟制造、虚拟现实以及机器人遥操作中都具有重要的应用价值和应用前景。关键词:0penGL;机器人;仿真中图分类号:TP224;TP391.9文献标识码:A文章编号:1001—2257(2004)10—0007—04Abstract:OpenGLisintroducedinbriefinthispaper,aswellasitsappliedaspects,steps,methodsinthesimulationofrobot’skinematics,andtherealizingprincipleofa
3、nimation.Theinterfacepro—ceedinginprogrammingwith0penGLandVisualC++isexpatiated,whichisgoodreferenceforoutspreadingitsapplicationinotherfields,suchasvisualmanufacture,visualreanty,vjsualmanufac—tureandreal—timeteleroboticoDeraton.Keywords:OpenGL;robotics;simulation0引言0pe
4、nGL是计算机图形技术领域的集大成者。它独立于窗口、操作系统和硬件设备Ⅲ,具有强大的可移植性。因为OpenGL图形内核小,运行快,能快速响应实时计算的结果,从而保证了图形运行时画面的流畅性,经常被应用于实时计算的动态环境中;另外,因()penGL被Microsoft公司纳入其产品内核,使之可与VisualC++实现“无缝”连接,这意味着可以融合OpenGL的图形功能优势和VisualC收稿日期:2004一07—28基金项目:河南省F1网留学人员基金《机械与电.子》2004(10)++可重用性、可扩展性、交互性好的编程优势,完美地实现参数
5、化实时动态仿真及虚拟现实。1OpenGL在机器人仿真中的应用利用OpenGL和VisualC+十混合编程在计算机上仿真出实际的或设想中的机器人模型、通过参数输入或实时运算的结果控制该仿真模型运行,可再现机器人实体的运行情况或证实设想中机器人的预期运行情况。另外,仿真机器人也是机器人遥操作控制中的重要环节,以之作为上位机与下位机(异地机器人)进行通讯,可成功地实现对下位机的控制。下面以机器人的运动学为例来说明0penGL在机器人仿真中的应用。机器人运动学就是要建立起各构件与末端执行器在空间中的位置、姿态间的关系,为机器人的运动控制提供分析
6、的手段和方法口-3]。为了形象地再现各结构参数、运动参数对机器人运动的影响,我们利用虚拟的机器人模型来模仿实际机器人的运动情况,使研究者可轻易地检验出其运行误差。利用OpenGL进行仿真时,首先须根据机器人的实际形态及预期的运动建立起机器人的数学模型、几何模型及参数接口,以便将来实现实时计算和运动模拟。1.1设置openGL的工作场景1.1.1为0penGL设置像素格式在OpenGI。中,无论是图元的绘制还是光照、颜色、纹理操作,归根到底都是基于像素,且其像素格式有别于wjndows下的格式(VisualC++默认的格式)。为了实现Op
7、enGL的绘图功能,先必须设定特定的像素格式,使VisualC++支持Open—GL的格式。步骤如下:a.填充PIXELFORMATDESCRIPTOR结构。b.用ChoosePixelFormat函数在硬件所支持的.7‘万方数据像素格式中选出与给定的像素格式最匹配的一个给设备描述表(DC)。c.再用setPixelFormat函数将其设为当前像素格式。1.1.2建立着色描述表(rendercontext)着色描述表(RC)之于OpenGL,就犹如设备描述表(DC)之于Windows。在进行OpenGL绘制时,当且仅当RC是处于当前时绘
8、制的物体才能显示出来。着色表可用下述代码来创建:CCIientDC*m—I)DC;HGLRChrc:HLpDC—newCCIientDC(this);hrc=wglCreateContext(m—pDC一>
此文档下载收益归作者所有