Hi,
I'm building a line follower car robot with 4 motors (2 each side. each 2 motors get the same input).
I was following the instructions I read from Pololu - 7.c. Advanced Line Following with 3pi: PID Control, but this code is for 2 wheels car. I tested it on my car but it doesn't turn as I expected
My robot i capable of 360 degrees turn but this PID algorithm is not using negative values
Do you have an example of how to modify the PID algorithm or example, so it will be good for 4 wheels?
signed int position = read_line(sensors,IR_EMITTERS_ON);
int proportional = ((int)position) - 2000;
int derivative = proportional - last_proportional;
integral += proportional;
last_proportional = proportional;
int power_difference = proportional/20 + integral/10000 + derivative*3/2;
const int max = 60;
if(power_difference > max)
power_difference = max;
if(power_difference < -max)
power_difference = -max;
if(power_difference < 0)
set_motors(max+power_difference, max);
else
set_motors(max, max-power_difference);
Thanks,