机器人动力学分析
机器人动力学分析方法主要包括牛顿欧拉法、拉格朗日法、高斯法、凯恩方法。

MATLAB 提供的逆动力学采用的是牛顿欧拉法:RNE——Recursive Newton-Euler。
需要三个参数,第一个是给定最终的角度,第二个是速度,第三个是角加速度,返回各个关节所需要的力矩。可选参数有重力加速度和负载 fext。
牛顿欧拉法
我们的目标是给定机器人的关节位置 q、速度 qd 和加速度 qdd,计算出为了产生这个运动状态,每个关节需要施加多大的驱动力矩。
初学者常混淆力域雅可比与动力学方法的区别。
'力域雅可比'解决的是一个不同的问题,属于静力学或外力映射范畴,其目的是将作用在机器人末端执行器上的外力/力矩
映射到对应的关节空间力矩
区别在于一个是给定运动状态计算所需力,另一个则是给定末端的力计算分配在各关节的大小。
牛顿欧拉法的精髓在于正推和逆推:
- 正向递推(Forward Recursion):从基座到末端,计算每个连杆的速度、加速度。
- 反向递推(Backward Recursion):从末端到基座,计算每个关节需要提供的力和力矩。
我们先大概浏览一遍整个过程,这里看不懂也没关系,大概有个流程印象即可!
动力学的目的就是计算在某个运动状态下,各个关节应该施加多大的力,因此核心是构建一个**'运动状态 - 力学参数'**的方程。我们的核心就变成了如何得到各个关节的'真实速度'。已知各个关节的关节空间的速度、角速度、加速度,如何将前一个坐标系的运动参数传递给下一个坐标系计算呢?这就用到了正推,构建线速度、线加速度、角速度、角加速度以及质心和端点的速度关系。这里面最难理解的就是对 Zi 轴的求导,我们把求导拆成先微分再对时间求导,并用红蓝绿坐标系表示了这个过程。最终得到了运动参数的递推公式。
我们又知道,力的传播是从末端向基座的,因此力的计算就是逆推的过程。我们先对连杆的相互作用点进行了受力分析,并构建了端点到质心的变换公式,得以计算质心处的合力矩情况。此时的合力矩指的是 xyz 三方向的合力矩,但是关节电机只能控制绕 z 轴旋转的力矩,因此我们将合力矩中的 Z 方向力矩提取出来,直接用 Z 的方向向量点积即可。由此,我们就能通过得知各个关节的关节速度、加速度,从而推导出各个关节需要多大的力矩了!
那么构建运动状态和力的关系的等式就显而易见了:
牛顿方程:


























