焊接机器人技术与系统轨迹_第1页
焊接机器人技术与系统轨迹_第2页
焊接机器人技术与系统轨迹_第3页
焊接机器人技术与系统轨迹_第4页
焊接机器人技术与系统轨迹_第5页
已阅读5页,还剩137页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1轨迹规划插补方法与轨迹控制焊接机器人规划焊接机器人编程第四章焊接机器人轨迹规划与编程

4.1机器人轨迹规划24.1.1机器人轨迹的概念机器人轨迹泛指工业机器人在运动过程中的运动轨迹,即运动点的位移、速度和加速度。机器人在作业空间要完成给定的任务,其手部运动必须按一定的轨迹(Trajectory)进行。轨迹的生成一般是先给定轨迹上的若干个点,将其经运动学反解映射到关节空间,对关节空间中的相应点建立运动方程,然后按这些运动方程对关节进行插值,从而实现作业空间的运动要求,这一过程通常称为轨迹规划。机器人运动轨迹的描述一般是对其手部位姿的描述,此位姿值可与关节变量相互转换。控制轨迹也就是按时间控制手部或工具中心走过的空间路径。4.1.2轨迹规划的一般性问题通常将机器人的运动看作是工具坐标系{T}相对于工件坐标系{S}的运动。这种方法既适合各种机器人,也适用于同一机器人装夹的各种工具。P2P:点到点运动CP:连续路径运动障碍约束有无路径约束有离线无碰撞路径规则+在线路径跟踪离线路径规划+在线路径跟踪无位置控制+在线障碍探测和避障位置控制34轨迹规划器可形象地看成为一个黑箱(图4‑1),其输入包括路径的“设定”和“约束”,输出的是操作臂末端执行器部的“位姿序列”,表示手部在各离散时刻的中间形位。轨迹规划既可在关节空间,也可在直角空间中进行,但是所规划的轨迹函数都必须连续和平滑,使得操作臂的运动平稳。4.1.3轨迹的生成方式5(1)示教-再现运动:这种运动由人手把手示教机器人,定时记录各关节变量,得到沿路径运动时各关节的位移时间函数q(t);再现时,按内存中记录的各点的值产生序列动作。(2)关节空间运动:这种运动直接在关节空间里进行。由于动力学参数及其极限值直接在关节空间里描述,所以用这种方式求最短时间运动很方便。(3)空间直线运动:这是一种直角空间里的运动,它便于描述空间操作,计算量小,适宜简单的作业。(4)空间曲线运动:这是一种在描述空间中用明确的函数表达的运动,如圆周运动、螺旋运动等。4.2插补方式分类与轨迹控制

4.2.1插补方式分类6点位控制(PTP控制)通常没有路径约束,多以关节坐标运动表示。点位控制只要求满足起终点位姿,在轨迹中间只有关节的几何限制、最大速度和加速度约束;为了保证运动的连续性,要求速度连续,各轴协调。连续轨迹控制(CP控制)有路径约束,因此要对路径进行设计。7路径控制与插补方式分类如表4.2所示。路径控制不插补关节插补(平滑)空间插补点位控制PTP(1)各轴独立快速到达。(2)各关节最大加速度限制(1)各轴协调运动定时插补。(2)各关节最大加速度限制连续路径控制CP(1)在空间插补点间进行关节定时插补。(2)用关节的低阶多项式拟合空间直线使各轴协调运动。(3)各关节最大加速度限制(1)直线、圆弧、曲线等距插补。(2)起停线速度、线加速度给定,各关节速度、加速度限制4.1.1机器人规划的基本概念8

所谓机器人的规划(P1anning),指的是——机器人根据自身的任务,求得完成这一任务的解决方案的过程。这里所说的任务,具有广义的概念,既可以指机器人要完成的某一具体任务,也可以是机器人的某个动作,比如手部或关节的某个规定的运动等。9

为说明机器人规划的概念,我们举下面的例子:

在一些老龄化比较严重的国家,开发了各种各样的机器人专门用于伺候老人,这些机器人有不少是采用声控的方式.比如主人用声音命令机器人“给我倒一杯开水”,我们先不考虑机器人是如何识别人的自然语言,而是着重分析一下机器人在得到这样一个命今后,如何来完成主人交给的任务。10

首先,机器人应该把任务进行分解,把主人交代的任务分解成为“取一个杯子”、“找到水壶”、“打开瓶塞”、“把水倒人杯中”、“把水送给主人”等一系列子任务。这一层次的规划称为任务规划(Taskplanning),它完成总体任务的分解。然后再针对每一个子任务进行进一步的规划。以“把水倒入杯中”这一子任务为例,可以进一步分解成为“把水壶提到杯口上方”、“把水壶倾斜倒水入杯”、“把水壶竖直“、“把水壶放回原处”等一系列动作,这一层次的规划称为动作规划(MotionP1anning),它把实现每一个子任务的过程分解为一系列具体的动作。为了实现每一个动作,需要对手部的运动轨迹进行必要的规定,这是手部轨迹规划(Handtrajectoryplanning

)。为了使手部实现预定的运动,就要知道各关节的运动规律,这是关节轨迹规划(Jointtrajectoryplanning)。最后才是关节的运动控制(Motioncontrol)。11

上述例子可以看出,机器人的规划是分层次的,从高层的任务规划,动作规划到手部轨迹规划和关节轨迹规划,最后才是底层的控制(见图)。在上述例子中,我们没有讨论力的问题,实际上,对有些机器人来说,力的大小也是要控制的,这时,除了手部或关节的轨迹规划,还要进行手部和关节输出力的规划。智能化程度越高,规划的层次越多,操作就越简单。对工业机器人来说,高层的任务规划和动作规划一般是依赖人来完成的。而且一般的工业机器人也不具备力的反馈,所以,工业机器人通常只具有轨迹规划的和底层的控制功能。12取一个杯子找到水壶打开水壶把水倒入杯中把水送给主人给主人倒一杯水提起水壶到杯口上方把水壶倾斜把水壶竖直把水壶放回原处手部从A点移到B 点关节从A点移到B点图智能机器人的规划层次13

轨迹规划的目的是——将操作人员输入的简单的任务描述变为详细的运动轨迹描述。

例如,对一般的工业机器人来说,操作员可能只输入机械手末端的目标位置和方位,而规划的任务便是要确定出达到目标的关节轨迹的形状、运动的时间和速度等。这里所说的轨迹是指随时间变化的位置、速度和加速度。14

简言之,机器人的工作过程,就是通过规划,将要求的任务变为期望的运动和力,由控制环节根据期望的运动和力的信号,产生相应的控制作用,以使机器人输出实际的运动和力,从而完成期望的任务。这一过程表述如下图所示。这里,机器人实际运动的情况通常还要反馈给规划级和控制级,以便对规划和控制的结果做出适当的修正。人机接口规划控制机器人本体要求的任务期望的运动和力实际的运动和力控制作用图机器人的工作原理示意图15

上图中,要求的任务由操作人员输入给机器人,为了使机器人操作方便、使用简单,必须允许操作人员给出尽量简单的描述。上图中,期望的运动和力是进行机器人控制所必需的输入量,它们是机械手末端在每一个时刻的位姿和速度,对于绝大多数情况,还要求给出每一时刻期望的关节位移和速度,有些控制方法还要求给出期望的加速度等。16定义:如果规定一个机器人从A点经过B点运动到C点而不强调时间的概念,那么这一过程中的位形序列就构成了一条路径。如果我们强调到达其中任意一点的时间,那么这就是一条轨迹。我们可以看出轨迹和路径的区别就在于轨迹依赖速度和加速度。§5.1

路径与轨迹17对于PTP(点到点运动)控制:通常只给出机械手末端的起点和终点,有时也给出一些中间经过点,所有这些点统称为路径点。应注意这里所说的“点”不仅包括机械手末端的位置,而且包括方位,因此描述一个点通常需要6个量。通常希望机械手末端的运动是光滑的,即它具有连续的一阶导数,有时甚至要求具有连续的二阶导数。不平滑的运动容易造成机构的磨损和破坏,甚至可能激发机械手的振动。因此规划的任务便是要根据给定的路径点规划出通过这些点的光滑的运动轨迹。18对于CP控制:对于弧焊、研磨、抛光等曲面作业,不仅要规定起始点和终止点,还要规定中间整个运动过程。对于一段连续运动过程,理论上无法精确实现,实际上是选取一定数量(满足轨迹插补精度)的点作为中间点,从而近似实现沿给定的路径运动。这种运动称为连续路径运动或轮廓运动(CP)机械手末端的运动轨迹是根据任务的需要给定的,但是它也必须按照一定的采样间隔,通过逆运动学计算,将其变换到关节空间,然后在关节空间中寻找光滑函数来拟合这些离散点.最后,还有在机器人的计算机内部如何表示轨迹,以及如何实时地生成轨迹的问题。障碍约束轨迹规划

19轨迹规划问题又可以分为关节空间的轨迹规划和直角空间的轨迹规划。4.1.2关节空间法关节空间法首先将在工具空间中期望的路径点,通过逆运动学计算,得到期望的关节位置,然后在关节空间内,给每个关节找到一个经过中间点到达目的终点的光滑函数,同时使得每个关节到达中间点和终点的时间相同,这样便可保证机械手工具能够到达期望的直角坐标位置。这里只要求各个关节在路径点之间的时间相同,而各个关节的光滑函数的确定则是互相独立的。特点:在机器人运动的过程中,状态是不可知的,但计算量较小,不会出现奇异点。§4.3轨迹规划的基本原理20

关节空间的轨迹规划原理

AB特点:轨迹不规则,末端走过的距离不均匀,且各关节不是同时到达。非归一化运动计算起点和终点的关节变量,各关节都以最大角速度运动

212.归一化运动在1的基础上对关节速率做归一化处理,使各关节同时到达终点。AB特点:各关节同时到达终点,轨迹各部分比较均衡,但所得路径仍然是不规则的。22下面具体介绍在关节空间内常用的两种规划方法1)三次多项式函数插值

考虑机械手末端在一定时间内从初始位置和方位移动到目标位置和方位的问题。利用逆运动学计算,可以首先求出一组起始和终了的关节位置.现在的问题是求出一组通过起点和终点的光滑函数。满足这个条件的光滑函数可以有许多条,如下图所示:23显然,这些光滑函数必须满足以下条件:同时若要求在起点和终点的速度为零,即:那么可以选择如下的三次多项式:作为所要求的光滑函数。式4-3中有4个待定系数,而该式需满足式4-1和4-2的4个约束条件,因此可以唯一地解出这些系数:(4-3)(4-2)(4-1)24(4-4)25例:设机械手的某个关节的起始关节角θ0=150,并且机械手原来是静止的。要求在3秒钟内平滑地运动到θf=750时停下来(即要求在终端时速度为零)。规划出满足上述条件的平滑运动的轨迹,并画出关节角位置、角速度及角加速度随时间变化的曲线。解:根据所给约束条件,直接代入式(4-4),可得:a0=15,a1=0,a2=20,a3=-4.44所求关节角的位置函数为:对上式求导,可以得到角速度和角加速度(4-5)(4-6)(4-7)26根据式(4-5)~(4-7)可画出它们随时间的变化曲线如下图所示。由图看出,速度曲线为一抛物线,加速度则为一直线。利用三次多项式规划出的关节角的运动轨迹272)五次多项式轨迹规划原理同3次多项式加速度曲线可以更加平滑283)抛物线过渡的线性函数插值用一条直线将起点与终点连接起来。简单的线性函数插值将使得关节的运动速度在起点和终点处不连续,它也意味着需要产生无穷大的加速度考虑在起点和终点处,用抛物线与直线连接起来,在抛物线段内,使用恒定的加速度来平滑地改变速度29如果机器人关节以恒定速度运动,那么轨迹方程就相当于一次多项式,其速度是常数,加速度为0,这说明在起点和终点,加速度为无穷大,只有这样才可以瞬间达到匀速状态。但很显然这是不可能的,因此在起点和终点处,可以用抛物线来进行过渡。如图所示30显然,这是抛物线运动段的加速度是一常数,并在公共点A和B上产生连续的速度。将边界条件代入抛物线段的方程,得到:从而给出抛物线段的方程为:假设ti和

tf时刻对应的起点和终点位置为和,抛物线与直线部分的过渡段在时间tb和tf-tb处是对称的,因此可得:31显然,对于直线段,速度将保持为常值,它可以根据驱动器的物理性能来加以选择。将零出速度、线性段常值速度以及零末端速度代入和中,可以得到A、B点以及终点的关节位置和速度如下:

32显然,不能大于总时间的一半,否则在整个过程中将没有直线运动段而只有抛物线加速和抛物线减速段。由上式可以计算出对应的最大速度。应该说明,如果运动段的初始时间不是0而是,则可采用平移时间轴的办法使初始时间为0。终点的抛物线段是对称的,只是其加速度为负。因此可表示为:由上式可以求解过渡时间:进而由上式可以解得过渡时间:3334例题:若已知某关节以速度=10度/秒在5秒内从初始角运动到目的角。求解所需的过渡时间并绘制位置、速度和加速度曲线。解:代入相应公式可得到曲线如下图所示:35364)具有中间点及用抛物线过渡的线性运动轨迹采用各种运动间过渡方法来避免时走时停的运动后面详细介绍5)高次多项式运动轨迹采用多次高项式(计算量大)在轨迹不同的运动段采用不同的低次多项式,然后把它们平滑过渡的连在一起(替代方法)374.1.3直角坐标空间法

前面介绍的在关节空间内的规划,可以保证运动轨迹经过给定的路径点。但是在直角坐标空间,路径点之间的轨迹形状往往是十分复杂的,它取决于机械手的运动学机构特性。在有些情况下,对机械手末端的轨迹形状也有一定要求,如要求它在两点之间走一条直线,或者沿着一个圆弧运动以绕过障碍物等。这时便需要在直角坐标空间内规划机械手的运动轨迹.直角坐标空间的路径点,指的是机械手末端的工具坐标相对于基坐标的位置和姿态.每一个点由6个量组成,其中3个量描述位置,另外3个量描述姿态。

在直角坐标空间内规划的方法主要有:定时插补和定距插补。38特点:路径可控且可预知,计算量大,容易出现奇异点2直角坐标空间规划的基本原理将轨迹分成若干段,使机器人的运动经过这些中间点,在每一点都求解机器人的关节变量,直到到达终点。39轨迹穿过机器人自身关节值突变解决方法:指定机器人必须通过的中间点来避开障碍物或其他奇异点40不同的直角坐标空间轨迹的规划方法特点:关节角非均匀变化,末端沿已知路径行走。AB1.两点直线运动首先画出路径,接着将路径n等分,分别计算到达各点所需的关节变量。41为减少实时计算量,示教完成后,可求出:1)直线长度4)各轴增量为:

各插补点坐标值

式中:i=0,1,2,…,N。插补总步数ts间隔内行程d=vts;422.在1的基础上,考虑各关节的加速减速时间,为防止在加速期间轨迹落后于设想的轨迹,在划分分界点时,如果是直线轨迹,就按照方程划分。曲线轨迹就相对复杂一些。433.多点曲线运动(1)从A向B先加速,再匀速,接近B时再减速,从B到C再重复。为避免这一过程中不必要的停止动作,可将B点两边的动作进行平滑过渡。机器人先抵达B点,然后沿着平滑过渡的路径重新加速,最终抵达并停止在C点。44(2)考虑到由于采用了平滑过渡曲线,机器人经过的可能不是原来的B点,可事先设定一个不同的B’’点,使曲线正好经过B点。45(3)在B点前后各加过渡点D,E,使得B点落在DE上。46圆弧插补设v为沿圆弧运动速度;ts为插补时时间隔。类似直线插补情况计算出:(1)由P1、P2、P3决定的圆弧半径R。(2)总的圆心角

=

1+

2,其中47实际上,所有用于关节空间轨迹规划的方法都可用于直角坐标空间的轨迹规划。最根本的差别在于,直角坐标空间轨迹规划必须反复求解逆运动学方程来计算关节角对于关节空间轨迹规划,规划函数生成的值就是关节值,直角坐标空间轨迹规划函数生成的值是机器人末端手的位姿,他们需要通过求解逆运动学方程化为关节量。48以上过程可以简化为如下的计算循环:(1)将时间增加一个增量t=t+(2)利用所选择的轨迹函数计算出手的位姿(3)利用机器人逆运动学方程计算出对应手位姿的关节量(4)将关节信息送给控制器49起点构型Tf和终点构型Ti之间的总变换R可通过下面的方程进行计算:在工业应用中,最实用的轨迹是点到点之间的直线运动,但也经常碰到多目标点(例如有中间点)间需要平滑过渡的情况。为实现一条直线轨迹,必须计算起点和终点位姿之间的变换,并将该变换划分许多小段。50至少有以下三种不同方法可用来将该总变换化为许多的小段变换。

(1)希望在起点和终点之间有平滑的线性变换,因此需要大量很小的分段,从而产生了大量的微分运动。利用上一章导出的微分运动方程,可将末端手坐标系在每个新段的位姿与微分运动、雅可比矩阵及关节速度通过下列方程联系在一起。51这一方法需要进行大量的计算,并且仅当雅可比矩阵逆存在时才有效。(2)在起点和终点之间的变换分解为一个平移和两个旋转。平移是将坐标原点从起点移动到终点,第一个旋转是将末端手坐标系与期望姿态对准,第二个旋转是手坐标系绕其自身周转到最终的姿态。所有这3个变换同时进行。52(3)在起点和终点之间的变换R分解为一个平移和一个K轴的旋转。平移仍是将坐标原点从起点移动到终点,而旋转则是将手臂坐标系与最终的期望姿态对准。两个变换同时进行。53例5.6一个两自由度平面机器人要求从起点(3,10)沿直线运动到终点(8,14)。假设路径分为10段,求出机器人的关节变量。每一根连杆的长度为9英寸。解:直角坐标空间中起点和终点间的直线可描述为:中间点的坐标可以通过将起点和终点的x,y坐标之差简单地加以分割得到,然后通过求解逆运动学方程得到对应每个中间点的两个关节角。或者54#XY131018.810923.510.419104.03410.819.5100.444.511.220.295.85511.621.390.965.51222.585.77612.424.180.186.512.82674.29713.228.267.8107.513.630.860.71181433.952.85556例5.7

:四自由度KLD机器人要求从起点(335,0,-160)沿直线运动到终点(300,70,-180)。假设路径分为5段,求出机器人的关节变量。连杆1和连杆2的长度分别为200mm和135mm,连杆3的行程为60mm,并绘制出这些角度值。解:直角坐标空间中起点和终点间的直线可描述为:57在求解本题时,可将起点与终点之间5等分。通过求解逆运动学方程既可算得每个中间点的三个关节角,由于第四个关节的变化对直线轨迹规划没有影响,所以在此不予考虑。

#XYZ关节1关节2关节313350-160000232814-1646.95893-23.41-4332128-1687.98353-32.3875-8431442-1727.83891-38.714-12530756-1766.99198-43.5157-16630070-1805.62889-47.2214-2058直角坐标空间轨迹规划之连续轨迹记录方法59有时机器人为了完成某些复杂的或轨迹(喷涂或复杂工件的焊接)难以用直线或其他高次多项式来描述的任务,可以①首先示教机器人如何运动,同时记录这些运动数据,②然后回放所记录的运动并执行该运动。在整个运动过程中都必须不断地采样并记录关节量,③此后通过回放采样数据并驱动机器人的关节来驱动使机器人跟踪所记录的轨迹,从而完成所规划的任务。

——前面所讲的示教回放机器人特点:所需的编程和计算量较少,但需要精确执行、采样和记录所有的运动;每当部分运动需要改变时就必须重新示教编程。60上述机器人规划,尤其是机器人轨迹规划,是根据轨迹选择合适的速度、加速度等,达到机器人的一个平滑运动。实际应用当中,机器人的控制器已经能快速地实现上述运动规划,控制机器人的运动。对于用户来说,一般只需告诉机器人的规划轨迹,而这是通过对机器人进行编程来实现。以电弧焊为例61机器人编程必然涉及到机器人语言,机器人语言是是一种高级编程语言,它通过对机器人动作的描述,使机器人按照编程者的意图进行各种操作机器人语言操作系统包括三个基本操作状态:监控状态;编辑状态;执行状态。6263下面所示代码中,MainModule模块中使用了例行程序draw_square(画方块),而后者作为一个通用的例行程序,被定义在figures_module模块中,可被任何程序调用。而figures_module模块中还包含draw_triangle(画三角形)、draw_circle(画圆)等例行程序。MODULEMainModule...draw_square;...ENDMODULE

MODULEfigures_modulePROCdraw_square()...ENDPROCPROCdraw_triangle()...ENDPROCPROCdraw_circle()...ENDPROCENDMODULE64PERStooldatatPen:=...!定义工具数据CONSTrobtargetp10:=...!定义一个目标点

PROCmain()!主例行程序,由此处开始运行!调用例行程序draw_squaredraw_square100;!draw_square的参数为100draw_square200;draw_square300;draw_square400;ENDPROC!主例行程序结束PROCdraw_square(numside_size)!定义的例行程序draw_squareVARrobtargetp20;!定义目标点p20,p30,p40。VARrobtargetp30;VARrobtargetp40;

!p20issettop10withanoffsetontheyvaluep20:=Offs(p10,0,side_size,0);!根据p10偏移获得p20点位置p30:=Offs(p10,side_size,side_size,0);!根据p10偏移获得p30点位置p40:=Offs(p10,side_size,0,0);!根据p10偏移获得p40点位置

MoveLp10,v200,fine,tPen;!移动到p10点MoveLp20,v200,fine,tPen;!移动到p20点MoveLp30,v200,fine,tPen;!移动到p30点MoveLp40,v200,fine,tPen;!移动到p40点MoveLp10,v200,fine,tPen;!移动到p10点ENDPROC!定义的程序结束4.5.1数据类型

65数据类型分为变量(VAR)、常量(CONST)和保持型变量(PERS)。常量不能被改变,而保持型变量在程序关闭后其值不变。此外,之前所定义的工具坐标系、工件坐标系、示教目标点、位姿、输入输出等在RAPID中都是一种数据类型。面向焊接还有一些特殊的数据类型:如Seamdata,welddata和weavedata等。4.5.2编程指令664.5.2.1控制程序流程的指令IF指令为条件指令;TEST指令为变量选择指令;FOR、WHILE用于实现循环;GOTO为跳转指令;其他还有一些返回、停止和退出指令。VARnumtime:=62.3;!定义数值变量并赋值VARboolfull_speed:=TRUE;!定义布尔变量并赋值PROCmain()!main程序IFtime>60THEN!条件循环IFfull_speedTHENTPWrite"Examinewhytheproductionisslow";!示教器上显示ELSETPWrite"Increaserobotspeedforfasterproduction";ENDIFENDIFENDPROC!For循环VARnumsum:=0;FORiFROM1TO50DOsum:=sum+i;ENDFOR!WHILE循环VARnumsum1:=0;VARnumi1:=0;WHILEsum1<=100DOi1:=i1+1;sum1:=sum1+i1;ENDWHILE67TESTCASE指令,相当于C++中的SWITCHCASE或Basic中的SelectCase语句TESTreg1!检测reg1的值CASE1,2,3:!值为1,2或3时,执行routine1例程routine1;CASE4:!值为4时,执行routine2例程routine2;DEFAULT:!其他值时,示教器上显示非法选择,程序停止TPWrite"Illegalchoice";Stop;!ENDTEST4.5.2.2运动指令68MovL表示直线移动,MovC表示圆弧移动,MovJ表示跳转,MovJAbs表示绝对位置跳转。StopMove停止运动,StartMove继续运动。对外轴的控制包括DeactUnit、ActUnit等指令。69(1)MovL指令是将机器人从当前点沿直线移动到目标点,其语法如下:MoveLToPointSpeedZoneTool;ToPoint是目标点,是一个robtarget类型的常量CONSTrobtargetp10:=[[600,-100,800],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];Speed是一个speeddata类型的常量,如v5表示5mm/s,v100表示100mm/s,vmax表示机器人的最大速度。Zone表示一个角点区域,其数据类型为zonedata。若其值为fine,则表示机器人会精确到达指定的目标点。若其值为z10,则表示机器人在距离目标点小于10mm时会拐弯指向下一目标点。Tool表示机器人的工具坐标系,其数据类型为一个tooldata。机器人默认的工具坐标系为tool0,若安装焊枪,则变为焊枪的工具坐标系。通过逼近/接近减少运动时间7071MoveLp10,v1000,z50,tool0;MoveLp20,v1000,fine,tool0;Procmain()MoveLp10,v50,fine,tool0;MoveLp20,v50,z50,tool0;MoveLp30,v50,z50,tool0;MoveLp40,v50,z50,tool0;MoveLp10,v50,fine,tool0;EndProc;72MovJ指令是通过关节空间规划到达目标点迅速地从当前点移动到另一个点,两点之间的路径不一定是直线。其指令与MovL很类似,如下所示。MoveJToPointSpeedZoneTool;7374MovC指令是表示机器人的TCP点将从当前点沿着圆弧运动到目标点,显然,命令中还需要制定一个中间点。其命令格式如下:MoveCMidPointToPointSpeedZoneTool;与MoveL指令相比,多了一个MidPoint表示圆弧中间点,其余参数与MoveL含义相同,MoveLp10,v500,fine,tPen;MoveCp20,p30,v500,fine,tPen;MoveLp40,v500,fine,tPen;7576(4)MoveAbsJ指令,和MovJ指令类似,移动机器人轴和外部轴到一个绝对轴位置,该命令不受工具和工件影响。常用于机器人的复位。(5)StopMove和StartMove指令;StopMove用于暂停机器人,StartMove用于将StopMove暂停的机器人继续运动。如以下示例,程序被停止,直到ready_input被赋值为1。StopMove;WaitDIready_input,1;StartMove;77(6)DeactUnit、ActUnit指令,分别完成关闭单元和激活单元功能。以下范例中,track_motion单元在机器人运动到p20和p30时将保持静止,之后机器人和track_motion单元一起运动到p40。MoveLp10,v100,fine,tool1;DeactUnittrack_motion;MoveLp20,v100,z10,tool1;MoveLp30,v100,fine,tool1;ActUnittrack_motion;MoveLp40,v100,z10,tool1;4.5.2.3I/O控制指令78I/O信号被用于机器人与协同操作设备之间进行通讯。数字输入由外部设备写入,数字输出由机器人输出到外部设备。此外TPWrite,TPReadFK和TPReadNum是用于与机器人示教器FlexPendant通讯。(1) Set数字信号置位指令用于将数字输出DO置位为1。如Setdo15;!将数字输出do15置位(值为1)。(2) Reset数字信号复位指令用于将数字输出DO复位为0。如Resetdo15;!将数字输出do15复位(值为1)。(3)SetDO可以设置数字输出的值,并具有时间延迟和同步操作的功能。如下所示:SetDOdo15,1;!信号do15被设置为1。SetDOweld,off;!信号weld被设置为off。SetDO\SDelay:=0.2,weld,high;!信号weld0.2s后被设置成high,程序继续执行下一条指令。SetDO\Sync,do1,0;!信号do1被设置成0。程序等待信号被设定成指定值后才继续执行。(4)SetAO改变模拟输出信号,其格式为SetAOSignalValue,如下所示,SetAOao2,5.5;!设置ao2模拟输出的值为5.5。SetAOweldcurr,curr_outp;!设置weldcurr模拟输出的值为curr_outp的当前值。此外,还有SetGo命令可以设置信号组合的值。79(5)WaitDI,WaitDO,WaitAO,WaitAI,WaitGI,WaitGO信号判断指令,程序只有等到指定信号的值为指定值时,程序才继续程序。WaitDIdi4,1;!程序只有等到di4数字输入值为1才继续执行。WaitDOgrip_status,0;!程序只有等到grip_status数字输出值为0才继续执行。WaitAOao1,\GT,5;!程序只有等到ao1模拟输出信号值大于5才继续执行。WaitAIai1,\LT,5;!程序只有等到ai1模拟输入信号值小于5才继续执行。(6)WaitUntil指令用于等待其中的逻辑条件满足。WaitUntildi4=1;!程序只有等到di4数值输入被置位才继续执行。WaitUntil\Inpos,di4=1;!程序只有等到机器人到达停止点,且di4数值输入为1才继续执行。WaitUntilstart_input=1ANDgrip_status=1\MaxTime:=60\TimeFlag:=timeout;!程序只有等到start_input为1且grip_status=11才继续执行,最大等到时间60s,否则报错。80(7)IsignalAI,IsignalAO,IsignalDI,IsignalDO,IsignalGI,IsignalGO指令,信号达到某个条件时,触发中断。如以下范例:(还可参考7.2.1.4节范例)VARintnumsig1int;!定义int变量PROCmain()!主例行程序CONNECTsig1intWITHiroutine1;!将变量与iroutine1绑定 ISignalAI\Single,ai1,AIO_BETWEEN,1.5,0.5,0,sig1int;!若模拟输入ai1的值在0.5~1.5之间则触发中断程序iroutine1。中断仅在第一触发时产生。4.5.2.4焊接指令81arcStart,arcL,arcEnd等指令用于实现带焊接的移动。而Seamdata,Welddata和Weavedata等三种数据类型用于定义焊接过程的相关参数。Welddata是焊接时需要使用的数据,主要包括焊接速度、送丝速度(电流)和焊接电压。Weavedata是定义焊接过程中的摆动参数,主要包括摆动宽度、摆动高度和摆动偏差,8283Seamdata用于控制焊接开始和结束阶段,也用于焊接中断后的重新启动。主要包括清理喷嘴时间、提前/滞后送气时间、引弧电流、送丝速度、引弧电压、移动滞后时间、填弧时间、填弧电压等。84(1)arcLStart和ArcCStartarcLStart用于将机器人直线移动到目标点,在目标点处开始焊接,作为焊接的起点,同时控制焊接过程的开始和结束阶段的参数,并连续监控焊接过程。其指令格式如下:ArcLStartToPoint[\ID]SpeedSeamWeld[\Weave]ZoneTool[\WObj][\Corr][|Track][\SeamName][\T1][\T2][\T3][\T4][\T5][\T6][\T7][\TLoad][]中表示可选项。ToPoint表示开始焊接的目标点;Speed表示焊接速度;Seam表示焊接开始和结束阶段的焊接参数;Weld表示焊接阶段的焊接参数;[\Weave]表示摆动方式;Zone表示接近目标点的方式;Tool表示工具坐标系;[\WObj]表示工件坐标系;ArcCStart表示工具TCP点沿着圆弧运动到目标点,并在目标点处引弧作为焊接起点。同时,也在指令中规定了焊接开始、中间和结束阶段的参数,甚至摆动参数等。85(2)ArcL和ArcCArcL用于沿着直线焊接。ArcC用于沿着圆弧焊接。ArcL格式如图4‑20所示。ArcC与ArcL不同在于ArcC要制定一个中间点,用于确定圆弧。86(3)arcLEnd和arcCEndarcLEnd表示焊枪沿着直线焊接移动到目标点,并熄弧作为焊接终点;arcCEnd表示焊枪沿着圆弧焊接移动到目标点,并熄弧作为焊接终点。(4)焊缝跟踪指令在焊接过程中还可以使用焊缝跟踪。如果系统设定为使用视觉跟踪器,则焊接指令中的可选项[\Track]应被使用,以使用Trackdata来确定路径。如果不使用[\Track]则焊缝跟踪功能不被激活。如下述指令中添加了“\Track:=track1”。87MoveJp10,v100,z10,torch;ArcLStartp20,v100,sm1,wd1,wv1,fine,torch;ArcCp30,p40,v100,sm1,wd1,wv1,z10,torch;ArcLp50,v100,sm1,wd1,wv1,z10,torch;ArcCp60,p70,v100,sm1,wd2,wv1,z10,torch;ArcLEndp80,v100,sm1,wd2,wv1,fine,torch;MoveJp90,v100,z10,torch;4.5.3示教编程的准备88“示教”就是机器人学习的过程,在这个过程中,操作者要手把手教会机器人做某些动作,机器人的控制系统会以程序的形式将其记忆下来。机器人按照示教时记忆下来的程序展现这些动作,就是“再现”过程。4.5.3.1虚拟编程示教器的使用89首先,新建空白工作站,如图2‑19所示。其次,引入机器人IRB1600(10kg,1.45m)再次,构建机器人系统,选择从布局构建,如图2‑28所示。在图2‑28e中,确认选择secondlanguage下的“644-5Chinese”,Applicationarc下的“633-1arc”。前者确保示教盒中会添加中文支持,或者确保拥有焊接相关选项。若使用点焊,则需要选择Applicationspot下的相关选项。再次,在控制器正常启动后,如图4‑23所示,在“控制器”标签页①,点击示教器图标②,在下拉菜单中选择“虚拟示教器”③,会弹出虚拟示教器。与实际示教器不同的是,在虚拟示教器上配置了一个控制柜面板④,点击后会弹出一个模仿机器人控制柜的面板,可以切换机器人操作模式,设置电机状态,这样就可以在虚拟环境下完成相关功能。90中文界面的设置914.5.3.2使用示教器移动机器人924.5.3.3示教器工具坐标系的定义93944.5.3.4工件坐标系的构建95(a)工件坐标系由用户框架和对象框架组成(b)三点法定义用户框架(e)三点法定义工件(对象)框架964.5.4示教器编程974.5.4.1创建数据984.5.4.2创建程序模块994.5.4.3示教器编程1001014.5.5离线编程与仿真的流程1024.5.6RobotStudio的轨迹规划4.5.6.1创建目标点1031044.5.6.2创建轨迹105(1)通过“空路径”创建轨迹106(2)通过“自动路径”创建轨迹107108图4‑39通过“物体边界”创建曲线原理109图4‑40表面边界方式创建曲线110图4‑41自动路径方式生成轨迹111图4‑42自动路径实例图4‑43生成的目标点及工具112图4‑44修改焊枪位置113图4‑45修改工件坐标系位置和目标点114图4‑46检测目标点的到达能力4.5.6.3起始点和结束点的添加在焊接中,自动轨迹一般生成的是焊接的目标点和路径。一般还需要添加起始点和结束点。即焊接前焊枪的位置和焊接结束后焊枪的位置。常用的方法可以是通过手动移动方式将焊枪移动到开始和结束位置,然后点击“基本”标签页上的“示教目标点”命令来记录该目标点。另外一种方式是复制原有的开始和结束目标点,然后修改名称、设定其位置来完成,如图4‑47a所示。该目标点可以添加到已有的自动路径中,如图4‑47b所示。115116图4‑47添加开始点和结束点(a)添加start目标点(b)添加start目标点到已有自动路径4.5.6.4焊接指令的添加1174.5.6.5焊接路径的仿真118119本章小结:轨迹规划既可在关节空间进行也可在直角坐标进行。在两种空间的许多方法可以通用。直角坐标空间的轨迹规划比较直观,但是较难计算和规划。对于已指定的路径(如直线)必须在直角空间进行规划才能实现。如果没有指定机器人的路径,则关节空间的轨迹规划更容易计算。1204.1.5路径的描述前面讨论了在给定路径点的情况下如何规划出运动轨迹的问题。但是还有一个如何描述路径点并以合适的方式输入给机器人的问题。最常用的方法便是利用机器人语言。用户将要求实现的动作编成相应的应用程序,其中有相应的语句用来描述轨迹规划,并通过相应的控制作用来实现期望的运动。4.2机器人控制综述121机器人控制的基本目的:

告诉机器人要做什么;

机器人接受命令,并形成作业的控制策略;

保证正确完成作业;

通报作业完成情况。机器人控制系统的特点1221)机器人有若干个关节,典型工业业机器人有5至6个关节。每个关节由一个伺服系统控制,多个关节的运动要求各个伺服系统协同工作。2)机器人的工作任务是要求操作机的末端执行器进行空间点位运动或轨迹运动。对机器人运动的控制,需要进行复杂的坐标变换运算,以及矩阵函数的逆运算。3)机器人的数学模型是一个多变量、非线性和变参数的复杂模型,各变量之间还存在着耦合,因此机器人的控制中经常使用前馈、补偿、解耦、自适应等复杂控制技术。4)较高级的机器人要求对环境条件、控制指令进行测定和分析,采用计算机建立庞大的信息库,用人工智能的方法进行控制、决策、管理和操作,按照给定的要求自动选择最佳控制规律。机器人控制系统的功能

123(1)伺服控制功能

该功能主要是指机器人的运动控制,实现机器人各关节的位置、速度、加速度等的控制。(2)运算功能

机器人运动学的正运算和逆运算是其中最基本的部分。对于具有连续轨迹控制功能的机器人来说,还需要有直角坐标轨迹插补功能和一些必要的函数运算功能。在一些高速度、高精度的机器人控制系统当中,系统往往还要完成机器人动力学模型和复杂控制算法等运算功能。(3)系统的管理功能

①方便的人机交互功能。②具有对外部环境(包括作业条件)的检测和感觉功能。⑤系统的监控与故障诊断功能。机器人控制的特点124机器人的控制问题是与其运动学和动力学问题密切相关从控制观点看,机器人系统代表冗余的、多变量和本质上非线性的控制系统,同时又是复杂的耦合动态系统。每个控制任务本身就是一个动力学任务。在实际研究中,往往把机器人控制系统简化为若干个低阶子系统来描述。机器人控制方法的分类125

根据不同的分类方法,机器人控制方式可以有不同的分类。下图是一种常用的分类方法。从总体上,机器人的控制方式可以分为动作控制方式和示教控制方式。按照被控对象来分,可以分为位置控制、速度控制、加速度控制、力控制、力矩控制、力和位置混合控制等等。无论是位置控制或速度控制,从伺服反馈信号的形式来看,又可以分为基于关节空间的伺服控制和基于作业空间(手部坐标)的伺服控制。126127128举例:关节伺服控制这是以关节位置或关节轨迹为目标值的控制形式。下图给出了关节伺服系统的构成。若目标值以关节位移给出,则如下图所示,各关节可以独立构成伺服系统,十分简单。第i轴第i轴目标值︵轨迹︶生成第i关节伺服系统1294.3机器人控制系统的一般构成对于一个具有高度智能的机器人,它的控制实际上包含了“任务规划”、“动作规划”、“轨迹规划”和基于规模的“伺服控制”等多个层次130机器人首先要通过人机接口获取操作者的指令(示教工具输入或者键盘输人),然后机器人对控制命令进行解释理解,任务规划。动作规划。轨迹规划。关节运动的伺服控制。131机器人控制系统的硬件构成(1)132机器人控制系统的硬件构成(2)133PUMA560机器人控制系统机器人控制系统的功能、组成134基本功能构成

·记忆功能:存储作业顺序、运动路径、运动方式、运动速度和与生产工艺有关的信息。·示教功能:离线编程,在线示教,间接示教。在线示教包括示教盒和导引示教两种。·

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论