Skip to content

机器人动力学:力矩怎样变成加速度

WARNING

🧪 Beta公测版本提示:教程主体已完成,正在优化细节,欢迎大家提Issue反馈问题或建议。

运动学 告诉你手在哪。轨迹 告诉你角如何随时间变。动力学告诉你:要让关节按某个 q¨ 动,电机该出力矩 τ 多少——以及反过来,零力矩时重力会把臂往哪拽。本章用平面 2R、质量集中在杆末端,把拉格朗日从能量写到 M(q)q¨+H=τ 的每一项。不引入牛顿-欧拉递推(那是同一方程的另一套算法,便于实时逆动力学)。


一、通俗理解:为什么不在每根杆上画受力图

牛顿定律要在每根杆上画重力、铰链反力、电机力矩,再消去「铰链里那对作用力与反作用力」。杆一多,未知内力比你关心的 τ 还多。

拉格朗日改走标量:只写动能 T、势能 V,广义坐标选关节角(约束已经被坐标吃掉,铰链反力不做功,不出现)。方程是

ddtLq˙iLqi=τi,L=TV.

左端像「动量对时间的变化率减去势能坡度」。τi 是沿这个坐标的广义力——转动关节上就是电机力矩。

图解里杆可以有分布质量和转动惯量;demo 把质量放在每根杆末端,推导短一截,结构与带 Iz、质心距 c 的教材完全一样。

公式看结论;T2 交叉项和 M,H 从欧拉-拉格朗日怎么收,点开推导。

拉格朗日 2R

图解说明:串联 2R,力矩标在关节 1、2;动能、势能、欧拉-拉格朗日。重力竖直向下。图示为质心与惯量;demo 把质量放在杆端。

动画说明:同一组拉格朗日方程、同一初值。左:无阻尼自由落体;右:关节黏性阻尼。θ=0 为水平,重力沿 y

角度约定(必读):demo 里 θ=0水平(杆沿 +x),重力沿 y,于是重力力矩里出现 cosθ(水平时力臂最大)。许多教材取竖直悬挂为 0,公式差一个 sincos。抄系数前先看「零位在哪」。


二、保姆级:把 TV 写出来

杆 1 末端速度:对 p1=(1cosθ1,1sinθ1) 求导,

|v1|=1|θ˙1|,T1=12m112θ˙12.

杆 2 末端就是手,速度由雅可比第一行给出(或直接对 FK 求导)。平方后

T2=12m2(12θ˙12+22(θ˙1+θ˙2)2+212cosθ2θ˙1(θ˙1+θ˙2)).

交叉项 cosθ2:两杆夹角改变,两段速度的点积在变——伸直时「一起转」更费劲,折叠时部分抵消。

势能(θ=0 水平,y 向上为正,重力 gy^):高度等于 y 坐标,

V=m1g1sinθ1+m2g(1sinθ1+2sin(θ1+θ2)).

(若你的零位是水平而势能用 sin,要对一下坐标:demo 的重力项用的是 cos,与「y 向上、θx 轴起」配套——见下一节 H 里的 g1,g2。)

L=TV 代入欧拉-拉格朗日,对 θ1,θ2 各写一行,再把含 θ¨ 的项收到左边,就得到标准形。

动能怎么写:两个点质量的 2R

图解说明:质量集中在肘与手。|v1|=1|θ˙1|;手的速度由两关节共同贡献。零位水平时重力力臂最大,公式里出现 cos

逐步推导:杆 2 的动能交叉项 212cosθ2(点击展开)

手的位置就是正运动学 p2。对时间求导(链式法则,与雅可比第一列、第二列点乘 θ˙ 相同):

x˙=1s1θ˙12s12(θ˙1+θ˙2),y˙=1c1θ˙1+2c12(θ˙1+θ˙2).

平方相加。与工作空间那次推导一样,交叉项会出现 cosθ2

|v2|2=12θ˙12+22(θ˙1+θ˙2)2+212cosθ2θ˙1(θ˙1+θ˙2).

几何阅读:1θ˙1 是肘的速率;2(θ˙1+θ˙2) 是手相对肘的速率(绝对角速度 × 第二杆长)。两段速度的夹角就是 θ2,点积带 cosθ2。伸直(θ2=0cos=1)时两段速度几乎同向,动能最大——「一起甩」更费劲;折叠时部分抵消。

T2=12m2|v2|2 就是正文那一行。T1 更简单:肘绕定点转,|v1|=1|θ˙1|

势能:取 y 向上为正,高度就是 y 坐标。demo 的零位是水平(θ=0 沿 +x),重力沿 y,所以 Vsin(高度)而重力力矩(V/θ)里出现 cos。许多教材零位是竖直悬挂,公式差一个 sincos抄系数前先看零位。


三、标准形:M(q)q¨+H(q,q˙)=τ

M(q)q¨+H(q,q˙)=τ.

对点质量 2R(与 mass_matrix / h_vector 一致):

M11=(m1+m2)12+m222+2m212cosθ2,M12=M21=m222+m212cosθ2,M22=m222.
  • M 对称正定(动能 12q˙Mq˙>0)。求加速度用 solve(M, ·) 而不是显式求逆。
  • M 只依赖 θ2:绕基座转一圈,两杆相对姿势不变,惯性在关节坐标里长得一样。
  • 科氏 / 离心来自 M 随时间变。记 c=m212sinθ2,则
Hcor,1=c(2θ˙1θ˙2+θ˙22),Hcor,2=cθ˙12.

冰上转圈把手臂收回会转更快:那是惯性变了。这里 sinθ2 项让「肘在甩」时基座关节感到额外力矩。

重力(与代码一致,θ=0 水平):

g1=(m1+m2)g1cosθ1+m2g2cos(θ1+θ2),g2=m2g2cos(θ1+θ2).

H=Hcor+g。速度为 0 时 H 只剩重力——这就是「重力补偿」:τ=g(q) 可以让手臂停在半空(忽略摩擦)。

正动力学:已知 τ,解 q¨=M1(τH),再积分得运动(仿真、demo)。
逆动力学:已知 q,q˙,q¨,算 τ=Mq¨+H(控制里更常用:轨迹规划给出 q¨d,前馈这一拍力矩,PID 只补误差)。

阻尼写成 cq˙ 加进右端,对比「保守系统永远摆」和「有摩擦停下」。

现代控制 的状态若包含 q,q˙,线性化后的 A,B 就是这个非线性式在平衡点的切线。

标准形 M(q) q̈ + H = τ

图解说明M 对称正定,2R 中只依赖 θ2。正动力学由 τ 求加速度;逆动力学由计划好的运动求 τ(控制更常用)。

逐步推导:欧拉-拉格朗日怎样把 θ¨ 收到 M(q) 里(点击展开)

对广义坐标 qi

ddtLq˙iLqi=τi,L=TV.

动能对速度是二次型 T=12q˙M(q)q˙。于是

Tq˙=M(q)q˙.

再对时间求导(乘积法则):Mq¨+M˙q˙M˙ 来自 Mq 的依赖,里面全是 q˙ 的二次项,加上 T/q+V/q,一并叫做 H(q,q˙)(科氏 / 离心 + 重力)。含 q¨ 的只剩 Mq¨,所以

M(q)q¨+H(q,q˙)=τ.

对点质量 2R,把 T1+T2 写成 12Mijθ˙iθ˙j,对照系数:

  • θ˙12 的系数 ×2 给出 M11=(m1+m2)12+m222+2m212cosθ2
  • θ˙22 只来自 m222(θ˙1+θ˙2)2 里的 θ˙22,故 M22=m222
  • 交叉 θ˙1θ˙2 给出 M12=M21

M 只依赖 θ2:绕基座转一圈,两杆相对姿势不变,惯性在关节坐标里长得一样。

重力项是 V/q(注意 L=TV 里对 q 的偏导带负号,移到左边变成 +g(q))。与代码 h_vector 一致,θ=0 水平:

g1=(m1+m2)g1cosθ1+m2g2cos(θ1+θ2),g2=m2g2cos(θ1+θ2).

静止时 q¨=q˙=0,要维持姿态必须 τ=g(q)——这就是重力补偿。


四、无主动力矩:双摆

τ=0 时手臂是双摆。无阻尼则能量在 TV 间倒腾,关节角一直晃;有阻尼则末端轨迹螺旋靠近低势能姿态。拉格朗日在保守力下保能量,必须额外加耗散才会停——这不是积分 bug。

PID 对照:PID 在植物外面用误差造 τ;植物本身仍是 M,H。计算力矩控制则是 τ=M(q¨d+Kde˙+Kpe)+H,先把非线性抵消,再对误差做 PD。


五、常见疑问

Q:质量放在杆端是不是太假?
均质杆要把 m 放在中点、再加 112m2M 的每一项都会多几个常数,依赖 cosθ2 的结构不变。教学用点质量,是为了让你把交叉项看清。

Q:科氏力是不是一种新力?
在惯性系里没有「科氏这种额外自然力」。它是你用弯曲的关节坐标时,M(q)q 变,加速度里多出来的二次速度项。换回笛卡尔,只剩 ma

Q:仿真步长为什么那么小?
显式欧拉积刚体摆会漂能量。DT=0.002 是凑合;真仿真用 RK4 或半隐式欧拉。本课重点是 M,H 对不对,不是积分器。

Q:如何验证 M,H 没写错?
(1) M 对称、特征值 >0;(2) τ=0、无阻尼时总能量 T+V 近似守恒;(3) 静止时 τ=g(q) 应使 q¨=0


六、代码在做什么

demo.py(θ1,θ2)=(0.3,0.9)、静止出发,分别积无阻尼与阻尼 c=1.6。左图关节角对时间;右图有阻尼时末端轨迹。

2R 拉格朗日自由落体


七、小结

概念一句话
拉格朗日TV,不画铰链内力
M(q)惯性;2R 中只靠 θ2;对称正定
科氏 / 离心M 随构型变带来的 q˙ 二次项
重力补偿静止时 τ=g(q)
正 / 逆动力学已知 τq¨ / 已知运动求 τ
下游计算力矩、辨识、仿真、与 PID nested

下一章 DH 建模:把「两根杆的三角公式」换成可往 6 轴扩的齐次链。旋转本身的流形见 李群

📥 Code

FileViewDownload
demo.pyOpenDownload
exercise.pyOpenDownload

参考

  1. Spong, Hutchinson, Vidyasagar, Robot Modeling and Control
  2. Craig, Introduction to Robotics(牛顿-欧拉与拉格朗日对照)
  3. 上一章 运动学(FK 与本章 fk 同一套角)