麦克纳姆轮全向小车运动学解算与电机控制——基于ESP32的DIY底盘实战
一、全向移动到底"神"在哪
普通两轮差速小车想往侧边走,只能"先转再走"。麦克纳姆轮(Mecanum)靠轮缘斜 45° 的小滚子,让四个普通前进的电机组合出横向平移、斜向走位、原地旋转任意方向,不改变车头朝向。工业 AGV、仓库搬运、舞台小车都用它。但它的门槛不在硬件,而在运动学解算——四个轮子的转速方向和大小怎么组合,才能走出你想要的矢量。
二、四轮布局与符号约定
先统一坐标系,这是所有公式的前提。俯视小车,车头朝 +X(前进),+Y 为车体左侧:
轮位 | 滚子方向 | 记号 |
| 左前 LF | 滚子斜向右上(+) | v_LF |
| 右前 RF | 滚子斜向左上(−) | v_RF |
| 左后 LB | 滚子斜向左上(−) | v_LB |
| 右后 RB | 滚子斜向右上(+) | v_RB |
注意 A 型轮与 B 型轮(滚子方向镜像)必须按位置正确装配,装错一个轮子,平移就变成斜着跑。DF创客社区买轮时问清 A/B 型对应轮位。
三、运动学逆解公式(核心)
给定期望的车体速度:X 方向前进 `Vx`、Y 方向横移 `Vy`、原地角速度 `ω`,四个轮子的转速为:
v_LF = Vx - Vy - (L+W)*ω
v_RF = Vx + Vy + (L+W)*ω
v_LB = Vx + Vy - (L+W)*ω
v_RB = Vx - Vy + (L+W)*ω
其中 `L` 是轮轴距的一半、`W` 是轮距的一半(L+W 即轮心到旋转中心的等效杠杆)。这就是"逆解":从整车期望运动反推每个轮子该多快。几个经典模式一眼看懂:
期望动作 | Vx | Vy | ω | 说明 |
| 直行 | + | 0 | 0 | 四轮同向同速 |
| 横移 | 0 | + | 0 | 对角轮正转、另两对反转 |
| 原地转 | 0 | 0 | + | 左两轮反转、右两轮正转 |
| 斜向前 | + | + | 0 | 只有单侧轮转,另两侧停 |
四、ESP32 驱动与 PWM
ESP32 的 LEDC 可以开 16 路 PWM,直接驱动 4 路 TB6612 或 DRV8833。方向用 GPIO,速度用 PWM 占空比。逆解算出的 v 值有正负,正负代表正反转,绝对值映射到 PWM:
void setMotor(int pwm, int in1, int in2, float v){
float a = min(abs(v), 255.0);
ledcWrite(pwm, (int)a);
if(v >= 0){ digitalWrite(in1,HIGH); digitalWrite(in2,LOW); }
else { digitalWrite(in1,LOW); digitalWrite(in2,HIGH); }
}
void mecanum(float Vx,float Vy,float w){
float L_W = 0.12; // (L+W) 单位: 与速度同一量纲系数
setMotor(0,A1,A2, Vx - Vy - L_W*w); // LF
setMotor(1,A3,A4, Vx + Vy + L_W*w); // RF
setMotor(2,B1,B2, Vx + Vy - L_W*w); // LB
setMotor(3,B3,B4, Vx - Vy + L_W*w); // RB
}
五、遥控链路:手机摇杆 → WiFi → 车体
全向小车的操作复杂,必须靠摇杆映射。典型架构:手机网页(WS/HTTP) 或 App → ESP32 的 WiFi → 解析双轴摇杆 (X,Y) + 旋转旋钮 → 喂给 `mecanum()`。摇杆前后推拉映射 Vx,左右映射 Vy,旋转映射 ω,三个通道可叠加,实现"一边前进一边横滑一边旋转"的漂移走位。建议加 100ms 看门狗:连续没收到遥控包就停车,防止断连飞车。
六、现场调试与踩坑记录
• 平移歪着走:十有八九是 A/B 轮装错位,或某路电机线序反了,逆解正负就错了。逐轮单独给正 PWM,确认每个轮子滚子"该往哪边滑"。
• 原地旋转画圆不走圆心:轮心到旋转中心不一致(装配误差),或四轮转速没校准,需加每轮的转速补偿系数。
• 斜着走打滑:地面太滑或负载太重,滚子横向打滑;麦轮天生效率低(约 60%~70%),别用太轻的电池。
• 摇杆松手不立即停:通信有延迟,务必收到零输入就 `ledcWrite(...,0)` 清零,并加死区。
七、实战案例:仓库平移搬运小车
一辆载重 5kg 麦轮搬运车需要精确横向对位货架。直接横移时总"冲过头",原因是横移方向 Vx=0、全靠对角轮反向产生横移,效率低且惯性大。解决办法:给速度环加编码器反馈(同上一篇的 PID 方法),横移时四轮都进闭环,对位误差从 ±4cm 收到 ±1cm。结论:麦轮做精细对位,闭环是刚需,纯开环平移误差会被效率损失放大。
八、工程要点小结
• 装配前先分清 A/B 型轮与轮位,装错即跑偏。
• 逆解公式里 (L+W) 是杠杆项,与速度量纲要统一。
• PWM 正负映射方向、绝对值映射速度,别忘了反转分支。
• 遥控必加看门狗 + 零输入急停 + 摇杆死区。
• 麦轮效率低、易打滑,精细动作务必上编码器闭环。
九、延伸阅读
• 麦克纳姆轮运动学正逆解推导(社区图文教程)
• ESP32 LEDC PWM 与 WiFi WebSockets 控制例程
• 手机摇杆控制小车(MIT App Inventor / 网页摇杆)
(本文为 DIY 底盘实践整理,公式与系数请结合自己的轮距、轮径标定。欢迎贴出你的麦轮走位视频交流。——爱控电子)


