头像

Cyan

四川成都

深度强化学习炼丹师

强化学习MuJoCo环境安装

强化学习MuJoCo环境安装

2023-04-20 · 272次阅读 · 原创 · 人工智能

Windows

环境 版本
操作系统 Windows 11
VS build tool 2017版
python 3.7.4、3.8.5
mujoco 150、210
mujoco-py 150版1.50.1.0,210版2.1.2.14

  1. 去下载 Build Tools for Visual Studio 2017 (version 15.9) ,进去安装win10的三个sdk以及其他生成工具,如下图。

图1 要选择的安装项

  1. 之后去下载mujoco环境,150210都可,放入C:\Users\xxx\.mujoco\ 目录下,150改名为 mjpro150,200改名为 mujoco210 。将其秘钥 mjkey.txt 放入.mujoco\ 下,也放入对应环境的 bin\ 目录下。
  2. 配置相关的环境变量,在 path 中添加 C:\Users\xxx\.mujoco\mujoco210\bin 并移到第一行,注意替换其中的目录为要装的mujoco版本。若安装150版本,还需添加如下两个环境变量:
MUJOCO_PY_MJKEY_PATH=C:\Users\xxx\.mujoco\mjpro150\bin\mjkey.txt MUJOCO_PY_MJPRO_PATH=C:\Users\xxx\.mujoco\mjpro150
  1. 安装mujoco-py。150版本去github下载1.50.1.0的源码,解压后先进入该项目目录,执行 pip install -r requirements.txtpip install -r requirements.dev.txt,之后再执行 python setup.py install 即可。210版本直接执行 pip install mujoco-py==2.1.2.14 即可安装。
# 测试mojuco_py环境 import mujoco_py import os mj_path = mujoco_py.utils.discover_mujoco() # 210 # mj_path, _ = mujoco_py.utils.discover_mujoco() # 150 xml_path = os.path.join(mj_path, 'model', 'humanoid.xml') model = mujoco_py.load_model_from_path(xml_path) sim = mujoco_py.MjSim(model) print(sim.data.qpos) sim.step() print(sim.data.qpos)
  1. 安装multiagent_mujoco。只有210版本才行,同时需保证 mujoco_py>=2.1.2.14 才行。去官网克隆源码进行安装。注意: 安装时只要ma_mujoco装上了,其 numpy和scipy版本比setup.py中的要求低了一些也没问题。若发现安装好的包内的 assets 目录内没有模型,需将源码中的 assets 目录内的模型全部拷贝过去即可。
# ma_mujoco测试 from multiagent_mujoco.mujoco_multi import MujocoMulti import numpy as np import time def main(): env_args = {"scenario": "manyagent_swimmer", "agent_conf": "10x2", "agent_obsk": 1, "episode_limit": 1000} env = MujocoMulti(env_args=env_args) env_info = env.get_env_info() n_actions = env_info["n_actions"] n_agents = env_info["n_agents"] n_episodes = 10 for e in range(n_episodes): env.reset() terminated = False episode_reward = 0 while not terminated: obs = env.get_obs() state = env.get_state() actions = [] for agent_id in range(n_agents): avail_actions = env.get_avail_agent_actions(agent_id) avail_actions_ind = np.nonzero(avail_actions)[0] action = np.random.uniform(-1.0, 1.0, n_actions) actions.append(action) reward, terminated, _ = env.step(actions) episode_reward += reward time.sleep(0.1) env.render() print("Total reward in episode {} = {}".format(e, episode_reward)) env.close() if __name__ == "__main__": main()

Ubuntu

MuJoCo-py 对 ubuntu 的支持很好,适用性很强,网上也有很多ubuntu安装的教程,这儿就不重复介绍了。直接放几个实用点的使用的链接:

  1. Ubuntu20.04 Linux系统安装mujoco和mujoco_py
  2. 安装mujoco_py遇到的一些问题与解决方法
  3. 安装mpi4py模块遇到的一些问题(Ubuntu)

标题: 强化学习MuJoCo环境安装
链接: https://www.fightingok.cn/detail/257
更新: 2023-08-11 21:24:46
版权: 本文采用 CC BY-NC-SA 3.0 CN 协议进行许可