中图分类号:TP242.2 密 级:
单位代号:11903 学 号:02720435
上海大学⑧
硕士学位论文
SIIANGHAI I心臃RSITY
MASTER’S THESIS
题 工业机器人运动仿真及作
目 业仿真系统
作 者 张智勇
学科专业机械电子工程
导 师 沈俊杰
完成日期 2005.1
摘要
一个完善的机器人仿真系统可以对机器人运动学、动力学、轨迹规划和控制 算法进行仿真计算,可以仿真机器人的各种操作过程,并对仿真的结果进行分析 处理,并且可以不依赖现实中的机器人设备,是研究机器人系统及其相关技术的 有效手段和得力工具。
机器人运动学图形仿真是机器人仿真系统的一个重要组成部分。它将机器人 的运动学仿真结果以3D图形的方式显示出来,直观的显示机器人的运动情况。
研究人员能在计算机屏幕上看到机器人的运动方式,轨迹规划的结果,还可以交 互式逾对机器人进行示教仿真。机器人运动学图形仿真技术为机器人仿真系统建 立了良好地人机界面。
本文对开发机器人运动学仿真系统的主要算法和图形建模方法进行了讨论。
在机器人运动学,机器人轨迹规划,空间碰撞检测,计算机图形学等领域里面前 人都已经做了很多的工作,基本上已经有了比较成熟的理论和方法,这就使得整 个系统在可行性上有了一定的保障。
文中主要开展了如下工作:首先,论文对机器人仿真技术的发展概况进行了 概述,总结并提出了机器人图形建模的三种方法。其次,本文对三类算法进行了 重点研究和分析:运动学逆解通用算法,轨迹插补算法,碰撞检测快速算法。本 文阐述了这些算法的思想、设计理论和具体设计过程,并进行了详细的模拟分析。
同时,本文还对机器人语言进行了介绍。第三。本文根据所上述算法开发设计了 一个完整的机器人运动学仿真系统程序。最后,本文根据课题研究工作和程序测 试结果,指出目前系统存在的不足之处和改进方法。
关键词:
机器人,运动学仿真,图形建模,碰撞检测Abstract
11le comprehensive Robot Simulation System includes Kinemafics Simulation.
Dynamics Simulafion,Trajectory Planning.and Control A190rithm.And It can
simulateall kinds of operation and analyze the results of the simulation.It may beriot
dependonrobots in the real world.SORobot Simulation System iSan e塌cient method and powerful tool ofstudyingrobotsystem and otherrelevant tachnology.
The Robot Kinematics Graphic Simulationisoneofthe mostimportantpart of也e
Robot Simulation System.It Canaudio,visually show the result of the simulation and
the motion ofrobots by using 3D graph.Through the computer’S screen,researchers
callwatch也e motionofrobots.the result ofthe trajectoryplanning anddo interactive teaching-by-showing
work.m
Robot Kinematics Graphic Simulation set up good man—machine interface for Robot SimulationSystem.The paper diSCusSeS the main algofithm ofRobot Simulation System and the method of building graphic model.We Can find SOme good WOrk in the fields of
kinematics,trajectory planning,coilision detection and computer graphics SO that we
canusetheir resultsto constructoursystem.
ne
main research work of this dissertation is箍follow:firstly,the PaOer expatiates the developing status毋Robot Simulation System.summarizes three methods of building graphic model.Secondly,the article gives emphasisto the studyand analysis of three kinds ofalgorithms,i.e.general inverse kinematics algorithm,
trajectory interpolation algorithm and fast collision detection algorithm.And this paper expatiates the idea of three s可les of algofithms.designing theory,detailed designing process,simultaneity simulating and analyzingthedesignedalgorithms.At the same time,the paper introduces robot language.Thirdly,We design the Robot
Simulation
System
byusingthe abovealgorithms.Lastly,the dissertation discuss thedisadvantageofour system and give some new methodto improve it according to the research and actual testing work.
Key words:robot,kinematics simulation,graphic modeling,collisioncheck
王王
原创性声明
本人声明:所呈交的论文是本人在导师指导下进行的研究工作。
除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发表 或撰写过的研究成果。参与同一工作的其他同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。
签名:主缨豆 El期兰:i:芒
本论文使用授权说明
本人完全了解上海大学有关保留、使用学位论文的规定,即:学校有权保留论文及送交 论文复印件,允许论文被查阅和借阅:学校可以公布论文的全部或部分内容。
(保密的论文在解密后应遵守此规定)
彤£九
工业机器人运动仿真及作业仿真系统 第一章绪论
第一章绪 论
1.1课题研究的背景
工业机器人由操作机(机械本体)、控制器、伺服驱动系统和检测传感装置 构成【ll,是一种仿人操作、自动控制、可重复编程、能在三维空间完成各种作 业的机电一体化自动化生产设备。特别适合于多品种、变批量的柔性生产。它 对稳定、提高产品质量,提高生产效率,改善劳动条件和产品的快速更新换代 起着十分重要的作用。
机器人技术是综合了计算机、控制论、机构学、信息和传感技术、人工智 能、仿生学等多学科而形成的高新技术,是当代研究十分活跃,应用日益广泛 的领域。机器人应用情况,是一个国家工业自动化水平的重要标志。
机器人并不是在简单意义上代替人工的劳动,而是综合了人的特长和机器 特长的一种拟人的电子机械装置,既有人对环境状态的快速反应和分析判断能 力,又有机器可长时间持续工作、精确度高、抗恶劣环境的能力,从某种意义 上说它也是机器的进化过程产物,它是工业以及非产业界的重要生产和服务性 设备,也是先进制造技术领域不可缺少的自动化设备。
随着工业机器人被日益广泛地应用到实际生产中,机器人的工作环境也日 趋复杂化,这样对机器人及其工作环境乃至生产过程的计算机仿真是必不可少 的。机器人仿真的任务,就是在不接触实际机器人及其工作环境的情况下,通 过计算机图形技术,提供一个和机器人进行交互作用的虚拟环境。
机器人仿真技术圆研究始于七十年代末,八十年代得到迅速发展,目前已 经广泛应用于机器人运动学、动力学分析与综合、轨迹和路径规划、机器人与 工作环境的相互作用、离线编程等各个领域,成为机器人研究中不可缺少的一 个重要组成部分。
机器人仿真技术涉及机器人动力学仿真、机器人运动学仿真、机器人控制 仿真、机器人作业仿真等诸多内容【3】。而机器人运动学仿真又不同于动力学仿 真,由于动力学仿真是忽略了许多次要因素并通过线性化而得到的近似模型,
因此仿真结果与真实情况可能有较大差距;但运动学仿真结果完全是真实可靠 的,这是由运动学正、逆问题公式的准确与可靠保证的。
机器人仿真技术作为机器人研究应用的安全可靠、实用廉价的工具和手段,
日益显示其强大的生命力和不可缺的重要性。
1.2机器人仿真的多种途径
目前,在机器人仿真的具体实现上,有各种方法。
・基于AutoCAD平台的图形仿真系统[41
该方法以AutoCAD和AutoLisp为基础来建立机器人仿真系统的。其实现
机器人模型运动有两条途径,其一是采用AutoCAD提供的脚本文件,把所需的
AutoCAD命令组合在一起,按预定的顺序执行这些命令,并通过运行脚本文件
工业机器人运动仿真及作业仿真系统 第一章绪论
来产生图形显示。另外一种方法是采用AutoLisp语言编写模型驱动程序来实现 模型运动。该方法的优点在于构建机器人模型方便,但是系统缺乏交互性,运 动学逆解算功能差等缺点。并且由于以AutoCAD为平台的仿真系统,只适于运 动学仿真,不利于仿真系统的扩展。
・基于Matlab的运动仿真系统例
Maflab(矩阵实验室),80年代由CleveMoler构思并开发,是集合命令翻 译、科学计算于一身的交互式软件系统。在机器人仿真系统中,有大量的矩阵 运算,采用Matlab作为平台,可以充分利用Matlab强大的矩阵运算功能,提 高矩阵运算的正确性和效率。并且现在Mauab已经有专门的robot工具包,能 更加方便的实现多种结构机器人的运动学仿真。Marlab本身也具有显示三维图 形的功能,即三维线条图。虽然三维线条图使运动仿真简洁明了,但是仿真效 果不好,缺乏真实感和精确性,而且线条模型不能满足对仿真系统做观察和检 测的需要。
・基于AutoCAD和Man曲的机器人仿真系统16J
应用AutoCADActiveX技术,在ⅥjA中调用Matlab应用程序。利用Matlab 强大的矩阵计算功能,结合AutoCAD的图形功能,可以开发出运算效率高、图 形显示质量好的机器人仿真系统。
・基于V1LML-JAVA的运动仿真系统【7】
虚拟制造(Virtual Manufacturing)已是制造业中广为接收的新概念,虚拟 现实技术是虚拟制造的一个重要支撑技术,是进行产品虚拟设计的途径。随着 JAVA和VRML技术的相继出现以及微机性能的不断提高,在微机上进行虚拟 现实仿真已经成为可能。这种仿真系统虽然不具备大型系统那样的真实感和浸 入感,但它提供了一个低成本,低门槛的应用平台。VRML和JAVA的跨平台 性、网络化和强大的可编程能力,对于实现网络化机器人仿真是一种简单、廉 价而有效的手段。
・基于3DS MAX的机器人动画仿真系统嘲
3DSMAX是AutoDesk公司推出的专门进行图像处理和动画制作的软件,
使用方便,功能强大。利用3DS MAX作为机器人动画仿真系统,具有模型美 观逼真,操作简单,易于改变观察视角等诸多优势。但是3DS MAX造型缺乏 一些精确定位的功能,仿真的实时性和交互性。
・基于Visual C++和OpenGL的运动仿真系统19]
采用Visual C++作为编程语言,一方面是因为Visual c++完善的基本类库 MFC和应用向导AppWizard可以方便地调用OpenGL,以及方便的实现OpenGL 和DXF、SLP等图形文件的接口。这有利于实现复杂、丰富的机器人及环境模 型。另一方面,采用Visual c++作为编程语言有利于正、逆运动学以及轨迹、
路径规划等算法及示教功能的实现。OpenGL是近几年发展起来的一个性能卓 越的三维图形标准,它独立于操作系统,以它为基础开发的应用程序可以十分
工业机器人运动仿真及作业仿真系统 第一章绪论
方便地在各种平台间移植。
13研究现状
1.3.1国内研究现状
目前,在国内已有许多高校及研究所在工业机器人仿真方面做了很多工作
【m”】,开发了一些软件。如上海交通大学机器人研究所的俞文伟和邓建一研制 开发的机器人图形仿真软件ROSIDY。该软件是以国内外普遍使用的AutoCAD 作为其图形支持,通过对AutoCAD的二次开发使其能直接为机器人仿真服务,
该软件系统采用人机界面,具有菜单式项目选择、交互式人机对话、文件修改 和与C语言、FORTRAN语言连接等功能。而清华大学的崔培莲和孙增圻开发 研制的微机机器人仿真系统PCROBsM,采用模块化结构,具有一定的通用性 和可以移植性,也便于用户进行拓展。整个系统有机器人语言、轨迹规划、运 动学和动力学、控制系统仿真、图形数据输出等模块组成。此外,华中科技大 学的丁汉等,国防科技大学的潘存云等在这方面也进行了研究开发。这些软件 在开发中都做了大量的工作,无论算法结构还是图形研究都具有一定特色。但 其中大多数的软件只是针对某种机器人开发、单机仿真的,而且其中的一些软 件只能在工作站上运行。
1.3.2国外研究现状
国外机器人系统仿真软件很多【m”】,如英国Nottingham大学的GRASP,
可用于机器人制造和装配单元仿真,具有固体几何模型,运动学模型;德国 Wameeke等人研制的IPA,能对不同机器入的功能和用途进行比较,以帮助使 用者选择合适的机器人;美国通用电气公司研制的SDRC软件系统、Miehigan 大学的ADAMS软件包,均可以用于机器人工作单元设计和离线编程;Maryland 大学研制的DYNAMAN系统可实现机器人的动力学分析和仿真。其它的一些 仿真系统如,TOAD、EDYLMA主要用于机器人动力学仿真,DRAMS、IMP、
L烈KAGES、和DOMES用来解决机器人机构的运动学分析,而MICRoS、
TOCAD、CAM和ROBCAD等系统针对机器人的结构设计与仿真。
圈I-1 KUKA公司机器人仿真软件
工业机器人运动仿真及作业仿真系统 第一章绪论
国外的机器人生产公司也为自己的产品专门开发了仿真系统,如德国的 KUKA(图1.1),
日本的KA、融SA日等。
目前,机器人仿真系统正朝着通用化、完整化、交互式计算机图形化、智 能化和商业化的方向发展,而代表这一发展趋势的是ROBCAD机器人仿真系 统。ROBCAD已在实际工业系统中得到了广泛的应用,美国福特、德国大众、
意大利菲亚特等多家汽车公司、美国洛克希德宇航局都使用ROBCAD进行机
器人生产线的设计、仿真和离线编程。目前,ROBCAD已成为世界上流行最广 的机器人仿真系统之一。
1.3.3ROBCAD系统简介ll纠
RoBCAD是美国Tecnomatix公司八十年代推出的、运行在SGI图形工作 站。UNIX操作系统下的大型机器人设计、仿真和离线编程系统。其主要功能 包括:
・完整的二维、三维图形设计,图形的逻辑运算,提供线框图、消隐图、
实体造型及光照模型。
・提供多种标准几何建模协议,实现了其它CAD软件如IGES、VDAFS、
SET、GEOMOD和ROBCAD的兼容,在这些环境下建立的几何模型可互相调 用。
・机器人及设备运动学自动建模,具有六自由度以下机器人通用运动学逆 解调器,提供机器人库及部件库,机器人库包括了目前国际上商业化机器人一 百多种。
・机器人工作单元设计、布置方案可行性检查及优化、工作点及轨迹的交 互式生成,机器人及设备的运动和示教,机器人及设备作业任务自动生成。
・工作单元作业任务描述及机器人、设备之间的相互通讯,提供了通用编 译型任务描述语言1I)L。
・工作单元作业任务动态图形仿真,随机中断和继续,实时观察,碰撞检 测及报警,并提供仿真结构视频输出。
・整个工作单元或单元内任一元素均可根据ANSFISO/DIN标准绘出机械 图纸,提供完整的尺寸标注及数据,具有绘图机接口。
・可实现离线编程和机器人任务的上调、下装,提供了十七种机器人控制 器语言的翻译器或编译器。
ROBCAD由六大模块组成:
机械设计、建模模块(Mechanical Modeling)
工作单元布置模块(WorkcellLayout)
任务描述模块(Task Description)
仿真模块(Simulation)
机械制图模块(Draftin91
数据管理模块(Data Management)
ROBCAD是交互式菜单驱动环境,它的全局监控菜单管理系统布局合理,
画面美观,好学易懂,使用方便,为用户提供了良好的人机交互界面。
工业机器人运动仿真及作业仿真系统 第一章绪论
但其价格昂贵,操作复杂,只能在SGI图形工作站,UNIX系统下运行。
这些原因使得该软件不利于在国内的中小企业推广应用。
1.4论文主要工作及系统结构
评定一个工业机器人仿真系统的好坏,看它是否满足如下的条件:
(1)具有良好的人机交互界面;
(2)仿真时各种参数以及仿真类型选择都是由用户通过人机对话方式进行,
通过改变参数,就可以对不同大小、功能的机器人进行仿真:
(3)系统的程序要实现模块化,便于软件移植、修改和扩展。
本文的主要工作就是要研究开发一种基本满足以上三个条件,且成本低廉、
具有实用价值和自主知识产权的商业化的机器人仿真系统。我们将此系统命名 为IRSS,IndustrialRobot Simulation System。
IRSS的编程语言为c++,编译器为MicrosoftVisual C++6.0(包含OpenGL API函数库),运行平台定位为W'mdows 98/2000/XP。
IRSS的总体结构见图1—2。系统采用模块化结构,具有一定的通用性和可 移植性。整个系统由机器人及环境图形建模,机器人语言,运动学正解逆解,
轨迹规划,碰撞检测,示教,系统帮助等模块组成。几个基本模块的功能分述 如下:
图1-2IRSS的总体结构
・机器人及环境图形建模模块:采用OpenGL和vC++相结合,生成机器 人及环境模型。该模块提供了OpenGL与AutoCAD的DXF图形文件和 Pro/Engineer的SLP图形文件的接口,便于系统充分利用现有的机器人模型资 源以及建立更为复杂、丰富的机器人环境模型。
・机器人语言模块:该模块是用户与仿真系统的接口,包括指令编辑和指 令解释两个子模块。它充分体现了仿真系统的功能和特色,是一种面向动作的 可编程的机器人语言。
・轨迹规划模块:该模块根据运动指令产生机器人的期望轨迹。在本系统 中轨迹规划的实现主要取决于机器人的控制方案和机器人指令。目前系统提供 三种主要的轨迹插补算法:①JMOVE.根据起点和终点,在关节变量空间采用 五次多项式插值,产生关节变量空间期望的轨迹:②LMOVE:根据起点和终点,
工业机器人运动仿真及作业仿真系统 第一章绪论
在笛卡儿空间进行线性插值,转换到关节变量空间;③C1MOVE/C2MOVE:根据 三个路径点,在笛卡儿空间进行圆弧插值,然后转换到关节变量空间。
・运动学模块:正运动学计算采用的是典型的D—H齐次变换的方法;逆运 动学计算采用解析法和迭代法相结合的算法,该算法具有较好的通用性。
・碰撞检测模块:在机器人环境中有可能发生碰撞的情况有几种:机器人 与机器人之间,机器人与环境中其他物体之间,机器人夹持器与被夹持物体之 间。图形仿真中通过两物体占有公共空间或彼此相互穿越来判定两物体之间是 否发生碰撞,其核心是空间几何体的求交算法。本系统采用改进的公共面法来 进行空间几何体的求交计算。
・示教模块:机器人仿真示教模块是模拟实际机器人示教盒设计的,它实 现了机器人示教盒的功能。不仅可以做单机器人的示教,还可以做双机器人的 示教,从而支持多机器人的仿真系统。多机器人示教仿真存在选择机器人的问 题,由于仿真程序无法同时对多个机器人进行示教,所以只能采取轮流示教的 方法。
・系统帮助模块:该模块提供系统操作及机器人指令说明的帮助文件。
目前阶段本系统以开链6R结构机器人为主要研究对象,如KAWASAKI公司 的Kawasaki FS06L型机器人和KUKA的KR3型机器人。
1.5本文结构
本文的组织结构是按模块的划分来确定的。
第二章介绍了机器人运动学正解及逆解理论,以及本系统所采用的算法。
第三章阐述了机器人及环境的3D图形建模方法。
第四章阐述了碰撞检测的基本理论及现有方法。在总结现有方法的基础上 提出了一种新的快速碰撞检测算法,实验表明该算法完全能满足实时仿真的要 求。
第五章首先论述了关节变量空间轨迹规划和笛卡儿空间轨迹规划的基本方 法,并研究了三种主要轨迹插补算法。接着对系统人机接口部分,即机器人指 令系统进行阐述。
第六章阐述了系统实现与应用。
第七章主要是对全文工作做了总结,并提出了现阶段工作中存在的问题以 及下一步工作的设想。
工业机器人运动仿真及作业仿真系统 第二章运动学模块
第二章运动学模块
机器人运动学是专门研究物体运动规律,而在研究中不考虑产生运动的力和 力矩,它涉及到运动物体的位置、速度、加速度和位置变量对时间的高阶导数。
机器人运动学可分为两类问题,正问题和逆问题。运动学正问题是关于给定 机器人各关节角度,要求计算机械手的位置与姿态的问题,其解是唯一的。运动 学逆问题是已知机械手的位置与姿态,求机器人对应于这个位置与姿态的全部关 节角的问题。运动学逆问题具有多解性。
2.1运动学正问题
2.1.1转动连杆坐标系的建立及连杆的Denavit-Hartenberg(D.H)参数弘”“J 连杆i坐标系设置在关节i+1上:五轴沿关节i+1运动轴线方向;Xi轴既垂 直于Z,轴,又垂直于Z.。轴,其正方向由关节i指向关节i+1:r轴由右手定则 确定,使{置v,z,}构成右手直角坐标系。
关于原点0。,当z。,z,相交时,由交点确定;当z。,Z.在空间交叉时,
由它们的公垂线与zf的交点确定;当z。,ZJ平行时,以互,z。的公垂线与互 的交点作为q,且使下一连杆的d。=0。
机器人基座坐标原点以连杆D表示,基座坐标系即连杆0坐标系
{DoXoKZo),它是固定不动的,用作其它连杆坐标系的参考系,并使Z0轴沿关 节l的轴方向。Oo的设置有任意性,为了方便起见,通常使00与01重合:若00 与0l不重合,可用一个固定的齐次变换阵将坐标系{1)和坐标系{0}联系起来。
在n自由度机器入的终端,固以连杆疗的坐标系{DoX。Kz0),常记以onoa。
由于机器人的主要功能之一是适当地操纵工具及夹持物体,故坐标系{疗}的原点 D。,通常由夹手夹持的工具的终点位置确定,或当夹持物体时,由夹手顶端的 正中位置(或物体中心)确定,统称工具坐标系。D。一旦确定,则可构成直角
坐标系{仉五艺z。}或onoa。其中单位向量西规定了接近物体的方向,称为接近
向量;单位矢量子规定了夹手的开台方向,称为姿态向量;单位矢量亓按右手定 则确定,亓=6×云,称为法向量。由于连杆月的终端不再有关节,故终端坐标系
{n}的位移矗和转角色都是相对z。轴出现的。通常dn≠0时,坐标系{n)与
{"一1)是两个平行的坐标系;不计d。,即an=0时,两个坐标系是重合的。
连杆的D-H参数:
盯。:连杆i的长度,是ZJ∥互公垂线段的长度;
口。:连杆f的扭角,过q点作z;一。//z。,z-绕x,轴转至互轴的转角;
di:连杆i相对连杆i—l的偏移,为沿z。轴的o■至o』(o』为公垂线与z。
轴的交点)的距离;
B:连杆,相对连秆f一1的转角,称为关节角,在与z。轴垂直的平面内度量。
角度口,,只的符号根据右手定则确定,d,的符号当丽沿z。轴正向时为
正,口总是正的。
工业机器人运动仿真及作业仿真系统 第二章运动学模块
2.1.2广义变换矩阵的建立
当全部连杆的坐标系确定之后,我们就可以按照以下顺序由两个旋转和平移 来建立相邻连杆i一1与i之间的相对关系。
(1)绕z。轴旋转只角,使Xi一。轴转到与X。同平面内:
(2)沿2。轴平移一距离4,把X。移到与X.同一直线上;
(3)沿i轴平移一距离a。,把连杆f—l的坐标系移到使其原点与连杆盯的坐 标系原点重合的地方;
(4)绕k。轴旋转口,。角,使:。转到与z,同一直线上。
用齐次变换矩阵4,即D—H矩阵来描述某局部坐标系相对前一坐标系的位 姿:
Ai=Rot(z,8,)TratL,(O,0,di)Trans(a,,0,O)Rot(x,(79,) (2—1)
展开上式可得:.
A=
cc—s【‘ca}
5I cI。cctj
0 sa
0 0.
si‘sct, cli‘el
—c。’sa。ai‘si
ca, 4
O 1
(2—2)
Gee, s,表示sj且(只),5口,示sin(a,),ci表示cos@),ca,,示cos(a。),下 同。则机器人手部位姿方程可表示为:
瓦=AlA2A3A4A5A6
.r/J ox M, Oy
行= O=
0 O
口,P。
a,P,
n:p:
0 1
(2-3)
其中,子为机器人手部接近矢量,石为手部姿态矢量,元为手部法向矢量, 面表 示手部位景在基准参考坐标系中的坐标。
2.1.3 Kawasald FS06L的运动学方程吲
KawasakiFS06L属于关节式机器人,6个关节都是转动关节。前三个关节确
定手腕参考点的位置,后3个关节确定手腕的方位。和大多数工业机器人一样,
后3个关节轴线交于一点。该点选作手腕的参考点,也选作为连杆坐标系{5,和
{6)的原点。各连杆坐标系如图所示,相应参数列于表l一1。其中al:100mm,
a,=750ram,口1=40mm,dj=430mm,d4=700mm,d6=100mm。
据式(2.2)和表1.1所示连杆参数,可求得各连杆变换矩阵如下:
cJ 0一‘al・c
5l 0 。I al・s
0一l 0 d.
0 O O 1
A2=
0 a2・。2
0 a2・s2
1 0
O 1
工业机器人运动仿真及作业仿真系统 第二章运动学模块
表2-I Kawasaki FS06L机器入的连杆参数
连杆i 变量0 i Ⅱi a・ 也
1 o l(900) .900 a1 dl
2 o 2(一900) Oo a2 O
3 0 3(Oo) 一900 a3 0
4 04(oD) 90。 O d2
5 e 5(00) 一900 O O
6 0
6(吩
00 0 d6A3=
A5=
C3 0
S3 0 0—1
O 0
C5 0
S5 0 0—1
O O
一毛 d3‘c3
q 吒‘屯
O O
0 1
—55 0
‘5 0 0 0
0 l
A4=
A6=
c4 0 S4 0
S4 0一C4 0
0 1 0 d4
0 0 0 1
C6--S6 0 0
S6 06 0 0
0 0 1 d6
O 0 0 1
据式(2-3)和上述各变换矩阵可求得机器人的r变换矩阵:
T=AlA2A34彳5以=
n。0, a,P,
ny o
y ny py
":0z 日:P:
O 0 0 1
玎』=(c1C23c4C5+屯S4c5一ClJ23J5)c6+(一clS4c23+5lc4)J6 盯v=(slS5c23c4一cIS4C5一占ls23占5)C6+(一毛j4c23一clc4)J6
":=(一c4s23C5一C23¥5)c6+¥23S4J6
ox=(一sIS5c23c5一s154c5+cls23S5)s6+(一c】S4c23+■cd)c6 ov=(-slS5C23c4+C1S4c5+SIs23S5)s6+(-s】S4c23一C1C4)c6 0:=(C4.923C5十C23S5)矗+J23s4吒
q 2一CtC23C4C5一SIS4如一CLS23C5
a,2一sis5c23c.1+cis4s5一sis23c5
d:2 c4s23s5一c23c5
Px=(一qc23c4C5一&J4S5一cts23C5)以+(一ClS23d4+a3C1C23+a2clc2十alcl)
Pv=(一Sls5c23c4+c】S4S5一Sis23岛)d6+(一SIS23d4+a3sIC23+02slC2+alS J)
P:=((c4s23J5一C23C5)d6+(一c23d4一a3s3+d】一(12S2)
q
(2—4)
_丁业机器人运动仿真及作业仿真系统 第二章运动学模块
Z
图2-1 FS06L机器人外形图
图2-2FS06L机器人的连杆坐标系
2.2运动学逆问题
2.2.1可解性的重要结论【24j
0
影=露-犁+君
(2.7)露.掣是把{口)坐标系中一向量掣转换成了原点与{口)坐标系原点重合,但与基
若由机器人位置向量导出臂的位置向量,便可确定臂的控制角鼋。、g:、吼。
[参1=[荔1+[三三]
c2,,一:,注意到多,方向与终端搡作装置接近方向西重合这一事实,而厅的方位由掣
的第三列给出,那么,可求出向量舀相对基坐标系的方位角妒及极角口为
P:d乜n(旦)
胁tall(3匾)
口1 口。(2—10)
(2-11)
工业机器人运动仿真及作业仿真系统 第二章运动学模块
因此芦,的分量为:
P。=眵。J・sin0・cos口)
P。=lp。l・sinO・sin妒 P。=in『・cos0
故臂的位置向量为:
帆J.sin0・cos《o 一¨p。|lsin0・sin口9
JP。|.cos
(2—12)
(2—13)
到此便转化为求解臂的运动学方程问题。对于确定的机器人结构形式来说,P,、
Py、P:、JP小口和妒均是已知的,于是己知臂位置lpo,%,儿J,便可以求出
臂的三个关节变量。
2.2.2.2腕关节变量吼、q,、q。的解
从腕运动学方程求解可得到启示,若由机器人方位矩阵豆?导出腕的方位矩阵 时,便可确定腕的关节变量94、q,、q。。
由于
故有
掣=(彤)~・《=(Ro)7.甜
(2,14)式中—掣为已知;(胃)’是臂关节变量的函数。在求得吼、g:、口,以后也是已知 的。故ji,可以计算出来,到此便转化成求解腕的运动学方程问题了。
2.2.2.3用臂、腕分离法求解机器人运动学逆解的步骤
①确定终端操作装置接近向量的极角护和方位角舻;
②利用p,妒求臂向量P。的分量;
‘
③利用P。的分量计算臂控制变量g】、q:、q,;
④利用qI、q2、q,来求解腕控制变量q。、q5、q。。
2.2.3迭代法求逆运动学解[26-29]
本文以文献【26】中提出盼方法为基础,在实际应用中对其进行了适当的修正 和完善。将6自由度机器人分解为位置结构和姿态结构两部分。前3个自由度组 成位置结构,后3个自由度组成姿态结构。本课题所讨论的位置结构为RRR(关
节型)型。
2.2.3.1机器人结构分析
一般情况下,机器人的前3个关节主要影响末端工作点的位置,后3个关节 决定工具坐标系的姿态,各关节坐标系之间采用标准的D—H矩阵:
2
●Lr___●J_●J--‘E-________J
r
,
f
p
_.......,,。..........,..LP尸
=
],,●●●●●●●j 甜
掣
血
p p
-.........。,.....。,...,,Lp
工业机器人运动仿真及作业仿真系统 第二章运动学模块
c}一sl。cal
st c・。ca・
0 s岱
0 0
5。‘s ol。
一q‘sa,
ca,
O
尺i是4中表示姿态转换的3x3子矩阵。
设末端工作点位姿以。瓦表示,则
。瓦=彳14243—44—6=
at?cl
a}?sl
Z
1
nx oJ
ny oy
nz Dz
0 0
2K
nt。c
q’J d
1
nx pl
ay Py a=P:
O 1
将机器人分解为位置结构和姿态结构,从(2.16)可以得到 位置结构:
姿态结构
掣^降∽:]
l;儿J l轨J
R4・R5・民=(Ri・R2・e3)-1・0R6 为书写简便,记
;Px=p:,:P,=pj,:P:=p:
:P,=n,:Py=py,:P:=见
(2—15)
(2—16)
(2—17)
(2-181
对于普通机器人结构,根据(2-17),(2,18)3莲替迭代可得到整个机器人的逆解。
2.2.3.2位置结构综合 由(2—17)式可得
铋似-『;i:]Y 协J lP;J p∽
其中关节变量为最,岛,03,将(2一15)式代入(2—19)并展开得到
C2C3—52如c口2
¥2C3+C2S3CG[2
屯占d2 O
—C2J3C口3一s2c3ca2ca3+52sa2sa3
一s2s3cL'z3+C2C3c口2C口3一C2Sa2S口3 C3co'38d2+co'2Sa3
O
c2s3sa3+¥2C3C(!Z2Sa3+S2c盘3SCC]
s2s3sa3一C2C3Ca2Sa3一C2^口2CO']
一C3S口2S0'3+C口2COY3 0
工业机器人运动仿真及作业仿真系统
苎三兰.垄型兰堡塑
…记
clP』+stpj,一aI
(一stP,+C1P,)cal+(p:一d1)sa】
◇{p,一qP。)sat+(P:一dI)c口1
1
19。Pj+a3
flo=Pvc口3一P:sa3
k=(p'ycCt3+p'ca3+G)ca2+d2
17=一(p≯口3+p:cct3+d3)sct2
,l 219C3一lloS3+d2
,2=Gs3+floc3)ca2+,7
13=Pxcl+PvSl—a1
f4=(一P。置+P,c1)cal+(p:一dDsctI Z5=(P,S1一P,c1)sal+(P:一d1)cal 18=(19s3+kC3)sa2+16
其中ll,12,矗与变量岛有关,f,,,。和z,R-与o,:gYe。
‘c2—12s2=13
f152+12c2=Z4
(f9屯+,loC3)SO:2+16=15 由(2.21)和(2.22)可得
f(,?+,;)c:=,・屯+z:f-
lul2+勃s:=,,14—12『3
(2-20)
由(2—20)可知:
(2—21)
f2-22)
f2—23)
f2—24)
即已知‘~。可以完全确定幺 又记
,ll=2【『lo(,7c口2+16sa2)十盘2‘J zt2=2【f9(Lca吐十,≯口2)一吒?Io J
‘。=d;+蘑十碍+譬+磕一b?+(p:一吐)2+p:+p;】
,】4=7l南+,12S3+k
115=18一(p。一dt)cai
式(2—21),(2-22),(2-23)两边对应求和得
Ⅱ;+,孟+g+碍+露+2(19(1Tca2+,6sa2)-a2110)岛+2(1【o(,7Ca2+&sOt2)+d2,9)c】
14
r。iiiiiijiiii。ii址
C S 口 d
+
+
%峨嘎 如如%
十 一
乒
2
2
d 1 a
口
叩叩即
}是吒芦 吼q,
一
+
Ⅱ
吒如q勺 q q
T业机器人运动仿真及作业仿真系统
———— 一
一笙三量堡垫堂楚墨
:p;+p;+(p。一d,)2+日;-2a1(cIP,+sip。)
即有
一2al(C1P,+_P,)=亿 又由f2—23)式可得
(BSl—PycI)SO'1=,l5
其中‘。,‘,与以无关。
下面对(2—25)和(2.26)分四种情况考虑
(2—25)
(2-26)
①虞+砖=o时
此时,式(2・23)只含有岛变量,求得岛后再利用(2.22)求得只,然后将矾,
岛代入(2-21)式校验算式是否成立,若成立,则岛,岛及任意得鼠为逆解,否则 无解,这种情况即使存在逆解也是奇异解。
②定+p:≠0以及al・5,t2-I≠0
利用(2.25)汞a(2—26)式得到
加得
q
2南<一百Ii4驴告蹦
驴焘卜薯。+扣 Q删
由于714 lI,只与岛有关,每~个幺值唯一地确定q,X,J(2—27)两式平方相
砖蝎2=(却2+(鲁)2
化简整理得
boc;+bls;+62岛屯+63c3+64岛+6,:0
其中记:
60=(旦)2+(丝旦)z
Zal J口,
6】:(善)z+(19sct2)z
2口, St27i
也2等+警
驴等+掣势
也一28)
f2—29)
工业机器人运动仿真及作业仿真系统
笙三童垩垫兰垡垫一——
”等+警
如=(鲁)2+(鲁)2
显然k,都是与01,02无关的常数。
③P:+p;≠0,J口1≠0,al=0
由(2.25)式可知
114=fIlc3+f12而+f】3=0 (2-30)
求得氓后利用(2.23)获得只。式(2一.30)可能包含岛的两个解,又可能从式
(2—23)获得两个Ol,这两者组合可能得到四个相异的02。
④P:+P;≠0,aj≠0,80:1=o的情况
利用(2.23)式
U9屯+‘oq)s口2+,6一(.艮一d1)cal=0 (2・31)
由上式获得B,然后根据(2—25)式求解g,这两者组合可能得到四个相异的
⑤强=s盘。=O的情况不能形成三维的工作空间。
2.2.3.3姿态结构综合
『正。
l:五,1
T=@LR2R,)。oR6=i疋l%气I
(2-32)[五t
五:正,J
R;民=盯T
(2-33)陉--85C盘:5斟C5S010 0:蔷6斟
l
J5 c5c口5 — 50凡
c6c口6 一c6摹口6l=
J s“5 c口5 jl Jd6 c口6 j
怯。。。麓。陋芝2scq ij篙4嚣峨托凳:纠
7"22笼}
所以有
C5C6一SsS6Ca5 2Zllq+毛S4
5
f2—34)
工业机器人运动仿真及作业仿真系统 第二章运动学模块
¥5C6+如s6c口j=(一互IS4+疋lc4)ca4+瓦ls口4 (2-35)
SG5S6=(正154一正lC4)sa4+五lCOt'4 (2-36)
一C5S6Ct76一¥5C6COt5COt6-t-S5Sot5sa6=矗2C4+砭2S4 (2-37)
一¥5S6Ca6+C5C6COt5Ca6一c,口js口6=(一正2S4+疋2C4)ca4+L2s口t (2—38)
C6s口5Ca6+c口5SOZ6=(正2S4一疋2C4)sa4+正2Ca'4 (2-39)
C5S6SCl6+SfC6CtT95s口6"I-s5S口sCa6=正3C4+正3s4 (2.40)
¥5S6j口6一C5C6ca55伍6一C5sa5ca6=(一互3‘+疋3C4)ca4+五3s94 (2-41)
一C6SGt5占口6+c口5c口6=(互3S4一疋3C4)sa4+正3Ca'4 (2,-42)
由于姿态结构5瓯≠0,s瓯≠0,以上九个方程中,只有三个方程相互独 立,下面分两种情况讨论。
①当ic口。f≥1/2时
由(2.36),(2.39)两式可得
{s6:=HIs4。++H2,c4++H风3c6
【=H4s4+5+风
H C4 (2-43)…1其中
啊:翌墅,H::一墨丝,H3:堡垒
SCt5 S口5 5口5
H。:玉堕,H,:一生堕,H6-—T32COE"4--—C(Z5Sa6
SCtsCC96¥CZ5C/7/6 SasCC96
由此得到
Foc:+Es;+‘s4C4+Ec4+F,s4+E=0 (2-44)
其中
Fo=Hj+Hj,曩=H;+Hj,F2=强H1H2+H
4H0E=2(H2H3+日5H6),只=2(日lH,+风日6),只=H;+日:一t
这样,从式(2—44)可求得只,然后从式(2—43)求得敬。随后,可以从方程组 中(2—34)--(2—35),(2—37)--(2—38),(2-40)--(2—41)的任意一组中求俄。为了减小舍 入误差对精度的影响,应尽量避免分母中出现很小绝对值的数,对三组方程组作 相同处理,取分母绝对值最大的一组。
②k瓯f<V2的情况
在①求解纯的过程中,以(2-42)式代替式(2.39),其余同①的求解过程。
2.2.3.4迭代过程
①取初值哦=0。,酸=0。,敬=0。。
工业机器人运动仿真及作业仿真系统 第二章运动学模块
②根据
P,
●
py
p:
1
A4A5A6 (2—45)
以及(2)节内容求解前三个关节变量。
式(2-4s)eel;n,》,,》:y为末端参照点在工具坐标系内的位置。
③根据(2.18)式及(3)节内容求解后三个关节变量。
④利用新得到的只,0,,06代入(2—45)式重新计算喊,pj,P:y。判断与原位置
的偏差,达到精度则停止迭代,获得解。否则返回步骤(2)以新得到的点重复上述 过程。
2.2.3.5FS06L机器人逆解算的实例分析
表2.2是笛卡儿坐标系下6个规划点的位置与姿态。表2—3为算法得出的每 个规划点在关节空间中的关节角。表2-4为数值逆解算法得到的机器人经驱动后 所到达的实际位置与姿态角。表2.5为实际位置在关节空间中的关节角。
表2-2笛卡儿坐标系下6个规划点的位置与姿态角
X(m/!q) Y(Ⅱ皿) Z(InlTl) 0(o) A(。) T(o)
1199.253296 .63.057369 666.152954 177.610031 —119.128746 10.14733】
1154919067 222.693527 915.694397 190 901733 —96.096245 23.061069 737.972107 968.742981 864 770081 232.681732 -96.052460 22.719864
217.866074 630.132202 1737.784424 208 421005 —27.016140 80.333130
902.325500 .586.349976 345.044037 127 450066 -117.067917 28.320402
l061.995850 -180.662827 322 244080 145.719467 -102.498940 25.190001
表2-3每个规划点在关节空间的关节角
0.(o) O,(o) 03(o) Oa(o) 0;(o) 0^(o)
.3.058496 57.384377 —0.308947 .8,756633 3.838777 】8.559】93
10.9】5055 66.261955 4.724854 0.059270 12.916954 23.004719 52.702126 62.035736 6.654989 0,077059 15.256834 22.647675
『73.702156 89 035736 39.654987 33.077057 36256836 10 647675
.31.297844 47.035736 .】7345013 33,077057 36.256836 l0.647675
.7.297844 44.035736 .17.345013 33.077057 54.256836 10.647675
T业机器人运动仿真及作业仿真系统 第二章运动学模块
表2.4机器入经驱动后所达到的实际位置与姿态
X(mnq) Y(mm) Z(mm) O(o) A(o) T(o)
】】99.253296 -63.056824 666.152893 177.610062 一119.12876】 10.147334
1154.919189 222.693268 9l 5.694397 190 901718 —96.096252 23.061 062
737.971 680 968.743469 864.770081 232.681763 —96 052460 22.71 9864
217.865723 630.131714 1737.784546 208.420975 —27.016】23 80.333168
902.325684 —586.349915 345.044098 127 450073 -117.067902 28.320406
】061.995850 .180.662888 322.244110 145.719467 —102.498932 25.190002
表2-5机器人经驱动后所达到的实际位置在关节空间的关节角
O,(o) 02(q) 03(o) Oa(o) 05(o) 06(o)
I一3.058470 57.384373 -o.308950 —8.756634 3.838776 18 559196 10.915043 66.261955 4.724853 0.059263 12.916949 23.004719
【52 702136 62.035738 6.654990 0.077061 15.256834 22.647677
73.702171 89.035767 39.654980 33.077057 36256836 1 0.647675
—31,297840 47.035732 .1 7.345001 33 077057 36.256836 10.647675
.7.297848 44.035736 .17.345013 33.077057 54.256847 10.647675
2.2。4运动学逆解多解性的问题
在逆运动学的通用解算法中,对于三角方程的求解过程采用万能替换公式,
即令t=tan(O/2),则
sin0:三,cos0:墨,tanO:三
1+t‘ l+t‘ 1一f‘
这样在式(2.29),(2-44)的求解过程中都将出现一元四次方程。而这些 解和其它方程组合将产生更多的解的组合。
为了使机器人在正确的工作空间按预定的轨迹运动,我们必须剔除多余的 解。在本课题的系统中,我们采用以下方法剔除多余解:
(1)根据关节运动空间限制来选择合适的解。
FS06L机器人各个关节的运动范围为:JTI:3200,JT2:245。,JT3:5200,JT4:
5400,JT5:2900,JT6:7200。当解出的关节角超过这些范围时将被首先剔除。
(2)选择一个最接近的解
为了使机器人运动具有连续性和平稳性,当它具有多解时,应选择最接近 上一时刻的解。
(3)逐级剔除多余解对于具有n个关节的机器人,它的全部解将构成树形 结构,为了简化处理,逐级剔除多余解。
在系统中,我们采用如下流程来保证各关节运动的连续性。
工业机器人运动仿真及作业仿真系统 第二章运动学模块
2.3本章小结
——一一.1I...........一
机器人逆解算法求解各关节角b[]
将所求值与各关节的 运动空间相比较,剔 除不符合要求的解c[]
比较a口和c[]中对应自 关节角,取与a[]中最 接近的作为输出d[]
N
≤≤;言未》堡i宣塑
操作是否结束2>。2二—12
将d口中的值赋 予a[]
图2-3解决运动学逆解多解性的流程
本章主要以&娟,ASAⅪ公司的FS06L机器人为原型探讨了机器人运动 学的正解和逆解的相关算法。并给出了算法应用的实侈|1分析,表明本系统所采用 的算法基本符合要求。最后对运动学逆解的多解性给出了解决方案。
工业机器人运动仿真及作业仿真系统 第三章机器人及环境图形建模
第三章机器人及环境图形建模
3.1
OpenGL的功能及其建模实现过程
OpenGL即Open Graphics Library是一种开放式图形库技术,它是一种高性 能图形和交互式视景处理软件,已成为三维图形开发的标准。本节将简要介绍 OpenGL技术的功能和特点,以及使用MFC开发OpenGL应用程序的技术。
3.1.1OpenGL的功能及其基本工作流程1301
OpenGL是一种图形软件接1:3,它提供了基本几何对象的建模、坐标变换、
融合、反走样、光照和纹理等功能,用户可以方便地利用oI脚GL创建出接近
光线跟踪地高质量静止或动画的三维彩色图像,而且要比光线跟踪算法快一个数 量级,但用OpenGL对物体建模需要从基本的几何体素(点、线、三角形和多边 形)开始,实现复杂物体的建模非常困难。因此对于复杂物体的建模,我们采用 OpenGL和AutoCAD、Pro-Engineer等图形软件相结合的技术。
OpenGL的主要功能有:
・几何建模:在OpenGL中提供了绘制点,线,多边形等基本形体的函数,
还提供了绘制复杂三维曲线,曲面(如Bezier,Nurbs等)和三维形体(如球,锥 体和多面体等)的函数。由于OpenGL是以顶点为图元,由点构成线,由线及其 拓扑结构构成多边形。所以应用这些建模函数,可以构造出几何所有的三维模型。
・坐标变化:包括取景,模型变换,投影变换和视区变换。
・颜色模式设置: RGBA模式和颜色索引模式。
・光照和材质设置:可设置四种光,即辐射光,环境光,镜面光和漫反射 光。材质用模型变面的反射特性表示。
・图像功能:提供像素拷贝和读写操作的函数,还提供了反走样,融合和 雾化等,以增强图像效果。
・纹理映射:OpenGL的纹理映射功能可十分逼真地再现物体表面的细节。
・实时动画:利用OpenGL的双缓存(Double Buffer)技术可获得平滑逼 真的动画效果。
・交互技术:方便的三维图形交互接口(选择,拾取,反馈),可进行人 机交互操作。
OpenGL利用双缓存技术实现动画效果。双缓存是指在显示过程中有前台和 后台两个缓存,在显示前台缓存内容中的~帧画面时,后台缓存正在绘制下一帧 画面,绘制完成以后,进行前后台的缓存交换,原来后台缓存中绘制的内容当作 前台内容来显示,而原来的前台缓存现在成为后台缓存,绘制下一帧画面内容,
这样循环往复,在屏幕上显示的总是已经绘制好的图形,在视觉效果上不会有停 顿感和闪烁,就形成了平滑过渡的动画效果。
OpenGL的操作次序如图3—1所示。几何数据(顶点、直线以及多边形)经 历了包括求值程序和各项顶点操作等在内的操作过程,与此同时,像素数据(像
工业机器人运动仿真及作业仿真系统 第三章机器人及环境图形建模
素、图像及位图)也经历了不同的处理过程。在将最终的像素数据写入帧缓存之 前,几何数据和像素数据都要经过光栅化以及片元操作。
所有的数据,不管是描述几何体的数据还是描述像素的数据,都要存储在 显示列表中或者直接对其进行处理。当执行显示列表时,从显示列表中发送出去
的数据,就好像从应用程序中发送的数据一样。
所有的几何图元最终都是由顶点来描述的。如果使用了求值程序,那些数 据就被转化为顶点,在此之后,就被当作顶点来处理。另外,顶点数据也可能被 保存在指定的顶点数组中,或者是使用在顶点数组中指定的顶点。各顶点计算是
图3.1 OpenGL212作流程
在每个顶点处进行的,接下来经过光栅化处理,将其变成片元。对于像素数据,
在执行像素操作后,其结果或者存储在纹理内存中,用于多边形点画,或者被光 栅化成片元。最后,这些片元要经过一系列的、对其中的每个片元的操作,之后 将最终的像素写入帧缓存。
3.1.2使用MFC开发OpenGL应用程序plJ
由于OpenGL的作用机制是客户(Client)服务器(Server)机制,由客户
(用OpenGL绘制图形的应用程序)向服务器(OpenGL内核)发送OpenGL命 令,服务器则负责解释这些命令。在多数情况下,客户和服务器在同一机器上运 行,当然,也可以在网络环境下使用,所以OpenGL具有网络透明性,与在Win32 下的图形设备接口(GDI)把图形函数库封装在动态的连接库GDl32.DLL内一 样,OpenGL的图形库也被封装在一个动态连接库OpenGL32.DLL内。从客户应 用程序发布的对OpenGL函数的调用首先被OpenGL32.DLL处理,然后传送给 服务器后,被Winsrv.dll进一步处理,再传给Win32设备驱动接口(DDI),最后 把处理过的图形命令送给视频显示驱动程序。图3.2显示了整个处理过程。
使用MFC开发OpenGL应用程序的步骤为:
(1)新建一个MFC工程,添加OpenGL函数库OpenGL32.1ib、glu32.1ib和 glaux.1ib到工程中。