def _set_actor_information(self): """ Extract all actors and their corresponding specification NOTE: The rolename property has to be unique! """ for entity in self.xml_tree.iter("Entities"): for obj in entity.iter("Object"): rolename = obj.attrib.get('name', 'simulation') for vehicle in obj.iter("Vehicle"): model = vehicle.attrib.get('name', "vehicle.*") ego_vehicle = False for prop in obj.iter("Property"): if prop.get('name', '') == 'type': ego_vehicle = prop.get('value') == 'ego_vehicle' new_actor = ActorConfigurationData(model, carla.Transform(), rolename) new_actor.transform = self._get_actor_transform(rolename) if ego_vehicle: self.ego_vehicles.append(new_actor) else: self.other_actors.append(new_actor) for pedestrian in obj.iter("Pedestrian"): model = pedestrian.attrib.get('model', "walker.*") new_actor = ActorConfigurationData(model, carla.Transform(), rolename) new_actor.transform = self._get_actor_transform(rolename) self.other_actors.append(new_actor)
def _set_actor_information(self): """ Extract all actors and their corresponding specification NOTE: The rolename property has to be unique! """ for entity in self.xml_tree.iter("Entities"): for obj in entity.iter("Object"): rolename = obj.attrib.get('name', 'simulation') for vehicle in obj.iter("Vehicle"): color = None model = vehicle.attrib.get('name', "vehicle.*") category = vehicle.attrib.get('category', "car") ego_vehicle = False for prop in obj.iter("Property"): if prop.get('name', '') == 'type': ego_vehicle = prop.get('value') == 'ego_vehicle' if prop.get('name', '') == 'color': color = prop.get('value') speed = self._get_actor_speed(rolename) new_actor = ActorConfigurationData(model, carla.Transform(), rolename, speed, color=color, category=category) new_actor.transform = self._get_actor_transform(rolename) if ego_vehicle: self.ego_vehicles.append(new_actor) else: self.other_actors.append(new_actor) for pedestrian in obj.iter("Pedestrian"): model = pedestrian.attrib.get('model', "walker.*") new_actor = ActorConfigurationData(model, carla.Transform(), rolename, category="pedestrian") new_actor.transform = self._get_actor_transform(rolename) self.other_actors.append(new_actor) for misc in obj.iter("MiscObject"): category = misc.attrib.get('category') if category == "barrier": model = "static.prop.streetbarrier" elif category == "guardRail": model = "static.prop.chainbarrier" else: model = misc.attrib.get('name') new_actor = ActorConfigurationData(model, carla.Transform(), rolename) new_actor.transform = self._get_actor_transform(rolename) self.other_actors.append(new_actor)
def _extract_vehicle_information(self, obj, rolename, vehicle, args): """ Helper function to _set_actor_information for getting vehicle information from XML tree """ color = None model = vehicle.attrib.get('name', "vehicle.*") category = vehicle.attrib.get('vehicleCategory', "car") ego_vehicle = False for prop in obj.iter("Property"): if prop.get('name', '') == 'type': ego_vehicle = prop.get('value') == 'ego_vehicle' if prop.get('name', '') == 'color': color = prop.get('value') speed = self._get_actor_speed(rolename) new_actor = ActorConfigurationData(model, carla.Transform(), rolename, speed, color=color, category=category, args=args) new_actor.transform = self._get_actor_transform(rolename) if ego_vehicle: self.ego_vehicles.append(new_actor) else: self.other_actors.append(new_actor)
def _extract_pedestrian_information(self, obj, rolename, pedestrian, args): """ Helper function to _set_actor_information for getting pedestrian information from XML tree """ model = pedestrian.attrib.get('model', "walker.*") new_actor = ActorConfigurationData(model, carla.Transform(), rolename, category="pedestrian", args=args) new_actor.transform = self._get_actor_transform(rolename) self.other_actors.append(new_actor)
def _extract_misc_information(self, obj, rolename, misc, args): """ Helper function to _set_actor_information for getting vehicle information from XML tree """ category = misc.attrib.get('category') if category == "barrier": model = "static.prop.streetbarrier" elif category == "guardRail": model = "static.prop.chainbarrier" else: model = misc.attrib.get('name') new_actor = ActorConfigurationData(model, carla.Transform(), rolename, category="misc", args=args) new_actor.transform = self._get_actor_transform(rolename) self.other_actors.append(new_actor)