发明名称 用于Stewart平台构型的六自由度并联机器人基准位姿标定方法
摘要 本发明公开了一种用于Stewart平台构型的六自由度并联机器人基准位姿标定方法,步骤为:建立基座坐标系{O}和运动平台坐标系{P};在六自由度并联机器人机构开链情况下,标定并联机器人的胡克铰中心和球铰中心分别在{O}和{P}下的位置坐标向量;在运动平台上选取三个标记点,测出其在运动平台坐标系下的局部坐标;在每条支腿电动缸的推杆伸出端安装光耦限位开关,组装并联机器人形成闭链机构;分别控制六自由度并联机器人的各条支腿匀速缓慢缩短直至各个光耦限位开关均触发并先后激发六条支腿停止运动,产生运动平台的基准位姿;测量运动平台上三个标记点,解算并联机器人的基准位姿;根据基准位姿解算出基准位姿对应的支腿初始长度。本发明重复定位精度高、可靠性强。
申请公布号 CN104390612B 申请公布日期 2017.03.08
申请号 CN201410322598.6 申请日期 2014.07.08
申请人 西安电子科技大学 发明人 段学超;陈光达;崔传贞;段清娟;葛世滨;保宏;米建伟;张刚
分类号 G01B21/00(2006.01)I 主分类号 G01B21/00(2006.01)I
代理机构 北京科亿知识产权代理事务所(普通合伙) 11350 代理人 汤东凤
主权项 用于Stewart平台构型的六自由度并联机器人基准位姿标定方法,其特征在于:包括如下步骤:(1)分别在并联机器人的基座上建立基座坐标系{O},在运动平台上建立运动平台坐标系{P};(2)在六自由度并联机器人机构开链的情况下,采用三坐标测量仪器,标定并联机器人的6个胡克铰中心B<sub>i</sub>和6个球铰中心P<sub>i</sub>分别在{O}和{P}下的位置坐标向量<sup>O</sup>b<sub>i</sub>和<sup>P</sup>p<sub>i</sub>;其中,下标i=1,2,…,6,表示胡克铰、球铰的序号;(3)在运动平台上选取三个标记点C<sub>j</sub>,分别测出它们在运动平台坐标系下的局部坐标<sup>O</sup>c<sub>i</sub>;其中,下标i=1,2,3,表示标记点的序号;(4)在每条支腿电动缸的推杆伸出端安装光耦限位开关,组装并联机器人形成闭链机构;(5)分别控制六自由度并联机器人的各条支腿匀速缓慢缩短直至各个光耦限位开关均触发并先后激发六条支腿停止运动,产生运动平台的基准位姿;(6)测量运动平台上三个标记点C<sub>j</sub>,解算此时运动平台相对于基座平台坐标系的位姿,即为并联机器人的基准位姿;具体步骤为:a)测得此时三个标记点在{O}下的坐标为<sup>O</sup>d<sub>i</sub>=(x<sub>di</sub>,y<sub>di</sub>,z<sub>di</sub>);第(2)步中测得的三个标记点在{P}下的坐标为<sup>P</sup>c<sub>j</sub>=(x<sub>cj</sub>,y<sub>cj</sub>,z<sub>cj</sub>),以上i,j=1,2,3;其中,{O}表示基座坐标系;{P}表示运动平台坐标系;b)建立过渡坐标系{K},以运动平台上的标记点C<sub>1</sub>为{K}的原点,{K}的x轴线通过标记点C<sub>2</sub>,使得标记点C<sub>3</sub>位于{K}的xy坐标平面上;c)按如下步骤计算{K}相对于{P}的齐次坐标变换矩阵:记<sup>P</sup>p<sub>ij</sub>为{P}中标记点i指向标记点j的矢量,其中i,j=1,2,3且i≠j,则<sup>P</sup>p<sub>12</sub>即为{K}的x轴正方向,则<sup>P</sup>p<sub>13</sub>在{K}系y轴上的投影矢量为<img file="FDA0001173630160000021.GIF" wi="1182" he="95" />分别得到<sup>P</sup>p<sub>12</sub>和<img file="FDA0001173630160000022.GIF" wi="302" he="78" />的单位矢量<img file="FDA0001173630160000023.GIF" wi="386" he="87" />与<img file="FDA0001173630160000024.GIF" wi="790" he="95" />由a)中{K}的建立准则可知,<img file="FDA0001173630160000025.GIF" wi="94" he="71" />即为{K}系x轴的单位矢量在{P}系中的矢量表达式,<img file="FDA0001173630160000026.GIF" wi="98" he="70" />即为{K}的y向单位矢量在{P}中的表示形式,且<img file="FDA0001173630160000027.GIF" wi="329" he="71" />则{K}相对于{P}的旋转变换矩阵为:<maths num="0001"><math><![CDATA[<mrow><mmultiscripts><mi>R</mi><mprescripts/><mi>K</mi><mi>P</mi></mmultiscripts><mo>=</mo><mo>&lsqb;</mo><mtable><mtr><mtd><mrow><msub><mmultiscripts><mover><mi>X</mi><mo>^</mo></mover><mprescripts/><none/><mi>P</mi></mmultiscripts><mi>K</mi></msub></mrow></mtd><mtd><mrow><msub><mmultiscripts><mover><mi>Y</mi><mo>^</mo></mover><mprescripts/><none/><mi>P</mi></mmultiscripts><mi>K</mi></msub></mrow></mtd><mtd><mrow><msub><mmultiscripts><mover><mi>Z</mi><mo>^</mo></mover><mprescripts/><none/><mi>P</mi></mmultiscripts><mi>K</mi></msub></mrow></mtd></mtr></mtable><mo>&rsqb;</mo><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>r</mi><mn>11</mn></msub></mtd><mtd><msub><mi>r</mi><mn>12</mn></msub></mtd><mtd><msub><mi>r</mi><mn>13</mn></msub></mtd></mtr><mtr><mtd><msub><mi>r</mi><mn>21</mn></msub></mtd><mtd><msub><mi>r</mi><mn>22</mn></msub></mtd><mtd><msub><mi>r</mi><mn>23</mn></msub></mtd></mtr><mtr><mtd><msub><mi>r</mi><mn>31</mn></msub></mtd><mtd><msub><mi>r</mi><mn>32</mn></msub></mtd><mtd><msub><mi>r</mi><mn>33</mn></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0001173630160000028.GIF" wi="838" he="222" /></maths>{K}的原点在{P}中的坐标矢量为<sup>P</sup>P<sub>KORG</sub>=(x<sub>c1</sub>,y<sub>c1</sub>,z<sub>c1</sub>)<sup>T</sup>,则通过<img file="FDA0001173630160000029.GIF" wi="80" he="63" />与<sup>P</sup>P<sub>KORG</sub>,可得到{K}相对于{P}的齐次坐标变换矩阵为:<maths num="0002"><math><![CDATA[<mrow><mmultiscripts><mi>T</mi><mprescripts/><mi>K</mi><mi>P</mi></mmultiscripts><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mmultiscripts><mi>R</mi><mprescripts/><mi>K</mi><mi>P</mi></mmultiscripts></mtd><mtd><mrow><msub><mmultiscripts><mi>P</mi><mprescripts/><none/><mi>P</mi></mmultiscripts><mrow><mi>K</mi><mi>O</mi><mi>R</mi><mi>G</mi></mrow></msub></mrow></mtd></mtr><mtr><mtd><mi>O</mi></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>r</mi><mn>11</mn></msub></mtd><mtd><msub><mi>r</mi><mn>12</mn></msub></mtd><mtd><msub><mi>r</mi><mn>13</mn></msub></mtd><mtd><msub><mi>x</mi><mrow><mi>c</mi><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>r</mi><mn>21</mn></msub></mtd><mtd><msub><mi>r</mi><mn>22</mn></msub></mtd><mtd><msub><mi>r</mi><mn>23</mn></msub></mtd><mtd><msub><mi>y</mi><mrow><mi>c</mi><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>r</mi><mn>31</mn></msub></mtd><mtd><msub><mi>r</mi><mn>32</mn></msub></mtd><mtd><msub><mi>r</mi><mn>33</mn></msub></mtd><mtd><msub><mi>z</mi><mrow><mi>c</mi><mn>1</mn></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>;</mo></mrow>]]></math><img file="FDA00011736301600000210.GIF" wi="876" he="295" /></maths>d)通过与c)步同样的过程,计算{K}相对于坐标系{O}的齐次坐标变换矩阵,将其计算过程中用到的三个标记点在运动平台坐标系{K}下的坐标值<sup>K</sup>c<sub>j</sub>=(x<sub>cj</sub>,y<sub>cj</sub>,z<sub>cj</sub>)分别替换为在基坐标系{O}下的坐标值<sup>O</sup>d<sub>i</sub>=(x<sub>di</sub>,y<sub>di</sub>,z<sub>di</sub>),以上i,j=1,2,3,最终可得到{K}相对于坐标系{O}的齐次坐标变换矩阵为:<maths num="0003"><math><![CDATA[<mrow><mmultiscripts><mi>T</mi><mprescripts/><mi>K</mi><mi>O</mi></mmultiscripts><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mmultiscripts><mi>R</mi><mprescripts/><mi>K</mi><mi>O</mi></mmultiscripts></mtd><mtd><mrow><msub><mmultiscripts><mi>P</mi><mprescripts/><none/><mi>O</mi></mmultiscripts><mrow><mi>K</mi><mi>O</mi><mi>R</mi><mi>G</mi></mrow></msub></mrow></mtd></mtr><mtr><mtd><mi>O</mi></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>s</mi><mn>11</mn></msub></mtd><mtd><msub><mi>s</mi><mn>12</mn></msub></mtd><mtd><msub><mi>s</mi><mn>13</mn></msub></mtd><mtd><msub><mi>x</mi><mrow><mi>d</mi><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>s</mi><mn>21</mn></msub></mtd><mtd><msub><mi>s</mi><mn>22</mn></msub></mtd><mtd><msub><mi>s</mi><mn>23</mn></msub></mtd><mtd><msub><mi>y</mi><mrow><mi>d</mi><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>s</mi><mn>31</mn></msub></mtd><mtd><msub><mi>s</mi><mn>32</mn></msub></mtd><mtd><msub><mi>s</mi><mn>33</mn></msub></mtd><mtd><msub><mi>z</mi><mrow><mi>d</mi><mn>1</mn></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>;</mo></mrow>]]></math><img file="FDA00011736301600000211.GIF" wi="885" he="295" /></maths>e)由齐次坐标变换有<img file="FDA00011736301600000212.GIF" wi="227" he="63" />则<img file="FDA00011736301600000213.GIF" wi="253" he="63" />由齐次坐标变换矩阵的性质<maths num="0004"><math><![CDATA[<mrow><msup><mmultiscripts><mi>T</mi><mprescripts/><mi>K</mi><mi>P</mi></mmultiscripts><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>=</mo><mmultiscripts><mi>T</mi><mprescripts/><mi>P</mi><mi>K</mi></mmultiscripts><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><msup><mmultiscripts><mi>R</mi><mprescripts/><mi>K</mi><mi>P</mi></mmultiscripts><mi>T</mi></msup></mrow></mtd><mtd><mrow><mo>-</mo><msup><mmultiscripts><mi>R</mi><mprescripts/><mi>K</mi><mi>P</mi></mmultiscripts><mi>T</mi></msup><msub><mmultiscripts><mi>P</mi><mprescripts/><none/><mi>P</mi></mmultiscripts><mrow><mi>K</mi><mi>R</mi><mi>O</mi><mi>G</mi></mrow></msub></mrow></mtd></mtr><mtr><mtd><mi>O</mi></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA00011736301600000214.GIF" wi="685" he="151" /></maths>求解得到矩阵<img file="FDA00011736301600000215.GIF" wi="123" he="71" />进而求得运动平台坐标系{P}相对于基坐标系{O}的齐次坐标变换矩阵<img file="FDA00011736301600000216.GIF" wi="254" he="63" />f)提取<img file="FDA0001173630160000031.GIF" wi="59" he="70" />的左上角3×3旋转变换矩阵<img file="FDA0001173630160000032.GIF" wi="426" he="221" />利用两输入反正切函数Atan2,计算基准位姿的姿态角:<maths num="0005"><math><![CDATA[<mrow><mi>&beta;</mi><mo>=</mo><mi>A</mi><mi>t</mi><mi>a</mi><mi>n</mi><mn>2</mn><mrow><mo>(</mo><mo>-</mo><msub><mi>r</mi><mn>31</mn></msub><mo>,</mo><msqrt><mrow><msubsup><mi>r</mi><mn>11</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>r</mi><mn>21</mn><mn>2</mn></msubsup></mrow></msqrt><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001173630160000033.GIF" wi="518" he="110" /></maths>α=Atan2(r<sub>21</sub>/cosβ,r<sub>11</sub>/cosβ)γ=Atan2(r<sub>32</sub>/cosβ,r<sub>33</sub>/cosβ)如果β=90°,则α=0γ=Atan2(r<sub>12</sub>,r<sub>22</sub>);如果β=‑90°,则α=0γ=‑Atan2(r<sub>12</sub>,r<sub>22</sub>);g)提取<img file="FDA0001173630160000034.GIF" wi="62" he="70" />的右上角3×1平移矢量,并记为<sup>O</sup>d<sub>org</sub>=(x<sub>0</sub>,y<sub>0</sub>,z<sub>0</sub>)<sup>T</sup>;h)六自由度并联机器人的基准位姿即为<sup>O</sup>P<sub>bmk</sub>=(x<sub>0</sub>,y<sub>0</sub>,z<sub>0</sub>,α,β,γ)<sup>T</sup>;(7)根据基准位姿、采用并联机器人的逆解算法,解算出基准位姿对应的支腿初始长度L<sub>0i</sub>(i=1,2,…,6)。
地址 710071 陕西省西安市太白南路2号西安电子科技大学