机器人动力学:力矩怎样变成加速度
WARNING
🧪 Beta公测版本提示:教程主体已完成,正在优化细节,欢迎大家提Issue反馈问题或建议。
运动学 告诉你手在哪。轨迹 告诉你角如何随时间变。动力学告诉你:要让关节按某个
动,电机该出力矩 多少——以及反过来,零力矩时重力会把臂往哪拽。本章用平面 2R、质量集中在杆末端,把拉格朗日从能量写到 的每一项。不引入牛顿-欧拉递推(那是同一方程的另一套算法,便于实时逆动力学)。
一、通俗理解:为什么不在每根杆上画受力图
牛顿定律要在每根杆上画重力、铰链反力、电机力矩,再消去「铰链里那对作用力与反作用力」。杆一多,未知内力比你关心的
拉格朗日改走标量:只写动能
左端像「动量对时间的变化率减去势能坡度」。
图解里杆可以有分布质量和转动惯量;demo 把质量放在每根杆末端,推导短一截,结构与带
公式看结论;

图解说明:串联 2R,力矩标在关节 1、2;动能、势能、欧拉-拉格朗日。重力竖直向下。图示为质心与惯量;demo 把质量放在杆端。
动画说明:同一组拉格朗日方程、同一初值。左:无阻尼自由落体;右:关节黏性阻尼。
为水平,重力沿 。
角度约定(必读):demo 里
二、保姆级:把 和 写出来
杆 1 末端速度:对
杆 2 末端就是手,速度由雅可比第一行给出(或直接对 FK 求导)。平方后
交叉项
势能(
(若你的零位是水平而势能用
把

图解说明:质量集中在肘与手。
;手的速度由两关节共同贡献。零位水平时重力力臂最大,公式里出现 。
逐步推导:杆 2 的动能交叉项 (点击展开)
手的位置就是正运动学
平方相加。与工作空间那次推导一样,交叉项会出现
几何阅读:
势能:取
三、标准形:
对点质量 2R(与 mass_matrix / h_vector 一致):
对称正定(动能 )。求加速度用 solve(M, ·)而不是显式求逆。只依赖 :绕基座转一圈,两杆相对姿势不变,惯性在关节坐标里长得一样。 - 科氏 / 离心来自
随时间变。记 ,则
冰上转圈把手臂收回会转更快:那是惯性变了。这里
重力(与代码一致,
正动力学:已知
逆动力学:已知
阻尼写成
现代控制 的状态若包含

图解说明:
对称正定,2R 中只依赖 。正动力学由 求加速度;逆动力学由计划好的运动求 (控制更常用)。
逐步推导:欧拉-拉格朗日怎样把 收到 里(点击展开)
对广义坐标
动能对速度是二次型
再对时间求导(乘积法则):
对点质量 2R,把
的系数 给出 ; 只来自 里的 ,故 ; - 交叉
给出 。
重力项是 h_vector 一致,
静止时
四、无主动力矩:双摆
和 PID 对照:PID 在植物外面用误差造
五、常见疑问
Q:质量放在杆端是不是太假?
均质杆要把
Q:科氏力是不是一种新力?
在惯性系里没有「科氏这种额外自然力」。它是你用弯曲的关节坐标时,
Q:仿真步长为什么那么小?
显式欧拉积刚体摆会漂能量。DT=0.002 是凑合;真仿真用 RK4 或半隐式欧拉。本课重点是
Q:如何验证
(1)
六、代码在做什么
demo.py 从

七、小结
| 概念 | 一句话 |
|---|---|
| 拉格朗日 | 用 |
| 惯性;2R 中只靠 | |
| 科氏 / 离心 | |
| 重力补偿 | 静止时 |
| 正 / 逆动力学 | 已知 |
| 下游 | 计算力矩、辨识、仿真、与 PID nested |
📥 Code
| File | View | Download |
|---|---|---|
| demo.py | Open | Download |
| exercise.py | Open | Download |
参考
- Spong, Hutchinson, Vidyasagar, Robot Modeling and Control
- Craig, Introduction to Robotics(牛顿-欧拉与拉格朗日对照)
- 上一章 运动学(FK 与本章
fk同一套角)