Exemple #1
0
    def test_uniform_vehicle_distribution_default_params(self):
        param_server = ParameterServer(
            filename=
            "modules/runtime/tests/data/deterministic_scenario_test.json")
        scenario_generation = DeterministicScenarioGeneration(
            num_scenarios=2, random_seed=0, params=param_server)
        scenario_generation.dump_scenario_list("test.scenario")
        self.assertEqual(len(scenario_generation._scenario_list), 2)
        self.assertEqual(
            len(scenario_generation._scenario_list[0]._agent_list), 2)

        # assert scenario generation
        agent0 = scenario_generation._scenario_list[0]._agent_list[0]
        np.testing.assert_array_equal(agent0.state,
                                      np.array([0., 0., 0., 0., 5.0]))
        self.assertEqual(agent0.id, 0)
        self.assertEqual(str(agent0.behavior_model),
                         "bark.behavior.BehaviorConstantVelocity")
        self.assertEqual(str(agent0.dynamic_model),
                         "bark.dynamic.SingleTrackModel")
        self.assertEqual(str(agent0.execution_model),
                         "bark.dynamic.ExecutionModelInterpolate")
        agent1 = scenario_generation._scenario_list[0]._agent_list[1]
        #np.testing.assert_array_equal(agent1.state, np.array([0., 10., 0., 0., 5.0]))
        self.assertEqual(agent1.id, 1)
        self.assertEqual(str(agent1.behavior_model),
                         "bark.behavior.BehaviorIDMClassic")

        # TODO(@hart): make sure the map is not reloaded for rl-performance
        for _ in range(0, 10):
            _ = scenario_generation.get_next_scenario()

        # loading serialized scenarios
        scenario_loader = ScenarioGeneration()
        scenario_loader.load_scenario_list("test.scenario")
        self.assertEqual(len(scenario_loader._scenario_list), 2)
        self.assertEqual(
            len(scenario_loader._scenario_list[0]._agent_list),
            len(scenario_generation._scenario_list[0]._agent_list))
        self.assertEqual(
            str(scenario_loader._scenario_list[0]._agent_list[0].behavior_model
                ), "bark.behavior.BehaviorConstantVelocity")
        #np.testing.assert_array_equal(scenario_loader._scenario_list[0]._agent_list[0].state,
        #  np.array([0., 0., 0., 0., 5.0]))

        self.assertEqual(
            str(scenario_loader._scenario_list[0]._agent_list[1].behavior_model
                ), "bark.behavior.BehaviorIDMClassic")
    def test_python_model_inheritance(self):
        param_server = ParameterServer(
            filename="modules/runtime/tests/data/deterministic_scenario.json")
        scenario_generation = DeterministicScenarioGeneration(
            num_scenarios=3, random_seed=0, params=param_server)
        viewer = MPViewer(params=param_server,
                          follow_agent_id=False,
                          use_world_bounds=True)
        scenario, idx = scenario_generation.get_next_scenario()
        world = scenario.get_world_state()
        behavior_model = PythonBehaviorModelWrapperInheritance(param_server)

        world.GetAgent(0).behavior_model = behavior_model
        world.GetAgent(0).behavior_model.SetLastAction(
            np.array([1., 1.], dtype=np.float32))
        world.Step(0.2)