Extended Taskset for the Fetch Robot
InstallationΒ (from PyPI)
you can install the newest version via
pip install gym-fetch
Alternatively, you can clone this repo and install under development mode:
git clone <this repo>
cd <this repo>
pip install -e .
Cloning and Installing A Specific Version
For those who do not use pip, you can pull/checkout specific versions of the repository using a git tag
. Github integrates with git, such that it shows tagged versions under the <project-repo>/releases
URL. You can check out the releases for this repo atΒ https://github.com/geyang/gym-fetch/releases. To pull a specific version, just run:
git checkout v0.1.0-rc5
After git clone, the structure of the project is
$ tree . -L 1
gym-fetch
βββ fetch
βββ specs
To install, you can use pip
pip install -e .
Alternatively, you can include the ./gym-fetch directory as part of your PYTHONPATH
.
Environments for Latent-Planning
Box
Environments
We extend existing Fetch environments from gym, with 7 new manipulation
tasks. The gym.Fetch
environment are much better engineered than the
sawyer environments that metaworld
uses. They are faster to initialize,
and have a small (50 step) maximum episode length, making these environments
faster to train on.
We might or might not need to extend the
max_episode_steps
on more complex tasks.
Reach-v2 | Push-v2 | PickPlace-v2 | Slide-v2 |
---|---|---|---|
For Up-To-Date Environment Documentation
All documentations are maintained in the ./specs folder, where each task set is one markdown file.
- original gym fetch tasks: ./specs/gym_fetch.md
-
bin
tasks: ./specs/bin.md -
bin_debug
tasks: ./specs/bin_debug.md -
box
tasks: ./specs/box.md -
drawer
tasks: ./specs/drawer.md
The multi-task environments are still under development. They are located under
fetch
βββ tasksets
βββ box_block.md
βββ box_block.py
Primitive Single Task Environments
The tasks involve a single primitive action such as open/closing a box, or a drawer. They do not additionally involve placing an object into the opened drawer or box. We include bin picking and placing because the bin does not require additional actions to open.
Name | Status | Details | Reward | Goal |
---|---|---|---|---|
Bin-pick-v2 |
|
Pick up the object from the bin, and place out side | π (obj, goal) < Ξ΅ | flat cylinder on bin |
Bin-place-v2 |
|
Place the object into the bin | π (obj, goal) < Ξ΅ | flat cylinder on table |
Box-open-v2 |
|
Open the lid of the box, place on the side | π (lid, goal) < Ξ΅ | flat cylinder on table |
Box-close-v2 |
|
Close the box with its lid | π (lid, goal) < Ξ΅ | sphere in air above box |
Drawer-open-v2 |
|
open the drawer by pulling it | π (drawer, goal) < Ξ΅ | sphere in air |
Drawer-close-v2 |
|
close the drawer by pushing it in | π (drawer, goal) < Ξ΅ | sphere in air |
Box-open-v0 | Box-close-v0 | Bin-pick-v0 | Bin-place-v0 |
---|---|---|---|
Drawer-open-v0 | Drawer-close-v0 | ||
Intermediate Task
These tasks additionally require placing the object
inside an open drawer or box. We include the Bin-picking
environment for completeness.
Name | Status |
---|---|
Bin-pick-v2 |
|
Bin-place-v2 |
|
Box-place-v2 |
|
Box-pick-v2 |
|
Drawer-place-v2 |
|
Drawer-pick-v2 |
|
Bin-pick-v0 | Bin-place-v0 | Box-pick-v0 | Box-place-v0 |
---|---|---|---|
Drawer-pick-v0 | **Drawer-place-v0 ** | ||
Multi-task Environments
These environments require significantly more memory due to the increasing complexity of contact detection and collision dynamics. These are also slower to run.
Name | Render |
---|---|
BoxBin-v2 |
|
DrawerBin-v2 |
|
BoxBinDrawer-v2 |
|
BoxBin-v0 | DrawerBin-v0 | BoxBinDrawer-v0 |
---|---|---|