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