Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Table of contents

  1. Train Datasets (800-900 trajectories per task)
    1. Format of Dataset
  2. Eval/Target Dataset (10 trajectories per task)
  3. Datasets by Experimental Scenario
  4. Concatenating datasets

Train Datasets (800-900 trajectories per task)

  • T198: 198 obj, color, shape tasks: [hdf5 file]. ~48GB.
    • Contains task indices: 0-23, 36-44, 50-73, 86-94, 100-123, 136-144, 150-173, 186-194, 200-223, 236-244, 250-273, 286-294
  • T48: 48 obj tasks: [hdf5 file]. ~13GB.
    • Contains task indices: 24-31, 74-81, 124-131, 174-181, 224-231, 274-281
  • T54: 54 color, shape tasks: [hdf5 file]. ~10GB.
    • Contains task indices: 32-35, 45-49, 82-85, 95-99, 132-135, 145-149, 182-185, 195-199, 232-235, 245-249, 282-285, 295-299

Format of Dataset

  • Each dataset has a data group, under which the dataset attributes (date, env, etc) are stored.
  • Under the data group are groups for each task index. Each task index group contains 800-900 demos for that task.
  • Each demo contains actions and observations needed for BC/IL training. Rewards and terminals are also included if one desires to train an RL policy.
root:NXroot
  data:NXgroup
    @date = '3-29-2023'
    @env = 'Widow250PickPlaceGRFBLRObjCSRndDistractorRndTr...'
    @env_info = '{"env_name": "Widow250PickPlaceGRFBLRObjCSRndD...'
    @time = '18:36:50'
    0:NXgroup // This is the task idx
      demo_0:NXgroup
        @num_samples = 30
        actions = float64(30x8)
        env = 'Widow250PickPlaceGRFBLRObjCSRndDistractorRndTrayQuad-v0'
        env_infos:NXgroup
          grasp_success = bool(30)
          grasp_success_target = bool(30)
          num_objs_placed = int64(30)
          place_success = bool(30)
          place_success_target_container = bool(30)
          place_success_target_obj = bool(30)
          place_success_target_obj_target_container = bool(30)
          task_idx = int64(30)
        observations:NXgroup
          container_quadrants_onehot = float64(30x4)
          image = uint8(30x48x48x3)
          object_orientation = float64(30x4)
          object_position = float64(30x3)
          one_hot_task_id = float64(30x300)
          state = float64(30x10)
          target_container_pos_xy = float64(30x2)
          target_container_quadrant_onehot = float64(30x4)
          target_object_pos_xy = float64(30x2)
        rewards = float64(30)
        terminals = bool(30)
      demo_1:NXgroup
        ...
      ...
    1:NXgroup
    ...

Eval/Target Dataset (10 trajectories per task)

These are the same tasks as the 48 + 54 splits in the train datasets, but in a much smaller filesize provided as few-shot target task demonstrations. Since these are much smaller, we use the npy file format so that they are entirely loaded into memory during experiments.

  • E48 + E54: [npy file]. ~600MB.
    • Contains task indices: 24-35, 45-49, 74-85, 95-99, 124-135, 145-149, 174-185, 195-199, 224-235, 245-249, 274-285, 295-299

Datasets by Experimental Scenario

Exp. Scenario Train Target Onehot Oracle Train=Target buffer
(A) T198 E48 + E54 T48 + T54
(B) T198 + T48 E48 + E541 T54

1For experimental scenario B, we use the same dataset as experimental scenario A despite only testing on 54 of the dataset’s 102 tasks, because the experimental script automatically filters out the target demonstrations from the unused task indices.

Concatenating datasets

Due to the file size limit of our cloud storage server, some of the table entries above, such as Exp Scenario B, require concatenating two different files on your local machines, such as T198 + T48.

To concatenate, run:

python scripts/concatenate_datasets_hdf5.py -e Widow250PickPlaceGRFBLRObjCSRndDistractorRndTrayQuad-v0 -p [paths of downloaded files from above] -d [output dataset folder path]