Ubuntu 20.04 上使用 MuJoCo

在 Ubuntu 20.04 上使用 MuJoCo(特别是 ‌MuJoCo 210‌)进行强化学习或机器人仿真,需完成 ‌MuJoCo 本体安装‌ 和 ‌Python 接口(mujoco-py)配置‌。以下是基于最新公开资料整理的完整步骤。
‌一、MuJoCo 210 本体安装‌

‌获取许可证密钥(mjkey.txt)‌
    访问 MuJoCo 官网 注册账号并下载 mjkey.txt(学术/个人用途免费)‌1。

‌安装系统依赖‌

bashCopy Code
sudo apt update
sudo apt install build-essential libgl1-mesa-dev libgl1-mesa-glx libglew-dev libosmesa6-dev libglfw3 libglfw3-dev patchelf

‌下载并解压 MuJoCo 210‌

bashCopy Code
mkdir -p ~/.mujoco
cd ~/Downloads
wget https://mujoco.org/download/mujoco210-linux-x86_64.tar.gz
tar -zxvf mujoco210-linux-x86_64.tar.gz -C ~/.mujoco/

‌放置许可证文件‌

bashCopy Code
cp ~/Downloads/mjkey.txt ~/.mujoco/
cp ~/Downloads/mjkey.txt ~/.mujoco/mujoco210/bin/

‌设置环境变量‌
编辑 ~/.bashrc,添加以下内容:

bashCopy Code
export MUJOCO_PY_MUJOCO_PATH=~/.mujoco/mujoco210
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.mujoco/mujoco210/bin
export PATH=$PATH:~/.mujoco/mujoco210/bin

生效配置:

bashCopy Code
source ~/.bashrc

‌测试 MuJoCo 本体‌

bashCopy Code
cd ~/.mujoco/mujoco210/bin
./simulate ../model/humanoid.xml

若弹出 3D 人形模型窗口,则安装成功‌13。

‌二、Python 接口 mujoco-py 配置‌

⚠️ 注意:‌mujoco-py 已停止维护‌,官方推荐迁移到 mujoco + mujoco-python。但若项目依赖 mujoco-py,可按以下步骤安装。

‌创建 Conda 虚拟环境(推荐 Python 3.8)‌

bashCopy Code
conda create -n mujoco_env python=3.8
conda activate mujoco_env

‌安装 Python 依赖‌

bashCopy Code
pip install numpy cython pillow glfw imageio

‌克隆并安装 mujoco-py(锁定版本 2.1.x)‌

bashCopy Code
git clone https://github.com/openai/mujoco-py.git
cd mujoco-py
git checkout tags/2.1.2.14  # 使用兼容性最好的版本
pip install -r requirements.txt
pip install -r requirements.dev.txt
pip install -e .

‌常见问题解决‌
    ‌编译报错(如找不到 GL/gl.h)‌:确认已安装 libgl1-mesa-dev ‌1。
    ‌glfw 库找不到‌:手动指定路径或使用 conda install -c conda-forge glfw ‌1。
    ‌Cython 版本冲突‌:降级至 cython==0.29.21 或 0.29.31 ‌109。
    ‌黑屏/无图形‌:添加 export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so 到 .bashrc ‌45。

‌测试安装‌
创建 test.py:

pythonCopy Code
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)
sim.step()
print(sim.data.qpos)

运行后若输出关节位置数据,则成功‌13。
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
xiaosazi的头像-九桑
评论 抢沙发

请登录后发表评论

    暂无评论内容