动力学

牛顿-欧拉方法

牛顿-欧拉方法用最直接、最贴近物理的方式推导机器人的动力学:把作用在每一节连杆上的每一个力和每一次扭转都追踪清楚,并坚持要它们达到平衡,正如那几条伟大的运动定律所要求的。它用到两条搭档规则。牛顿定律管直线方向的推动——一节连杆所受的合力等于它的质量乘以它质心加速的快慢。欧拉定律管旋转——它把一节连杆所受的合扭转努力(力矩)与它抗拒转动的顽固程度、以及它自转变化的快慢联系起来。把这两条用到每一节连杆上,你就把整个机器人的运动都囊括了。

做这件事的自然办法是一节一节地来,就像沿着一条链子把消息传过去、再传回来。先从机器人的基座往末端向外扫一遍,算出每节连杆移动和加速得有多快,因为每节连杆都继承了它前一节的运动。然后再从末端往基座向内扫回来,把力一路累加:每节连杆都必须撑起自己的惯性,再加上它从更外侧连杆那里接手过来的部分。等你扫到基座时,你就精确地知道了每个关节处的力和力矩。

这套来来回回的做法效率出奇地高,正因如此,它的一个精炼版本——递归牛顿-欧拉算法——才被真实的机器人每秒运行成千上万次,用来即时算出它们所需的力矩。它得到的运动方程与基于能量的拉格朗日方法完全相同;两者只是通向同一真理的不同路线。工程师想要一个干净的公式来研究时,会去用拉格朗日方法;想在现场控制器里追求纯粹的速度时,则会去用牛顿-欧拉方法。

一台六关节工业机器人会运行递归牛顿-欧拉算法:向外的一遍算出每节连杆怎样加速,向内的一遍再把力一路结算回基座,从而给出此刻每个电机必须产出的力矩。

沿连杆先向外、后向内地扫一遍,就能高效地得出每个关节的力矩。

它的递归形式计算一个 n 关节机器人的逆动力学所需的时间与 n 成正比,因而高效到足以用于实时控制。

又称
Newton-Euler dynamics牛顿-欧拉方程力平衡法