Using VexCode and the Inertial Sensor - set_turn_velocity() changes behavior?

Hi, one of the teams is attempting to use the inertial sensor (IMU) this year. This is all in Python and VexCode. Nothing complicated is really being done. We’re using the VexCode UI to create a 4 motor drivetrain including the IMU. They have an auton sequence that works with the default settings but its slow - particularly turns. We were trying to speed it up a bit and figured applying a SmartDrive.set_turn_velocity() would be something to try, but it seems to completely change the behavior.

Without calling set_turn_velocity() the turn starts at I’m guessing 10-15% rate and then slows down significantly before it reaches the target angle, so looks like there’s some PID going on inside the library. They’re using SmartDrive.turn_for().

However, if any amount of set_turn_velocity() is applied, the turn proceeds at the same rate throughout the whole turn (ie the slow down as robot approaches target is no longer there). So something changed.

This seems to be resulting in an error - if we use 10% turn rate it seems to work as before, but even 25% turn rate results in a significant error over a sequence of turns.

For now we’re just stick to the defaults, but was just curious if this was expected.

(The IMU is clearly still being used regardless, as without it, the robot needed a turn correction of about turn_degrees*110/90. But we ditched that when we noticed this was very dependent on whether a mobile goal was loaded or not.)

Thanks
Nick.