目录
1、坐标系的建立:
连杆坐标系以及质心坐标系的建立是机器人动力学推导的基础。连杆坐标系的建立方式有标准DH和改进DH两种方式。
在前面我们已经说过了只有在质心坐标系下才有欧拉方程的简单形式(
)。因此,除了连杆坐标系我们还需要关注质心坐标系的建立,以便我们在对特定连杆应用牛顿方程和欧拉方程时所涉及到的线速度、角速度、线加速度、角加速度等能够在连杆的质心坐标系下表达。
(这里需要注意我们先利用递推的方法得到各个关节在连杆坐标系下的线速度、角速度、线加速度、角加速度,然后要转换为对应连杆质心坐标系下的表达。最后利用质心坐标系下的线速度、角速度、线加速度、角加速度去得到连杆的牛顿方程和欧拉方程。)为了方便通常将质心坐标系的各个轴的朝向与连杆坐标系保持一致,也即二者之间只存在平移关系。
即机器人的每一个连杆上都建立了两个与之固连的坐标系,一个是连杆坐标系,固连在连杆的驱动轴(传动轴)上;另一个是质心坐标系,固连在连杆的质心上。
在机器人动力学中坐标系非常多,理解变量在各个坐标系之间的传递对于真正理解动力学至关重要,所以坐标系的建立原则需要务必清楚。
下面以一个单连杆为例,如下图所示在连杆上建立的坐标系以及相关的一些参量如图。需要注意的是,图中的所有变量都是在基坐标下描述的,另外连杆i的连杆坐标系
和连杆i的质心坐标系
朝向相同,仅原点位置不同。

各参量的含义如下:


2、为什么要递推:
这里说明下为什么要用递推式(而不是所有量都在基坐标系下计算)来求解每个连杆的速度、加速度等物理量,起码有以下三个原因:
①、惯性张量在连杆质心坐标系中表达式为常量;
②、质心坐标系下欧拉方程为简单形式;
③、速度满足叠加原理,递推求解速度容易;
这里再说下对惯性张量的理解:惯性描述的是物体保持原有运动状态的能力(或者描述的是改变物体运动状态的难易程度)。惯性越大那么它的运动状态越难以改变,对于质点来说惯性只跟它的质量有关。
而对于一个质量没有集中到一点的刚体来说,惯性描述应该是改变刚体质心运动的难易程度,但不能描述刚体绕质心转动的难易程度。而需要描述改变刚体运动状态难易程度就需要所谓的惯性张量了,惯性张量描述了刚体在惯性系下的质量分布特性。其表达式如下:

单独看矩阵中的每一个元素都是对质量微元的积分得到的。其中x、y、z代表的是质量微元在惯性系下的坐标。因此,当我们选择一个与刚体固连的坐标系作为惯性系时,刚体的惯性张量成为一个定值。
速度的依赖关系:
速度是矢量,满足叠加原理,绝对速度=相对速度+牵连速度。这不只适用于线速度,也适用于角速度。
3、前向递推与反向递推:
利用牛顿-欧拉法求解机器人动力学方程可以分为两个过程:
①、前向递推:用于求解各个连杆的线速度、线加速度、角速度、角加速度;
②、反向递推:根据牛顿方程和欧拉方程求解各个连杆受到的外力及外力矩并得到各个关节的驱动力矩;
1、速度和加速度的前向递推:
所谓前向递推是指从基座开始向末端逐次递推,递推的每一步都是根据当前连杆的速度、加速度等参数推导得到下一个连杆的速度和加速度。这样在前向递推结束之后所有连杆的速度和加速度信息就都可以获取到了。
运动状态(即位置、速度、加速度)之所以需要前向递推获得是因为绝对速度=相对速度+牵连速度。要求出某个连杆i的速度,需要知道它的前向连杆i-1的速度以及连杆i相对于连杆i-1的相对速度。所以,速度和加速度的递推必须通过前向递推得到。因为,这些物理量都是前向依赖的。
1.1、旋转关节的速度传递:
如下图描述了旋转关节从连杆i到连杆i+1速度的传递过程(图中所有量都是在基坐标系下描述的。另,这里是基于改进DH建立的连杆坐标系)。

串联机构速度传递的背部都是速度的叠加原理,对应到上图中也就是说可以依赖连杆i的速度和连杆i+1相对于连杆i的速度(牵连速度)求出连杆i+1的速度。


1.2、平移关节的速度传递:
如下图描述了平移关节从连杆i到连杆i+1速度的传递过程(图中所有量都是在基坐标系下描述的)。





1.3、速度变换到质心:
前面的速度和角速度之间的传递,其实是各个连杆坐标系原点之间的速度传递。也就是说描述的是连杆i坐标系原点处的角速度,
描述的是连杆i坐标系原点处的线速度。为了简化动力学计算,所有的运算应该在质心坐标系下完成。所以我们实际上需要的是质心处的线速度和角速度。因为连杆坐标系和连杆质心坐标系实际上都是固连在连杆上的,因此这个速度和角速度的传递实际上是在同一个刚体内部的两个点之间的速度与角速度关系。
角速度在同一个刚体上处处相等,因此,
,同一刚体内线速度传递关系也比较容易,他们之间的相对速度是由于刚体转动而引起的,因此线速度的传递关系为:
。
1.4、加速度传递:
前面介绍了速度的传递过程,依据的原理就是速度的叠加原理。那么加速度是如何传递的呢?这个问题实际比较复杂,加速度的传递很难直接确定递推关系(注意不存在绝对加速度=相对加速度+牵连加速度这样的定理)。
其实加速度的传递关系之所以难以确定主要是由于科氏力的存在。通常力能找到施力的物体,而科氏力则找不到施力物体,因此加速度的关系很不直观。但是加速度和速度之间的关系是明确的,是导数关系。因此通过对以上推出的速度传递公式进行求导便是加速度的递推公式了。
先看角速度的导数,对于平移关节很简单直接求导即可:![]()
旋转关节按照求导法则:![]()


线加速度的传递关系复杂一些,对于旋转关节线速度为:
;
利用链式求导法则可得:
;下面分析下如何得到
;
由前面的图可知,
,所以
,因此对于旋转关节:
,故旋转关节的线加速度传递关系为:
![]()
移动关节的线速度为:![]()
利用链式求导法则得:
,这里
与前面同样方法得到
![]()


1.5、转化为递归形式:
如果理解了前面介绍的速度和加速度传递过程那么整理成递归形式是非常容易的。前面已经提到相对性原理,以上的速度和加速度推导都是在基坐标系下表示的。由于所有惯性系时平权的,因此以上等式在任意惯性系下都是成立的。为了动力学求解方便我们把这些物理量全部映射到连杆i坐标系下。由于这个过程对于所有的物理量是一致的,因此拿其中一个进行举例。
映射方式其实很简单,利用旋转矩阵做向量变换即可,由于前述物理量都是在基坐标系下表示的,因此使用的变换矩阵是从基坐标系到连杆i+1坐标系即。


2、力与力矩的方向递推:
所谓反向递推是指从机器人末端开始向基座方向递推,递推的每一步都是根据当前连杆的速度、加速度以及当前连杆受到的后向连杆的力和力矩来求解当前连杆受到的前向连杆的力和力矩。力的反向递推简单来说就是从后向前依次对每一个连杆计算单刚体动力学。
力和力矩之所以需要反向递推是因为每个连杆i都承受了来自于后向连杆i+1的力和力矩,如果这个后向连杆i+1施加给当前连杆i的力和力矩无法确定,那么当前连杆i的动力学就无法计算。因为力和力矩这样的物理量是反向依赖的。力和力矩的反向递推图如下图所示(图中所有的物理量都是在基坐标系下表达的。)


牛顿方程:
![]()
需要注意的是牛顿方程中没有考虑重力,原因是基于这样一种考虑:首先我们认为没有重力,然后我们认为机器人基座以-g的加速度在运动(重力场可以用加速度场来等效替换)。

欧拉方程:
![]()
这里需要注意的是重力作用于质心处因此对质心不产生力矩。

关节力矩的计算:

4、总结:
下面对整个Newton--Euler法建立机器人动力学模型做个总结(建模时直接利用下面公式即可):
利用Newton--Euler法去建立机器人动力学模型的步骤为:
①、首先,通过速度和加速度的正向递推(从基座到末端连杆)得到各连杆的线速度、角速度、线加速度、角加速度数据;

这里:①、表示的是连杆坐标系{i}和{i+1}的原点距离在坐标系{i}下的描述,通用的求法是得到他们在基坐标系{0}下的表示,然后相减,最后再变到{i}坐标系下;如:

则可以得到: 
这里还要注意修正的DH参数建模时{0}与{1}是重合的所以是为0的。
②、是z轴在自身坐标系下的表示,一定为[0 0 1];
根据得到的速度和加速度数据便可以求出对应连杆的质心线加速度和角加速度。对于同一连杆而言由于质心坐标系与连杆坐标系都在同一连杆上故他们的角速度和角加速度相同,所以只需要求出其质心线加速度即可。

这里
表示的是连杆i+1的质心在连杆i+1的坐标系下的表示;
②、然后,利用牛顿方程得到连杆的合外力,欧拉方程得到连杆的合外力矩,即作用在连杆上的力;

③、最后,根据力的平衡原理利用力/力矩的反向递推得到各关节需要施加的力/力矩。

关节施加力/力矩:

注意:上面的得到的Newton--Euler公式都是基于改进DH参数建立连杆坐标系而得到的。如果是标准DH参数则对应部分的公式为:
①、速度公式:


![]()
②、连杆力/力矩公式:

③、关节力/力矩公式:

关节施加力/力矩:
