CoolFace
Datasetpublic

lucazanett/wiping_baseline_low_stiff

This dataset was created using LeRobot. Dataset Structure meta/info.json: { "codebase_version": "v3.0", "robot_type": "custom_manipulator", "total_episodes": 44, "total_frames": 58083, "total_tasks": 1, "chunks_size": 1000, "data_files_size_in_mb": 20, "video_files_size_in_mb": 200, "fps": 50, "splits": { "train": "0:44" }, "data_path": "data/chunk-{chunk_index:03d}/file-{file_index:03d}.parquet", "video_path":… See the full description on the dataset page: https://huggingface.co/datasets/lucazanett/wiping_baseline_low_stiff.

sourceHugging Faceapache-2.0updated 24d agoView on Hugging Face
0likes230downloads
Dataset Card

This dataset was created using LeRobot.

<a class="flex" href="https://huggingface.co/spaces/lerobot/visualizedataset?path=lucazanett/wipingbaselinelowstiff"> <img class="block dark:hidden" src="https://huggingface.co/datasets/huggingface/badges/resolve/main/visualize-this-dataset-xl.svg"/> <img class="hidden dark:block" src="https://huggingface.co/datasets/huggingface/badges/resolve/main/visualize-this-dataset-xl-dark.svg"/> </a>

Dataset Description

  • —Homepage: [More Information Needed]
  • —Paper: [More Information Needed]
  • —License: apache-2.0

Dataset Structure

meta/info.json:

json
{
    "codebase_version": "v3.0",
    "robot_type": "custom_manipulator",
    "total_episodes": 44,
    "total_frames": 58083,
    "total_tasks": 1,
    "chunks_size": 1000,
    "data_files_size_in_mb": 20,
    "video_files_size_in_mb": 200,
    "fps": 50,
    "splits": {
        "train": "0:44"
    },
    "data_path": "data/chunk-{chunk_index:03d}/file-{file_index:03d}.parquet",
    "video_path": "videos/{video_key}/chunk-{chunk_index:03d}/file-{file_index:03d}.mp4",
    "features": {
        "action": {
            "dtype": "float32",
            "names": [
                "position.x",
                "position.y",
                "position.z",
                "orientation_6d.0",
                "orientation_6d.1",
                "orientation_6d.2",
                "orientation_6d.3",
                "orientation_6d.4",
                "orientation_6d.5",
                "gripper"
            ],
            "shape": [
                10
            ]
        },
        "observation.state": {
            "dtype": "float32",
            "names": [
                "position.x",
                "position.y",
                "position.z",
                "orientation_6d.0",
                "orientation_6d.1",
                "orientation_6d.2",
                "orientation_6d.3",
                "orientation_6d.4",
                "orientation_6d.5",
                "gripper",
                "gripper_force",
                "obj_detected"
            ],
            "shape": [
                12
            ]
        },
        "observation.images.wrist_rgb": {
            "dtype": "video",
            "shape": [
                480,
                640,
                3
            ],
            "names": [
                "height",
                "width",
                "channels"
            ],
            "info": {
                "video.height": 480,
                "video.width": 640,
                "video.codec": "h264",
                "video.pix_fmt": "yuv420p",
                "video.is_depth_map": false,
                "video.fps": 50,
                "video.channels": 3,
                "has_audio": false
            }
        },
        "observation.images.behind_rgb": {
            "dtype": "video",
            "shape": [
                480,
                640,
                3
            ],
            "names": [
                "height",
                "width",
                "channels"
            ],
            "info": {
                "video.height": 480,
                "video.width": 640,
                "video.codec": "h264",
                "video.pix_fmt": "yuv420p",
                "video.is_depth_map": false,
                "video.fps": 50,
                "video.channels": 3,
                "has_audio": false
            }
        },
        "observation.environment_state": {
            "dtype": "float32",
            "names": [
                "ft_fx",
                "ft_fy",
                "ft_fz",
                "ft_tx",
                "ft_ty",
                "ft_tz"
            ],
            "shape": [
                6
            ]
        },
        "timestamp": {
            "dtype": "float32",
            "shape": [
                1
            ],
            "names": null
        },
        "frame_index": {
            "dtype": "int64",
            "shape": [
                1
            ],
            "names": null
        },
        "episode_index": {
            "dtype": "int64",
            "shape": [
                1
            ],
            "names": null
        },
        "index": {
            "dtype": "int64",
            "shape": [
                1
            ],
            "names": null
        },
        "task_index": {
            "dtype": "int64",
            "shape": [
                1
            ],
            "names": null
        }
    },
    "recording_strategy": {
        "source_file": "/home/lzanetti/workspaces/lerobot_teleop_ws/recording_strategy/whiteboard_wiping_44episodes_multistroke_fixed_start.json",
        "strategy": {
            "dataset_name": "whiteboard_wiping_act_v3_multistroke_44episodes",
            "version": "3.0",
            "purpose": "40 training + 4 validation episodes biased toward larger marks requiring two or more wiping strokes.",
            "split": {
                "training_episode_ids": [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15,
                    16,
                    17,
                    18,
                    19,
                    20,
                    21,
                    22,
                    23,
                    24,
                    25,
                    26,
                    27,
                    28,
                    29,
                    30,
                    31,
                    32,
                    33,
                    34,
                    35,
                    36,
                    37,
                    38,
                    39,
                    40
                ],
                "validation_episode_ids": [
                    41,
                    42,
                    43,
                    44
                ],
                "validation_usage": "Validation only; exclude from training and normalization statistics."
            },
            "fixed_conditions": {
                "wiper_initial_pose": "wiping_home; identical every episode",
                "wiper_initial_position_varied": false,
                "wiper_tool": "fixed",
                "wiper_grasp": "fixed",
                "camera_mounts": "fixed",
                "wiping_strategy": "horizontal raster"
            },
            "dataset_balance": {
                "training_single_stroke_or_short": 8,
                "training_multi_stroke": 32,
                "validation_multi_stroke": 4,
                "note": "Multi-stroke marks must genuinely be large enough to require the requested number of passes."
            },
            "episodes": [
                {
                    "episode_id": 1,
                    "split": "train",
                    "purpose": "Central baseline",
                    "read_aloud": "Episode 1. Place a small square at the center, around X 0.50, Y 0.50. Use at least 1 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.5
                        },
                        "mark_type": "small_square",
                        "mark_size_class": "small",
                        "expected_min_strokes": 1,
                        "multi_stroke_required": false,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 2,
                    "split": "train",
                    "purpose": "Left baseline",
                    "read_aloud": "Episode 2. Place a small square at the middle left, around X 0.35, Y 0.50. Use at least 1 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.35,
                            "y": 0.5
                        },
                        "mark_type": "small_square",
                        "mark_size_class": "small",
                        "expected_min_strokes": 1,
                        "multi_stroke_required": false,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 3,
                    "split": "train",
                    "purpose": "Right baseline",
                    "read_aloud": "Episode 3. Place a small square at the middle right, around X 0.65, Y 0.50. Use at least 1 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.65,
                            "y": 0.5
                        },
                        "mark_type": "small_square",
                        "mark_size_class": "small",
                        "expected_min_strokes": 1,
                        "multi_stroke_required": false,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 4,
                    "split": "train",
                    "purpose": "Lower baseline",
                    "read_aloud": "Episode 4. Place a small square at the lower center, around X 0.50, Y 0.35. Use at least 1 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.35
                        },
                        "mark_type": "small_square",
                        "mark_size_class": "small",
                        "expected_min_strokes": 1,
                        "multi_stroke_required": false,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 5,
                    "split": "train",
                    "purpose": "Upper baseline",
                    "read_aloud": "Episode 5. Place a small square at the upper center, around X 0.50, Y 0.65. Use at least 1 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.65
                        },
                        "mark_type": "small_square",
                        "mark_size_class": "small",
                        "expected_min_strokes": 1,
                        "multi_stroke_required": false,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 6,
                    "split": "train",
                    "purpose": "Lower-left short mark",
                    "read_aloud": "Episode 6. Place a small horizontal line at the lower left, around X 0.30, Y 0.30. Use at least 1 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.3,
                            "y": 0.3
                        },
                        "mark_type": "horizontal_line",
                        "mark_size_class": "small",
                        "expected_min_strokes": 1,
                        "multi_stroke_required": false,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 7,
                    "split": "train",
                    "purpose": "Lower-right short mark",
                    "read_aloud": "Episode 7. Place a small horizontal line at the lower right, around X 0.70, Y 0.30. Use at least 1 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.7,
                            "y": 0.3
                        },
                        "mark_type": "horizontal_line",
                        "mark_size_class": "small",
                        "expected_min_strokes": 1,
                        "multi_stroke_required": false,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 8,
                    "split": "train",
                    "purpose": "Upper short mark",
                    "read_aloud": "Episode 8. Place a small irregular scribble at the upper center, around X 0.50, Y 0.75. Use at least 1 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.75
                        },
                        "mark_type": "irregular_scribble",
                        "mark_size_class": "small",
                        "expected_min_strokes": 1,
                        "multi_stroke_required": false,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 9,
                    "split": "train",
                    "purpose": "Lower-left two-stroke patch",
                    "read_aloud": "Episode 9. Place a medium wide rectangle at the lower left, around X 0.30, Y 0.30. Use at least 2 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.3,
                            "y": 0.3
                        },
                        "mark_type": "wide_rectangle",
                        "mark_size_class": "medium",
                        "expected_min_strokes": 2,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 10,
                    "split": "train",
                    "purpose": "Lower-center two-stroke patch",
                    "read_aloud": "Episode 10. Place a medium wide rectangle at the lower center, around X 0.50, Y 0.30. Use at least 2 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.3
                        },
                        "mark_type": "wide_rectangle",
                        "mark_size_class": "medium",
                        "expected_min_strokes": 2,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 11,
                    "split": "train",
                    "purpose": "Lower-right two-stroke patch",
                    "read_aloud": "Episode 11. Place a medium wide rectangle at the lower right, around X 0.70, Y 0.30. Use at least 2 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.7,
                            "y": 0.3
                        },
                        "mark_type": "wide_rectangle",
                        "mark_size_class": "medium",
                        "expected_min_strokes": 2,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 12,
                    "split": "train",
                    "purpose": "Middle-left two-stroke patch",
                    "read_aloud": "Episode 12. Place a medium wide rectangle at the middle left, around X 0.30, Y 0.50. Use at least 2 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.3,
                            "y": 0.5
                        },
                        "mark_type": "wide_rectangle",
                        "mark_size_class": "medium",
                        "expected_min_strokes": 2,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 13,
                    "split": "train",
                    "purpose": "Middle-right two-stroke patch",
                    "read_aloud": "Episode 13. Place a medium wide rectangle at the middle right, around X 0.70, Y 0.50. Use at least 2 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.7,
                            "y": 0.5
                        },
                        "mark_type": "wide_rectangle",
                        "mark_size_class": "medium",
                        "expected_min_strokes": 2,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 14,
                    "split": "train",
                    "purpose": "Upper-left two-stroke patch",
                    "read_aloud": "Episode 14. Place a medium wide rectangle at the upper left, around X 0.30, Y 0.70. Use at least 2 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.3,
                            "y": 0.7
                        },
                        "mark_type": "wide_rectangle",
                        "mark_size_class": "medium",
                        "expected_min_strokes": 2,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 15,
                    "split": "train",
                    "purpose": "Upper-center two-stroke patch",
                    "read_aloud": "Episode 15. Place a medium wide rectangle at the upper center, around X 0.50, Y 0.70. Use at least 2 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.7
                        },
                        "mark_type": "wide_rectangle",
                        "mark_size_class": "medium",
                        "expected_min_strokes": 2,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 16,
                    "split": "train",
                    "purpose": "Upper-right two-stroke patch",
                    "read_aloud": "Episode 16. Place a medium wide rectangle at the upper right, around X 0.70, Y 0.70. Use at least 2 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.7,
                            "y": 0.7
                        },
                        "mark_type": "wide_rectangle",
                        "mark_size_class": "medium",
                        "expected_min_strokes": 2,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 17,
                    "split": "train",
                    "purpose": "Left-edge two-stroke mark",
                    "read_aloud": "Episode 17. Place a medium irregular scribble at the middle left, around X 0.20, Y 0.50. Use at least 2 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.2,
                            "y": 0.5
                        },
                        "mark_type": "irregular_scribble",
                        "mark_size_class": "medium",
                        "expected_min_strokes": 2,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 18,
                    "split": "train",
                    "purpose": "Right-edge two-stroke mark",
                    "read_aloud": "Episode 18. Place a medium irregular scribble at the middle right, around X 0.80, Y 0.50. Use at least 2 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.8,
                            "y": 0.5
                        },
                        "mark_type": "irregular_scribble",
                        "mark_size_class": "medium",
                        "expected_min_strokes": 2,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 19,
                    "split": "train",
                    "purpose": "Bottom two-stroke mark",
                    "read_aloud": "Episode 19. Place a medium tall rectangle at the lower center, around X 0.50, Y 0.20. Use at least 2 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.2
                        },
                        "mark_type": "tall_rectangle",
                        "mark_size_class": "medium",
                        "expected_min_strokes": 2,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 20,
                    "split": "train",
                    "purpose": "Top two-stroke mark",
                    "read_aloud": "Episode 20. Place a medium tall rectangle at the upper center, around X 0.50, Y 0.80. Use at least 2 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.8
                        },
                        "mark_type": "tall_rectangle",
                        "mark_size_class": "medium",
                        "expected_min_strokes": 2,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 21,
                    "split": "train",
                    "purpose": "Large lower-left patch",
                    "read_aloud": "Episode 21. Place a large irregular patch at the lower left, around X 0.35, Y 0.35. Use at least 3 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.35,
                            "y": 0.35
                        },
                        "mark_type": "large_irregular_patch",
                        "mark_size_class": "large",
                        "expected_min_strokes": 3,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 22,
                    "split": "train",
                    "purpose": "Large lower-right patch",
                    "read_aloud": "Episode 22. Place a large irregular patch at the lower right, around X 0.65, Y 0.35. Use at least 3 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.65,
                            "y": 0.35
                        },
                        "mark_type": "large_irregular_patch",
                        "mark_size_class": "large",
                        "expected_min_strokes": 3,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 23,
                    "split": "train",
                    "purpose": "Large upper-left patch",
                    "read_aloud": "Episode 23. Place a large irregular patch at the upper left, around X 0.35, Y 0.65. Use at least 3 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.35,
                            "y": 0.65
                        },
                        "mark_type": "large_irregular_patch",
                        "mark_size_class": "large",
                        "expected_min_strokes": 3,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 24,
                    "split": "train",
                    "purpose": "Large upper-right patch",
                    "read_aloud": "Episode 24. Place a large irregular patch at the upper right, around X 0.65, Y 0.65. Use at least 3 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.65,
                            "y": 0.65
                        },
                        "mark_type": "large_irregular_patch",
                        "mark_size_class": "large",
                        "expected_min_strokes": 3,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 25,
                    "split": "train",
                    "purpose": "Large central patch",
                    "read_aloud": "Episode 25. Place a large irregular patch at the center, around X 0.50, Y 0.50. Use at least 4 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.5
                        },
                        "mark_type": "large_irregular_patch",
                        "mark_size_class": "large",
                        "expected_min_strokes": 4,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 26,
                    "split": "train",
                    "purpose": "Large left patch",
                    "read_aloud": "Episode 26. Place a large wide rectangle at the middle left, around X 0.25, Y 0.50. Use at least 3 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.25,
                            "y": 0.5
                        },
                        "mark_type": "wide_rectangle",
                        "mark_size_class": "large",
                        "expected_min_strokes": 3,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 27,
                    "split": "train",
                    "purpose": "Large right patch",
                    "read_aloud": "Episode 27. Place a large wide rectangle at the middle right, around X 0.75, Y 0.50. Use at least 3 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.75,
                            "y": 0.5
                        },
                        "mark_type": "wide_rectangle",
                        "mark_size_class": "large",
                        "expected_min_strokes": 3,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 28,
                    "split": "train",
                    "purpose": "Large bottom patch",
                    "read_aloud": "Episode 28. Place a large wide rectangle at the lower center, around X 0.50, Y 0.25. Use at least 3 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.25
                        },
                        "mark_type": "wide_rectangle",
                        "mark_size_class": "large",
                        "expected_min_strokes": 3,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 29,
                    "split": "train",
                    "purpose": "Large top patch",
                    "read_aloud": "Episode 29. Place a large wide rectangle at the upper center, around X 0.50, Y 0.75. Use at least 3 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.75
                        },
                        "mark_type": "wide_rectangle",
                        "mark_size_class": "large",
                        "expected_min_strokes": 3,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 30,
                    "split": "train",
                    "purpose": "Large top-left boundary patch",
                    "read_aloud": "Episode 30. Place a large irregular patch at the upper left, around X 0.30, Y 0.80. Use at least 3 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.3,
                            "y": 0.8
                        },
                        "mark_type": "large_irregular_patch",
                        "mark_size_class": "large",
                        "expected_min_strokes": 3,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 31,
                    "split": "train",
                    "purpose": "Large top-right boundary patch",
                    "read_aloud": "Episode 31. Place a large irregular patch at the upper right, around X 0.70, Y 0.80. Use at least 3 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.7,
                            "y": 0.8
                        },
                        "mark_type": "large_irregular_patch",
                        "mark_size_class": "large",
                        "expected_min_strokes": 3,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 32,
                    "split": "train",
                    "purpose": "Large tall central area",
                    "read_aloud": "Episode 32. Place a large tall rectangle at the center, around X 0.50, Y 0.50. Use at least 4 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.5
                        },
                        "mark_type": "tall_rectangle",
                        "mark_size_class": "large",
                        "expected_min_strokes": 4,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 33,
                    "split": "train",
                    "purpose": "Two nearby large marks left",
                    "read_aloud": "Episode 33. Place a large two nearby marks at the middle left, around X 0.35, Y 0.50. Use at least 3 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.35,
                            "y": 0.5
                        },
                        "mark_type": "two_nearby_marks",
                        "mark_size_class": "large",
                        "expected_min_strokes": 3,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 34,
                    "split": "train",
                    "purpose": "Two nearby large marks right",
                    "read_aloud": "Episode 34. Place a large two nearby marks at the middle right, around X 0.65, Y 0.50. Use at least 3 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.65,
                            "y": 0.5
                        },
                        "mark_type": "two_nearby_marks",
                        "mark_size_class": "large",
                        "expected_min_strokes": 3,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 35,
                    "split": "train",
                    "purpose": "Three nearby lower marks",
                    "read_aloud": "Episode 35. Place a large three nearby marks at the lower center, around X 0.50, Y 0.35. Use at least 4 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.35
                        },
                        "mark_type": "three_nearby_marks",
                        "mark_size_class": "large",
                        "expected_min_strokes": 4,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 36,
                    "split": "train",
                    "purpose": "Three nearby upper marks",
                    "read_aloud": "Episode 36. Place a large three nearby marks at the upper center, around X 0.50, Y 0.65. Use at least 4 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.65
                        },
                        "mark_type": "three_nearby_marks",
                        "mark_size_class": "large",
                        "expected_min_strokes": 4,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 37,
                    "split": "train",
                    "purpose": "Very large center-left patch",
                    "read_aloud": "Episode 37. Place a very large patch at the center, around X 0.40, Y 0.50. Use at least 5 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.4,
                            "y": 0.5
                        },
                        "mark_type": "very_large_patch",
                        "mark_size_class": "very_large",
                        "expected_min_strokes": 5,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 38,
                    "split": "train",
                    "purpose": "Very large center-right patch",
                    "read_aloud": "Episode 38. Place a very large patch at the center, around X 0.60, Y 0.50. Use at least 5 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.6,
                            "y": 0.5
                        },
                        "mark_type": "very_large_patch",
                        "mark_size_class": "very_large",
                        "expected_min_strokes": 5,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 39,
                    "split": "train",
                    "purpose": "Very large lower-center patch",
                    "read_aloud": "Episode 39. Place a very large patch at the center, around X 0.50, Y 0.40. Use at least 5 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.4
                        },
                        "mark_type": "very_large_patch",
                        "mark_size_class": "very_large",
                        "expected_min_strokes": 5,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 40,
                    "split": "train",
                    "purpose": "Very large upper-center patch",
                    "read_aloud": "Episode 40. Place a very large patch at the center, around X 0.50, Y 0.60. Use at least 5 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.5,
                            "y": 0.6
                        },
                        "mark_type": "very_large_patch",
                        "mark_size_class": "very_large",
                        "expected_min_strokes": 5,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 41,
                    "split": "validation",
                    "purpose": "Held-out upper large patch",
                    "read_aloud": "Validation Episode 41. Place a large irregular patch at the upper center, around X 0.42, Y 0.72. Use at least 3 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.42,
                            "y": 0.72
                        },
                        "mark_type": "large_irregular_patch",
                        "mark_size_class": "large",
                        "expected_min_strokes": 3,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 42,
                    "split": "validation",
                    "purpose": "Held-out right large patch",
                    "read_aloud": "Validation Episode 42. Place a large wide rectangle at the middle right, around X 0.72, Y 0.42. Use at least 3 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.72,
                            "y": 0.42
                        },
                        "mark_type": "wide_rectangle",
                        "mark_size_class": "large",
                        "expected_min_strokes": 3,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 43,
                    "split": "validation",
                    "purpose": "Held-out multi-region condition",
                    "read_aloud": "Validation Episode 43. Place a large three nearby marks at the upper left, around X 0.28, Y 0.62. Use at least 4 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.28,
                            "y": 0.62
                        },
                        "mark_type": "three_nearby_marks",
                        "mark_size_class": "large",
                        "expected_min_strokes": 4,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                },
                {
                    "episode_id": 44,
                    "split": "validation",
                    "purpose": "Held-out very large patch",
                    "read_aloud": "Validation Episode 44. Place a very large patch at the lower right, around X 0.62, Y 0.28. Use at least 5 horizontal raster strokes with steady contact. ",
                    "planned": {
                        "mark_center_norm": {
                            "x": 0.62,
                            "y": 0.28
                        },
                        "mark_type": "very_large_patch",
                        "mark_size_class": "very_large",
                        "expected_min_strokes": 5,
                        "multi_stroke_required": true,
                        "wiper_start": {
                            "type": "fixed",
                            "pose_id": "wiping_home",
                            "must_be_identical_every_episode": true
                        }
                    },
                    "record_after_episode": {
                        "success": null,
                        "qa_grade": null,
                        "mark_removed_fraction": null,
                        "actual_stroke_count": null,
                        "contact_loss": null,
                        "collision": null,
                        "operator_notes": null
                    }
                }
            ],
            "summary": {
                "training_count": 40,
                "validation_count": 4,
                "total_count": 44,
                "training_multi_stroke_count": 32,
                "validation_multi_stroke_count": 4,
                "wiper_initial_position_varied": false
            }
        }
    }
}

Citation

BibTeX:

bibtex
[More Information Needed]