Skip to content

A collection of manipulation tasks with the fetch robot

License

Notifications You must be signed in to change notification settings

geyang/gym-fetch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Extended Taskset for the Fetch Robot

PyPI version

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.

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 📈 in progress Pick up the object from the bin, and place out side 𝛅(obj, goal) < ε flat cylinder on bin
Bin-place-v2 📈 in progress Place the object into the bin 𝛅(obj, goal) < ε flat cylinder on table
Box-open-v2 📈 in progress Open the lid of the box, place on the side 𝛅(lid, goal) < ε flat cylinder on table
Box-close-v2 📈 in progress Close the box with its lid 𝛅(lid, goal) < ε sphere in air above box
Drawer-open-v2 📈 in progress open the drawer by pulling it 𝛅(drawer, goal) < ε sphere in air
Drawer-close-v2 📈 in progress 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 ✅ done
Bin-place-v2 ✅ done
Box-place-v2 ✅ done
Box-pick-v2 ✅ done
Drawer-place-v2 ✅ done
Drawer-pick-v2 ✅ done
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 ✅ done
DrawerBin-v2 ✅ done
BoxBinDrawer-v2 ✅ done
BoxBin-v0 DrawerBin-v0 BoxBinDrawer-v0

About

A collection of manipulation tasks with the fetch robot

Resources

License

Stars

Watchers

Forks

Packages

No packages published