文章目录(Table of Contents)
简介
Mujoco
是旨在促进机器人、生物力学、图形和动画等需要快速准确模拟领域研究和开发的物理引擎,常来作为连续空间强化学习算法的基准测试环境。它是一系列环境的集合(共有 20 个子环境),常用的子环境有 Ant
, Half
Cheetah
, Hopper
, Huanmoid
, Walker2D
等等,下图所示为其中 Hopper
游戏。
参考资料
- 强化学习环境-MUJOCO,
opendilab
对Mujoco
的介绍; - mujoco 官网,可以直接去官网进行下载;
- mujoco-py,
Github
官方mujoco-py
框架(mujoco-py
does not support versions of MuJoCo after 2.1.0.); - Gym-mujoco,
gym
文档对Mujoco
的介绍;
MuJoCo 的介绍
MuJoCo 的安装
Mujoco
最新版目前已经开源免费,不再需要激活许可。你可以使用 Deepmind
最新的 mujoco
库,或使用 OpenAI
的 mujoco-py
。
如果安装 mujoco>=2.2.0
, 可以通过如下方法:
- pip install dm_control
- pip install mujoco
- pip install gym
安装完毕之后,可以使用下面的命令验证安装是否成功:
- import gym
- env = gym.make('Hopper-v3')
- obs = env.reset()
- print(obs.shape) # (11, )
MuJoCo 环境的介绍
观察空间:物理信息组成的向量(3D position, orientation, and joint angles etc. ),具体尺寸为(N, )
,其中N
根据环境决定,数据类型为float64
动作空间:物理信息组成的向量 (torque etc.),一般是大小为 N
的连续动作空间。如在 Hopper
环境中,N
的大小为 3
,动作在 [-1,1]
中取值。
奖励空间:游戏得分,根据具体游戏内容不同会有非常大的差异,一般是一个float
数值。
MuJoCo 的简单使用
具体使用的方式和其他的 gym
环境是一样的。下面是一个简单的例子:
- import time
- import gym
- if __name__ == '__main__':
- env = gym.make("Hopper-v3")
- obs_space = env.observation_space.shape
- action_space = env.action_space.shape
- print(f'Obs: {obs_space}, Action: {action_space}.')
- state = env.reset()
- done = False
- while not done:
- env.render()
- action = env.action_space.sample()
- time.sleep(.1)
- state, reward, done, _ = env.step(action)
- print(action, done)
可能出现的问题
ERROR: GLEW initalization error: Missing GL version
在使用 env.render()
的时候可能会出现上面的问题。我们首先确保 libglew-dev
已经安装了。使用下面的命令尝试:
- sudo apt-get update -y
- sudo apt-get install -y libglew-dev
接着添加环境变量即可:
- export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so
添加完毕之后,记得重启终端,并使用 echo $LD_PRELOAD
来进行验证。参考资料,GLEW initalization error: Missing GL version
X11/Xlib.h not found in Ubuntu
使用下面的命令进行安装即可:
- sudo apt install libx11-dev
- 微信公众号
- 关注微信公众号
- QQ群
- 我们的QQ群号
评论