I am trying to feed in and return a variable that is updated within a function. The program works and will update within the class, however I need the updated variable to return to the main program as the rest relies on this variable. It says that data is not defined globally, however I have tried defining data and setting it to different things. I'm unsure what I would globally define data as for the program to work the same.
class image_converter: def __init__(self): topic_base_name = "/" + os.getenv("ROBOT_NAME") self.last_frame = None self.bridge = CvBridge() self.sub_camr = rospy.Subscriber(topic_base_name + "/sensors/camr/compressed", CompressedImage, self.callback, queue_size=1, tcp_nodelay=True) def callback(self,data,count): self.image_converter = CvBridge() # silently (ish) handle corrupted JPEG frames try: # convert compressed ROS image to raw CV image image = self.image_converter.compressed_imgmsg_to_cv2(data, "rgb8") # detect movement # increment count by 1 when movement detected return count def main(): count = 0 ic = image_converter() counter = ic.callback(data,counter) if __name__ == '__main__': main()'''