OpenAI gym 自定义环境注册方法

OpenAI gym 自定义环境注册方法

  • 方法
    • 写好myenv.py
    • 放置
    • 注册

因为要自己搭一个机器人环境,要借鉴一下Fetch-PickAndPlace-v1的环境,在它的基础上改进,所以就用它来注册一个新的环境来改。

方法

写好myenv.py

这里我直接复制粘贴一下pick_and_place.py,然后把类的名字改成MyEnv.py即可。

放置

放置可以有三种方式:
将myenv.py放置到

  1. ~/anaconda3/envs/torch/lib/python3.6/site-packages/gym/envs/robotics中;
  2. 放到~/anaconda3/envs/torch/lib/python3.6/site-packages/gym/envs/robotics/fetch中;
  3. 自己在~/anaconda3/envs/torch/lib/python3.6/site-packages/gym/envs/robotics位置新建一个文件夹myenv,然后放到~/anaconda3/envs/torch/lib/python3.6/site-packages/gym/envs/robotics/myenv中。建立文件夹的目的是为了放一些xml和texture文件。

注册

注册分这样几步:

  1. 修改~/anaconda3/envs/torch/lib/python3.6/site-packages/gym/envs/robotics/下的__init__.py,根据上一步的放置方式,添加一行即可。我用的是文件夹的方式,故添加:
    from gym.envs.robotics.myenv.myenv import MyEnv
  2. 修改~/anaconda3/envs/torch/lib/python3.6/site-packages/gym/envs/下的__init__.py,添加一个register。由于我是完全在pick and place环境上面改的,我就在该文件的pick and place 的register下面照猫画虎添加了,即:
register(
    id='MyEnv{}-v0'.format(suffix),
    entry_point='gym.envs.robotics:MyEnv',
    kwargs=kwargs,
    max_episode_steps=50,
	)

然后就ok啦!

import gym

env = gym.make('MyEnv-v0')
env.reset()
for _ in range(1000):
    env.render()
    env.step(env.action_space.sample()) # take a random action

参考:
https://github.com/openai/gym/blob/master/docs/creating-environments.md

https://blog.csdn.net/qq_28753373/article/details/101060522

你可能感兴趣的:(OpenAI gym 自定义环境注册方法)