def load(): starttime = time.time() * 1000 initdict_terrain = MapLoader.loadFile( "../../def/1_Terrain.yml")["terrain"] initdict_zones = MapLoader.loadFile("../../def/2_Zones.yml")["zones"] initdict_waypoints = MapLoader.loadFile( "../../def/3_Waypoints.yml")["waypoints"] initdict_entities = MapLoader.loadFile( "../../def/4_Entities.yml")["entities"] initdict_objects = MapLoader.loadFile( "../../def/5_Objects.yml")["objects"] # Instantiate objects before creating the map dict for zone in initdict_zones: initdict_zones[zone] = Zone(initdict_zones[zone]) for waypoint in initdict_waypoints: initdict_waypoints[waypoint] = Waypoint( initdict_waypoints[waypoint]) for entity in initdict_entities: initdict_entities[entity] = Entity(initdict_entities[entity]) for obj in initdict_objects: initdict_objects[obj] = Object(initdict_objects[obj]) rospy.loginfo("Loaded files in {0:.2f}ms.".format(time.time() * 1000 - starttime)) # Create main Map dict Map.MapDict = DictManager({ "terrain": Terrain(initdict_terrain), "zones": DictManager(initdict_zones), "waypoints": DictManager(initdict_waypoints), "entities": DictManager(initdict_entities), "objects": DictManager(initdict_objects) }) rospy.loginfo("Loaded map in {0:.2f}ms.".format(time.time() * 1000 - starttime))
def load(): # Loading XML files starttime = time.time() * 1000 xml_config = MapLoader.loadFile("1_config.xml") xml_terrain = MapLoader.loadFile("2_terrain.xml") xml_waypoints = MapLoader.loadFile("3_waypoints.xml") xml_objects = MapLoader.loadFile("4_objects.xml") xml_robot = MapLoader.loadFile("5_robot.xml") rospy.loginfo("Loaded files in {0:.2f}ms.".format(time.time() * 1000 - starttime)) # Setting current team to the default set one. for xml_team in xml_config.find("teams").findall("team"): if "default" in xml_team.attrib and bool( xml_team.attrib["default"]): if MapManager.CurrentTeam != "": raise ValueError( "ERROR Two or more teams have been set to default.") MapManager.CurrentTeam = xml_team.attrib["name"] MapManager.Teams.append(Team(xml_team)) if MapManager.CurrentTeam == "": raise ValueError("ERROR One team has to be set as default.") # Loading the color palette for xml_color in xml_config.find("colors").findall("color"): MapManager.Colors.append(Color(xml_color)) # Constructing object classes if not xml_objects.findall("classes"): raise KeyError("Objects file must have a 'classes' tag.") obj_classes = [] for c in xml_objects.find("classes").findall("class"): obj_classes.append(Class(c, obj_classes)) # Instantiate objects and create the map dict MapDict.Terrain = Terrain(xml_terrain) xml_objects.attrib["name"] = "map" MapDict.Objects = Container(xml_objects, obj_classes) MapDict.Waypoints = [ Waypoint(w) for w in xml_waypoints.findall("waypoint") ] MapDict.Robot = Robot(xml_robot, obj_classes) rospy.loginfo("Loaded map in {0:.2f}ms.".format(time.time() * 1000 - starttime))