PID implementation

Hi. I’ve been investigating some behaviour of the PID loop in a situation where the end effector is obstructed. I’m mostly interested in the integral term and how it’s being handled. Is there any information about it that I could find? Maybe a reference to the firmware/software where it’s handled? Thanks

@karol.szostek17 Please give more information about your investigation so that perhaps we can help you.

So I was investigating what happens if I hold down the end effector when calling a set position command. What I’ve found out is that after release the initial velocity will be much higher then when I did not hold it down in the first place. My guess is that’s because the integral term has accumulated a large value. What I don’t understand, however, is that the end effector doesn’t seem to overshoot regardless of for how long I hold the end effector and also if I hold it down for long enough I noticed that there are short bursts of higher power coming from the motor

What program are you running, on exactly which product?

I am using the python bindings on a setup similar to gopigo3 using a brickPi where I have 2 lego midstorm motors connected to the brick. One of the motors is continuously reading the encoder value and then is setting the other motor to that same value. Specifically this code: https://github.com/DexterInd/BrickPi3/blob/master/Software/Python/Examples/LEGO-Motor_Position.py