介绍mujoco和mujoco_py过程和遇到问题解决方法
-1. 吐槽前言:
- 不少技术文章还是摘抄太多, 大同小异, 千篇一律, 知其然不知其所以然, 所以常常一错百错.
- 相同问题的解决方案虽都是相似的, 但很多博文都没有讲清楚重点. 而且过程博主自己都未必亲自验证过, 缺乏责任意识.
- 不少博文给出的方法, 看是大而全面, 有理有据. 但不够细致入微,不能直接利用. 严重影响学习效率.
0. 环境版本说明:
- ubuntu-16.04
- gym-0.15.4
- tensorflow 1.12.0
- CUDA 10.0 \ cudnn7.4
我还不太了解环境版本和mujoco之间的关联问题, 这里仅为列出给大家对比查看.
0.1 更新1 : 安装mujoco200
1. 安装Mujoco
1.1 官方源码下载:
- 直接在mujoco官网下载. 我下的是
mjpro150 linux . - 在home目录下创建隐藏文件夹mujoco,再将刚才的文件放进去:
1 2 3 4 | mkdir ~/.mujoco cp mjpro150_linux.zip ~/.mujoco cd ~/.mujoco unzip mjpro150_linux.zip |
1.2 安装license
- 在官网的license一栏进行注册. 因为Mujoco是收费的仿真器,所以可以先免费试用30天, 学生可以免费使用一年, 但是需要验证, 这个验证可能等一段时间.
- license 需要 full name \ email address \ computer id 信息,其中 Computer id 一项需要点击右侧的
Linux 下载getid_linux (可执行文件) , 在本地终端里通过下面命令获得id, 才能完成所有信息填写:
1 2 | chmod +x getid_linux ./getid_linux |
- 点击 submint 后,邮箱会收到一份邮件, 从中下载证书
mjkey.txt .
1.3 环境配置
- 将证书
mjkey.txt 拷贝到创建的隐藏文件夹中:
1 2 | cp mjkey.txt ~/.mujoco cp mjkey.txt ~/.mujoco/mjpro150/bin |
- 添加环境变量, 打开
~/.bashrc 文件添加以下内容:
1 2 | export LD_LIBRARY_PATH=~/.mujoco/mjpro150/bin${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export MUJOCO_KEY_PATH=~/.mujoco${MUJOCO_KEY_PATH} |
1.4 运行测试
1 2 | cd ~/.mujoco/mjpro150/bin ./simulate ../model/humanoid.xml |
出现经典人形木偶就OK啦~
2. 安装mujoco_py (两种安装思路)
2.1 法1: 直接用 pip 安装, 然后缺什么补什么, 注意先进入python指定虚拟环境:
我这里安装指定了mujoco的版本是1.50
1 | pip3 install -U 'mujoco-py<1.50.2,>=1.50.1' |
2.2 法2: 下载源码来安装
2.2.1 在github下载源码:
1 | git clone https://github.com/openai/mujoco-py.git |
我在这一步是安装的历史版本 1.15.1, 不是最新的.
2.2.2 安装 patchelf
1 2 | 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 |
2.2.3 进入python虚拟环境并安装依赖
1 2 3 4 5 | cd ~/mujoco-py cp requirements.txt requirements.dev.txt ./mujoco_py cd mujoco_py pip3 install -r requirements.txt pip3 install -r requirements.dev.txt |
2.2.4 安装
1 2 3 4 | cd ~/mujoco-py/vendor ./Xdummy-entrypoint cd .. python setup.py install |
3. 测试使用 ( 注意虚拟环境 )
3.1 python调用
第一次 Import 时需要用 gcc 编译一些东西, 所以这里会因为缺失包而出错.
1 2 3 4 | $ python import mujoco_py # 第一次导入会加载一些东西,再导入一次就正常了 import mujoco_py |
因为缺失包而出错, 用下面命令来安装, 方法来自openai/mujoco_py
1 | sudo apt install libosmesa6-dev libgl1-mesa-glx libglfw3 |
3.2 查看example
mujoco有一些图形案例已经做好了, 可以直接用Python调用查看显示效果:
1 2 3 | cd ~/mujoco/examples chmod +x ./* python body_interaction.py |
这时候往往无法出现图形界面并出现下面的错误提示.
3.2 解决 Error: GLEW initalization error: Missing GL version
这个问题在openai的issus里讨论了很长, 最后解决方法是在
1 2 | cd /usr/lib/x86_64-linux-gnu/ ls | grep libGLEW |
发现我电脑中文件名是
1 | export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so.1.13 |
有些人后面还加入nvidia显卡的
1 | export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/nvidia-390/libGL.so |
实际上我暂时没有找到对应的文件, 所以删掉了后面一段, 实际测试也并不影响.
至此, 整个安装都基本结束, 后面出现新问题再来填坑吧.
4. update
4.1 安装mujoco200:
- 官网直接下载
mujoco200 就行, 但是需要注意在解压之后, 得把mujoco200_linux 文件名改成mujoco200 才行, 不然在mujoco_py 中会因为路径名称不对找不到 (无力吐槽):
1 2 3 | unzip mujoco200_linux.zip mv mujoco200_linux ~/.mujoco/mujoco200 cp ~/.mujoco/mjkey.txt ~/.mujoco/mujoco200/bin #(这一步可能不需要) |
- 测试安装:
1 2 | cd ~/.mujoco/mujoco200/bin ./simulate ../model/humanoid.xml |
同样, 出现木偶人就OK啦
4.2 环境配置:
把原来的环境路径替换成一下:
1 2 | export LD_LIBRARY_PATH=~/.mujoco/mujoco200/bin${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export MUJOCO_KEY_PATH=~/.mujoco${MUJOCO_KEY_PATH} |
4.3 安装mujoco_py 2.1
先卸载旧的, 再安装2.1版本. 同时第一次使用时需要在python下
1 2 | pip uninstall mujoco_py pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -U 'mujoco-py<2.1,>=2.0' |
参考博客:
https://www.cnblogs.com/dinghongkai/p/11557917.html
https://blog.csdn.net/jianghao_ava/article/details/80874254
https://blog.csdn.net/jianghao_ava/article/details/81062337
https://blog.csdn.net/gsww404/article/details/80636676
https://blog.csdn.net/gsww404/article/details/80636676