185 运动控制中的行业应用:AGV与移动机器人
一次深夜的AGV“鬼畜”调试
凌晨两点,车间里那台AGV像喝醉了酒一样,在走廊里来回画龙。上位机报的路径规划没问题,电机驱动器反馈的电流也正常,但车体就是不走直线——左右轮速度差在±5%之间反复横跳,导航定位精度从±2cm直接崩到±15cm。我盯着示波器上那两条PID输出波形,一个念头冒出来:这他妈不是控制算法的问题,是运动学模型和实际机械结构之间的“代沟”。
后来发现,AGV的两个驱动轮直径差了0.3mm——出厂时轮胎磨损不一致。差速模型里假设轮径相等,实际跑起来,哪怕PID把速度闭环调得再稳,车体也会因为左右轮实际线速度不一致而偏航。这个坑让我意识到:AGV和移动机器人的运动控制,从来不是单纯把PID调好就能交差的。
运动学模型:别把教科书当圣经
AGV最常见的运动学模型是差速驱动和舵轮驱动。差速驱动简单,两个独立驱动的轮子加一个或两个万向轮,通过左右轮速度差实现转向。教科书上给的公式是:
v = (v_left + v_right) / 2 ω = (v_right - v_left) / LL是轮距。但实际工程里,这个L不是固定的——轮胎受压变形、地面摩擦系数变化、甚至AGV负载重心偏移,都会让等效轮距发生微小的漂移。我见过一个项目,AGV空载时转弯半径和满载时差了30%,就是因为负载压扁了轮胎,等效轮距变了。
这里踩过坑:别直接用机械图纸上的轮距尺寸。上电后让AGV原地旋转360度,用激光测距