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

强化学习环境 - 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 环境:

conda create -n robogym python=3.7

启动这个 conda 环境:

conda activate robogym

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

git clone https://github.com/openai/robogym.git

进入这个包文件:

cd robogym/

执行安装命令:

pip install -e .

等待安装即可!

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

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

测试

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

创建一个代码 test1.py

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

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'
    

    执行命令,解决:

    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 不影响。

效果如下:

1

2

http://www.lryc.cn/news/182305.html

相关文章:

  • 如果在 Mac 上的 Safari 浏览器中无法打开网站
  • 力扣练习——链表在线OJ
  • 四、互联网技术——局域网拓扑结构
  • Spring Webflux DispatcherHandler源码整理
  • 【Netty】ByteToMessageDecoder源码解析
  • DevEco Studio设置Nodejs提示路径只能包含英文、数字、下划线等
  • 大模型 Decoder 的生成策略
  • 队列和栈相互实现
  • Node.js 是如何处理请求的
  • 数据结构与算法之堆: Leetcode 215. 数组中的第K个最大元素 (Typescript版)
  • SpringBoot快速入门
  • 深度学习笔记_4、CNN卷积神经网络+全连接神经网络解决MNIST数据
  • 高效的开发流程搭建
  • 浅谈OV SSL 证书的优势
  • 一篇博客学会系列(3) —— 对动态内存管理的深度讲解以及经典笔试题的深度解析
  • 【C++ techniques】虚化构造函数、虚化非成员函数
  • 蓝牙核心规范(V5.4)11.6-LE Audio 笔记之初识音频位置和通道分配
  • mysql双主+双从集群连接模式
  • 嵌入式中如何用C语言操作sqlite3(07)
  • RandomForestClassifier 与 GradientBoostingClassifier 的区别
  • 计组——I/O方式
  • jsbridge实战2:Swift和h5的jsbridge通信
  • 集合原理简记
  • 机器学习的超参数 、训练集、归纳偏好
  • Leetcode1071. 字符串的最大公因子(三种方法,带详细解析)
  • 如何像人类一样写HTML之图像标签,超链接标签与多媒体标签
  • 1300*C. Rumor(并查集贪心)
  • python实用小代码(数据分析向)
  • 【oncmdmsg 鼠标】2023/8/19 上午9:50:14
  • 插入排序:简单而有效的排序方法