Пример #1
0
    def _run_openscenario(self):
        """
        Run a scenario based on OpenSCENARIO
        """

        # Load the scenario configurations provided in the config file
        if not os.path.isfile(self._args.openscenario):
            print("File does not exist")
            self._cleanup()
            return False

        if not self._args.openscenarioparams:
            dirname = os.path.dirname(self._args.openscenario)
            filename = os.path.basename(self._args.openscenario).split('.')[0]
            csv_path = os.path.join(dirname + '/' + filename + '.csv')

            if os.path.isfile(csv_path):
                df = pd.read_csv(csv_path)
                row = np.random.randint(len(df.index))
                column_names = df.columns
                values = df.iloc[row]

                self._args.openscenarioparams = dict()

                for column, value in zip(column_names, values):
                    self._args.openscenarioparams[column] = value

        config = OpenScenarioConfiguration(self._args.openscenario,
                                           self._args.openscenarioparams,
                                           self.client)

        result = self._load_and_run_scenario(config)
        self._cleanup()
        return result
Пример #2
0
    def test_all_xosc(self):
        """
        Load all examples OpenSCENARIO files
        """
        all_test_files = glob.glob('**/srunner/examples/*.xosc',
                                   recursive=True)

        for filename in all_test_files:
            client = carla.Client()
            config = OpenScenarioConfiguration(filename, client, {})
            self.assertTrue(config is not None)
            CarlaDataProvider.set_client(client)
            ego_vehicles = []
            for vehicle in config.ego_vehicles:
                ego_vehicles.append(
                    CarlaDataProvider.request_new_actor(
                        vehicle.model,
                        vehicle.transform,
                        vehicle.rolename,
                        color=vehicle.color,
                        actor_category=vehicle.category))

            scenario = OpenScenario(world=client.get_world(),
                                    ego_vehicles=ego_vehicles,
                                    config=config,
                                    config_file=filename,
                                    timeout=100000)
            self.assertTrue(scenario is not None)

            CarlaDataProvider.cleanup()
Пример #3
0
    def _run_openscenario(self, args):
        """
        Run a scenario based on OpenSCENARIO
        """

        # Load the scenario configurations provided in the config file
        if not os.path.isfile(args.openscenario):
            print("File does not exist")
            self._cleanup()
            return

        config = OpenScenarioConfiguration(args.openscenario)
        self._load_and_run_scenario(args, config)
        self._cleanup(ego=(not args.waitForEgo))
Пример #4
0
    def _run_openscenario(self):
        """
        Run a scenario based on OpenSCENARIO
        """

        # Load the scenario configurations provided in the config file
        if not os.path.isfile(self._args.openscenario):
            print("File does not exist")
            self._cleanup()
            return False

        config = OpenScenarioConfiguration(self._args.openscenario, self.client)
        result = self._load_and_run_scenario(config)
        self._cleanup()
        return result
Пример #5
0
    def _run_openscenario(self):
        """
        Run a scenario based on OpenSCENARIO
        """

        # Load the scenario configurations provided in the config file
        if not os.path.isfile(self._args.openscenario):
            print("File does not exist")
            self._cleanup()
            return False

        openscenario_params = dict()
        if self._args.openscenarioparams is not None:
            for entry in self._args.openscenarioparams.split(','):
                [key, val] = [m.strip() for m in entry.split(':')]
                openscenario_params[key] = val
        config = OpenScenarioConfiguration(self._args.openscenario, self.client, openscenario_params)

        result = self._load_and_run_scenario(config)
        self._cleanup()
        return result