class_docstr: PIDLongitudinalController implements longitudinal control using a PID.
docstr: Execute one step of longitudinal control to reach a given target speed.
  
      :param target_speed: target speed in Km/h
      :param debug: boolean for debugging
      :return: throttle control
docstr_tok: ["Execute","one","step","of","longitudinal","control","to","reach","a","given","target","speed",".",":","param","target_speed",":","target","speed","in","Km\/h",":","param","debug",":","boolean","for","debugging",":","return",":","throttle","control"]
code: def run_step(self, target_speed, debug=False):
      """
      Execute one step of longitudinal control to reach a given target speed.
  
          :param target_speed: target speed in Km/h
          :param debug: boolean for debugging
          :return: throttle control
      """
      current_speed = get_speed(self._vehicle)
  
      if debug:
          print("Current speed = {}".format(current_speed))
  
      return self._pid_control(target_speed, current_speed)
  
imports: from collections import deque
  import math
  import numpy
  import carla
  from agents.tools.misc import get_speed
label_desc: Use image node_id 2 for calling the PIDLongitudinalController obj's underlying member method code with example usage: obj.run_step(target_speed, debug) and returns: self