强化学习环境 - robogym - 学习 - 1

强化学习环境 - robogym - 学习 - 1

项目地址

https://github.com/openai/robogym

为什么选择 robogym

  1. 自己的项目需要做一些机械臂 table-top 级的多任务操作

  2. robogym 基于 mujoco 搭建,构建了一个仿真机械臂桌面物体操作(pick-place、stack、rearrange)场景

  3. robogym 的例程效果看,支持多个相机视角,包括眼在手上和眼在手外,可以获取多视角视觉信息

  4. robogym 的物体支持 YCB 数据集格式

主要是这些原因,当然,看官方 readme.md 文档,它还有其他不错的功能。

国内主流社区对 robogym 的介绍比较少,所以选择写一些文档记录一下,作为参考。

安装

这里提供我的参考,倘若遇到其他bug还需要查找资料解决!

前提:你需要提前安装好 mujoco 200 、对应的 mujoco-py 和 Open AI gym(我选择0.12.0版本)。

创建 conda 环境:

sh 复制代码
conda create -n robogym python=3.7

启动这个 conda 环境:

shell 复制代码
conda activate robogym

从 github 上下载包文件(我下载到了 /home/xxx/ 目录下):

shell 复制代码
git clone https://github.com/openai/robogym.git

进入这个包文件:

shell 复制代码
cd robogym/

执行安装命令:

shell 复制代码
pip install -e .

等待安装即可!

还需要安装 pytorch ,推荐使用离线安装办法。链接:【https://blog.csdn.net/weixin_47142735/article/details/113684365】

至此,需要安装的就基本完成。

测试

需要一个 pycharm/vscode ,然后初始化一个 project/文件夹,与 robogym 的 conda 环境产生关联。

创建一个代码 test1.py 。

下面这个代码是我基于例程改的,可以作为测试。

python 复制代码
from robogym.envs.rearrange.blocks import make_env

# Create an environment with the default number of objects: 5
env = make_env(
    parameters={
        'simulation_params': {
            'num_objects': 5,
            'max_num_objects': 8,
        }
    }
)

# Acquire number of objects parameter interface
param = env.unwrapped.randomization.get_parameter("parameters:num_objects")

# Set num_objects: 3 for the next episode
param.set_value(3)


# Reset to randomly generate an environment with `num_objects: 3`
obs = env.reset()
while True:
    a = env.action_space.sample()
    env.step(a)
    env.render()

from robogym.envs.rearrange.blocks import make_env

# Create an environment with the default number of objects: 5
env = make_env(
    parameters={
        'simulation_params': {
            'num_objects': 5,
            'max_num_objects': 8,
        }
    }
)

# Acquire number of objects parameter interface
param = env.unwrapped.randomization.get_parameter("parameters:num_objects")

# Set num_objects: 3 for the next episode
param.set_value(3)


# Reset to randomly generate an environment with `num_objects: 3`
obs = env.reset()
while True:
    a = env.action_space.sample()
    env.step(a)
    env.render()
  • 右键点击运行,会报这个错误:

    复制代码
    ModuleNotFoundError: No module named 'attr'

    执行命令,解决:

    shell 复制代码
    pip install attrs
  • 右键点击运行,继续报这个错误:

    复制代码
    Please add following line to .bashrc:
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/xxx/.mujoco/mujoco210/bin

    我是用pycharm的,在 Run -> Edit Configurations... -> Environment Variables 这里,把 LD_LIBRARY_PATH 和 /home/xxx/.mujoco/mujoco210/bin 添加进去。

  • 右键点击运行,继续报这个错误:

    复制代码
    Please add following line to .bashrc:
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia

    同样,在 Run -> Edit Configurations... -> Environment Variables 这里,把 LD_LIBRARY_PATH 和 /usr/lib/nvidia 添加进去。

  • 右键点击运行,继续报这个错误:

    复制代码
    Cython.Compiler.Errors.CompileError: /home/xxx/anaconda3/envs/robogym/lib/python3.7/site-packages/mujoco_py-2.1.2.14-py3.7.egg/mujoco_py/cymj.pyx

    原因是 Cython 的包版本不对,重新安装即可。

    复制代码
    pip install Cython==3.0.0a10

接下来就可以运行了,第一次运行比较慢,因为 Cython 做一些初始化操作占据了时间,warnnings 不影响。

效果如下:

相关推荐
一隅论数智4 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
XiHongShi20164 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本4 天前
离散数学第六课
学习·离散数学
猎头南楼4 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
高洁014 天前
未来三年,AI 落地的五个确定性判断一
人工智能·深度学习·机器学习·transformer·知识图谱
AI职业加油站4 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
旖旎夜光4 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
奇思妙想聪明勤奋的小羊4 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
霍霍的袁4 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio