如何快速上手Miniworld5分钟搭建你的第一个3D强化学习环境【免费下载链接】MiniworldSimple and easily configurable 3D FPS-game-like environments for reinforcement learning项目地址: https://gitcode.com/gh_mirrors/mi/Miniworld想要快速入门Miniworld 3D强化学习环境吗这篇文章将为你提供一个完整的快速入门指南帮助你在5分钟内搭建第一个3D强化学习环境。MiniWorld是一个简单易配置的3D FPS游戏风格环境专为强化学习和机器人研究设计是VizDoom或DMLab的轻量级替代方案。 什么是MiniWorldMiniWorld是一个极简主义的3D室内环境模拟器专为强化学习和机器人研究而设计。它使用Python编写具有以下核心特点轻量级设计依赖少安装简单不易出错易于定制学生和研究人员可以轻松修改或扩展环境高性能高帧率支持多进程处理丰富的3D资源提供多种免费的3D模型和纹理完全可观察支持俯视图/顶视图模式领域随机化支持模拟到真实的迁移学习MiniWorld迷宫环境的俯视图展示 快速安装指南基础安装推荐新手最简单的安装方式是通过pip安装pip install miniworld从源码安装用于开发如果你想基于MiniWorld进行二次开发建议从源码安装git clone https://gitcode.com/gh_mirrors/mi/Miniworld cd Miniworld python3 -m pip install -e .系统要求Python 3.7GymnasiumNumPyPygletOpenGL 3D图形库GPU可选用于3D图形加速 第一个MiniWorld环境基本环境创建创建一个简单的MiniWorld环境只需要几行代码import gymnasium as gym # 创建走廊环境 env gym.make(MiniWorld-Hallway-v0, render_modehuman) obs, info env.reset() # 运行几个步骤 for _ in range(100): action env.action_space.sample() # 随机动作 obs, reward, terminated, truncated, info env.step(action) if terminated or truncated: obs, info env.reset() env.close()手动控制环境MiniWorld提供了手动控制脚本让你可以亲自体验环境# 手动控制走廊环境 python -m miniworld.manual_control --env-name MiniWorld-Hallway-v0 # 显示环境的俯视图 python -m miniworld.manual_control --env-name MiniWorld-Hallway-v0 --top_viewMiniWorld走廊环境的第一人称视角‍♂️ 5分钟快速开始教程步骤1安装和验证首先验证安装是否成功import miniworld print(MiniWorld版本:, miniworld.__version__)步骤2探索可用环境MiniWorld提供了多种预定义环境import gymnasium as gym # 查看所有可用的MiniWorld环境 env_ids [env_id for env_id in gym.registry if MiniWorld in env_id] print(可用环境:, env_ids[:10]) # 显示前10个环境步骤3创建你的第一个环境让我们创建一个简单的迷宫环境import gymnasium as gym # 创建迷宫环境 env gym.make(MiniWorld-Maze-v0, render_modehuman) # 初始化环境 obs, info env.reset() print(观测空间形状:, obs.shape) print(动作空间:, env.action_space) # 运行环境 for step in range(50): # 选择随机动作 action env.action_space.sample() # 执行动作 obs, reward, terminated, truncated, info env.step(action) # 显示进度 if step % 10 0: print(f步骤 {step}: 奖励{reward}) # 如果回合结束重置环境 if terminated or truncated: obs, info env.reset() # 关闭环境 env.close()复杂的迷宫环境适合导航任务 常用环境介绍1. 走廊环境 (Hallway)最简单的环境之一适合初学者env gym.make(MiniWorld-Hallway-v0)2. 迷宫环境 (Maze)更具挑战性的导航环境env gym.make(MiniWorld-Maze-v0)3. 收集健康环境 (CollectHealth)包含交互元素的环境env gym.make(MiniWorld-CollectHealth-v0)4. 四房间环境 (FourRooms)经典的多房间导航任务env gym.make(MiniWorld-FourRooms-v0)四房间环境包含多个相互连接的房间 环境配置和自定义调整环境参数大多数MiniWorld环境都支持参数配置# 创建自定义大小的迷宫环境 env gym.make(MiniWorld-Maze-v0, size20, # 迷宫大小 num_rooms5, # 房间数量 max_episode_steps500) # 最大步数使用包装器MiniWorld提供了多种包装器来增强环境功能from miniworld.wrappers import PyTorchObsWrapper # 包装环境以支持PyTorch env gym.make(MiniWorld-Hallway-v0) env PyTorchObsWrapper(env) # 将观测转换为PyTorch格式️ 服务器和无头模式运行无头渲染集群和Colab在服务器或Colab环境中运行时需要设置离屏渲染# 方法1使用EGL PYOPENGL_PLATFORMegl python your_script.py # 方法2使用Xvfb xvfb-run -a -s -screen 0 1024x768x24 -ac extension GLX render -noreset python your_script.py批量环境创建对于强化学习训练可以创建多个并行环境import gymnasium as gym from gymnasium.vector import AsyncVectorEnv def make_env(env_id): def _init(): env gym.make(env_id) return env return _init # 创建4个并行环境 envs AsyncVectorEnv([make_env(MiniWorld-Hallway-v0) for _ in range(4)]) 创建自定义环境基础环境模板创建自定义MiniWorld环境非常简单import numpy as np from miniworld.entity import Box from miniworld.miniworld import MiniWorldEnv class MyCustomEnv(MiniWorldEnv): def __init__(self, size10, **kwargs): self.size size super().__init__(**kwargs) # 只允许移动动作 self.action_space spaces.Discrete(self.actions.move_forward 1) def _gen_world(self): # 创建房间 self.add_rect_room(min_x0, max_xself.size, min_z0, max_zself.size) # 放置代理 self.place_agent() # 放置目标物体 self.box self.place_entity( Box(colorred), posnp.array([self.size/2, 0.5, self.size/2]), dir0.0 ) def step(self, action): obs, reward, terminated, truncated, info super().step(action) # 如果接近盒子给予奖励 if self.near(self.box): reward 1.0 terminated True return obs, reward, terminated, truncated, info收集健康环境代理需要找到并收集物品 常见问题解决1. 导入错误确保安装了所有依赖pip install gymnasium numpy pyglet2. 渲染问题如果遇到OpenGL错误尝试# 安装Mesa驱动Linux sudo apt-get install mesa-utils # 或者使用软件渲染 export LIBGL_ALWAYS_SOFTWARE13. 性能优化对于训练场景使用render_modergb_arrayenv gym.make(MiniWorld-Hallway-v0, render_modergb_array) 进阶学习资源官方文档环境列表docs/environments.md - 所有预定义环境的详细说明设计指南docs/content/design.md - 环境设计原理创建教程docs/content/create_env.md - 自定义环境教程核心源码模块环境实现miniworld/envs/ - 所有环境的具体实现实体系统miniworld/entity.py - 环境中的实体对象渲染系统miniworld/opengl.py - 3D渲染引擎人行道环境模拟现实世界的导航场景 总结通过这篇快速入门指南你已经掌握了MiniWorld的基本安装和配置创建和运行第一个3D强化学习环境探索不同类型的预定义环境自定义环境参数和配置解决常见的运行问题MiniWorld作为一个轻量级、易扩展的3D强化学习环境是学习和研究强化学习的绝佳起点。无论是学术研究还是教学演示它都能提供直观的3D交互体验。下一步建议尝试不同的预定义环境了解它们的特点使用手动控制脚本亲自体验环境交互参考官方文档创建自己的自定义环境将MiniWorld集成到你的强化学习算法中进行训练现在就开始你的3D强化学习之旅吧文本框架环境可以在墙上显示文字信息【免费下载链接】MiniworldSimple and easily configurable 3D FPS-game-like environments for reinforcement learning项目地址: https://gitcode.com/gh_mirrors/mi/Miniworld创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考