 			int32_t currentEncoderLeftValue = this->encoderLeft->read();
 			this->encoderLeft->write(0);
 			*/
-			int32_t currentEncoderRightValue = this->right.encoder.read();
-                        encAbsoluteTicksright+=currentEncoderRightValue;
+
+			int32_t currentEncoderLeftValue = this->left.encoder.read();
+			this->left.encoder.write(0);
+			int32_t currentEncoderRightValue = -this->right.encoder.read();
 			this->right.encoder.write(0);
-			int32_t currentEncoderLeftValue = this->left.encoder.read();
-                        encAbsoluteTicksleft+=currentEncoderLeftValue;
-			this->left.encoder.write(0);
 
 			time1 = (micros() - timeStart);
 

			const int32_t outputMax = 100;
			const int32_t outputMin = -100;

			static int32_t previousSpeed;
			static f32_t I_part = 0;
			// PV - process variable
			// SP - set point
			// CV - control variable

		{
			return this->left.steerValue;
		}
		inline int32_t GetDesiredSpeedValueMotorRight()
		{
			return this->right.desiredSpeed;
		}
		inline int32_t GetDesiredSpeedValueMotorLeft()
		{
			return this->left.desiredSpeed;
		}

		inline int32_t GetKp()
		{
