多执行器的控制分配:从期望的力和力矩到每个执行器——伪逆、饱和、优先级、失效重构与零空间
本文是专栏《机器人人机交互与控制实践》第 14 篇。上一篇讨论了轮式底盘,它的特点是每个轮子的作用相对固定。这一篇讨论更一般的问题:当一个机器人有多个执行器共同产生力和力矩,而且执行器的数量多于需要控制的自由度时,怎样把控制器想要的“总的力和力矩”分配给每一个执行器。多旋翼飞行器、带多个推力单元的平台、冗余驱动的移动机器人,都面临同一个问题:控制器算出来的是“我需要向前 10 N 的力、绕竖直轴 2 N·m 的力矩”,而执行器需要的是“1 号出 3.2 N,2 号出 4.1 N……”。在两者之间做转换的,就是控制分配。执行器多于自由度时,满足要求的分配方案有无穷多种。选哪一种,在正常情况下影响不大;但在三种情况下会变得至关重要:执行器饱和:需求超出了能力,必须决定牺牲什么;执行器失效:某个执行器不工作了,剩下的要能接替它;执行器有特殊的限制:只能单向出力、反向出力更弱、在零附近有死区。本文用两个例子贯穿全文:一个平面上的过驱动载具(4 个方向固定的推力单元控制 3 个自由度,可以想象成气垫平台、动力定位的船舶,或者一个测试平台),以及一个六旋翼飞行器(6 个旋翼控制总推力和三个方向的力矩)。所有结论都有可运行的代码。1. 问题的形式化1.1 分配矩阵每个执
上一篇/下一篇内容由系统自动关联
返回资讯列表 →