强化学习:MuJoCo、mujoco_py、gym的安装

目录

  • Obtain License
  • Linux 系统安装 mujoco200和mujoco_py
    • 一、安装 MuJoCo
    • 二、安装 mujoco_py
    • 三、安装 gym
  • Mac OSX 系统安装 mujoco200和mujoco_py
    • 一、安装 MuJoCo
    • 二、安装 mujoco_py
    • 三、安装 gym
  • 参考

Obtain License

由于mujoco在更新政策,现在可以直接从官网下载license,获得 mjkey.txt。

Linux 系统安装 mujoco200和mujoco_py

环境:
Ubuntu 18.04
Anaconda3
python 3.7
cuda 10.2

一、安装 MuJoCo

MuJoCo(Multi-Joint dynamics with Contact)是一个物理模拟器,可以用于机器人控制优化等研究。

1. 下载安装

在home目录下创建文件夹:

mkdir .mujoco
cd .mujoco

在此目录下,从官网下载 mujoco200_linux.zip并解压,重命名为mujoco200。

将下载许可证mjkey.txt放置在.mujoco目录以及.mujoco/mujoco200/bin下。

2. 添加环境变量

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.mujoco/mujoco200/bin

3. 测试安装结果

cd ~/.mujoco/mujoco200_linux/bin 
./simulate ../model/humanoid.xml

二、安装 mujoco_py

官方文档中说用pip3 install -U 'mujoco-py<2.1,>=2.0'即可安装。但是运行后会报错

ERROR: Failed building wheel for mujoco-py 
Failed to build mujoco-py 
ERROR: Could not build wheels for mujoco-py which use PEP 517 and cannot be installed directly

issue中提到安装pip install mujoco_py==2.0.2.8即可解决问题【在mac OS Big Sur中尝试此方法成功,但是遇到gcc的问题,后面会具体讨论mac中的安装】

1. 下载源代码
这里我没有使用pip install,而是直接下载源代码。
在home目录下,运行

git clone https://github.com/openai/mujoco-py.git

2. 创建conda环境

conda create -n mujoco python=3.7
conda activate mujoco # 激活conda环境

3. 检查/安装 gcc

gcc --version

4. 安装依赖

(mujoco)$ cd ~/mujoco-py
(mujoco)$ pip install -r requirements.txt
(mujoco)$ pip install -r requirements.dev.txt
(mujoco)$ cd ~/mujoco-py/vendor
(mujoco)$ ./Xdummy-entrypoint
(mujoco)$ cd ..
(mujoco)$ python setup.py install

5. 测试

(mujoco)$ python
>>> import mujoco_py

报错:

/home/jyq/anaconda3/envs/mujoco/lib/python3.7/site-packages/mujoco_py-2.0.2.13-py3.7.egg/mujoco_py/gl/osmesashim.c:1:10: fatal error: GL/osmesa.h: No such file or directory
....
error: command ‘gcc’ failed with exit status 1

解决方法:执行

sudo apt install libosmesa6-dev libgl1-mesa-glx libglfw3

再次测试:

(mujoco)$ python
>>> import mujoco_py # 第一次import会编译加载很多东西
>>> import mujoco_py # 再次import就正常了
>>> from os.path import dirname
>>> model = mujoco_py.load_model_from_path(dirname(dirname(mujoco_py.__file__))  +"/xmls/claw.xml")
>>> sim = mujoco_py.MjSim(model)
>>> print(sim.data.qpos)
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
>>> sim.step()
>>> print(sim.data.qpos)
[ 2.09217903e-06 -1.82329050e-12 -1.16711384e-07 -4.69613872e-11
 -1.43931860e-05  4.73350204e-10 -3.23749942e-05 -1.19854057e-13
 -2.39251380e-08 -4.46750545e-07  1.78771599e-09 -1.04232280e-08]

三、安装 gym

pip install gym[all]
#报错:
ERROR: Failed building wheel for mujoco-py

发现直接pip install gym就成功了

测试:

(mujoco)$ python
>>> import gym
>>> env = gym.make("Swimmer-v3")

Mac OSX 系统安装 mujoco200和mujoco_py

一、安装 MuJoCo

与Linux系统一样

二、安装 mujoco_py

这里用的是pip install mujoco_py==2.0.2.8
由于是旧版本,需要gcc@8,而我的环境中是gcc@10。所以需要重新安装旧版本gcc。安装步骤如下

brew uninstall gcc@10
brew install gcc@8

homebrew会因为网络原因报Error: Fail to download resource gcc。建议连接外网多试几遍。

测试

(mujoco)$ python
>>> import mujoco_py
>>> import os
>>> mj_path, _ = mujoco_py.utils.discover_mujoco()
>>> 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)
# 这里跟官方文档给出的result不一样,不知道为啥
[0.  0.  1.4 1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0. ]
>>> sim.step()
>>> print(sim.data.qpos)
# 这里跟官方文档给出的result不一样,不知道为啥
[-1.12164337e-05  7.29847036e-22  1.39975300e+00  9.99999999e-01
  1.80085466e-21  4.45933954e-05 -2.70143345e-20  1.30126513e-19
 -4.63561234e-05 -1.88020744e-20 -2.24492958e-06  4.79357124e-05
 -6.38208396e-04 -1.61130312e-03 -1.37554006e-03  5.54173825e-05
 -2.24492958e-06  4.79357124e-05 -6.38208396e-04 -1.61130312e-03
 -1.37554006e-03 -5.54173825e-05 -5.73572648e-05  7.63833991e-05
 -2.12765194e-05  5.73572648e-05 -7.63833991e-05 -2.12765194e-05]

如果遇到
clang: error: unsupported option '-fopenmp'

raise ImportError("Failed to load GLFW3 shared library.")
请查看官方文档下给出的解决方法

三、安装 gym

与Linux系统一样

参考

强化学习实战(八) Ubuntu下Mujoco安装记录

你可能感兴趣的:(环境安装)