工业机器人三维仿真系统的设计与实现
2020-06-26
来源:欧得旅游网
维普资讯 http://www.cqvip.com 2O0l2年第5翔 机器A技术与应用》 工业机暑人三维仿真系统的设计与实现 口杨华田新诚许传俊 山东大学控制科学与工程学院 【摘要】本文从运动学正问题和运动学反问题两方面,对机器人运动学模型的建立方法作了分析,讨论了一种通用的机器人 三维仿真系统的设计与实现;本系统使用OpenGL和Visual C++,满足了在普通硬件平台上实现高质量实时三维动画的要 求,提高了系统的易开发性和通用性。 【关键词】运动学模型三维图形仿真OpenGL 【Abstract】This paper introduces the method of kinematic modeling.which includes forward kinematic solution and backward kine- matic solution,and discusses the implementation of 3D graphical simulation for robots.In this system.OpenGL and Visual C++are used,andtheimplementationofhighqualityand real 3D cartoonale satisfied,whichincreasefacilityofexploiatitonand compatibility. 【Key Words]kinematic modeling;3D graphical simulation;OpenGL 1副唇 随着机器人研究的深入和机器人领域的拓展,机 器人仿真系统作为机器人设计和研究中安全可靠、灵 活方便的工具,发挥着重要的作用。它涉及到机器人 机构学、机器人运动学、机器人零件建模、仿真机器人 三维实现和机器人运动控制等方面内容。仿真利用计 算机可视化和面向对象的手段,模拟机器人的动态特 性,帮助研究人员了解机器人工作空间的形态及极 A = C 0 S 0 0 0 一S 0 ・C口。 S 0。・S口。 a。.c 0 a。.s 0 di 1 0 0 C 0。・C口。 一C 0 ・S口 S口i C口i 0 0 式中,d 为沿杆的轴线两个公垂线的距离;0 为垂直 于杆件 的轴线的平面内两个公垂线的夹角;a 为两 个关节轴线沿公垂线的距离;a 为在垂直于a 的平 面内的两个关节轴线的夹角。 C1 S1 A l= 0 1 0 0 a1 1 0 0 0 1 限,揭示机构的合理的运动方案和控制算法,从而解 决在机器人设计、制造和运行过程中的问题,避免了 0 0 一S1 C1 0 0 : 2= c2..s2 0 a 2C2 s2 c2 0 0 0 0 0 a 2s2 1 0 0 1 0 C 直接操作实体可能造成的事故和不必要的损失,成为 实用化离线编程技术的重要部分。 5 0 0 :窒!栅鹫 蕈鳓 2.1运动学正问题 机器人运动学模型是机器人三维图形仿真的基 A 3= 0 0 1 0 00A 4= —S3 c3 0 0 (2) 0 础,我们以一种六自由度关节机器人为例,把各轴的 原点依次称为O1,02,O3,04,05,06。正向关节求 解问题,即给出六个关节变量0。(i=1,2,…6),求出 手部位姿矢量n,o,a和P。用齐次变换阵A 描述某 局部坐标系相对于前一坐标系的位姿,即 -描述第 一..s4 ..c4 0 O 0 0 a4 :A 5= 0 0 0 1 1 O 1 杆系相对于固定坐标系的位姿,描 述第二杆系 A 6= 00 0 0 ..S6 c6 1 0 0 0 a6 相对于第一杆系的位姿,因此,第二杆系相对于固定 坐标系的位姿 = Hartenberg矩阵o 幻其中, 。代表Denavit— 1. 【作者简介】杨华,女,1978年生,山东大学控制科学与工程学院硕士研究生。研究方向:工业机器人运动控制。 ・36・ 维普资讯 http://www.cqvip.com 2002 ̄-第5翔 《机器人技术与应用》 则认为手部已达到目标位姿 ,迭代终止; =A。A ,A以 A 6[兰 (3) 5)计算△ ; 6)置新的初值 ∞+A0 — 7)若i<n,使i=i+1 ,转3),否则,置 = +1,i=1转3)。 其中,。为机器人手部接近矢量,0为手部姿态矢量, O O O 0 X y : :i}蒜鹱避 飒3.1系统总体结构 11,为手部法向矢量,P用来表示手部位置,其中P 、 口 口 0 0 y : P,、P:表示在基准参考坐标系中的坐标。各参数定义 p p p l 参看机器人连杆坐标系,如图(1)所示。 系统由图形建模模块、图形接口模块、图形绘制 模块、视图模块、控制模块、运动学原理模块和工作文 图1机器人连杆坐标系 2.2运动学反问题 本系统采用迭代法来求解运动学反问题,其基本 思想是:当6自由度机器人处于某一基本位置时,其 关节矢量设为p 0z(0l 0l ∞,03o,0∞, so 60) ;假定只有 关节 ,“=1,2,…,6 能够转动,而其它关节轴固定不 变,则手部位姿 是 的单变量函数,用解析法可求 出 与给定的手部目标位姿 之间的偏差最小 时的 o增量,并把 叶△ = 作为新的初始值Oio;从 第一个关节轴 ,到第六个关节轴依次进行这样的求 解过程,使 m所对应的 = 不断趋近 ,直 至两者的偏差满足给定的精度要求,迭代过程才终 止,此时的关节矢量Q o=( 。, z. ,. . s,03 ;即为所求 的反向解。编程步骤如下: 1)给出机器人机构的连杆参数o ,a』和手部目标 位姿71 【JR ,P 】,给定误差限£; 2)任意给定一组关节变量初始值 9 0--(0l0.0 ̄o,03o,040,05o, 60) ,并置k=1, 1; 3)计算相应的手部方位矩阵和手部位置矢量 JR。0,P。o; 4)计算 P0.C, 0,若 0>£,则转5);若 0≤£, 件模块等组成。系统原理图如图(2)所示。 图2系统原理图 ●图形建模模块 在建模软件中采用相对坐标系,分开建立机器人各 零件模型,确定出每个零件与上下零件连接的关节点。 以上关节为坐标原点建立零件,输出图形数据文件。上 零件姿态变化,下零件位置信息不须做任何变化,自动 在新的关节位置上建构,每个零件的信息独立。 ●图形接口模块 仿真软件读入图形数据文件,识别文件格式,建 立起各零件数据信息。包括零件上组成三角面片的每 个点的坐标、颜色、方向矢量,以及点的组合信息。 ●图形绘制模块 根据各零件信息用OpenGL绘图指绘制零件,添加 颜色、光照,并根据零件空间位置、角度等信息组合零件, 显示机器人整体。机器人模型层次结构如图(3)所示。 扼嚣人模型 l 由…由…由 l } l 嚣中}名称 l l 复含体煮 l l 结构参教 l l 变换 。章 图3机器人模型层次结构 ・37・ 维普资讯 http://www.cqvip.com 20o2 ̄第5期 ●图视图模块 将机器人在四个不同视角的视窗中定位、显示, 实现远近、移动、旋转、灯光、网格背景等视图辅助功 能。 《机器人技术与应用》 以及曲线和曲面的函数。借助双缓存技术增强了机 器人三维动画实时显示的连续性和动感性。特别是 与Visual C++面向对象编程软件结合,利用MFC 类库作为OpenGL与Windows的接口,编译出动态连 接库,以供用户的其它应用程序调用。开发出不但 ●控制模块 制作模拟机器人运动的控制面板,及各零件信息 随控制命令的更改,执行用户对机器人的控制操作。 ●运动学原理模块 具有立体感强的三维效果而且能够提供良好的交互 式功能的图形软件,使用户能够直接控制图形的效 果。随着OpenGL的图形加速卡的出现和微机性能 的提高,OpenGL在微机平台上广泛应用,着更促进 以机器人运动学正解、反解算法为原理编写各关 节量与末端执行器位姿之间的数学关系。 ●工作文件模块 规定工作文件数据结构格式,实现工作文件的读 写、保存等功能。工作文件可以发送到下位机连接端 口,对真正的机器人进行操作。 3.2 Visual C++软件设计 利用C++语言的面向对象、可移植性、实时性强 等特点,使用Visual C++开发类似于MATLAB语法的 通用控件,如矩阵乘法C:A×B等,其中包含机器人运 动学、动力学和雅可比列式的计算等算法。这种通用控 件的特点是在针对大量矩阵运算的机器人仿真算法中 能够方便地实现机器人模型的仿真和综合,不需要诸如 MATLAB等平台的支持,而且可以实现实时仿真与控 制。 3.3基于OpenGL的三维图形仿真 OpenGL是SGI公司向其它平台移植其著名的图形 接口软件GL时开发的开放的、适用与多种硬软件平台 及操作系统的三维图形标准,用户可以方便地利用这个 图形库,开发出接近光线跟踪高品质静止的三维彩色图 像或实时动画。 由于人脑拥有处理视觉信息所需要的高度能力,而 图像又是沟通思维最自然的手段,因此仿真信息的可视 化处理成为仿真技术的一项重要内容。机器人图形仿真 是将机器人仿真的结果以图形的形式显示出来,从而直 观的显示出机器人的运动情况,得到从数据曲线或数据 本身难以分析出来的许多重要信息。 OpenGL不仅提供了诸如坐标变换、投影变换、 光照处理等基本功能,而且实现了繁琐的图形消 隐。更为有利的是,图形库中提供了基本的点、线、 面的绘制函数,还提供了高效的绘制复杂三维物体 ・38・ 快速开发高效、低成本的图形软件。所以在机器人 控制运动仿真中,利用此强大的图形界面进行开 发,实现模拟机器人的仿真运动。仿真结果如图(4) 所示。 图4机器人三维仿真图例 结l诒I 本文利用OpenGL和Visual C++实现了对于机器 人的三维图形仿真,可以完成对于动态的和不可预测的 系统进行更为精确的评估,满足在普通硬件平台上实现 高质量实时三维动画的要求,提高了系统的易开发性和 通用性。 参考文献 【1】Sun Z ̄ngqi.Robot simulation system and its application【J】.Jottr- nal ofSystemSimulation.1995,7(3J;23~29 【2】Takano M.Development ofcomputer simulation system ofkinemat- icsofrobot.JFacEngUnivofTokyo(SJ,1982,36;677~711 【3】R.Dilimann,A software system for the simulation of orbot based manufacturing process.Robotics,2(1986),3~16