As my robot drives forward it starts drifting to the left. So i need to counteract it in my programming. I can not change the actual robot
why cant you change the robot?
I had the same problem in my robot and all I had to do is check that all of my drivetrain motors were actually running and that the wheels had no friction
I had to make no changes in my code
have you checked your motors? We had a bad motor and the same problem
unless it is only in autonomous
Offset the all the left side motors’ velocities by setting them a small amount slower. So in your drive / reverse functions, you would set L1, L2Top and L3Bottom to DriveVel - 5. Keep adjusting the number you subtract by until the drift is eliminated
I would check the left wheels, they might have friction. Be sure that the motor shafts are connected properly, and if you have a chain/gear ratio, be sure that there is no friction there either.
Have you cut any parts, cause metallic shavings in your motors did that to us.
I see that you are not using volts to control your drive. I recommend using that because it is more accurate and that also might fix it. Hope that helps!
Because the original poster is not coding their own PID, using the default motor control software provided by VEX would be more consistent (according to VEX Library)