发明名称 二自由度机器人运动控制方法
摘要 本发明公开了一种二自由度机器人运动控制方法,用于解决现有机器人控制方法控制精度差的技术问题。技术方案是首先首先对二自由度机器人的客观物理动力学特性进行建模,抽象出二自由度机器人一般形式的动力学特性方程。在此基础上,采用逐次逼近,最终收敛的方法完成转角控制,从根本上消除了θ→0时,二自由度机器人的震荡,为后续线运动控制奠定基础。然后引入实半径ρ<sub>2</sub>和轨迹曲率半径ρ<sub>1</sub>,变换二自由度机器人在二维极坐标下的运动学方程,令ρ<sub>2</sub>正比于cotθ,再利用已有的转角控制,得到线运动控制方程,完成跑点控制。提高了二自由度机器人的控制精度,而且方程中的参数物理意义明确,不需人工调试即可确定。
申请公布号 CN103170976A 申请公布日期 2013.06.26
申请号 CN201310080212.0 申请日期 2013.03.13
申请人 西北工业大学 发明人 史豪斌;徐林程;郭志巍;黄伯峥;李小婷;沈楷
分类号 B25J13/00(2006.01)I 主分类号 B25J13/00(2006.01)I
代理机构 西北工业大学专利中心 61204 代理人 王鲜凯
主权项 1.一种二自由度机器人运动控制方法,其特征在于包括以下步骤:(I)获取二自由度机器人运动控制系统的动力学特性方程:<maths num="0001"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><mover><mi>&upsi;</mi><mo>&CenterDot;</mo></mover><mo>=</mo><msub><mi>f</mi><mi>&upsi;</mi></msub><mrow><mo>(</mo><mi>&upsi;</mi><mo>,</mo><mi>V</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mover><mi>&omega;</mi><mo>&CenterDot;</mo></mover><mo>=</mo><msub><mi>f</mi><mi>&omega;</mi></msub><mrow><mo>(</mo><mi>&omega;</mi><mo>,</mo><mi>T</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>g</mi><mrow><mo>(</mo><mi>V</mi><mo>,</mo><mi>T</mi><mo>)</mo></mrow><mo>&le;</mo><mn>0</mn></mtd></mtr><mtr><mtd><msub><mi>V</mi><mi>min</mi></msub><mo>&le;</mo><mi>V</mi><mo>&le;</mo><msub><mi>V</mi><mi>max</mi></msub></mtd></mtr><mtr><mtd><msub><mi>T</mi><mi>min</mi></msub><mo>&le;</mo><mi>T</mi><mo>&le;</mo><msub><mi>T</mi><mi>max</mi></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>其中:υ——二自由度机器人的线速度,ω——二自由度机器人角速度;<img file="FDA00002912994300015.GIF" wi="43" he="57" />——二自由度机器人的线加速度,<img file="FDA00002912994300016.GIF" wi="53" he="55" />——二自由度机器人角加速度;V——二自由度机器人线速度的控制输入,T——二自由度机器人角速度的控制输入;V<sub>min</sub>——V的下限;V<sub>max</sub>——V的上限;T<sub>min</sub>——T的下限;T<sub>max</sub>——T的上限;f<sub>υ</sub>——函数映射关系;f<sub>ω</sub>——函数映射关系;当V<sub>min</sub>≤V≤V<sub>max</sub>时,<img file="FDA00002912994300012.GIF" wi="184" he="124" />当T<sub>min</sub>≤T≤T<sub>max</sub>时,<img file="FDA00002912994300013.GIF" wi="185" he="125" />V=V<sub>c</sub>,T=T<sub>c</sub>时,二自由度机器人处于无控制自然状态;(II)以二自由度机器人中心为原点,二自由度机器人正方向为极轴建立极坐标系;(III)计算目标点的极坐标θ和ρ;(IV)转角控制;步骤1:获取当前转角速度ω<sub>0</sub>,计算完全靠惯性使二自由度机器人状态达到ω<sub>0</sub>=0,所需转过的角度θ<sub>o_cri</sub>:则由<img file="FDA00002912994300017.GIF" wi="282" he="72" />得ω(t,T)=F<sub>ω</sub>(t,ω<sub>0</sub>,T),由于无控制自然状态下,运动物体最终一定会静止;所以,令T=T<sub>c</sub>,则有:ω(∞,T<sub>c</sub>)=F<sub>ω</sub>(∞,ω<sub>0</sub>,T<sub>c</sub>)=0;<maths num="0002"><![CDATA[<math><mrow><msub><mi>&theta;</mi><mrow><mi>o</mi><mo>_</mo><mi>cri</mi></mrow></msub><mo>=</mo><mi>sign</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><msubsup><mo>&Integral;</mo><mn>0</mn><mo>&infin;</mo></msubsup><mi>&omega;</mi><mrow><mo>(</mo><mi>&tau;</mi><mo>,</mo><msub><mi>T</mi><mi>c</mi></msub><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>d&tau;</mi></mrow></math>]]></maths>是存在的;其中,F<sub>ω</sub>表示由微分方程<img file="FDA00002912994300021.GIF" wi="276" he="80" />及初值条件ω(0,T)=ω<sub>0</sub>,所确定ω关于t和T的函数关系;步骤2:确定控制器输出T<sub>o</sub>;若|θ|>θ<sub>o_cri</sub>,则使机器人以最大力度转角,即T=max{T·sign(θ)|T<sub>min</sub>≤T≤T<sub>max</sub>};若|θ|≤θ<sub>o_cri</sub>,则对任意T∈{T|f<sub>ω</sub>(ω<sub>0</sub>,T)·ω<sub>0</sub><0,T<sub>min</sub>≤T≤T<sub>max</sub>},令ω(t,)T=<sub>ω</sub>(Fω<sub>,0</sub>)t=,,T解0方程F<sub>ω</sub>(t,ω<sub>0</sub>,T)=0,得:t<sub>o</sub>(T)且t<sub>o</sub>(T)<+∞,此时机器人转过的有利角度为:<maths num="0003"><![CDATA[<math><mrow><msub><mi>&theta;</mi><mi>o</mi></msub><mrow><mo>(</mo><mi>T</mi><mo>)</mo></mrow><mo>=</mo><mi>sign</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><msubsup><mo>&Integral;</mo><mn>0</mn><mrow><msub><mi>t</mi><mi>o</mi></msub><mrow><mo>(</mo><mi>T</mi><mo>)</mo></mrow></mrow></msubsup><mi>&omega;</mi><mrow><mo>(</mo><mi>&tau;</mi><mo>,</mo><mi>T</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>d&tau;</mi><mo>;</mo></mrow></math>]]></maths>求解T*使得θ<sub>o</sub>(T*)=|θ|;当T<sub>min</sub>≤T<sup>*</sup>≤T<sub>max</sub>时,T<sub>o</sub>=T<sup>*</sup>;否则,T<sub>o</sub>=min{f<sub>ω</sub>(ω<sub>0</sub>,T)·sign(ω<sub>0</sub>)|T<sub>min</sub>≤T≤T<sub>max</sub>};(V)如果任务是原地转角,则线速度控制输出V<sub>o</sub>=V<sub>c</sub>,跳转到步骤(VII);否则转到步骤(VI)进行线运动控制;(VI)线运动控制;步骤1:变换运动方程;目标点在极坐标系中的运动方程为:<img file="FDA00002912994300023.GIF" wi="451" he="154" />令轨迹曲率半径<img file="FDA00002912994300024.GIF" wi="180" he="110" />实半径<maths num="0004"><![CDATA[<math><mrow><msub><mi>&rho;</mi><mn>2</mn></msub><mo>=</mo><mfrac><mover><mi>&rho;</mi><mo>&CenterDot;</mo></mover><mover><mi>&theta;</mi><mo>&CenterDot;</mo></mover></mfrac><mo>,</mo></mrow></math>]]></maths>则运动方程为:<maths num="0005"><![CDATA[<math><mrow><mfrac><mn>1</mn><mrow><msub><mi>&rho;</mi><mn>1</mn></msub><mo>&CenterDot;</mo><mi>sin</mi><mi>&theta;</mi></mrow></mfrac><mo>=</mo><mfrac><mn>1</mn><mi>&rho;</mi></mfrac><mo>+</mo><mfrac><mn>1</mn><mrow><msub><mi>&rho;</mi><mn>2</mn></msub><mo>&CenterDot;</mo><mi>tan</mi><mi>&theta;</mi></mrow></mfrac><mo>;</mo></mrow></math>]]></maths>步骤2:控制ρ<sub>2</sub>,驱动ρ<sub>1</sub>;令ρ<sub>2</sub>=a·cotθ,则上述步骤1得到的运动方程变为驱动方程:<maths num="0006"><![CDATA[<math><mrow><msub><mi>&rho;</mi><mn>1</mn></msub><mo>=</mo><mfrac><mn>1</mn><mrow><mi>sin</mi><mi>&theta;</mi><mo>&times;</mo><mrow><mo>(</mo><mn>1</mn><mo>/</mo><mi>&rho;</mi><mo>+</mo><mn>1</mn><mo>/</mo><mi>a</mi><mo>)</mo></mrow></mrow></mfrac><mo>;</mo></mrow></math>]]></maths>其中,a是模型参数,a=V<sub>max</sub>;步骤3:将时间向前推进Δt,计算Δt时间后二自由度机器人的角速度和需要的速度:<maths num="0007"><![CDATA[<math><mrow><msub><mi>&omega;</mi><mi>&Delta;t</mi></msub><mo>&ap;</mo><msub><mi>&omega;</mi><mn>0</mn></msub><mo>+</mo><mover><mi>&omega;</mi><mo>&CenterDot;</mo></mover><mo>&CenterDot;</mo><mi>&Delta;t</mi><mo>=</mo><msub><mi>&omega;</mi><mn>0</mn></msub><mo>+</mo><msub><mi>f</mi><mi>&omega;</mi></msub><mrow><mo>(</mo><msub><mi>&omega;</mi><mn>0</mn></msub><mo>,</mo><msub><mi>T</mi><mi>o</mi></msub><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>&Delta;t</mi><mo>;</mo></mrow></math>]]></maths>令<maths num="0008"><![CDATA[<math><mrow><msub><mi>&rho;</mi><mn>1</mn></msub><mo>=</mo><mfrac><msub><mi>&upsi;</mi><mi>&Delta;t</mi></msub><msub><mi>&omega;</mi><mi>&Delta;t</mi></msub></mfrac><mo>,</mo></mrow></math>]]></maths>代入驱动方程得:<maths num="0009"><![CDATA[<math><mrow><msub><mi>&upsi;</mi><mi>&Delta;t</mi></msub><mo>=</mo><mfrac><msub><mi>&omega;</mi><mi>&Delta;t</mi></msub><mrow><mi>sin</mi><mi>&theta;</mi><mo>&times;</mo><mrow><mo>(</mo><mn>1</mn><mo>/</mo><mi>&rho;</mi><mo>+</mo><mn>1</mn><mo>/</mo><mi>a</mi><mo>)</mo></mrow></mrow></mfrac><mo>;</mo></mrow></math>]]></maths>其中,Δt=1f,f是控制器与机器人接收器的数据交换频率;步骤4:模型修正:由于θ→0时,<img file="FDA00002912994300031.GIF" wi="287" he="145" />会在1和-1上震荡,故模型修正为:<maths num="0010"><![CDATA[<math><mrow><msub><mi>&upsi;</mi><mi>&Delta;t</mi></msub><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&alpha;</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><msub><mi>&omega;</mi><mi>&Delta;t</mi></msub><mo>+</mo><mi>&alpha;</mi><mo>&CenterDot;</mo><mi>cos</mi><mi>&theta;</mi></mrow><mrow><mo>[</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&alpha;</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><msub><mi>&omega;</mi><mi>&Delta;t</mi></msub><mo>+</mo><mi>&alpha;</mi><mo>&CenterDot;</mo><mi>cos</mi><mi>&theta;</mi><mo>]</mo><mo>&times;</mo><mrow><mo>(</mo><mn>1</mn><mo>/</mo><mi>&rho;</mi><mo>+</mo><mn>1</mn><mo>/</mo><mi>a</mi><mo>)</mo></mrow></mrow></mfrac><mo>;</mo></mrow></math>]]></maths>其中,ω'为环境对ω期望为0的随机扰动,模型参数α取为该扰动的幅值:α=|ω'|;步骤5:确定控制器输出V<sub>o</sub>;计算Δt时间段内二自由度机器人需要的加速度:<maths num="0011"><![CDATA[<math><mrow><mover><mi>a</mi><mo>&OverBar;</mo></mover><mo>&ap;</mo><mfrac><mrow><msub><mi>&upsi;</mi><mi>&Delta;t</mi></msub><mo>-</mo><msub><mi>&upsi;</mi><mn>0</mn></msub></mrow><mi>&Delta;t</mi></mfrac><mo>,</mo></mrow></math>]]></maths>求解V<sup>*</sup>使得<img file="FDA00002912994300034.GIF" wi="316" he="93" />若V<sup>*</sup>≥V<sub>max</sub>,则令V<sup>*</sup>=V<sub>max</sub>,否则若V<sup>*</sup>≤V<sub>min</sub>,则令V<sup>*</sup>=V<sub>min</sub>;若g(V<sup>*</sup>,T<sub>o</sub>)≤0,则V<sub>o</sub>=V<sup>*</sup>,否则由g(V<sub>l</sub>,T<sub>o</sub>)≤0解出V<sub>l</sub>,令V<sub>o</sub>=V<sub>l</sub>;(VII)用获得的V<sub>o</sub>,T<sub>o</sub>驱动二自由度机器人。
地址 710072 陕西省西安市友谊西路127号