在机器人控制领域,动力学方程是描述机器人运动与受力关系的核心数学模型。它揭示了关节力矩与位置、速度、加速度之间的定量关系,是轨迹规划、力控制和仿真分析的理论基础。相比仅考虑几何关系的运动学,动力学建模需要处理惯性力、科氏力、离心力和重力等复杂因素。
传统牛顿-欧拉法通过力/力矩平衡原理逐连杆递推计算,而拉格朗日方法基于能量观点,通过系统动能与势能的差值(拉格朗日函数)建立统一方程。这种方法特别适合多自由度串联机械臂,其系统性推导过程避免了牛顿-欧拉法中复杂的内力分析。
拉格朗日方程源于分析力学,其核心是达朗贝尔原理与最小作用量原理。对于n自由度系统,拉格朗日函数L定义为:
L(q, q̇) = T(q, q̇) - V(q)
其中q为广义坐标向量,T为系统总动能,V为系统总势能。标准拉格朗日方程形式为:
d/dt(∂L/∂q̇ᵢ) - ∂L/∂qᵢ = τᵢ (i=1,2,...,n)
τᵢ表示作用在第i个广义坐标上的广义力(对旋转关节即为力矩)。
对于n连杆机械臂,系统总动能可表示为各连杆动能之和:
T = ½ Σ[mᵢvᵢᵀvᵢ + ωᵢᵀIᵢωᵢ]
其中mᵢ为连杆质量,vᵢ为质心线速度,Iᵢ为连杆惯性张量(在连杆坐标系中),ωᵢ为角速度。通过雅可比矩阵可将速度表示为关节速度的函数:
vᵢ = Jᵥᵢ(q)q̇
ωᵢ = Jωᵢ(q)q̇
因此动能可重写为:
T = ½ q̇ᵀ[Σ(mᵢJᵥᵢᵀJᵥᵢ + JωᵢᵀRᵢIᵢRᵢᵀJωᵢ)]q̇ = ½ q̇ᵀD(q)q̇
D(q)即为机器人的惯性矩阵,对称正定且与构型相关。
机械臂势能主要来自重力,设第i个连杆质心高度为hᵢ(q),则:
V = Σ mᵢghᵢ(q)
广义力τ包括电机驱动力矩、摩擦力矩和外力雅可比转置项。在标准建模中常先忽略摩擦,仅考虑控制输入力矩。
按照Denavit-Hartenberg(D-H)参数法为每个连杆建立坐标系。以6自由度机械臂为例:
注意:标准D-H参数与改进D-H参数定义不同,需保持建模一致性
通过递推计算各连杆雅可比矩阵:
对于旋转关节i,平移雅可比Jᵥᵢ的列为:
旋转雅可比Jωᵢ的列为:
然后按前文动能表达式组装D(q)。以2自由度平面机械臂为例:
D(q) = [ (m₁+m₂)l₁² + m₂l₂² + 2m₂l₁l₂cosq₂ m₂l₂² + m₂l₁l₂cosq₂
m₂l₂² + m₂l₁l₂cosq₂ m₂l₂² ]
将动能表达式代入拉格朗日方程时,会产生包含q̇的交叉项:
hᵢ(q, q̇) = ΣΣ [∂Dᵢⱼ/∂qₖ - ½ ∂Dⱼₖ/∂qᵢ] q̇ⱼq̇ₖ
可将其分解为科氏力(速度不同分量耦合)和离心力(同分量平方项)。引入克里斯托弗符号:
cⱼₖⁱ = ½ [∂Dᵢⱼ/∂qₖ + ∂Dᵢₖ/∂qⱼ - ∂Dⱼₖ/∂qᵢ]
则hᵢ = ΣΣ cⱼₖⁱ q̇ⱼq̇ₖ
重力项G(q) = ∂V/∂q,通过各连杆质心位置对q的偏导求得。对于前述2自由度例子:
G(q) = [ (m₁+m₂)gl₁cosq₁ + m₂gl₂cos(q₁+q₂)
m₂gl₂cos(q₁+q₂) ]
综合上述结果,机器人动力学方程的标准形式为:
D(q)q̈ + C(q, q̇)q̇ + G(q) = τ
其中:
以4自由度SCARA机械臂为例演示完整建模过程:
通过递归牛顿-欧拉法或直接求导法得到:
D(q) = [ D₁₁ D₁₂ 0 0
D₂₁ D₂₂ 0 0
0 0 D₃₃ 0
0 0 0 D₄₄ ]
其中D₁₁ = m₁lc₁² + m₂(l₁²+lc₂²+2l₁lc₂cosq₂) + I₁ + I₂ + (m₃+m₄)l₁²
实操技巧:优先辨识对动态影响大的参数(如连杆1的惯性)
为满足实时控制需求(通常1kHz更新率),可采用:
通过比较预测力矩与实际力矩的差异:
Δτ = τ_measured - (D(q)q̈ + C(q, q̇)q̇ + G(q))
设定阈值判断碰撞发生。
基于动力学模型实现力/位混合控制:
τ = D(q)q̈_d + C(q, q̇)q̇_d + G(q) + JᵀF_ext
其中F_ext为期望接触力。
方程出现奇异值:
能量不守恒:
实时性不足:
柔性关节建模:
增加弹簧阻尼项:τ_m - τ_j = Jq̈ + Bq̇ + K(q - θ)
接触动力学:
引入环境约束方程,建立混合动力学系统
数据驱动建模:
结合神经网络补偿未建模动态
实际建模中,我习惯先用符号计算工具(如Mathematica)推导简单构型的方程,验证基本性质后再扩展到复杂系统。对于7自由度以上的机械臂,建议采用自动生成代码工具(如ROS的KDL)来避免手工推导错误。