当前位置: 首页 > news >正文

【机械臂】Windows 11安装Mujoco200并运行基于强化学习的多任务机械臂Meta-word基准

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\binC:\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 

如果程序不报错,说明程序安装成功

6 安装mujoco_py

mujoco_py 提供了一个 Python 接口,让用户可以在 Python 环境中方便地使用 MuJoCo 的功能。借助 mujoco_py,开发者无需编写复杂的 C 或 C++ 代码,就能进行物理仿真实验、开发机器人控制算法等。

pip install Cython==0.29.24 mujoco-py==2.0.2.8

然后在导入mujoco_py包之前,一定要添加 MuJoCo bin 目录到 DLL 搜索路径
在导入 mujoco_py 前,先使用 os.add_dll_directory 将 MuJoCo 的 bin 目录加入到 DLL 搜索路径中。例如:

import os
os.add_dll_directory(r"C:\Users\你的用户名\.mujoco\mjpro200\bin")
import mujoco_py

否则会报错ImportError: DLL load failed while importing cymj: 找不到指定的模块。

所有包如下:

-------------------- -----------
absl-py              2.1.0
cached-property      2.0.1
cffi                 1.17.1
cloudpickle          3.1.1
contourpy            1.1.1
cycler               0.12.1
Cython               0.29.24
etils                1.3.0
Farama-Notifications 0.0.4
fasteners            0.19
fonttools            4.56.0
glfw                 2.8.0
gym                  0.26.2
gym-notices          0.0.8
gymnasium            1.1.1
imageio              2.35.1
importlib_metadata   8.5.0
importlib_resources  6.4.5
joblib               1.4.2
kiwisolver           1.4.7
Mako                 1.3.9
MarkupSafe           2.1.5
matplotlib           3.7.5
metaworld            2.0.0
mujoco               3.2.3
mujoco-py            2.0.2.8
numpy                1.24.4
packaging            24.2
pillow               10.4.0
pip                  24.2
pycparser            2.22
pygame               2.6.1
PyOpenGL             3.1.9
pyparsing            3.1.4
python-dateutil      2.9.0.post0
scipy                1.10.1
setuptools           75.1.0
six                  1.17.0
typing_extensions    4.12.2
wheel                0.44.0
zipp                 3.20.2

相关文章:

  • Python定时任务管理器
  • CUDA编程入门代码
  • VUE叉的工作原理?
  • mysql下载与安装、关系数据库和表的创建
  • 【LLM学习】1-NLP回顾+Pytorch复习
  • 如何快速辨别zip压缩包伪加密
  • 系统架构设计师—系统架构设计篇—微服务架构
  • 【AI实践】基于TensorFlow/Keras的CNN(卷积神经网络)简单实现:手写数字识别的工程实践
  • 【玩转23种Java设计模式】结构型模式篇:组合模式
  • (最新教程)Cursor Pro订阅升级开通教程,使用支付宝订阅Cursor Pro Plus
  • saltstack通过master下发脚本批量修改minion_id,修改为IP
  • Spring使用@Scheduled注解的参数详解
  • 【数据仓库与数据挖掘基础】决策分析
  • ChromeDriver下载 最新版本 134.0.6998.35
  • WebUSB的常用API及案例
  • 【Python 数据结构 10.二叉树】
  • 爬虫案例七Python协程爬取视频
  • c++ auto关键字
  • SQL经典查询
  • 基于DeepSeek实现PDF嵌入SVG图片无损放大
  • 成都网站建设推广/重庆网站建设公司
  • 如何做网站公众号推广/seo网站设计
  • 上海网站原型设计/手机百度搜索引擎
  • 如何进行品牌宣传与推广/临沂seo建站
  • 绵阳微网站制作/竞价网络推广托管
  • 阎良做网站/seo推广方法