def _test_scenario(self, scenario_idx, num_steps, visualize, viewer): logging.info("Running scenario {} of {} in set {}".format(scenario_idx, self._scenario_generator.num_scenarios, self._set_name)) try: scenario = self._scenario_generator.get_scenario(scenario_idx) except Exception as e: logging.error("Deserialization failed with {}.".format(e)) return False try: world_state = scenario.GetWorldState() except Exception as e: logging.error("Get world state failed with {}.".format(e)) return False if visualize: if not viewer: viewer = MPViewer( params=ParameterServer(), x_range=[5060, 5160], y_range=[5070, 5150], use_world_bounds=True) sim_step_time = 0.2 sim_real_time_factor = 1 try: for _ in range(0, num_steps): # run a few steps for each scenario if visualize: info_text = "SetName: {} | ScenarioIdx: {}".format( self._set_name, scenario_idx) viewer.drawText(position=(0.5, 1.05), text=info_text) viewer.drawWorld( world_state, scenario._eval_agent_ids, scenario_idx=scenario_idx) viewer.show(block=False) time.sleep(sim_step_time/sim_real_time_factor) viewer.clear() world_state.Step(sim_step_time) return True except Exception as e: logging.error("Simulation failed with {}.".format(e)) return False
# set you json config that contains a map and matching tracks. param_server = ParameterServer(filename=os.path.join(os.path.join(os.path.dirname(__file__),"params/interaction_example.json"))) scenario_generation = InteractionDatasetScenarioGeneration(num_scenarios=1, random_seed=0, params=param_server) viewer = MPViewer(params=param_server, use_world_bounds=True) sim_step_time = param_server["simulation"]["step_time", "Step-time used in simulation", 0.2] sim_real_time_factor = param_server["simulation"]["real_time_factor", "execution in real-time or faster", 1] scenario = scenario_generation.create_scenarios(param_server, 1)[0] world_state = scenario.GetWorldState() sim_time_steps = param_server["simulation"]["simulation_time_steps", "Number of time steps to simulate", 50] video_renderer = VideoRenderer(renderer=viewer, world_step_time=sim_step_time) for _ in range(0, sim_time_steps): world_state.PlanAgents(sim_step_time) viewer.clear() video_renderer.drawWorld(world_state) world_state.DoExecution(sim_step_time) # video_renderer.export_video(filename="./interaction_dataset", remove_image_dir=True)