强化学习环境 - robogym - 学习 - 1
项目地址
https://github.com/openai/robogym
为什么选择 robogym
-
自己的项目需要做一些机械臂 table-top 级的多任务操作
-
robogym 基于 mujoco 搭建,构建了一个仿真机械臂桌面物体操作(pick-place、stack、rearrange)场景
-
robogym 的例程效果看,支持多个相机视角,包括眼在手上和眼在手外,可以获取多视角视觉信息
-
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 不影响。
效果如下: