3、四足机器人动力学基础:牛顿-欧拉法、拉格朗日法、关节力矩与地面反作用力

各位同学,欢迎来到动力学这一章。

说实话,动力学是四足机器人控制里最「劝退」的部分之一。我当年刚入行时,看到满屏的矩阵和偏微分方程,头都大了。但后来我发现一个道理:你不需要成为数学天才,但你必须理解物理直觉

今天我们就来聊聊四足机器人的动力学。我会尽量用「人话」把牛顿-欧拉法、拉格朗日法,以及关节力矩和地面反作用力这些概念讲清楚。

3.1 为什么要学动力学?

先问个问题:你给电机发一个力矩指令,机器人为什么会动?

答案很简单——力矩产生了加速度,加速度改变了位置。但四足机器人有12个以上的自由度,每条腿都在和地面交互,这中间的耦合关系非常复杂。

我个人习惯把动力学分成两类:

  • 正动力学:给定关节力矩,求机器人怎么动(仿真用得多)
  • 逆动力学:给定期望的运动轨迹,求需要多大的关节力矩(控制用得多)

在步态控制中,我们主要用逆动力学。你想想看,如果你想让机器人小跑,你得先算出来每个关节该出多少力,对吧?

3.2 牛顿-欧拉法:最直观的动力学

牛顿-欧拉法,说白了就是「受力分析」的升级版。

它的核心思想很简单:

  • 对每个刚体(比如大腿、小腿)应用牛顿第二定律:F = m * a
  • 对每个刚体应用欧拉方程:τ = I * α + ω × (I * ω)

然后从基座(机身)开始,逐级向外推导,或者反过来从末端(足端)向内推导。

我在项目中遇到过一个坑:用牛顿-欧拉法时,如果你把坐标系搞反了,算出来的力矩符号全是错的。有一次我调试了一整天,最后发现是某个旋转矩阵的转置写反了。嗯,这里要注意——坐标系一致性是牛顿-欧拉法的命门。

牛顿-欧拉法的典型流程(从足端向机身递推):

  1. 已知足端受到的地面反作用力
  2. 从足端开始,计算每个连杆的惯性力和力矩
  3. 逐级向上传递,直到机身
  4. 得到每个关节所需的驱动力矩

代码实现上,我习惯这样写(伪代码):

// 从足端向机身递推
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 知识体系总览

下面这张图,是我自己总结的四足机器人动力学知识框架。你可以把它当作一张「地图」,随时回来对照:

四足机器人动力学知识体系 牛顿-欧拉法 拉格朗日法 地面反作用力 递推牛顿-欧拉算法(RNEA) 正向递推:速度/加速度 反向递推:力/力矩 动能 T = ½ q̇ᵀ M(q) q̇ 势能 V = mgh 标准形式:M(q)q̈ + C(q,q̇) + G(q) = τ 摩擦锥约束:|F_t| ≤ μ F_n 零力矩点(ZMP) 足端力分配(QP优化) 步态控制 & 力控 关节力矩指令 → 期望运动 三者结合,才能让四足机器人稳定、高效地运动

3.7 小结

动力学是四足机器人控制的「硬骨头」,但也是最有价值的部分。我个人觉得,你不需要一开始就精通所有推导,但一定要理解物理意义:

  • 牛顿-欧拉法:适合实时控制,计算快
  • 拉格朗日法:适合理论分析,结构清晰
  • 地面反作用力:连接机器人与世界的桥梁

下次当你看到机器人稳稳地小跑时,不妨想想——背后是这些动力学方程在默默工作。


专注资料整理