发明名称 一种机器人手眼定位方法
摘要 本发明属于机械自动化技术领域,具体涉及一种机器人手眼定位方法。该方法首先在基准工件上贴上标定板,然后建立视觉坐标系并计算基准工件上所有点在视觉坐标系下的坐标,再将基准工件和标定板移动到机器人工位下,通过视觉坐标系和机器人坐标系的转换,最终得到基准工件上所有点的坐标。通过该方法适用于定位范围大、定位精度高的机器人流水线作业。
申请公布号 CN104260112B 申请公布日期 2016.05.18
申请号 CN201410477611.5 申请日期 2014.09.18
申请人 西安航天精密机电研究所 发明人 杨小亭;李汉舟;罗华;张栋栋
分类号 B25J19/00(2006.01)I;B25J19/04(2006.01)I 主分类号 B25J19/00(2006.01)I
代理机构 西安智邦专利商标代理有限公司 61211 代理人 陈广民
主权项 一种机器人手眼定位方法,其特征在于:包括以下步骤:1)建立视觉坐标系:1.1)选取基准工件任意两点为拍摄点,基准工件上的其余点为计算点;设任意两点记为B<sub>1</sub>点和B<sub>2</sub>;1.2)调整流水线上基准工件的位置,使得两个拍摄点连线在图像坐标系中投影与图像坐标系的纵坐标轴平行;1.3)在基准工件上贴上标定板;所述标定板上设置有点矩阵;点矩阵中每一行点的连线都与图像坐标系的横坐标轴平行,每一列点连线与纵坐标轴平行;将点矩阵中任意一点设为原点,原点水平方向上的所有点的连线为横坐标轴,原点竖直方向上的所有点的连线为纵坐标轴,建立视觉坐标系(x<sup>v</sup>,y<sup>v</sup>);2)计算各点在视觉坐标系下的坐标:2.1)根据标定板上点矩阵中任意两点的实际距离以及拍摄的任意两点的像素值之差的比值计算实际物理尺寸系数;实际物理尺寸系数的具体计算式为:K<sub>x</sub>=L/M<sub>x</sub>,K<sub>y</sub>=L/M<sub>y</sub>其中,标定板上点矩阵中任意两点的实际距离为定值,设为L;M<sub>x</sub>为拍摄的任意两点横坐标方向上的像素值之差,M<sub>y</sub>为拍摄的任意两点纵坐标方向上的像素值之差;K<sub>x</sub>为横坐标方向上的实际物理尺寸系数,K<sub>y</sub>为纵坐标方向上的实际物理尺寸系数;2.2)根据拍摄的B<sub>1</sub>点的像素以及视觉坐标系原点的像素值,计算B<sub>1</sub>点在视觉坐标系下的坐标,具体计算式为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msubsup><mi>x</mi><mrow><mi>B</mi><mn>1</mn></mrow><mi>v</mi></msubsup><mo>=</mo><msub><mi>k</mi><mi>x</mi></msub><mo>&CenterDot;</mo><mrow><mo>(</mo><msubsup><mi>x</mi><mrow><mi>B</mi><mn>1</mn></mrow><mi>p</mi></msubsup><mo>-</mo><msubsup><mi>x</mi><mn>0</mn><mi>p</mi></msubsup><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msubsup><mi>y</mi><mrow><mi>B</mi><mn>1</mn></mrow><mi>v</mi></msubsup><mo>=</mo><mo>-</mo><msub><mi>k</mi><mi>y</mi></msub><mo>&CenterDot;</mo><mrow><mo>(</mo><msubsup><mi>y</mi><mrow><mi>B</mi><mn>1</mn></mrow><mi>p</mi></msubsup><mo>-</mo><msubsup><mi>y</mi><mn>0</mn><mi>p</mi></msubsup><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000818949200000021.GIF" wi="1182" he="239" /></maths>其中,B<sub>1</sub>点的像素值为<img file="FDA0000818949200000023.GIF" wi="286" he="79" />B<sub>1</sub>点在视觉坐标系下的坐标为<img file="FDA0000818949200000024.GIF" wi="268" he="73" />视觉坐标系原点的像素值为<img file="FDA0000818949200000025.GIF" wi="278" he="76" />2.3)根据基准工件的实际结构尺寸,即基准工件上其余点相对于B1点的位置以及基准工件上其余点相对于B<sub>1</sub>和B<sub>2</sub>点连线角度,计算出基准工件上所有点在视觉坐标系下的坐标:设具体计算式为:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msup><mi>X</mi><mi>v</mi></msup><mo>=</mo><mi>d</mi><mi>x</mi><mo>&CenterDot;</mo><mi>c</mi><mi>o</mi><mi>s</mi><mi>&theta;</mi><mo>-</mo><mi>d</mi><mi>y</mi><mo>&CenterDot;</mo><mi>s</mi><mi>i</mi><mi>n</mi><mi>&theta;</mi><mo>+</mo><msubsup><mi>x</mi><mrow><mi>B</mi><mn>1</mn></mrow><mi>v</mi></msubsup></mrow></mtd></mtr><mtr><mtd><mrow><msup><mi>Y</mi><mi>v</mi></msup><mo>=</mo><mi>d</mi><mi>x</mi><mo>&CenterDot;</mo><mi>sin</mi><mi>&theta;</mi><mo>+</mo><mi>d</mi><mi>y</mi><mo>&CenterDot;</mo><mi>cos</mi><mi>&theta;</mi><mo>+</mo><msubsup><mi>y</mi><mrow><mi>B</mi><mn>1</mn></mrow><mi>v</mi></msubsup></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000818949200000022.GIF" wi="1262" he="170" /></maths>(dx,dy)为基准工件上其余点相对于B1点的位置;θ为基准工件上其余点与B1点的连线相对于B<sub>1</sub>和B<sub>2</sub>点连线角度;3)将基准工件连同标定板移动到机器人工位下;4)视觉坐标系转换为机器人坐标系:判断机器人的类型为打孔机器人还是装配机器人;若为打孔机器人,则执行步骤4.1;若为装配机器人,则执行步骤4.2;4.1)获取基准工件上所有点在打孔机器人坐标系下的坐标:4.1.1)将基准工件移动至打孔机器人的工位下,获取点矩阵中原点在机器人坐标系下的坐标值并将坐标值作为视觉坐标系在机器人坐标系下的平移量;4.1.2)计算视觉坐标系纵坐标轴与机器人坐标系纵坐标轴的偏转角以及视觉坐标系横坐标轴与机器人坐标系横坐标轴的偏转角;4.1.2.1)取点矩阵上至少两列点连线,分别取每一列点连线与机器人坐标系纵坐标轴的夹角,按照求和取平均值的算法,获得视觉坐标系纵坐标轴与机器人坐标系纵坐标轴的偏转角;4.1.2.2)取点矩阵上至少两行点连线,分别取每一行点连线与机器人坐标系横坐标轴的夹角,按照求和取平均值的算法,获得视觉坐标系横坐标轴与机器人坐标系横坐标轴的偏转角;4.1.3)根据标定板点矩阵中点连线的实际长度与机器人坐标系的投影关系,获取点连线实际长度与机器人坐标系下点连线的长度之比;4.1.4)视觉坐标系到机器人坐标系的转换公式为:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msup><mi>x</mi><mi>r</mi></msup><mo>=</mo><mrow><mo>(</mo><msup><mi>X</mi><mi>v</mi></msup><mo>&CenterDot;</mo><msub><mi>cos&theta;</mi><mi>y</mi></msub><mo>-</mo><msup><mi>Y</mi><mi>v</mi></msup><mo>&CenterDot;</mo><msub><mi>cos&theta;</mi><mi>y</mi></msub><mo>)</mo></mrow><mo>/</mo><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><msub><mi>&theta;</mi><mi>y</mi></msub><mo>)</mo></mrow><mo>&CenterDot;</mo><msub><msup><mi>L</mi><mo>&prime;</mo></msup><mi>x</mi></msub><mo>/</mo><msub><mi>L</mi><mi>x</mi></msub><mo>+</mo><msubsup><mi>x</mi><mn>0</mn><mi>r</mi></msubsup></mrow></mtd></mtr><mtr><mtd><mrow><msup><mi>y</mi><mi>r</mi></msup><mo>=</mo><mo>-</mo><mrow><mo>(</mo><msup><mi>Y</mi><mi>v</mi></msup><mo>&CenterDot;</mo><msub><mi>cos&theta;</mi><mi>x</mi></msub><mo>+</mo><msup><mi>X</mi><mi>v</mi></msup><mo>&CenterDot;</mo><msub><mi>cos&theta;</mi><mi>x</mi></msub><mo>)</mo></mrow><mo>/</mo><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><msub><mi>&theta;</mi><mi>x</mi></msub><mo>)</mo></mrow><mo>&CenterDot;</mo><msub><msup><mi>L</mi><mo>&prime;</mo></msup><mi>y</mi></msub><mo>/</mo><msub><mi>L</mi><mi>y</mi></msub><mo>+</mo><msubsup><mi>y</mi><mn>0</mn><mi>r</mi></msubsup></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000818949200000031.GIF" wi="1469" he="165" /></maths>其中:<img file="FDA0000818949200000032.GIF" wi="179" he="69" />为点矩阵中原点在机器人坐标系下的坐标值;L<sub>x</sub>、L<sub>y</sub>为点矩阵中点连线的实际长度;L'<sub>x</sub>、L'<sub>y</sub>为机器人坐标系下点矩阵中点连线的长度;θ<sub>x</sub>为视觉坐标系横坐标轴与机器人坐标系横坐标轴的偏转角;θ<sub>y</sub>为视觉坐标系纵坐标轴与机器人坐标系纵坐标轴的偏转角;4.2)获取基准工件上所有点在装配机器人坐标系下的坐标:4.2.1)将基准工件移动至装配机器人的工位下,调整机器人末端安装板与基准工件平行,记录此时的机器人末端旋转角度;4.2.2)获取点矩阵中原点在机器人坐标系下的坐标值作为视觉坐标系在机器人坐标系下的平移量;4.2.3)分别取点矩阵中任意行的点连线与机器人坐标系的横坐标轴之间的夹角以及点矩阵中任意列的点连线与机器人坐标系的纵坐标轴之间的夹角;按照求和取平均值的算法计算视觉坐标系与机器人坐标系的偏转角;4.2.4)获得视觉坐标系到机器人坐标系的转换公式为:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msubsup><mi>x</mi><mn>1</mn><mi>r</mi></msubsup><mo>=</mo><msup><mi>x</mi><mi>r</mi></msup><mo>+</mo><mi>L</mi><mo>&CenterDot;</mo><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><msub><mi>&theta;</mi><mn>1</mn></msub><mo>+</mo><msub><mi>&theta;</mi><mi>L</mi></msub><mo>)</mo></mrow><mo>-</mo><mi>L</mi><mo>&CenterDot;</mo><mi>cos</mi><mrow><mo>(</mo><msub><mi>&theta;</mi><mn>1</mn></msub><mo>+</mo><msub><mi>&theta;</mi><mi>L</mi></msub><mo>+</mo><msub><mi>&theta;</mi><mn>0</mn></msub><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msubsup><mi>y</mi><mn>1</mn><mi>r</mi></msubsup><mo>=</mo><msup><mi>y</mi><mi>r</mi></msup><mo>+</mo><mi>L</mi><mo>&CenterDot;</mo><mi>sin</mi><mrow><mo>(</mo><msub><mi>&theta;</mi><mn>1</mn></msub><mo>+</mo><msub><mi>&theta;</mi><mi>L</mi></msub><mo>)</mo></mrow><mo>-</mo><mi>L</mi><mo>&CenterDot;</mo><mi>cos</mi><mrow><mo>(</mo><msub><mi>&theta;</mi><mn>1</mn></msub><mo>+</mo><msub><mi>&theta;</mi><mi>L</mi></msub><mo>+</mo><msub><mi>&theta;</mi><mn>0</mn></msub><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000818949200000041.GIF" wi="1220" he="167" /></maths>其中:L为机器人旋转轴点到机器人末端安装板上对准点的距离;θ<sub>L</sub>为机器人末端旋转轴点与机器人末端安装板上对准点的连线与视觉坐标系横坐标的夹角;θ<sub>1</sub>为视觉坐标系与机器人坐标系的偏转角;θ<sub>0</sub>为机器人末端旋转角度;5)机器人根据得到的工件在机器人坐标系下的坐标对工件进行拾取。
地址 710100 陕西省西安市151信箱北塬分箱