基于OpenGL平台示教机器人运动控制及仿真实现
2019-07-15李建宾任华丽
李建宾,任华丽
(1.广西大学研究生院,广西 南宁530007;2.武汉市黄陂区职业技术学校,湖北 武汉432200)
0 引言
机器人技术作为综合性学科,其包含了机械、控制各方面的知识,从世界上第一台工业机器人诞生至今,机器人技术已经有了长足的发展,并取得了很多成果,而且机器人已经大量应用到实际生产。计算机技术不断的发展,让仿真技术起到越来越不可忽视的作用,机器人仿真的任务,是在与实际机器人不接触情况下,对机器人进行运动学、动力学、轨迹规划、碰撞检测、性能测试等进行复杂计算工作,可以在三维世界中控制机器人,并对机器人进行必要的虚拟仿真示教。
1 工业机器人仿真研究
在20世纪60年代,美、英、日等发达国家相继在课堂进行机器人教学,机器人教学研究得到蓬勃发展,但是由于机器人价格昂贵,以及机器人操作需要大而独立的试验场地等诸多因素,不可能实现每位学生都同时有一台机器人进行实际操作,并且机器人课时安排紧张,学生学习的效果并不理想,而三维可视化仿真技术的发展,让我们有了一个非常好的平台对机器人进行相应的研究,可以交互式示教仿真。
国内研究现状:目前各高校及研究所对机器人仿真研究越来越重视,从开始探索阶段,到收获丰硕成果阶段,在机器人仿真中取得了很多成果。例如清华大学THROBSM机器人仿真系统,上海交通大学俞文伟和邓建一开发的ROSIDY仿真软件,清华大学崔培莲和孙增圻PCBOBSM微机机器人仿真软件,北京工业大学陈晏、余跃庆利用多体动力学软件LMS Virtual.Lab和有限元分析ANSYS开发的刚柔耦合机器人动力学仿真系统,华北电力大学利用MATLAB6.0,OpenGL和VC++2010三者结合开发的机器人仿真通用试验平台。
本文利用OpenGL的实时交互性,模拟机器人的示教/再现过程,可以检验所编写机器人程序的正确性。在机器人物理样机实验之前,可以通过在仿真系统上进行模拟仿真,观察机器人模型的运动过程以及运动结果,这样可以避免在操作机器人物理样机时对周围物体和人员造成伤害。并且此仿真系统可以提供与现实机器人物理样机几乎相同的操作步骤,在实际操作人员真正操作机器人物理样机之前,可以增加操作员的操作熟练程度,增加操作员的使用安全系数。
2 OpenGL概述
OpenGL为开放的图形程序接口,其前身为SGI公司开发的IRISGL,SGI公司在IRISGL基础上于1992年7月发布了OpenGL的 1.0版本。后来OpenGL的1.0版本成为工业标准,OpenGL作为业界2D和3D图形接口标准,应用在成千上千万的计算机程序中,从初期的崭露头角,到与Direct3D激烈竞争,中途经历波折发展了20多年,最后被Khronos接收后发扬光大,OpenGL已经发展到了目前OpenGL4.4版本,OpenGL是一种底层图形库,是一个完全可移植并且速度很快的3D图形和建模库。OpenGL不是一种编程语言,它是一个三维图形软件包,其具有开放性,OpenGL可以与Visual C++紧密接口,OpenGL能够对三维建模进行渲染着色,从而绘制出逼真的三维景象,是一款非常适合做可视化仿真系统的工具。
2.1 OpenGL绘制流程
在OpenGL绘制过程中,首先顶点数据,像素数据可以在现实列表中显现出来,通过运算器对逐个顶点进行计算,然后光栅化,最终形成图形碎片,像素数据及操作结果存储在纹理组装用的内存中,流程操作最后,图形片元进行一些列逐个片元操作,结果像素值送入帧缓冲器实现图形显示,图1为OpenGL绘制流程图。
图1 OpenGL绘制流程图
2.2 基于OpenGL机器人软件仿真界面建立
本示教机器人三维模型主要由底座、连杆等组成,通过利用glu库函数(gluCylinder和gluDisk)及缩放、转移等变换绘制出了底座,连杆的模型。通过模型转换函数绘制出机器人三维模型,其模型转换的函数的作用:glTtanslate{fd}(TX,TY,TZ)T 是 TYPE的缩写,其表示将当前的矩阵与其它矩阵相乘,并将物体平移xyz三个坐标的指定方向,glRotate{fd}(Tangle,Tx,Ty,TZ)表示将当前的矩阵与其它矩阵相乘,矩阵绕原点到点(x,y,z)直线的逆时针旋转的角度。glScale{fd}(TX,TY,TZ)表示将当前的矩阵与其它矩阵相乘,沿坐标轴缩放,然后在每点坐标上分别乘以参数xyz。绘制机器人部分模型,机器人连杆可以通过对立方体进行不同的缩放、转移、旋转变换来进行绘制,图2是基于openGL绘制的仿真软件界面。
图2 OpenGL中绘制的仿真软件界面
2.3 基于OpenGL软件仿真及操作应用
通过软件可以观察六自由度示教机器人的运动状况,在软件控制部分输入末端坐标,机器人末端执行命令并运动到设定的坐标点,并通过点击按钮“逆解计算”可以得到8组在此末端设定坐标系下相对应的逆解。通过点击“复位按钮”,机器人恢复到初始状态。虚拟现实软件功能分为正解计算、逆解计算、给定坐标末端运动。通过开发此仿真软件还可以实现人机交互操作模式,增强初学者对机器人的直观感知,使用者可以通过在软件中输入机器人末端在空间的不同坐标值来获取机器人各关节角的姿态,实现机器人位置逆解算法。
2.3.1 正解计算
在关节角 θ1、θ2、θ3、θ4、θ5、θ6静态编辑框中输入角度值,机器人末端抓持器位姿随关节角变化而变化,六自由度机器人也随之运动。设定 θ1= 20°、θ2= -30°、θ3= 30°、θ4= -50°、θ5= 50°、θ6= 30°,可以得出给定某一关节角对应的机器人位姿。如图3为正解计算机器人位姿。
图3 正解计算机器人位姿
2.3.2 逆解计算
在六自由度机器人逆解计算静态编辑框输入x、y、z坐标值,当设定初始末端坐标 x=790,y=0,z=769后,点击“逆解计算”,对应得到各关节角数值,点击“运动”按钮,机器人就会随之运动。并得到第六组反解对应的机器人位姿。如图4为逆解计算机器人位姿。
图4 逆解计算机器人位姿
2.3.3 给定坐标末端运动
在六自由度机器人逆解计算静态编辑框输入x、y、z坐标值,可以任意给定末端坐标x=1 200,y=0,z=100,然后点击“逆解计算”,机器人末端就会随之运动到设定的坐标点位置。并得到是给定坐标末端运动机器人位姿。如图5为给定坐标机器人末端位姿图。
图5 给定坐标机器人末端位姿图
3 结束语
目前市面上机器人价格过于昂贵,价格从几千上万不等,而且购买回来,还需要给机器人提供操作的场地,由于目前各高校或者研究所由于经费或着场地的制约,不可能让每个学员或研究者都能亲自操作物理样机,而仿真技术发展,可以通过人机交互,让我们与机器人之间在虚拟环境世界中进行示教。基于OpenGL开发的示教机器人三维动态仿真系统,可以直观的描述了示教机械臂运动过程,该仿真操作简单,满足基本仿真要求,对示教机器人仿真技术的研究具有重要的实践意义[1-2]。