底盘运动学:差速、麦克纳姆轮、全向轮的逆解,轮速饱和与手柄映射 本文是专栏《机器人人机交互与控制实践》第 13 篇。前两篇解决了“单个电机怎样转得准”,这一篇讨论“多个轮子怎样配合,让整个底盘按操作员的意图运动”。操作员推摇杆时,想的是“往前走”“往左平移”“原地转个身”;而底盘控制器要给每个轮子一个转速。从车体运动到轮子转速的换算,就是运动学逆解。这件事看起来只是几个公式,但实际项目里有不少坑:麦克纳姆轮装反了,想平移的时候车往反方向走,转向变得软绵绵的;满油门的时候怎么也转不过弯,或者转弯时车往一边歪;高速时转向太灵敏,车差点翻了;倒车时转向的方向和操作员的直觉相反。本文先建立一个统一的轮子模型,用同一套代码处理差速、麦克纳姆轮和全向轮底盘;然后讨论麦克纳姆轮的安装错误、里程计与打滑检测、轮速饱和的处理,最后讨论手柄映射。所有结论都有可运行的代码。1. 统一的轮子模型1.1 一个约束,三种轮子不管是哪种轮子,都可以用三个量描述:安装位置pi\mathbf{p}_i