王瑞利 丁庆增
基于OpenGL的3-RSS/S并联机器人动态仿真
王瑞利1丁庆增2
(1. 黄河科技学院工学院 郑州450063;2. 中铁工程装备集团有限公司 郑州450002)
通过对机器人仿真技术的探讨,开发一个成功的机器人仿真系统需要强有力的开发工具,在VC++6.0仿真软件开发平台上,基于OpenGL联合开发了一套3-RSS/S型并联机器人的仿真系统软件,并对该系统的计算机动态仿真实现原理做了详细的介绍。
并联机器人 计算机仿真 OpenGL
随着机器人研究的不断深入和机器人领域的不断发展,机器人仿真系统作为机器人设计和研究的安全可靠、灵活方便的工具,发挥着重要的作用。本文通过对3-RSS/S并联机器人的三维实时仿真系统的研究、开发和分析,探讨了在Windows环境下利用OpenGL和VisualC++混合编程,实现机器人三维实时动态仿真的具体方法和步骤。
机器人仿真是机器人研究的一项很重要的内容,它涉及机器人机构学、机器人运动学、机器人零件建模、仿真机器人三维实现和机器人运动控制,是一项综合性的有创新意义和实用价值的研究课题。仿真利用计算机可视化和面向对象的手段,模拟机器人的动态特性,帮助研究人员了解机器人工作空间的形态及极限,揭示机构的合理运动方案及有效的控制算法,从而解决在机器人设计、制造以及运行过程中的问题,避免了直接操作实体可能会造成的事故或者不必要的损失。
要开发一个成功的机器人仿真系统,需要强而有力的开发工具。在众多的开发工具中,OpenGL是非常实用方便的一种。OpenGL被计算机工业界认为是当前最先进的三维图形API,几乎所有的三维图形都能见到OpenGL的影子。OpenGL是在SGI、Microsoft、DEC、IBM、Intel等多家世界著名计算机公司的倡导下,基于SGI的GL(Graphical Library)标准,制定的一个通用共享的开发三维图形标准。Microsoft公司首先将OpenGL图形库链接到Windows NT中和Windows9x上,这使得广大PC机用户可以使用OpenGL开发功能强大的图形程序。以前,在Windows9x/NT操作系统中开发的OpenGL应用程序只能在昂贵的图形工作站上才能运行,但随着支持OpenGL的图形加速卡的出现和微机性能的提高,OpenGL在微机平台上得到了广泛的应用,这使得快速开发高效、低成本的机器人仿真系统成为了可能。由于OpenGL的作用机制是客户(Client)/服务器(Server)机制,因此他的网络是透明的,可以十分方便的在网络环境下使用。
选择一个方便、高效、快捷并且功能强大的开发平台对于仿真软件的开发至关重要,在此,选择了VC++6.0作为开发仿真软件的平台。VisualC++6.0紧密结合了面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)的思想,从而为大型复杂的应用程序开发提供了一种比传统的过程式编程方法更为有效的方法。
机器人仿真系统的软件系统原理图,如图1所示,下面介绍组成该软件体系相关模块的功能。
图1 系统原理图
(1)控制模块。包括运动控制、状态控制、工况控制、变换视角、视图缩放、实用技术几个部分,这些部分分别控制机器人的启动、停止,机器人作业方式,显示窗口中图像的放大、缩小以及视角的变换等。
(2)运动学原理模块。以机器人运动学正解、逆解算法为原理,编写末端执行器位姿与各输入杆件位姿之间的数学关系。
(3)图形建模模块。分别建立机器人各零部件模型,确定出每个零部件与相临零部件连接的关节点,以便组装机器人时进行定位。
(4)图形接口模块。根据各个零件的空间位置、角度等信息组合零部件,最终显示机器人整体形状。
(5)图形绘制模块。根据各零件几何信息用OpenGL绘图指令绘制零件,添加颜色、纹理及光照处理。
(6)数据库模块。存储必要的仿真计算数据,用于保证在动态仿真过程中各种信息能够时时显示。
(7)数据显示模块。显示仿真过程中系统的各种信息,包括末端执行器坐标、速度、受力等。
(8)文档说明模块。存储仿真分析结论,并为系统提供必要的帮助和说明。
3-RSS/S并联机器人机构,如图2所示,由上、下两个平台和三个R-S-S支链及连接两平台中心的一根支撑杆S组成,其上平台为活动平台,下平台为基座。连杆上端经球铰与上平台(即动平台)相连,下端经球铰与电机曲柄相连,电机被封装起来。支撑杆的作用是约束和支撑上平台,它的上端通过球铰与上平台中心相连,这一结构使上平台仅有三个自由度转动,并且能承受较大的负载,从而减小连杆的受力。
图2 3—RSS/S并联机器人机构简图
机器人运动学的基本任务之一就是要建立起各构件与末端操作器的位置、姿态之间的关系,为机器人的控制和应用研究提供分析的方法和手段,运动建模在并联机器人的研究中占有重要的地位。在本例中,为了和OpenGL中的坐标系统保持一致,基座坐标系仍采用世界坐标,原点位于基座平台的形心,轴自左向右,轴自下而上,轴由里及外。
本系统仿真的目的是为了实时观察、控制机器人的运动过程,因此必须有机器人图像显示和运动控制两部分。为此本例采用MFC的MDI结构,用CsplitterWnd类对象把窗口分为两部分,左边用于控制的输入和输出,右边用于显示机器人位姿图像。由于要计算机器人的正反解和轨迹规划,为了使这三方面互不影响,本文在左视图采用了基于CFormView类的对话框设计,用按钮进行控制,可以方便地在各实验间进行切换、开发的软件界面如图3所示。
图3 3-RSS/S并联机器人系统仿真界面
3-RSS/S并联机器人的仿真系统左边的控制界面中,如图4所示,分别设置了系统控制和运动控制两大项目。系统控制中主要是对整个仿真系统的设置,如仿真的启动、暂停和终止。另外,还可以通过控制面板及快捷菜单当中的旋转(视角变换)和视图缩放按扭,对显示窗口中的图形进行操作,以期达到最佳视觉效果的目的。
在运动控制中,设立了简单运动和复合运动。简单运动通过打击X、Y、Z轴按钮来实现运动,而且右边仿真运动的数据可以在左边相应的对话框中显示出来。复合运动则是三个轴共同作用,显示框中都显示出相应的数据。这样对加工仿真演示过程中的各种数据信息进行实时显示。
图4 控制界面
首先对机器人仿真技术进行了简要的介绍,然后在VC++6.0环境下嵌套OpenGL开发出了一套该机器人的仿真系统软件,并对该系统的结构和功能做了较为详细的描述,经过测试证明,该系统运行可靠、功能完备、效果逼真。
[1] 孙家广,杨长贵.计算机图形学[M].北京:清华大学出版社,1995.
[2] 朱亚军,白健军.OpenGL编程实例[M].北京:人民邮电出版社,1999.
[3] 叶志祥,冀春荣,宁伟.OpenGL在机器人仿真系统中的应用[J].机床与液压,2000,2:38.
[4] 徐坤,言勇华.机器人运动控制仿真系统研究与实现[J].机器人技术与应用,2000,2:28-30.
[5] 贾志刚编著.精通OpenGL6[M].北京:电子工业出版社,1999.
[6] 李劲,郑浩编著.5C++Builder5.0技术内幕大公开[M].北京:中国青年出版社,2000.
[7] 吴瑞祥编著.机器人技术与应用[M].北京:北京航空航天大学出版社,1994.
[8] 和平鸽工作室.OpenGL高级编程与可视化系统开发(系统开发篇)[M].北京:中国水利水电出版社,2002.
[9] 和平鸽工作室.OpenGL高级编程与可视化系统开发(高级编程篇)[M].北京:中国水利水电出版社,2002.