创建自定义gym环境,并用stablebaseline3

gym-gazebo安装

参考:
ubuntu18.04 gym-gazebo安装
Gym入门–从安装到第一个完整的代码示例
OpenAI Gym接口概要
安装gym库_强化学习Gym库学习实践(一)
强化学习快速上手:编写自定义通用gym环境类+主流开源强化学习框架调用

gym一共可以创建多少种环境

import gym
from gym import envs
env_list = envs.registry.all()
env_ids = [env_item.id for env_item in env_list]
print('There are {0} envs in gym'.format(len(env_ids)))
env_ids

深究代码

 env = gym.make('GazeboCircuitTurtlebotLidar-v0')

这里应该是用继承方法,抽象类与具体实现之间的关系,gym-gazebo中,具体的turtlebot环境:

env = gym.make('GazeboCircuit2TurtlebotLidar-v0')

其基类是gazebo_env.GazeboEnv

class GazeboCircuit2TurtlebotLidarEnv(gazebo_env.GazeboEnv):

GazeboEnv的基类是gym.Env,GazeboEnv中应该是统一包含了一些gazebo启动和关闭的内容,GazeboCircuit2TurtlebotLidarEnv类中是关于环境具体的设置(如step())

class GazeboEnv(gym.Env):

如果可以提前launch 对应gazebo环境,是不是就可以不用参考gym-gazebo来,而是直接gym,毕竟第一个安装教程的最后测试,不能同时打开gazebo程序和Gazebo可视化界面,刚刚开始调试的时候不太方便。

stable-baselines3 环境安装

1.anaconda创建python3.8环境,并激活环境

conda create -n sb python=3.8

2.安装pytorch,选择合适的cuda版本,安装速度的问题自己想办法
https://pytorch.org/

conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch

测试pytorch与gpu是否可用

>>> import torch
>>> print(torch.cuda.is_available())

3.安装stable-baselines3

pip install stable-baselines3

如何自己创建gym环境

Gym学习(2)自定义注册Gym环境
定义gym环境的文件为以下结构
创建自定义gym环境,并用stablebaseline3_第1张图片 git上找到了gym-turtlebot3环境,跳过了gym-gazebo,需要提前launch gazebo环境,env 通过消息订阅的形式与环境交互。作者重写了tf 用于坐标转换(euler_from_quaternion),因为ros1自带tf只能py2.7编译通过,详细参考原文
https://github.com/ITTcs/gym-turtlebot3
安装步骤为:

conda activate sb 
git clone https://github.com/ITTcs/gym-turtlebot3
cd gym-turtlebot3
pip install -e .

实现

注册环境,可以通过向gym的通用接口(环境类的入口)写入环境名创建。除了环境名和接口两个基本信息外,奖励阈值和最大步长则是与训练相关的参数,还可以自行添加其他参数。

register(
    id='Robot-v0',
    entry_point='gym_robot.envs:RobotEnv'
)

init.py是引入环境类的入口函数,写入:

from gym_robot.envs.mytf.transformations import euler_from_quaternion

你可能感兴趣的:(机器人导航,深度学习)