动力学:力矩怎样变成运动
运动学只描述“怎样动”,动力学继续回答“要多大的力才能这样动,以及施力后会怎样动”。
从几何进入物理
让机械臂保持一个姿态时,电机需要抵抗重力;快速抬臂时,还要克服惯性、关节耦合与摩擦;末端推墙时,环境反力会沿机构传回各关节。动力学把这些因素写进同一模型:
\(\mathbf q,\dot{\mathbf q},\ddot{\mathbf q}\) 分别是关节位置、速度和加速度;\(\mathbf M\) 是质量矩阵,描述构型相关的惯性;\(\mathbf C\dot{\mathbf q}\) 汇集科里奥利力和离心力;\(\mathbf g\) 是重力项;\(\boldsymbol\tau_f\) 是摩擦等未完全理想的内力;\(\boldsymbol\tau\) 是执行器输出的关节力矩;\(\mathbf J^T\mathbf F_{\mathrm{ext}}\) 是外部接触力映射到关节后的效果。
质量矩阵中的关节项彼此耦合。挥动肩关节会带动整条手臂,改变肘部看到的负载;机械臂伸直和收拢时,即使总质量相同,转动惯量也不同。\(\mathbf M\) 对物理合理的刚体系统应对称正定,这意味着任何非零加速度方向都需要正的动能。
拉格朗日法:从能量得到方程
对广义坐标 \(\mathbf q\),先计算动能 \(K(\mathbf q,\dot{\mathbf q})\) 与势能 \(P(\mathbf q)\),定义拉格朗日量 \(L=K-P\)。每个关节满足
这个公式的直觉是:系统运动由能量随构型和速度的变化决定,外部广义力矩改变这种变化。它适合推导低自由度机构,能清楚揭示能量结构。自由度增加后,手工展开会非常繁琐,实际软件常用递归牛顿—欧拉算法计算逆动力学,或用关节空间惯量算法计算正动力学。
逆动力学输入期望的 \(\mathbf q,\dot{\mathbf q},\ddot{\mathbf q}\),求需要的力矩 \(\boldsymbol\tau\);正动力学输入当前状态和力矩,求加速度:
仿真器需要不断算正动力学,控制器常用逆动力学做前馈。两者共享模型参数:连杆质量、质心、惯量张量、传动比和摩擦。
接触让机器人变成混合动力系统
机器人一旦接触地面或物体,运动受到约束。若接触点不允许穿透表面,可把约束写为 \(\boldsymbol\phi(\mathbf q)=0\)。加速度层满足
\(\mathbf J_c\) 是接触雅可比。动力学中增加接触力 \(\boldsymbol\lambda\):
其中 \(\mathbf h\) 汇集速度相关项和重力,\(\mathbf S\) 选择真正有执行器驱动的自由度。腿式机器人的机身在空间中有六个浮动基座自由度,没有电机直接推动,只能通过脚与地面的接触力改变运动,因此 \(\mathbf S\) 很重要。
库仑摩擦常用摩擦锥近似:切向力大小不超过法向力乘以摩擦系数,即 \(\|\mathbf f_t\|\le\mu f_n\)。若规划器要求的水平力超出摩擦锥,脚会滑;若法向力变成负值,意味着模型要求地面“拉住”脚,这在普通接触中不可能。走路和抓取中的很多失败,实质是接触假设失效。
模型辨识与模型误差
CAD 给出的质量与质心只是起点。线缆、夹爪、相机和负载都会改变动力学;减速器摩擦、背隙、柔性和温度难以精确建模。动力学参数常能写成对参数向量 \(\boldsymbol\theta\) 线性的形式:
\(\mathbf Y\) 是由运动数据构造的回归矩阵,\(\boldsymbol\theta\) 包含质量、质心和惯量等组合。通过激励丰富的轨迹采集力矩数据,可以最小二乘估计参数。轨迹若只在很小范围慢速运动,一些参数彼此无法区分,这属于可辨识性不足。
动力学模型的用途决定所需精度。做低速位置控制时,准确重力补偿常已很有价值;做高速全身运动,惯量与接触模型更关键;用电机电流估计外力时,摩擦模型误差会直接伪装成“接触力”。
工程例子:机械臂换了夹具后开始下垂
生产线给机械臂换上更重的吸盘,位置控制仍能到点,但靠近水平伸展姿态时误差变大,电机发热。原因可能是控制器仍使用旧负载模型,重力前馈不足,反馈积分项长期补偿静差。短时看任务完成,长期会降低跟踪性能并增加热负荷。
处理顺序是先确认工具质量、质心和惯量参数,再做安全范围内的重力补偿验证;随后观察各姿态下的残余力矩,必要时辨识摩擦。若只增大位置增益,刚度上升会放大噪声和碰撞冲击,且不能解决热负荷根因。模型更新后仍需保留反馈,因为工件重量变化和线缆拖拽不会完全消失。