基于ROS平台的STM32小车-2-小车底盘控制
本博文将介绍小车底盘控制的原理,如PID控制,控制程序的编写等。
小车控制思想
控制电机转动
- 电机的控制我们分为两部分,一部分为电机转动方向的控制,另一个为电机转速的控制。
- 电机转动的方向我们用两个MCU引脚来控制,假如PIN_A=1,PIN_B=0 时,电机正转;PIN_A=0,PIN_B=1 时,电机反转;PIN_A=0,PIN_B=0 时,电机停止。
- 电机速度的控制则需要一个PWM输出引脚,我们通过控制输出不同的PWM值来控制电机转动的速度。
PID控制
- 如果我们想控制小车以一米每秒的速度做直线,但由于地面的摩擦阻力的影响,会造成左右轮速度与我们想控制的速度不同,所以会走不直,这时我们就需要加入PID控制。
- PID控制的思想就是我实时的把轮子真正的速度采集回来和控制的速度对比,差则补,多则减。
- 这样基本就可以实现理想控制。详细PID介绍查看。
小车转弯控制。
- 一般我们要是想控制小车以多少的速度前进或者后退,我们只需要PID控制两个轮子的速度一致就可以基本做到。
- 但如果要想控制小车以多少的角速度转弯,我们需要做一定的计算,如图所示: