
Miniworld环境创建教程零基础打造专属强化学习训练场景【免费下载链接】MiniworldSimple and easily configurable 3D FPS-game-like environments for reinforcement learning项目地址: https://gitcode.com/gh_mirrors/mi/MiniworldMiniworld是一款简单且高度可配置的3D FPS游戏风格强化学习环境让开发者能够轻松构建自定义训练场景。本文将带你从零开始通过4个简单步骤创建专属的强化学习环境即使没有3D建模经验也能快速上手。为什么选择Miniworld强化学习的效果很大程度上依赖于训练环境的质量。Miniworld作为轻量级3D环境框架具有以下优势极简配置无需复杂的3D建模知识几行代码即可生成复杂场景丰富预设内置多种环境模板如迷宫、房间、走廊等高度可定制支持自定义地图尺寸、物体摆放、奖励机制轻量高效对硬件要求低普通电脑即可流畅运行图1Miniworld内置的单房间环境适合基础导航任务训练准备工作5分钟快速安装环境要求Python 3.6支持OpenGL的显卡操作系统Windows/macOS/Linux两种安装方式快速安装推荐新手pip install miniworld源码安装适合开发者git clone https://gitcode.com/gh_mirrors/mi/Miniworld cd Miniworld python3 -m pip install -e .开发模式安装-e参数允许你修改源码并实时生效推荐需要自定义环境的用户使用。第一步创建基础环境类创建环境的核心是定义一个继承自MiniWorldEnv的类。以下是基础模板代码from miniworld.miniworld import MiniWorldEnv class MyCustomEnv(MiniWorldEnv): def __init__(self, size10, **kwargs): self.size size # 环境尺寸 super().__init__(**kwargs) # 定义动作空间左转(0)、右转(1)、前进(2)、后退(3) self.action_space spaces.Discrete(self.actions.move_forward 1)这个基础类设置了环境的基本属性和动作空间。MiniWorld默认使用X-Z平面进行移动简化了3D空间的操作难度。第二步生成环境地图通过重写_gen_world方法来创建环境地图。最简单的是生成一个矩形房间def _gen_world(self): # 创建矩形房间min_x, max_x, min_z, max_z self.add_rect_room(min_x0, max_xself.size, min_z0, max_zself.size) # 放置智能体 self.place_agent()运行代码后你将得到一个空房间环境如下图所示图2基础矩形房间环境红色三角形代表智能体提示可以通过调整size参数改变房间大小数值越大房间面积越大。第三步添加交互物体在环境中添加目标物体让智能体有任务可做from miniworld.entity import Box import numpy as np def _gen_world(self): self.add_rect_room(min_x0, max_xself.size, min_z0, max_zself.size) # 放置蓝色箱子作为目标 self.box self.place_entity( Box(colorblue), posnp.array([4.5, 0.5, 4.5]), # 位置坐标 dir0.0 # 朝向角度 ) self.place_agent()现在环境中多了一个蓝色箱子智能体需要学会与之交互图3添加蓝色箱子后的环境智能体需要到达目标位置MiniWorld提供多种预设物体如Box立方体Key钥匙Ball球体Door门这些物体都可以通过类似的方式添加到环境中。第四步设置奖励机制强化学习需要奖励信号来引导智能体学习。添加以下代码实现靠近箱子获得奖励的机制def step(self, action): # 调用父类的step方法 obs, reward, termination, truncation, info super().step(action) # 当智能体靠近箱子时给予奖励 if self.near(self.box): reward self._reward() # 奖励值默认为1.0 termination True # 任务完成 return obs, reward, termination, truncation, info现在当智能体移动到蓝色箱子附近时会获得奖励并结束当前回合。高级技巧创建复杂环境1. 迷宫环境示例MiniWorld可以轻松创建复杂的迷宫环境只需添加多个房间和连接通道def _gen_world(self): # 创建多个房间 room1 self.add_rect_room(min_x0, max_x5, min_z0, max_z5) room2 self.add_rect_room(min_x5, max_x10, min_z5, max_z10) # 添加连接通道 self.connect_rooms(room1, room2, min_x5, max_x5, min_z3, max_z7) self.place_agent(roomroom1) self.place_entity(Box(colorred), roomroom2)图4复杂迷宫环境示例适合训练导航和探索能力2. 环境参数化通过参数化设计可以生成无限多种环境变体def __init__(self, size10, num_objects3, **kwargs): self.size size self.num_objects num_objects # 物体数量 super().__init__(**kwargs) def _gen_world(self): self.add_rect_room(min_x0, max_xself.size, min_z0, max_zself.size) # 随机放置多个物体 for _ in range(self.num_objects): self.place_entity(Box(colornp.random.choice([red, blue, green]))) self.place_agent()运行与测试环境创建完环境后可以使用手动控制脚本测试from miniworld.manual_control import manual_control env MyCustomEnv(size15) manual_control(env)通过键盘方向键控制智能体移动观察环境是否符合预期。总结通过本文介绍的四个步骤你已经掌握了Miniworld环境创建的基本方法创建环境类继承MiniWorldEnv重写_gen_world生成地图添加交互物体设置奖励机制MiniWorld的灵活性使得创建各种强化学习场景变得简单从简单的导航任务到复杂的多目标操作。更多高级功能可以参考官方文档docs/content/create_env.md现在就动手创建你的第一个强化学习环境吧如有问题可以查阅docs/content/troubleshooting.md或项目Issues获取帮助。【免费下载链接】MiniworldSimple and easily configurable 3D FPS-game-like environments for reinforcement learning项目地址: https://gitcode.com/gh_mirrors/mi/Miniworld创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考