#! /usr/bin/python import rospy from geometry_msgs.msg import Point from bebop_driver.sensor_msgs import Image from drone_demo.msg import component_centers from find_targets import find_targets class Publisher: def __init__(self): self.threshold_blue = 140 self.threshold_red = 120 self.threshold_green = 190 self.centers = component_centers() self.pub = rospy.Publisher('targets', component_centers, queue_size=10) rospy.Subscriber("image_raw", Image, self.on_picture) def on_picture(self, msg): H, L, R = find_targets( msg.data, threshold_blue=self.threshold_blue, threshold_red=self.threshold_red, threshold_green=self.threshold_green ) self.centers.centers = [ Point(x=H[0], y=H[1], z=0), Point(x=L[0], y=L[1], z=0), Point(x=R[0], y=R[1], z=0), ] self.pub.publish(self.centers) if __name__ == '__main__': rospy.init_node('target_publisher') publisher = Publisher() rospy.spin()