Пример #1
0
    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
Пример #2
0
 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
Пример #3
0
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))
Пример #4
0
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