089、机器人动力学:拉格朗日法
机器人动力学:拉格朗日法
从一次机械臂抖动说起
去年调试一台六轴协作机器人,末端负载从0.5kg换到2kg,位置环PID参数调了三轮,静态精度勉强达标。一跑轨迹,末端抖得像筛糠。同事说“加个低通滤波”,我试了,抖动小了,但轨迹跟踪滞后明显。后来翻出动力学模型,用拉格朗日法算了一遍关节力矩,才发现问题出在重力补偿项没更新——负载变了,重力项还是出厂标定值。这事让我明白:运动控制做到深处,动力学不是选修课,是必修课。
拉格朗日法到底在算什么
拉格朗日法本质上是能量法。你不需要像牛顿-欧拉那样画受力图、列平衡方程,只需要盯着系统的动能和势能。对于机器人这种多刚体系统,这简直是救星——关节一多,牛顿法能把人算到怀疑人生。
核心公式就一个:
L = T - V τ = d/dt(∂L/∂q̇) - ∂L/∂qL是拉格朗日量,T是总动能,V是总势能,q是广义坐标(对机器人就是关节角度),τ是广义力(关节力矩)。
别被偏微分符号吓到。实际干活时,你只需要做三件事:
- 写出每个连杆的动能和势能
- 对关节角度和角速度求偏导
- 组装成标准形式:M(q)q̈ + C(q,q̇)q̇ + G(q) = τ
二连杆机械臂的手算实战
拿最简单的二连杆平面臂开刀。连杆1长L1,质量m1,质心在连杆中点;连杆2长L2,质量m2,质心也在中点。关节角度q1、q2。
