docs: def drive(self, speed, rotation_speed, tm_diff):
          """Call this from your :func:`PhysicsEngine.update_sim` function.
             Will update the robot's position on the simulation field.
  
             You can either calculate the speed & rotation manually, or you
             can use the predefined functions in :mod:`pyfrc.physics.drivetrains`.
             
             The outputs of the `drivetrains.*` functions should be passed
             to this function.
  
             .. note:: The simulator currently only allows 2D motion
             
             :param speed:           Speed of robot in ft/s
             :param rotation_speed:  Clockwise rotational speed in radians/s
             :param tm_diff:         Amount of time speed was traveled (this is the
                                     same value that was passed to update_sim)
          """
  
          # if the robot is disabled, don't do anything
          if not self.robot_enabled:
              return
  
          distance = speed * tm_diff
          angle = rotation_speed * tm_diff
  
          x = distance * math.cos(angle)
          y = distance * math.sin(angle)
  
          self.distance_drive(x, y, angle)