def correctError(self):
    front = (self.pos + (self.v.normal() * self.height))
    closestPoint = self.path.closestPoint(front)
    errorVec = (closestPoint - self.pos)
    error = errorVec.length()
    theta = self.v.get_angle_between(errorVec)
    if (theta < 0):
        error *= (- 1)
    self.totalErr += error
    derivative = (error - self.lastErr)
    self.lastErr = error
    correction = (((self.P * error) + (self.I * self.totalErr)) + (self.D * derivative))
    self.v.rotated(correction, True)
def correctError(self):
    front = (self.pos + (self.v.normal() * self.height))
    closestPoint = self.path.closestPoint(front)
    errorVec = (closestPoint - self.pos)
    error = errorVec.length()
    theta = self.v.get_angle_between(errorVec)
    if (theta < 0):
        error *= (- 1)
    self.totalErr += error
    derivative = (error - self.lastErr)
    self.lastErr = error
    correction = (((self.P * error) + (self.I * self.totalErr)) + (self.D * derivative))
    self.v.rotated(correction, True)