Mujoco、Mujoco-py、gym/baseline的环境配置 (可用于UC Berkeley CS294-112 18FA 课程学习)

0. 本人环境

(以下均可根据右侧网址进行环境配置https://blog.csdn.net/linyijiong/article/details/84198384)


Ubuntu16.04 , Anaconda3 , python 3.6 ,  tensorflow-gpu 1.10.1 , CUDA 9.0 , cuDNN8.0.

 

以下安装配置均在虚拟环境中进行

 

 

1.安装mujoco

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


1.1 准备工作

(参考网址: https://github.com/openai/mujoco-py#obtaining-the-binaries-and-license-key )

 

1.1.1 

下载 mjpro150 linux

 

1.1.2

点击Licence,进行许可证注册(mujoco不开源)

根据你的情况进行选择一年或者30天的许可时期。通过认证后,会将account number发至邮箱。

根据使用平台下载 getid_linux(可执行文件) 获取 computer id, 步骤如下:

chmod +x getid_linux
/getid_linux 

输出结果类似于 LINUX_A1EHAO_Q8BPHTASDM1005D03TB3293

将上述两者输入网站,如下图。


点击Register computer 后,你的邮箱收到类似以下的邮件。

Mujoco、Mujoco-py、gym/baseline的环境配置 (可用于UC Berkeley CS294-112 18FA 课程学习)_第1张图片
从输入的邮箱中下载证书mjkey.txt ,后面将会使用。

1.2 环境配置


1.2.1

创建隐藏文件夹并将 上一步下载的mjpro150_linux.zip 拷贝到 mujoco 文件夹中。解压后路径为:~/.mujoco/mjpro150

mkdir ~/.mujoco    
cp mjpro150_linux.zip ~/.mujoco
cd ~/.mujoco
unzip mjpro150_linux.zip

 

1.2.2

将证书mjkey.txt拷贝到创建的隐藏文件夹中

cp mjkey.txt ~/.mujoco
cp mjkey.txt ~/.mujoco/mjpro150/bin

 

1.2.

添加环境变量~/.bashrc

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/bourne/.mujoco/mjpro150/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia-390

1.3.运行结果

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

Mujoco、Mujoco-py、gym/baseline的环境配置 (可用于UC Berkeley CS294-112 18FA 课程学习)_第2张图片  

 

 

2.安装mujoco_py

参考网址:https://github.com/openai/mujoco-py#obtaining-the-binaries-and-license-key

 

 2.1 下载mujoco-py源码

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

注意:现在的mujoco-py的部分已经更新到v2.0了(没有关系的),一般使用问题不大,想用最新的需要将前面的操作更换一下版本(下载200版本的mujoco,并将前面介绍的所有150修改为200)。

继续使用1.50版本问题不大,因为很多包都是基于150版本的,可以使用github更新2.0之前的最后一个版本,399a22b1384a078f8cd02d10486cff379cdf5985,使用前六位即可。
在下载完官方包之后,进入文件夹,使用git checkout 399a22,切换到以前的版本。
 

 2. 2 安装mujoco_py

pip3 install -U 'mujoco-py<1.50.2,>=1.50.1'

  

 2.3 遇到的问题

注意的是在这里安装的时候可能会缺很多包,但是提示什么装什么就行了。

 

2.3.1

缺少GL/glew.h头文件

Mujoco、Mujoco-py、gym/baseline的环境配置 (可用于UC Berkeley CS294-112 18FA 课程学习)_第3张图片

网上查看后是缺少 libglew-dev,补上即可

sudo apt-get install libglew-dev

(参考网址:https://stackoverflow.com/questions/15852417/compiling-opengl-program-gl-glew-h-missing)

 

2.3.2

提示需要将以下环境变量导入bashrc中,然后重新打开一个终端(虚拟环境)进行安装

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia-390

 

如果不能识别上述路径,进入ld文件 (本人没有用到)

(参考:http://man.linuxde.net/ldconfig  、http://blog.51cto.com/lsscto/904078)

sudo gedit /etc/ld.so.conf

把以下路径写到文件中的新一行

/usr/lib/nvidia-390

重新加载文件

sudo ldconfig

 

2.4 检测是否安装成功

输入以下代码后,出现相应数据则说明mujoco-py安装成功。

$ pip3 install -U 'mujoco-py<1.50.2,>=1.50.1'
$ python3
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)
# [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)
# [-2.09531783e-19  2.72130735e-05  6.14480786e-22 -3.45474715e-06
#   7.42993721e-06 -1.40711141e-04 -3.04253586e-04 -2.07559344e-04
#   8.50646247e-05 -3.45474715e-06  7.42993721e-06 -1.40711141e-04
#  -3.04253586e-04 -2.07559344e-04 -8.50646247e-05  1.11317030e-04
#  -7.03465386e-05 -2.22862221e-05 -1.11317030e-04  7.03465386e-05
#  -2.22862221e-05]

 

 

3. 安装gym

安装gym相对简单,在此不赘述,按照下面的网站指示即可(注意更新pip)

https://github.com/openai/gym

当遇到这个错误的时候,记得加上sudo

 

 

4. CS294-112课程hw1

配置好以上环境后,我们尝试以下用课程里面第一节课的demo跑一下。(保持在虚拟环境中运行)

4.1 下载hw

git clone https://github.com/berkeleydeeprlcourse/homework.git 

4.2 运行demo

cd homework/hw1/
./demo.bash

4.3 Error

(参考网站:https://blog.csdn.net/gsww404/article/details/80636676?utm_source=blogxgwz7 )

此时依然碰到一个错误

Running trained model
Creating window glfw
ERROR: GLEW initalization error: Missing GL version

Press Enter to exit ...Killed

查询之后,添加以下到bashrc文件中

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/nvidia-390/libGL.so

 

4.4 成功

出现下面的肉色奇异种,说明一切配置成功! 开始大干DRL! X D

 

5.baselines

安装需要工具baselines :https://github.com/openai/baselines
根据前面几节的情况,这里同样先进入建立的虚拟环境中。
Note:需要运行本文安装的包时候,也需要先进入环境中

注意:

d安装baseline的时候会发现需要安装tensorflow,根据提示用pip安装速度很慢,因此取消后直接利用conda install tensorflow-gpu来下载tf,结果问题出现了,由于前面安装的驱动为390版本,但是conda一上来就安装了cuda9.2版本(通过conda list查看包)

根据官方的对应表,这两者不兼容

Mujoco、Mujoco-py、gym/baseline的环境配置 (可用于UC Berkeley CS294-112 18FA 课程学习)_第4张图片

因此可以输入以下回到cuda 9.0版本:

conda install cudatoolkit=8.0

参考:

 

跑pytest的时候缺少包 imagehash,可以按照下面安装

conda install -c conda-forge imagehash 
https://anaconda.org/conda-forge/imagehash

Mujoco、Mujoco-py、gym/baseline的环境配置 (可用于UC Berkeley CS294-112 18FA 课程学习)_第5张图片

 

6. 运行各种算法

在此本人运行了HER算法,详细的命令行以及各种参数可以参考 baselines的github

https://github.com/openai/baselines/tree/master/baselines/her 

(运行的时候还是会遇到上面的问题:GLEW initalization error: Missing GL version,按照上面解决即可

https://github.com/openai/mujoco-py/issues/75 

https://github.com/openai/mujoco-py/pull/145)

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/nvidia-390/libGL.so

Mujoco、Mujoco-py、gym/baseline的环境配置 (可用于UC Berkeley CS294-112 18FA 课程学习)_第6张图片

 

 

 

7. 本人在bashrc中配置的环境变量一览

 

7.1 关于Cuda,conda

#==================================================================

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64
export PATH=$PATH:/usr/local/cuda-9.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0

# added by Anaconda3 5.3.0 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/home/bourne/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
    \eval "$__conda_setup"
else
    if [ -f "/home/bourne/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/bourne/anaconda3/etc/profile.d/conda.sh"
        CONDA_CHANGEPS1=false conda activate base
    else
        \export PATH="/home/bourne/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda init <<<

7.2 关于Mojuco

#==================================================================

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/bourne/.mujoco/mjpro150/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia-390
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/nvidia-390/libGL.so
export MUJOCO_KEY_PATH=~/.mujoco${MUJOCO_KEY_PATH}

注意,以上指令或操作步骤均受版本影响,请查看上述参考官方网址查看安装配置变动。

总参考网址:https://blog.csdn.net/Hansry/article/details/80998720

 

---------------------------分割线-----------------------------------------

由于在Pycharm配置不了tensorflow-gpu,为了消除前期配置工作的影响,本人删除了相应的虚拟环境(环境名为tfgpu)。

在重新配置一个虚拟环境的时候,执行到上述的mujoco-py的时候,发现无论怎么运行

pip3 install -U 'mujoco-py<1.50.2,>=1.50.1'

进入虚拟环境fgpu,运行python,无法import mujoco_py。

 

然后在路径anaconda3/env/tfgpu/lib/python3.6/site-packages/中, 找不到刚刚安装好的mujoco_py包。很是奇怪。

 

于是尝试卸载mujoco_py,输入以下

pip3 uninstall mujoco-py

发现mujocopy的包在以下路径中

/home/bourne/.local/lib/python3.5/site-packages/

因此将路径中的包mujoco_py和mujoco_py-1.50.1.68.dist-info放进以下路径(你的虚拟环境路径)

anaconda3/env/tfgpu/lib/python3.6/site-packages/

然后尝试再次import mujoco_py并执行一些简单指令,成功。

你可能感兴趣的:(强化学习,机器视觉)