diff --git a/carla_sim/GA.py b/carla_sim/GA.py index 2392b09..94e42f9 100644 --- a/carla_sim/GA.py +++ b/carla_sim/GA.py @@ -13,6 +13,7 @@ from collections import namedtuple import yaml from datetime import datetime +import argparse def get_similarity_between_npc_behaviors(b1, b2): n = min(len(b1), len(b2)) @@ -219,7 +220,14 @@ def genetic_fuzzer(spawn_config, weather_params, return best_ind, best_fit if __name__ == '__main__': - ga_cfg = tools.load_ga_config('./parameters/ga.yaml') + parser = argparse.ArgumentParser(prog = 'GA.py', description='AV-Fuzzer Genetic Algorithm') + parser.add_argument('-g', '--genetics', default='parameters/GA.yaml', type=str, metavar='path/to/genetics.yaml') + parser.add_argument('-w', '--weather', default='parameters/weather.yaml', type=str, metavar='path/to/weather.yaml') + parser.add_argument('-s', '--spawn', default='parameters/spawn.yaml', type=str, metavar='path/to/spawn.yaml') + + args = parser.parse_args() + + ga_cfg = tools.load_ga_config(args.genetics) POP_SIZE = ga_cfg['pop_size'] MAX_GENS = ga_cfg['max_gens'] @@ -227,8 +235,8 @@ def genetic_fuzzer(spawn_config, weather_params, MUTATION_RATE = ga_cfg['mutation_rate'] TOURNAMENT_K = ga_cfg['tournament_k'] - weather_config = tools.load_weather_yaml('./parameters/weather.yaml') - spawn_config = tools.load_spawn_yaml('./parameters/spawn.yaml') + weather_config = tools.load_weather_yaml(args.weather) + spawn_config = tools.load_spawn_yaml(args.spawn) best_ind, best_fit = genetic_fuzzer( diff --git a/carla_sim/parameters/spawn.yaml b/carla_sim/parameters/spawn.yaml index e83aa6a..c87b0b9 100644 --- a/carla_sim/parameters/spawn.yaml +++ b/carla_sim/parameters/spawn.yaml @@ -1,3 +1,6 @@ +map: + "Town03" + ev: start: [30.874001, 7.542412, 0.3] end: [205.874001, 8.542412, 0.3] diff --git a/carla_sim/simulation.py b/carla_sim/simulation.py index c73b803..9b9e445 100644 --- a/carla_sim/simulation.py +++ b/carla_sim/simulation.py @@ -27,7 +27,7 @@ def run_simulation(spawn_config, weather_params, client = carla.Client("localhost", 2000) client.set_timeout(10.0) - client.load_world('Town03') + client.load_world(spawn_config['map']) world = client.get_world() tools.set_weather(world, weather_params)