My robot is drifting to the left in my autonomous as it drives forward

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

1 Like

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)

1 Like

First, I would make sure that the weight is evenly distributed over the robot:

Next, you can counteract the drift by adding less power to the right wheel: