正动力学
Forward Dynamics常用已知当前状态和施加的力矩,算出机器人此刻的加速度和接下来的运动。
动力学研究力和运动的关系,分正、逆两个方向。正动力学是已知关节位置 q、速度 q̇ 和施加的力矩 τ,求加速度 q̈:由 M(q)q̈ + c(q,q̇) = τ 解出 q̈ = M⁻¹(τ − c),其中 M 是质量矩阵,c 汇总了科里奥利力、离心力和重力。把 q̈ 按时间步长积分,就得到机器人接下来的轨迹,这正是物理仿真器每一步做的事,MuJoCo、Isaac Sim 等还要在此基础上求解接触力和摩擦。逆动力学方向相反:给定想要的运动求所需力矩,多用于控制。正动力学的经典高效算法是 Featherstone 的铰接体算法。注意它和学习领域的「正向动力学模型」不同,后者是用神经网络学习预测下一状态。
例子在 MuJoCo 里给机械臂所有关节施加 0 力矩后反复调用 mj_step,仿真器按正动力学算出重力带来的加速度,机械臂就会自然下垂、来回摆动。
- 也叫
- 动力学正问题、前向动力学
- 相关
- 逆动力学、拉格朗日方程、质量矩阵、铰接体算法、物理引擎、正向动力学模型
- 来源
- MuJoCo Documentation - Computation
Inverse dynamics - Wikipedia
Featherstone's algorithm - Wikipedia