第3章机器人轨迹规划3.1机器人轨迹规划概述3.1.1机器人轨迹的概念机器人轨迹泛指工业机器人在运动过程中的运动轨迹,即运动点的位移、速度和加速度。机器人在作业空间要完成给定的任务,其手部运动必须按一定的轨迹进行。轨迹的生成一般是先给定轨迹上的若干个点,将其经运动学反解映射到关节空间,对关节空间中的相应点建立运动方程,然后按这些运动方程对关节进行插值,从而实现作业空间的运动要求,这一过程通常称为轨迹规划。本章仅讨论在关节空间或笛卡尔空间中工业机器人运动的轨迹规划和轨迹生成方法。机器人运动轨迹的描述一般是对其手部位姿的描述,此位姿值可与关节变量相互转换。控制轨迹也就是按时间控制手部或工具中心走过的空间路径。3.1.2轨迹规划的一般性问题机器人的作业可以描述成工具坐标系{T}相对于工件坐标系{S}的一系列运动。例如,图3.1所示将销插入工件孔中的作业可以借助工具坐标系的一系列位姿Pi(i=1,2,…,n)来描述。这种描述方法不仅符合机器人用户考虑问题的思路,而且有利于描述和生成机器人的运动轨迹。图3.1机器人将销插入工件孔中的作业描述用{T}相对于{S}的运动来描述作业路径是一种通用的作业描述方法。它把作业路径描述与具体的机器人、手爪或工具分离开来,形成了模型化的作业描述方法,从而使这种描述既适用于不同的机器人,也适用于在同一机器人上装夹不同规格的工具。有了这种描述方法就可以把如图3.2所示的机器人从初始状态运动到终止状态的作业看做是工具坐标系从初始位置{T0}变化到终止位置{Tf}的坐标变换。显然,这种变换与具体机器人无关。一般情况下,这种变换包含了工具坐标系位置和姿态的变化。图3.2机器人的初始状态和终止状态在轨迹规划中,为叙述方便,也常用点来表示机器人的状态,或用它来表示工具坐标系的位姿。更详细地描述运动时不仅要规定机器人的起始点和终止点,而且要给出介于起始点和终止点之间的中间点,也称路径点。这时,运动轨迹除了位姿约束外,还存在着各路径点之间的时间分配问题。机器人的运动应当平稳,不平稳的运动将加剧机械部件的磨损,并导致机器人的振动和冲击。为此,要求所选择的运动轨迹描述函数必须连续,而且它的一阶导数(速度),有时甚至二阶导数(加速度)也应该连续。轨迹规划既可以在关节空间中进行,也可以在直角坐标空间中进行。在关节空间中进行轨迹规划是指将所有关节变量表示为时间的函数,用这些关节函数及其一阶、二阶导数描述机器人预期的运动;在直角坐标空间中进行轨迹规划是指将手爪位姿、速度和加速度表示为时间的函数,而相应的关节位置、速度和加速度由手爪信息导出。3.1.3轨迹的生成方式(1)示教-再现运动。这种运动由人手把手示教机器人,定时记录各关节变量,得到沿路径运动时各关节的位移时间函数q(t);再现时,按内存中记录的各点的值产生序列动作。(2)关节空间运动。这种运动直接在关节空间里进行。由于动力学参数及其极限值直接在关节空间里描述,所以用这种方式求最短时间运动很方便。(3)空间直线运动。这是一种直角空间里的运动,它便于描述空间操作,计算量小,适宜简单的作业。(4)空间曲线运动。这是一种在描述空间中用明确的函数表达的运动,如圆周运动、螺旋运动等。3.1.4轨迹规划涉及的主要问题为了描述一个完整的作业,往往需要将上述运动进行组合。通常这种规划涉及到以下几方面的问题:(1)对工作对象及作业进行描述,用示教方法给出轨迹上若干个结点。(2)用一条轨迹通过或逼近结点,此轨迹可按一定的原则优化,如加速度平滑得到直角空间的位移时间函数X(t)或关节空间的位移时间函数q(t);在结点之间如何进行插补,即根据轨迹表达式在每一个采样周期实时计算轨迹上点的位姿和各关节变量值。(3)以上生成的轨迹是机器人位置控制的给定值,可以据此并根据机器人的动态参数设计一定的控制规律。(4)规划机器人的运动轨迹时,需明确其路径上是否存在障碍约束的组合。一般将机器人的规划与控制方式分为四种情况,如表3.1所示。本章主要讨论连续路径的无障碍轨迹规划方法。3.2插补方式分类与轨迹控制3.2.1插补方式分类点位控制(PTP控制)通常没有路径约束,多以关节坐标运动表示。点位控制只要求满足起终点位姿,在轨迹中间只有关节的几何限制、最大速度和加速度约束;为了保证运动的连续性,要求速度连续,各轴协调。连续轨迹控制(CP控制)有路径约束,因此要对路径进行设计。路径控制与插补方式分类如表3.2所示。表3.2路径控制与插补方式分类路径控制不插补关节插补(平滑)空间插补点位控制PTP(1)各轴独立快速到达。(2)各关节最大加速度限制(1)各轴协调运动定时插补。(2)各关节最大加速度限制连续路径控制CP(1)在空间插补点间进行关节定时插补。(2)用关节的低阶多项式拟合空间直线使各轴协调运动。(3)各关节最大加速度限制(1)直线、圆弧、曲线等距插补。(2)起停线速度、线加速度给定,各关节速度、加速度限制3.2.2机器人轨迹控制过程机器人的基本操作方式是示教-再现。对于有规律的轨迹,仅示教几个特征点,计算机就能利用插补算法获得中间点的坐标,如直线需要示教两点,圆弧需要示教三点,通过机器人逆向运动学算法由这些点的坐标求出机器人各关节的位置和角度(1,…,n),然后由后面的角位置闭环控制系统实现要求的轨迹上的一点。继续插补并重复上述过程,从而实现要求的轨迹。机器人轨迹控制过程如图3.3所示。图3.3机器人轨迹控制过程3.3机器人轨迹插值计算给出各个路径结点后,轨迹规划的任务包含解变换方程,进行运动学反解和插值计算。在关节空间进行规划时,需进行的大量工作是对关节变量的插值计算。3.3.1直线插补直线插补和圆弧插补是机器人系统中的基本插补算法。空间直线插补是在已知该直线始末两点的位置和姿态的条件下,求各轨迹中间点(插补点)的位置和姿态。下面介绍位置插补原理,如图3.4所示。已知直线始末两点的坐标值P0(X0,Y0,Z0)、Pe(Xe,Ye,Ze)及姿态。这些已知的位置和姿态通常是通过示教方式得到的。设v为要求的沿直线运动的速度;ts为插补时间间隔。直线长度ts间隔内行程d=vts;插补总步数N为L/d+1的整数部分;各轴增量各插补点坐标值3.3.2圆弧插补一、平面圆弧插补平面圆弧是指圆弧平面与基坐标系的三大平面之一重合,以XOY平面圆弧为例。已知不在一条直线上的三点P1、P2、P3及这三点对应的机器人手端的姿态,如图3.5及图3.6所示。图3.5由已知的三点P1、P2、P3决定的圆弧图3.6圆弧插补设v为沿圆弧运动速度;ts为插补时时间隔。类似直线插补情况计算出:(1)由P1、P2、P3决定的圆弧半径R。(2)总的圆心角=1+2,即(3)ts时间内角位移量θ=tsv/R,据图3.4所示的几何关系求各插补点坐标。(4)总插补步数(取整数)N=/θ+1对Pi+1点的坐标,有式中:Xi=Rcosθi;Yi=Rsinθi。同理有由θi+1=θi+θ可判断是否到插补终点。若θi+1,则继续插补下去;当θi+1时,则修正最后一步的步长θ,并以表示,,故平面圆弧位置插补为二、空间圆弧插补空间圆弧是指三维空间任一平面内的圆弧,此为空间一般平面的圆弧问题。空间圆弧插补可分三步来处理:(1)把三维问题转化成二维,找出圆弧所在平面。(2)利用二维平面插补算法求出插补点坐标(Xi+1,Yi+1)。(3)把该点的坐标值转变为基础坐标系下的值,如图3.7所示。图3.7基础坐标与空间圆弧平面的关系通过不在同一直线上的三点P1、P2、P3可确定一个圆及三点间的圆弧,其圆心为OR,半径为R,圆弧所在平面与基础坐标系平面的交线分别为AB、BC、CA。建立圆弧平面插补坐标系,即把ORXRYRZR坐标系原点与圆心OR重合,设ORXRYRZR平面为圆弧所在平面,且保持ZR为外法线方向。这样,一个三维问题就转化成平面问题,可以应用平面圆弧插补的结论。求解两坐标系(图3.7)的转换矩阵。令TR表示由圆弧坐标ORXRYRZR至基础坐标系OX0Y0Z0的转换矩阵。若ZR轴与基础坐标系Z0轴的夹角为,XR轴与基础坐标系的夹角为θ,则可完成下述步骤:①将XRYRZR的原点OR放到基础原点O上;②绕ZR轴转θ,使X0与XR平行;③再绕XR轴转角,使Z0与ZR平行。这三步完成了XRYRZR向X0Y0Z0的转换,故总转换矩阵应为欲将基础坐标系的坐标值表示在ORXRYRZR坐标系,则要用到TR的逆矩阵:3.3.3定时插补与定距插补由上述可知,机器人实现一个空间轨迹的过程即是实现轨迹离散的过程,如果这些离散点间隔很大,则机器人运动轨迹与要求轨迹可能有较大误差。只有这些插补得到的离散点彼此距离很近,才有可能使机器人轨迹以足够的精确度逼近要求的轨迹。模拟CP控制实际上是多次执行插补点的PTP控制,插补点越密集,越能逼近要求的轨迹曲线。插补点要多么密集才能保证轨迹不失真和运动连续平滑呢?可采用定时插补和定距插补方法来解决。一、定时插补从轨迹控制过程知道,每插补出一轨迹点的坐标值,就要转换成相应的关节角度值并加到位置伺服系统以实现这个位置,这个过程每隔一个时间间隔ts完成一次。为保证运动的平稳,显然ts不能太长。由于关节型机器人的机械结构大多属于开链式,刚度不高,ts一般不超过25ms(40Hz),这样就产生了ts的上限值。当然ts越小越好,但它的下限值受到计算量限制,即对于机器人的控制,计算机要在ts时间里完成一次插补运算和一次逆向运动学计算。对于目前的大多数机器人控制器,完成这样一次计算约需几毫秒。这样产生了ts的下限值。当然,应当选择ts接近或等于它的下限值,这样可保证较高的轨迹精度和平滑的运动过程。以一个XOY平面里的直线轨迹为例说明定时插补的方法。设机器人需要的运动轨迹为直线,运动速度为v(mm/s),时间间隔为ts(ms),则每个ts间隔内机器人应走过的距离为PiPi+1=vts可见两个插补点之间的距离正比于要求的运动速度,两点之间的轨迹不受控制,只有插补点之间的距离足够小,才能满足一定的轨迹精度要求。机器人控制系统易于实现定时插补,例如采用定时中断方式每隔ts中断一次进行一次插补,计算一次逆向运动学,输出一次给定值。由于ts仅为几毫秒,机器人沿着要求轨迹的速度一般不会很高,且机器人总的运动精度不如数控机床、加工中心高,故大多数工业机器人采用定时插补方式。当要求以更高的精度实现运动轨迹时,可采用定距插补。二、定距插补v是要求的运动速度,它不能变化,如果要两插补点的距离PiPi+1恒为一个足够小的值,以保证轨迹精度,ts就要变化。也就是在此方式下,插补点距离不变,但ts要随着不同工作速度v的变化而变化。这两种插补方式的基本算法相同,只是前者固定ts,易于实现,后者保证轨迹插补精度,但ts要随之变化,实现起来比前者困难。3.3.4关节空间插补在关节空间中进行轨迹规划,需要给定机器人在起始点和终止点手臂的位形。对关节进行插值时应满足一系列的约束条件,例如抓取物体时手部的运动方向(初始点)、提升物体离开的方向(提升点)、放下物体(下放点)和停止点等结点上的位姿、速度和加速度的要求;与此相应的各个关节位移、速度、加速度在整个时间间隔内的连续性要求以及其极值必须在各个关节变量的容许范围之内等。满足所要求的约束条件之后,可以选取不同类型的关节插值函数,生成不同的轨迹。常用的关节空间插补有以下方法:1、三次多项式插值2、过路径点的三次多项式插值3、高阶多项式插值4、用抛物线过渡的线性插值一、三次多项式插值在机器人运动过程中,若末端执行器的起始和终止位姿已知,由逆向运动学即可求出对应于两位姿的各个关节角度。末端执行器实现两位姿的运动轨迹描述可在关节空间中用通过起始点和终止点关节角的一个平滑轨迹函数(t)来表示。为实现系统的平稳运动,每个关节的轨迹函数(t)至少需要满足四个约束条件,即两端点位置约束和两端点速度约束。端点位置约束是指起始位姿和终止位姿分别所对应的关节角度。(t)在时刻t0=0时的值是起始关节角度0,在终端时刻tf时的值是终止关节角