3、四足机器人动力学基础:牛顿-欧拉法、拉格朗日法、关节力矩与地面反作用力
各位同学,欢迎来到动力学这一章。
说实话,动力学是四足机器人控制里最「劝退」的部分之一。我当年刚入行时,看到满屏的矩阵和偏微分方程,头都大了。但后来我发现一个道理:你不需要成为数学天才,但你必须理解物理直觉。
今天我们就来聊聊四足机器人的动力学。我会尽量用「人话」把牛顿-欧拉法、拉格朗日法,以及关节力矩和地面反作用力这些概念讲清楚。
3.1 为什么要学动力学?
先问个问题:你给电机发一个力矩指令,机器人为什么会动?
答案很简单——力矩产生了加速度,加速度改变了位置。但四足机器人有12个以上的自由度,每条腿都在和地面交互,这中间的耦合关系非常复杂。
我个人习惯把动力学分成两类:
- 正动力学:给定关节力矩,求机器人怎么动(仿真用得多)
- 逆动力学:给定期望的运动轨迹,求需要多大的关节力矩(控制用得多)
在步态控制中,我们主要用逆动力学。你想想看,如果你想让机器人小跑,你得先算出来每个关节该出多少力,对吧?
3.2 牛顿-欧拉法:最直观的动力学
牛顿-欧拉法,说白了就是「受力分析」的升级版。
它的核心思想很简单:
- 对每个刚体(比如大腿、小腿)应用牛顿第二定律:
F = m * a - 对每个刚体应用欧拉方程:
τ = I * α + ω × (I * ω)
然后从基座(机身)开始,逐级向外推导,或者反过来从末端(足端)向内推导。
我在项目中遇到过一个坑:用牛顿-欧拉法时,如果你把坐标系搞反了,算出来的力矩符号全是错的。有一次我调试了一整天,最后发现是某个旋转矩阵的转置写反了。嗯,这里要注意——坐标系一致性是牛顿-欧拉法的命门。
牛顿-欧拉法的典型流程(从足端向机身递推):
- 已知足端受到的地面反作用力
- 从足端开始,计算每个连杆的惯性力和力矩
- 逐级向上传递,直到机身
- 得到每个关节所需的驱动力矩
代码实现上,我习惯这样写(伪代码):
// 从足端向机身递推
for i = n downto 1:
// 计算连杆i的惯性力
F_i = m_i * (a_i + g)
// 计算连杆i的惯性力矩
τ_i = I_i * α_i + ω_i × (I_i * ω_i)
// 加上上一级传递过来的力和力矩
F_i += F_{i+1}
τ_i += τ_{i+1} + r_i × F_{i+1}
// 关节力矩 = 投影到关节轴方向
joint_torque[i] = τ_i · z_i
这个方法的好处是计算效率高,适合实时控制。坏处是——推导过程容易出错,尤其是当机器人构型复杂时。
3.3 拉格朗日法:从能量角度看问题
拉格朗日法走的是另一条路。它不直接分析力,而是从能量角度出发。
核心公式就一个:
L = T - V (拉格朗日量 = 动能 - 势能)
然后代入拉格朗日方程:
d/dt (∂L/∂q̇) - ∂L/∂q = τ
说白了,你只需要写出机器人的动能和势能,然后求偏导,就能得到动力学方程。
我个人觉得,拉格朗日法更适合做理论分析,因为它能清晰地揭示系统的动力学结构。比如科里奥利力、离心力这些项,在牛顿-欧拉法里很容易被忽略,但在拉格朗日法里会自动出现。
不过,拉格朗日法也有缺点——计算量大。对于12自由度的四足机器人,手动推导拉格朗日方程简直是噩梦。我建议用符号计算工具(比如SymPy)来辅助。
我的经验:
在实际工程中,我通常用牛顿-欧拉法做实时控制,用拉格朗日法做离线分析和仿真验证。两者互补,缺一不可。
3.4 关节力矩与地面反作用力
这是动力学里最「接地气」的部分。
四足机器人之所以能走、能跑,靠的是关节力矩通过腿传递到地面,地面再反推机器人。这个反推的力,就是地面反作用力(GRF)。
这里有一个关键点:关节力矩和地面反作用力不是一一对应的。
举个例子:
- 你让膝关节弯曲,足端会向后蹬地
- 但足端受到的地面反力,不仅取决于膝关节力矩,还取决于髋关节力矩、机身姿态、地面摩擦系数等
我曾经犯过一个错误:在控制中直接根据期望的足端力反算关节力矩,忽略了腿的惯性力。结果机器人一跑起来就抖得厉害。后来我才意识到,动力学补偿是必须的。
避坑指南:
我曾经在调试 trot 步态时,发现机器人总是往一边偏。查了半天,原来是左右腿的地面反力没有解耦。记住:四足机器人的地面反力必须满足整机动力学约束,不能每条腿独立算。
3.5 三种方法的对比
为了方便你理解,我整理了一个表格:
| 方法 | 核心思想 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 牛顿-欧拉法 | 受力分析 + 递推 | 计算快,物理直观 | 易出错,依赖坐标系 | 实时控制 |
| 拉格朗日法 | 能量法 + 偏微分 | 结构清晰,自动包含耦合项 | 计算量大,推导繁琐 | 理论分析、仿真 |
| 地面反力法 | 力与力矩平衡 | 直接关联运动 | 需要摩擦锥约束 | 步态规划、力控 |
3.6 知识体系总览
下面这张图,是我自己总结的四足机器人动力学知识框架。你可以把它当作一张「地图」,随时回来对照:
3.7 小结
动力学是四足机器人控制的「硬骨头」,但也是最有价值的部分。我个人觉得,你不需要一开始就精通所有推导,但一定要理解物理意义:
- 牛顿-欧拉法:适合实时控制,计算快
- 拉格朗日法:适合理论分析,结构清晰
- 地面反作用力:连接机器人与世界的桥梁
下次当你看到机器人稳稳地小跑时,不妨想想——背后是这些动力学方程在默默工作。