code: def equal_physics_control(pc_a, pc_b):
      error_msg = ""
  
      for key in dir(pc_a):
          if key.startswith("__") or key == "wheels":
              continue
  
          if not equal_tol(
              getattr(pc_a, key), getattr(pc_b, key), 1e-3
          ):
              error_msg = (
                  "Car property: '%s' in VehiclePhysicsControl does not match: %.4f %.4f"
                  % (key, getattr(pc_a, key), getattr(pc_b, key))
              )
              return False, error_msg
  
      if len(pc_a.wheels) != len(pc_b.wheels):
          error_msg = "The number of wheels does not match %d, %d" % (
              len(pc_a.wheels) != len(pc_b.wheels)
          )
          return False, error_msg
  
      for w in range(0, len(pc_a.wheels)):
          for key in dir(pc_a.wheels[w]):
              if key.startswith("__") or key == "position":
                  continue
  
              if not equal_tol(
                  getattr(pc_a.wheels[w], key),
                  getattr(pc_b.wheels[w], key),
                  1e-3,
              ):
                  error_msg = (
                      "Wheel property: '%s' in VehiclePhysicsControl does not match: %.4f %.4f"
                      % (
                          key,
                          getattr(pc_a.wheels[w], key),
                          getattr(pc_b.wheels[w], key),
                      )
                  )
                  return False, error_msg
  
      return True, error_msg
  
imports: from .None import SyncSmokeTest
  from .None import SmokeTest
  import carla
  import time
  import math
  import numpy
  from enum import Enum
label_desc: Use image node_id 3 for calling a global function with example usage: equal_physics_control(pc_a, pc_b) and returns: True,  error_msg, False,  error_msg, False,  error_msg, False,  error_msg