发明名称 一种基于加速度优化的仿人机器人逆动力学控制器
摘要 本发明公开了一种基于加速度优化的仿人机器人逆动力学控制器。属于机器人技术领域。所述控制器包括如下步骤:根据仿人机器人的运动约束,得到仿人机器人上身加速度与脚底所需外力的关系;根据外力的约束来计算上身加速度的范围;通过代价函数计算出最优的上身加速度,并计算出机器人所应受外力和关节力矩。该方法给定机器人脚部受力约束,通过优化机器人上身加速度,使机器人实际受到的外力满足该约束条件,避免机器人发生由外界干扰产生不可预测的运动,从而达到稳定控制仿人机器人的目的。
申请公布号 CN103019096B 申请公布日期 2015.09.16
申请号 CN201210480571.0 申请日期 2012.11.23
申请人 北京理工大学 发明人 余张国;黄强;马淦;陈学超;李敬;张思;张伟民
分类号 G05B13/04(2006.01)I 主分类号 G05B13/04(2006.01)I
代理机构 代理人
主权项 1.一种仿人机器人逆动力学控制方法,所述仿人机器人具有上身、左腿和右腿,所述方法包括以下步骤:对所述仿人机器人建立动力学模型;所述动力学模型中,上身简化为一个集成的质量块,每条腿有六个关节,q<sub>rl</sub>∈R<sup>6×1</sup>与q<sub>ll</sub>∈R<sup>6×1</sup>分别代表右腿与左腿的关节角度,上身浮动坐标系∑<sub>R</sub>位于盆骨的中心,世界坐标系Σ<sub>W</sub>位于地面;计算所述仿人机器人上身传统加速度范围;所述加速度范围是使用“空间矢量”方法推导出所述仿人机器人脚底所受外力与上身传统加速度关系,并根据所述仿人机器人当前状态由脚底所受外力范围计算的;优化所述仿人机器人的上身传统加速度;根据所述仿人机器人当前状态的加速度范围和PD控制产生的目标加速度,通过代价函数计算出该状态的仿人机器人最优上身传统加速度,并根据最优的上身传统加速度,计算出所述仿人机器人所应受外力和关节力矩,从而驱动所述仿人机器人行走;所述动力学模型的动力学公式为:<maths num="0001"><![CDATA[<math><mrow><mi>M</mi><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow><mover><mi>q</mi><mrow><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mrow></mover><mo>+</mo><mi>C</mi><mrow><mo>(</mo><mi>q</mi><mo>,</mo><mover><mi>q</mi><mo>&CenterDot;</mo></mover><mo>)</mo></mrow><mo>=</mo><mi>&tau;</mi><mmultiscripts><mi>J</mi><mi>rf</mi><mi>TW</mi><mprescripts/><none/><mi>W</mi></mmultiscripts><msub><mover><mi>f</mi><mo>^</mo></mover><mi>rf</mi></msub><mo>+</mo><mmultiscripts><mi>J</mi><mi>lf</mi><mi>TW</mi><mprescripts/><none/><mi>W</mi></mmultiscripts><msub><mover><mi>f</mi><mo>^</mo></mover><mi>lf</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths>在式子(1)中,q=[q<sub>r</sub>,q<sub>rl</sub>,q<sub>ll</sub>],q<sub>r</sub>∈R<sup>6×1</sup>为虚拟自由度,M(q)∈R<sup>18×18</sup>是关节空间的惯性矩阵,<img file="FDA0000695691070000012.GIF" wi="159" he="74" />是科氏力、离心力与重力的合力的矢量,<img file="FDA00006956910700000115.GIF" wi="95" he="49" /><img file="FDA0000695691070000013.GIF" wi="480" he="95" />与τ<sub>ll</sub>∈R<sup>6×1</sup>右腿与左腿的关节力矩输入,<img file="FDA0000695691070000014.GIF" wi="103" he="84" />是从右脚坐标系转换到世界坐标系Σ<sub>W</sub>的雅克比矩阵,<img file="FDA0000695691070000015.GIF" wi="99" he="86" />是从左脚坐标系转换到Σ<sub>W</sub>的雅可比矩阵,<img file="FDA0000695691070000016.GIF" wi="99" he="90" />是施加在右腿的外力在Σ<sub>W</sub>中的表示,<img file="FDA0000695691070000017.GIF" wi="101" he="91" />是施加在左腿的外力在Σ<sub>W</sub>中的表示;所述仿人机器人在空间矢量的加速度与上身传统加速度关系为:<maths num="0002"><![CDATA[<math><mrow><mmultiscripts><mover><mi>a</mi><mo>^</mo></mover><mi>r</mi><none/><mprescripts/><none/><mi>W</mi></mmultiscripts><mo>=</mo><mmultiscripts><mi>X</mi><mi>W</mi><mrow><mo>-</mo><mn>1</mn></mrow><mprescripts/><none/><mi>R</mi></mmultiscripts><mrow><mo>(</mo><msup><mi>a</mi><mi>c</mi></msup><mo>-</mo><mfenced open='[' close=']' separators=' '><mtable><mtr><mtd><msub><mn>0</mn><mrow><mn>3</mn><mo>&times;</mo><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><mmultiscripts><mi>&omega;</mi><mprescripts/><none/><mi>R</mi><mi>r</mi><none/></mmultiscripts><mo>&times;</mo><mmultiscripts><mi>v</mi><mi>r</mi><none/><mprescripts/><none/><mi>R</mi></mmultiscripts></mtd></mtr></mtable></mfenced><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中<img file="FDA0000695691070000019.GIF" wi="310" he="86" />是所述仿人机器人上身所受的上身传统加速度,<img file="FDA00006956910700000110.GIF" wi="86" he="78" />是所述仿人机器人的空间矢量加速度,[<sup>R</sup>ω<sub>r</sub>;<sup>R</sup>v<sub>r</sub>]=[ω<sub>x</sub>,ω<sub>y</sub>,ω<sub>z</sub>,v<sub>x</sub>,v<sub>y</sub>,v<sub>z</sub>]<sup>T</sup>是上身的空间矢量速度,<sup>R</sup>X<sub>W</sub>是把速度、加速度和力从Σ<sub>W</sub>转换到∑<sub>R</sub>的转换矩阵;在双脚支撑期,左右腿的关节加速度<img file="FDA00006956910700000111.GIF" wi="72" he="73" />与<img file="FDA00006956910700000112.GIF" wi="68" he="73" />都是由<img file="FDA00006956910700000113.GIF" wi="88" he="83" />决定;在单脚支撑期,支撑腿的关节加速度是由<img file="FDA00006956910700000114.GIF" wi="84" he="78" />决定,而摆动腿的关节加速度是由摆动腿的空间矢量加速度<img file="FDA0000695691070000021.GIF" wi="96" he="78" />或<img file="FDA0000695691070000022.GIF" wi="98" he="78" />决定,因此<maths num="0003"><![CDATA[<math><mrow><mover><mi>q</mi><mrow><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mrow></mover><mo>=</mo><mi>Q</mi><mrow><mo>(</mo><mi>q</mi><mo>,</mo><mover><mi>q</mi><mo>&CenterDot;</mo></mover><mmultiscripts><mover><mi>a</mi><mo>^</mo></mover><mi>r</mi><none/><mprescripts/><none/><mi>W</mi></mmultiscripts><mo>,</mo><mmultiscripts><mover><mi>a</mi><mo>^</mo></mover><mi>rf</mi><none/><mprescripts/><none/><mi>R</mi></mmultiscripts><mi>or</mi><mmultiscripts><mover><mi>a</mi><mo>^</mo></mover><mi>lf</mi><none/><mprescripts/><none/><mi>R</mi></mmultiscripts><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></math>]]></maths>根据所述仿人机器人所受加速度用公式(2)和(3)计算关节角加速度;为了计算所述仿人机器人所受外力,使其能达到所需要的加速度,首先使模型作为一个没有外力的固定的模型,在这种情况下,所述仿人机器人关节力矩通过公式(4)计算:<maths num="0004"><![CDATA[<math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>&tau;</mi><mi>r</mi></msub></mtd></mtr><mtr><mtd><msub><mi>&tau;</mi><mrow><mi>r</mi><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>&tau;</mi><mn>11</mn></msub></mtd></mtr></mtable></mfenced><mo>=</mo><mi>M</mi><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow><mover><mi>q</mi><mrow><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mrow></mover><mo>+</mo><mi>C</mi><mrow><mo>(</mo><mi>q</mi><mo>,</mo><mover><mi>q</mi><mo>&CenterDot;</mo></mover><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow></math>]]></maths>此时的τ<sub>r</sub>是该虚拟自由度的关节力矩,这些虚拟的力矩是来自施加在仿人机器人的虚拟外力产生的,这个虚拟外力与实际期望的外力相等;因此,我们所需要的机器人的外力可由公式(5)计算;在双脚支撑期,所需的外力是由双脚共同提供;在单脚支撑期,所需的外力是由支撑脚提供;<maths num="0005"><![CDATA[<math><mrow><mmultiscripts><mover><mi>f</mi><mo>^</mo></mover><mi>ext</mi><none/><mprescripts/><none/><mi>W</mi></mmultiscripts><mo>=</mo><mmultiscripts><mi>J</mi><mi>R</mi><mrow><mo>-</mo><mi>T</mi></mrow><mprescripts/><none/><mi>w</mi></mmultiscripts><msub><mi>&tau;</mi><mi>r</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow></math>]]></maths>公式(5)中<img file="FDA0000695691070000026.GIF" wi="108" he="80" />为雅可比矩阵转制的逆;然后,根据公式(1)-(5),机器人上身传统加速度a<sup>c</sup>与所受外力<img file="FDA0000695691070000027.GIF" wi="118" he="86" />的关系可以表示为式子(6);<maths num="0006"><![CDATA[<math><mrow><msup><mi>Ua</mi><mi>c</mi></msup><mo>+</mo><mi>V</mi><mo>=</mo><mmultiscripts><mover><mi>f</mi><mo>^</mo></mover><mi>m</mi><none/><mprescripts/><none/><mi>M</mi></mmultiscripts><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,U、V为q和<img file="FDA0000695691070000029.GIF" wi="46" he="67" />的函数,<img file="FDA00006956910700000210.GIF" wi="88" he="84" />是含有六个元素的空间矢量,<img file="FDA00006956910700000211.GIF" wi="130" he="85" /><img file="FDA00006956910700000212.GIF" wi="568" he="84" />nMx,nMy,nMz,fx,fy,fz为空间六维力/力矩;根据仿人机器人三个地面约束,得出<img file="FDA00006956910700000215.GIF" wi="86" he="81" />的范围,再根据所述仿人机器人当前状态得出上身传统加速度的范围;在得出上身传统加速度a<sup>c</sup>的范围后,根据代价函数式子(7),在范围内求出最优的上身传统加速度a<sup>c</sup>,<maths num="0007"><![CDATA[<math><mrow><mi>f</mi><mrow><mo>(</mo><msup><mi>a</mi><mi>c</mi></msup><mo>)</mo></mrow><mo>=</mo><msub><mi>W</mi><mi>t</mi></msub><mo>&CenterDot;</mo><mo>|</mo><mo>|</mo><msup><mi>a</mi><mi>c</mi></msup><mo>-</mo><msubsup><mi>a</mi><mi>des</mi><mi>c</mi></msubsup><mo>|</mo><mo>|</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow></math>]]></maths>在式子(7)中,<img file="FDA00006956910700000214.GIF" wi="94" he="71" />是根据PD控制产生目标加速度,W<sub>t</sub>是一个权重矩阵,当f(a<sup>c</sup>)最小时的a<sup>c</sup>即为最优的a<sup>c</sup>。
地址 100081 北京市海淀区中关村南大街5号