Ubuntu20.04安装mujoco210, mujoco-py时的报错处理

参考 Ubantu 20.04 安装 Mujoco210、mujoco-py、gym及报错解决

安装 mujoco210

  1. 创建 .mujoco 文件夹
bash 复制代码
mkdir ~/.mujoco

亲测必须是 .mujoco 文件夹,不然会报错!

  1. 下载 mujoco210-linux-x86_64.tar.gz 并解压到 .mujoco 文件夹
    mojoco下载地址

  2. 测试 mojoco210

bash 复制代码
cd ~/.mujoco/mujoco210/bin
./simulate ../model/humanoid.xml

安装 mujoco-py

  1. 创建虚拟环境
bash 复制代码
conda create -n xxx python=3.8
conda activate xxx
  1. 克隆 mujoco-py
bash 复制代码
git clone https://github.com/openai/mujoco-py.git

这个路径可以随意放置

  1. 在虚拟环境下安装 mujoco-py
bash 复制代码
cd ~/mujoco-py
pip3 install -U 'mujoco-py<2.2,>=2.1'
pip3 install -r requirements.txt
pip3 install -r requirements.dev.txt
python3 setup.py install
  1. 配置环境变量
bash 复制代码
gedit ~/.bashrc
bash 复制代码
# 此处更改了所参考博文中的不当之处,相同名称的环境变量要确保所有路径合并,不然后反复交叉报错
# user_name 为用户名
export LD_LIBRARY_PATH=/usr/lib/nvidia:/home/user_name/.mujoco/mujoco210/bin:$LD_LIBRARY_PATH
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so
bash 复制代码
source ~/.bashrc
  1. 测试 1
    测试方法参照所参考的博文,在 pycharm (解释器设置为上述虚拟环境)中粘贴以下内容:
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)
# [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]

运行将会报错,这主要是由于 pycharm 无法获取到 .bashrc 中的环境变量信息,需要手动添加环境变量:

名称 LD_LIBRARY_PATH

值 /usr/lib/nvidia:/home/user_name/.mujoco/mujoco210/bin:$LD_LIBRARY_PATH

在代码处 鼠标右键 修改运行配置

还可能报一些文件/依赖缺失的错,逐个安装即可:

bash 复制代码
sudo apt-get update
sudo apt-get install \
    patchelf \
    libglew-dev \
    libglfw3-dev \
    libosmesa6-dev \
    libegl1-mesa-dev \
    python3-dev \
    build-essential

运行成功!

  1. 测试2
    测试方法参照所参考的博文
bash 复制代码
conda activate mujocopy38
cd ./mujoco-py/examples
python body_interaction.py

运行成功!