Ubuntu安装Gym及其仿真

一、Gym的安装

1. 命令安装

pip install gym -y

2. 源码安装

git clone https://github.com/openai/gym
cd gym
pip install -e .

3. 示例安装验证
写一示例测试 gym_test.py文件内容如下:

import gym

# 创建环境并指定渲染模式
env = gym.make('CartPole-v1', render_mode='human')
env.reset()

# 运行1000步
for _ in range(1000):
    env.render()
    action = env.action_space.sample()
    obs, reward, terminated, truncated, info = env.step(action)
    
    # 如果环境终止,重置
    if terminated or truncated:
        env.reset()
env.close()

测试demo结果如下则安装成功。

# 可视化依赖
pip install pygame

python3 gym_test.py

在这里插入图片描述

测试 gym 能否成功运行 MuJoCo 环境

# version1: 纯gym_version >= '0.26.0'
import gym

env = gym.make("Ant-v4", render_mode="human")
observation, info = env.reset()  # reset() 现在返回 (observation, info)

for _ in range(1000):
    action = env.action_space.sample()
    observation, reward, terminated, truncated, info = env.step(action)  # 新版返回5个值
    
    if terminated or truncated:  # 检查是否终止或截断
        observation, info = env.reset()  # 重置环境

env.close()


# version2: 兼容性gym_version各版本
import gym
import warnings

# 获取当前 gym 版本
gym_version = gym.__version__
print(f"Using gym version: {gym_version}")

# 初始化环境
env = gym.make("Ant-v4", render_mode="human")

# 根据版本自适应处理 reset() 返回值
if gym_version >= '0.26.0':
    observation, info = env.reset()
else:
    observation = env.reset()
    info = {}  # 旧版没有 info

try:
    for _ in range(1000):
        action = env.action_space.sample()
        
        # 根据版本自适应处理 step() 返回值
        if gym_version >= '0.26.0':
            observation, reward, terminated, truncated, info = env.step(action)
            done = terminated or truncated
        else:
            observation, reward, done, info = env.step(action)
            truncated = False  # 旧版没有 truncated
        
        # 渲染环境
        if gym_version >= '0.26.0':
            env.render()  # 新版 render() 不需要参数
        else:
            env.render(mode='human')  # 旧版需要指定 mode
        
        # 检查是否结束
        if done:
            if gym_version >= '0.26.0':
                observation, info = env.reset()
            else:
                observation = env.reset()
                info = {}

except KeyboardInterrupt:
    print("Simulation interrupted by user")

finally:
    env.close()
    print("Environment closed")

测试结果如下则成功调用Mujoco环境。
在这里插入图片描述

二、Gym注册

当需要基于Gym基本框架搭建自定义环境时,如何将自己的环境移到gym中,被其所识别,这即是 Gym注册自定义环境 问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值