Windows 11安装Mujoco200并运行基于强化学习的多任务机械臂Meta-word基准
1 Meta-Word
Meta-World是一个开源的模拟基准测试平台,用于多任务和元强化学习(Meta-Reinforcement Learning, Meta-RL)的研究。它由斯坦福大学、加州大学伯克利分校、哥伦比亚大学、南加州大学和谷歌机器人团队的研究人员共同开发,并在2019年的机器人学习会议(CoRL 2019)上发表。
(1)Meta-World的核心目标
Meta-World旨在通过提供一个包含50个不同机器人操作任务的模拟环境,推动多任务学习和元强化学习算法的发展。这些任务设计得既多样化又具有共享结构,以便算法能够通过学习多个任务来快速适应全新的任务。与以往的基准测试不同,Meta-World强调在广泛的任务分布上进行训练,以实现对新任务的有效泛化。
(2) 任务设计
Meta-World包含50个不同的机器人操作任务,这些任务涉及常见的操作行为,如抓取、推动和放置物体。任务设计考虑了两种变异性:
- 参数化变异性(Parametric Variation):每个任务内部的物体位置和目标位置会随机变化,增加了任务的多样性。
- 非参数化变异性(Non-Parametric Variation):不同任务之间存在本质差异,例如“抓取物体”和“打开窗户”是完全不同的任务。
这种设计既保证了任务的多样性,又通过共享的操作结构(如抓取、推动等)为算法提供了泛化的可能性。
(3)动作、观测和奖励**
Meta-World中的所有任务都使用相同的机器人(模拟的Sawyer机械臂),并且动作空间和观测空间具有一致的结构:
- 动作空间:3D末端执行器的位置。
- 观测空间:包括末端执行器、物体和目标的3D位置,维度固定为9。
- 奖励函数:采用多组件奖励函数,包括到达(reach)、抓取(grasp)和放置(place)奖励,确保任务可解且奖励结构一致。
(4) 评估协议
Meta-World提供了多种评估模式,从简单的单任务适应到复杂的多任务泛化:
- ML1(单任务适应):在单一任务内适应新的目标位置。
- MT10和MT50(多任务学习):学习一个策略来解决10个或50个训练任务。
- ML10和ML45(元学习):在10个或45个训练任务上进行元训练,并在新的测试任务上快速适应。
(5)实验结果
研究人员在Meta-World上评估了多种多任务和元强化学习算法,发现:
- 当前的元强化学习算法在面对高度多样化的任务时表现不佳,尤其是在多任务学习和泛化到新任务方面。
- 例如,在ML10和ML45的评估中,即使是表现最好的算法也只能达到约30%的成功率,显示出很大的改进空间。
(6)未来方向**
Meta-World为未来的研究提供了新的方向:
- 算法改进:开发能够处理多样化任务分布的元强化学习算法。
- 基准扩展:增加图像观测、稀疏奖励、组合任务等,以更贴近现实世界的机器人学习场景。
2 安装Anaconda
如果已经安装了所有必需的Anaconda 软件包,可以跳过此步骤。
使用miniconda来管理虚拟环境,请确保您已按照以下说明安装了miniconda:https://docs.anaconda.com/miniconda/
下载后exe软件后安装,并将安装路径配置到环境变量Path
C:\Program Files\anaconda3\
3 安装visual studio build tools
官网下载:https://visualstudio.microsoft.com/zh-hans/downloads/
点击安装C++生成工具即可
4 配置Mujoco200来构建RL环境
要安装Mujoco200
,请访问:https://www.roboti.us/download.html,下载mujoco200 win64
,解压文件并将其放置在C:\Users\<用户名>\.mujoco\
,文件夹名称为mujoco200
。即C:\Users\<用户名>\.mujoco\mujoco200
。配置环境变量
- 打开 MuJoCo 官网的许可证页面:https://www.roboti.us/license.html。下载许可证文件,在页面中找到并点击 “Activation Key”或 Download 按钮,直接下载 mjkey.txt 文件。并将其复制到
C:\Users\<用户名>\.mujoco\mujoco200\bin
和C:\Users\<用户名>\.mujoco
目录下。 - 将
C:\Users\<用户名>\.mujoco\mujoco200\mujoco200
添加到系统环境变量Path
中。
- 构建虚拟环境,打开一个终端:
conda create -n legion python=3.7
conda activate legion
pip install dm_control mujoco-py==2.0.2.8 cython==0.29.33 protobuf==3.20.0 gym==0.20.0
- 安装成功后可以在bin文件夹中打开simulate.exe,并且将model文件夹中的XML文件夹拖拽到应用界面上则会出现对应模型的3D物理仿真模拟。
5 安装metaworld
安装修改后的metaworld环境
git clone https://github.com/Farama-Foundation/Metaworld.git
cd Metaworld
pip install .
如果报错“Failed to build mujoco-py ,ERROR: Could not build wheels for mujoco-py, which is required to install pyproject.toml-based projects”,重新执行以下命令
pip install dm_control mujoco-py==2.0.2.8 cython==0.29.33 protobuf==3.20.0 gym==0.20.0
测试程序
import metaworld
import random
print(metaworld.ML1.ENV_NAMES) # Check out the available environments
ml1 = metaworld.ML1('pick-place-v2') # Construct the benchmark, sampling tasks
env = ml1.train_classes['pick-place-v2']() # Create an environment with task `pick_place`
task = random.choice(ml1.train_tasks)
env.set_task(task) # Set task
obs = env.reset() # Reset environment
a = env.action_space.sample() # Sample an action
obs, reward, done, info = env.step(a) # Step the environment with the sampled
如果程序不报错,说明程序安装成功