
143、导纳控制:外环力控制与内环运动控制的结合调试台上那台六轴机械臂又抖起来了,末端顶着那块刚性墙,力读数在12N到18N之间来回跳。我盯着示波器上的曲线,心里清楚问题出在哪——纯位置控制怼上去,接触瞬间就是冲击,位置环一修正,力就跟着震荡。这不是参数没调好,是控制架构本身就选错了。要跟环境打交道,你得让机器人学会“让力说话”,这就是导纳控制登场的场景。从一次失败的力跟踪说起先说个真实案例。之前做打磨任务,工件表面有0.5mm的起伏,我一开始用阻抗控制,刚度设得比较硬,想着靠位置修正来适应表面。结果呢?打磨头在凸起处压力飙到30N,凹处又几乎悬空,表面质量一塌糊涂。后来换成导纳控制,把期望力设成10N,外环根据力误差实时修正参考位置,内环位置环老老实实跟踪这个修正后的轨迹,打磨力稳定在9.5N到10.8N之间。差别在哪?阻抗控制是“位置偏差产生力”,导纳控制是“力偏差产生位置修正”,方向反过来了,物理意义也完全不同。导纳控制的本质:把力误差翻译成位置修正量导纳控制的核心思想不复杂:机器人末端跟环境接触时,我们期望的接触力是F_d,实际测到的是F_e,误差ΔF = F_d - F_e。这个误差经过一个导纳模型,输出一个位置修正量Δx,叠加到名义轨迹上,内环位置控制器去执行。导纳模型通常是个二阶系统:M_d * Δẍ + B_d * Δẋ + K_d * Δx = ΔFM_d是虚拟质量,B_d是虚拟阻尼,K_d是虚拟刚度。注意这里的符号约定,不同文献可能相反,但物理意义一样——力误差驱动位置修正。M_d决定响应快慢,B_d决定震荡程度,