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
Beispiel #2
0

# 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)