Changing subscriber topic
I have three different objects that all have their own topic of /path_finished, so at any time there is /obj1/path_finished, /obj2/path_finished, and /obj3/path_finished. I want to only subscribe to the topic when my code is assessing a certain object. I have these three objects in a list, so as I iterate through each object, I want the subscriber to subscribe to the topic name relating to that object. Is there an elegant way to do this with only one subscriber or do I just have to have three different subscribers?
Here is code below to illustrate my question:
self.path_name = ""
self.pub_wpt_queue_done = rospy.Subscriber(self.path_name, QuadWaypointQueueComplete, self.isFinished, queue_size=100)
def isFinished(self, wpt_done_msg):
self.isFinished = veh_list_msg.is_queue_complete
def managerLoop(self,event):
for veh_name in self.ducky_dict.keys():
cur_ducky = self.ducky_dict[veh_name]
self.path_name = "/"+cur_ducky+"/path_finished"
if (self.isFinished):
rospy.loginfo("[%s][managerLoop] Successfully finished wpt, going to next wpt if available." %(cur_ducky.veh_name))
pubWptQueueComplete(cur_ducky.veh_name)
Any help is much appreciated, thanks!