1.一种基于管路柔性装焊的导管余量切割位置计算方法,其应用于基于视觉测量和机器人的航空航天类管路柔性装焊设备,所述设备包括软件和硬件两部分,其中硬件主要包括视觉测量设备、工业机器人、导管切割机以及导管夹具,软件部分主要包括余量计算模块、位姿计算模块和机器人运动仿真模拟模块;
其特征在于:所述方法包含如下步骤:
步骤一:根据测量得到的导管余量端中心点坐标Pm(xm,ym,zm)和机器人抓取导管测量时的位姿Tm TCP,计算导管余量端中心点在机器人TCP坐标系下的坐标Ptcp(xt,yt,zt),
<mrow>
<msub>
<mi>P</mi>
<mrow>
<mi>t</mi>
<mi>c</mi>
<mi>p</mi>
</mrow>
</msub>
<mo>=</mo>
<msup>
<mi>T</mi>
<mi>m</mi>
</msup>
<msup>
<msub>
<mrow></mrow>
<mrow>
<mi>T</mi>
<mi>C</mi>
<mi>P</mi>
</mrow>
</msub>
<mrow>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msup>
<mo>&times;</mo>
<msub>
<mi>P</mi>
<mi>m</mi>
</msub>
<mo>=</mo>
<msup>
<mfenced open = "(" close = ")">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>nx</mi>
<mrow>
<mi>m</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>ox</mi>
<mrow>
<mi>m</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>ax</mi>
<mrow>
<mi>m</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<msub>
<mi>x</mi>
<mrow>
<mi>m</mi>
<mi>t</mi>
</mrow>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>ny</mi>
<mrow>
<mi>m</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>oy</mi>
<mrow>
<mi>m</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>ay</mi>
<mrow>
<mi>m</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<msub>
<mi>y</mi>
<mrow>
<mi>m</mi>
<mi>t</mi>
</mrow>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>nz</mi>
<mrow>
<mi>m</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>oz</mi>
<mrow>
<mi>m</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>az</mi>
<mrow>
<mi>m</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<msub>
<mi>z</mi>
<mrow>
<mi>m</mi>
<mi>t</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>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msup>
<mo>&times;</mo>
<mfenced open = "(" close = ")">
<mtable>
<mtr>
<mtd>
<msub>
<mi>x</mi>
<mi>m</mi>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>y</mi>
<mi>m</mi>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>z</mi>
<mi>m</mi>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>1</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
步骤二:结合机器人回归零位时的位姿Ts TCP,计算机器人回归零位时,导管余量端中心点坐标Ps(xs,ys,zs),
<mrow>
<msub>
<mi>P</mi>
<mi>s</mi>
</msub>
<mo>=</mo>
<msub>
<msup>
<mi>T</mi>
<mi>s</mi>
</msup>
<mrow>
<mi>T</mi>
<mi>C</mi>
<mi>P</mi>
</mrow>
</msub>
<mo>&times;</mo>
<msub>
<mi>P</mi>
<mrow>
<mi>t</mi>
<mi>c</mi>
<mi>p</mi>
</mrow>
</msub>
<mo>=</mo>
<mfenced open = "(" close = ")">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>nx</mi>
<mrow>
<mi>s</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>ox</mi>
<mrow>
<mi>s</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>ax</mi>
<mrow>
<mi>s</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<msub>
<mi>x</mi>
<mrow>
<mi>s</mi>
<mi>t</mi>
</mrow>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>ny</mi>
<mrow>
<mi>s</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>oy</mi>
<mrow>
<mi>s</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>ay</mi>
<mrow>
<mi>s</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<msub>
<mi>y</mi>
<mrow>
<mi>s</mi>
<mi>t</mi>
</mrow>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>nz</mi>
<mrow>
<mi>s</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>oz</mi>
<mrow>
<mi>s</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>az</mi>
<mrow>
<mi>s</mi>
<mi>t</mi>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<msub>
<mi>z</mi>
<mrow>
<mi>s</mi>
<mi>t</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>
<mo>&times;</mo>
<mfenced open = "(" close = ")">
<mtable>
<mtr>
<mtd>
<msub>
<mi>x</mi>
<mi>t</mi>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>y</mi>
<mi>t</mi>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>z</mi>
<mi>t</mi>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<mn>1</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</mrow>
步骤三:结合测量到的导管余量A,以及从导管三维数模得到的余量端面与机器人夹持直线段的夹角θ,计算导管余量切割位置,根据导管三维信息可求得余量端面法向与导管夹持直线段的夹角θ:
<mrow>
<mi>c</mi>
<mi>o</mi>
<mi>s</mi>
<mi>&theta;</mi>
<mo>=</mo>
<mfrac>
<mrow>
<msub>
<mi>vx</mi>
<mi>l</mi>
</msub>
<mo>&CenterDot;</mo>
<msub>
<mi>vx</mi>
<mi>p</mi>
</msub>
<mo>+</mo>
<msub>
<mi>vy</mi>
<mi>l</mi>
</msub>
<mo>&CenterDot;</mo>
<msub>
<mi>vy</mi>
<mi>p</mi>
</msub>
<mo>+</mo>
<msub>
<mi>vz</mi>
<mi>l</mi>
</msub>
<mo>&CenterDot;</mo>
<msub>
<mi>vz</mi>
<mi>p</mi>
</msub>
</mrow>
<mrow>
<msqrt>
<mrow>
<msup>
<msub>
<mi>vx</mi>
<mi>l</mi>
</msub>
<mn>2</mn>
</msup>
<mo>+</mo>
<msup>
<msub>
<mi>vy</mi>
<mi>l</mi>
</msub>
<mn>2</mn>
</msup>
<mo>+</mo>
<msup>
<msub>
<mi>vz</mi>
<mi>l</mi>
</msub>
<mn>2</mn>
</msup>
</mrow>
</msqrt>
<mo>&CenterDot;</mo>
<msqrt>
<mrow>
<msup>
<msub>
<mi>vx</mi>
<mi>p</mi>
</msub>
<mn>2</mn>
</msup>
<mo>+</mo>
<msup>
<msub>
<mi>vy</mi>
<mi>p</mi>
</msub>
<mn>2</mn>
</msup>
<mo>+</mo>
<msup>
<msub>
<mi>vz</mi>
<mi>p</mi>
</msub>
<mn>2</mn>
</msup>
</mrow>
</msqrt>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</mrow>
其中(vxl,vyl,vzl)为机器人所抓取导管直线段的方向向量,(vxp,vyp,vzp)为导管余量端面的法向向量,
余量切割位置可用一个平面表示,该平面与管路轴线的交点坐标Pc(xc,yc,zc)可由下式求得:
<mrow>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>x</mi>
<mi>c</mi>
</msub>
<mo>=</mo>
<msub>
<mi>x</mi>
<mi>s</mi>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>y</mi>
<mi>c</mi>
</msub>
<mo>=</mo>
<msub>
<mi>y</mi>
<mi>s</mi>
</msub>
<mo>-</mo>
<mi>d</mi>
<mo>&CenterDot;</mo>
<mi>c</mi>
<mi>o</mi>
<mi>s</mi>
<mi>&theta;</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>z</mi>
<mi>c</mi>
</msub>
<mo>=</mo>
<msub>
<mi>z</mi>
<mi>s</mi>
</msub>
<mo>-</mo>
<mi>d</mi>
<mo>&CenterDot;</mo>
<mi>sin</mi>
<mi>&theta;</mi>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</mrow>
其中d为导管余量长度,则余量切割位置平面方程为:
0·(x-xc)+cosθ·(y-yc)+sinθ·(z-zc)=0 (5)
导管与该平面相交的轮廓是一个圆,该圆满足下式:
(x-xc)2+(y-yc)2+(z-zc)2=R2 (6)
实际生产中,可用轮廓圆上四个点P1、P2、P3、P4来表示,联立公式(5)~(6),将x值分别取xc,xc+R,xc-R,可求得四点坐标,
进而可以得到四个余量切割点P1、P2、P3、P4。