VEX V5 C++ drivetrain class help

I am relatively new to V5 and was attempting to use the drivetrain class. Initializing it worked fine and I was able to make the drivetrain go forward for a set distance with no trouble; however, my turnFor method never causes the bot to turn the degrees passed in. I have narrowed the source of the problem to the trackWidth parameter passed in when initializing the drivetrain object but cannot determine a proper value. Any help would be appreciated

motor driveLB = motor(PORT11, gearSetting::ratio18_1, false);
motor driveLF = motor(PORT1, gearSetting::ratio18_1, false);
motor driveRB = motor(PORT12, gearSetting::ratio18_1, true);
motor driveRF = motor(PORT2, gearSetting::ratio18_1, true);
motor_group driveLeft = motor_group(driveLB, driveLF);
motor_group driveRight = motor_group(driveRB, driveRF);
drivetrain drive = drivetrain(driveLeft, driveRight ,3.25 * 3.14159265359, 11.5, distanceUnits::in);
// wheels are 3.25 in in diameter and 11.5 in apart (measured from their centers)
// ...
drive.turnFor(turnType::left, 90, rotationUnits::deg);

Remember that most VEX wheels are about an inch wide or so. You may have to adjust track width depending on how your robot decides it wants to behave within that 2" window, anywhere from down to 10.5 to up to 12.5. If you’re robot turns too much, increase track width a bit, and if it turns too little, decrease it a bit. (And double check that the wheel diameter exactly matches the wheels’ diameters, as some of the wheels in the VEX kit are only approximately their listed sizes.)

Other things to look at would be how fast it’s turning. If it’s going too fast, it might be overshooting.

1 Like

I have tried values from 5 through 18, and the turn closest to 90degrees comes from a value around 17.5. Do you have any advice on why this would be.

Also, in regards to overshooting, speed is set at 30% with brake type brake.