docs: def get_vector(
          self, lr_motor: float, rr_motor: float, lf_motor: float, rf_motor: float
      ) -> typing.Tuple[float, float, float]:
          """
              Given motor values, retrieves the vector of (distance, speed) for your robot
          
              :param lr_motor:   Left rear motor value (-1 to 1); 1 is forward
              :param rr_motor:   Right rear motor value (-1 to 1); 1 is forward
              :param lf_motor:   Left front motor value (-1 to 1); 1 is forward
              :param rf_motor:   Right front motor value (-1 to 1); 1 is forward
              
              :returns: Speed of robot in x (ft/s), Speed of robot in y (ft/s),
                        clockwise rotation of robot (radians/s)
          """
          #
          # From http://www.chiefdelphi.com/media/papers/download/2722 pp7-9
          # [F] [omega](r) = [V]
          #
          # F is
          # .25  .25  .25 .25
          # -.25 .25 -.25 .25
          # -.25k -.25k .25k .25k
          #
          # omega is
          # [lf lr rr rf]
  
          if self.deadzone:
              lf_motor = self.deadzone(lf_motor)
              lr_motor = self.deadzone(lr_motor)
              rf_motor = self.deadzone(rf_motor)
              rr_motor = self.deadzone(rr_motor)
  
          # Calculate speed of each wheel
          lr = lr_motor * self.speed
          rr = rr_motor * self.speed
          lf = lf_motor * self.speed
          rf = rf_motor * self.speed
  
          # Calculate K
          k = abs(self.x_wheelbase / 2.0) + abs(self.y_wheelbase / 2.0)
  
          # Calculate resulting motion
          Vy = 0.25 * (lf + lr + rr + rf)
          Vx = 0.25 * (lf + -lr + rr + -rf)
          Vw = (0.25 / k) * (lf + lr + -rr + -rf)
  
          self.lr_speed = lr
          self.rr_speed = rr
          self.lf_speed = lf
          self.rf_speed = rf
          return Vx, Vy, Vw