当前位置:机器人动力学
Chapter 3 · Robot Dynamics

机器人动力学:从力矩到运动的计算框架

动力学题的核心是 \(M(q)\ddot q+C(q,\dot q)\dot q+g(q)=\tau\)。考试可能让你解释各项,也可能给简化模型让你算力矩、加速度、重力补偿或用拉格朗日法推单连杆方程。

静力映射拉格朗日逆动力学Newton-Euler
惯性 M(q) qddot 速度耦合 C(q,qdot) qdot 重力 g(q) 三笔账相加,等于关节输入力矩 tau
动力学计算就是算清楚机器人运动需要支付哪些力矩。

1. 机构、执行器与感知:Chapter 5 覆盖

当前课程并不只考公式,也可能考机器人硬件组成。Chapter 5 的主线是:机器人机构 = 连杆/关节 + 执行器 + 传动 + 状态传感器;控制效果受硬件限制影响。

理解这一章时不要把硬件当成和控制无关的“背诵题”。串联机器人、并联机器人、不同执行器和传感器会直接影响控制模型能不能准确、力矩能不能足够、反馈信号是否可靠。比如同样的 PID 控制器,用在刚度高的并联机构和柔顺的气动机构上,调参和性能会完全不同;传感器噪声越大,控制器里微分项或力反馈越容易被放大。因此硬件知识的考试答法,最好总是落到“它会怎样影响运动精度、力输出、安全性和控制难度”。

知识点课件内容考试答法
串联机器人从基座到末端一节接一节工作空间大,正运动学直观;刚度较低,误差会累积。
并联机器人多条支链共同支撑末端平台刚度高、承载好;工作空间小,奇异和正运动学复杂。
电磁执行器有刷/无刷电机控制方便、响应快;无刷电机依赖电子换向。
液压/气动液压力大,气动柔顺液压高功率密度但系统复杂;气动安全柔顺但精度较难。
关节轴结构转动关节/移动关节承担约束与运动方向转动关节输出力矩、移动关节输出直线力;机构刚度影响定位和接触稳定性。
传动 transmission齿轮、丝杠、皮带等把执行器运动传到关节能放大力矩或改变速度,但会引入摩擦、背隙、弹性和效率损失。
感知与融合传感器有噪声、精度和视角限制单传感器不够可靠,常融合不同来源/时间/位置的数据。

2. 主方程和物理意义

$$M(q)\ddot q+C(q,\dot q)\dot q+g(q)=\tau$$

这个方程可以读成一句话:为了让机器人以当前姿态 \(q\)、速度 \(\dot q\)、加速度 \(\ddot q\) 运动,电机必须提供足够的关节力矩 \(\tau\),用来支付惯性、速度耦合和重力这三笔账。\(M(q)\ddot q\) 像“推动车变加速”需要的力,\(C(q,\dot q)\dot q\) 来自多关节运动时的互相带动和离心/科氏效应,\(g(q)\) 则是即使不动也要抵抗重力的力矩。姿态不同,重力力臂和惯量分布都会变,所以这些项通常依赖 \(q\)。

考试怎么问答题要点
\(M(q)\ddot q\)给加速度求力矩惯性项,\(M\) 对称正定,构型相关。
\(C(q,\dot q)\dot q\)问高速运动为什么耦合明显科氏/离心等速度相关项,低速时常可近似忽略。
\(g(q)\)问静止为什么还要力矩重力补偿,取决于姿态。
\(\tau\)控制器输出什么关节力矩或等效驱动力。

例 3.1 简化二自由度逆动力学

计算

场景交代:把系统看作两个串联转动关节组成的机器人,两个关节都已有规划好的角加速度。矩阵 \(M\) 描述两关节惯性耦合,\(C\dot q\) 是速度相关力矩,\(g\) 是重力补偿力矩。

题目:某 2 关节机器人在某姿态下 \(M=\left[\begin{smallmatrix}2&0.5\\0.5&1\end{smallmatrix}\right]\),\(C\dot q=[0.2,-0.1]^T\),\(g=[3,1]^T\)。若期望 \(\ddot q=[1,2]^T\),求所需力矩。

qdd [1, 2]^T inertia matrix M [[2,.5],[.5,1]] M qdd [3, 2.5]^T Cqdot [0.2,-0.1]^T g [3,1]^T + tau [6.2, 3.4]^T
二自由度逆动力学代入示意:给定期望加速度时,先算惯性项 \(M\ddot q\),再把速度相关项 \(C\dot q\) 和重力项 \(g\) 按同一关节正方向相加。
图中元素:左侧是题目给出的 \(\ddot q=[1,2]^T\),中间矩阵 \(M\) 乘以加速度得到 \(M\ddot q=[3,2.5]^T\);下方两个小框分别是 \(C\dot q=[0.2,-0.1]^T\) 和 \(g=[3,1]^T\),最后在求和点得到 \(\tau=[6.2,3.4]^T\)。
建模顺序:
  1. 先画关节、连杆、质心、重力方向和输入力矩方向。
  2. 判断题目类型:给运动求力矩是逆动力学,给力矩求加速度是正动力学。
  3. 把每一项对应到物理量:惯性、速度相关项、重力、外力或广义力。
  4. 计算后解释符号方向,尤其是负力矩或负广义力。

解析过程

题目要的是逆动力学:已知希望机器人产生的加速度,反过来求需要的关节力矩。第一步先算惯性项 \(M\ddot q\)。矩阵中的非对角元素 \(0.5\) 表示两个关节加速度之间存在耦合,所以不能只把 \(2\) 乘第一个加速度、\(1\) 乘第二个加速度。

$$M\ddot q=\begin{bmatrix}2&0.5\\0.5&1\end{bmatrix}\begin{bmatrix}1\\2\end{bmatrix}=\begin{bmatrix}3\\2.5\end{bmatrix}$$

第二步把速度相关项和重力项加上。题目已经直接给出 \(C\dot q\),说明不需要再展开 \(C\) 矩阵,只要按向量相加即可。

$$\tau=M\ddot q+C\dot q+g=\begin{bmatrix}3\\2.5\end{bmatrix}+\begin{bmatrix}0.2\\-0.1\end{bmatrix}+\begin{bmatrix}3\\1\end{bmatrix}=\begin{bmatrix}6.2\\3.4\end{bmatrix}\,\mathrm{N\,m}$$
易错点:矩阵乘法别按元素相乘;\(C\dot q\) 题目若已给出,就直接作为向量相加。

例 3.1b 单关节逆动力学分项代入

基础变式

场景交代:画一个单转动关节带动连杆运动,关节轴固定在基座上。题目已经把惯性、速度相关项和重力项等效到这个关节上,只需要按同一关节正方向相加。

题目:某单关节在当前姿态下 \(M=3\),速度相关项 \(C\dot q=0.4\),重力项 \(g=2\)。若期望 \(\ddot q=1.5\,\mathrm{rad/s^2}\),求所需力矩。

3 x 1.5 = 4.5 Cqdot = 0.4 g = 2 + tau=6.9 positive tau
单关节逆动力学分项示意:题目已经把所有量等效到同一个关节正方向上,所以总力矩就是惯性项、速度相关项和重力项相加。
图中元素:左侧转动关节表示被控关节;右侧三个框分别写出 \(M\ddot q=3\times1.5=4.5\)、\(C\dot q=0.4\)、\(g=2\),三项进入求和点后得到 \(\tau=6.9\,\mathrm{N\,m}\)。
建模顺序:
  1. 先画关节、连杆、质心、重力方向和输入力矩方向。
  2. 判断题目类型:给运动求力矩是逆动力学,给力矩求加速度是正动力学。
  3. 把每一项对应到物理量:惯性、速度相关项、重力、外力或广义力。
  4. 计算后解释符号方向,尤其是负力矩或负广义力。

解析过程

这道题故意把动力学三项拆开给出,是为了训练你看懂公式每一项在做什么。逆动力学就是把期望加速度代入 \(M\ddot q+C\dot q+g\),求电机要给多少力矩。

$$M\ddot q=3\times1.5=4.5$$

惯性项 \(4.5\) 是为了产生加速度;\(C\dot q=0.4\) 是速度相关项;\(g=2\) 是重力补偿项。三项相加:

$$\tau=4.5+0.4+2=6.9\,\mathrm{N\,m}$$

如果当前速度很低,\(C\dot q\) 可能很小;如果姿态让重力力臂很大,\(g\) 会成为主要负担。这个题的重点不是算术,而是把三项的物理含义分清。

易错点:逆动力学:给运动求力矩;正动力学:给力矩求加速度。

3. 静力学和重力补偿

机器人不动时 \(\dot q=\ddot q=0\),动力学方程变成:

$$\tau=g(q)$$

如果还有末端外力,则需要加上 \(J^TF\)。

$$\tau=g(q)+J^TF$$

“静止”不等于“力矩为零”。静止只说明加速度和速度项为零,惯性项和速度耦合项消失;但重力仍然在拉连杆,外部接触力也仍然可能对关节产生力矩。重力补偿的目的就是在控制器里提前给出 \(g(q)\),让电机先把机器人“托住”,这样位置控制器不用靠长期误差硬顶重力,稳态误差会小很多。

例 3.2 单连杆水平保持

重力补偿

场景交代:画一根均匀刚性连杆,左端通过转动关节固定在墙或机架上,杆水平伸向右方。重力作用在杆的质心,也就是杆中点,方向竖直向下;关节力矩用来阻止杆下落。

题目:一根均匀连杆质量 \(m=2\,\mathrm{kg}\),长度 \(L=0.6\,\mathrm m\),绕一端转动。水平保持不动时需要多大关节力矩?

G mg tau L/2 L/2 static balance: tau = m g L / 2
均匀杆水平保持示意:连杆水平伸出时,重力作用在杆中点并对左端转轴产生下转力矩。
图中元素:左侧灰色墙/基座固定转动关节,绿色均匀杆水平向右,蓝色点是质心 \(G\) 位于 \(L/2\) 处;红色箭头是 \(mg\),橙色弧箭头是关节必须提供的平衡力矩。
建模顺序:
  1. 先画关节、连杆、质心、重力方向和输入力矩方向。
  2. 判断题目类型:给运动求力矩是逆动力学,给力矩求加速度是正动力学。
  3. 把每一项对应到物理量:惯性、速度相关项、重力、外力或广义力。
  4. 计算后解释符号方向,尤其是负力矩或负广义力。

解析过程

均匀连杆的重力可以等效作用在质心,质心位于杆长中点 \(L/2\)。关节要提供的力矩等于重力乘以到转轴的垂直力臂。连杆水平时,重力竖直向下,质心到转轴的水平距离正好是最大垂直力臂。

$$\tau=mg\frac{L}{2}=2\times9.8\times0.3=5.88\,\mathrm{N\,m}$$

这个力矩的方向要和重力造成的转动趋势相反。数值 \(5.88\,\mathrm{N\,m}\) 表示电机至少要提供这么大的保持力矩,连杆才不会往下掉。

易错点:不要用整根杆长 \(L\) 当质心力臂;均匀杆质心在 \(L/2\)。

例 3.2b 末端力静力映射

静力进阶

场景交代:画一个静止的 2R 机械臂,基座和两个转动关节都不运动。末端受到给定平面外力,同时各关节还要补偿重力;静态平衡时关节力矩由重力项和末端外力映射共同决定。

题目:某 2R 机械臂当前 \(J=\begin{bmatrix}-1&-1\\1&0\end{bmatrix}\),重力补偿项 \(g=[2,1]^T\)。若末端外力 \(F=[4,-6]^T\,\mathrm N\),求静态平衡所需关节力矩。

F=[4,-6]^T J^T F [-10,-4]^T g=[2,1]^T + tau [-8,-3]^T static balance: tau = g + J^T F
含重力补偿的静力映射示意:静态平衡所需关节力矩由两部分组成,一部分是末端外力通过 \(J^T\) 映射来的力矩,另一部分是机器人自身重力补偿 \(g\)。
图中元素:左侧 2R 机械臂末端受到红色外力 \(F=[4,-6]^T\);中间蓝色框计算 \(J^TF=[-10,-4]^T\),下方黄色框是 \(g=[2,1]^T\),两者在求和点相加得到 \(\tau=[-8,-3]^T\)。
建模顺序:
  1. 先画固定基座、活动关节和连杆,标清每个角度是相对哪个坐标轴或哪根杆量的。
  2. 写出几何关系或矩阵关系,再代入长度、角度、目标点或外力。
  3. 若是 Jacobian 题,速度用 \(J\dot q\),末端力映射用 \(J^TF\)。
  4. 最后说明多解、无解、奇异或力矩正负号代表什么。

解析过程

静态时速度和加速度为零,但关节仍要平衡重力和末端外力。末端外力映射到关节空间用 \(J^T F\),然后再加重力补偿 \(g(q)\)。

$$J^TF=\begin{bmatrix}-1&1\\-1&0\end{bmatrix}\begin{bmatrix}4\\-6\end{bmatrix}=\begin{bmatrix}-10\\-4\end{bmatrix}$$
$$\tau=g+J^TF=\begin{bmatrix}2\\1\end{bmatrix}+\begin{bmatrix}-10\\-4\end{bmatrix}=\begin{bmatrix}-8\\-3\end{bmatrix}\,\mathrm{N\,m}$$

这里的负号表示所需力矩方向与我们定义的关节正方向相反。它不是“力矩大小不能为负”,而是方向信息。

易错点:有末端外力时静态公式是 \(\tau=g+J^TF\),不要漏掉转置。

4. 广义坐标、广义力与拉格朗日法

Chapter3 先引入 generalized coordinates 和 generalized forces。广义坐标是能唯一描述系统构型的一组独立变量;机器人里通常就是关节变量 \(q=[q_1,\dots,q_n]^T\)。广义力则是与这些变量做虚功配对的力/力矩。

$$\delta W=\sum_i Q_i\,\delta q_i=Q^T\delta q$$
$$\mathcal L(q,\dot q)=K(q,\dot q)-P(q),\qquad \frac{d}{dt}\left(\frac{\partial\mathcal L}{\partial \dot q_i}\right)-\frac{\partial\mathcal L}{\partial q_i}=\tau_i$$

拉格朗日法的好处是不用对每根杆画完整受力图,而是从能量出发。动能 \(K\) 记录系统“动起来有多难”,势能 \(P\) 记录系统“在保守力场中处于什么高度或弹簧形变”。\(\partial \mathcal L/\partial \dot q\) 可以理解成广义动量,先对它求时间导数,再减去 \(\partial \mathcal L/\partial q\),就得到为了实现这种运动需要的广义力。对转动关节来说,广义力就是关节力矩;对移动关节来说,广义力就是沿该方向的驱动力。

选广义坐标:通常就是关节角 \(q\)。
写动能:平动 \( \frac12 mv^2 \),转动 \( \frac12 I\omega^2 \)。
写势能:常见为重力势能 \(mgh\)。
代入方程:整理成 \(M\ddot q+C\dot q+g=\tau\)。

例 3.3 单摆式单连杆推导

必会推导

场景交代:画一根无质量杆,杆上端为固定转轴,杆端集中一个质量点。角度 \(q\) 从竖直向下方向量起,正方向按图中转动方向;外部输入力矩 \(\tau\) 作用在转轴上。

题目:质量 \(m\) 集中在长度 \(l\) 的杆端,角 \(q\) 从竖直向下计,输入力矩 \(\tau\)。推导动力学方程。

mg q l
单连杆示意:重力作用在质心或杆端,对转轴产生力矩。
图中元素:上方白圈是固定转轴,绿色杆是连杆,蓝色圆表示质心或杆端质量;红色箭头是重力,橙色弧线是关节角 \(q\)。
建模顺序:
  1. 先画关节、连杆、质心、重力方向和输入力矩方向。
  2. 判断题目类型:给运动求力矩是逆动力学,给力矩求加速度是正动力学。
  3. 把每一项对应到物理量:惯性、速度相关项、重力、外力或广义力。
  4. 计算后解释符号方向,尤其是负力矩或负广义力。

解析过程

先选广义坐标。题目只有一个角 \(q\),所以系统只有一个自由度。质量集中在杆端,端点速度大小为半径 \(l\) 乘角速度 \(\dot q\),因此动能是平动动能。

$$K=\frac12 m(l\dot q)^2=\frac12 ml^2\dot q^2,\qquad P=mgl(1-\cos q)$$

势能选最低点为零。当 \(q=0\) 时质量在最低点,势能为 0;转到角度 \(q\) 后高度增加 \(l(1-\cos q)\),所以势能为 \(mgl(1-\cos q)\)。

$$\mathcal L=\frac12 ml^2\dot q^2-mgl(1-\cos q)$$

接下来按拉格朗日方程分别求两项。对 \(\dot q\) 求偏导得到广义动量 \(ml^2\dot q\),再对时间求导得到 \(ml^2\ddot q\)。对 \(q\) 求偏导时只有势能部分相关,符号要保留。

$$\frac{d}{dt}\frac{\partial\mathcal L}{\partial \dot q}=ml^2\ddot q,\qquad \frac{\partial\mathcal L}{\partial q}=-mgl\sin q$$
$$ml^2\ddot q+mgl\sin q=\tau$$

最后的方程表示:输入力矩 \(\tau\) 一部分用来产生角加速度 \(ml^2\ddot q\),另一部分用来克服重力回复力矩 \(mgl\sin q\)。小角度时 \(\sin q\approx q\),它还会变成常见的线性摆方程。

易错点:势能选零点不同不影响方程;关键是 \(\partial P/\partial q\) 的符号。

例 3.3b 虚功求广义力

概念+计算

场景交代:画一个只能沿水平导轨滑动的滑块,实际位移坐标为 \(x\),但系统用另一个广义坐标 \(q\) 描述,二者满足 \(x=2q\)。外力沿导轨正方向作用在滑块上。

题目:一个滑块位置满足 \(x=2q\),外力沿 \(x\) 正方向作用,大小 \(F=12\,\mathrm N\)。求与广义坐标 \(q\) 对应的广义力 \(Q\)。

F delta x = 2 delta q delta W = F delta x = Q delta q
虚功示意:外力沿实际位移方向做功,再换算成广义坐标上的广义力。
图中元素:蓝色块是沿水平导轨运动的滑块,绿色箭头是实际外力 \(F\),橙色箭头标出实际位移与广义位移之间的关系;虚功就是力乘对应方向的虚位移。
建模顺序:
  1. 先画关节、连杆、质心、重力方向和输入力矩方向。
  2. 判断题目类型:给运动求力矩是逆动力学,给力矩求加速度是正动力学。
  3. 把每一项对应到物理量:惯性、速度相关项、重力、外力或广义力。
  4. 计算后解释符号方向,尤其是负力矩或负广义力。

解析过程

广义力不是随便把外力名字换成 \(Q\),而是要看它和广义位移 \(\delta q\) 做虚功时的配对关系。外力做的虚功为:

$$\delta W=F\,\delta x$$

由于 \(x=2q\),对它取虚位移得到 \(\delta x=2\delta q\)。代入虚功:

$$\delta W=F(2\delta q)=2F\delta q$$

又因为广义力定义为 \(\delta W=Q\delta q\),所以 \(Q=2F=24\)。这个例子说明:广义力要乘上坐标变换的“放大系数”,不是简单等于外力本身。

易错点:广义力由虚功定义得到:先写 \(\delta W\),再和 \(Q\delta q\) 对比。

5. Twist、Wrench、Screw 与惯性矩阵

Chapter3 的 Newton-Euler 部分用了现代机器人学语言:twist 表示刚体速度,wrench 表示力和力矩,screw axis 表示旋转和平移耦合的运动轴。这部分若考,多半是概念辨析。

这些概念看起来抽象,其实是在把三维刚体运动写成统一的 6 维形式。刚体在空间中既可能有角速度,也可能有线速度,所以 twist 把两者放在一个向量里;外界对刚体既可能施加力,也可能施加力矩,所以 wrench 也把两者合在一起。screw axis 则表示很多刚体运动都可以看成绕某条轴旋转并沿这条轴平移,螺钉运动就是最直观的例子。

Twist

把角速度和线速度合成 6 维速度量。

$$V=\begin{bmatrix}\omega\\v\end{bmatrix}$$

Wrench

把力矩和力合成 6 维受力量。

$$\mathcal F=\begin{bmatrix}m\\f\end{bmatrix}$$

课件里的 Adjoint representation 是这部分容易漏的点。它的作用是把同一个刚体速度用另一个坐标系表达:物体没有变,变的是参考坐标系。若两个坐标系之间的齐次变换为 \(T_{ab}=\begin{bmatrix}R&p\\0&1\end{bmatrix}\),常见的 Adjoint 矩阵写成:

$$\operatorname{Ad}_{T_{ab}}=\begin{bmatrix}R&0\\ \left[p\right]_\times R&R\end{bmatrix}$$

其中 \([p]_\times\) 是由位移向量 \(p\) 构造的反对称矩阵,用来表示叉乘。直观地说,角速度换坐标只需要旋转矩阵 \(R\),但线速度不仅会随坐标轴旋转,还会因为参考点平移 \(p\) 而多出 \(\omega\times p\) 这类项,所以 Adjoint 比普通旋转矩阵更大。wrench 的坐标变换要和 twist 的虚功 \(\mathcal F^TV\) 保持一致,具体写法会随“从哪个坐标系到哪个坐标系”的约定改变;考试更可能考它“改变 twist/wrench 表达坐标系”的作用。

旋转惯性矩阵描述刚体抗拒角加速度变化的能力。对刚体转动动能:

$$K_{rot}=\frac12\omega^TI\omega$$

这里的 \(I\) 不是单位矩阵,而是转动惯量矩阵。它告诉你绕不同方向转动时有多难,也描述不同转轴之间是否耦合。如果坐标轴正好选在主惯性轴上,\(I\) 会变成对角矩阵,计算最简单;如果坐标轴随意选,非对角项就表示绕一个轴的角速度也会影响另一个轴方向的角动量。

惯性矩阵会随表达坐标系变化;主惯性轴下惯性矩阵可对角化。

6. 正动力学、逆动力学、Newton-Euler

正动力学

给 \(q,\dot q,\tau\),求 \(\ddot q\),常用于仿真。

$$\ddot q=M^{-1}(\tau-C\dot q-g)$$

逆动力学

给 \(q,\dot q,\ddot q\),求 \(\tau\),常用于控制。

$$\tau=M\ddot q+C\dot q+g$$

Newton-Euler 法是递推算法:前向递推速度/加速度,后向递推力/力矩。概念题常问它和拉格朗日法的区别:拉格朗日重能量表达,Newton-Euler 重逐连杆受力递推。

正动力学和逆动力学的区别只在“已知量”和“未知量”换了位置。仿真时通常知道控制器给了多少力矩,想知道机器人下一瞬间怎么动,所以用正动力学;控制时常常已经规划好期望加速度,想求电机应该给多少力矩,所以用逆动力学。Newton-Euler 特别适合逆动力学,因为它可以从基座一路算到末端得到每根杆的运动,再从末端倒推回基座得到每个关节需要承担的力和力矩。

Forward iterations:从基座到末端,递推每根连杆的 twist、速度和加速度。
Backward iterations:从末端到基座,递推每根连杆受到的 wrench 和关节力矩。
逆动力学:已知 \(q,\dot q,\ddot q\),求实现该运动所需 \(\tau\)。

例 3.4 正动力学求加速度

计算

场景交代:画单转动关节带动一根连杆,关节角 \(q\) 已知,电机在关节上施加力矩 \(\tau\)。模型中 \(3\sin q\) 是该姿态下的重力力矩,剩余力矩才用于产生角加速度。

题目:单关节模型 \(2\ddot q+3\sin q=\tau\)。当 \(q=30^\circ\)、\(\tau=5\,\mathrm{N\,m}\) 时,求 \(\ddot q\)。

tau 5 - 3 sin30 = 1.5 remaining 3.5 divide by 2 qdd=1.75 forward dynamics: known torque -> solve acceleration
单关节正动力学求加速度示意:已知输入力矩时,要先扣掉当前姿态的重力项,剩余力矩才用来产生角加速度。
图中元素:左侧输入为 \(\tau=5\),中间先减去 \(3\sin30^\circ=1.5\),再除以惯性系数 2;右侧输出 \(\ddot q=1.75\,\mathrm{rad/s^2}\)。这对应把 \(2\ddot q+3\sin q=\tau\) 改写为 \(\ddot q=(\tau-3\sin q)/2\)。
建模顺序:
  1. 先画关节、连杆、质心、重力方向和输入力矩方向。
  2. 判断题目类型:给运动求力矩是逆动力学,给力矩求加速度是正动力学。
  3. 把每一项对应到物理量:惯性、速度相关项、重力、外力或广义力。
  4. 计算后解释符号方向,尤其是负力矩或负广义力。

解析过程

这是正动力学,因为题目给了当前姿态和输入力矩,要求加速度。把 \(q=30^\circ\) 和 \(\tau=5\) 代入动力学方程即可。

$$2\ddot q+3\sin30^\circ=5$$

其中 \(3\sin30^\circ=1.5\) 是当前姿态下的重力项。输入力矩 5 先要克服这部分重力,剩下的力矩才用于产生加速度。

$$2\ddot q+1.5=5\Rightarrow \ddot q=1.75\,\mathrm{rad/s^2}$$

加速度为正,说明输入力矩大于重力项,关节会沿正方向加速。

易错点:三角函数角度代值前要确认单位;计算器常需切换度/弧度。

例 3.5 Newton-Euler 递推思路题

概念+小算

场景交代:画一根运动中的刚体连杆,质心 \(G\) 在杆内部。前向递推已经给出了质心线加速度和连杆角加速度;后向递推要把这些运动量换成等效惯性力和惯性力矩。

题目:某单连杆质心质量 \(m=2\,\mathrm{kg}\),质心线加速度大小 \(a_G=1.2\,\mathrm{m/s^2}\),绕质心转动惯量 \(I_G=0.08\,\mathrm{kg\,m^2}\),角加速度 \(\alpha=5\,\mathrm{rad/s^2}\)。忽略重力时,前向递推得到这些加速度后,后向递推中质心等效惯性力和惯性力矩是多少?

forward: velocity / acceleration backward: force / torque
Newton-Euler 递推示意:前向算运动,后向算力和力矩。
图中元素:三个圆代表从基座到末端的连杆/关节序列;上方绿色弧线表示前向递推速度和加速度,下方橙色弧线表示从末端往基座回传力和力矩。
建模顺序:
  1. 先画关节、连杆、质心、重力方向和输入力矩方向。
  2. 判断题目类型:给运动求力矩是逆动力学,给力矩求加速度是正动力学。
  3. 把每一项对应到物理量:惯性、速度相关项、重力、外力或广义力。
  4. 计算后解释符号方向,尤其是负力矩或负广义力。

解析过程

Newton-Euler 的前向递推负责得到每根连杆的速度和加速度;后向递推再用这些加速度计算连杆需要的力和力矩,并传回关节。对一个刚体,最基本的惯性关系就是质心平动 \(F=ma_G\) 和绕质心转动 \(M=I_G\alpha\)。

$$F_{in}=ma_G=2\times1.2=2.4\,\mathrm N$$
$$M_{G,in}=I_G\alpha=0.08\times5=0.40\,\mathrm{N\,m}$$

真实多连杆递推还要考虑坐标变换、相邻连杆传来的力和力矩,以及重力项。这个小题只是在抓住 Newton-Euler 的核心:先算运动,再由运动反推每根杆所需的力和力矩。

易错点:Newton-Euler 不是新物理定律,而是把 \(F=ma\)、\(M=I\alpha\) 系统化递推。

概念题与计算题自测

概念 1

场景交代:画一个多连杆机器人或单摆系统,用关节变量作为广义坐标;解题重点是先写动能和势能,再由能量方程得到关节力矩。

为什么拉格朗日法适合复杂机器人系统?

q T V L = T - V Euler-Lagrange
拉格朗日法示意:先用广义坐标描述构型,再由动能和势能推出动力学方程。
图中元素:左侧绿色摆杆表示由广义坐标 \(q\) 描述的系统,蓝色框表示动能 \(T\),橙色框表示势能 \(V\);二者组合成 \(L=T-V\),再通过拉格朗日方程得到关节力矩。
查看答案与解析

复杂机器人有很多连杆和约束,如果逐个画受力图,很容易漏掉约束力或内力。拉格朗日法从动能和势能出发,直接使用能唯一描述构型的广义坐标,很多约束力不会显式出现在方程里。这样对多自由度机械臂更系统,也更容易整理成标准形式 \(M(q)\ddot q+C(q,\dot q)\dot q+g(q)=\tau\)。

计算 1

场景交代:画一个等效单关节动力学模型,关节正方向已经规定;惯性项 \(M\ddot q\)、速度相关项 \(C\dot q\) 和重力项 \(g\) 都按同一正方向相加得到关节力矩。

若 \(M=4\),\(C\dot q=1\),\(g=3\),\(\ddot q=2\),求 \(\tau\)。

4 x 2 = 8 Cqdot = 1 g = 3 + tau 12
标量逆动力学求和示意:这是单自由度版本的 \(\tau=M\ddot q+C\dot q+g\),每一项都是同一关节正方向上的力矩贡献。
图中元素:绿色框是惯性项 \(M\ddot q=4\times2=8\),蓝色框是速度相关项 \(C\dot q=1\),黄色框是重力项 \(g=3\);三项进入求和点后得到总关节力矩 \(\tau=12\)。
查看答案与解析

这是逆动力学代入题。惯性项是 \(M\ddot q=4\times2=8\),速度相关项已经给出为 1,重力项为 3。三项相加就是关节所需力矩。

$$\tau=4(2)+1+3=12\,\mathrm{N\,m}$$

概念 2

场景交代:画机械臂在某个姿态下悬停不动,速度和加速度为零,但重力仍作用在连杆质心,末端也可能有外部接触力。

静止时机器人关节力矩一定为零吗?

mg tau_g qdot = 0, qddot = 0, but g(q) remains
静态重力补偿示意:机器人不动时速度和加速度为零,但重力项仍可能需要关节力矩平衡。
图中元素:绿色连杆悬停在某姿态,红色箭头表示质心重力,橙色弧箭头表示关节需要输出的平衡力矩;静止并不等于电机力矩为零。
查看答案与解析

不一定。静止只表示 \(\dot q=0\) 和 \(\ddot q=0\),因此惯性项和速度相关项消失;但重力项 \(g(q)\) 通常仍然存在。如果末端还受到外部接触力,还会有 \(J^TF\) 这样的静力映射项。所以很多姿态下机器人即使不动,电机也必须持续输出力矩保持平衡。

本章掌握度