Following the last post, I took the robot out to the stadium to check how it performs.
How I transformed an IR sensor into an encoder, that enables the calculation of speed and distance.
PID is finally starting to work. Apparently the last issues were not entirely caused by bad tweaking but by “bad” coding as well.
Some footage of the robot running in the stadium. The process of tweaking the PID values is tricky. Even after a long time working on these values, I have given up (for the day!) and stayed with slow speeds, which are easier to work with.