参考:
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可视化界面,刚刚开始调试的时候不太方便。
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学习(2)自定义注册Gym环境
定义gym环境的文件为以下结构
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