PROS ChassisControllerIntegrated not working

I have been working on using the Chassis Integrated Controller from the Okapi Library on Pros, and I’m currently encountering an issue where if I simply tell the robot to move straight for a small distance, the robot turns to the right approximately 30 degrees after stopping. I’m not sure what could be causing the issue, and it seems to be programming related rather than build related. Can anyone take a look?

Globals.hpp

extern pros::Motor fleft;
extern pros::Motor fright;
extern pros::Motor bleft;
extern pros::Motor bright;
extern Motor intakeMotor;

extern std::shared_ptr<ChassisController> chassis;
extern std::shared_ptr<AsyncPositionController<double, double>> rollerController;
extern std::shared_ptr<AsyncPositionController<double, double>> intakeController;
extern std::shared_ptr<AsyncPositionController<double, double>> flywheelController;

Globals.cpp

pros::Motor fleft(1, pros::E_MOTOR_GEARSET_18, true); 
pros::Motor bleft(11, pros::E_MOTOR_GEARSET_18, false); 
pros::Motor fright(10, pros::E_MOTOR_GEARSET_18, false);  
pros::Motor bright(20, pros::E_MOTOR_GEARSET_18, true);

MotorGroup leftChassis({fleft.get_port(), bleft.get_port()});
MotorGroup rightChassis({fright.get_port(), bright.get_port()});

std::shared_ptr<ChassisController> chassis =
  ChassisControllerBuilder()
    .withMotors(leftChassis, rightChassis)
    // Green gearset, 4 in wheel diam, 11.5 in wheel track
    .withDimensions(AbstractMotor::gearset::green, {{4.125_in, 15.5_in}, imev5GreenTPR})
    .build();

std::shared_ptr<AsyncPositionController<double, double>> intakeController = 
	AsyncPosControllerBuilder()
		.withMotor(intakeMotor)
		.build();

and then in the actual main autonomous function

chassis->getModel()->setBrakeMode(AbstractMotor::brakeMode::hold); 
	chassis->setMaxVelocity(100);
	chassis->moveDistance(24_in); 

Some potential issues I can think of is if I’m using pros motors instead of okapi, if that would affect anything. Also we did have some drive base drifting problems a few days ago, but since then we have fixed it and it works fine in drive control. Could it also be just that encoder encoders aren’t accurate?

Any help would be much appreciated!