2016-04-27 08:00:58 -07:00
|
|
|
from gym.envs.registration import registry, register, make, spec
|
|
|
|
|
|
|
|
# Algorithmic
|
|
|
|
# ----------------------------------------
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='Copy-v0',
|
|
|
|
entry_point='gym.envs.algorithmic:CopyEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=200,
|
2016-04-27 08:00:58 -07:00
|
|
|
reward_threshold=25.0,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='RepeatCopy-v0',
|
|
|
|
entry_point='gym.envs.algorithmic:RepeatCopyEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=200,
|
2016-04-27 08:00:58 -07:00
|
|
|
reward_threshold=75.0,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='ReversedAddition-v0',
|
|
|
|
entry_point='gym.envs.algorithmic:ReversedAdditionEnv',
|
|
|
|
kwargs={'rows' : 2},
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=200,
|
2016-04-27 08:00:58 -07:00
|
|
|
reward_threshold=25.0,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='ReversedAddition3-v0',
|
|
|
|
entry_point='gym.envs.algorithmic:ReversedAdditionEnv',
|
|
|
|
kwargs={'rows' : 3},
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=200,
|
2016-04-27 08:00:58 -07:00
|
|
|
reward_threshold=25.0,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='DuplicatedInput-v0',
|
|
|
|
entry_point='gym.envs.algorithmic:DuplicatedInputEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=200,
|
2016-04-27 08:00:58 -07:00
|
|
|
reward_threshold=9.0,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='Reverse-v0',
|
|
|
|
entry_point='gym.envs.algorithmic:ReverseEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=200,
|
2016-04-27 08:00:58 -07:00
|
|
|
reward_threshold=25.0,
|
|
|
|
)
|
|
|
|
|
|
|
|
# Classic
|
|
|
|
# ----------------------------------------
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='CartPole-v0',
|
|
|
|
entry_point='gym.envs.classic_control:CartPoleEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=200,
|
2016-05-10 09:18:13 -07:00
|
|
|
reward_threshold=195.0,
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
2016-08-06 00:15:50 -07:00
|
|
|
register(
|
|
|
|
id='CartPole-v1',
|
|
|
|
entry_point='gym.envs.classic_control:CartPoleEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=500,
|
2016-08-06 00:15:50 -07:00
|
|
|
reward_threshold=475.0,
|
|
|
|
)
|
|
|
|
|
2016-04-27 08:00:58 -07:00
|
|
|
register(
|
|
|
|
id='MountainCar-v0',
|
|
|
|
entry_point='gym.envs.classic_control:MountainCarEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=200,
|
2016-05-10 09:18:13 -07:00
|
|
|
reward_threshold=-110.0,
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
2016-08-24 23:10:58 +02:00
|
|
|
register(
|
|
|
|
id='MountainCarContinuous-v0',
|
|
|
|
entry_point='gym.envs.classic_control:Continuous_MountainCarEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=999,
|
2016-08-24 23:10:58 +02:00
|
|
|
reward_threshold=90.0,
|
|
|
|
)
|
|
|
|
|
2016-04-27 08:00:58 -07:00
|
|
|
register(
|
|
|
|
id='Pendulum-v0',
|
|
|
|
entry_point='gym.envs.classic_control:PendulumEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=200,
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
2016-08-06 00:15:50 -07:00
|
|
|
id='Acrobot-v1',
|
2016-04-27 08:00:58 -07:00
|
|
|
entry_point='gym.envs.classic_control:AcrobotEnv',
|
2019-03-11 22:22:45 -03:00
|
|
|
reward_threshold=-100.0,
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=500,
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
2016-05-03 22:27:42 +03:00
|
|
|
# Box2d
|
|
|
|
# ----------------------------------------
|
|
|
|
|
|
|
|
register(
|
2016-05-25 23:19:15 +03:00
|
|
|
id='LunarLander-v2',
|
2016-05-03 22:27:42 +03:00
|
|
|
entry_point='gym.envs.box2d:LunarLander',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=1000,
|
2016-05-16 17:12:44 +03:00
|
|
|
reward_threshold=200,
|
2016-05-03 22:27:42 +03:00
|
|
|
)
|
|
|
|
|
2016-08-25 02:08:32 +03:00
|
|
|
register(
|
|
|
|
id='LunarLanderContinuous-v2',
|
|
|
|
entry_point='gym.envs.box2d:LunarLanderContinuous',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=1000,
|
2016-08-25 02:08:32 +03:00
|
|
|
reward_threshold=200,
|
|
|
|
)
|
|
|
|
|
2016-05-03 22:27:42 +03:00
|
|
|
register(
|
2020-01-31 13:02:05 +00:00
|
|
|
id='BipedalWalker-v3',
|
2016-05-03 22:27:42 +03:00
|
|
|
entry_point='gym.envs.box2d:BipedalWalker',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=1600,
|
2016-05-16 17:12:44 +03:00
|
|
|
reward_threshold=300,
|
2016-05-03 22:27:42 +03:00
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
2020-01-31 13:02:05 +00:00
|
|
|
id='BipedalWalkerHardcore-v3',
|
2016-05-03 22:27:42 +03:00
|
|
|
entry_point='gym.envs.box2d:BipedalWalkerHardcore',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=2000,
|
2016-05-16 17:12:44 +03:00
|
|
|
reward_threshold=300,
|
2016-05-03 22:27:42 +03:00
|
|
|
)
|
|
|
|
|
2016-05-26 21:39:57 +03:00
|
|
|
register(
|
|
|
|
id='CarRacing-v0',
|
|
|
|
entry_point='gym.envs.box2d:CarRacing',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=1000,
|
2016-05-26 21:39:57 +03:00
|
|
|
reward_threshold=900,
|
|
|
|
)
|
|
|
|
|
2016-04-27 08:00:58 -07:00
|
|
|
# Toy Text
|
|
|
|
# ----------------------------------------
|
|
|
|
|
2016-05-09 22:05:56 -07:00
|
|
|
register(
|
|
|
|
id='Blackjack-v0',
|
|
|
|
entry_point='gym.envs.toy_text:BlackjackEnv',
|
|
|
|
)
|
|
|
|
|
2017-03-11 15:17:35 -05:00
|
|
|
register(
|
|
|
|
id='KellyCoinflip-v0',
|
|
|
|
entry_point='gym.envs.toy_text:KellyCoinflipEnv',
|
|
|
|
reward_threshold=246.61,
|
|
|
|
)
|
2017-03-17 22:37:58 -04:00
|
|
|
register(
|
|
|
|
id='KellyCoinflipGeneralized-v0',
|
|
|
|
entry_point='gym.envs.toy_text:KellyCoinflipGeneralizedEnv',
|
|
|
|
)
|
2017-03-11 15:17:35 -05:00
|
|
|
|
2016-04-27 08:00:58 -07:00
|
|
|
register(
|
|
|
|
id='FrozenLake-v0',
|
|
|
|
entry_point='gym.envs.toy_text:FrozenLakeEnv',
|
|
|
|
kwargs={'map_name' : '4x4'},
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=100,
|
Revise the unattainable reward_threshold to an attainable value (#2205)
**Issues:** The current `reward_threhold` for `FrozenLake-v0` and `FrozenLake8x8-v0` is too high to be attained.
Commit: https://github.com/openai/gym/commit/df515de07d0a0767b1b3c8c79e0c1386e0c3f172 @joschu
**Solution:** Reduce the `reward_threhold` to make them attainable.
**Reference:** Codes to calculate the theoretic optimal reward expectations:
```python
import gym
env = gym.make('FrozenLake-v0')
print(env.observation_space.n) # 16
print(env.action_space.n) # 4
print(env.spec.reward_threshold) # 0.78, should be smaller
print(env.spec.max_episode_steps) # 100
import numpy as np
v = np.zeros((101, 16), dtype=float)
q = np.zeros((101, 16, 4), dtype=float)
pi = np.zeros((101, 16), dtype=float)
for t in range(99, -1, -1): # backward
for s in range(16):
for a in range(4):
for p, next_s, r, d in env.P[s][a]:
q[t, s, a] += p * (r + (1. - float(d)) * v[t+1, next_s])
v[t, s] = q[t, s].max()
pi[t, s] = q[t, s].argmax()
print(v[0, 0]) # ~0.74 < 0.78
```
```python
import gym
env = gym.make('FrozenLake8x8-v0')
print(env.observation_space.n) # 64
print(env.action_space.n) # 4
print(env.spec.reward_threshold) # 0.99, should be smaller
print(env.spec.max_episode_steps) # 200
import numpy as np
v = np.zeros((201, 64), dtype=float)
q = np.zeros((201, 64, 4), dtype=float)
pi = np.zeros((201, 64), dtype=float)
for t in range(199, -1, -1): # backward
for s in range(64):
for a in range(4):
for p, next_s, r, d in env.P[s][a]:
q[t, s, a] += p * (r + (1. - float(d)) * v[t+1, next_s])
v[t, s] = q[t, s].max()
pi[t, s] = q[t, s].argmax()
print(v[0, 0]) # ~0.91 < 0.99
```
2021-04-01 02:02:11 +08:00
|
|
|
reward_threshold=0.70, # optimum = 0.74
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='FrozenLake8x8-v0',
|
|
|
|
entry_point='gym.envs.toy_text:FrozenLakeEnv',
|
|
|
|
kwargs={'map_name' : '8x8'},
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=200,
|
Revise the unattainable reward_threshold to an attainable value (#2205)
**Issues:** The current `reward_threhold` for `FrozenLake-v0` and `FrozenLake8x8-v0` is too high to be attained.
Commit: https://github.com/openai/gym/commit/df515de07d0a0767b1b3c8c79e0c1386e0c3f172 @joschu
**Solution:** Reduce the `reward_threhold` to make them attainable.
**Reference:** Codes to calculate the theoretic optimal reward expectations:
```python
import gym
env = gym.make('FrozenLake-v0')
print(env.observation_space.n) # 16
print(env.action_space.n) # 4
print(env.spec.reward_threshold) # 0.78, should be smaller
print(env.spec.max_episode_steps) # 100
import numpy as np
v = np.zeros((101, 16), dtype=float)
q = np.zeros((101, 16, 4), dtype=float)
pi = np.zeros((101, 16), dtype=float)
for t in range(99, -1, -1): # backward
for s in range(16):
for a in range(4):
for p, next_s, r, d in env.P[s][a]:
q[t, s, a] += p * (r + (1. - float(d)) * v[t+1, next_s])
v[t, s] = q[t, s].max()
pi[t, s] = q[t, s].argmax()
print(v[0, 0]) # ~0.74 < 0.78
```
```python
import gym
env = gym.make('FrozenLake8x8-v0')
print(env.observation_space.n) # 64
print(env.action_space.n) # 4
print(env.spec.reward_threshold) # 0.99, should be smaller
print(env.spec.max_episode_steps) # 200
import numpy as np
v = np.zeros((201, 64), dtype=float)
q = np.zeros((201, 64, 4), dtype=float)
pi = np.zeros((201, 64), dtype=float)
for t in range(199, -1, -1): # backward
for s in range(64):
for a in range(4):
for p, next_s, r, d in env.P[s][a]:
q[t, s, a] += p * (r + (1. - float(d)) * v[t+1, next_s])
v[t, s] = q[t, s].max()
pi[t, s] = q[t, s].argmax()
print(v[0, 0]) # ~0.91 < 0.99
```
2021-04-01 02:02:11 +08:00
|
|
|
reward_threshold=0.85, # optimum = 0.91
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
2017-05-15 14:18:08 +04:00
|
|
|
register(
|
|
|
|
id='CliffWalking-v0',
|
|
|
|
entry_point='gym.envs.toy_text:CliffWalkingEnv',
|
|
|
|
)
|
|
|
|
|
2016-05-09 22:04:34 -07:00
|
|
|
register(
|
|
|
|
id='NChain-v0',
|
|
|
|
entry_point='gym.envs.toy_text:NChainEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=1000,
|
2016-05-09 22:04:34 -07:00
|
|
|
)
|
|
|
|
|
2016-04-27 08:00:58 -07:00
|
|
|
register(
|
|
|
|
id='Roulette-v0',
|
|
|
|
entry_point='gym.envs.toy_text:RouletteEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=100,
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
2019-08-23 15:55:35 -07:00
|
|
|
id='Taxi-v3',
|
2019-02-08 17:50:38 -07:00
|
|
|
entry_point='gym.envs.toy_text:TaxiEnv',
|
2017-01-10 00:10:31 +05:00
|
|
|
reward_threshold=8, # optimum = 8.46
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=200,
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
2016-06-29 18:58:25 +10:00
|
|
|
register(
|
|
|
|
id='GuessingGame-v0',
|
2019-02-08 17:50:38 -07:00
|
|
|
entry_point='gym.envs.toy_text:GuessingGame',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=200,
|
2016-06-29 18:58:25 +10:00
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='HotterColder-v0',
|
2019-02-08 17:50:38 -07:00
|
|
|
entry_point='gym.envs.toy_text:HotterColder',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=200,
|
2016-06-29 18:58:25 +10:00
|
|
|
)
|
|
|
|
|
2016-04-27 08:00:58 -07:00
|
|
|
# Mujoco
|
|
|
|
# ----------------------------------------
|
|
|
|
|
|
|
|
# 2D
|
|
|
|
|
|
|
|
register(
|
2018-01-24 15:42:29 -08:00
|
|
|
id='Reacher-v2',
|
2016-04-27 08:00:58 -07:00
|
|
|
entry_point='gym.envs.mujoco:ReacherEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=50,
|
2016-05-30 19:20:36 -07:00
|
|
|
reward_threshold=-3.75,
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
2017-04-22 20:57:36 -07:00
|
|
|
register(
|
2018-01-24 15:42:29 -08:00
|
|
|
id='Pusher-v2',
|
2017-04-22 20:57:36 -07:00
|
|
|
entry_point='gym.envs.mujoco:PusherEnv',
|
|
|
|
max_episode_steps=100,
|
|
|
|
reward_threshold=0.0,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
2018-01-24 15:42:29 -08:00
|
|
|
id='Thrower-v2',
|
2017-04-22 20:57:36 -07:00
|
|
|
entry_point='gym.envs.mujoco:ThrowerEnv',
|
|
|
|
max_episode_steps=100,
|
|
|
|
reward_threshold=0.0,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
2018-01-24 15:42:29 -08:00
|
|
|
id='Striker-v2',
|
2017-04-22 20:57:36 -07:00
|
|
|
entry_point='gym.envs.mujoco:StrikerEnv',
|
|
|
|
max_episode_steps=100,
|
|
|
|
reward_threshold=0.0,
|
|
|
|
)
|
|
|
|
|
2016-04-27 08:00:58 -07:00
|
|
|
register(
|
2018-01-24 15:42:29 -08:00
|
|
|
id='InvertedPendulum-v2',
|
2016-04-27 08:00:58 -07:00
|
|
|
entry_point='gym.envs.mujoco:InvertedPendulumEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=1000,
|
2016-05-30 19:20:36 -07:00
|
|
|
reward_threshold=950.0,
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
2018-01-24 15:42:29 -08:00
|
|
|
id='InvertedDoublePendulum-v2',
|
2016-04-27 08:00:58 -07:00
|
|
|
entry_point='gym.envs.mujoco:InvertedDoublePendulumEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=1000,
|
2016-05-30 19:20:36 -07:00
|
|
|
reward_threshold=9100.0,
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
2018-01-24 15:42:29 -08:00
|
|
|
id='HalfCheetah-v2',
|
2016-04-27 08:00:58 -07:00
|
|
|
entry_point='gym.envs.mujoco:HalfCheetahEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=1000,
|
2016-05-10 09:18:13 -07:00
|
|
|
reward_threshold=4800.0,
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
2019-02-25 15:12:06 -08:00
|
|
|
register(
|
|
|
|
id='HalfCheetah-v3',
|
|
|
|
entry_point='gym.envs.mujoco.half_cheetah_v3:HalfCheetahEnv',
|
|
|
|
max_episode_steps=1000,
|
|
|
|
reward_threshold=4800.0,
|
|
|
|
)
|
|
|
|
|
2016-04-27 08:00:58 -07:00
|
|
|
register(
|
2018-01-24 15:42:29 -08:00
|
|
|
id='Hopper-v2',
|
2016-04-27 08:00:58 -07:00
|
|
|
entry_point='gym.envs.mujoco:HopperEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=1000,
|
2016-05-10 09:18:13 -07:00
|
|
|
reward_threshold=3800.0,
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
2019-02-25 15:12:06 -08:00
|
|
|
register(
|
|
|
|
id='Hopper-v3',
|
|
|
|
entry_point='gym.envs.mujoco.hopper_v3:HopperEnv',
|
|
|
|
max_episode_steps=1000,
|
|
|
|
reward_threshold=3800.0,
|
|
|
|
)
|
|
|
|
|
2016-04-27 08:00:58 -07:00
|
|
|
register(
|
2018-01-24 15:42:29 -08:00
|
|
|
id='Swimmer-v2',
|
2016-04-27 08:00:58 -07:00
|
|
|
entry_point='gym.envs.mujoco:SwimmerEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=1000,
|
2016-05-10 09:18:13 -07:00
|
|
|
reward_threshold=360.0,
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
2019-02-25 15:12:06 -08:00
|
|
|
register(
|
|
|
|
id='Swimmer-v3',
|
|
|
|
entry_point='gym.envs.mujoco.swimmer_v3:SwimmerEnv',
|
|
|
|
max_episode_steps=1000,
|
|
|
|
reward_threshold=360.0,
|
|
|
|
)
|
|
|
|
|
2016-04-27 08:00:58 -07:00
|
|
|
register(
|
2018-01-24 15:42:29 -08:00
|
|
|
id='Walker2d-v2',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=1000,
|
2016-04-27 08:00:58 -07:00
|
|
|
entry_point='gym.envs.mujoco:Walker2dEnv',
|
|
|
|
)
|
|
|
|
|
2019-02-25 15:12:06 -08:00
|
|
|
register(
|
|
|
|
id='Walker2d-v3',
|
|
|
|
max_episode_steps=1000,
|
|
|
|
entry_point='gym.envs.mujoco.walker2d_v3:Walker2dEnv',
|
|
|
|
)
|
|
|
|
|
2016-04-27 08:00:58 -07:00
|
|
|
register(
|
2018-01-24 15:42:29 -08:00
|
|
|
id='Ant-v2',
|
2016-04-27 08:00:58 -07:00
|
|
|
entry_point='gym.envs.mujoco:AntEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=1000,
|
2016-05-10 09:18:13 -07:00
|
|
|
reward_threshold=6000.0,
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
2019-02-25 15:12:06 -08:00
|
|
|
register(
|
|
|
|
id='Ant-v3',
|
|
|
|
entry_point='gym.envs.mujoco.ant_v3:AntEnv',
|
|
|
|
max_episode_steps=1000,
|
|
|
|
reward_threshold=6000.0,
|
|
|
|
)
|
|
|
|
|
2016-04-27 08:00:58 -07:00
|
|
|
register(
|
2018-01-24 15:42:29 -08:00
|
|
|
id='Humanoid-v2',
|
2016-04-27 08:00:58 -07:00
|
|
|
entry_point='gym.envs.mujoco:HumanoidEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=1000,
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
2017-01-03 19:37:29 -08:00
|
|
|
|
2019-02-25 15:12:06 -08:00
|
|
|
register(
|
|
|
|
id='Humanoid-v3',
|
|
|
|
entry_point='gym.envs.mujoco.humanoid_v3:HumanoidEnv',
|
|
|
|
max_episode_steps=1000,
|
|
|
|
)
|
|
|
|
|
2016-05-23 15:01:25 +08:00
|
|
|
register(
|
2018-01-24 15:42:29 -08:00
|
|
|
id='HumanoidStandup-v2',
|
2016-05-23 15:01:25 +08:00
|
|
|
entry_point='gym.envs.mujoco:HumanoidStandupEnv',
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=1000,
|
2016-05-23 15:01:25 +08:00
|
|
|
)
|
2016-04-27 08:00:58 -07:00
|
|
|
|
2018-02-26 17:35:07 +01:00
|
|
|
# Robotics
|
|
|
|
# ----------------------------------------
|
|
|
|
|
|
|
|
def _merge(a, b):
|
|
|
|
a.update(b)
|
|
|
|
return a
|
|
|
|
|
|
|
|
for reward_type in ['sparse', 'dense']:
|
|
|
|
suffix = 'Dense' if reward_type == 'dense' else ''
|
|
|
|
kwargs = {
|
|
|
|
'reward_type': reward_type,
|
|
|
|
}
|
|
|
|
|
|
|
|
# Fetch
|
|
|
|
register(
|
2018-04-05 16:55:52 +02:00
|
|
|
id='FetchSlide{}-v1'.format(suffix),
|
2018-02-26 17:35:07 +01:00
|
|
|
entry_point='gym.envs.robotics:FetchSlideEnv',
|
|
|
|
kwargs=kwargs,
|
|
|
|
max_episode_steps=50,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
2018-04-05 16:55:52 +02:00
|
|
|
id='FetchPickAndPlace{}-v1'.format(suffix),
|
2018-02-26 17:35:07 +01:00
|
|
|
entry_point='gym.envs.robotics:FetchPickAndPlaceEnv',
|
|
|
|
kwargs=kwargs,
|
|
|
|
max_episode_steps=50,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
2018-04-05 16:55:52 +02:00
|
|
|
id='FetchReach{}-v1'.format(suffix),
|
2018-02-26 17:35:07 +01:00
|
|
|
entry_point='gym.envs.robotics:FetchReachEnv',
|
|
|
|
kwargs=kwargs,
|
|
|
|
max_episode_steps=50,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
2018-04-05 16:55:52 +02:00
|
|
|
id='FetchPush{}-v1'.format(suffix),
|
2018-02-26 17:35:07 +01:00
|
|
|
entry_point='gym.envs.robotics:FetchPushEnv',
|
|
|
|
kwargs=kwargs,
|
|
|
|
max_episode_steps=50,
|
|
|
|
)
|
|
|
|
|
|
|
|
# Hand
|
|
|
|
register(
|
|
|
|
id='HandReach{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandReachEnv',
|
|
|
|
kwargs=kwargs,
|
|
|
|
max_episode_steps=50,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='HandManipulateBlockRotateZ{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandBlockEnv',
|
|
|
|
kwargs=_merge({'target_position': 'ignore', 'target_rotation': 'z'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2019-04-03 03:00:20 +02:00
|
|
|
register(
|
|
|
|
id='HandManipulateBlockRotateZTouchSensors{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandBlockTouchSensorsEnv',
|
|
|
|
kwargs=_merge({'target_position': 'ignore', 'target_rotation': 'z', 'touch_get_obs': 'boolean'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='HandManipulateBlockRotateZTouchSensors{}-v1'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandBlockTouchSensorsEnv',
|
|
|
|
kwargs=_merge({'target_position': 'ignore', 'target_rotation': 'z', 'touch_get_obs': 'sensordata'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2018-02-26 17:35:07 +01:00
|
|
|
register(
|
|
|
|
id='HandManipulateBlockRotateParallel{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandBlockEnv',
|
|
|
|
kwargs=_merge({'target_position': 'ignore', 'target_rotation': 'parallel'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2019-04-03 03:00:20 +02:00
|
|
|
register(
|
|
|
|
id='HandManipulateBlockRotateParallelTouchSensors{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandBlockTouchSensorsEnv',
|
|
|
|
kwargs=_merge({'target_position': 'ignore', 'target_rotation': 'parallel', 'touch_get_obs': 'boolean'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='HandManipulateBlockRotateParallelTouchSensors{}-v1'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandBlockTouchSensorsEnv',
|
|
|
|
kwargs=_merge({'target_position': 'ignore', 'target_rotation': 'parallel', 'touch_get_obs': 'sensordata'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2018-02-26 17:35:07 +01:00
|
|
|
register(
|
|
|
|
id='HandManipulateBlockRotateXYZ{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandBlockEnv',
|
|
|
|
kwargs=_merge({'target_position': 'ignore', 'target_rotation': 'xyz'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2019-04-03 03:00:20 +02:00
|
|
|
register(
|
|
|
|
id='HandManipulateBlockRotateXYZTouchSensors{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandBlockTouchSensorsEnv',
|
|
|
|
kwargs=_merge({'target_position': 'ignore', 'target_rotation': 'xyz', 'touch_get_obs': 'boolean'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='HandManipulateBlockRotateXYZTouchSensors{}-v1'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandBlockTouchSensorsEnv',
|
|
|
|
kwargs=_merge({'target_position': 'ignore', 'target_rotation': 'xyz', 'touch_get_obs': 'sensordata'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2018-02-26 17:35:07 +01:00
|
|
|
register(
|
|
|
|
id='HandManipulateBlockFull{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandBlockEnv',
|
|
|
|
kwargs=_merge({'target_position': 'random', 'target_rotation': 'xyz'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
|
|
|
# Alias for "Full"
|
|
|
|
register(
|
|
|
|
id='HandManipulateBlock{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandBlockEnv',
|
|
|
|
kwargs=_merge({'target_position': 'random', 'target_rotation': 'xyz'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2019-02-09 01:00:19 +01:00
|
|
|
register(
|
|
|
|
id='HandManipulateBlockTouchSensors{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandBlockTouchSensorsEnv',
|
2019-04-03 03:00:20 +02:00
|
|
|
kwargs=_merge({'target_position': 'random', 'target_rotation': 'xyz', 'touch_get_obs': 'boolean'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='HandManipulateBlockTouchSensors{}-v1'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandBlockTouchSensorsEnv',
|
|
|
|
kwargs=_merge({'target_position': 'random', 'target_rotation': 'xyz', 'touch_get_obs': 'sensordata'}, kwargs),
|
2019-02-09 01:00:19 +01:00
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2018-02-26 17:35:07 +01:00
|
|
|
register(
|
|
|
|
id='HandManipulateEggRotate{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandEggEnv',
|
|
|
|
kwargs=_merge({'target_position': 'ignore', 'target_rotation': 'xyz'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2019-04-03 03:00:20 +02:00
|
|
|
register(
|
|
|
|
id='HandManipulateEggRotateTouchSensors{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandEggTouchSensorsEnv',
|
|
|
|
kwargs=_merge({'target_position': 'ignore', 'target_rotation': 'xyz', 'touch_get_obs': 'boolean'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='HandManipulateEggRotateTouchSensors{}-v1'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandEggTouchSensorsEnv',
|
|
|
|
kwargs=_merge({'target_position': 'ignore', 'target_rotation': 'xyz', 'touch_get_obs': 'sensordata'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2018-02-26 17:35:07 +01:00
|
|
|
register(
|
|
|
|
id='HandManipulateEggFull{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandEggEnv',
|
|
|
|
kwargs=_merge({'target_position': 'random', 'target_rotation': 'xyz'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
|
|
|
# Alias for "Full"
|
|
|
|
register(
|
|
|
|
id='HandManipulateEgg{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandEggEnv',
|
|
|
|
kwargs=_merge({'target_position': 'random', 'target_rotation': 'xyz'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2019-02-09 01:00:19 +01:00
|
|
|
register(
|
|
|
|
id='HandManipulateEggTouchSensors{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandEggTouchSensorsEnv',
|
2019-04-03 03:00:20 +02:00
|
|
|
kwargs=_merge({'target_position': 'random', 'target_rotation': 'xyz', 'touch_get_obs': 'boolean'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='HandManipulateEggTouchSensors{}-v1'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandEggTouchSensorsEnv',
|
|
|
|
kwargs=_merge({'target_position': 'random', 'target_rotation': 'xyz', 'touch_get_obs': 'sensordata'}, kwargs),
|
2019-02-09 01:00:19 +01:00
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2018-02-26 17:35:07 +01:00
|
|
|
register(
|
|
|
|
id='HandManipulatePenRotate{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandPenEnv',
|
|
|
|
kwargs=_merge({'target_position': 'ignore', 'target_rotation': 'xyz'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2019-04-03 03:00:20 +02:00
|
|
|
register(
|
|
|
|
id='HandManipulatePenRotateTouchSensors{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandPenTouchSensorsEnv',
|
|
|
|
kwargs=_merge({'target_position': 'ignore', 'target_rotation': 'xyz', 'touch_get_obs': 'boolean'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='HandManipulatePenRotateTouchSensors{}-v1'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandPenTouchSensorsEnv',
|
|
|
|
kwargs=_merge({'target_position': 'ignore', 'target_rotation': 'xyz', 'touch_get_obs': 'sensordata'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2018-02-26 17:35:07 +01:00
|
|
|
register(
|
|
|
|
id='HandManipulatePenFull{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandPenEnv',
|
|
|
|
kwargs=_merge({'target_position': 'random', 'target_rotation': 'xyz'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
|
|
|
# Alias for "Full"
|
|
|
|
register(
|
|
|
|
id='HandManipulatePen{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandPenEnv',
|
|
|
|
kwargs=_merge({'target_position': 'random', 'target_rotation': 'xyz'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2019-02-09 01:00:19 +01:00
|
|
|
register(
|
|
|
|
id='HandManipulatePenTouchSensors{}-v0'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandPenTouchSensorsEnv',
|
2019-04-03 03:00:20 +02:00
|
|
|
kwargs=_merge({'target_position': 'random', 'target_rotation': 'xyz', 'touch_get_obs': 'boolean'}, kwargs),
|
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
|
|
|
register(
|
|
|
|
id='HandManipulatePenTouchSensors{}-v1'.format(suffix),
|
|
|
|
entry_point='gym.envs.robotics:HandPenTouchSensorsEnv',
|
|
|
|
kwargs=_merge({'target_position': 'random', 'target_rotation': 'xyz', 'touch_get_obs': 'sensordata'}, kwargs),
|
2019-02-09 01:00:19 +01:00
|
|
|
max_episode_steps=100,
|
|
|
|
)
|
|
|
|
|
2016-04-27 08:00:58 -07:00
|
|
|
# Atari
|
|
|
|
# ----------------------------------------
|
|
|
|
|
|
|
|
# # print ', '.join(["'{}'".format(name.split('.')[0]) for name in atari_py.list_games()])
|
2019-03-08 00:30:24 +01:00
|
|
|
for game in ['adventure', 'air_raid', 'alien', 'amidar', 'assault', 'asterix', 'asteroids', 'atlantis',
|
2016-04-27 08:00:58 -07:00
|
|
|
'bank_heist', 'battle_zone', 'beam_rider', 'berzerk', 'bowling', 'boxing', 'breakout', 'carnival',
|
2019-02-15 15:38:40 -08:00
|
|
|
'centipede', 'chopper_command', 'crazy_climber', 'defender', 'demon_attack', 'double_dunk',
|
2016-04-27 08:00:58 -07:00
|
|
|
'elevator_action', 'enduro', 'fishing_derby', 'freeway', 'frostbite', 'gopher', 'gravitar',
|
2017-03-19 16:14:04 -07:00
|
|
|
'hero', 'ice_hockey', 'jamesbond', 'journey_escape', 'kangaroo', 'krull', 'kung_fu_master',
|
2016-04-27 08:00:58 -07:00
|
|
|
'montezuma_revenge', 'ms_pacman', 'name_this_game', 'phoenix', 'pitfall', 'pong', 'pooyan',
|
|
|
|
'private_eye', 'qbert', 'riverraid', 'road_runner', 'robotank', 'seaquest', 'skiing',
|
|
|
|
'solaris', 'space_invaders', 'star_gunner', 'tennis', 'time_pilot', 'tutankham', 'up_n_down',
|
|
|
|
'venture', 'video_pinball', 'wizard_of_wor', 'yars_revenge', 'zaxxon']:
|
|
|
|
for obs_type in ['image', 'ram']:
|
|
|
|
# space_invaders should yield SpaceInvaders-v0 and SpaceInvaders-ram-v0
|
|
|
|
name = ''.join([g.capitalize() for g in game.split('_')])
|
|
|
|
if obs_type == 'ram':
|
|
|
|
name = '{}-ram'.format(name)
|
2016-05-29 09:07:09 -07:00
|
|
|
|
|
|
|
nondeterministic = False
|
|
|
|
if game == 'elevator_action' and obs_type == 'ram':
|
|
|
|
# ElevatorAction-ram-v0 seems to yield slightly
|
|
|
|
# non-deterministic observations about 10% of the time. We
|
|
|
|
# should track this down eventually, but for now we just
|
2016-05-29 09:11:49 -07:00
|
|
|
# mark it as nondeterministic.
|
2016-05-29 09:07:09 -07:00
|
|
|
nondeterministic = True
|
|
|
|
|
2016-04-27 08:00:58 -07:00
|
|
|
register(
|
|
|
|
id='{}-v0'.format(name),
|
|
|
|
entry_point='gym.envs.atari:AtariEnv',
|
2016-09-21 00:36:56 -07:00
|
|
|
kwargs={'game': game, 'obs_type': obs_type, 'repeat_action_probability': 0.25},
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=10000,
|
2016-05-29 09:07:09 -07:00
|
|
|
nondeterministic=nondeterministic,
|
2016-04-27 08:00:58 -07:00
|
|
|
)
|
|
|
|
|
2016-09-05 23:39:32 -07:00
|
|
|
register(
|
2017-05-05 15:50:22 -04:00
|
|
|
id='{}-v4'.format(name),
|
2016-09-05 23:39:32 -07:00
|
|
|
entry_point='gym.envs.atari:AtariEnv',
|
|
|
|
kwargs={'game': game, 'obs_type': obs_type},
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=100000,
|
2016-09-05 23:39:32 -07:00
|
|
|
nondeterministic=nondeterministic,
|
|
|
|
)
|
|
|
|
|
2016-09-02 17:26:33 -07:00
|
|
|
# Standard Deterministic (as in the original DeepMind paper)
|
2016-08-25 08:58:09 -07:00
|
|
|
if game == 'space_invaders':
|
|
|
|
frameskip = 3
|
|
|
|
else:
|
|
|
|
frameskip = 4
|
|
|
|
|
2016-09-24 15:55:56 -07:00
|
|
|
# Use a deterministic frame skip.
|
|
|
|
register(
|
|
|
|
id='{}Deterministic-v0'.format(name),
|
|
|
|
entry_point='gym.envs.atari:AtariEnv',
|
|
|
|
kwargs={'game': game, 'obs_type': obs_type, 'frameskip': frameskip, 'repeat_action_probability': 0.25},
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=100000,
|
2016-09-24 15:55:56 -07:00
|
|
|
nondeterministic=nondeterministic,
|
|
|
|
)
|
|
|
|
|
2016-08-25 08:58:09 -07:00
|
|
|
register(
|
2017-05-05 15:50:22 -04:00
|
|
|
id='{}Deterministic-v4'.format(name),
|
2016-09-05 23:39:32 -07:00
|
|
|
entry_point='gym.envs.atari:AtariEnv',
|
|
|
|
kwargs={'game': game, 'obs_type': obs_type, 'frameskip': frameskip},
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=100000,
|
2016-09-05 23:39:32 -07:00
|
|
|
nondeterministic=nondeterministic,
|
|
|
|
)
|
|
|
|
|
2016-09-24 15:55:56 -07:00
|
|
|
register(
|
|
|
|
id='{}NoFrameskip-v0'.format(name),
|
|
|
|
entry_point='gym.envs.atari:AtariEnv',
|
|
|
|
kwargs={'game': game, 'obs_type': obs_type, 'frameskip': 1, 'repeat_action_probability': 0.25}, # A frameskip of 1 means we get every frame
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=frameskip * 100000,
|
2016-09-24 15:55:56 -07:00
|
|
|
nondeterministic=nondeterministic,
|
|
|
|
)
|
|
|
|
|
2016-09-05 23:39:32 -07:00
|
|
|
# No frameskip. (Atari has no entropy source, so these are
|
|
|
|
# deterministic environments.)
|
2016-09-02 17:26:33 -07:00
|
|
|
register(
|
2017-05-05 15:50:22 -04:00
|
|
|
id='{}NoFrameskip-v4'.format(name),
|
2016-09-05 23:39:32 -07:00
|
|
|
entry_point='gym.envs.atari:AtariEnv',
|
|
|
|
kwargs={'game': game, 'obs_type': obs_type, 'frameskip': 1}, # A frameskip of 1 means we get every frame
|
2017-02-01 13:10:59 -08:00
|
|
|
max_episode_steps=frameskip * 100000,
|
2016-09-02 17:26:33 -07:00
|
|
|
nondeterministic=nondeterministic,
|
|
|
|
)
|
|
|
|
|
2016-05-31 00:25:50 -07:00
|
|
|
|
Cleanup, removal of unmaintained code (#836)
* add dtype to Box
* remove board_game, debugging, safety, parameter_tuning environments
* massive set of breaking changes
- remove python logging module
- _step, _reset, _seed, _close => non underscored method
- remove benchmark and scoring folder
* Improve render("human"), now resizable, closable window.
* get rid of default step and reset in wrappers, so it doesn’t silently fail for people with underscore methods
* CubeCrash unit test environment
* followup fixes
* MemorizeDigits unit test envrionment
* refactored spaces a bit
fixed indentation
disabled test_env_semantics
* fix unit tests
* fixes
* CubeCrash, MemorizeDigits tested
* gym backwards compatibility patch
* gym backwards compatibility, followup fixes
* changelist, add spaces to main namespaces
* undo_logger_setup for backwards compat
* remove configuration.py
2018-01-25 18:20:14 -08:00
|
|
|
# Unit test
|
|
|
|
# ---------
|
2016-05-31 00:25:50 -07:00
|
|
|
|
|
|
|
register(
|
Cleanup, removal of unmaintained code (#836)
* add dtype to Box
* remove board_game, debugging, safety, parameter_tuning environments
* massive set of breaking changes
- remove python logging module
- _step, _reset, _seed, _close => non underscored method
- remove benchmark and scoring folder
* Improve render("human"), now resizable, closable window.
* get rid of default step and reset in wrappers, so it doesn’t silently fail for people with underscore methods
* CubeCrash unit test environment
* followup fixes
* MemorizeDigits unit test envrionment
* refactored spaces a bit
fixed indentation
disabled test_env_semantics
* fix unit tests
* fixes
* CubeCrash, MemorizeDigits tested
* gym backwards compatibility patch
* gym backwards compatibility, followup fixes
* changelist, add spaces to main namespaces
* undo_logger_setup for backwards compat
* remove configuration.py
2018-01-25 18:20:14 -08:00
|
|
|
id='CubeCrash-v0',
|
|
|
|
entry_point='gym.envs.unittest:CubeCrash',
|
|
|
|
reward_threshold=0.9,
|
|
|
|
)
|
2016-05-16 21:10:27 +02:00
|
|
|
register(
|
Cleanup, removal of unmaintained code (#836)
* add dtype to Box
* remove board_game, debugging, safety, parameter_tuning environments
* massive set of breaking changes
- remove python logging module
- _step, _reset, _seed, _close => non underscored method
- remove benchmark and scoring folder
* Improve render("human"), now resizable, closable window.
* get rid of default step and reset in wrappers, so it doesn’t silently fail for people with underscore methods
* CubeCrash unit test environment
* followup fixes
* MemorizeDigits unit test envrionment
* refactored spaces a bit
fixed indentation
disabled test_env_semantics
* fix unit tests
* fixes
* CubeCrash, MemorizeDigits tested
* gym backwards compatibility patch
* gym backwards compatibility, followup fixes
* changelist, add spaces to main namespaces
* undo_logger_setup for backwards compat
* remove configuration.py
2018-01-25 18:20:14 -08:00
|
|
|
id='CubeCrashSparse-v0',
|
|
|
|
entry_point='gym.envs.unittest:CubeCrashSparse',
|
|
|
|
reward_threshold=0.9,
|
|
|
|
)
|
2016-05-31 20:34:40 +02:00
|
|
|
register(
|
Cleanup, removal of unmaintained code (#836)
* add dtype to Box
* remove board_game, debugging, safety, parameter_tuning environments
* massive set of breaking changes
- remove python logging module
- _step, _reset, _seed, _close => non underscored method
- remove benchmark and scoring folder
* Improve render("human"), now resizable, closable window.
* get rid of default step and reset in wrappers, so it doesn’t silently fail for people with underscore methods
* CubeCrash unit test environment
* followup fixes
* MemorizeDigits unit test envrionment
* refactored spaces a bit
fixed indentation
disabled test_env_semantics
* fix unit tests
* fixes
* CubeCrash, MemorizeDigits tested
* gym backwards compatibility patch
* gym backwards compatibility, followup fixes
* changelist, add spaces to main namespaces
* undo_logger_setup for backwards compat
* remove configuration.py
2018-01-25 18:20:14 -08:00
|
|
|
id='CubeCrashScreenBecomesBlack-v0',
|
|
|
|
entry_point='gym.envs.unittest:CubeCrashScreenBecomesBlack',
|
|
|
|
reward_threshold=0.9,
|
|
|
|
)
|
2016-06-12 13:36:50 -07:00
|
|
|
|
|
|
|
register(
|
Cleanup, removal of unmaintained code (#836)
* add dtype to Box
* remove board_game, debugging, safety, parameter_tuning environments
* massive set of breaking changes
- remove python logging module
- _step, _reset, _seed, _close => non underscored method
- remove benchmark and scoring folder
* Improve render("human"), now resizable, closable window.
* get rid of default step and reset in wrappers, so it doesn’t silently fail for people with underscore methods
* CubeCrash unit test environment
* followup fixes
* MemorizeDigits unit test envrionment
* refactored spaces a bit
fixed indentation
disabled test_env_semantics
* fix unit tests
* fixes
* CubeCrash, MemorizeDigits tested
* gym backwards compatibility patch
* gym backwards compatibility, followup fixes
* changelist, add spaces to main namespaces
* undo_logger_setup for backwards compat
* remove configuration.py
2018-01-25 18:20:14 -08:00
|
|
|
id='MemorizeDigits-v0',
|
|
|
|
entry_point='gym.envs.unittest:MemorizeDigits',
|
|
|
|
reward_threshold=20,
|
|
|
|
)
|