def __init__(self, map_name): self.node_name = rospy.get_name() # Map self.map = dw.load_map(map_name) self.skeleton_graph = dw.get_skeleton_graph(self.map['tilemap']) # Dispatcher self.dispatcher = dispatcher.Dispatcher(self.skeleton_graph) self.state = {'seq': 0, 'duckies': {}, 'requests': []} # Subscribers self.sub_paths = rospy.Subscriber('/flock_simulator/state', FlockState, self.cbState, queue_size=1) # Publishers self.pub_commands = rospy.Publisher('/flock_simulator/commands', FlockCommand, queue_size=1) # Timer self.sim_frequency = 30.0 # Frequency of simulation in Hz self.request_timer = rospy.Timer( rospy.Duration.from_sec(1.0 / self.sim_frequency), self.cbTimer) self.isUpdating = False
def __init__(self, map_name): self.map = dw.load_map(map_name) self.tile_size = self.map.tile_size self.skeleton_graph = dw.get_skeleton_graph(self.map['tilemap']) self.graph = self.skeleton_graph.G self.edges = list(self.graph.edges(data=True)) self.nodes = list(self.graph.nodes(data=True)) self.lanes = self.skeleton_graph.root2.children
def get_lane_at_point_test2(): m: dw.DuckietownMap = dw.load_map("robotarium2") sk2 = dw.get_skeleton_graph(m) G0 = sk2.G0 c = list(connected_components(G0.to_undirected())) assert len(c) == 6 p = list(G0.nodes)[0] mp: MeetingPoint = G0.nodes[p]["meeting_point"] print(debug_print(mp))
def get_map_components(m: DuckietownMap) -> Dict[str, ComponentFootprint]: from duckietown_world.world_duckietown.segmentify import MeetingPoint sk2 = get_skeleton_graph(m) G0 = sk2.G0 c = list(connected_components(G0.to_undirected())) res = {} for i, nodes in enumerate(c): s = "comp%d" % i tiles: Set[Tuple[int, int]] = set() for n in nodes: mp: MeetingPoint = G0.nodes[n]["meeting_point"] tiles.add(mp.from_tile) tiles.add(mp.into_tile) res[s] = ComponentFootprint(tiles) return res