ubuntu18.04 install mujoco150 & gym0.2

看了看网上我这个搭配的教程比较少,所以把折磨的过程写下来供需要的人参考。

(是真的折磨啊,虽然肯定有我linux用的少的原因就是了ORZ)

1.下载安装 Anaconda 并创建虚拟环境 

wget https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-2022.10-Linux-x86_64.sh --no-check-certificate
bash Anaconda3-2022.10-Linux-x86_64.sh
按照默认安装即可

source ~/.bashrc  (出现base前缀)
创建了名为gym0.2的python=3.6的虚拟环境

conda create -n gym0.2 python=3.6
激活环境

conda activate gym0.2 (出现gym0.2前缀)


***之后所有操作都要在激活虚拟环境下完成,即前缀需要显示为gym0.2***

2.调整gcc和g++版本

安装4.8版本 

sudo apt install gcc-4.8 gcc-4.8-multilib g++-4.8 g++-4.8-multilib
注册 

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
查看当前所有版本 

ll /usr/bin/gcc*
删除除了4.8之外的版本(比如7)  

sudo update-alternatives --remove gcc /usr/bin/gcc-7
sudo apt-get remove gcc-7
**再重新执行4.8版本的安装和注册**

查看当前所有版本

 ll /usr/bin/gcc*
发现仅有4.8存在,成功

3.下载mujoco150

下载mjpro150 linux : https://roboti.us/download.html

下载密钥 https://roboti.us/license.html 下载蓝色字的 Activation key  ,下载之后是一个txt的key

在主目录创建一个.mujoco(注意前面有个'.')的文件夹,注意.开头的文件夹是隐藏的,你需要在文件夹右上边的选项中显示隐藏文件夹,或者使用命令行完成家下来的操作

将mjpro150文件夹和key文件一起放到.mujoco文件夹中

添加环境变量

sudo echo "export LD_LIBRARY_PATH=~/.mujoco/mjpro150/bin:$LD_LIBRARY_PATH" >> ~/.bashrc
sudo echo "export MUJOCO_KEY_PATH=~/.mujoco:$MUJOCO_KEY_PATH" >> ~/.bashrc 
刷新(刷新后需要重新激活gym0.2环境)

source ~/.bashrc
测试是否安装成功

cd ~/.mujoco/mujoco200/bin/
./simulate ../model/humanoid.xml
4.安装mojoco-py

直接使用

pip install mujoco-py==1.50.1.0
***其他版本链接https://github.com/openai/mujoco-py/releases**

测试

将以下代码保存为test1.py文件

import mujoco_py
import os
# 获取MuJoCo的安装路径
mj_path, _ = mujoco_py.utils.discover_mujoco()
# 构建XML文件路径
xml_path = os.path.join(mj_path, 'model', 'humanoid.xml')
# 加载MuJoCo模型
model = mujoco_py.load_model_from_path(xml_path)
# 创建MuJoCo模拟器
sim = mujoco_py.MjSim(model)
# 打印初始状态
print("Initial qpos:")
print(sim.data.qpos)
# 进行一步模拟
sim.step()
# 打印模拟后的状态
print("\nqpos after one step:")
print(sim.data.qpos)


在gym0.2环境中运行,运行上述代码 

python3 test1.py
我分别遇到过成功与不成功的情况

其中不成功的报错内容很长,其中关键内容是

'mjtDisableBit' redeclared 

 'mjtEnableBit' redeclared 

等众多重复声明,以及Exception check on 'c_warning_callback' will always require the GIL

解决办法:降低cython版本

使用

cython --version
查看当前版本(需要0.29.21版本)

卸载当前版本

pip uninstall Cython
安装旧版本

pip install -U Cython==0.29.21
再次运行

python3 test1.py
等待重编译,如果出现以下结果表明安装成功

Initial qpos:

[0. 0. 1.4 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.

 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ]

qpos after one step:

[-1.27161562e-06 1.44864634e-21 1.39996033e+00 1.00000000e+00

 1.03660792e-21 5.72581843e-06 1.82492769e-20 7.72447910e-20

 7.56543337e-06 -1.25013603e-20 -5.48340066e-07 1.11131854e-05

 -1.31327715e-04 -3.02014428e-04 -3.07930146e-04 1.38935774e-05

 -5.48340066e-07 1.11131854e-05 -1.31327715e-04 -3.02014428e-04

 -3.07930146e-04 -1.38935774e-05 -8.12365751e-06 9.97029984e-06

 -2.12264641e-06 8.12365751e-06 -9.97029984e-06 -2.12264641e-06]

5.安装gym0.20.0

cd ~/
git clone https://github.com/openai/gym.git
cd gym/
git checkout v0.20.0
sudo apt-get install -y python-numpy python-dev cmake zlib1g-dev libjpeg-dev xvfb ffmpeg xorg-dev python-opengl libboost-all-dev libsdl2-dev swig python3-pil libglfw3-dev


这时先不要运行  pip install -e '.[all]'

会卡在Building wheel for opencv-python (PEP 517) ... 很久最后error

原因是python3.6版本对最新版的opencv不完全支持,所以需要提前安装降级版

pip install opencv-python==4.3.0.38


然后再使用

pip install -e '.[all]' 
安装完整版gym

到此安装完成

后面还会有一些依赖不支持python3.6

比如Pyglet 

使用

pip install pyglet==1.5.0 
完成降级

运行如下代码(同样是保存为.py文件,然后用python运行)可以检测gym是否可以正常运行

import gym
env = gym.make('HandManipulateBlock-v0')
obs = env.reset()
num_steps = 10000
for step in range(num_steps):
  # take random action
  action = env.action_space.sample()
  obs, reward, done, info = env.step(action)
  env.render()
  if done:
    env.reset()
env.close()
如果出现openGL或者GLEW的报错,可能是你的显卡驱动掉了,N卡的话用nvidia-smi看看驱动是否正常。(其他的我也不知道了,看到别人还有用手动安装3.3版本的GLEW解决的,但是对我无效。)

结尾

没有特殊情况还是用新环境装新版本比较好orz,在2024年装老版本还是挺折磨的 

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值