I’m developing a differential robot. My wheeled robot has two castor wheels in the back and two driven wheels in the front. The motor controller I’m using can handle two motors each with 90 cpr. Each motor has a PI controller built-in in the motor controller to control how much current (torque) goes to the motors. I have a Python code that sends ticks/s to the motor controller for each motor. If I want the robot to go straight, I just send the same ticks for both of the motors. I know that is impossible to achieve perfect straight line. The problem is that I’m not able to maneuver the rover because whenever I want to go straight (sending same speed for both motors), it ends up rotating in place to the right. Therefore, the left side is moving way quicker than the right ride. Could it be and issue with the tuning? I have the same value of the PI constants (KP and KI) for both motors. I was thinking in implementing a PID controller in the Python side to have another closed loop system besides the one in the motor controller. Is it recommended this approach? What else I can try?