Ubuntu上安装mujoco
1、安装mujoco
安装地址https://github.com/openai/mujoco-py
点击linux下载文件,并解压
将解压文件放到.mujoco文件夹中
(没有.mujoco就在主目录里新建一个)
下载安装秘钥
https://www.roboti.us/license.html
将mjkey.txt复制进/.mujoco和/.mujoco/mujoco200/bin两个文件夹中
2、安装完后测试
cd ~/.mujoco/mujoco200/bin
./simulate …/model/humanoid.xml
3、mujoco配置
在.bashrc文件中加入mujoco路径
(1)打开’.bashrc’文件:gedit ~/.bashrc(别落下点)
把以下内容粘贴至文件中。(注意对照自己的文件名称,我这里是mujoco200)
export LD_LIBRARY_PATH=~/.mujoco/mujoco200/bin${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export MUJOCO_KEY_PATH=~/.mujoco${MUJOCO_KEY_PATH}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.mujoco/mujoco200/bin
(2)执行:source ~/.bashrc
4、mujoco_py下载
(1) git clone https://github.com/openai/mujoco-py.git
(2) 进入mujoco-py目录:cd mujoco-py
(3)安装mujoco_py:pip3 install -U ‘mujoco-py<2.1,>=2.0’
如果按照210版本:pip3 install -U ‘mujoco-py<2.2,>=2.1’
(4)pycharm中使用mujoco报错如下:
解决方法:
pycharm:菜单栏->Run-> Edit Configurations -> Environment Variables 添加上相应的环境变量,如:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/rootcom/.mujoco/mujoco200/bin
5、安装成功后应该可以运行官网的例子
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]
6.报错:distutils.errors.CompileError: command ‘gcc’ failed with exit status 1
(1) 查看是否安装gcc
~/.mujoco/mujoco210/bin$ gcc --version
找不到命令 “gcc”,但可以通过以下软件包安装它:
sudo apt install gcc
(2)执行sudo apt install gcc
(3)继续报错: distutils.errors.CompileError: command ‘gcc’ failed with exit status 1
mujoco_py/gl/osmesashim.c:1:10: fatal error: GL/osmesa.h: 没有那个文件或目录
1| #include <GL/osmesa.h>
| ^~~~~~~~~~~~~
distutils.errors.CompileError: command 'gcc' failed with exit status 1
这次 ‘gcc’ failed with exit的原因是:fatal error: GL/osmesa.h
执行
sudo apt-get install libosmesa6-dev
报错:FileNotFoundError: [Errno 2] No such file or directory: ‘patchelf’: ‘patchelf’
sudo apt install patchelf
报错:…/lib/libstdc++.so.6: version `GLIBCXX_3.4.30’ not found (required by /lib/x86_64-linux-gnu/libLLVM-15.so.1)
解决方法:解决 libstdc++.so.6: version ‘GLIBCXX_3.4.30‘ not found 问题
使用"ll"命令根据报错信息查看一下该文件的概况:
ll /home/xxx/anaconda3/envs/xxx/bin/…/lib/libstdc++.so.6
进入libstdc++.so.6所在文件夹
cd /home/xxx/anaconda3/envs/xxx/bin/../lib/
利用"strings"命令看一下指向的文件其GLIBCXX的东西是否能对应上:
strings libstdc++.so.6 | grep GLIBCXX_3.4.30
sudo apt install plocate
locate libstdc++.so.6
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 | grep GLIBCXX_3.4.30
rm libstdc++.so.6
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 /home/xxx/anaconda3/envs/xxx/lib/libstdc++.so.6