一种用于大型重载机械臂的四重精度补偿方法与流程

文档序号:15590768发布日期:2018-10-02 18:55阅读:497来源:国知局

本发明属于机器人控制方法领域,具体的说是涉及一种用于大型重载机械臂的四重精度补偿方法。



背景技术:

在机械臂领域中,大型重载与高精度一直是一对难以调和的矛盾。大型重载机械臂难以达到高精度的原因有以下几点:首先其装配困难,不可避免的存在装配误差;第二其臂杆很长,对关节误差产生很大的放大作用;第三其自重及有效载荷都非常大,存在很大的重力沉降效应。在以上多种误差效应的共同作用下,大型重载机械臂的初始绝对定位误差通常为厘米级别。目前对大型重载机械臂的精度修正通常采用重力沉降修正系数或者模型标定的方法,此类方法对精度的提升程度有限,通常在一个数量级以内,精度修正后的绝对定位误差仍达到几毫米的程度,难以满足高精度定位的需求。



技术实现要素:

发明目的:

本发明的目的是通过四重精度补偿,大幅度提高大型重载机械臂的定位精度,克服大型重载机械臂与高精度定位之间的矛盾。通过本发明的四重精度补偿方法,可以使大型重载机械臂的定位精度提高两个数量级以上,达到0.5mm以内,同时可以克服有效载荷偏置引起的末端姿态误差。

技术方案:

一种用于大型重载机械臂的四重精度补偿方法,该四重精度补偿方法具体步骤如下:

步骤一:实现回差补偿控制方法;

步骤二:在回差补偿控制的基础上,进行模型补偿标定,确定新的运动学模型;

步骤三:将模型补偿控制加入机械臂控制方法中,在模型补偿控制→回差补偿控制的基础上,进行重力补偿标定;

步骤四:将重力补偿控制加入机械臂控制方法中,在重力补偿控制→模型补偿控制→回差补偿控制的基础上,进行偏矩补偿标定;

步骤五:将偏矩补偿控制加入机械臂控制方法中,形成偏矩补偿控制→重力补偿控制→模型补偿控制→回差补偿控制的四重精度补偿控制方法,使机械臂运动精度大幅提高。

回差补偿控制具体步骤是:

读取位置传感器读数,判断关节输出位置与目标位置的误差是否达到允许范围之内;如果没有达到允许范围,向目标位置的方向以非常慢的速度运动误差×比例系数的距离;然后再次读取位置传感器读数,判断关节输出位置与目标位置的误差是否达到允许范围之内;如没有达到允许范围,就需要重复进行上述补偿运动过程,直到关节输出位置的误差达到允许范围为止;如果达到允许范围,表示回差补偿控制成功,退出此次回差补偿控制循环过程。

步骤二的具体步骤是:

加工、安装误差用误差矩阵表示,在加工、安装误差的地方可能向三个平移、三个旋转共六个方向上产生误差,分别用dxi、dyi、dzi、αi、βi、γi表示,其中i表示误差矩阵的序号;误差矩阵表示为如下的形式:

理想情况下,各误差分量均为零,则误差矩阵退化为四阶单位矩阵,即此误差矩阵在机械臂的运动学模型中消失;反之,在机械臂的理想运动学模型的任意两个变换矩阵之间插入一个误差矩阵,表示这两个运动传递环节之间可能存在加工、安装误差;

重力沉降表示在机械臂的运动学模型中,将使表征连杆的平移变换矩阵变为如下形式:

其中,i表示平移变换矩阵的序号,i表示三阶单位矩阵;pi为三维列向量,表示连杆在理想状态下的平移量;li是一个列向量,表示与此处重力沉降相关的连杆长度,第i个连杆处的重力沉降与此连杆以及此连杆之前直至机械臂基座的所有连杆都相关,所以li是i维的;

在含有补偿的新运动学模型中,将具有重力沉降效应的所有连杆的平移变换矩阵都替换为trangi的形式;得到更加准确和符合实际的新运动学模型的形式如下:

t=…·i-1ti·trangi·tei·iti+1·trangi+1·…(3)

其中,i-1ti表示第i个关节处的变换矩阵,t表示机械臂基座到末端法兰的总体变换矩阵;

进行模型补偿标定,建立精确运动学模型的形式后,得到机械臂末端法兰中心在基座坐标系下的位置坐标p的表达形式,将其表示为:

p=f(α,β,γ,dx,dy,dz,p);其中,α、β、γ、dx、dy、dz、p分别表示三种旋转误差、三种平移误差、重力沉降系数构成的列向量;如果上述误差都足够小,就得到如下全微分形式的误差差分方程:

其中,δp为实测位置与理论位置之差,δ为机械臂的所有误差量构成的列向量,l·δ为δp的矩阵表示形式;上式中,δ是模型补偿标定需要得到的结果;l是机械臂各自由度位置的函数,在计算l时其中涉及到的各误差量都记为0;机械臂的理论位置由机械臂各自由度位置,通过理想运动学模型计算得到;所以,如果将机械臂运动到某一位置,测得末端法兰中心的实测位置,再记录下此时机械臂各自由度的位置,就得到δp=l·δ为机械臂误差量的方程;测量足够多的位置p1,…,pm,就得到关于δ的大矩阵方程:

δq=ll·δ(5)

其中,

m的取值应至少使矩阵ll的行数大于列数;

通常情况下,ll并不是列满秩的;此时需要将ll中线性相关的列向量组找出,将其中一列去掉,并同时去掉δ中与此列对应的误差分量;不断重复这个操作,直到ll变为列满秩矩阵为止,将这个列满秩矩阵记为ll',将与ll'对应的误差列向量记为δ';最终得到的矩阵方程为:

δq=ll'·δ'(6)

去掉的误差分量在数学上是与剩下的误差分量相关的,即去掉的误差分量不具有独立的误差效应,不对其进行标定;上述关于误差量的矩阵方程解得如下的最小二乘近似解:

δ'=(ll'tll')-1ll'tδq(7)

在机械臂不加负载的情况下,在机械臂末端法兰中心位置放置激光跟踪仪的靶球;让机械臂运动到一系列的关节位置组合,用激光跟踪仪记录靶球的位置坐标值x、y、z,并记录下相对应的关节位置组合,需要记录关节输出位置传感器反馈的实际关节位置;利用上面叙述的方法拟合出复杂运动学模型中各种误差量的具体数值;所选取的关节位置组合要充分覆盖机械臂的工作空间,同时为了减小工作量,不要选取工作空间外的位置;因为模型补偿标定不是四重精度补偿法的最终标定步骤,所以模型补偿允许有剩余误差;为了进一步减小工作量至可接受的范围,对于一些误差效应不明显的误差环节,应将其视为理想的,这样使某些关节的输出位置变得与模型误差量的标定无关,极大程度地减小模型补偿标定的工作量。

模型补偿控制的具体步骤是:

模型补偿标定之后,得到机械臂的更加准确和符合实际的复杂运动学模型,记为:

t=kinaccu(q)(8)

其中q表示机械臂各关节位置组成的向量;要将其应用在模型补偿控制上,需要解出该模型的运动学逆解:

通常,机械臂运动学加入模型误差因素后,运动学模型会变得很复杂而难以得到解析的运动学逆解,此时需要用到运动学逆解的数值解法;

有了机械臂运动学逆解,就进行模型补偿控制;当指定了机械臂的一个末端目标位姿时,将末端目标位姿转化为机械臂基座到末端法兰的变换矩阵t,然后通过运动学逆解解得关节输出位置q;q即是带有模型补偿的机械臂关节目标输出位置,同时也是回差补偿控制的输入,将之输入到回差补偿控制方法中,就在模型补偿后继续进行回差补偿。

重力补偿标定的具体步骤是:

对机械臂的有效工作空间的x、y、z,以及有效载荷w四个维度进行网格划分;四维网格的每一个节点(x,y,z,w)表示机械臂在有效载荷为w时运动到工作空间中的(x,y,z)点;对四维网格的每一个节点进行标定,测得机械臂末端实测位姿与理论目标位姿之间的差别,建立重力补偿数据库,完成重力补偿标定过程;其中,对于有效载荷w对于机械臂末端法兰产生多大的力矩,在重力补偿标定中,使有效载荷w产生的偏矩为0,而将偏矩不为0的情况分离出来交给偏矩补偿解决;

对于机械臂是以什么样的末端姿态运动到(x,y,z)点,在重力补偿标定中,机械臂以某个常用的特殊末端姿态运动到标定点,得到这个特殊姿态下的标定数据;重力补偿数据库中只含有特殊姿态下的标定数据,因为无法对末端姿态也进行网格划分,否则数据库中的数据量将增大到无法实现的程度;机械臂的任务姿态为其他姿态的情况利用算法来解决,而这个算法中涉及了机械臂末端工具的误差,需要先对末端工具进行标定。

末端工具标定的具体步骤是:

对于末端工具的标定,机械臂末端法兰之后的部分都算作末端工具,包括为了实现四重精度补偿法而加装的六维力传感器,以及机械臂为了实现作业任务而必须加装的工具;工具的模型用x、y、z、b、c来表示,即x、y、z三个方向的位移加上绕y、绕x的转角;b、c的名义值均为0,x、y、z也有各自的名义值;

首先,让机械臂运动到一个特定位置,目标姿态角的指令值均为0;测量机械臂末端工具的位置和姿态,得到此时机械臂基座坐标系到工具坐标系的齐次变换txyzabc;然后将机械臂的末端法兰旋转关节转动特定的角度z,再次测量机械臂末端工具的位置和姿态,再次得到一个txyzabc;测量足够多次,得到一系列z-txyzabc,有如下关系式:

txyzabc(z)=tbase→flangetrot(z)ttool,bcttool,xyz(10)

其中,tbase→flange表示机械臂基座到末端法兰的变换矩阵,trot(z)表示转动角度z产生的旋转变换矩阵,ttool,bc和ttool,xyz表示机械臂末端工具的真实旋转变换与平移变换矩阵;

只考察关系式(10)中的姿态部分,得到如下关系:

rabc(z)=rbase→flangerot(z)rtool,bc(11)

rabc(z)、rbase→flange、rot(z)、rtool,bc分别表示txyzabc(z)、tbase→flange、trot(z)、ttool,bc的旋转矩阵部分;从姿态关系式(11)中求出工具的倾斜姿态角b、c,用智能搜索的方法求解;智能搜索的指标函数为上述姿态关系“=”两边所表征的姿态角的差值的绝对值的期望,指标函数值越小说明所选择的工具倾斜姿态角b、c越好;对于所选择的一组特定的工具倾斜姿态角b、c,进行如下处理:首先在z=0时求出rbase→flange,然后利用z≠0时的姿态关系式和rbase→flange求出指标函数值;

在txyzabc的关系式中,指定如下符号:

则得到如下关于位置的关系式:

进一步变换得到:

根据末端法兰旋转关节的转动角度z的不同取值,得到一系列的形如(13)的关系式,将它们组合起来:

利用最小二乘法求得x、y、z;从而得到了机械臂末端工具模型中的全部特征x、y、z、b、c,完成了末端工具标定。

对于末端位置理论值的一组特定取值,将末端姿态的三个姿态角a、b、c的理论值取为a0、0、0,其中a0为一个特定的a角取值;此时有:

其中,为机械臂末端位姿的实测值,为机械臂末端位姿的理论目标值,为机械臂的重力补偿矩阵;

将重力补偿矩阵转化为位姿形式,3个位置补偿量和3个姿态角补偿量,这6个数值就是此标定点的标定结果;测量四维网格划分中所有节点,并计算出各个节点的标定结果,最终形成重力补偿数据库,完成重力补偿标定过程。

重力补偿控制的具体步骤是:

重力补偿要做的就是通过查询标定时建立的数据库,找到相应的tcomp,通过关系式:

tcomptreal=tthe(16)

计算出tthe,将tthe作为重力补偿后的位姿传给机械臂,使机械臂按此位姿运动后正好到达treal;

对于数据库中只有姿态角为a0、0、0时的补偿量,而重力补偿控制时面对的是姿态角为任意值a、b、c的情况的问题,需要用到之前进行的末端工具标定来解决;如果已知tthe,abc,通过下式:

计算得到其中,ttool,xyz,the表示理想的末端工具变换,tzt表示机械臂手腕中心到末端法兰中心的变换,trot(a-a0,b,c)表示从姿态角a0、0、0到姿态角a、b、c的旋转变换矩阵;然后通过下式,由算得tcomp,abc:

其中,ttool,xyz和ttool,bc分别表示末端工具标定得到的实际的末端工具平移变换和末端工具旋转变换;

对于重力补偿数据库中的补偿量都是与tthe对应的,而现在已知的是treal,我们无法直接依据treal利用重力补偿数据库中查表和多维插值法来获得所需的补偿量的问题,有重力补偿关系式:

tcomp,abctreal,abc=tthe,abc(19)

即当已知treal,abc时,只要给出tcomp,abc,就得到tthe,abc;

于是通过循环查表逼近法来解决无法直接依据treal利用查表和多维插值法来获得所需的补偿量:先假设tthe,abc等于treal,abc,然后在重力补偿数据库查表得到tcomp,abc;根据式(19)更新tthe,abc,再由新的tthe,abc查表更新tcomp,abc;再根据式(19)更新tthe,abc,不断重复这个过程,直到达到精度要求为止。

偏矩补偿标定的具体步骤是:

首先,确定机械臂的有效载荷可能在两个方向上产生的偏矩范围;在偏矩范围内对两个方向上的偏矩进行网格划分,产生一个二维的标定网格;该网格中必须包含点(0,0),将(0,0)作为偏矩补偿的基准,即不对机械臂加载偏矩时偏矩补偿量都为0;对二维网格中的每一个节点,按照偏矩数值对机械臂末端工具加载二维偏矩,利用六维力传感器实时测量偏矩值,保证加载准确;

偏矩补偿标定时一定要排除负载重力及机械臂自重产生变形的影响,所以,首先定义一个机械臂的最常用位姿为基准位姿,所有的偏矩补偿标定均在此位姿进行;然后对于每一种二维偏矩,加载准确后,需要控制机械臂以基准位姿为目标进行一次运动,在此次运动中需要按顺序应用已经标定完成的所有精度补偿控制方法,以消除除了偏矩之外的其他误差源的影响,即:

重力补偿控制→模型补偿控制→回差补偿控制;

运动完成后,测量此时机械臂末端工具的位姿,由此算出末端工具绕两个方向的偏转角测量所有的二维偏矩组合,算出对应的偏转角,形成偏矩补偿数据库;由于已经将(0,0)作为偏矩补偿的基准,所以对于所有的二维偏矩组合,其由于偏矩引起的实际偏转角为:

偏矩补偿控制的具体步骤是:

首先,利用六维力传感器读取偏矩的数值,然后在偏矩补偿数据库中查表并利用二维插值得到偏转角β、γ,之后利用下式进行偏矩补偿控制:

tout=tinttool,xyz,the-1trot(-β,-γ)ttool,xyz,the(20)

其中,tin表示偏矩补偿前的目标位姿,trot(-β,-γ)表示-β、-γ产生的旋转变换矩阵,tout表示偏矩补偿输出的位姿。

优点及效果:

四重精度补偿法从大型重载机械臂的四种不同的主要误差源入手,对其运动连续进行四次串行的精度补偿,可以使运动误差下降2个数量级,使绝对精度达到与重复精度相同的量级,达到0.5mm的绝对定位精度。应用四重精度补偿法,需要在机械臂的末端法兰与工具之间加装六维力传感器,并需要在机械臂的各个关节的输出端(关节传动链的末端)加装位置传感器。

四重精度补偿法在实际应用于大型重载机械臂-质子治疗床时,使该机械臂的绝对定位精度从只进行零位置标定情况下的大于40mm,改进至应用四重精度补偿法之后的小于0.2mm,将绝对定位精度提升2个数量级以上。

附图说明

图1为机械臂关节双闭环控制结构;

图2为回差补偿控制方法流程;

图3为重力补偿控制流程;

图4为四重精度补偿法的控制总流程。

具体实施方式

四重精度补偿法从大型重载机械臂的四种不同的主要误差源入手,对其运动连续进行四次串行的精度补偿,可以使运动误差下降2个数量级,使绝对精度达到与重复精度相同的量级,达到0.5mm的绝对定位精度。应用四重精度补偿法,需要在机械臂的末端法兰与工具之间加装六维力传感器,并需要在机械臂的各个关节的输出端(关节传动链的末端)加装位置传感器。

一种用于大型重载机械臂的四重精度补偿方法,该四重精度补偿方法具体步骤如下:

步骤一:实现回差补偿控制方法;

步骤二:在回差补偿控制的基础上,进行模型补偿标定,确定新的运动学模型;

步骤三:将模型补偿控制加入机械臂控制方法中,在模型补偿控制→回差补偿控制的基础上,进行重力补偿标定;

步骤四:将重力补偿控制加入机械臂控制方法中,在重力补偿控制→模型补偿控制→回差补偿控制的基础上,进行偏矩补偿标定;

步骤五:将偏矩补偿控制加入机械臂控制方法中,形成偏矩补偿控制→重力补偿控制→模型补偿控制→回差补偿控制的四重精度补偿控制方法,使机械臂运动精度大幅提高。

其中,机械臂控制方法为现有技术。

四重精度补偿分别为回差补偿、模型补偿、重力补偿、偏矩补偿。四重精度补偿法的实质是由机械臂的目标位姿通过补偿计算出一个虚拟目标位姿,机械臂按无补偿的方式(回差补偿除外)运动到虚拟目标位姿,其实际状态就已经到达目标位姿。四重精度补偿法在机械臂控制中的补偿流程为:

偏矩补偿→重力补偿→模型补偿→回差补偿

四重精度补偿法在应用之前,需要对各个补偿过程进行标定,标定需要按照以下顺序进行:

回差补偿标定→模型补偿标定→重力补偿标定→偏矩补偿标定

每进行完一个阶段的标定,就需要将对应阶段的补偿算法应用到机械臂的控制中,这是继续进行后续阶段标定的前提。

回差补偿:

回差补偿的补偿对象是机械臂关节传动环节的回程差。其补偿效果是提高机械臂关节位置输出精度,使关节输出位置与目标位置的误差在精度允许误差范围之内。回差补偿是四个阶段中最特殊的一个,它实际上是一种控制方法,而其他阶段实际上是补偿算法。回差补偿不需要标定,而是直接将其控制方法应用在机械臂控制系统中。

回差补偿控制方法:

机械臂的各个关节输出端加装位置传感器后,机械臂的关节控制方式变为如图1所示的双闭环结构。由于关节传动回差的存在,在机器人关节电机完成定位后,关节输出位置仍存在一个随机小量,这个随机量经臂杆放大将会在机器人末端产生显著误差。所以在关节电机完成定位后,需要进入回差补偿过程。

回差补偿需要首先读取位置传感器读数,判断关节输出位置与目标位置的误差是否达到允许范围之内;如没有达到允许范围,就需要向目标位置的方向以非常慢的速度(具体速度由实验测得,速度过低会导致补偿效率低下,速度过高在传动背隙处会产生惯性过冲而使回差补偿无法成功)运动误差×比例系数的距离;然后再次读取位置传感器读数,判断关节输出位置与目标位置的误差是否达到允许范围之内;如没有达到允许范围,就需要重复进行上述补偿运动过程,直到关节输出位置的误差达到允许范围为止。回差补偿控制方法流程如图2所示。

模型补偿:

模型补偿是在机器人理想运动学模型的基础上,考虑加工、安装误差,重力造成的沉降变形,将这些因素加入到运动学模型中来,得到更加准确和符合实际的新运动学模型。

加工、安装误差用误差矩阵表示。存在加工、安装误差的地方可能向三个平移、三个旋转共六个方向上产生误差,分别用

dxi、dyi、dzi、αi、βi、γi

表示,其中i表示误差矩阵的序号。则误差矩阵表示为如下的形式:

理想情况下,各误差分量均为零,则误差矩阵退化为四阶单位矩阵,即此误差矩阵在机械臂的运动学模型中消失。反之,也可以在机械臂的理想运动学模型的任意两个变换矩阵之间插入一个误差矩阵,表示这两个运动传递环节之间可能存在加工、安装误差。

重力沉降误差是由于大型重载机械臂的自重而引发自身连杆倾斜,而引起的连杆末端对于连杆起始端的相对位置变化。由于机械臂是复杂多体系统,其重力沉降非常复杂,所以这里将其简化表示为重力沉降系数。重力沉降表示在机械臂的运动学模型中,将使表征连杆的平移变换矩阵变为如下形式:

其中,i表示平移变换矩阵的序号,i表示三阶单位矩阵;pi为三维列向量,表示连杆在理想状态下的平移量;li是一个列向量,表示与此处重力沉降相关的连杆长度,第i个连杆处的重力沉降与此连杆以及此连杆之前直至机械臂基座的所有连杆都相关,所以li是i维的;某些情况下连杆经过旋转关节的旋转后,并不是此连杆的自重的全部都会作用到其之前的连杆上产生重力沉降,这种情况可以等效为li中对应之前的相应连杆的维度上乘以一个关节旋转角的三角函数;

pi是3×i的重力沉降系数矩阵,此矩阵通常情况下是一个稀疏矩阵,矩阵中具体哪些元素为0,哪些元素为同一个重力沉降系数,需要根据机械臂的具体结构以及坐标系建立方式做具体分析,并没有通用方法。

理想情况下,重力沉降系数矩阵pi为零矩阵,trangi退化为理想平移变换矩阵。而在含有补偿的新运动学模型中,应将具有重力沉降效应的所有连杆的平移变换矩阵都替换为trangi的形式。

最终,得到更加准确和符合实际的新运动学模型的形式如下:

t=·…i-1ti·trangi·tei·iti+1·trangi+1·…(3)

其中,i-1ti表示第i个关节处的变换矩阵,t表示机械臂基座到末端法兰的总体变换矩阵。

模型补偿标定过程:

建立了精确运动学模型的形式后,可以得到机械臂末端法兰中心在基座坐标系下的位置坐标p的表达形式,可将其表示为:

p=f(α,β,γ,dx,dy,dz,p);其中,α、β、γ、dx、dy、dz、p分别表示三种旋转误差、三种平移误差、重力沉降系数构成的列向量。如果上述误差都足够小,就可以得到如下全微分形式的误差差分方程:

其中,δp为实测位置与理论位置之差,δ为机械臂的所有误差量构成的列向量,l·δ为δp的矩阵表示形式。

上式中,δ是模型补偿标定需要得到的结果;l是机械臂各自由度位置的函数,在计算l时其中涉及到的各误差量都记为0;机械臂的理论位置可以由机械臂各自由度位置,通过理想运动学模型计算得到。所以,如果将机械臂运动到某一位置,测得末端法兰中心的实测位置,再记录下此时机械臂各自由度的位置,就可以得到δp=l·δ为机械臂误差量的方程。测量足够多的位置p1,…,pm,就可以得到关于δ的大矩阵方程:

δq=ll·δ(5)

其中,

m的取值应至少使矩阵ll的行数大于列数。

通常情况下,ll并不是列满秩的。此时需要将ll中线性相关的列向量组找出,将其中一列去掉,并同时去掉δ中与此列对应的误差分量。不断重复这个操作,直到ll变为列满秩矩阵为止,将这个列满秩矩阵记为ll',将与ll'对应的误差列向量记为δ'。最终得到的矩阵方程为:

δq=ll'·δ'(6)

去掉的误差分量在数学上是与剩下的误差分量相关的,即去掉的误差分量不具有独立的误差效应,可以不对其进行标定。上述关于误差量的矩阵方程可以解得如下的最小二乘近似解:

δ'=(ll'tll')-1ll'tδq(7)

在机械臂不加负载的情况下,在机械臂末端法兰中心位置放置激光跟踪仪的靶球。让机械臂运动到一系列的关节位置组合,用激光跟踪仪记录靶球的位置坐标值x、y、z,并记录下相对应的关节位置组合(需要记录关节输出位置传感器反馈的实际关节位置)。这样就可以利用上面叙述的方法拟合出复杂运动学模型中各种误差量的具体数值。所选取的关节位置组合要充分覆盖机械臂的工作空间,同时为了减小工作量,不要选取工作空间外的位置。因为模型补偿标定不是四重精度补偿法的最终标定步骤,所以模型补偿允许有剩余误差。为了进一步减小工作量至可接受的范围,对于一些误差效应不明显的误差环节,应将其视为理想的,这样可以使某些关节的输出位置变得与模型误差量的标定无关,可以极大程度地减小模型补偿标定的工作量。

模型补偿控制方法:

模型补偿标定之后,可以得到机械臂的更加准确和符合实际的复杂运动学模型,记为:

t=kinaccu(q)(8)

其中q表示机械臂各关节位置组成的向量。要将其应用在模型补偿控制上,需要解出该模型的运动学逆解:

通常,机械臂运动学加入模型误差因素后,运动学模型会变得很复杂而难以得到解析的运动学逆解,此时需要用到运动学逆解的数值解法。

有了机械臂运动学逆解,就可以进行模型补偿控制。当指定了机械臂的一个末端目标位姿时,可以将末端目标位姿转化为机械臂基座到末端法兰的变换矩阵t,然后通过运动学逆解解得关节输出位置q。q即是带有模型补偿的机械臂关节目标输出位置,同时也是回差补偿控制的输入,将之输入到回差补偿控制方法中,就可以在模型补偿后继续进行回差补偿。

重力补偿:

模型补偿标定之后,仍然会有一部分剩余误差。另一方面,大型重载机械臂的有效载荷也会引入不可忽视的定位误差,而此前有效载荷引入的误差并没有被补偿过。所以接下来需要继续考虑重力补偿。重力补偿对机械臂的有效工作空间的x、y、z,以及有效载荷w四个维度进行网格划分。四维网格的每一个节点(x,y,z,w)表示机械臂在有效载荷为w时运动到工作空间中的(x,y,z)点。对四维网格的每一个节点进行标定,测得机械臂末端实测位姿与理论目标位姿之间的差别,就可以建立重力补偿数据库。建立数据库后,每当再给机械臂一个(x,y,z,w)形式的任务时,就可以查询数据库中的数据,并结合多维插值法,对这个任务进行有效的重力补偿。

这里有两个问题:一是没有涉及有效载荷w对机械臂末端法兰产生多大的力矩,二是没有涉及机械臂是以什么样的末端姿态运动到(x,y,z)点。对于第一个问题,有效载荷w对末端法兰产生的力矩叫做负载偏转力矩,简称偏矩;在重力补偿标定中,使有效载荷w产生的偏矩为0,而将偏矩不为0的情况分离出来交给偏矩补偿解决。对于第二个问题,在重力补偿标定中,我们让机械臂以某个常用的特殊末端姿态(如3个姿态角都为0)运动到标定点,这样可以得到这个特殊姿态下的标定数据;重力补偿数据库中只含有特殊姿态下的标定数据,因为我们无法对末端姿态也进行网格划分,否则数据库中的数据量将增大到无法实现的程度;机械臂的任务姿态为其他姿态的情况利用算法来解决,而这个算法中涉及了机械臂末端工具的误差,所以需要先对末端工具进行标定。

末端工具标定:

在精确地补偿策略中,需要对机械臂的末端工具进行精确地标定。机械臂末端法兰之后的部分都算作末端工具,包括为了实现四重精度补偿法而加装的六维力传感器,以及机械臂为了实现作业任务而必须加装的工具。工具的模型用x、y、z、b、c来表示,即x、y、z三个方向的位移加上绕y、绕x的转角。b、c的名义值均为0,x、y、z也有各自的名义值。

首先让机械臂运动到一个特定位置,目标姿态角的指令值均为0。测量机械臂末端工具的位置和姿态,可以得到此时机械臂基座坐标系到工具坐标系的齐次变换txyzabc。然后将机械臂的末端法兰旋转关节转动特定的角度z,再次测量机械臂末端工具的位置和姿态,可以再次得到一个txyzabc。测量足够多次,可以得到一系列z-txyzabc,有如下关系式:

txyzabc(z)=tbase→flangetrot(z)ttool,bcttool,xyz(10)

其中,tbase→flange表示机械臂基座到末端法兰的变换矩阵,trot(z)表示转动角度z产生的旋转变换矩阵,ttool,bc和ttool,xyz表示机械臂末端工具的真实旋转变换与平移变换矩阵。

只考察上面关系式中的姿态部分,可以得到如下关系:

rabc(z)=rbase→flangerot(z)rtool,bc(11)

我们的目标是从上述姿态关系中求出工具的倾斜姿态角b、c,可以用智能搜索的方法求解。智能搜索的指标函数为上述姿态关系“=”两边所表征的姿态角的差值的绝对值的期望,指标函数值越小说明所选择的工具倾斜姿态角b、c越好。对于所选择的一组特定的工具倾斜姿态角b、c,我们可以如下进行处理:首先在z=0时求出rbase→flange,然后利用z≠0时的姿态关系式和rbase→flange求出指标函数值。

在txyzabc的关系式中,指定如下符号:

则可以得到如下关于位置的关系式:

进一步变换可以得到:

根据末端法兰旋转关节的转动角度z的不同取值,可以得到一系列的形如(13)的关系式,将它们组合起来:

利用最小二乘法可以求得x、y、z。

这样就得到了机械臂末端工具模型中的全部特征x、y、z、b、c,完成了末端工具标定。

重力补偿标定过程:

对于有效载荷w的网格划分中的每一个节点,按照负载要求对机械臂末端工具加载。利用机械臂末端法兰处加装的六维力传感器对负载称重,以保证加载的准确性,同时还要利用六维力传感器保证加载后不产生偏矩。加载完成后,控制机械臂以特定末端姿态运动到有效工作空间内网格划分的每一个位置节点上,即网格划分位置节点和特定末端姿态为机械臂的目标位姿。运动完成后,测量机械臂的实际位姿,它与目标位姿之间一定会有误差,这个误差就是重力补偿的补偿量。

通常情况下,对于末端位置理论值的一组特定取值,我们将末端姿态的三个姿态角a、b、c的理论值取为a0、0、0,其中a0为一个特定的a角取值。此时有:

其中,为机械臂末端位姿的实测值,为机械臂末端位姿的理论目标值,为机械臂的重力补偿矩阵。

将重力补偿矩阵转化为位姿形式(3个位置补偿量,3个姿态角补偿量),这6个数值就是此标定点的标定结果。测量四维网格划分中所有节点,并计算出各个节点的标定结果,最终形成重力补偿数据库,完成重力补偿标定过程。

重力补偿控制方法:

重力补偿体现在控制方法中,就是通过计算,改变机械臂的目标位姿。给机械臂的目标位姿实际上是机械臂需要实际运动到的位姿treal。如果不经重力补偿而直接将treal命令传给机械臂,机械臂会因重力沉降而最终无法到达这个位姿。重力补偿要做的就是通过查询标定时建立的数据库,找到相应的tcomp,通过关系式:

tcomptreal=tthe(16)

计算出tthe,将tthe作为重力补偿后的位姿传给机械臂,使机械臂按此位姿运动后正好到达treal。

对于问题一,需要用到之前进行的末端工具标定来解决。如果已知tthe,abc,可以通过下式:

计算得到其中,ttool,xyz,the表示理想的末端工具变换,tzt表示机械臂手腕中心到末端法兰中心的变换,trot(a-a0,b,c)表示从姿态角a0、0、0到姿态角a、b、c的旋转变换矩阵。然后可以通过下式,由算得tcomp,abc:

其中,ttool,xyz和ttool,bc分别表示末端工具标定得到的实际的末端工具平移变换和末端工具旋转变换。

对于问题二,有重力补偿关系式:

tcomp,abctreal,abc=tthe,abc(19)

即当已知treal,abc时,只要给出tcomp,abc,就可以得到tthe,abc。于是可以通过如图3所示的重力补偿控制流程来解决问题二。

偏矩补偿:

偏矩指的是机械臂末端工具上加载的有效载荷,由于负载重心不在末端法兰中心而产生的相对于末端法兰中心的负载力矩。偏矩的主要效应是使六维力传感器产生偏转变形,从而对机械臂末端定位精度产生不可忽视的影响。偏矩补偿即是对这种影响的修正手段。

机械臂的负载相对于末端法兰中心可能产生两个方向的偏矩,分别是绕六维力传感器的x轴方向、绕六维力传感器的y轴方向。相应地,偏矩产生的变形效应就是末端工具绕这两个方向的偏转。

偏矩补偿标定过程:

首先确定机械臂的有效载荷可能在两个方向上产生的偏矩范围。在偏矩范围内对两个方向上的偏矩进行网格划分,产生一个二维的标定网格。该网格中必须包含点(0,0),将(0,0)作为偏矩补偿的基准,即不对机械臂加载偏矩时偏矩补偿量都为0。对二维网格中的每一个节点,按照偏矩数值对机械臂末端工具加载二维偏矩,利用六维力传感器实时测量偏矩值,保证加载准确。

偏矩补偿标定时一定要排除负载重力及机械臂自重产生变形的影响。为达到此目的,首先定义一个机械臂的最常用位姿为基准位姿,所有的偏矩补偿标定均在此位姿进行。然后对于每一种二维偏矩,加载准确后,需要控制机械臂以基准位姿为目标进行一次运动,在此次运动中需要按顺序应用已经标定完成的所有精度补偿控制方法,以消除除了偏矩之外的其他误差源的影响,即:

重力补偿控制→模型补偿控制→回差补偿控制;

运动完成后,测量此时机械臂末端工具的位姿,由此算出末端工具绕两个方向的偏转角测量所有的二维偏矩组合,算出对应的偏转角,形成偏矩补偿数据库。由于已经将(0,0)作为偏矩补偿的基准,所以对于所有的二维偏矩组合,其由于偏矩引起的实际偏转角为:

偏矩补偿控制方法:

偏矩补偿体现在控制方法中,就是通过计算,改变机械臂的目标位姿,使得机械臂按照补偿后的位姿运动正好可以抵消偏矩产生的偏转,就像没有加载偏矩也没有运用偏矩补偿控制一样。

首先利用六维力传感器读取偏矩的数值,然后在偏矩补偿数据库中查表并利用二维插值得到偏转角β、γ,之后利用下式进行偏矩补偿控制:

tout=tinttool,xyz,the-1trot(-β,-γ)ttool,xyz,the(20)

其中,tin表示偏矩补偿前的目标位姿,trot(-β,-γ)表示-β、-γ产生的旋转变换矩阵,tout表示偏矩补偿输出的位姿。

控制总流程:

如果在没有进行任何精度补偿前,将机械臂的目标位姿记为tar,则四重精度补偿法的控制总流程如图4所示。如图4可见,四重精度补偿法的控制先是进行偏矩补偿,再进行重力补偿,之后是模型补偿,最后是回差补偿。

四重精度补偿法在实际应用于大型重载机械臂-质子治疗床时,现有的质子治疗床重量在2.5吨左右,机械臂额定负载为150kg,臂展为3米,四重精度补偿法使该机械臂的绝对定位精度从只进行零位置标定情况下的大于40mm,改进至应用四重精度补偿法之后的好于0.2mm,将绝对定位精度提升2个数量级以上。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1