12/14/2019 Presenting poster at Deep RL workshop at NeurIPS 2019! (paper)
8/30/2019 Doorgym-Unity plugin has been released!
DoorGym includes follows.
- Door knob data set (Pull knob, Lever knob, Round knob 3K each)
- Robot xml (UC Berkeley's BLUE, Rethinkrobot's Baxter)
- Random Door world generator
- Door opening policy trainer
- Mujoco-Unity Plugin ver. Doorgym
requirement:
- Ubuntu 16.04 or later (Confirmed only on 16.04)
-Python3.6 or later
-Mujoco
-Mujoco-py
-Gym 0.14.0 or later
-OpenAI Baseline 0.1.6 or later
-Unity3D
etc.
-
Get the license from MuJoCo License page
-
Download Mujoco2.00 from MuJoCo Product page.
-
Extruct it and place it in under
home/.mujoco
, as/mujoco200
(Not mujoco200_linux). -
Put your key under both
.mujoco/
and.mujoco/mujoco200/bin
.
Detailed installation can be checked in following page. https://github.com/openai/mujoco-py
sudo apt install libosmesa6-dev libgl1-mesa-glx libglfw3 libglew-dev libopenmpi-dev patchelf
Set following path in ~/.bashrc
.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/[usr-name]/.mujoco/mujoco200/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia-[driver-ver]
export PYTHONPATH=$PYTHONPATH:/home/[use-name]/DoorGym/DoorGym-Unity/python_interface
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so
git clone https://github.com/PSVL/DoorGym
cd ./DoorGym
git submodule init
git submodule update
conda env create -n doorgym -f environment/environment.yml
conda activate doorgym
pip install -r requirements.txt
pip install -r requirements.dev.txt
cd envs
pip install -e .
cd ../..
git clone https://github.com/openai/baselines
cd baselines
pip install -e .
Make sure that you can import pytorch and mujoco-py w/o problem.
Python 3.7.4 (default, Aug 13 2019, 20:35:49)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True
>>> import mujoco_py
If there is an error while importing mujoco-py, try trouble shooting according to the mujoco-py installation guide
You can download from the following URL (All tar.gz file).
Pull knobs (0.75 GB)
Lever knobs (0.77 GB)
Round knobs (1.24 GB)
- Extract and place the downloaded door knob dataset under the
world_generator/door
folder (or make a symlink). - Place your favorite robots under the
world_generator/robot
folder. (Blue robots are there as default)
cd [path/to/]DoorGym/world_generator
python world_generator.py --knob-type lever --robot-type floatinghook
Check the model by running the mujoco simulator
cd ~/.mujoco/mujoco200/bin
./simulate [path/to/DoorGym]/DoorGym/world_generator/world/lever_floatinghook/1551848929_lever_floatinghook.xml
More detailed instruction here
python main.py --env-name doorenv-v0 --algo ppo --num-steps 4096 --num-processes 8 --lr 1e-3 --save-name ppo-test --world-path /[abs_path/to/DoorGym/]DoorGym/world_generator/world/pull_floatinghook
python main.py --env-name doorenv-v0 --algo sac --save-name ppo-test --world-path /[abs_path/to/DoorGym/]DoorGym/world_generator/world/pull_floatinghook
--algo td3
or --algo a2c
.
Install Unity3D editor for Linux.
Open the project in DoorGym-Unity Plugin from submodule DoorGym-Unity
.
python main.py --env-name doorenv-v0 --algo ppo --num-steps 4096 --num-processes 8 --lr 1e-3 --save-name ppo-test --world-path /[abs_path/to/DoorGym/]DoorGym/world_generator/world/pull_floatinghook --visionnet-input --unity
python main.py --env-name doorenv-v0 --algo ppo --num-steps 4096 --num-processes 8 --lr 1e-3 --save-name ppo-test --world-path /[abs_path/to/DoorGym/]DoorGym/world_generator/world/pull_floatinghook --visionnet-input
python enjoy.py --env-name doorenv-v0 --load-name trained_models/ppo/doorenv-v0_reacher-pull-floatinghook.600.pt --world-path /[abs_path/to/DoorGym/]DoorGym/world_generator/world/pull_floatinghook
Newer paper with Sim2Real (NeurIPS workshop)
Arxiv paper: https://arxiv.org/abs/1908.01887
This repo is powered by following excellent repos and software.