一种工业机器人TCP标定方法与流程

文档序号:12121463阅读:来源:国知局

技术特征:

1.一种工业机器人TCP标定方法,其特征在于:包括如下步骤:

1)示教机器人以不同的姿势使得待标定的工具接触机器人灵活工作空间中一固定尖状物尖端,记录各个姿势的关节角坐标或者笛卡尔坐标,计算各个姿势的连杆末端法兰盘坐标系的姿态矩阵Ri(i=1、2…、n)和位移向量Ei(i=1、2、…、n);

2)利用姿势的姿态矩阵和位移向量计算TCP,计算步骤为:

先求出标识值Q:

<mrow> <mi>Q</mi> <mo>=</mo> <mfrac> <mrow> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mn>1</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mn>2</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mn>1</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mn>3</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mn>1</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>n</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> </mtable> </mfenced> <mi>T</mi> </msup> <mo>&times;</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mn>1</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>&times;</mo> <msub> <mi>E</mi> <mn>1</mn> </msub> <mo>-</mo> <msubsup> <mi>R</mi> <mn>2</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>&times;</mo> <msub> <mi>E</mi> <mn>2</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mn>1</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>&times;</mo> <msub> <mi>E</mi> <mn>1</mn> </msub> <mo>-</mo> <msubsup> <mi>R</mi> <mn>3</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>&times;</mo> <msub> <mi>E</mi> <mn>3</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mn>1</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>&times;</mo> <msub> <mi>R</mi> <mn>1</mn> </msub> <mo>-</mo> <msubsup> <mi>R</mi> <mi>n</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>&times;</mo> <msub> <mi>E</mi> <mi>n</mi> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> <mrow> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mn>1</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mn>2</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mn>1</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mn>3</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mn>1</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>n</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> </mtable> </mfenced> <mi>T</mi> </msup> <mo>&times;</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mn>1</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mn>2</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mn>1</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mn>3</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mn>1</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>n</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </mfrac> </mrow>

再通过Q求到工具坐标系原点TCP的值Ptcp

<mrow> <msub> <mi>P</mi> <mrow> <mi>t</mi> <mi>c</mi> <mi>p</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>R</mi> <mn>1</mn> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>R</mi> <mn>2</mn> </msub> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <msub> <mi>R</mi> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>R</mi> <mi>n</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mi>T</mi> </msup> <mo>&times;</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>Q</mi> <mo>-</mo> <msub> <mi>E</mi> <mn>1</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>Q</mi> <mo>-</mo> <msub> <mi>E</mi> <mn>2</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>Q</mi> <mo>-</mo> <msub> <mi>E</mi> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>Q</mi> <mo>-</mo> <msub> <mi>E</mi> <mi>n</mi> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> <mrow> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>R</mi> <mn>1</mn> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>R</mi> <mn>2</mn> </msub> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <msub> <mi>R</mi> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>R</mi> <mi>n</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mi>T</mi> </msup> <mo>&times;</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>R</mi> <mn>1</mn> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>R</mi> <mn>1</mn> </msub> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <msub> <mi>R</mi> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>R</mi> <mi>n</mi> </msub> </mtd> </mtr> </mtable> </mfenced> </mrow> </mfrac> </mrow>

下标n为自然数。

2.根据权利要求1所述的一种工业机器人TCP标定方法,其特征在于,所述步骤1)中的尖状物为杆状且头部有尖端的物体。

3.根据权利要求1所述的一种工业机器人TCP标定方法,其特征在于,所述步骤1)与步骤2)之间包括步骤:

a)对所述记录的姿势进行筛选,筛选步骤包括:

a1)对所述记录的姿势以任意4个姿势为一组进行分组,求出每一组的误差系数,所述误差系数的计算方法包括:

a11)以任意3个姿势求出标识值Qn,直至求完所有的Qn,Qn的计算方法是:

<mrow> <mi>Q</mi> <mi>n</mi> <mo>=</mo> <mfrac> <mrow> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>b</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>c</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> </mtable> </mfenced> <mi>T</mi> </msup> <mo>&times;</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>&times;</mo> <msub> <mi>E</mi> <mi>a</mi> </msub> <mo>-</mo> <msubsup> <mi>R</mi> <mi>b</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>&times;</mo> <msub> <mi>E</mi> <mi>b</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>&times;</mo> <msub> <mi>E</mi> <mi>a</mi> </msub> <mo>-</mo> <msubsup> <mi>R</mi> <mi>c</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>&times;</mo> <msub> <mi>E</mi> <mi>c</mi> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> <mrow> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>b</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>c</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> </mtable> </mfenced> <mi>T</mi> </msup> <mo>&times;</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>b</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>c</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </mfrac> </mrow>

下标a,b,c为自然数;

a12)求出Qn之间的距离,最大的距离值则为误差系数;

a2)选出只存在于误差系数小于误差阀值的组的所有的姿势。

4.根据权利要求1所述的一种工业机器人TCP标定方法,其特征在于,所述步骤1)与步骤2)之间包括步骤:

c)对所述记录的姿势进行筛选,筛选步骤包括:

c1)对所述记录的姿势以任意4个姿势进行分组,求出每一组的误差系数,所述误差系数的计算方法包括:

c11)以任意3个姿势求出标识值Qn,直至求完所有的Qn,Qn的计算方法是:

<mrow> <mi>Q</mi> <mi>n</mi> <mo>=</mo> <mfrac> <mrow> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>b</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>c</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> </mtable> </mfenced> <mi>T</mi> </msup> <mo>&times;</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>&times;</mo> <msub> <mi>E</mi> <mi>a</mi> </msub> <mo>-</mo> <msubsup> <mi>R</mi> <mi>b</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>&times;</mo> <msub> <mi>E</mi> <mi>b</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>&times;</mo> <msub> <mi>E</mi> <mi>a</mi> </msub> <mo>-</mo> <msubsup> <mi>R</mi> <mi>c</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>&times;</mo> <msub> <mi>E</mi> <mi>c</mi> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> <mrow> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>b</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>c</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> </mtable> </mfenced> <mi>T</mi> </msup> <mo>&times;</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>b</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>R</mi> <mi>a</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>c</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </mfrac> </mrow>

下标a,b,c为自然数;

c12)求出Qn之间的距离,最大的距离值则为误差系数;

c2)选出误差系数小于误差阀值且误差系数数值最小的那一组的所有姿势。

5.根据权利要求3-4任一项所述的一种工业机器人TCP标定方法,其特征在于,所述误差阀值为1.5mm。

6.根据权利要求1所述一种工业机器人TCP标定方法,其特征在于,其特征在于还包括步骤:

3)将TCP值载入到工业机器人处理器中。

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