双轴孔装配系统及其控制方法与流程

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

技术特征:

1.一种双轴孔装配系统,用于将双轴工件(P)装配于双孔工件(H)中,包括:

基座(W);

机械臂(T),固定于基座(W)且与双轴工件(P)固定连接;

激光跟踪测量仪(M),测量双轴工件(P)、双孔工件(H)以及机械臂末端(T1)的位姿;

传感器(S),实时感测双轴孔装配过程中双轴工件(P)的各轴(P1)与双孔工件(H)的相应孔(H1)之间的接触力及接触力矩;以及

上位机控制系统(C),电连接于机械臂(T),且通信连接于传感器(S)并接收传感器(S)传输的接触力和接触力矩的数据以实时操纵机械臂(T)运动。

2.根据权利要求1所述的双轴孔装配系统,其特征在于,

双轴工件(P)包括两个轴(P1)和将两个轴(P1)连接为一体的连接板(P2);

双轴工件(P)为刚性工件或柔性工件。

3.根据权利要求1所述的双轴孔装配系统,其特征在于,

双孔工件(H)包括两个孔(H1)和用于设置两个孔(H1)的底板(H2);

双孔工件(H)为刚性工件或柔性工件。

4.根据权利要求1所述的双轴孔装配系统,其特征在于,传感器(S)为力传感器。

5.一种双轴孔装配系统的控制方法,用于控制权利要求1-4中任一项所述的双轴孔装配系统,包括步骤:

S1,确定双轴工件(P)在机械臂末端中心坐标系的转换矩阵Ttp、双孔工件(H)在机械臂基座坐标系的转换矩阵以及双轴工件(P)在机械臂基座坐标系的转换矩阵包括步骤:

S11,利用激光跟踪测量仪(M),在激光跟踪测量仪坐标系下,测出双轴工件(P)的双轴底面圆心的三维坐标分别为(Xplm,Yplm,Zplm)、(Xprm,Yprm,Zprm),双轴底面的法向量为(Xpnm,Ypnm,Zpnm),双孔工件(H)的双孔顶面圆心的三维坐标分别为(Xhlm,Yhlm,Zhlm)、(Xhrm,Yhrm,Zhrm),双孔顶面的法向量为(Xhnm,Yhnm,Zhnm),机械臂末端(T1)的中心的三维坐标为(Xtm,Ytm,Ztm);

S12,建立双轴坐标系和双孔坐标系,并计算出激光跟踪测量仪坐标系到双轴坐标系的转换矩阵和激光跟踪测量仪坐标系到双孔坐标系的转换矩阵

S13,机械臂(T)自动读取机械臂末端(T1)的中心在机械臂基座坐标系下的三维坐标(Xtw,Ytw,Ztw)和欧拉角(EX,EY,EZ),并计算出机械臂末端中心坐标系到机械臂基座坐标系的转换矩阵和激光跟踪测量仪坐标系到机械臂基座坐标系的转换矩阵

S14,根据步骤S12求得的和S13求得的分别得到的表达式,即:

<mrow> <msubsup> <mi>T</mi> <mi>t</mi> <mi>p</mi> </msubsup> <mo>=</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>t</mi> </msubsup> <mo>)</mo> </mrow> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> <msubsup> <mi>T</mi> <mi>w</mi> <mi>m</mi> </msubsup> <msubsup> <mi>T</mi> <mi>m</mi> <mi>p</mi> </msubsup> <mo>,</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>h</mi> </msubsup> <mo>=</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>m</mi> </msubsup> <msubsup> <mi>T</mi> <mi>m</mi> <mi>h</mi> </msubsup> </mrow>

<mrow> <msubsup> <mi>T</mi> <mi>w</mi> <mi>p</mi> </msubsup> <mo>=</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>m</mi> </msubsup> <msubsup> <mi>T</mi> <mi>m</mi> <mi>p</mi> </msubsup> <mo>,</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>h</mi> </msubsup> <mo>=</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>m</mi> </msubsup> <msubsup> <mi>T</mi> <mi>m</mi> <mi>h</mi> </msubsup> </mrow>

<mrow> <msubsup> <mi>T</mi> <mi>h</mi> <mi>p</mi> </msubsup> <mo>=</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>h</mi> </msubsup> <mo>)</mo> </mrow> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> <msubsup> <mi>T</mi> <mi>w</mi> <mi>t</mi> </msubsup> <msubsup> <mi>T</mi> <mi>t</mi> <mi>p</mi> </msubsup> </mrow>

S2,上位机控制系统(C)初始化,检查所有传感器(S)是否正常工作以及传感器(S)与上位机控制系统(C)之间通信是否正常,并对传感器(S)进行回零标定;

S3,通过上位机控制系统(C)操纵机械臂(T)以实时调整轴孔的相对位置,包括步骤:

S31,调整机械臂(T)以使双轴坐标系和双孔坐标系初步对齐,此时中除了对应原点的Z坐标值不相等之外其它值均相等,对齐前机械臂末端中心坐标系到机械臂基座坐标系的转换矩阵为双轴工件(P)坐标系到机械臂基座坐标系的转换矩阵令经调整对齐之后的机械臂末端中心坐标系到机械臂基座坐标系的转换矩阵为经调整对齐之后的双轴工件(P)坐标系到机械臂基座坐标系的转换矩阵为

S32,根据S31中的初始值,计算出调整之后的设调整对齐前后双轴坐标系到机械臂基座坐标系的转换矩阵的变化矩阵为dT,机械臂末端中心坐标系到机械臂基座坐标系的转换矩阵的变化矩阵为dT2,计算过程为:

<mrow> <msubsup> <mi>T</mi> <mi>w</mi> <mi>p</mi> </msubsup> <mo>=</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>t</mi> </msubsup> <msubsup> <mi>T</mi> <mi>t</mi> <mi>p</mi> </msubsup> </mrow>

<mrow> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>p</mi> </msubsup> <mo>=</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>h</mi> </msubsup> </mrow>

<mrow> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>p</mi> </msubsup> <mrow> <mo>(</mo> <mn>3</mn> <mo>,</mo> <mn>4</mn> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>p</mi> </msubsup> <mrow> <mo>(</mo> <mn>3</mn> <mo>,</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>p</mi> </msubsup> <mo>=</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>p</mi> </msubsup> <mi>d</mi> <mi>T</mi> <mo>&RightArrow;</mo> <mi>d</mi> <mi>T</mi> <mo>=</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>p</mi> </msubsup> <mo>)</mo> </mrow> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> <msub> <msubsup> <mi>T</mi> <mi>w</mi> <mi>p</mi> </msubsup> <mn>2</mn> </msub> </mrow>

<mrow> <msub> <msubsup> <mi>T</mi> <mi>w</mi> <mi>p</mi> </msubsup> <mn>2</mn> </msub> <mo>=</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>t</mi> </msubsup> <msubsup> <mi>T</mi> <mi>t</mi> <mi>p</mi> </msubsup> <mi>d</mi> <mi>T</mi> <mo>=</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>t</mi> </msubsup> <msub> <mi>dT</mi> <mn>2</mn> </msub> <msubsup> <mi>T</mi> <mi>t</mi> <mi>p</mi> </msubsup> <mo>&RightArrow;</mo> <msub> <mi>dT</mi> <mn>2</mn> </msub> <mo>=</mo> <msubsup> <mi>T</mi> <mi>t</mi> <mi>p</mi> </msubsup> <mi>d</mi> <mi>T</mi> <msup> <mrow> <mo>(</mo> <msubsup> <mi>T</mi> <mi>t</mi> <mi>p</mi> </msubsup> <mo>)</mo> </mrow> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> <mo>&RightArrow;</mo> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>t</mi> </msubsup> <mo>=</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>t</mi> </msubsup> <msub> <mi>dT</mi> <mn>2</mn> </msub> </mrow>

S33,根据S32中得到的解算出调整之后机械臂末端(T1)的中心在机械臂基座坐标系中的三维坐标(Xtw2,Ytw2,Ztw2)和欧拉角(EX2,EY2,EZ2),解算公式为:

<mrow> <mo>(</mo> <msub> <mi>X</mi> <mrow> <mi>t</mi> <mi>w</mi> <mn>2</mn> </mrow> </msub> <mo>,</mo> <msub> <mi>Y</mi> <mrow> <mi>t</mi> <mi>w</mi> <mn>2</mn> </mrow> </msub> <mo>,</mo> <msub> <mi>Z</mi> <mrow> <mi>t</mi> <mi>w</mi> <mn>2</mn> </mrow> </msub> <mo>)</mo> <mo>=</mo> <mo>(</mo> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>t</mi> </msubsup> <mo>(</mo> <mrow> <mn>1</mn> <mo>,</mo> <mn>4</mn> </mrow> <mo>)</mo> <mo>,</mo> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>t</mi> </msubsup> <mo>(</mo> <mrow> <mn>2</mn> <mo>,</mo> <mn>4</mn> </mrow> <mo>)</mo> <mo>,</mo> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>t</mi> </msubsup> <mo>(</mo> <mrow> <mn>3</mn> <mo>,</mo> <mn>4</mn> </mrow> <mo>)</mo> <mo>)</mo> </mrow>

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>EZ</mi> <mn>2</mn> </msub> <mo>=</mo> <mi>a</mi> <mi>tan</mi> <mn>2</mn> <mo>{</mo> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>t</mi> </msubsup> <mrow> <mo>(</mo> <mn>2</mn> <mo>,</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>,</mo> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>t</mi> </msubsup> <mrow> <mo>(</mo> <mn>1</mn> <mo>,</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>}</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>EY</mi> <mn>2</mn> </msub> <mo>=</mo> <mi>a</mi> <mi>tan</mi> <mn>2</mn> <mo>{</mo> <mo>-</mo> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>t</mi> </msubsup> <mrow> <mo>(</mo> <mn>3</mn> <mo>,</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>,</mo> <mi>cos</mi> <mrow> <mo>(</mo> <msub> <mi>EZ</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>t</mi> </msubsup> <mrow> <mo>(</mo> <mn>1</mn> <mo>,</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>+</mo> <mi>sin</mi> <mrow> <mo>(</mo> <msub> <mi>EZ</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>t</mi> </msubsup> <mrow> <mo>(</mo> <mn>2</mn> <mo>,</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>}</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>EX</mi> <mn>2</mn> </msub> <mo>=</mo> <mi>a</mi> <mi>tan</mi> <mn>2</mn> <mo>{</mo> <mi>sin</mi> <mrow> <mo>(</mo> <msub> <mi>EZ</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <mo>*</mo> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>t</mi> </msubsup> <mrow> <mo>(</mo> <mn>1</mn> <mo>,</mo> <mn>3</mn> <mo>)</mo> </mrow> <mo>-</mo> <mi>cos</mi> <mrow> <mo>(</mo> <msub> <mi>EZ</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <mo>*</mo> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>t</mi> </msubsup> <mrow> <mo>(</mo> <mn>2</mn> <mo>,</mo> <mn>3</mn> <mo>)</mo> </mrow> <mo>,</mo> <mo>-</mo> <mi>sin</mi> <mrow> <mo>(</mo> <msub> <mi>EZ</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <mo>*</mo> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>t</mi> </msubsup> <mrow> <mo>(</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>)</mo> </mrow> <mo>+</mo> <mi>cos</mi> <mrow> <mo>(</mo> <msub> <mi>EZ</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <mo>*</mo> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mn>2</mn> </mrow> <mi>t</mi> </msubsup> <mrow> <mo>(</mo> <mn>2</mn> <mo>,</mo> <mn>2</mn> <mo>)</mo> </mrow> <mo>}</mo> </mrow> </mtd> </mtr> </mtable> </mfenced>

S4,上位机控制系统(C)将机械臂末端(T1)的中心调整到步骤S33中得到的三维坐标为(Xtw2,Ytw2,Ztw2)、欧拉角为(EX2,EY2,EZ2)的位姿,完成轴孔对齐;

S5,上位机控制系统(C)采用增量型P控制方法并基于双轴工件(P)的位置反馈和双轴坐标系原点的Z坐标值与双孔坐标系原点的Z坐标值的差值大小操纵机械臂(T)运动,以使双轴工件(P)竖直下降、逐渐与双孔工件(H)接近、直至接触;

S6,上位机控制系统(C)采用阻抗控制方法并基于传感器(S)实时感测到的双轴孔装配过程中双轴工件(P)的各轴(P1)与双孔工件(H)的相应孔(H1)之间的接触力以及接触力矩操纵机械臂(T)运动,以使双轴工件(P)继续下降直至与双孔工件(H)完全配合。

6.根据权利要求5所述的双轴孔装配系统的控制方法,其特征在于,在步骤S12中,

以双轴底面圆心连线的中心为原点、连线为Yp轴、双轴工件(P)的连接板(P2)的法向量为Zp轴、由Yp叉乘Zp轴得到Xp轴建立双轴坐标系,并用激光跟踪测量仪(M)测出双轴坐标系的原点在激光跟踪测量仪坐标系下的三维坐标Op,激光跟踪测量仪坐标系与双轴坐标系的转换关系如下:

<mrow> <msubsup> <mi>T</mi> <mi>m</mi> <mi>p</mi> </msubsup> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>X</mi> <mi>p</mi> </msub> </mtd> <mtd> <msub> <mi>Y</mi> <mi>p</mi> </msub> </mtd> <mtd> <msub> <mi>Z</mi> <mi>p</mi> </msub> </mtd> <mtd> <msub> <mi>O</mi> <mi>p</mi> </msub> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow>

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>Y</mi> <mi>p</mi> </msub> <mo>=</mo> <msup> <mrow> <mo>(</mo> <mo>(</mo> <mrow> <msub> <mi>X</mi> <mrow> <mi>p</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>X</mi> <mrow> <mi>p</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> </mrow> <mo>)</mo> <mo>/</mo> <msub> <mi>C</mi> <mi>p</mi> </msub> <mo>,</mo> <mo>(</mo> <mrow> <msub> <mi>Y</mi> <mrow> <mi>p</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>Y</mi> <mrow> <mi>p</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> </mrow> <mo>)</mo> <mo>/</mo> <msub> <mi>C</mi> <mi>p</mi> </msub> <mo>,</mo> <mo>(</mo> <mrow> <msub> <mi>Z</mi> <mrow> <mi>p</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>Z</mi> <mrow> <mi>p</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> </mrow> <mo>)</mo> <mo>/</mo> <msub> <mi>C</mi> <mi>p</mi> </msub> <mo>)</mo> </mrow> <mi>T</mi> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>C</mi> <mi>p</mi> </msub> <mo>=</mo> <msqrt> <mrow> <msup> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mrow> <mi>p</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>X</mi> <mrow> <mi>p</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <msup> <mrow> <mo>(</mo> <msub> <mi>Y</mi> <mrow> <mi>p</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>Y</mi> <mrow> <mi>p</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <msup> <mrow> <mo>(</mo> <msub> <mi>Z</mi> <mrow> <mi>p</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>Z</mi> <mrow> <mi>p</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>Z</mi> <mi>p</mi> </msub> <mo>=</mo> <msup> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mrow> <mi>p</mi> <mi>n</mi> <mi>m</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>Y</mi> <mrow> <mi>p</mi> <mi>n</mi> <mi>m</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>Z</mi> <mrow> <mi>p</mi> <mi>n</mi> <mi>m</mi> </mrow> </msub> <mo>)</mo> </mrow> <mi>T</mi> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>O</mi> <mi>p</mi> </msub> <mo>=</mo> <msup> <mrow> <mo>(</mo> <mo>(</mo> <mrow> <msub> <mi>X</mi> <mrow> <mi>p</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>+</mo> <msub> <mi>X</mi> <mrow> <mi>p</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> </mrow> <mo>)</mo> <mo>/</mo> <mn>2</mn> <mo>,</mo> <mo>(</mo> <mrow> <msub> <mi>Y</mi> <mrow> <mi>p</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>+</mo> <msub> <mi>Y</mi> <mrow> <mi>p</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> </mrow> <mo>)</mo> <mo>/</mo> <mn>2</mn> <mo>,</mo> <mo>(</mo> <mrow> <msub> <mi>Z</mi> <mrow> <mi>p</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>+</mo> <msub> <mi>Z</mi> <mrow> <mi>p</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> </mrow> <mo>)</mo> <mo>/</mo> <mn>2</mn> <mo>)</mo> </mrow> <mi>T</mi> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>X</mi> <mi>p</mi> </msub> <mo>=</mo> <msub> <mi>Y</mi> <mi>p</mi> </msub> <mo>&times;</mo> <msub> <mi>Z</mi> <mi>p</mi> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced>

以双孔顶面圆心连线的中心为原点、连线为Yh轴、双孔顶面所在平面的法向量为Zh轴、由Yh叉乘Zh轴得到Xh轴建立双孔坐标系,并用激光跟踪测量仪(M)测出双孔坐标系的原点在激光跟踪测量仪坐标系下的三维坐标Oh,激光跟踪测量仪坐标系与双孔坐标系的转换关系如下:

<mrow> <msubsup> <mi>T</mi> <mi>m</mi> <mi>h</mi> </msubsup> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>X</mi> <mi>h</mi> </msub> </mtd> <mtd> <msub> <mi>Y</mi> <mi>h</mi> </msub> </mtd> <mtd> <msub> <mi>Z</mi> <mi>h</mi> </msub> </mtd> <mtd> <msub> <mi>O</mi> <mi>h</mi> </msub> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow>

<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>Y</mi> <mi>h</mi> </msub> <mo>=</mo> <msup> <mrow> <mo>(</mo> <mo>(</mo> <mrow> <msub> <mi>X</mi> <mrow> <mi>h</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>X</mi> <mrow> <mi>h</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> </mrow> <mo>)</mo> <mo>/</mo> <msub> <mi>C</mi> <mi>h</mi> </msub> <mo>,</mo> <mo>(</mo> <mrow> <msub> <mi>Y</mi> <mrow> <mi>h</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>Y</mi> <mrow> <mi>h</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> </mrow> <mo>)</mo> <mo>/</mo> <msub> <mi>C</mi> <mi>h</mi> </msub> <mo>,</mo> <mo>(</mo> <mrow> <msub> <mi>Z</mi> <mrow> <mi>h</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>Z</mi> <mrow> <mi>h</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> </mrow> <mo>)</mo> <mo>/</mo> <msub> <mi>C</mi> <mi>h</mi> </msub> <mo>)</mo> </mrow> <mi>T</mi> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>C</mi> <mi>h</mi> </msub> <mo>=</mo> <msqrt> <mrow> <msup> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mrow> <mi>h</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>X</mi> <mrow> <mi>h</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <msup> <mrow> <mo>(</mo> <msub> <mi>Y</mi> <mrow> <mi>h</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>Y</mi> <mrow> <mi>h</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <msup> <mrow> <mo>(</mo> <msub> <mi>Z</mi> <mrow> <mi>h</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>-</mo> <msub> <mi>Z</mi> <mrow> <mi>h</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>Z</mi> <mi>h</mi> </msub> <mo>=</mo> <msup> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mrow> <mi>h</mi> <mi>n</mi> <mi>m</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>Y</mi> <mrow> <mi>h</mi> <mi>n</mi> <mi>m</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>Z</mi> <mrow> <mi>h</mi> <mi>n</mi> <mi>m</mi> </mrow> </msub> <mo>)</mo> </mrow> <mi>T</mi> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>O</mi> <mi>h</mi> </msub> <mo>=</mo> <msup> <mrow> <mo>(</mo> <mo>(</mo> <mrow> <msub> <mi>X</mi> <mrow> <mi>h</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>+</mo> <msub> <mi>X</mi> <mrow> <mi>h</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> </mrow> <mo>)</mo> <mo>/</mo> <mn>2</mn> <mo>,</mo> <mo>(</mo> <mrow> <msub> <mi>Y</mi> <mrow> <mi>h</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>+</mo> <msub> <mi>Y</mi> <mrow> <mi>h</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> </mrow> <mo>)</mo> <mo>/</mo> <mn>2</mn> <mo>,</mo> <mo>(</mo> <mrow> <msub> <mi>Z</mi> <mrow> <mi>h</mi> <mi>r</mi> <mi>m</mi> </mrow> </msub> <mo>+</mo> <msub> <mi>Z</mi> <mrow> <mi>h</mi> <mi>l</mi> <mi>m</mi> </mrow> </msub> </mrow> <mo>)</mo> <mo>/</mo> <mn>2</mn> <mo>)</mo> </mrow> <mi>T</mi> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>X</mi> <mi>h</mi> </msub> <mo>=</mo> <msub> <mi>Y</mi> <mi>h</mi> </msub> <mo>&times;</mo> <msub> <mi>Z</mi> <mi>h</mi> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>;</mo> </mrow>

在步骤S13中,机械臂末端中心坐标系到机械臂基座坐标系的转换矩阵的计算公式为:

<mrow> <msubsup> <mi>T</mi> <mi>w</mi> <mi>t</mi> </msubsup> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Z</mi> <mo>)</mo> </mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Y</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Z</mi> <mo>)</mo> </mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Y</mi> <mo>)</mo> </mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>X</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>sin</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Z</mi> <mo>)</mo> </mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>X</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Z</mi> <mo>)</mo> </mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Y</mi> <mo>)</mo> </mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>X</mi> <mo>)</mo> </mrow> <mo>+</mo> <mi>sin</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Z</mi> <mo>)</mo> </mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>X</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <msub> <mi>X</mi> <mrow> <mi>t</mi> <mi>w</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Z</mi> <mo>)</mo> </mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Y</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Z</mi> <mo>)</mo> </mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Y</mi> <mo>)</mo> </mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>X</mi> <mo>)</mo> </mrow> <mo>+</mo> <mi>cos</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Z</mi> <mo>)</mo> </mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>X</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Z</mi> <mo>)</mo> </mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Y</mi> <mo>)</mo> </mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>X</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>cos</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Z</mi> <mo>)</mo> </mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>X</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <msub> <mi>Y</mi> <mrow> <mi>t</mi> <mi>w</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <mi>sin</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Y</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Y</mi> <mo>)</mo> </mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>X</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>Y</mi> <mo>)</mo> </mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>E</mi> <mi>X</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <msub> <mi>Z</mi> <mrow> <mi>t</mi> <mi>w</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow>

激光跟踪测量仪坐标系到机械臂基座坐标系的转换矩阵的计算公式为:

<mrow> <msubsup> <mi>T</mi> <mi>w</mi> <mi>m</mi> </msubsup> <msup> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mrow> <mi>t</mi> <mi>m</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>Y</mi> <mrow> <mi>t</mi> <mi>m</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>Z</mi> <mrow> <mi>t</mi> <mi>m</mi> </mrow> </msub> <mo>,</mo> <mn>1</mn> <mo>)</mo> </mrow> <mi>T</mi> </msup> <mo>=</mo> <msup> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mrow> <mi>t</mi> <mi>w</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>Y</mi> <mrow> <mi>t</mi> <mi>w</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>Z</mi> <mrow> <mi>t</mi> <mi>w</mi> </mrow> </msub> <mo>,</mo> <mn>1</mn> <mo>)</mo> </mrow> <mi>T</mi> </msup> <mo>.</mo> </mrow>

7.根据权利要求5所述的双轴孔装配系统的控制方法,其特征在于,在步骤S5中,上位机控制系统(C)中设置有竖直方向的接触力阈值,当双轴工件(P)与双孔工件(H)接触时的接触力到达该阈值后,上位机控制系统(C)控制双轴工件(P)停止下降。

8.根据权利要求5所述的双轴孔装配系统的控制方法,其特征在于,在步骤S5中,增量型P控制方法的算法为:

P1,计算第k次循环中机械臂(T)基座坐标系到双轴坐标系的转换矩阵以及此时双轴坐标系原点的Z坐标值与双孔坐标系原点的Z坐标值的差值,即:

<mrow> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mi>k</mi> </mrow> <mi>p</mi> </msubsup> <mo>=</mo> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mi>k</mi> </mrow> <mi>t</mi> </msubsup> <msubsup> <mi>T</mi> <mi>t</mi> <mi>p</mi> </msubsup> </mrow>

<mrow> <msub> <mi>e</mi> <mrow> <mi>z</mi> <mi>k</mi> </mrow> </msub> <mo>=</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>h</mi> </msubsup> <mrow> <mo>(</mo> <mn>3</mn> <mo>,</mo> <mn>4</mn> <mo>)</mo> </mrow> <mo>-</mo> <msubsup> <mi>T</mi> <mi>w</mi> <mi>p</mi> </msubsup> <mrow> <mo>(</mo> <mn>3</mn> <mo>,</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

其中,表示孔坐标系的原点的Z坐标值,表示轴坐标系的原点的Z坐标值;

P2,第k次循环中双轴坐标系原点的下移量为dZk,由于增量型P控制为比例控制,则dZk=Kpezk,计算第k+1次循环中机械臂末端(T1)的中心的三维坐标(Xtw(k+1),Ytw(k+1),Ztw(k+1)),即:

(Xtw(k+1),Ytw(k+1),Ztw(k+1))=(Xtwk,Ytwk,Ztwk+dZk)

其中Kp表示比例因子,且为一常数。

9.根据权利要求8所述的双轴孔装配系统的控制方法,其特征在于,在增量型P控制循环过程中,当双轴坐标系原点的Z坐标值与双孔坐标系原点的Z坐标值的差值小于0.001mm时,循环停止。

10.根据权利要求5所述的双轴孔装配系统的控制方法,其特征在于,在步骤S6中,阻抗控制方法的算法为:

K1,设置相关参数,Kp=0.02,Kd=0.002,Kv=5,[Fx0,Fy0,Fz0]=[5,10,20](N),[Mx0,My0,Mz0]=[0,0,0]((N·m),ZC=-5mm,其中Kp为阻抗控制中的比例因子,Kd为阻抗控制中的微分参数,Kv为阻阻抗控制中的阻尼参数,[Fx0,Fy0,Fz0]为接触力参考值,[Mx0,My0,Mz0]为接触力矩参考值,ZC为机械臂末端T1的中心的Z坐标总下移量;

K2,在第k次循环中,由力传感器(S)采集到的接触力和接触力矩分别为[Fxk,Fyk,Fzk]、[Mxk,Myk,Mzk],即:

Fk=[Fxk,Fyk,Fzk,Mxk,Myk,Mzk]

dFk=[Fx0-Fxk,Fy0-Fyk,Fz0-Fzk,Mx0-Mxk,My0-Myk,Mz0-Mzk],

其中,Fk为第k次循环中接触力和接触力矩构成的六维力,dFk为接触力与接触力参考值的差以及接触力矩与接触力矩参考值的差构成的六维力;

K3,计算第k次循环中需要调整的位姿,即机械臂末端中心坐标系的原点平移量(dXk,dYk,dZk)和各坐标轴的转动量,计算公式为:

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>dX</mi> <mi>k</mi> </msub> <mo>=</mo> <msub> <mi>dX</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <mn>0.1</mn> <msub> <mi>K</mi> <mi>p</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mo>(</mo> <mn>1</mn> <mo>)</mo> <mo>-</mo> <msub> <mi>dF</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>(</mo> <mn>1</mn> <mo>)</mo> <mo>+</mo> <mn>0.1</mn> <msub> <mi>K</mi> <mi>d</mi> </msub> <mo>(</mo> <mrow> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>-</mo> <mn>2</mn> <msub> <mi>dF</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>dF</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>2</mn> </mrow> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>dY</mi> <mi>k</mi> </msub> <mo>=</mo> <msub> <mi>dY</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <mn>0.1</mn> <msub> <mi>K</mi> <mi>p</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mo>(</mo> <mn>2</mn> <mo>)</mo> <mo>-</mo> <msub> <mi>dF</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>(</mo> <mn>2</mn> <mo>)</mo> <mo>+</mo> <mn>0.1</mn> <msub> <mi>K</mi> <mi>d</mi> </msub> <mo>(</mo> <mrow> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> <mo>-</mo> <mn>2</mn> <msub> <mi>dF</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>dF</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>2</mn> </mrow> </msub> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>dZ</mi> <mi>k</mi> </msub> <mo>=</mo> <msub> <mi>dZ</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <msub> <mi>K</mi> <mi>p</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mo>(</mo> <mn>3</mn> <mo>)</mo> <mo>-</mo> <msub> <mi>dF</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>(</mo> <mn>3</mn> <mo>)</mo> <mo>+</mo> <msub> <mi>K</mi> <mi>d</mi> </msub> <mo>(</mo> <mrow> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> <mo>-</mo> <mn>2</mn> <msub> <mi>dF</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>dF</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>2</mn> </mrow> </msub> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>d&theta;</mi> <mrow> <mi>x</mi> <mi>k</mi> </mrow> </msub> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mn>0.01</mn> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> <mo>/</mo> <mo>|</mo> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> <mo>|</mo> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>i</mi> <mi>f</mi> </mrow> </mtd> <mtd> <mrow> <mo>|</mo> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> <mo>|</mo> <mo>&gt;</mo> <mn>0.5</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>0</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>i</mi> <mi>f</mi> </mrow> </mtd> <mtd> <mrow> <mo>|</mo> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> <mo>|</mo> <mo>&le;</mo> <mn>0.5</mn> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>d&theta;</mi> <mrow> <mi>y</mi> <mi>k</mi> </mrow> </msub> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mn>0.01</mn> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> <mo>/</mo> <mo>|</mo> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> <mo>|</mo> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>i</mi> <mi>f</mi> </mrow> </mtd> <mtd> <mrow> <mo>|</mo> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> <mo>|</mo> <mo>&gt;</mo> <mn>0.5</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>0</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>i</mi> <mi>f</mi> </mrow> </mtd> <mtd> <mrow> <mo>|</mo> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> <mo>|</mo> <mo>&le;</mo> <mn>0.5</mn> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>d&theta;</mi> <mrow> <mi>z</mi> <mi>k</mi> </mrow> </msub> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mn>0.01</mn> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> <mo>/</mo> <mo>|</mo> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> <mo>|</mo> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>i</mi> <mi>f</mi> </mrow> </mtd> <mtd> <mrow> <mo>|</mo> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> <mo>|</mo> <mo>&gt;</mo> <mn>0.5</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>0</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>i</mi> <mi>f</mi> </mrow> </mtd> <mtd> <mrow> <mo>|</mo> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> <mo>|</mo> <mo>&le;</mo> <mn>0.5</mn> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>V</mi> <mrow> <mi>z</mi> <mi>k</mi> </mrow> </msub> <mo>=</mo> <msub> <mi>K</mi> <mi>v</mi> </msub> <mo>|</mo> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>dF</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> <mo>|</mo> </mrow> </mtd> </mtr> </mtable> </mfenced>

其中,dXk为第k次循环中机械臂末端中心的原点在X方向的平移量、dYk为第k次循环中机械臂末端中心的原点在Y方向的平移量、dZk为第k次循环中机械臂末端中心的原点在Z方向的平移量、dθxk为第k次循环中机械臂末端中心坐标系绕X坐标轴的转动量、dθyk为第k次循环中机械臂末端中心坐标系绕Y坐标轴的转动量、dθzk为第k次循环中机械臂末端中心坐标系绕Z坐标轴的转动量,dXk-1为第k-1次循环中机械臂末端中心的原点在X方向的平移量、dYk-1为第k-1次循环中机械臂末端中心的原点在Y方向的平移量,dZk-1为第k-1次循环中机械臂末端中心的原点在Z方向的平移量,dFk-1为第k-1次循环中接触力与接触力参考值的差以及接触力矩与接触力矩参考值的差构成的六维力,dFk-2为第k-2次循环中接触力与接触力参考值的差以及接触力矩与接触力矩参考值的差构成的六维力,dFk(1)为dFk表达式中的第一个值,dFk(2)为dFk表达式中的第二个值,dFk(3)、dFk(4)、dFk(5)、dFk(6)依次类推,同理,dFk-1(1)为dFk-1表达式中的第一个值,dFk-2(1)为dFk-2表达式中的第一个值,依次类推;K4,根据K3中得到的dXk、dYk、dZk、dθxk、dθyk、dθzk,计算机械臂末端中心坐标系的原点需要调整的变换矩阵dTkpos、以及各坐标轴需要调整的变换矩阵dTkx、dTky、dTkz,计算公式为:

<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>dT</mi> <mrow> <mi>k</mi> <mi>p</mi> <mi>o</mi> <mi>s</mi> </mrow> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <msub> <mi>dX</mi> <mi>k</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <msub> <mi>dY</mi> <mi>k</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mrow> <msub> <mi>dZ</mi> <mi>k</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>dT</mi> <mrow> <mi>k</mi> <mi>x</mi> </mrow> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mrow> <mo>(</mo> <msub> <mi>d&theta;</mi> <mrow> <mi>x</mi> <mi>k</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <msub> <mi>d&theta;</mi> <mrow> <mi>x</mi> <mi>k</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>sin</mi> <mrow> <mo>(</mo> <msub> <mi>d&theta;</mi> <mrow> <mi>x</mi> <mi>k</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <msub> <mi>d&theta;</mi> <mrow> <mi>x</mi> <mi>k</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>dT</mi> <mrow> <mi>k</mi> <mi>y</mi> </mrow> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <msub> <mi>d&theta;</mi> <mrow> <mi>y</mi> <mi>k</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <msub> <mi>d&theta;</mi> <mrow> <mi>y</mi> <mi>k</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <msub> <mi>d&theta;</mi> <mrow> <mi>y</mi> <mi>k</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <msub> <mi>d&theta;</mi> <mrow> <mi>y</mi> <mi>k</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>dT</mi> <mrow> <mi>k</mi> <mi>z</mi> </mrow> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <msub> <mi>d&theta;</mi> <mrow> <mi>z</mi> <mi>k</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mi>sin</mi> <mrow> <mo>(</mo> <msub> <mi>d&theta;</mi> <mrow> <mi>z</mi> <mi>k</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>sin</mi> <mrow> <mo>(</mo> <msub> <mi>d&theta;</mi> <mrow> <mi>z</mi> <mi>k</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <msub> <mi>d&theta;</mi> <mrow> <mi>z</mi> <mi>k</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>;</mo> </mrow>

K5,根据K4中得到的dTkx、dTky、dTkz,计算机械臂末端中心坐标系需要调整的总变换矩阵dTk,以及变换之后的机械臂基座坐标系到机械臂末端中心坐标系的转换矩阵计算公式为:

dTk=dTkxdTkydTkzdTkpos

<mrow> <msubsup> <mi>T</mi> <mrow> <mi>w</mi> <mi>k</mi> </mrow> <mi>t</mi> </msubsup> <mo>=</mo> <msubsup> <mi>T</mi> <mi>t</mi> <mi>p</mi> </msubsup> <msub> <mi>dT</mi> <mrow> <mi>k</mi> <mi>x</mi> </mrow> </msub> <msub> <mi>dT</mi> <mrow> <mi>k</mi> <mi>y</mi> </mrow> </msub> <msub> <mi>dT</mi> <mrow> <mi>k</mi> <mi>z</mi> </mrow> </msub> <msub> <mi>dT</mi> <mrow> <mi>k</mi> <mi>p</mi> <mi>o</mi> <mi>s</mi> </mrow> </msub> <msup> <mrow> <mo>(</mo> <msubsup> <mi>T</mi> <mi>t</mi> <mi>p</mi> </msubsup> <mo>)</mo> </mrow> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> </mrow>

K6,根据K2-K5中给出的计算式,分别计算每次循环调整后的机械臂末端(T1)的中心的位姿,直到机械臂末端T1的中心的Z坐标总下移量接近设定的ZC值;

K7,改变K1中的相关参数,即接触力参考值为[Fx,Fy,Fz]=[0,0,50](N),接触力矩参考值为[Mx,My,Mz]=[0,0,0](N·m),Z坐标总下移量ZC=-100mm,继续按照K2-K5中给出的计算式计算出每次循环调整后的机械臂末端(T1)的中心的位姿,直到机械臂末端T1的中心的Z坐标总下移量接近设定的ZC值。

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