Reply To: Differential drive PID tuning

PID Tuner Forum Forums General PID Discussion Differential drive PID tuning Reply To: Differential drive PID tuning


Really appreciate your assistance. Please continue to have patience with me as I am new to all this. I want to continue as I want to learn as much about this as possible

OK The purpose of this robo is to drive a predetermined course. The coirse consists of parallel tracks separated by the width of the robot. The spreadsheet that I enclosed was based on a autonomously operated robot mission driven by a microprocessor. The steering is controlled by a pure persuit PID. The input to the PID is GPS-Aim point heading (or other way round I can not remember) and the output is as you said turnSpeed. The turnspeed is then approtioned to the left and right wheels, If the error between the GPS and AIM point is 0 then turnspeed is 0 and the robot drives straight at the constant forward speed of 550. if the error is plus or minus and is non zero the robot will turn to the left or right as turnSpeed will be also non 0.

The robot is supposed to drive between 2 way points marked as A and B in the drawings. This is the desired track.  We measure the cross track error and is is the distance the robot is off the desired track. Currently the cross track error (CTE) is not used in a PID to further reduce the error and to get the robot to better follow the desired track.

I am trying to think of a way to give you useful data manually. Currently the only way to drive between the 2 wp is in auto mode with the microprocessor generating the turn commands.In manual mode the desired track is virtual.  I do have a manual mode it is when the robot is controlled by an rc transmitter. In this mode I can drive the robot in any direction and I can make any turn I like. However in this mode we are not generating the aim pint so I can not determine the error (aimpoint -gps heading)

I could lay down some string and manually drive along the string and make manual turns off the desired track and see what is obtained.  So help would be needed to further define what is required

I also could set up a long line mission and then in manual drive the robot off the desired track by a fixed amount and then switch to auto so the the robot will try to get back onto the line. I would try point the robot 5 degre then 10 the 20 degrees from where I think the ain point would be,

I am happy to run any experiment that you think will work.

I also do not have a clue regarding what model to choose?

To date I have been using the following gains

D5 is the look ahead distance

purePursuitD5 = 2.0
purePursuitKp = 0.75
purePursuitKi = 0.025
purePursuitKd = 0