配置環境:ubuntu18.04,python3.6,mujoco200
配置完mujoco + mujoco-py + gym
後嘗試運行以下測試代碼:
(在安裝gym的過程中發現gym強制安裝mujoco150,但mujoco-py是和mojoco200匹配的,於是修改了gym根目錄下的setup.py文件中的mujoco版本號)
import gym
#導入環境
env = gym.make('Ant-v2')
#初始化環境
env.reset()
#循環1000次
for _ in range(1000):
#繪圖
env.render()
#進行一個動作
a = env.action_space.sample()
s, r, d, _ = env.step(a) # take a random action
print(a,s,r,d)
#關閉
env.close()
報錯如下:
Running trained model
Creating window glfw
ERROR: GLEW initalization error: Missing GL version
Press Enter to exit ...Killed
如果不調用render()
函數進行可視化的話是沒有問題的,也就是對跑實驗沒有影響。但無法可視化意味着無法錄製視頻,還是一件棘手的問題。
在[1]中該博主環境爲ubuntu16.04LTS, python3, cuda8.0, mujoco1.5
,其添加的環境變量如下:
sudo gedit ~/.bashrc
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/nvidia-390/libGL.so
source ~/.bashrc
但我的usr/lib
中沒有文件夾nvidia
,更沒有libGL.so
。不知是版本問題還是其他原因,我的解決方法是:
sudo gedit ~/.bashrc
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so
source ~/.bashrc
至此gym可以成功可視化mujoco環境。
References
[1] https://blog.csdn.net/gsww404/article/details/80636676
[2] https://github.com/openai/mujoco-py/pull/145