Ejemplo n.º 1
0
from gym_jsbsim.base_flight_task import BaseFlightTask
from gym_jsbsim.heading_control_task import HeadingControlTask, TurnHeadingChangeLevelControlTask
from gym_jsbsim.aircraft import Aircraft, cessna172P
from gym_jsbsim import utils
"""
This script registers all combinations of task, aircraft settings
 etc. with OpenAI Gym so that they can be instantiated with a gym.make(id)
 command.

The gym_jsbsim.Envs enum stores all registered environments as members with
 their gym id string as value. This allows convenient autocompletion and value
 safety. To use do:
       env = gym.make(gym_jsbsim.Envs.desired_environment.value)
"""

for env_id, (task, plane,
             enable_flightgear) in utils.get_env_id_kwargs_map().items():
    if enable_flightgear:
        entry_point = 'gym_jsbsim.environment:JsbSimEnv'
    else:
        entry_point = 'gym_jsbsim.environment:NoFGJsbSimEnv'
    kwargs = dict(task_type=task, aircraft=plane)
    gym.envs.registration.register(id=env_id,
                                   entry_point=entry_point,
                                   kwargs=kwargs)

# make an Enum storing every Gym-JSBSim environment ID for convenience and value safety
Envs = enum.Enum.__call__('Envs',
                          [(utils.AttributeFormatter.translate(env_id), env_id)
                           for env_id in utils.get_env_id_kwargs_map().keys()])
Ejemplo n.º 2
0
 def test_take_step_with_random_agent_all_envs(self):
     for env_id in utils.get_env_id_kwargs_map():
         env = gym.make(env_id)
         self.take_step_with_random_agent(env)
Ejemplo n.º 3
0
 def test_init_and_reset_all_envs(self):
     for env_id in utils.get_env_id_kwargs_map():
         env = gym.make(env_id)
         self.init_and_reset_env(env)
Ejemplo n.º 4
0
import gym.envs.registration
import enum
from gym_jsbsim import utils
"""
This script registers all combinations of task, and aircraft
 etc. with OpenAI Gym so that they can be instantiated with a gym.make(id)
 command.

The gym_jsbsim.Envs enum stores all registered environments as members with
 their gym id string as value. This allows convenient autocompletion and value
 safety. To use do:
       env = gym.make(gym_jsbsim.Envs.desired_environment.value)
"""

for env_id, (task, plane) in utils.get_env_id_kwargs_map().items():
    entry_point = 'gym_jsbsim.environment:JsbSimEnv'
    kwargs = dict(task_type=task, aircraft=plane)
    gym.envs.registration.register(id=env_id,
                                   entry_point=entry_point,
                                   kwargs=kwargs)

# make an Enum storing every Gym-JSBSim environment ID for convenience and value safety
Envs = enum.Enum.__call__('Envs',
                          [(utils.AttributeFormatter.translate(env_id), env_id)
                           for env_id in utils.get_env_id_kwargs_map().keys()])
Ejemplo n.º 5
0
 def test_gym_environments_makeable_by_gym_from_helper_function(self):
     for jsb_env_id in utils.get_env_id_kwargs_map():
         env = gym.make(jsb_env_id)
         self.assertIsInstance(env, JsbSimEnv)
Ejemplo n.º 6
0
    def test_expected_number_of_envs_from_helper_function(self):
        expected_envs = self.get_number_of_envs()
        num_envs = len(utils.get_env_id_kwargs_map())

        self.assertLessEqual(expected_envs, num_envs)