如何安装强化学习虚拟环境Gym,Mujoco,Mujoco-py

mjpro150 mujoco-py 1.50.1 Gym 0.9.6
mjpro131 mujoco-py 1.3 Gym 0.9.3

环境:Ubuntu 16.04, Cuda 9.1, nvidia-390, Python 3.5.2
安装顺序:Mujoco, Mujoco-py, Gym

Mujoco

  • source: https://www.roboti.us/index.html
  • version: mjpro150
  • 获取license:学生可通过教育邮箱获取一年免费license,在mjkey.txt中。同一个license可用于131,140,150版本的Mujoco
#download mjpro150.zip
wget -O mjpro150.zip https://www.roboti.us/download/mjpro150_linux.zip
mkdir ~/.mujoco
unzip mjpro150.zip -d ~/.mujoco/mjpro150
#put the license file into ~/.mujoco & ~/.mujoco/mjpro150/bin
cp mjkey.txt ~/.mujoco
cp mjkey.txt ~/.mujoco/mjpro150/bin
#test
cd ~/.mujoco/mjpro150/bin
./simulate ../model/humanoid.xml

测试完后将~/.mujoco/mjpro150/bin添加到LD_LIBRARY_PATH中,~/.mujoco添加到MUJOCO_KEY_PATH

Mujoco-py

#install dependencies
sudo apt-get update -q
DEBIAN_FRONTEND=noninteractive sudo apt-get install -y \
curl \
git \
libgl1-mesa-dev \
libgl1-mesa-glx \
libosmesa6-dev \
python3-pip \
python3-numpy \
python3-scipy \
unzip \
vim \
wget \
xpra \
xserver-xorg-dev
sudo apt-get clean
sudo rm -rf /var/lib/apt/lists/*
#install patchelf
sudo curl -o /usr/local/bin/patchelf https://s3-us-west-2.amazonaws.com/openai-sci-artifacts/manual-builds/patchelf_0.9_amd64.elf
sudo chmod +x /usr/local/bin/patchelf
#download mujoco-py
git clone https://github.com/openai/mujoco-py.git

在我的配置环境下,如果直接安装或在此时通过源码编译后在import时会报GLEW initalization error: Missing GL version,按照https://github.com/openai/mujoco-py/issues/44中的回复,这是mujoco-py这一版本的问题,可以按照对应版本将其降到1.3,同时对应的mujocoGym版本也要改变。在此按照https://github.com/openai/mujoco-py/pull/145/files中的方法改变/mujoco-py/mujoco-py/builder.py文件后,再进行安装。

#install mujoco-py
cd mujoco-py
sudo python3 setup.py install
#test
python3
import mujoco_py
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]

注意: 此时尚不能跑通例程,因为可视化时渲染还是会报错,需要使用LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/nvidia-390/libGL.so

#test for visualization
cd mujoco-py/examples
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/nvidia-390/libGL.so python3 body_interaction.py
body_interaction渲染结果

Gym

#download source code
git clone https://github.com/openai/gym.git
cd gym
#install requirements
sudo apt-get install -y python-numpy python-dev cmake zlib1g-dev libjpeg-dev xvfb libav-tools xorg-dev python-opengl libboost-all-dev libsdl2-dev swig
#install gym (full-version)
sudo pip3 install -e .
#install particular model
sudo pip3 install -e '.[box2d]'

reference

https://www.jianshu.com/p/9b9247bf6ccb
https://github.com/openai/mujoco-py/pull/145
https://github.com/openai/mujoco-py/issues/44

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub)。转载请注明出处。原文:https://www.ji...
    程序员联盟阅读 29,791评论 28 76
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,489评论 2 45
  • 1,市场主要的进场方式不过两种:见位交易和破位交易。而这两种进场方式要求交易者必须能够确认关键水平的阻挡和支撑是否...
    aier_wiki阅读 203评论 0 0
  • 早上向同学请教,搞懂了昨天的知识和作业。不知不觉中又换了一位老师,真是每个老师都有自己的教学方案。整理总结今天的知...
    yumi28阅读 120评论 0 0
  • 许是 不想搁浅那一抹红的殷实 秋风把阳光余留的暖意 倾注进了枫的脉络 独坐在这幽静 听枫叶诉说过往 风 凉了山花的...
    木子魚說阅读 253评论 0 5