docs: def draw_text(
          self,
          text,
          pt,
          color="#000000",
          fontSize=10,
          robot_coordinates=False,
          scale=(1, 1),
          **kwargs
      ):
          """
              :param text: Text to render
              :param pt: A tuple of (x,y) in field units (which are measured in feet)
              :param color: The color of the text, expressed as a 6-digit hex color
              :param robot_coordinates: If True, the pt will be adjusted such that
                                        the point starts at the center of the
                                        robot and that x and y coordinates are
                                        rotated according to the robot's current
                                        heading. If a tuple, then the pt
                                        is adjusted relative to the robot center
                                        AND the x,y in the tuple
              :param arrow: If True, draw the line with an arrow at the end
              :param scale: Multiply all points by this (x,y) tuple
              :param kwargs: Keyword options to pass to tkinter.create_text
          """
          x, y = pt
  
          def _defer():  # called later because the field might not exist yet
              px_per_ft = UserRenderer._global_ui.field.px_per_ft
              sx, sy = scale
              pt = ((x * px_per_ft * sx), (y * px_per_ft * sy))
  
              el = TextElement(text, pt, 0, color, fontSize, **kwargs)
  
              if robot_coordinates:
                  self._do_robot_coordinates(el, robot_coordinates)
  
              el.update_coordinates()
              UserRenderer._global_ui.field.add_moving_element(el)
              self._elements.append(el)
  
          self._run(_defer)