From e48f9973580a1c27eab2e02cc0f57dd5e1abb28e Mon Sep 17 00:00:00 2001 From: Daniel Santos-Olivan Date: Thu, 26 Nov 2020 10:47:12 +0100 Subject: [PATCH] Collision check script updated --- .../util/check_collisions_substepping.py | 475 ++++++++++-------- 1 file changed, 255 insertions(+), 220 deletions(-) diff --git a/PythonAPI/util/check_collisions_substepping.py b/PythonAPI/util/check_collisions_substepping.py index 506e79304..7bb99443d 100644 --- a/PythonAPI/util/check_collisions_substepping.py +++ b/PythonAPI/util/check_collisions_substepping.py @@ -33,267 +33,292 @@ except IndexError: import carla -def wait(world, frames=100): - for _i in range(0, frames): - world.tick() - class Scenario(): - def __init__(self, client, world): + def __init__(self, client, world, save_snapshots_mode=False): self.world = world self.client = client - self.vehicle_list = [] - self.snapshots = [] + self.actor_list = [] self.init_timestamp = [] - - def init_scene(self): + self.active = False + self.prefix = "" + self.save_snapshots_mode = save_snapshots_mode self.snapshots = [] - for v in self.vehicle_list: + + def init_scene(self, prefix, settings = None, spectator_tr = None): + self.prefix = prefix + self.actor_list = [] + self.active = True + self.snapshots = [] + + self.reload_world(settings, spectator_tr) + + # Init timestamp + world_snapshot = self.world.get_snapshot() + self.init_timestamp = {'frame0' : world_snapshot.frame, 'time0' : world_snapshot.timestamp.elapsed_seconds} + + def add_actor(self, actor, actor_name="Actor"): + actor_idx = len(self.actor_list) + + name = str(actor_idx) + "_" + actor_name + + self.actor_list.append((name, actor)) + + if self.save_snapshots_mode: self.snapshots.append(np.empty((0,11), float)) - snapshot = self.world.get_snapshot() - self.init_timestamp = {'frame0' : snapshot.frame, 'time0' : snapshot.timestamp.elapsed_seconds} + def wait(self, frames=100): + for _i in range(0, frames): + self.world.tick() def clear_scene(self): - for v in self.vehicle_list: - v.destroy() + for actor in self.actor_list: + actor[1].destroy() - def save_snapshot(self, vehicle): + self.active = False + + def reload_world(self, settings = None, spectator_tr = None): + self.client.reload_world() + if settings is not None: + self.world.apply_settings(settings) + if spectator_tr is not None: + self.reset_spectator(spectator_tr) + + def reset_spectator(self, spectator_tr): + spectator = self.world.get_spectator() + spectator.set_transform(spectator_tr) + + def save_snapshot(self, actor): snapshot = self.world.get_snapshot() - vehicle_snapshot = np.array([ + actor_snapshot = np.array([ float(snapshot.frame - self.init_timestamp['frame0']), \ snapshot.timestamp.elapsed_seconds - self.init_timestamp['time0'], \ - vehicle.get_velocity().x, vehicle.get_velocity().y, vehicle.get_velocity().z, \ - vehicle.get_location().x, vehicle.get_location().y, vehicle.get_location().z, \ - vehicle.get_angular_velocity().x, vehicle.get_angular_velocity().y, vehicle.get_angular_velocity().z]) - return vehicle_snapshot + actor.get_velocity().x, actor.get_velocity().y, actor.get_velocity().z, \ + actor.get_location().x, actor.get_location().y, actor.get_location().z, \ + actor.get_angular_velocity().x, actor.get_angular_velocity().y, actor.get_angular_velocity().z]) + return actor_snapshot def save_snapshots(self): - for i in range (0, len(self.vehicle_list)): - self.snapshots[i] = np.vstack((self.snapshots[i], self.save_snapshot(self.vehicle_list[i]))) + if not self.save_snapshots_mode: + return - def get_filename(self, prefix, i): - return prefix + "_v" + str(i) + ".out" + for i in range (0, len(self.actor_list)): + self.snapshots[i] = np.vstack((self.snapshots[i], self.save_snapshot(self.actor_list[i][1]))) - def run_simulation(self, prefix, tics = 200): - self.init_scene() + def save_snapshots_to_disk(self): + if not self.save_snapshots_mode: + return - for i in range(0, tics): + for i, actor in enumerate(self.actor_list): + np.savetxt(self.get_filename(actor[0]), self.snapshots[i]) + + def get_filename_with_prefix(self, prefix, actor_id=None, frame=None): + add_id = "" if actor_id is None else "_" + actor_id + add_frame = "" if frame is None else ("_%04d") % frame + return prefix + add_id + add_frame + ".out" + + def get_filename(self, actor_id=None, frame=None): + return self.get_filename_with_prefix(self.prefix, actor_id, frame) + + def run_simulation(self, prefix, run_settings, spectator_tr, tics = 200): + original_settings = self.world.get_settings() + + self.init_scene(prefix, run_settings, spectator_tr) + + t_start = time.perf_counter() + for _i in range(0, tics): self.world.tick() self.save_snapshots() + t_end = time.perf_counter() - for i in range(0, len(self.vehicle_list)): - np.savetxt(self.get_filename(prefix, i), self.snapshots[i]) - + self.world.apply_settings(original_settings) + self.save_snapshots_to_disk() self.clear_scene() + return t_end - t_start -class SpawnCars01(Scenario): - def init_scene(self): - world = self.world - blueprint_library = world.get_blueprint_library() +class TwoSpawnedCars(Scenario): + def init_scene(self, prefix, settings = None, spectator_tr = None): + super().init_scene(prefix, settings, spectator_tr) + + blueprint_library = self.world.get_blueprint_library() vehicle00_tr = carla.Transform(carla.Location(100, -257, 0.02), carla.Rotation(yaw=181.5)) - vehicle00 = world.spawn_actor(blueprint_library.filter("tt")[0], vehicle00_tr) + vehicle00 = self.world.spawn_actor(blueprint_library.filter("tt")[0], vehicle00_tr) vehicle01_tr = carla.Transform(carla.Location(110, -253, 0.04), carla.Rotation(yaw=181.5)) - vehicle01 = world.spawn_actor(blueprint_library.filter("lincoln")[0], vehicle01_tr) - wait(world, 1) + vehicle01 = self.world.spawn_actor(blueprint_library.filter("lincoln")[0], vehicle01_tr) + self.wait(1) vehicle00.set_target_velocity(carla.Vector3D(-25, 0, 0)) vehicle01.set_target_velocity(carla.Vector3D(-25, 0, 0)) - self.vehicle_list = [] - self.vehicle_list.append(vehicle00) - self.vehicle_list.append(vehicle01) + self.add_actor(vehicle00, "Car") + self.add_actor(vehicle01, "Car") - wait(world, 1) - - super().init_scene() + self.wait(1) -class CarCollision01(Scenario): - def init_scene(self): - world = self.world - blueprint_library = world.get_blueprint_library() +class TwoCarsSlowSpeedCollision(Scenario): + def init_scene(self, prefix, settings = None, spectator_tr = None): + super().init_scene(prefix, settings, spectator_tr) - vehicle_transform = carla.Transform(carla.Location(100, -256, 0.015), carla.Rotation(yaw=178)) - vehicle = world.spawn_actor(blueprint_library.filter("tt")[0], vehicle_transform) + blueprint_library = self.world.get_blueprint_library() - opponent_transform = carla.Transform(carla.Location(40, -255, 0.04), carla.Rotation(yaw=0)) - opponent = world.spawn_actor(blueprint_library.filter("lincoln")[0], opponent_transform) - wait(world, 1) + vehicle00_tr = carla.Transform(carla.Location(100, -256, 0.015), carla.Rotation(yaw=178)) + vehicle00 = self.world.spawn_actor(blueprint_library.filter("tt")[0], vehicle00_tr) - vehicle.set_target_velocity( carla.Vector3D(-12, 0, 0)) - opponent.set_target_velocity(carla.Vector3D(+12, 0, 0)) + vehicle01_tr = carla.Transform(carla.Location(40, -255, 0.04), carla.Rotation(yaw=0)) + vehicle01 = self.world.spawn_actor(blueprint_library.filter("lincoln")[0], vehicle01_tr) + self.wait(1) - self.vehicle_list = [] - self.vehicle_list.append(vehicle) - self.vehicle_list.append(opponent) + vehicle00.set_target_velocity(carla.Vector3D(-12, 0, 0)) + vehicle01.set_target_velocity(carla.Vector3D(+12, 0, 0)) - wait(world, 1) + self.add_actor(vehicle00, "Car") + self.add_actor(vehicle01, "Car") - super().init_scene() + self.wait(1) -class CarCollision02(Scenario): - def init_scene(self): - world = self.world +class TwoCarsHighSpeedCollision(Scenario): + def init_scene(self, prefix, settings = None, spectator_tr = None): + super().init_scene(prefix, settings, spectator_tr) - blueprint_library = world.get_blueprint_library() + blueprint_library = self.world.get_blueprint_library() - vehicle_transform = carla.Transform(carla.Location(140, -256, 0.015), carla.Rotation(yaw=180)) - vehicle = world.spawn_actor(blueprint_library.filter("tt")[0], vehicle_transform) + vehicle00_tr = carla.Transform(carla.Location(140, -256, 0.015), carla.Rotation(yaw=180)) + vehicle00 = self.world.spawn_actor(blueprint_library.filter("tt")[0], vehicle00_tr) - opponent_transform = carla.Transform(carla.Location(40, -255, 0.04), carla.Rotation(yaw=0)) - opponent = world.spawn_actor(blueprint_library.filter("lincoln")[0], opponent_transform) - wait(world, 1) + vehicle01_tr = carla.Transform(carla.Location(40, -255, 0.04), carla.Rotation(yaw=0)) + vehicle01 = self.world.spawn_actor(blueprint_library.filter("lincoln")[0], vehicle01_tr) + self.wait(1) - vehicle.set_target_velocity( carla.Vector3D(-50, 0, 0)) - opponent.set_target_velocity(carla.Vector3D(+50, 0, 0)) + vehicle00.set_target_velocity( carla.Vector3D(-50, 0, 0)) + vehicle01.set_target_velocity(carla.Vector3D(+50, 0, 0)) - self.vehicle_list = [] - self.vehicle_list.append(vehicle) - self.vehicle_list.append(opponent) + self.add_actor(vehicle00, "Car") + self.add_actor(vehicle01, "Car") - wait(world, 1) - - super().init_scene() + self.wait(1) -class CarCollision03(Scenario): - def init_scene(self): - world = self.world +class ThreeCarsSlowSpeedCollision(Scenario): + def init_scene(self, prefix, settings = None, spectator_tr = None): + super().init_scene(prefix, settings, spectator_tr) - blueprint_library = world.get_blueprint_library() + blueprint_library = self.world.get_blueprint_library() vehicle00_tr = carla.Transform(carla.Location(110, -255, 0.05), carla.Rotation(yaw=180)) - vehicle00 = world.spawn_actor(blueprint_library.filter("prius")[0], vehicle00_tr) + vehicle00 = self.world.spawn_actor(blueprint_library.filter("prius")[0], vehicle00_tr) vehicle01_tr = carla.Transform(carla.Location(53, -257, 0.00), carla.Rotation(yaw=0)) - vehicle01 = world.spawn_actor(blueprint_library.filter("a2")[0], vehicle01_tr) + vehicle01 = self.world.spawn_actor(blueprint_library.filter("a2")[0], vehicle01_tr) vehicle02_tr = carla.Transform(carla.Location(85, -230, 0.04), carla.Rotation(yaw=-90)) - vehicle02 = world.spawn_actor(blueprint_library.filter("lincoln")[0], vehicle02_tr) + vehicle02 = self.world.spawn_actor(blueprint_library.filter("lincoln")[0], vehicle02_tr) - wait(world, 1) + self.wait(1) vehicle00.set_target_velocity(carla.Vector3D(-15, 0, 0)) vehicle01.set_target_velocity(carla.Vector3D(+15, 0, 0)) vehicle02.set_target_velocity(carla.Vector3D(0, -15, 0)) - self.vehicle_list = [] - self.vehicle_list.append(vehicle00) - self.vehicle_list.append(vehicle01) - self.vehicle_list.append(vehicle02) + self.add_actor(vehicle00, "Car") + self.add_actor(vehicle01, "Car") + self.add_actor(vehicle02, "Car") - wait(world, 1) - - super().init_scene() + self.wait(1) -class CarCollision04(Scenario): - def init_scene(self): - world = self.world - blueprint_library = world.get_blueprint_library() +class ThreeCarsHighSpeedCollision(Scenario): + def init_scene(self, prefix, settings = None, spectator_tr = None): + super().init_scene(prefix, settings, spectator_tr) + + blueprint_library = self.world.get_blueprint_library() vehicle00_tr = carla.Transform(carla.Location(110, -255, 0.05), carla.Rotation(yaw=180)) - vehicle00 = world.spawn_actor(blueprint_library.filter("prius")[0], vehicle00_tr) + vehicle00 = self.world.spawn_actor(blueprint_library.filter("prius")[0], vehicle00_tr) vehicle01_tr = carla.Transform(carla.Location(53, -257, 0.00), carla.Rotation(yaw=0)) - vehicle01 = world.spawn_actor(blueprint_library.filter("a2")[0], vehicle01_tr) + vehicle01 = self.world.spawn_actor(blueprint_library.filter("a2")[0], vehicle01_tr) vehicle02_tr = carla.Transform(carla.Location(85, -230, 0.04), carla.Rotation(yaw=-90)) - vehicle02 = world.spawn_actor(blueprint_library.filter("lincoln")[0], vehicle02_tr) + vehicle02 = self.world.spawn_actor(blueprint_library.filter("lincoln")[0], vehicle02_tr) - wait(world, 1) + self.wait(1) vehicle00.set_target_velocity(carla.Vector3D(-30, 0, 0)) vehicle01.set_target_velocity(carla.Vector3D(+30, 0, 0)) vehicle02.set_target_velocity(carla.Vector3D(0, -30, 0)) - self.vehicle_list = [] - self.vehicle_list.append(vehicle00) - self.vehicle_list.append(vehicle01) - self.vehicle_list.append(vehicle02) + self.add_actor(vehicle00, "Car") + self.add_actor(vehicle01, "Car") + self.add_actor(vehicle02, "Car") - wait(world, 1) - - super().init_scene() + self.wait(1) -class CarBikeCollis1(Scenario): - def init_scene(self): - world = self.world - blueprint_library = world.get_blueprint_library() +class CarBikeCollision(Scenario): + def init_scene(self, prefix, settings = None, spectator_tr = None): + super().init_scene(prefix, settings, spectator_tr) + + blueprint_library = self.world.get_blueprint_library() car_tr = carla.Transform(carla.Location(50, -255, 0.04), carla.Rotation(yaw=0)) - car = world.spawn_actor(blueprint_library.filter("*lincoln*")[0], car_tr) - wait(world, 1) + car = self.world.spawn_actor(blueprint_library.filter("*lincoln*")[0], car_tr) bike_tr = carla.Transform(carla.Location(85, -245, 0.04), carla.Rotation(yaw=-90)) - bike = world.spawn_actor(blueprint_library.filter("*gazelle*")[0], bike_tr) - wait(world, 1) + bike = self.world.spawn_actor(blueprint_library.filter("*gazelle*")[0], bike_tr) + self.wait(1) car.set_target_velocity(carla.Vector3D(+30, 0, 0)) bike.set_target_velocity(carla.Vector3D(0, -12, 0)) - self.vehicle_list = [] - self.vehicle_list.append(car) - self.vehicle_list.append(bike) + self.add_actor(car, "Car") + self.add_actor(bike, "Bike") - wait(world, 1) - - super().init_scene() + self.wait(1) -class CarWalkCollis1(Scenario): - def init_scene(self): - world = self.world - blueprint_library = world.get_blueprint_library() +class CarWalkerCollision(Scenario): + def init_scene(self, prefix, settings = None, spectator_tr = None): + super().init_scene(prefix, settings, spectator_tr) + + blueprint_library = self.world.get_blueprint_library() car_tr = carla.Transform(carla.Location(50, -255, 0.04), carla.Rotation(yaw=0)) - car = world.spawn_actor(blueprint_library.filter("*lincoln*")[0], car_tr) - wait(world, 1) + car = self.world.spawn_actor(blueprint_library.filter("*lincoln*")[0], car_tr) - walker_tr = carla.Transform(carla.Location(85, -248, 1.00), carla.Rotation(yaw=-90)) walker_tr = carla.Transform(carla.Location(85, -255, 1.00), carla.Rotation(yaw=-90)) - walker_bp = blueprint_library.filter("walker.pedestrian.0007")[0] if walker_bp.has_attribute('is_invincible'): walker_bp.set_attribute('is_invincible', 'false') + walker = self.world.spawn_actor(walker_bp, walker_tr) - walker = world.spawn_actor(walker_bp, walker_tr) - wait(world, 1) + self.wait(1) car.set_target_velocity(carla.Vector3D(+20, 0, 0)) - - walker_control = walker.get_control() - walker_control.direction = carla.Vector3D(0, -1, 0) - walker_control.speed = 5 - #walker.apply_control(walker_control) walker.set_simulate_physics(True) + self.add_actor(car, "Car") + self.add_actor(walker, "Walker") - self.vehicle_list = [] - self.vehicle_list.append(car) - self.vehicle_list.append(walker) - - wait(world, 1) - - super().init_scene() + self.wait(1) -class TestScenario(): - def __init__(self, scene): + +class TestCollisionScenario(): + def __init__(self, scene, output_path): self.scene = scene self.world = self.scene.world self.client = self.scene.client self.scenario_name = self.scene.__class__.__name__ + self.output_path = output_path def compare_files(self, file_i, file_j): check_ij = filecmp.cmp(file_i, file_j) @@ -317,9 +342,10 @@ class TestScenario(): mat_check[i][i] = 1 for j in range(0, i): sim_check = True - for veh_idx in range(0, len(self.scene.vehicle_list)): - file_i = self.scene.get_filename(rep_prefixes[i], veh_idx) - file_j = self.scene.get_filename(rep_prefixes[j], veh_idx) + for actor in self.scene.actor_list: + actor_id = actor[0] + file_i = self.scene.get_filename_with_prefix(rep_prefixes[i], actor_id) + file_j = self.scene.get_filename_with_prefix(rep_prefixes[j], actor_id) check_ij = self.compare_files(file_i, file_j) sim_check = sim_check and check_ij @@ -343,64 +369,63 @@ class TestScenario(): return determinism_set def save_simulations(self, rep_prefixes, prefix, max_idx, min_idx): - for i in range(0, len(self.scene.vehicle_list)): - file_repetition = self.scene.get_filename(rep_prefixes[max_idx], i) - file_reference = self.scene.get_filename(prefix + "reference", i) + for actor in self.scene.actor_list: + actor_id = actor[0] + reference_id = "reference_" + actor_id + file_repetition = self.scene.get_filename_with_prefix(rep_prefixes[max_idx], actor_id) + file_reference = self.scene.get_filename_with_prefix(prefix, reference_id) shutil.copyfile(file_repetition, file_reference) if min_idx != max_idx: - for i in range(0, len(self.scene.vehicle_list)): - file_repetition = self.scene.get_filename(rep_prefixes[min_idx], i) - file_failed = self.scene.get_filename(prefix + "failed", i) + for actor in self.scene.actor_list: + actor_id = actor[0] + failed_id = "failed_" + actor_id + file_repetition = self.scene.get_filename_with_prefix(rep_prefixes[min_idx], actor_id) + file_failed = self.scene.get_filename_with_prefix(prefix, failed_id) shutil.copyfile(file_repetition, file_failed) for r_prefix in rep_prefixes: - for i in range(0, len(self.scene.vehicle_list)): - file_repetition = self.scene.get_filename(r_prefix, i) + for actor in self.scene.actor_list: + actor_id = actor[0] + file_repetition = self.scene.get_filename_with_prefix(r_prefix, actor_id) - os.remove(file_repetition) + #os.remove(file_repetition) - def test_determ_one_config(self, fps, fps_phys, repetitions = 1, sim_tics = 100): + def test_scenario(self, fps, fps_phys, repetitions = 1, sim_tics = 100): print("Testing Determinism in %s for %3d render FPS and %3d physics FPS -> " % \ (self.scenario_name, fps, fps_phys), end='') - settings = self.world.get_settings() - delta = 1.0/fps - settings.synchronous_mode = True - settings.fixed_delta_seconds = delta + # Creating run features: prefix, settings and spectator options + prefix = self.output_path + self.scenario_name + "_" + str(fps) + "_" + str(fps_phys) - settings.substepping = True - settings.max_substep_delta_time = 1.0/fps_phys - settings.max_substeps = 16 - self.world.apply_settings(settings) + config_settings = self.world.get_settings() + config_settings.synchronous_mode = True + config_settings.fixed_delta_seconds = 1.0/fps + config_settings.substepping = True + config_settings.max_substep_delta_time = 1.0/fps_phys + config_settings.max_substeps = 16 - path = os.path.dirname(os.path.realpath(__file__)) - path = os.path.join(path, "_out") + os.path.sep - if not os.path.exists(path): - os.mkdir(path) + spectator_tr = carla.Transform(carla.Location(120, -256, 10), carla.Rotation(yaw=180)) - prefix = path + self.scenario_name + "_" + str(fps) + "_" + str(fps_phys) + "_" - - t_start = time.perf_counter() + t_comp = 0 sim_prefixes = [] for i in range(0, repetitions): - prefix_rep = prefix + "rep" + str(i) - self.scene.run_simulation(prefix_rep, tics=sim_tics) + prefix_rep = prefix + "_rep" + str(i) + t_comp += self.scene.run_simulation(prefix_rep, config_settings, spectator_tr, tics=sim_tics) sim_prefixes.append(prefix_rep) - t_end = time.perf_counter() determ_repet = self.check_simulations(sim_prefixes, prefix) print("Deterministic Repetitions: %r / %2d" % (determ_repet, repetitions), end="") - print(" -> Comp. Time per frame: %.0f" % ((t_end-t_start)/repetitions*sim_tics)) + print(" -> Comp. Time per frame: %.0f" % (t_comp/repetitions*sim_tics)) def main(arg): """Main function of the script""" client = carla.Client(arg.host, arg.port) - client.set_timeout(2.0) + client.set_timeout(4.0) world = client.get_world() pre_settings = world.get_settings() world.apply_settings(pre_settings) @@ -411,63 +436,73 @@ def main(arg): spectator.set_transform(spectator_transform) try: + # Setting output temporal folder + output_path = os.path.dirname(os.path.realpath(__file__)) + output_path = os.path.join(output_path, "_collisions") + os.path.sep + if not os.path.exists(output_path): + os.mkdir(output_path) + repetitions = 10 - #test00 = TestScenario(SpawnCars01(client, world)) - #test00.test_determ_one_config(20, 20, repetitions) - #test00.test_determ_one_config(20, 40, repetitions) - #test00.test_determ_one_config(20, 60, repetitions) - #test00.test_determ_one_config(20, 80, repetitions) - #test00.test_determ_one_config(20, 100, repetitions) - - testW1 = TestScenario(CarWalkCollis1(client, world)) - testW1.test_determ_one_config(20, 20, repetitions) - testW1.test_determ_one_config(20, 40, repetitions) - testW1.test_determ_one_config(20, 60, repetitions) - testW1.test_determ_one_config(20, 80, repetitions) - testW1.test_determ_one_config(20, 100, repetitions) + #test00 = TestCollisionScenario(TwoSpawnedCars(client, world)) + #test00.test_scenario(20, 20, repetitions) + #test00.test_scenario(20, 40, repetitions) + #test00.test_scenario(20, 60, repetitions) + #test00.test_scenario(20, 80, repetitions) + #test00.test_scenario(20, 100, repetitions) print("--------------------------------------------------------------") - test01 = TestScenario(CarCollision01(client, world)) - test01.test_determ_one_config(20, 20, repetitions) - test01.test_determ_one_config(20, 40, repetitions) - test01.test_determ_one_config(20, 60, repetitions) - test01.test_determ_one_config(20, 80, repetitions) - test01.test_determ_one_config(20, 100, repetitions) + test01 = TestCollisionScenario(TwoCarsSlowSpeedCollision(client, world, True), output_path) + test01.test_scenario(20, 20, repetitions) + test01.test_scenario(20, 40, repetitions) + test01.test_scenario(20, 60, repetitions) + test01.test_scenario(20, 80, repetitions) + test01.test_scenario(20, 100, repetitions) print("--------------------------------------------------------------") - test02 = TestScenario(CarCollision02(client, world)) - test02.test_determ_one_config(20, 20, repetitions) - test02.test_determ_one_config(20, 40, repetitions) - test02.test_determ_one_config(20, 60, repetitions) - test02.test_determ_one_config(20, 80, repetitions) - test02.test_determ_one_config(20, 100, repetitions) + test02 = TestCollisionScenario(TwoCarsHighSpeedCollision(client, world, True), output_path) + test02.test_scenario(20, 20, repetitions) + test02.test_scenario(20, 40, repetitions) + test02.test_scenario(20, 60, repetitions) + test02.test_scenario(20, 80, repetitions) + test02.test_scenario(20, 100, repetitions) print("--------------------------------------------------------------") - testBike01 = TestScenario(CarBikeCollis1(client, world)) - testBike01.test_determ_one_config(20, 20, repetitions) - testBike01.test_determ_one_config(20, 40, repetitions) - testBike01.test_determ_one_config(20, 60, repetitions) - testBike01.test_determ_one_config(20, 80, repetitions) - testBike01.test_determ_one_config(20, 100, repetitions) + testBike01 = TestCollisionScenario(CarBikeCollision(client, world, True), output_path) + testBike01.test_scenario(20, 20, repetitions) + testBike01.test_scenario(20, 40, repetitions) + testBike01.test_scenario(20, 60, repetitions) + testBike01.test_scenario(20, 80, repetitions) + testBike01.test_scenario(20, 100, repetitions) print("--------------------------------------------------------------") - test03 = TestScenario(CarCollision03(client, world)) - test03.test_determ_one_config(20, 20, repetitions) - test03.test_determ_one_config(20, 40, repetitions) - test03.test_determ_one_config(20, 60, repetitions) - test03.test_determ_one_config(20, 80, repetitions) - test03.test_determ_one_config(20, 100, repetitions) + test05 = TestCollisionScenario(CarWalkerCollision(client, world, True), output_path) + test05.test_scenario(20, 20, repetitions) + test05.test_scenario(20, 40, repetitions) + test05.test_scenario(20, 60, repetitions) + test05.test_scenario(20, 80, repetitions) + test05.test_scenario(20, 100, repetitions) print("--------------------------------------------------------------") - test04 = TestScenario(CarCollision04(client, world)) - test04.test_determ_one_config(20, 20, repetitions) - test04.test_determ_one_config(20, 40, repetitions) - test04.test_determ_one_config(20, 60, repetitions) - test04.test_determ_one_config(20, 80, repetitions) - test04.test_determ_one_config(20, 100, repetitions) + test03 = TestCollisionScenario(ThreeCarsSlowSpeedCollision(client, world, True), output_path) + test03.test_scenario(20, 20, repetitions) + test03.test_scenario(20, 40, repetitions) + test03.test_scenario(20, 60, repetitions) + test03.test_scenario(20, 80, repetitions) + test03.test_scenario(20, 100, repetitions) print("--------------------------------------------------------------") + test04 = TestCollisionScenario(ThreeCarsHighSpeedCollision(client, world, True), output_path) + test04.test_scenario(20, 20, repetitions) + test04.test_scenario(20, 40, repetitions) + test04.test_scenario(20, 60, repetitions) + test04.test_scenario(20, 80, repetitions) + test04.test_scenario(20, 100, repetitions) + + print("--------------------------------------------------------------") + + # Remove all the output files + #shutil.rmtree(path) finally: