Improve PyBullet ports of Roboschool envs: fix reset (it kept adding stadium objects, causing slowdown), now reset uses saveState/restoreState and reset becomes a few orders of magnitude faster.

Use python -m pybullet_envs.examples.testEnv --env AntBulletEnv-v0 --render=1 --steps 1000 --resetbenchmark=1

Added environments: HumanoidFlagrunBulletEnv-v0, HumanoidFlagrunHarderBulletEnv-v0, StrikerBulletEnv-v0, ThrowerBulletEnv-v0, PusherBulletEnv-v0, ReacherBulletEnv-v0, CartPoleBulletEnv-v0 and register them to OpenAI Gym.
Allow numpy/humanoid_running.py to use abtch or non-batch update (setJointMotorControl2/setJointMotorControlArray)
This commit is contained in:
erwincoumans
2018-01-15 12:48:32 -08:00
parent 9ffb05eb3b
commit 851ca5bfb3
22 changed files with 2173 additions and 102 deletions

View File

@@ -2,6 +2,13 @@ from gym.envs.registration import registry, register, make, spec
# ------------bullet-------------
register(
id='CartPoleBulletEnv-v0',
entry_point='pybullet_envs.bullet:CartPoleBulletEnv',
timestep_limit=1000,
reward_threshold=950.0,
)
register(
id='MinitaurBulletEnv-v0',
entry_point='pybullet_envs.bullet:MinitaurBulletEnv',
@@ -25,31 +32,31 @@ register(
)
register(
id='RacecarZedBulletEnv-v0',
entry_point='pybullet_envs.bullet:RacecarZEDGymEnv',
timestep_limit=1000,
reward_threshold=5.0,
id='RacecarZedBulletEnv-v0',
entry_point='pybullet_envs.bullet:RacecarZEDGymEnv',
timestep_limit=1000,
reward_threshold=5.0,
)
register(
id='SimpleHumanoidBulletEnv-v0',
entry_point='pybullet_envs.bullet:SimpleHumanoidGymEnv',
timestep_limit=1000,
reward_threshold=5.0,
id='SimpleHumanoidBulletEnv-v0',
entry_point='pybullet_envs.bullet:SimpleHumanoidGymEnv',
timestep_limit=1000,
reward_threshold=5.0,
)
register(
id='KukaBulletEnv-v0',
entry_point='pybullet_envs.bullet:KukaGymEnv',
timestep_limit=1000,
reward_threshold=5.0,
id='KukaBulletEnv-v0',
entry_point='pybullet_envs.bullet:KukaGymEnv',
timestep_limit=1000,
reward_threshold=5.0,
)
register(
id='KukaCamBulletEnv-v0',
entry_point='pybullet_envs.bullet:KukaCamGymEnv',
timestep_limit=1000,
reward_threshold=5.0,
id='KukaCamBulletEnv-v0',
entry_point='pybullet_envs.bullet:KukaCamGymEnv',
timestep_limit=1000,
reward_threshold=5.0,
)
register(
@@ -73,33 +80,33 @@ register(
reward_threshold=800.0,
)
# register(
# id='ReacherBulletEnv-v0',
# entry_point='pybullet_envs.gym_manipulator_envs:ReacherBulletEnv',
# max_episode_steps=150,
# reward_threshold=18.0,
# )
#
# register(
# id='PusherBulletEnv-v0',
# entry_point='pybullet_envs.gym_manipulator_envs:PusherBulletEnv',
# max_episode_steps=150,
# reward_threshold=18.0,
# )
#
# register(
# id='ThrowerBulletEnv-v0',
# entry_point='pybullet_envs.gym_manipulator_envs:ThrowerBulletEnv',
# max_episode_steps=100,
# reward_threshold=18.0,
# )
#
# register(
# id='StrikerBulletEnv-v0',
# entry_point='pybullet_envs.gym_manipulator_envs:StrikerBulletEnv',
# max_episode_steps=100,
# reward_threshold=18.0,
# )
register(
id='ReacherBulletEnv-v0',
entry_point='pybullet_envs.gym_manipulator_envs:ReacherBulletEnv',
max_episode_steps=150,
reward_threshold=18.0,
)
register(
id='PusherBulletEnv-v0',
entry_point='pybullet_envs.gym_manipulator_envs:PusherBulletEnv',
max_episode_steps=150,
reward_threshold=18.0,
)
register(
id='ThrowerBulletEnv-v0',
entry_point='pybullet_envs.gym_manipulator_envs:ThrowerBulletEnv',
max_episode_steps=100,
reward_threshold=18.0,
)
register(
id='StrikerBulletEnv-v0',
entry_point='pybullet_envs.gym_manipulator_envs:StrikerBulletEnv',
max_episode_steps=100,
reward_threshold=18.0,
)
register(
id='Walker2DBulletEnv-v0',
@@ -121,12 +128,6 @@ register(
reward_threshold=2500.0
)
register(
id='HumanoidBulletEnv-v0',
entry_point='pybullet_envs.gym_locomotion_envs:HumanoidBulletEnv',
max_episode_steps=1000
)
register(
id='HopperBulletEnv-v0',
entry_point='pybullet_envs.gym_locomotion_envs:HopperBulletEnv',
@@ -134,3 +135,31 @@ register(
reward_threshold=2500.0
)
register(
id='HumanoidBulletEnv-v0',
entry_point='pybullet_envs.gym_locomotion_envs:HumanoidBulletEnv',
max_episode_steps=1000
)
register(
id='HumanoidFlagrunBulletEnv-v0',
entry_point='pybullet_envs.gym_locomotion_envs:HumanoidFlagrunBulletEnv',
max_episode_steps=1000,
reward_threshold=2000.0
)
register(
id='HumanoidFlagrunHarderBulletEnv-v0',
entry_point='pybullet_envs.gym_locomotion_envs:HumanoidFlagrunHarderBulletEnv',
max_episode_steps=1000
)
#register(
# id='AtlasBulletEnv-v0',
# entry_point='pybullet_envs.gym_locomotion_envs:AtlasBulletEnv',
# max_episode_steps=1000
# )
def getList():
btenvs = ['- ' + spec.id for spec in gym.envs.registry.all() if spec.id.find('Bullet')>=0]
return btenvs