So I was starting a robotics project and turns out that PID hasn't served very well in the past. So I was wondering if there was another feedback loop mechanism which has less overshoot and is more accurate than PID in terms of overshoot. Thanks in advance! For reference, we are using a 4 wheel mecanum drivetrain
You might want to try a Non linear controller if you want disturbance rejection. But I will suggest you to fine tune your PID first.
Now, back to non linear controls, you need to develop a very good mathematical model of the dynamics of your robot.
You can use a scheduler controller: first linearize you plant at different operating points an design a controller for each of the operating points. This technique is useful if you use LQR controllers. Matlab has a lot of documentation and examples on this.
You can also use more robust techniques like H2 or H infinity controls if you are eager to take your math abilities to the limit.
On the other hand, I also suggest you to double check your sensed signals, wheels, actuators, sensor, etc. Corroborate that they give you what they are supposed to give you.
Finally, you can try a Kalman filter to aid the PID performance.