No matter what we do, even using the Motor.setStopping(vex::brakeType::brake) function, the motors always stop as if the Motor.setStopping(vex::brakeType::hold) was used. It’s really annoying because when you run the drive at 100% power and then tell it to stop, the robot skips and tips. Why does the autonomous section in the competition template default and override all brakeType functions and set it to hold?
Are you using this ?
Drive_L.spin(directionType::fwd, 100 ,velocityUnits::pct);
Drive_R.spin(directionType::fwd, 100 ,velocityUnits::pct);
vex::task::sleep(1000);
Drive_L.stop();
Drive_R.stop();
If so, the bot would race forward for one second then put on the breaks and skip / tip as you described.
Try using rotateFor:
Drive_L.startRotateFor(600, rotationUnits::deg, 80, velocityUnits::pct);
Drive_R.rotateFor(600, rotationUnits::deg, 80, velocityUnits::pct);
That would run the drive for 600 degrees of motor rotation with PID so it eases to a stop.
This has nothing to do with autonomous or not. rotateFor and rotateTo (and the nonblocking versions of each) always stop with a hold stopping mode. Otherwise, spin with 0 velocity and stop with no arguments will stop with the configured default stopping mode regardless of competition mode.