机器人动力学分析概述
机器人动力学分析主要包含牛顿欧拉法、拉格朗日法、高斯法及凯恩方法等。其中,MATLAB 提供的逆动力学函数(RNE, Recursive Newton-Euler)即采用牛顿欧拉法。
该方法需要三个核心参数:最终关节角度、速度及角加速度,返回各关节所需力矩。可选参数包括重力加速度和外部负载。
目标与定义
我们的目标是给定机器人的关节位置 q、速度 qd 和加速度 qdd,计算出为了产生这个运动状态,每个关节需要施加多大的驱动力矩。
初学者常混淆的一个概念是'力域雅可比'。它解决的是静力学或外力映射问题,旨在将作用在机器人末端执行器上的外力/力矩映射到对应的关节空间力矩。而牛顿欧拉法解决的是动力学问题:给定运动状态,计算达到该状态所需的关节力。
- 正向递推(Forward Recursion):从基座到末端,计算每个连杆的速度、加速度。
- 反向递推(Backward Recursion):从末端到基座,计算每个关节需要提供的力和力矩。
流程概览
动力学的核心是构建'运动状态 - 力学参数'的方程。我们需要通过正推获取各个关节的真实速度与加速度,再通过逆推结合受力分析得到关节力矩。
核心方程
构建运动状态和力的关系主要依赖以下两个方程:
-
牛顿方程:用于解决刚体平移的动力学刻画,沟通力与线加速度的关系。
-
欧拉方程:用于解决刚体旋转的动力学刻画,沟通力矩与角速度、角加速度的关系。
其中,![_{}^{C}\textrm{I}] 是刚体在 {C} 中的惯性张量。要得到连杆质心的力和力矩,必须先求得线加速度、角速度及角加速度。
由于串联机械臂具有强耦合关系,相邻关节之间存在递推关系。当前连杆的运动状态依赖于前一个连杆的运动参数,因此递推法是计算真实运动状态的关键。
正向递推
正向递推从连杆 1 开始,利用递推式计算至连杆 n。
旋转运动参数
角速度
对于角速度,公式如下:

该式直观易懂:真实的角速度等于前一关节的角速度加上当前关节绕自身轴的自转速度。
角加速度
角加速度是对角速度求时间的微分。第一项求导正常,第二项需注意乘积求导法则。重点在于对单位向量 $\hat{Z}_{i+1}$ 的求导处理。
为简化理解,可假设 $Z_i$ 和 $Z_{i+1}$ 互相垂直。此时 $d\hat{Z}_{i+1}$ 表示方向偏移量,可用叉积表示。经过时间 $dt$ 后,变化率即为:










