def __init__(self):
		# defines
		rospy.loginfo(rospy.get_name() + ": Start")

		# get parameters
		self.update_rate = rospy.get_param("~update_rate", "5") # update frequency [Hz]
		self.offset_e = rospy.get_param("~easting_offset",0.0) # [m]
		self.offset_n = rospy.get_param("~northing_offset",0.0) # [m]
		self.trkpt_threshold = rospy.get_param("~trackpoint_threshold",0.1) # [m]
		map_title = rospy.get_param("~map_title", "Track")
		map_window_size = rospy.get_param("~map_window_size",5.0) # [inches]

		# initialize the polygon map
		self.polyplot = polygon_map_plot(map_title, map_window_size, self.offset_e, self.offset_n)

		# import polygons 
		file = open('polygon_map.txt', 'r')
		file_content = csv.reader(file, delimiter='\t')
		for name,e1,n1,e2,n2,e3,n3,e4,n4 in file_content:
			polygon = [[float(e1),float(n1)],[float(e2),float(n2)],[float(e3),float(n3)],[float(e4),float(n4)]]
			self.polyplot.add_polygon (polygon)
		file.close()
		rospy.loginfo(rospy.get_name() + ": Loaded %ld polygons" % self.polyplot.poly_total)

		# get topic names
		self.pose_topic = rospy.get_param("~pose_sub",'/fmKnowledge/pose')
		self.polygon_map_topic = rospy.get_param("~polygon_map_pub",'/fmKnowledge/polygon_map')

		# setup subscription topic callbacks
		rospy.Subscriber(self.pose_topic, Odometry, self.on_pose_message)
		rospy.Subscriber(self.polygon_map_topic, IntStamped, self.on_polygon_map_message)

		# call updater function
		self.r = rospy.Rate(self.update_rate)
		self.updater()
예제 #2
0
    def __init__(self):
        # defines
        rospy.loginfo(rospy.get_name() + ": Start")

        # get parameters
        self.update_rate = rospy.get_param("~update_rate",
                                           "5")  # update frequency [Hz]
        self.offset_e = rospy.get_param("~easting_offset", 0.0)  # [m]
        self.offset_n = rospy.get_param("~northing_offset", 0.0)  # [m]
        self.trkpt_threshold = rospy.get_param("~trackpoint_threshold",
                                               0.1)  # [m]
        map_title = rospy.get_param("~map_title", "Track")
        map_window_size = rospy.get_param("~map_window_size", 5.0)  # [inches]

        # initialize the polygon map
        self.polyplot = polygon_map_plot(map_title, map_window_size,
                                         self.offset_e, self.offset_n)

        # import polygons
        file = open('polygon_map.txt', 'r')
        file_content = csv.reader(file, delimiter='\t')
        for name, e1, n1, e2, n2, e3, n3, e4, n4 in file_content:
            polygon = [[float(e1), float(n1)], [float(e2),
                                                float(n2)],
                       [float(e3), float(n3)], [float(e4),
                                                float(n4)]]
            self.polyplot.add_polygon(polygon)
        file.close()
        rospy.loginfo(rospy.get_name() +
                      ": Loaded %ld polygons" % self.polyplot.poly_total)

        # get topic names
        self.pose_topic = rospy.get_param("~pose_sub", '/fmKnowledge/pose')
        self.polygon_map_topic = rospy.get_param("~polygon_map_pub",
                                                 '/fmKnowledge/polygon_map')

        # setup subscription topic callbacks
        rospy.Subscriber(self.pose_topic, Odometry, self.on_pose_message)
        rospy.Subscriber(self.polygon_map_topic, IntStamped,
                         self.on_polygon_map_message)

        # call updater function
        self.r = rospy.Rate(self.update_rate)
        self.updater()
예제 #3
0
import csv
import copy

# initialize the polygon map
polymap = polygon_map()
polymap.set_nearby_threshold(10.0)
polymap.set_polygons_per_update(1600)

# initialize the polygon map plot
map_title = "Field"
map_window_size = 10.0  # [inches]
easting_offset = 0.0  # [m]
northing_offset = 0.0  # [m]
easting_offset = -588815.0  # [m]
northing_offset = -6137299.0  # [m]
polyplot = polygon_map_plot(map_title, map_window_size, easting_offset,
                            northing_offset)

# import polygons
file = open('TekInnerParcelCornersExtended.csv', 'r')
file_content = csv.reader(file, delimiter='\t')
for name, e1, n1, e2, n2, e3, n3, e4, n4 in file_content:
    polygon = [[float(e1), float(n1)], [float(e2), float(n2)],
               [float(e3), float(n3)], [float(e4), float(n4)]]
    polymap.add_polygon(name, polygon)
    polyplot.add_polygon(copy.deepcopy(polygon))
file.close()

print "Polygons imported: %ld" % polymap.poly_total

polyplot.update_map_plot()
예제 #4
0
import csv
import copy

# initialize the polygon map
polymap = polygon_map()
polymap.set_nearby_threshold (10.0) 
polymap.set_polygons_per_update (1600)

# initialize the polygon map plot
map_title = "Field"
map_window_size = 10.0 # [inches]
easting_offset = 0.0 # [m]
northing_offset = 0.0 # [m]
easting_offset = -588815.0 # [m]
northing_offset = -6137299.0 # [m]
polyplot = polygon_map_plot(map_title, map_window_size, easting_offset, northing_offset)

# import polygons 
file = open('TekInnerParcelCornersExtended.csv', 'r')
file_content = csv.reader(file, delimiter='\t')
for name,e1,n1,e2,n2,e3,n3,e4,n4 in file_content:
	polygon = [[float(e1),float(n1)],[float(e2),float(n2)],[float(e3),float(n3)],[float(e4),float(n4)]]
	polymap.add_polygon (name, polygon)
	polyplot.add_polygon (copy.deepcopy(polygon))
file.close()

print "Polygons imported: %ld" % polymap.poly_total

polyplot.update_map_plot ()