Add iter22 pregrasp repair reruns and updated benchmark code
Browse filesUpload the repaired oven metric code, refreshed README, and iter22 episode 0/1 dense outputs with visualization GIF suites.
- .gitattributes +6 -0
- README.md +33 -2
- artifacts/results/metric_iter22_ep0_pregrasp_repair/episode0.dense.csv +330 -0
- artifacts/results/metric_iter22_ep0_pregrasp_repair/episode0.keyframes.csv +15 -0
- artifacts/results/metric_iter22_ep0_pregrasp_repair/episode0.metrics.json +53 -0
- artifacts/results/metric_iter22_ep0_pregrasp_repair/summary.json +106 -0
- artifacts/results/metric_iter22_ep0_pregrasp_repair/templates.json +243 -0
- artifacts/results/metric_iter22_ep0_pregrasp_repair/templates.pkl +3 -0
- artifacts/results/metric_iter22_ep0_pregrasp_repair/visualizations/README.md +13 -0
- artifacts/results/metric_iter22_ep0_pregrasp_repair/visualizations/episode0_all_metrics.gif +3 -0
- artifacts/results/metric_iter22_ep0_pregrasp_repair/visualizations/episode0_path_quality_focus.gif +3 -0
- artifacts/results/metric_iter22_ep0_pregrasp_repair/visualizations/episode0_visibility_focus.gif +3 -0
- artifacts/results/metric_iter22_ep1_pregrasp_repair/episode1.dense.csv +313 -0
- artifacts/results/metric_iter22_ep1_pregrasp_repair/episode1.keyframes.csv +15 -0
- artifacts/results/metric_iter22_ep1_pregrasp_repair/episode1.metrics.json +53 -0
- artifacts/results/metric_iter22_ep1_pregrasp_repair/summary.json +106 -0
- artifacts/results/metric_iter22_ep1_pregrasp_repair/templates.json +223 -0
- artifacts/results/metric_iter22_ep1_pregrasp_repair/templates.pkl +3 -0
- artifacts/results/metric_iter22_ep1_pregrasp_repair/visualizations/README.md +13 -0
- artifacts/results/metric_iter22_ep1_pregrasp_repair/visualizations/episode1_all_metrics.gif +3 -0
- artifacts/results/metric_iter22_ep1_pregrasp_repair/visualizations/episode1_path_quality_focus.gif +3 -0
- artifacts/results/metric_iter22_ep1_pregrasp_repair/visualizations/episode1_visibility_focus.gif +3 -0
- code/rr_label_study/oven_study.py +530 -150
- code/scripts/launch_parallel_oven_label_study.py +20 -3
- code/scripts/recompute_oven_episode_parallel.py +267 -0
- code/scripts/recompute_oven_pregrasp_parallel.py +282 -0
- code/scripts/recompute_oven_visibility_pregrasp.py +147 -0
- code/scripts/render_oven_metric_frame.py +41 -39
- code/scripts/render_oven_metric_gifs.py +44 -9
- code/scripts/run_oven_frame_batch.py +12 -2
- code/scripts/run_oven_pregrasp_batch.py +94 -0
.gitattributes
CHANGED
|
@@ -854,3 +854,9 @@ artifacts/results/metric_iter19_ep0_independent/visualizations/frames/visibility
|
|
| 854 |
artifacts/results/metric_iter19_ep1_independent/visualizations/episode1_all_metrics.gif filter=lfs diff=lfs merge=lfs -text
|
| 855 |
artifacts/results/metric_iter19_ep1_independent/visualizations/episode1_path_quality_focus.gif filter=lfs diff=lfs merge=lfs -text
|
| 856 |
artifacts/results/metric_iter19_ep1_independent/visualizations/episode1_visibility_focus.gif filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 854 |
artifacts/results/metric_iter19_ep1_independent/visualizations/episode1_all_metrics.gif filter=lfs diff=lfs merge=lfs -text
|
| 855 |
artifacts/results/metric_iter19_ep1_independent/visualizations/episode1_path_quality_focus.gif filter=lfs diff=lfs merge=lfs -text
|
| 856 |
artifacts/results/metric_iter19_ep1_independent/visualizations/episode1_visibility_focus.gif filter=lfs diff=lfs merge=lfs -text
|
| 857 |
+
artifacts/results/metric_iter22_ep0_pregrasp_repair/visualizations/episode0_all_metrics.gif filter=lfs diff=lfs merge=lfs -text
|
| 858 |
+
artifacts/results/metric_iter22_ep0_pregrasp_repair/visualizations/episode0_path_quality_focus.gif filter=lfs diff=lfs merge=lfs -text
|
| 859 |
+
artifacts/results/metric_iter22_ep0_pregrasp_repair/visualizations/episode0_visibility_focus.gif filter=lfs diff=lfs merge=lfs -text
|
| 860 |
+
artifacts/results/metric_iter22_ep1_pregrasp_repair/visualizations/episode1_all_metrics.gif filter=lfs diff=lfs merge=lfs -text
|
| 861 |
+
artifacts/results/metric_iter22_ep1_pregrasp_repair/visualizations/episode1_path_quality_focus.gif filter=lfs diff=lfs merge=lfs -text
|
| 862 |
+
artifacts/results/metric_iter22_ep1_pregrasp_repair/visualizations/episode1_visibility_focus.gif filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
|
@@ -14,7 +14,9 @@ This is still a label-validation repository, not a policy repository. No `pi0.5`
|
|
| 14 |
|
| 15 |
## Current Status
|
| 16 |
|
| 17 |
-
The latest work in this upload
|
|
|
|
|
|
|
| 18 |
|
| 19 |
1. The reveal-to-retrieve transition used to occur too late, effectively at grasp time.
|
| 20 |
2. The visibility metric used to drop to zero around frame 232 even when the tray grasp region was clearly visible in `wrist_left`.
|
|
@@ -38,7 +40,17 @@ The current code addresses those issues by:
|
|
| 38 |
- sampling intervention states earlier in the reveal phase so pre-ready extract checks are not contaminated by borderline near-ready states
|
| 39 |
- confirming extraction feasibility with repeated planner checks inside the extract oracle so one lucky planner sample is less likely to flip a label
|
| 40 |
|
| 41 |
-
The old `iter4_*` outputs are still useful historical checkpoints, but the current authoritative
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
|
| 43 |
## What Is In This Upload
|
| 44 |
|
|
@@ -49,6 +61,8 @@ The old `iter4_*` outputs are still useful historical checkpoints, but the curre
|
|
| 49 |
- Study runners and helpers.
|
| 50 |
- `run_oven_label_study.py`: dense/keyframe study runner.
|
| 51 |
- `launch_parallel_oven_label_study.py`: multi-display worker launcher.
|
|
|
|
|
|
|
| 52 |
- `refresh_saved_oven_study.py`: recompute keyframes, per-episode metrics, intervention stats, and summary JSONs from saved dense CSVs after metric-code changes.
|
| 53 |
- `run_oven_single_frame.py`: single-frame recomputation helper.
|
| 54 |
- `run_oven_frame_batch.py`: new sequential batch recomputation helper used to avoid late-frame drift.
|
|
@@ -70,6 +84,8 @@ The old `iter4_*` outputs are still useful historical checkpoints, but the curre
|
|
| 70 |
The latest code changes are in:
|
| 71 |
|
| 72 |
- `code/rr_label_study/oven_study.py`
|
|
|
|
|
|
|
| 73 |
- `code/scripts/repair_oven_episode_dense.py`
|
| 74 |
- `code/scripts/run_oven_frame_batch.py`
|
| 75 |
- `code/scripts/render_oven_metric_frame.py`
|
|
@@ -141,6 +157,21 @@ This fixed the major replay bug where post-oracle restores could leave the arm,
|
|
| 141 |
|
| 142 |
The current trustworthy artifacts are:
|
| 143 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 144 |
- `artifacts/results/oven_episode0_iter4_templates/templates.json`
|
| 145 |
- `artifacts/results/oven_episode0_iter4_templates/templates.pkl`
|
| 146 |
- `artifacts/results/oven_episode0_iter4_batch/iter4_batch_comparison.csv`
|
|
|
|
| 14 |
|
| 15 |
## Current Status
|
| 16 |
|
| 17 |
+
The latest work in this upload is the `metric_iter22_*_pregrasp_repair` rerun for episodes 0 and 1.
|
| 18 |
+
|
| 19 |
+
That rerun fixes the main simulator-state bugs that were still contaminating the oven metrics:
|
| 20 |
|
| 21 |
1. The reveal-to-retrieve transition used to occur too late, effectively at grasp time.
|
| 22 |
2. The visibility metric used to drop to zero around frame 232 even when the tray grasp region was clearly visible in `wrist_left`.
|
|
|
|
| 40 |
- sampling intervention states earlier in the reveal phase so pre-ready extract checks are not contaminated by borderline near-ready states
|
| 41 |
- confirming extraction feasibility with repeated planner checks inside the extract oracle so one lucky planner sample is less likely to flip a label
|
| 42 |
|
| 43 |
+
The old `iter4_*`, `iter6_*`, and `iter19_*` outputs are still useful historical checkpoints, but the current authoritative outputs are:
|
| 44 |
+
|
| 45 |
+
- `artifacts/results/metric_iter22_ep0_pregrasp_repair/`
|
| 46 |
+
- `artifacts/results/metric_iter22_ep1_pregrasp_repair/`
|
| 47 |
+
|
| 48 |
+
The main improvement from the `iter22` rerun is that the reveal-to-retrieve signal now flips well before grasp:
|
| 49 |
+
|
| 50 |
+
- episode 0: `p_pre` first crosses at frame `138`, `phase_switch` at `143`, `y_retrieve` at `235`
|
| 51 |
+
- episode 1: `p_pre` first crosses at frame `135`, `phase_switch` at `135`, `y_retrieve` at `228`
|
| 52 |
+
|
| 53 |
+
The main remaining limitation is `p_pre` flicker after the first crossing, especially on episode 0. The current repo state should therefore be treated as a repaired benchmark snapshot, not the final metric design.
|
| 54 |
|
| 55 |
## What Is In This Upload
|
| 56 |
|
|
|
|
| 61 |
- Study runners and helpers.
|
| 62 |
- `run_oven_label_study.py`: dense/keyframe study runner.
|
| 63 |
- `launch_parallel_oven_label_study.py`: multi-display worker launcher.
|
| 64 |
+
- `recompute_oven_pregrasp_parallel.py`: targeted dense rerun for repaired `p_pre` labels.
|
| 65 |
+
- `run_oven_pregrasp_batch.py`: sequential per-worker pregrasp recomputation helper.
|
| 66 |
- `refresh_saved_oven_study.py`: recompute keyframes, per-episode metrics, intervention stats, and summary JSONs from saved dense CSVs after metric-code changes.
|
| 67 |
- `run_oven_single_frame.py`: single-frame recomputation helper.
|
| 68 |
- `run_oven_frame_batch.py`: new sequential batch recomputation helper used to avoid late-frame drift.
|
|
|
|
| 84 |
The latest code changes are in:
|
| 85 |
|
| 86 |
- `code/rr_label_study/oven_study.py`
|
| 87 |
+
- `code/scripts/recompute_oven_pregrasp_parallel.py`
|
| 88 |
+
- `code/scripts/run_oven_pregrasp_batch.py`
|
| 89 |
- `code/scripts/repair_oven_episode_dense.py`
|
| 90 |
- `code/scripts/run_oven_frame_batch.py`
|
| 91 |
- `code/scripts/render_oven_metric_frame.py`
|
|
|
|
| 157 |
|
| 158 |
The current trustworthy artifacts are:
|
| 159 |
|
| 160 |
+
- `artifacts/results/metric_iter22_ep0_pregrasp_repair/episode0.dense.csv`
|
| 161 |
+
- `artifacts/results/metric_iter22_ep0_pregrasp_repair/episode0.keyframes.csv`
|
| 162 |
+
- `artifacts/results/metric_iter22_ep0_pregrasp_repair/episode0.metrics.json`
|
| 163 |
+
- `artifacts/results/metric_iter22_ep0_pregrasp_repair/summary.json`
|
| 164 |
+
- `artifacts/results/metric_iter22_ep0_pregrasp_repair/visualizations/episode0_all_metrics.gif`
|
| 165 |
+
- `artifacts/results/metric_iter22_ep0_pregrasp_repair/visualizations/episode0_visibility_focus.gif`
|
| 166 |
+
- `artifacts/results/metric_iter22_ep0_pregrasp_repair/visualizations/episode0_path_quality_focus.gif`
|
| 167 |
+
- `artifacts/results/metric_iter22_ep1_pregrasp_repair/episode1.dense.csv`
|
| 168 |
+
- `artifacts/results/metric_iter22_ep1_pregrasp_repair/episode1.keyframes.csv`
|
| 169 |
+
- `artifacts/results/metric_iter22_ep1_pregrasp_repair/episode1.metrics.json`
|
| 170 |
+
- `artifacts/results/metric_iter22_ep1_pregrasp_repair/summary.json`
|
| 171 |
+
- `artifacts/results/metric_iter22_ep1_pregrasp_repair/visualizations/episode1_all_metrics.gif`
|
| 172 |
+
- `artifacts/results/metric_iter22_ep1_pregrasp_repair/visualizations/episode1_visibility_focus.gif`
|
| 173 |
+
- `artifacts/results/metric_iter22_ep1_pregrasp_repair/visualizations/episode1_path_quality_focus.gif`
|
| 174 |
+
|
| 175 |
- `artifacts/results/oven_episode0_iter4_templates/templates.json`
|
| 176 |
- `artifacts/results/oven_episode0_iter4_templates/templates.pkl`
|
| 177 |
- `artifacts/results/oven_episode0_iter4_batch/iter4_batch_comparison.csv`
|
artifacts/results/metric_iter22_ep0_pregrasp_repair/episode0.dense.csv
ADDED
|
@@ -0,0 +1,330 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
frame_index,time_norm,door_angle,right_gripper_open,left_gripper_open,pregrasp_progress,pregrasp_distance,p_pre,p_ext,y_pre_raw,y_ext_raw,y_pre,y_ext,three_view_visibility,three_view_whole_tray_visibility,full_view_visibility,full_view_whole_tray_visibility,door_speed_abs,pregrasp_speed,y_pre_progress_seed,phase_score,approach_active,y_retrieve,y_ready,phase_switch
|
| 2 |
+
0,0.0,1.5707963705062866,1.0,1.0,0.0,0.48866117061264636,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.02671200499217541,0.0,0.0,0.0,0.0,0.0,0.0
|
| 3 |
+
1,0.0030487804878048,1.5707963705062866,1.0,1.0,0.0,0.4873255703630376,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.027185417261638145,0.0,0.0,0.0,0.0,0.0,0.0
|
| 4 |
+
2,0.0060975609756097,1.5707963705062866,1.0,1.0,0.0,0.48594262888648254,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.02954320927901377,0.0,0.0,0.0,0.0,0.0,0.0
|
| 5 |
+
3,0.0091463414634146,1.5707963705062866,1.0,1.0,0.0,0.4843712494351362,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.034670240116305706,0.0,0.0,0.0,0.0,0.0,0.0
|
| 6 |
+
4,0.0121951219512195,1.5707963705062866,1.0,1.0,0.0,0.48247560487485197,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.04176586160028806,0.0,0.0,0.0,0.0,0.0,0.0
|
| 7 |
+
5,0.0152439024390243,1.5707963705062866,1.0,1.0,0.0,0.4801946632751074,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05135028536207675,0.0,0.0,0.0,0.0,0.0,0.0
|
| 8 |
+
6,0.0182926829268292,1.5707963705062866,1.0,1.0,0.0,0.4773405763386443,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05920717437781331,0.0,0.0,0.0,0.0,0.0,0.0
|
| 9 |
+
7,0.0213414634146341,1.5707963705062866,1.0,1.0,0.0,0.47427394583732607,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06389467001490734,0.0,0.0,0.0,0.0,0.0,0.0
|
| 10 |
+
8,0.024390243902439,1.5707963705062866,1.0,1.0,0.0,0.47095110933715356,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06718998456674063,0.0,0.0,0.0,0.0,0.0,0.0
|
| 11 |
+
9,0.0274390243902439,1.5707963705062866,1.0,1.0,0.0,0.467554947380652,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07018989888683769,0.0,0.0,0.0,0.0,0.0,0.0
|
| 12 |
+
10,0.0304878048780487,1.5707963705062866,1.0,1.0,0.0,0.4639321194484698,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0734944501898982,0.0,0.0,0.0,0.0,0.0,0.0
|
| 13 |
+
11,0.0335365853658536,1.5707963705062866,1.0,1.0,0.0,0.4602055023616622,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07702609806440885,0.0,0.0,0.0,0.0,0.0,0.0
|
| 14 |
+
12,0.0365853658536585,1.5707963705062866,1.0,1.0,0.0,0.4562295096420289,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08072991443775657,0.0,0.0,0.0,0.0,0.0,0.0
|
| 15 |
+
13,0.0396341463414634,1.5707963705062866,1.0,1.0,0.0,0.45213251091788653,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08279491095181557,0.0,0.0,0.0,0.0,0.0,0.0
|
| 16 |
+
14,0.0426829268292682,1.5707963705062866,1.0,1.0,0.0,0.44795001854684735,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.085940386733111,0.0,0.0,0.0,0.0,0.0,0.0
|
| 17 |
+
15,0.0457317073170731,1.5707963705062866,1.0,1.0,0.0,0.44353847224457543,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0877961894939494,0.0,0.0,0.0,0.0,0.0,0.0
|
| 18 |
+
16,0.048780487804878,1.5707963705062866,1.0,1.0,0.0,0.4391703995974524,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08918116225218264,0.0,0.0,0.0,0.0,0.0,0.0
|
| 19 |
+
17,0.0518292682926829,1.5707963705062866,1.0,1.0,0.0,0.43462035601935717,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08995308283540948,0.0,0.0,0.0,0.0,0.0,0.0
|
| 20 |
+
18,0.0548780487804878,1.5707963705062866,1.0,1.0,0.0,0.43017509131391146,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09062979548831063,0.0,0.0,0.0,0.0,0.0,0.0
|
| 21 |
+
19,0.0579268292682926,1.5707963705062866,1.0,1.0,0.0,0.4255573764705261,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09381808565892491,0.0,0.0,0.0,0.0,0.0,0.0
|
| 22 |
+
20,0.0609756097560975,1.5707963705062866,1.0,1.0,0.0,0.42079328274801897,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09624265065276527,0.0,0.0,0.0,0.0,0.0,0.0
|
| 23 |
+
21,0.0640243902439024,1.5707963705062866,1.0,1.0,0.0,0.4159331114052496,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09599541961407998,0.0,0.0,0.0,0.0,0.0,0.0
|
| 24 |
+
22,0.0670731707317073,1.5707963705062866,1.0,1.0,0.0,0.411193740786611,0.0,0.0007303555806477,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0946939128248514,0.0,0.0,0.0,0.0,0.0,0.0
|
| 25 |
+
23,0.0701219512195122,1.5707963705062866,1.0,1.0,0.0,0.40646372012276444,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09424508556718392,0.0,0.0,0.0,0.0,0.0,0.0
|
| 26 |
+
24,0.073170731707317,1.5707963705062866,1.0,1.0,0.0,0.4017692322298926,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09562118086540672,0.0,0.0,0.0,0.0,0.0,0.0
|
| 27 |
+
25,0.0762195121951219,1.5707963705062866,1.0,1.0,0.0,0.39690160203622377,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09801305258705872,0.0,0.0,0.0,0.0,0.0,0.0
|
| 28 |
+
26,0.0792682926829268,1.5707963705062866,1.0,1.0,0.0,0.3919679269711867,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09768696856880921,0.0,0.0,0.0,0.0,0.0,0.0
|
| 29 |
+
27,0.0823170731707317,1.5707963705062866,1.0,1.0,0.0,0.38713290517934285,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.02845529708571881,0.0,0.0,0.0,0.0,0.0,0.0
|
| 30 |
+
28,0.0853658536585365,1.5707963705062866,1.0,1.0,0.0,0.3948134566797586,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.022741140127123805,0.0,0.0,0.0,0.0,0.0,0.0
|
| 31 |
+
29,0.0884146341463414,1.5707963705062866,1.0,1.0,0.0,0.3894070191920552,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1071456885689992,0.0,0.0,0.0,0.0,0.0,0.0
|
| 32 |
+
30,0.0914634146341463,1.5707963705062866,1.0,1.0,0.0,0.38409888782285867,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10645471974937815,0.0,0.0,0.0,0.0,0.0,0.0
|
| 33 |
+
31,0.0945121951219512,1.5707963705062866,1.0,1.0,0.0,0.3787615472171174,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10600513796768296,0.0,0.0,0.0,0.0,0.0,0.0
|
| 34 |
+
32,0.0975609756097561,1.5707963705062866,1.0,1.0,0.0,0.3734983740260904,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10682980631697703,0.0,0.0,0.0,0.0,0.0,0.0
|
| 35 |
+
33,0.1006097560975609,1.5707963705062866,1.0,1.0,0.0,0.3680785665854197,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10796475096877867,0.0,0.0,0.0,0.0,0.0,0.0
|
| 36 |
+
34,0.1036585365853658,1.5707963705062866,1.0,1.0,0.0,0.3627018989292125,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10687276423838599,0.0,0.0,0.0,0.0,0.0,0.0
|
| 37 |
+
35,0.1067073170731707,1.5707963705062866,1.0,1.0,0.0,0.3573912901615811,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10630399365677612,0.0,0.0,0.0,0.0,0.0,0.0
|
| 38 |
+
36,0.1097560975609756,1.5707963705062866,1.0,1.0,0.0,0.3520714995635349,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10557099389240265,0.0,0.0,0.0,0.0,0.0,0.0
|
| 39 |
+
37,0.1128048780487804,1.5707963705062866,1.0,1.0,0.0,0.34683419077234084,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1035775874589806,0.0,0.0,0.0,0.0,0.0,0.0
|
| 40 |
+
38,0.1158536585365853,1.5707963705062866,1.0,1.0,0.0,0.34171374081763684,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1017213048659904,0.0,0.0,0.0,0.0,0.0,0.0
|
| 41 |
+
39,0.1189024390243902,1.5707963705062866,1.0,1.0,0.0,0.3366620602857418,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10011006945653711,0.0,0.0,0.0,0.0,0.0,0.0
|
| 42 |
+
40,0.1219512195121951,1.5707963705062866,1.0,1.0,0.0,0.3317027338719831,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09809246888054457,0.0,0.0,0.0,0.0,0.0,0.0
|
| 43 |
+
41,0.125,1.5707963705062866,1.0,1.0,0.0,0.32685281339768735,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09531367143869263,0.0,0.0,0.0,0.0,0.0,0.0
|
| 44 |
+
42,0.1280487804878048,1.5707963705062866,1.0,1.0,0.0,0.32217136672811386,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09427691692099005,0.0,0.0,0.0,0.0,0.0,0.0
|
| 45 |
+
43,0.1310975609756097,1.5707963705062866,1.0,1.0,0.0,0.31742512170558834,0.3815942437808567,0.0007303555806477,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09234989923940229,0.0,0.3815942437808567,0.0,0.0,0.0,0.0
|
| 46 |
+
44,0.1341463414634146,1.5707963705062866,1.0,1.0,0.0,0.31293637680417363,0.383287608310052,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08984714818350392,0.0,0.383287608310052,0.0,0.0,0.0,0.0
|
| 47 |
+
45,0.1371951219512195,1.5707963705062866,1.0,1.0,0.0,0.30844040688723795,0.3851011790698915,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08819685559702417,0.0,0.3851011790698915,0.0,0.0,0.0,0.0
|
| 48 |
+
46,0.1402439024390244,1.5707963705062866,1.0,1.0,0.0,0.3041166912444712,0.38685439951917233,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08601492644194353,0.0,0.38685439951917233,0.0,0.0,0.0,0.0
|
| 49 |
+
47,0.1432926829268292,1.5707963705062866,1.0,1.0,0.0,0.2998389142430436,0.38868933672289024,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08299284609333712,0.0,0.38868933672289024,0.0,0.0,0.0,0.0
|
| 50 |
+
48,0.1463414634146341,1.5707963705062866,1.0,1.0,0.0,0.2958174066351375,0.3905587610674007,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07888773870745658,0.0,0.3905587610674007,0.0,0.0,0.0,0.0
|
| 51 |
+
49,0.149390243902439,1.5707963705062866,1.0,1.0,0.0,0.29195014037229794,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07596903907353847,0.0,0.0,0.0,0.0,0.0,0.0
|
| 52 |
+
50,0.1524390243902439,1.5707963705062866,1.0,1.0,0.0,0.28822050272778366,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07408732717719746,0.0,0.0,0.0,0.0,0.0,0.0
|
| 53 |
+
51,0.1554878048780487,1.5707963705062866,1.0,1.0,0.0,0.2845414076545782,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06980228976254388,0.0,0.0,0.0,0.0,0.0,0.0
|
| 54 |
+
52,0.1585365853658536,1.5707963705062866,1.0,1.0,0.0,0.28124027375152927,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.060249841306827534,0.0,0.0,0.0,0.0,0.0,0.0
|
| 55 |
+
53,0.1615853658536585,1.5707963705062866,1.0,1.0,0.0055805920641751605,0.27851642352389544,0.4013866531416635,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.048871975886605745,0.0,0.4013866531416635,0.0,0.0,0.0,0.0
|
| 56 |
+
54,0.1646341463414634,1.5707963705062866,1.0,1.0,0.013304641674591666,0.2763530761628687,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0369757951356775,0.0,0.0,0.0,0.0,0.0,0.0
|
| 57 |
+
55,0.1676829268292683,1.5707963705062866,1.0,1.0,0.018782488318331292,0.2748188440103277,0.4052120639725118,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.062456426326343295,0.0,0.4052120639725118,0.0,0.0,0.0,0.0
|
| 58 |
+
56,0.1707317073170731,1.5707963705062866,1.0,1.0,0.0,0.282598718795503,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.07277803884467526,0.0,0.0,0.0,0.0,0.0,0.0
|
| 59 |
+
57,0.173780487804878,1.5707963705062866,1.0,1.0,0.0,0.2820966478947952,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.013258400200638065,0.0,0.0,0.0,0.0,0.0,0.0
|
| 60 |
+
58,0.1768292682926829,1.5707963705062866,1.0,1.0,0.0,0.2812728787754392,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.013363603010461134,0.0,0.0,0.0,0.0,0.0,0.0
|
| 61 |
+
59,0.1798780487804878,1.5707963705062866,1.0,1.0,0.0,0.2807602875937491,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.008972523016690381,0.0,0.0,0.0,0.0,0.0,0.0
|
| 62 |
+
60,0.1829268292682926,1.5707963705062866,1.0,1.0,0.0,0.2803756264737702,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007919407578686477,0.0,0.0,0.0,0.0,0.0,0.0
|
| 63 |
+
61,0.1859756097560975,1.5707963705062866,1.0,1.0,0.0003966207773271613,0.27996834683588046,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.008864560822093304,0.0,0.0,0.0,0.0,0.0,0.0
|
| 64 |
+
62,0.1890243902439024,1.5707963705062866,1.0,1.0,0.0021074800163471963,0.27948917039156085,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.009062064685298465,0.0,0.0,0.0,0.0,0.0,0.0
|
| 65 |
+
63,0.1920731707317073,1.5707963705062866,1.0,1.0,0.00363215465115041,0.2790621403673506,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007923787266443383,0.0,0.0,0.0,0.0,0.0,0.0
|
| 66 |
+
64,0.1951219512195122,1.5707963705062866,1.0,1.0,0.004936601436139942,0.2786967916649165,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00679463292253657,0.0,0.0,0.0,0.0,0.0,0.0
|
| 67 |
+
65,0.198170731707317,1.5707963705062866,1.0,1.0,0.006058121151710116,0.27838267707509695,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0062105490452718515,0.0,0.0,0.0,0.0,0.0,0.0
|
| 68 |
+
66,0.2012195121951219,1.5707963705062866,1.0,1.0,0.0071540256863991125,0.2780757367603893,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0063462572886197055,0.0,0.0,0.0,0.0,0.0,0.0
|
| 69 |
+
67,0.2042682926829268,1.5707963705062866,1.0,1.0,0.008323986360496916,0.277748051346235,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007028960389635075,0.0,0.0,0.0,0.0,0.0,0.0
|
| 70 |
+
68,0.2073170731707317,1.5707963705062866,1.0,1.0,0.009663656853144964,0.2773728407214258,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007795665161449694,0.0,0.0,0.0,0.0,0.0,0.0
|
| 71 |
+
69,0.2103658536585365,1.5707963705062866,1.0,1.0,0.011107375571107192,0.27696848483009,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007381294695377183,0.0,0.0,0.0,0.0,0.0,0.0
|
| 72 |
+
70,0.2134146341463414,1.5707963705062866,1.0,1.0,0.012299085998000003,0.2766347112518881,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006278192396910187,0.0,0.0,0.0,0.0,0.0,0.0
|
| 73 |
+
71,0.2164634146341463,1.5707963705062866,1.0,1.0,0.013348951458589386,0.276340665590399,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006055382333344239,0.0,0.0,0.0,0.0,0.0,0.0
|
| 74 |
+
72,0.2195121951219512,1.5707963705062866,1.0,1.0,0.014461109485665147,0.2760291730185537,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006097172687020147,0.0,0.0,0.0,0.0,0.0,0.0
|
| 75 |
+
73,0.2225609756097561,1.5707963705062866,1.0,1.0,0.015525895654056376,0.275730948321697,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006366113092854397,0.0,0.0,0.0,0.0,0.0,0.0
|
| 76 |
+
74,0.2256097560975609,1.5707963705062866,1.0,1.0,0.016734076643515006,0.27539256170926824,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006413983017332092,0.0,0.0,0.0,0.0,0.0,0.0
|
| 77 |
+
75,0.2286585365853658,1.5707963705062866,1.0,1.0,0.01781595446032802,0.27508955001996377,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00638895836855613,0.0,0.0,0.0,0.0,0.0,0.0
|
| 78 |
+
76,0.2317073170731707,1.5707963705062866,1.0,1.0,0.019015200457581982,0.2747536658724126,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006546211933932122,0.0,0.0,0.0,0.0,0.0,0.0
|
| 79 |
+
77,0.2347560975609756,1.5707963705062866,1.0,1.0,0.020153204248432144,0.27443492882657056,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006281231738324844,0.0,0.0,0.0,0.0,0.0,0.0
|
| 80 |
+
78,0.2378048780487804,1.5707963705062866,1.0,1.0,0.021257861591901905,0.27412554269858014,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006197708650109157,0.0,0.0,0.0,0.0,0.0,0.0
|
| 81 |
+
79,0.2408536585365853,1.5707963705062866,1.0,1.0,0.022366044075049385,0.27381515796155964,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006494863083856828,0.0,0.0,0.0,0.0,0.0,0.0
|
| 82 |
+
80,0.2439024390243902,1.5707963705062866,1.0,1.0,0.023576785449106463,0.27347605639019446,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006788511298812527,0.0,0.0,0.0,0.0,0.0,0.0
|
| 83 |
+
81,0.2469512195121951,1.5707963705062866,1.0,1.0,0.02478984510908766,0.2731363068316784,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00646026944557343,0.0,0.0,0.0,0.0,0.0,0.0
|
| 84 |
+
82,0.25,1.5707963705062866,1.0,1.0,0.025883370582444387,0.2728300294456371,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006147414838295617,0.0,0.0,0.0,0.0,0.0,0.0
|
| 85 |
+
83,0.2530487804878049,1.5707963705062866,1.0,1.0,0.026984715750884458,0.2725215653478488,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.08972591921181827,0.0,0.0,0.0,0.0,0.0,0.0
|
| 86 |
+
84,0.2560975609756097,1.5707963705062866,1.0,1.0,0.0,0.28180262136681894,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.08797042445437164,0.0,0.0,0.0,0.0,0.0,0.0
|
| 87 |
+
85,0.2591463414634146,1.5707963705062866,1.0,1.0,0.0,0.281318607793286,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.008645862377547053,0.0,0.0,0.0,0.0,0.0,0.0
|
| 88 |
+
86,0.2621951219512195,1.5707963705062866,1.0,1.0,0.0,0.28093803512906423,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007283071161731103,0.0,0.0,0.0,0.0,0.0,0.0
|
| 89 |
+
87,0.2652439024390244,1.5707963705062866,1.0,1.0,0.0,0.2805903006771129,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0072070595241335855,0.0,0.0,0.0,0.0,0.0,0.0
|
| 90 |
+
88,0.2682926829268293,1.5707963705062866,1.0,1.0,0.0,0.2802173291766509,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0075265980515876185,0.0,0.0,0.0,0.0,0.0,0.0
|
| 91 |
+
89,0.2713414634146341,1.5707963705062866,1.0,1.0,0.0008632953952139033,0.2798376408719541,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006828912950941901,0.0,0.0,0.0,0.0,0.0,0.0
|
| 92 |
+
90,0.274390243902439,1.5707963705062866,1.0,1.0,0.0019458561688954212,0.2795344378815567,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.003962516784667969,0.011592762736775675,0.0,0.0,0.0,0.0,0.0,0.0
|
| 93 |
+
91,0.2774390243902439,1.5704001188278198,0.0,1.0,0.005002393682502104,0.27867836459827655,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0020718574523947986,0.010448094188048596,0.0,0.0,0.0,0.0,0.0,0.0
|
| 94 |
+
92,0.2804878048780488,1.571003556251526,0.0,1.0,0.0056762398369917255,0.2784896284627518,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.004620552062988281,0.005149346343001349,0.0,0.0,0.0,0.0,0.0,0.0
|
| 95 |
+
93,0.2835365853658536,1.569938063621521,0.0,1.0,0.006840924530867487,0.2781634299639764,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.002665519714357689,0.006444191656841958,0.0,0.0,0.0,0.0,0.0,0.0
|
| 96 |
+
94,0.2865853658536585,1.5707370042800903,0.0,1.0,0.00797710457928058,0.27784520929706763,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.004029273986816406,0.007303916492132356,0.0,0.0,0.0,0.0,0.0,0.0
|
| 97 |
+
95,0.2896341463414634,1.5703409910202026,0.0,1.0,0.009448726481878555,0.2774330383147632,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.027899742126464844,0.007883823619288521,0.0,0.0,0.0,0.0,0.0,0.0
|
| 98 |
+
96,0.2926829268292683,1.5679470300674438,0.0,1.0,0.010791957468468394,0.2770568269351388,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06757259368896484,0.007282345566493875,0.0,0.0,0.0,0.0,0.0,0.0
|
| 99 |
+
97,0.2957317073170731,1.5635837316513062,0.0,1.0,0.012048826714373129,0.2767048037581138,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11388063430786355,0.006261302188088069,0.0,0.0,0.0,0.0,0.0,0.0
|
| 100 |
+
98,0.298780487804878,1.5565589666366575,0.0,1.0,0.013027502891578058,0.27643069671632997,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15336036682128906,0.006050276783361452,0.0,0.0,0.0,0.0,0.0,0.0
|
| 101 |
+
99,0.3018292682926829,1.5482476949691772,0.0,1.0,0.01420902710233718,0.27609977607977765,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.211062431335447,0.007120719088848926,0.0,0.0,0.0,0.0,0.0,0.0
|
| 102 |
+
100,0.3048780487804878,1.5354527235031128,0.0,1.0,0.015569895601938333,0.2757186248074451,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21154403686523438,0.0065210045993874255,0.0,0.0,0.0,0.0,0.0,0.0
|
| 103 |
+
101,0.3079268292682927,1.5270932912826538,0.0,1.0,0.016537296942836677,0.2754476756198389,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.2286219596862793,0.006445903178523005,0.0,0.0,0.0,0.0,0.0,0.0
|
| 104 |
+
102,0.3109756097560975,1.5125905275344849,0.0,1.0,0.017871351297651716,0.2750740344895928,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.39522886276245117,0.006973738129805729,0.0,0.0,0.0,0.0,0.0,0.0
|
| 105 |
+
103,0.3140243902439024,1.4875704050064087,0.0,1.0,0.01902721152994047,0.27475030180685833,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5440235137939453,0.0065630531579258244,0.0,0.0,0.0,0.0,0.0,0.0
|
| 106 |
+
104,0.3170731707317073,1.4581881761550903,0.0,1.0,0.020214634240117046,0.2744177291738002,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.0666666666666666,0.1512482355553056,0.6154441833496094,0.006361561425772266,0.0,0.0,0.0,0.0,0.0,0.0
|
| 107 |
+
105,0.3201219512195122,1.4260259866714478,0.0,1.0,0.021298553538345977,0.2741141456642811,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.308641975308642,0.1773402644340301,0.6313633918762185,0.006003405669716133,0.0,0.0,0.0,0.0,0.0,0.0
|
| 108 |
+
106,0.3231707317073171,1.3950518369674685,0.0,1.0,0.022358099911294893,0.2738173886068286,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.5265432098765432,0.3065480287662653,0.615389347076416,0.005925167348512228,0.0,0.0,0.0,0.0,0.0,0.0
|
| 109 |
+
107,0.3262195121951219,1.3644870519638062,0.0,1.0,0.023414064731286932,0.2735216289294299,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.6139506172839506,0.3192331258010288,0.6273937225341819,0.006212216601517162,0.0,0.0,0.0,0.0,0.0,0.0
|
| 110 |
+
108,0.3292682926829268,1.3323124647140503,0.0,1.0,0.024576119711751998,0.27319616694667687,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.6843621399176955,0.3488316855488101,0.655517578125,0.006631599493646112,0.0,0.0,0.0,0.0,0.0,0.0
|
| 111 |
+
109,0.3323170731707317,1.2989352941513062,0.0,1.0,0.02578182968512588,0.27285846898006527,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.0,0.7450617283950618,0.3699735139400826,0.6099128723144531,0.006377359319511,0.0,0.0,0.0,0.0,0.0,0.0
|
| 112 |
+
110,0.3353658536585366,1.271321177482605,0.0,1.0,0.026853089883484116,0.27255843101472577,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0,0.805761316872428,0.4080288050443728,0.6195783615112305,0.00668972327011963,0.0,0.0,0.0,0.0,0.0,0.0
|
| 113 |
+
111,0.3384146341463415,1.236977458000183,0.0,1.0,0.028170339286580637,0.2721894966530533,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.0347222222222222,0.805761316872428,0.4285833604247764,0.6466507911682129,-0.08925504522335925,0.0,0.0,0.0,0.0,0.0,0.0
|
| 114 |
+
112,0.3414634146341463,1.2066560983657837,0.0,1.0,0.0,0.2814839355370617,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.0,0.2708333333333332,0.805761316872428,0.5683543370115218,0.64453125,-0.0885188702103723,0.0,0.0,0.0,0.0,0.0,0.0
|
| 115 |
+
113,0.3445121951219512,1.172524333000183,0.0,1.0,0.0,0.28104138367409054,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.4131944444444444,0.805761316872428,0.6526280140711771,0.6808161735534668,0.008191007963815888,0.0,0.0,0.0,0.0,0.0,0.0
|
| 116 |
+
114,0.3475609756097561,1.138574481010437,0.0,1.0,0.0,0.2806648347406801,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.0,0.5694444444444444,0.805761316872428,0.7451235132829939,0.6544065475463867,0.00729062594386487,0.0,0.0,0.0,0.0,0.0,0.0
|
| 117 |
+
115,0.3506097560975609,1.1070836782455444,0.0,1.0,0.0,0.28031232107970405,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.1111111111111111,0.6770833333333334,0.8273433927754915,0.8088426349622454,0.6624817848205589,0.007459117001215043,0.0,0.0,0.0,0.0,0.0,0.0
|
| 118 |
+
116,0.3536585365853658,1.0723263025283811,0.0,1.0,0.0005730842719785523,0.2799189230405586,0.0,0.0007303555806477,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.6742048263549805,0.007989354441951813,0.0,0.0,0.0,0.0,0.0,0.0
|
| 119 |
+
117,0.3567073170731707,1.0396631956100464,0.0,1.0,0.002021000886534452,0.27951338563550887,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.632023811340332,0.007597440449777504,0.0,0.0,0.0,0.0,0.0,0.0
|
| 120 |
+
118,0.3597560975609756,1.009123921394348,0.0,1.0,0.0032856738418999276,0.27915917899558085,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.5926752090454102,0.0071489337395364005,0.0,0.0,0.0,0.0,0.0,0.0
|
| 121 |
+
119,0.3628048780487805,0.9803956747055054,0.0,1.0,0.004573480096514371,0.27879849226155523,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7638888888888888,0.9417283950617285,0.8602290234132547,0.5756664276123036,0.007319775269011841,0.0,0.0,0.0,0.0,0.0,0.0
|
| 122 |
+
120,0.3658536585365853,0.9515572786331176,0.0,1.0,0.0058991505198774385,0.27842720146867966,0.0,0.0007315476735432,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.6015801429748535,0.007233963889057282,0.0,0.0,0.0,0.0,0.0,0.0
|
| 123 |
+
121,0.3689024390243902,0.92023766040802,0.0,1.0,0.007156306034230786,0.2780750958726495,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7638888888888888,0.9417283950617285,0.8602290234132547,0.6073665618896473,0.007368909433627113,0.0,0.0,0.0,0.0,0.0,0.0
|
| 124 |
+
122,0.3719512195121951,0.8908206224441528,0.0,1.0,0.00853013718479012,0.27769031052531695,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7743055555555556,0.9417283950617285,0.8663953900273758,0.5839872360229492,0.006711410862934586,0.0,0.0,0.0,0.0,0.0,0.0
|
| 125 |
+
123,0.375,0.8618389368057251,0.0,1.0,0.009552546391256023,0.27740395478635604,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.6459903717041016,0.00589423214128193,0.0,0.0,0.0,0.0,0.0,0.0
|
| 126 |
+
124,0.3780487804878049,0.8262215852737427,0.0,1.0,0.01063462329823961,0.27710088731118876,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.7708333333333334,0.9417283950617285,0.8643399344893354,0.6747531890869141,0.006583758218040026,0.0,0.0,0.0,0.0,0.0,0.0
|
| 127 |
+
125,0.3810975609756097,0.7943636178970337,0.0,1.0,0.011903221871425784,0.27674557896455204,0.0,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.7638888888888888,0.9417283950617285,0.8602290234132547,0.57861328125,0.007128411015103198,0.0,0.0,0.0,0.0,0.0,0.0
|
| 128 |
+
126,0.3841463414634146,0.7683602571487427,0.0,1.0,0.013179782812787089,0.27638804620967844,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.4708218574523926,0.006746398958327182,0.0,0.0,0.0,0.0,0.0,0.0
|
| 129 |
+
127,0.3871951219512195,0.7472814321517944,0.0,1.0,0.01431198711796855,0.2760709390687193,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.33034324645996094,0.006689970325272632,0.0,0.0,0.0,0.0,0.0,0.0
|
| 130 |
+
128,0.3902439024390244,0.7353259325027466,0.0,1.0,0.015568380399214043,0.2757190491771512,0.4452970281989904,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.1101231575012207,0.007420558376375341,0.0,0.4452970281989904,0.0,0.0,0.0,0.0
|
| 131 |
+
129,0.3932926829268293,0.7362691164016724,0.0,1.0,0.01696143511829873,0.2753288832310818,0.445433079513517,0.0007315476735432,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.07194042205810547,0.0098311529853512,0.0,0.445433079513517,0.0,0.0,0.0,0.0
|
| 132 |
+
130,0.3963414634146341,0.728131890296936,1.0,1.0,0.01907851101545255,0.27473593387861606,0.44620877071596826,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.08178234100341797,0.007885939925640906,0.0,0.44620877071596826,0.0,0.0,0.0,0.0
|
| 133 |
+
131,0.399390243902439,0.7280908823013306,1.0,1.0,0.01977704368453259,0.2745402892385177,0.4457009075298833,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.7638888888888888,0.9417283950617285,0.8602290234132547,0.01112222671508789,0.003980682932955282,0.0,0.4457009075298833,0.0,0.0,0.0,0.0
|
| 134 |
+
132,0.4024390243902439,0.7292441129684448,1.0,1.0,0.020499772720911857,0.27433786558532053,0.4447570287929474,0.0007315476735432,0.0,0.0,0.0,0.0,0.7,0.7638888888888888,0.9417283950617285,0.8602290234132547,0.014355182647705078,0.005093607297941838,0.0,0.4447570287929474,0.0,0.0,0.0,0.0
|
| 135 |
+
133,0.4054878048780488,0.7295264005661011,1.0,1.0,0.02159566104957078,0.2740309285087235,0.44486238003214407,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7638888888888888,0.9417283950617285,0.8602290234132547,0.0020456314086914062,0.0048145560457341086,0.0,0.44486238003214407,0.0,0.0,0.0,0.0
|
| 136 |
+
134,0.4085365853658536,0.7290395498275757,1.0,1.0,0.022218764871341667,0.2738564099807471,0.4460463589808891,0.0007307529449462,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.0021123886108398438,0.004575861091365985,0.0,0.4460463589808891,0.0,0.0,0.0,0.0
|
| 137 |
+
135,0.4115853658536585,0.7297376394271851,1.0,1.0,0.02322942617797019,0.2735733423995869,0.44512387977796575,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.005469322204589844,0.0064033185464074105,0.0,0.44512387977796575,0.0,0.0,0.0,0.0
|
| 138 |
+
136,0.4146341463414634,0.7284926176071167,1.0,1.0,0.024505016007729807,0.2732160781261064,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.010268688201904297,0.0067414614460203914,0.0,0.0,0.0,0.0,0.0,0.0
|
| 139 |
+
137,0.4176829268292683,0.7287107706069946,1.0,1.0,0.02563641597317734,0.2728991962549849,0.0,0.0007307529449462,0.0,0.0,0.0,0.0,0.7,0.7743055555555556,0.9417283950617285,0.8663953900273758,0.0008273124694824219,0.005758119497595859,0.0,0.0,0.0,0.0,0.0,0.0
|
| 140 |
+
138,0.4207317073170731,0.7285753488540649,1.0,1.0,0.026560904143929087,0.2726402661763468,0.7232510379392315,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.011565685272216797,0.005939703578655142,0.0,0.7232510379392315,0.0,0.0,0.0,0.0
|
| 141 |
+
139,0.423780487804878,0.727554202079773,1.0,1.0,0.02775713761818155,0.27230522589711936,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.020248889923095703,-0.09129204189806339,0.0,0.0,0.0,0.0,0.0,0.0
|
| 142 |
+
140,0.4268292682926829,0.7306002378463745,1.0,1.0,0.0,0.28176947036615313,0.44417021311653826,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.005676746368408203,-0.0901712878912464,0.0,0.44417021311653826,0.0,0.0,0.0,0.0
|
| 143 |
+
141,0.4298780487804878,0.7269865274429321,1.0,1.0,0.0,0.281322354686244,0.4443012489114744,0.0007315476735432,0.0,0.0,0.0,0.0,0.7,0.7708333333333334,0.9417283950617285,0.8643399344893354,0.036160945892333984,0.008587066151120593,0.0,0.4443012489114744,0.0,0.0,0.0,0.0
|
| 144 |
+
142,0.4329268292682927,0.7269841432571411,1.0,1.0,0.0,0.28091076375104107,0.4444259818892848,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.7743055555555556,0.9417283950617285,0.8663953900273758,0.03936290740966797,0.008430318360030942,0.0,0.4444259818892848,0.0,0.0,0.0,0.0
|
| 145 |
+
143,0.4359756097560975,0.7309228181838989,1.0,1.0,0.0,0.2804793228502409,0.7219264371582491,0.0007315476735432,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.009512901306152344,0.008119295002027571,0.0,0.7219264371582491,0.0,0.0,0.0,1.0
|
| 146 |
+
144,0.4390243902439024,0.7279354333877563,1.0,1.0,0.0,0.2800988342508383,0.7219835915953693,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.7638888888888888,0.9417283950617285,0.8602290234132547,0.020020008087158203,0.006939125139822644,0.0,0.7219835915953693,0.0,0.0,0.0,1.0
|
| 147 |
+
145,0.4420731707317073,0.7289208173751831,1.0,1.0,0.0010497722401906495,0.27978541033625864,0.7220320049134769,0.0007307529449462,0.0,0.0,0.0,0.0,0.7,0.7638888888888888,0.9417283950617285,0.8602290234132547,0.010602474212646484,0.006645510351512285,0.0,0.7220320049134769,0.0,0.0,0.0,1.0
|
| 148 |
+
146,0.4451219512195122,0.728995680809021,1.0,1.0,0.002303442127722821,0.2794342832156871,0.7220910070090938,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.006229877471923828,0.007260393998975712,0.0,0.7220910070090938,0.0,0.0,0.0,1.0
|
| 149 |
+
147,0.4481707317073171,0.7282978296279907,1.0,1.0,0.0036420426849084198,0.2790593709363611,0.7221541594497627,0.0007315476735432,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.008327960968017578,0.007318365339475386,0.0,0.7221541594497627,0.0,0.0,0.0,1.0
|
| 150 |
+
148,0.4512195121951219,0.7298284769058228,1.0,1.0,0.004916410710569807,0.27870244668173955,0.7222140850460721,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.004069805145263672,0.0073028953893666815,0.0,0.7222140850460721,0.0,0.0,0.0,1.0
|
| 151 |
+
149,0.4542682926829268,0.7278908491134644,1.0,1.0,0.006249480003354124,0.2783290813974244,0.7222729061651283,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.0004911422729492188,0.007046346719989938,0.0,0.7222729061651283,0.0,0.0,0.0,1.0
|
| 152 |
+
150,0.4573170731707317,0.7298775911331177,1.0,1.0,0.007432249445508465,0.27799781200974055,0.7226553607875176,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.7708333333333334,0.9417283950617285,0.8643399344893354,0.007557868957519531,0.007032047301342437,0.0,0.7226553607875176,0.0,0.0,0.0,1.0
|
| 153 |
+
151,0.4603658536585366,0.7286466360092163,1.0,1.0,0.008760205582529434,0.27762587666729016,0.7227144622367652,0.0007307529449462,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.013852119445800781,0.0071599571839453535,0.0,0.7227144622367652,0.0,0.0,0.0,1.0
|
| 154 |
+
152,0.4634146341463415,0.7312628030776978,1.0,1.0,0.009988652048723345,0.277281816291346,0.7227799869172076,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.00019550323486328125,0.006329786401848558,0.0,0.7227799869172076,0.0,0.0,0.0,1.0
|
| 155 |
+
153,0.4664634146341463,0.72862708568573,1.0,1.0,0.01102021047615842,0.2769928980271053,0.7228213169023905,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.7708333333333334,0.9417283950617285,0.8643399344893354,0.013747215270996094,0.006065933966641346,0.0,0.7228213169023905,0.0,0.0,0.0,1.0
|
| 156 |
+
154,0.4695121951219512,0.7298880815505981,1.0,1.0,0.01215444267703536,0.2766752228946819,0.7228718139376187,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.002205371856689453,0.006474280903913665,0.0,0.7228718139376187,0.0,0.0,0.0,1.0
|
| 157 |
+
155,0.4725609756097561,0.7288476228713989,1.0,1.0,0.013331797940119738,0.27634546993671394,0.7229310897755556,0.0007307529449462,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.01294851303100586,0.0065176288302654095,0.0,0.7229310897755556,0.0,0.0,0.0,1.0
|
| 158 |
+
156,0.4756097560975609,0.7285932302474976,1.0,1.0,0.014481494767859204,0.27602346001165534,0.7229967466457544,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7708333333333334,0.9417283950617285,0.8643399344893354,0.0011301040649414062,0.006576242691368472,0.0,0.7229967466457544,0.0,0.0,0.0,1.0
|
| 159 |
+
157,0.4786585365853658,0.7287346124649048,1.0,1.0,0.01567977778403229,0.2756878456675771,0.7230566341481791,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.0034546852111816406,0.0063206393080389445,0.0,0.7230566341481791,0.0,0.0,0.0,1.0
|
| 160 |
+
158,0.4817073170731707,0.7282477617263794,1.0,1.0,0.016738238380269,0.27539139608085145,0.7227946481428151,0.0007315476735432,0.0,0.0,0.0,0.0,0.7,0.7708333333333334,0.9417283950617285,0.8643399344893354,0.0361323356628418,0.006291740733939677,0.0,0.7227946481428151,0.0,0.0,0.0,1.0
|
| 161 |
+
159,0.4847560975609756,0.732347846031189,1.0,1.0,0.017926190922127994,0.2750586715941831,0.723157036067354,0.0007315476735432,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.006363391876220703,0.006712881034495188,0.0,0.723157036067354,0.0,0.0,0.0,1.0
|
| 162 |
+
160,0.4878048780487805,0.7288841009140015,1.0,1.0,0.019135016065907617,0.27472010797740193,0.7232206689627657,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.020613670349121094,0.006532440556364927,0.0,0.7232206689627657,0.0,0.0,0.0,1.0
|
| 163 |
+
161,0.4908536585365853,0.7302864789962769,1.0,1.0,0.020258544070170692,0.27440542753854663,0.7232832262842267,0.0007315476735432,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.01201629638671875,0.007075258068567347,0.0,0.7232832262842267,0.0,0.0,0.0,1.0
|
| 164 |
+
162,0.4939024390243902,0.7300857305526733,1.0,1.0,0.021661165455350573,0.2740125821705452,0.7233571096320636,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.0018167495727539062,0.0068399812415192995,0.0,0.7233571096320636,0.0,0.0,0.0,1.0
|
| 165 |
+
163,0.4969512195121951,0.7301048040390015,1.0,1.0,0.022700701830402847,0.2737214294143947,0.7234193405450184,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.006618499755859375,0.005898218077833861,0.0,0.7234193405450184,0.0,0.0,0.0,1.0
|
| 166 |
+
164,0.5,0.7294238805770874,1.0,1.0,0.023767074734296956,0.2734227603627618,0.7234570807485904,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.0018835067749023438,0.005728025823517058,0.0,0.7234570807485904,0.0,0.0,0.0,1.0
|
| 167 |
+
165,0.5030487804878049,0.7302931547164917,1.0,1.0,0.024745845390431676,0.273148626832043,0.7234997614351456,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.010111331939697266,0.0057921536743210655,0.0,0.7234997614351456,0.0,0.0,0.0,1.0
|
| 168 |
+
166,0.5060975609756098,0.7304350137710571,1.0,1.0,0.025835114708912643,0.2728435449953297,0.7235601604104618,0.0007307529449462,0.0,0.0,0.0,0.0,0.7,0.815327892325315,0.9417283950617285,0.8906794317448425,0.020935535430908203,-0.0861506055050254,0.0,0.7235601604104618,0.0,0.0,0.0,1.0
|
| 169 |
+
167,0.5091463414634146,0.7281996011734009,1.0,1.0,0.0,0.28176368738254554,0.721744668194708,0.0007323424021402,0.0,0.0,0.0,0.0,0.7,0.8416075650118204,0.9417283950617285,0.9062362409881158,0.0006151199340820312,-0.08508511343549963,0.0,0.721744668194708,0.0,0.0,0.0,1.0
|
| 170 |
+
168,0.5121951219512195,0.7303735017776489,1.0,1.0,0.0,0.28135205633887966,0.7212551551160588,0.0007315476735432,0.0,0.0,0.0,0.0,0.7999999999999999,0.8368853767560664,0.9611522633744856,0.9034408415635518,0.03125190734863281,0.008188309656311232,0.0,0.7212551551160588,0.0,0.0,0.0,1.0
|
| 171 |
+
169,0.5152439024390244,0.7313247919082642,1.0,1.0,0.0,0.2809448564169144,0.7213243911169782,0.0007307529449462,0.0,0.0,0.0,0.0,0.8133333333333332,0.872433574879227,0.9637421124828532,0.9244843508850384,0.00997304916381836,0.007928060148619243,0.0,0.7213243911169782,0.0,0.0,0.0,1.0
|
| 172 |
+
170,0.5182926829268293,0.7293761968612671,1.0,1.0,0.0,0.28055925032401774,0.7213867538662113,0.0007311503092447,0.0,0.0,0.0,0.0,0.8366666666666667,0.8663898273273274,0.9682743484224966,0.9209066264247304,0.06486892700195312,0.007434214524953964,0.0,0.7213867538662113,0.0,0.0,0.0,1.0
|
| 173 |
+
171,0.5213414634146342,0.7248378992080688,1.0,1.0,0.0,0.280201434964419,0.721442752534359,0.0007311503092447,0.0,0.0,0.0,0.0,0.7999999999999999,0.8819947665056361,0.9611522633744856,0.9301443009173236,0.01861095428466797,0.007212397513002289,0.0,0.721442752534359,0.0,0.0,0.0,1.0
|
| 174 |
+
172,0.524390243902439,0.7275151014328003,1.0,1.0,0.0008619754061531815,0.2798380105727175,0.7220396841163264,0.0007315476735432,0.0,0.0,0.0,0.0,0.8266666666666667,0.8667114695340502,0.9663319615912208,0.9210970293461922,0.03529071807861328,0.006957254156176318,0.0,0.7220396841163264,0.0,0.0,0.0,1.0
|
| 175 |
+
173,0.5274390243902439,0.7283669710159302,1.0,1.0,0.002048420361083436,0.2795057095488014,0.7215536465816019,0.0007307529449462,0.0,0.0,0.0,0.0,0.83,0.8283811475409837,0.9669794238683128,0.8984065828329226,0.000209808349609375,0.00868351697957015,0.0,0.7215536465816019,0.0,0.0,0.0,1.0
|
| 176 |
+
174,0.5304878048780488,0.7275360822677612,1.0,1.0,0.003962331559445809,0.2789696588747605,0.7221614055512678,0.0007323424021402,0.0,0.0,0.0,0.0,0.83,0.8283811475409837,0.9669794238683128,0.8984065828329226,0.02620220184326172,0.009455210794028779,0.0,0.7221614055512678,0.0,0.0,0.0,1.0
|
| 177 |
+
175,0.5335365853658537,0.7309871912002563,1.0,1.0,0.005424323805194087,0.2785601884693985,0.7222230970999384,0.0007311503092447,0.0,0.0,0.0,0.0,0.83,0.8596476124885216,0.9669794238683128,0.9169154294499549,0.013387203216552734,0.011233225893156895,0.0,0.7222230970999384,0.0,0.0,0.0,1.0
|
| 178 |
+
176,0.5365853658536586,0.7288748025894165,1.0,1.0,0.007973068288181562,0.2778463362854448,0.722508034198161,0.0007311503092447,0.0,0.0,0.0,0.0,0.8266666666666667,0.8587962962962963,0.9663319615912208,0.9164114747863582,0.0225067138671875,0.01146413070228558,0.0,0.722508034198161,0.0,0.0,0.0,1.0
|
| 179 |
+
177,0.5396341463414634,0.7287365198135376,1.0,1.0,0.009517482732248839,0.27741377539916995,0.7229103858442261,0.0007315476735432,0.0,0.0,0.0,0.0,0.8266666666666667,0.8587962962962963,0.9663319615912208,0.9164114747863582,0.003669261932373047,0.016211271876709343,0.0,0.7229103858442261,0.0,0.0,0.0,1.0
|
| 180 |
+
178,0.5426829268292683,0.7292417287826538,1.0,1.0,0.013761158604575163,0.27622520909777387,0.7234529639947627,0.0007323424021402,0.0,0.0,0.0,0.0,0.7881481481481482,0.8730034722222223,0.9588501752781587,0.9248217136961734,0.0021386146545410156,0.03230727302981018,0.0,0.7234529639947627,0.0,0.0,0.0,1.0
|
| 181 |
+
179,0.5457317073170732,0.7285226583480835,1.0,1.0,0.021052522526320172,0.27418304809618893,0.7245898331683458,0.0007323424021402,0.0,0.0,0.0,0.0,0.7046913580246914,0.8565393518518518,0.9426396382665244,0.915075428686632,0.0029587745666503906,0.050259772834998495,0.0,0.7245898331683458,1.0,0.0,0.0,1.0
|
| 182 |
+
180,0.5487804878048781,0.7295376062393188,1.0,1.0,0.031705999548056196,0.271199231814274,0.7263806245825009,0.0007327397664388,0.0,0.0,0.0,0.0,0.7777777777777778,0.8538908246225319,0.9568358481938728,0.9135075768578188,0.012118816375732422,0.06898524444885701,0.0,0.7263806245825009,1.0,0.0,0.0,1.0
|
| 183 |
+
181,0.551829268292683,0.7273107767105103,1.0,1.0,0.04568312309079825,0.26728452365130323,0.7288506065917302,0.0007315476735432,0.0,0.0,0.0,0.0,0.8174074074074075,0.8757142857142857,0.9645334552659656,0.926426437198372,0.009958744049072266,0.08449174257116443,0.0,0.7288506065917302,1.0,0.0,0.0,1.0
|
| 184 |
+
182,0.5548780487804879,0.7285417318344116,1.0,1.0,0.061873071692338355,0.2627500575571576,0.731879618443738,0.0007323424021402,0.0,0.0,0.0,0.0,0.8237037037037037,0.8696428571428572,0.9657564395671392,0.9228323263718556,0.01956939697265625,0.09319901121295604,0.0,0.731879618443738,1.0,0.0,0.0,1.0
|
| 185 |
+
183,0.5579268292682927,0.7292677164077759,1.0,1.0,0.07895906401528874,0.2579646225300076,0.735085451120124,0.0007315476735432,0.0,0.0,0.0,0.0,0.7985185185185185,0.8706845238095238,0.9608645023624448,0.9234489630332678,0.0050258636474609375,0.09703426372392687,0.0,0.735085451120124,1.0,0.0,0.0,1.0
|
| 186 |
+
184,0.5609756097560976,0.7280391454696655,1.0,1.0,0.09651833744347826,0.2530466311847649,0.7388847916442877,0.0007315476735432,0.0,0.0,0.0,0.0,0.7859259259259259,0.8753869047619047,0.9584185337600976,0.9262326371047854,0.008444786071777344,0.09852923869971969,0.0,0.7388847916442877,1.0,0.0,0.0,1.0
|
| 187 |
+
185,0.5640243902439024,0.7301121950149536,1.0,1.0,0.11413808689472116,0.24811169866003566,0.7426359606730689,0.0007315476735432,0.0,0.0,0.0,0.0,0.8048148148148149,0.8885714285714286,0.9620874866636184,0.93403749541923,0.0038099288940429688,0.09699968197428632,0.0,0.7426359606730689,1.0,0.0,0.0,1.0
|
| 188 |
+
186,0.5670731707317073,0.7276581525802612,1.0,1.0,0.13115124541453382,0.24334666298733626,0.7464658079630127,0.0007323424021402,0.0,0.0,0.0,0.0,0.83,0.8753063725490197,0.9669794238683128,0.9261849643544914,0.019593238830566406,0.09380831663798883,0.0,0.7464658079630127,1.0,0.0,0.0,1.0
|
| 189 |
+
187,0.5701219512195121,0.728152871131897,1.0,1.0,0.14763156690279966,0.23873086699623677,0.7503867895882768,0.0007315476735432,0.0,0.0,0.0,0.0,0.83,0.8680453431372549,0.9669794238683128,0.921886644097001,0.008568763732910156,0.09244799037189083,0.0,0.7503867895882768,1.0,0.0,0.0,1.0
|
| 190 |
+
188,0.573170731707317,0.7285150289535522,1.0,1.0,0.16415902149293415,0.23410186395014718,0.7543927304499978,0.0007311503092447,0.0,0.0,0.0,0.0,0.83,0.8547794117647058,0.9669794238683128,0.914033594850194,0.0002574920654296875,0.09206462817691802,0.0,0.7543927304499978,1.0,0.0,0.0,1.0
|
| 191 |
+
189,0.5762195121951219,0.728127121925354,1.0,1.0,0.1805024662466378,0.22952440417854497,0.7584955842264964,0.0007311503092447,0.0,0.0,0.0,0.0,0.8174074074074075,0.8680453431372549,0.9645334552659656,0.921886644097001,0.000782012939453125,0.09062693222308155,0.0,0.7584955842264964,1.0,0.0,0.0,1.0
|
| 192 |
+
190,0.5792682926829268,0.7284368276596069,1.0,1.0,0.19651661431691525,0.22503917072783902,0.7626618843879152,0.0007323424021402,0.0,0.0,0.0,0.0,0.7166666666666667,0.8523897058823529,0.944965706447188,0.9126189578034248,0.0017976760864257812,0.08836801198197686,0.0,0.7626618843879152,1.0,0.0,0.0,1.0
|
| 193 |
+
191,0.5823170731707317,0.7283068895339966,1.0,1.0,0.21205352018785728,0.22068760298034729,0.7668832226279634,0.0007315476735432,0.0,0.0,0.0,0.0,0.7166666666666667,0.8433768656716418,0.944965706447188,0.907283616013946,0.005035400390625,0.08750285976282857,0.0,0.7668832226279634,1.0,0.0,0.0,1.0
|
| 194 |
+
192,0.5853658536585366,0.7279332876205444,1.0,1.0,0.22775876307388299,0.21628888475155617,0.7711700186543202,0.0007323424021402,0.0,0.0,0.0,0.0,0.7733333333333333,0.8229482323232323,0.9559725651577504,0.8951904535193778,0.006504058837890625,0.08789379520915908,0.0,0.7711700186543202,1.0,0.0,0.0,1.0
|
| 195 |
+
193,0.5884146341463414,0.7276564836502075,1.0,1.0,0.24343525874137228,0.21189822345943138,0.775543261821427,0.0007311503092447,0.0,0.0,0.0,0.0,0.7733333333333333,0.8778093434343435,0.9559725651577504,0.9276666510204156,0.007174015045166016,0.02463603908267442,0.0,0.775543261821427,1.0,0.0,0.0,1.0
|
| 196 |
+
194,0.5914634146341463,0.728650689125061,1.0,1.0,0.2365548615035602,0.21382528084328872,0.5643854687872693,0.0007307529449462,0.0,0.0,0.0,0.0,0.83,0.8728219696969697,0.9669794238683128,0.9247142694294122,0.022742748260498047,0.025322019995549783,0.0,0.5643854687872693,1.0,0.0,0.0,1.0
|
| 197 |
+
195,0.5945121951219512,0.7299307584762573,1.0,1.0,0.25247626527349754,0.2093660214598764,0.5732177029541791,0.0007315476735432,0.0,0.0,0.0,0.0,0.8362962962962963,0.8723958333333333,0.9662150586800792,0.9244620089770164,0.0036191940307617188,0.0888841046272354,0.0,0.5732177029541791,1.0,0.0,0.0,1.0
|
| 198 |
+
196,0.5975609756097561,0.7290126085281372,1.0,1.0,0.26829016673931605,0.20493687038056518,0.5823279213741892,0.0007311503092447,0.0,0.0,0.0,0.0,0.7544444444444445,0.8716796875,0.9493225880201188,0.9240380712722956,0.0009369850158691406,0.08886138864816706,0.0,0.5823279213741892,1.0,0.0,0.0,1.0
|
| 199 |
+
197,0.600609756097561,0.7300244569778442,1.0,1.0,0.28420348090698666,0.2004798825950597,0.5916519444661396,0.0007311503092447,0.0,0.0,0.0,0.0,0.7166666666666667,0.8648148148148148,0.9392329675354368,0.919974264385628,0.020875930786132812,0.08938975968003637,0.0,0.5916519444661396,1.0,0.0,0.0,1.0
|
| 200 |
+
198,0.6036585365853658,0.7311002016067505,1.0,1.0,0.30020604184330424,0.19599789441256155,0.6011260882855722,0.0007323424021402,0.0,0.0,0.0,0.0,0.7733333333333333,0.8650873655913978,0.9513863740283494,0.920135606594528,0.054357051849365234,0.06597925920053926,0.0,0.6011260882855722,1.0,0.0,0.0,1.0
|
| 201 |
+
199,0.6067073170731707,0.7245887517929077,1.0,1.0,0.3077608105024926,0.19388195667500577,0.6096491352886337,0.0007315476735432,0.0,0.0,0.0,0.0,0.7733333333333333,0.8486895161290322,0.949551897576589,0.9104285520535892,0.06354331970214844,0.06847226172786047,0.0,0.6096491352886337,1.0,0.0,0.0,1.0
|
| 202 |
+
200,0.6097560975609756,0.7247458696365356,1.0,1.0,0.3246534857035652,0.1891506682397755,0.6195771360911444,0.0007323424021402,0.0,0.0,0.0,0.0,0.83,0.8715447154471545,0.9614759945130316,0.9239581717048868,0.01093149185180664,0.09427442093238814,0.0,0.6195771360911444,1.0,0.0,0.0,1.0
|
| 203 |
+
201,0.6128048780487805,0.723495602607727,1.0,1.0,0.34142069296118127,0.18445451458176695,0.6296526715137396,0.0007323424021402,0.0,0.0,0.0,0.0,0.8111111111111111,0.8788279132791328,0.957195549458924,0.9282696150285812,0.010037422180175781,0.09466748835364358,0.0,0.6296526715137396,1.0,0.0,0.0,1.0
|
| 204 |
+
202,0.6158536585365854,0.7257496118545532,1.0,1.0,0.35845370124644715,0.17968391940441114,0.8197258734158155,0.0007323424021402,0.0,0.0,0.0,0.0,0.83,0.8635162601626016,0.9594122085048012,0.9192055574364424,0.019309520721435547,0.08002947233318652,0.0,0.8197258734158155,1.0,0.0,0.0,1.0
|
| 205 |
+
203,0.6189024390243902,0.7215646505355835,1.0,1.0,0.3699945469968915,0.1764515673484483,0.8243833476633964,0.0007315476735432,0.0,0.0,0.0,0.0,0.7418518518518518,0.8699929971988796,0.938366686988772,0.9230395991992212,0.06788253784179688,0.07044532819631993,0.0,0.8243833476633964,1.0,0.0,0.0,1.0
|
| 206 |
+
204,0.6219512195121951,0.7189613580703735,1.0,1.0,0.3836056249640343,0.17263938658477915,0.6592069236317151,0.0007315476735432,0.0,0.0,0.0,0.0,0.7733333333333333,0.8644607843137255,0.9440484682213076,0.919191579159182,0.024297237396240234,0.08934980975257134,0.0,0.6592069236317151,1.0,0.0,0.0,1.0
|
| 207 |
+
205,0.625,0.7191349267959595,1.0,1.0,0.4018961512805749,0.16751658637319117,0.6699266089981261,0.0007315476735432,0.0,0.0,0.0,0.0,0.7733333333333333,0.8844936708860759,0.9422139917695472,0.9316235803294924,0.0019192695617675781,0.10223435723457353,0.0,0.6699266089981261,1.0,0.0,0.0,1.0
|
| 208 |
+
206,0.6280487804878049,0.7191532850265503,1.0,1.0,0.420107540337326,0.1624159508613218,0.839926667550039,0.0007323424021402,0.0,0.0,0.0,0.0,0.83,0.8605225988700564,0.95390877914952,0.917433396183802,0.0015163421630859375,0.0898801202745747,0.0,0.839926667550039,1.0,0.0,0.0,1.0
|
| 209 |
+
207,0.6310975609756098,0.7192865610122681,1.0,1.0,0.43398708350279724,0.1585285743457337,0.6909639091252324,0.0007335344950358,0.0,0.0,0.0,0.0,0.83,0.827683615819209,0.95390877914952,0.8979936641460642,0.027790069580078125,0.09602579481492513,0.0,0.6909639091252324,1.0,0.0,0.0,1.0
|
| 210 |
+
208,0.6341463414634146,0.7163742780685425,1.0,1.0,0.454392734039311,0.15281337137982928,0.7025021667839442,0.0007311503092447,0.0,0.0,0.0,0.0,0.8362962962962963,0.8729613733905579,0.9542909617436366,0.9247967924004868,0.004146099090576172,0.11124134331980978,0.0,0.7025021667839442,1.0,0.0,0.0,1.0
|
| 211 |
+
209,0.6371951219512195,0.7188719511032104,1.0,1.0,0.4737048702174189,0.14740444001375272,0.7135550461333114,0.0007311503092447,0.0,0.0,0.0,0.0,0.8237037037037037,0.8799342105263158,0.9479212518416908,0.9289245111319724,0.008969306945800781,0.10838369666527709,0.0,0.7135550461333114,1.0,0.0,0.0,1.0
|
| 212 |
+
210,0.6402439024390244,0.7154773473739624,1.0,1.0,0.4930902157446557,0.14197500171330157,0.7246218576569241,0.0007311503092447,0.0,0.0,0.0,0.0,0.7733333333333333,0.8744837758112094,0.9330416095107452,0.9256980107806432,0.014464855194091797,0.10861298158103633,0.0,0.7246218576569241,1.0,0.0,0.0,1.0
|
| 213 |
+
211,0.6432926829268293,0.7203184366226196,1.0,1.0,0.5124842137574876,0.1365431418556491,0.8650335664333906,0.0007307529449462,0.0,0.0,0.0,0.0,0.7733333333333333,0.8688455657492354,0.9302898948331048,0.9223603528328456,0.057730674743652344,0.10845675680421024,0.0,0.8650335664333906,1.0,0.0,0.0,1.0
|
| 214 |
+
212,0.6463414634146342,0.7097042798995972,1.0,1.0,0.5318137873087968,0.13112932603288055,0.7472213199470045,0.0007311503092447,0.0,0.0,0.0,0.0,0.7985185185185185,0.855045871559633,0.9372201392064218,0.913578412311786,0.04124164581298828,0.10956581389935077,0.0,0.7472213199470045,1.0,0.0,0.0,1.0
|
| 215 |
+
213,0.649390243902439,0.7161942720413208,1.0,1.0,0.5516037704742871,0.125586560465714,0.8758784306741085,0.0007311503092447,0.0,0.0,0.0,0.0,0.83,0.8986111111111111,0.944965706447188,0.939551988991287,0.0651860237121582,0.11296591649792548,0.0,0.8758784306741085,1.0,0.0,0.0,1.0
|
| 216 |
+
214,0.6524390243902439,0.716222882270813,1.0,1.0,0.5721473195859388,0.119832734383088,0.7701574437134947,0.0007311503092447,0.0,0.0,0.0,0.0,0.83,0.8947115384615384,0.944965706447188,0.9372270654909518,0.003833770751953125,0.11635899966301474,0.0,0.7701574437134947,1.0,0.0,0.0,1.0
|
| 217 |
+
215,0.6554878048780488,0.7165776491165161,1.0,1.0,0.5931487687807725,0.11395066049941253,0.781919424533718,0.0007311503092447,0.0,0.0,0.0,0.0,0.8551851851851852,0.8759708737864077,0.9519469084997204,0.9255294489452666,0.006759166717529297,0.1151255699087543,0.0,0.781919424533718,1.0,0.0,0.0,1.0
|
| 218 |
+
216,0.6585365853658537,0.7168987989425659,1.0,1.0,0.6132519391573905,0.10832017739221257,0.7936139431023065,0.0007311503092447,0.0,0.0,0.0,0.0,0.8488888888888888,0.872168284789644,0.9486346593507088,0.9232462683193224,0.005679130554199219,0.11867450470252963,1.0,0.7936139431023065,1.0,0.0,0.0,1.0
|
| 219 |
+
217,0.6615853658536586,0.717145562171936,1.0,1.0,0.6355205024312736,0.10208321002915957,0.805814091512272,0.0007311503092447,0.0,0.0,0.0,0.0,0.8237037037037037,0.8952265372168284,0.9393603617334756,0.9370910870085586,0.0033426284790039062,0.12350504551475003,1.0,0.805814091512272,1.0,0.0,0.0,1.0
|
| 220 |
+
218,0.6646341463414634,0.7172330617904663,1.0,1.0,0.6573483701053755,0.09596967284073757,0.9039087718128518,0.0007323424021402,0.0,0.0,0.0,0.0,0.83,0.8777369281045752,0.9394622770919068,0.9265898372772784,0.0015878677368164062,0.12340563690338618,1.0,0.9039087718128518,1.0,0.0,0.0,1.0
|
| 221 |
+
219,0.6676829268292683,0.7173043489456177,1.0,1.0,0.6795814435616857,0.08974264633882095,0.829739320695624,0.0007315476735432,0.0,0.0,0.0,0.0,0.8551851851851852,0.9006188118811881,0.9484308286338464,0.9403287593033854,0.0006198883056640625,0.1217250528586597,1.0,0.829739320695624,1.0,0.0,0.0,1.0
|
| 222 |
+
220,0.6707317073170732,0.7171710729598999,1.0,1.0,0.70080927459359,0.0837971675548716,1.0,0.0007315476735432,1.0,0.0,0.0,0.0,0.8551851851851852,0.891089108910891,0.9472588020118884,0.93414634443669,0.003578662872314453,0.21544801470154418,1.0,1.0,1.0,0.0,0.0,1.0
|
| 223 |
+
221,0.6737804878048781,0.7169464826583862,1.0,1.0,0.7565053443840035,0.06819784486866654,0.8886733784933276,0.0007311503092447,0.0,0.0,0.0,0.0,0.8551851851851852,0.8663778877887789,0.9472588020118884,0.9192045491024392,0.0006866455078125,0.23482631740966292,1.0,0.8886733784933276,1.0,0.0,0.0,1.0
|
| 224 |
+
222,0.676829268292683,0.7172397375106812,1.0,1.0,0.7846520347547815,0.06031453581390531,0.9020817721523657,0.0007311503092447,0.0,0.0,0.0,0.0,0.8551851851851852,0.8821929824561403,0.9445770461819843,0.9287672456014828,0.023288726806640625,0.1583860794864212,1.0,0.9020817721523657,1.0,0.0,0.0,1.0
|
| 225 |
+
223,0.6798780487804879,0.7146176099777222,1.0,1.0,0.8130557587864251,0.052359236920024414,0.9577950900960486,0.0007311503092447,0.0,0.0,0.0,0.0,0.8677777777777778,0.8475438596491227,0.946360219478738,0.907816435484272,0.24432897567749023,0.13665254939701513,1.0,0.9577950900960486,1.0,0.0,0.0,1.0
|
| 226 |
+
224,0.6829268292682927,0.6928068399429321,1.0,1.0,0.8334426754772497,0.046649280874203794,0.9261176013716039,0.0007311503092447,0.0,0.0,0.0,0.0,0.8740740740740741,0.8987179487179487,0.9443780521262004,0.9387591704266144,0.42278528213500977,0.10519864415337733,1.0,0.9261176013716039,1.0,0.0,0.0,1.0
|
| 227 |
+
225,0.6859756097560976,0.6723390817642212,1.0,1.0,0.8506160478003071,0.04183937250468668,0.9341705921203942,0.0007323424021402,0.0,0.0,0.0,0.0,0.8551851851851852,0.8960526315789473,0.9308357293095564,0.9368899777206968,0.42255401611328125,0.12185728899737867,1.0,0.9341705921203942,1.0,0.0,0.0,1.0
|
| 228 |
+
226,0.6890243902439024,0.650551438331604,1.0,1.0,0.8769507931720647,0.03446355197446593,0.9612385798812211,0.0007323424021402,0.0,0.0,0.0,0.0,0.8803703703703704,0.876078431372549,0.9383242798353908,0.9244558638473722,0.3709602355957031,0.15888865921171658,1.0,0.9612385798812211,1.0,0.0,0.0,1.0
|
| 229 |
+
227,0.6920731707317073,0.6352430582046509,1.0,1.0,0.9073459040444912,0.025950506583515023,0.9669014042203664,0.0007311503092447,0.0,0.0,0.0,0.0,0.8866666666666667,0.8799509803921568,0.9415703703703704,0.9268166181021418,0.32713890075683594,0.18398025210344476,1.0,0.9669014042203664,1.0,0.0,0.0,1.0
|
| 230 |
+
228,0.6951219512195121,0.6178375482559204,1.0,1.0,0.942639390669821,0.01606552676412145,1.0,0.0007311503092447,1.0,0.0,0.0,0.0,0.8740740740740741,0.7471264367816092,0.9345651577503428,0.8464717630568963,0.3030991554260254,0.16547706303611673,1.0,1.0,1.0,0.0,0.0,1.0
|
| 231 |
+
229,0.698170731707317,0.6049331426620483,1.0,1.0,0.9664280939000538,0.009402800279903348,0.9695949823107265,0.0007307529449462,0.0,0.0,0.0,0.0,0.8803703703703704,0.4527938342967244,0.9449867804704568,0.671442136661567,0.23787975311279297,0.008645991603031637,1.0,0.9695949823107265,0.0,0.0,0.0,1.0
|
| 232 |
+
230,0.7012195121951219,0.5940495729446411,1.0,1.0,0.945726369538588,0.015200927603818287,1.0,0.0007323424021402,1.0,0.0,0.0,0.0,0.9257936507936508,0.4971230158730159,0.9696065451695082,0.6980586152305339,0.2008533477783203,-0.14131223247796001,1.0,1.0,0.0,0.0,0.0,1.0
|
| 233 |
+
231,0.7042682926829268,0.5848478078842163,1.0,1.0,0.9159737530839401,0.02353402352769935,1.0,0.0007307529449462,1.0,0.0,0.0,0.0,0.922077922077922,0.50640625,0.9774891774891776,0.7036325282468691,0.16524314880371094,-0.11121353068842747,1.0,1.0,0.0,0.0,0.0,1.0
|
| 234 |
+
232,0.7073170731707317,0.57752525806427,1.0,1.0,0.9060185160176144,0.026322280672661034,0.0,1.0,0.0,1.0,0.0,1.0,0.9178082191780822,0.5300632911392404,0.9679007835841932,0.7178368764007841,0.13538360595703125,-0.060338472696677276,1.0,0.0,0.0,0.0,0.0,1.0
|
| 235 |
+
233,0.7103658536585366,0.5713094472885132,1.0,1.0,0.8944304100975395,0.029567870797367078,0.0,1.0,0.0,1.0,0.0,1.0,0.922077922077922,0.5535714285714286,0.9513885949441504,0.7319518186106535,0.11414289474487305,-0.05345193913571779,1.0,0.0,0.0,0.0,0.0,1.0
|
| 236 |
+
234,0.7134146341463414,0.5661109685897827,1.0,0.0,0.8869339516211069,0.03166747458623281,0.0,1.0,0.0,1.0,0.0,1.0,0.964102564102564,0.3174825174825174,0.9764583729028172,0.574679636950962,0.057735443115234375,-0.020575684207202113,1.0,0.0,0.0,0.0,1.0,1.0
|
| 237 |
+
235,0.7164634146341463,0.5655359029769897,1.0,0.0,0.8870840351127071,0.03162543921808729,1.0,1.0,1.0,1.0,1.0,1.0,0.9602409638554216,0.5390524967989757,0.9788962962962964,0.7685290304356838,0.010747909545898438,0.0492033916873252,1.0,1.0,1.0,1.0,1.0,1.0
|
| 238 |
+
236,0.7195121951219512,0.5650361776351929,1.0,0.0,0.9045016076100404,0.026747135417500293,1.0,1.0,1.0,1.0,1.0,1.0,0.7743589743589743,0.4888927058284666,0.9095702578171714,0.7931544024948072,0.0016927719116210938,0.0641049075699722,1.0,1.0,1.0,1.0,1.0,1.0
|
| 239 |
+
237,0.7225609756097561,0.5653666257858276,1.0,0.0,0.9099721518884709,0.02521494846109007,1.0,1.0,1.0,1.0,1.0,1.0,0.5526695526695526,0.0161290322580645,0.863334105309414,0.6518869099514261,0.0034928321838378906,0.012013881478665188,1.0,1.0,1.0,1.0,1.0,1.0
|
| 240 |
+
238,0.725609756097561,0.5653854608535767,1.0,0.0,0.9087910627967859,0.025545747269633774,1.0,1.0,1.0,1.0,1.0,1.0,0.3974025974025973,0.0,0.804308766679137,0.6318143540365762,0.05341529846191406,-0.0033487848790489383,1.0,1.0,0.0,1.0,1.0,1.0
|
| 241 |
+
239,0.7286585365853658,0.5600250959396362,1.0,0.0,0.908776495529291,0.025549826948994964,1.0,1.0,1.0,1.0,1.0,1.0,0.3939393939393939,0.0,0.7845117845117845,0.5660170752763345,0.13408184051513672,0.0002647123542533214,1.0,1.0,0.0,1.0,1.0,1.0
|
| 242 |
+
240,0.7317073170731707,0.551977276802063,1.0,0.0,0.9088855749550416,0.025519276034208442,1.0,1.0,1.0,1.0,1.0,1.0,0.390909090909091,0.0,0.7270370370370369,0.4642976309642977,0.19018888473510742,0.00017212383154358024,1.0,1.0,0.0,1.0,1.0,1.0
|
| 243 |
+
241,0.7347560975609756,0.5410062074661255,1.0,0.0,0.9088379503444013,0.025532614565840606,1.0,1.0,1.0,1.0,1.0,1.0,0.2871572871572871,0.0,0.7289437585733882,0.4589101348775385,0.22463083267211914,-7.000740775833098e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 244 |
+
242,0.7378048780487805,0.5295141935348511,1.0,0.0,0.9088605792497041,0.025526276774984275,1.0,1.0,1.0,1.0,1.0,1.0,0.2402597402597402,0.0,0.7996536796536797,0.5204439044956286,0.2429676055908203,6.046682234951695e-06,1.0,1.0,0.0,1.0,1.0,1.0
|
| 245 |
+
243,0.7408536585365854,0.5167094469070435,1.0,0.0,0.9088401100674857,0.02553200989761711,1.0,1.0,1.0,1.0,1.0,1.0,0.2871572871572871,0.0,0.7843870806833769,0.5322389374041109,0.24044275283813477,-2.6026784337267184e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 246 |
+
244,0.7439024390243902,0.5054699182510376,1.0,0.0,0.908851286633251,0.025528879453418002,1.0,1.0,1.0,1.0,1.0,1.0,0.3434343434343434,0.0,0.7949245541838135,0.5625254161934603,0.21057367324829157,-1.6710085269065755e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 247 |
+
245,0.7469512195121951,0.4956520795822143,1.0,0.0,0.9088341451042394,0.025533680906144017,1.0,1.0,1.0,1.0,1.0,1.0,0.3340548340548341,0.0,0.8373778347852423,0.6047240528429849,0.12931823730468806,0.00012008127067482388,1.0,1.0,0.0,1.0,1.0,1.0
|
| 248 |
+
246,0.75,0.4925380945205688,1.0,0.0,0.9088941615763898,0.02551687132635052,1.0,1.0,1.0,1.0,1.0,1.0,0.2683982683982684,0.0,0.8726471059804393,0.6103133944358858,0.04999160766601507,7.746680824791824e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 249 |
+
247,0.7530487804878049,0.4906529188156128,1.0,0.0,0.9088618036796512,0.025525934225319225,1.0,1.0,1.0,1.0,1.0,1.0,0.3434343434343434,0.0,0.8832772166105499,0.5910242628992629,0.02046823501586914,-0.033754794282615484,1.0,1.0,0.0,1.0,1.0,1.0
|
| 250 |
+
248,0.7560975609756098,0.4904912710189819,1.0,0.0,0.896842297613121,0.028892350754612068,1.0,1.0,1.0,1.0,1.0,1.0,0.2761904761904761,0.0,0.8511275720164608,0.5650901006884255,0.002906322479248047,-0.033026585383827654,1.0,1.0,0.0,1.0,1.0,1.0
|
| 251 |
+
249,0.7591463414634146,0.490362286567688,1.0,0.0,0.8970699394844374,0.02882859276370199,1.0,1.0,1.0,1.0,1.0,1.0,0.2965367965367965,0.0,0.9323459462348352,0.6163394439521488,0.0029277801513666324,0.0005267672383882718,1.0,1.0,0.0,1.0,1.0,1.0
|
| 252 |
+
250,0.7621951219512195,0.4901984930038452,1.0,0.0,0.8970303754759987,0.02883967403077324,1.0,1.0,1.0,1.0,1.0,1.0,0.3340548340548341,0.0,0.967442680776014,0.6171650824964132,0.010747909545898993,-0.0005753492885564662,1.0,1.0,0.0,1.0,1.0,1.0
|
| 253 |
+
251,0.7652439024390244,0.4892874956130981,1.0,0.0,0.8968645163375395,0.028886127692557637,1.0,1.0,1.0,1.0,1.0,1.0,0.3152958152958153,0.0,0.9661874476689292,0.6538106229184473,0.16190528869628906,-0.0007819580188099876,1.0,1.0,0.0,1.0,1.0,1.0
|
| 254 |
+
252,0.7682926829268293,0.4740079641342163,1.0,0.0,0.8967511820586868,0.02891786983265424,1.0,1.0,1.0,1.0,1.0,1.0,0.3340548340548341,0.0,0.988818698448328,0.6301496162257689,0.2792930603027338,0.00045859418039355393,1.0,1.0,0.0,1.0,1.0,1.0
|
| 255 |
+
253,0.7713414634146342,0.4613581895828247,1.0,0.0,0.8970282526640895,0.028840268274518282,1.0,1.0,1.0,1.0,1.0,1.0,0.2704184704184703,0.034965034965035,0.9927041847041848,0.6498631417311715,0.25820016860961914,0.0008454187281472722,1.0,1.0,0.0,1.0,1.0,1.0
|
| 256 |
+
254,0.774390243902439,0.4481879472732544,1.0,0.0,0.8970530317736243,0.028833327959839512,1.0,1.0,1.0,1.0,1.0,1.0,0.2761904761904761,0.0033783783783783,0.9976141093474428,0.6404407939880913,0.2524280548095703,0.00034145371941393665,1.0,1.0,0.0,1.0,1.0,1.0
|
| 257 |
+
255,0.7774390243902439,0.4361153841018677,1.0,0.0,0.8971501664964355,0.028806122902576888,1.0,1.0,1.0,1.0,1.0,1.0,0.305916305916306,0.0516129032258064,1.0,0.7262325023419095,0.2316427230834961,-0.0006343685768773338,1.0,1.0,0.0,1.0,1.0,1.0
|
| 258 |
+
256,0.7804878048780488,0.4250236749649048,1.0,0.0,0.8968265383479195,0.028896764817527246,1.0,0.8007892847061153,1.0,1.0,1.0,1.0,0.2571428571428571,0.0064516129032258,0.9976685087203606,0.6957848148634714,0.20818948745727595,-0.00016957835418357492,1.0,1.0,0.0,1.0,1.0,1.0
|
| 259 |
+
257,0.7835365853658537,0.4152964353561401,1.0,0.0,0.8970896194328057,0.028823080737995246,1.0,0.8190322796503698,1.0,1.0,1.0,1.0,0.305916305916306,0.0601733809280978,0.9932134038800704,0.715295129817438,0.1763772964477539,0.0010919058258046163,1.0,1.0,0.0,1.0,1.0,1.0
|
| 260 |
+
258,0.7865853658536586,0.4073859453201294,1.0,0.0,0.8972163912926272,0.028787574234946784,1.0,0.8217403173446651,1.0,1.0,1.0,1.0,0.3939393939393939,0.0628419830873818,1.0,0.7856685880092937,0.07925748825073187,-0.0003336938734455064,1.0,1.0,0.0,1.0,1.0,1.0
|
| 261 |
+
259,0.7896341463414634,0.4073706865310669,1.0,0.0,0.8969704771288329,0.028856450125339796,1.0,0.8488445361455278,1.0,1.0,1.0,1.0,0.2545454545454546,0.0465718786270933,0.9908991146028184,0.6918026727783617,0.07215499877929688,2.4482471799869288e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 262 |
+
260,0.7926829268292683,0.4001704454421997,1.0,0.0,0.8972251348937137,0.028785125987766797,1.0,0.8538125832875566,1.0,1.0,1.0,1.0,0.4112554112554112,0.061055030934549,1.0,0.773353192069188,0.12404918670654297,-8.734491238174963e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 263 |
+
261,0.7957317073170732,0.3949657678604126,1.0,0.0,0.8969392929744325,0.02886518461657797,1.0,0.8766391754150387,1.0,1.0,1.0,1.0,0.2519480519480519,0.0613431613431613,1.0,0.7248573810501981,0.06240367889404297,-0.000922257090257457,1.0,1.0,0.0,1.0,1.0,1.0
|
| 264 |
+
262,0.7987804878048781,0.3939300775527954,1.0,0.0,0.8968958474944818,0.028877351696792543,1.0,0.8884905656178789,1.0,1.0,1.0,1.0,0.2611832611832612,0.036144578313253,0.998149411021839,0.6923648535666367,0.02088308334350586,-0.00045111014073704464,1.0,1.0,0.0,1.0,1.0,1.0
|
| 265 |
+
263,0.801829268292683,0.392877459526062,1.0,0.0,0.8967782278810069,0.028910295630651676,1.0,0.8950629711151119,1.0,1.0,1.0,1.0,0.2611832611832612,0.0583482578964505,1.0,0.7510766030291094,0.015501976013184149,-0.000192524002973829,1.0,1.0,0.0,1.0,1.0,1.0
|
| 266 |
+
264,0.8048780487804879,0.392379879951477,1.0,0.0,0.8968271116041823,0.028896604097089926,1.0,0.8949517091115312,1.0,1.0,1.0,1.0,0.2796536796536796,0.0575538112963263,1.0,0.7382868036795726,0.013866424560546875,0.00010980467782216452,1.0,1.0,0.0,1.0,1.0,1.0
|
| 267 |
+
265,0.8079268292682927,0.3914908170700073,1.0,0.0,0.8968174292929314,0.02889931516286946,1.0,0.8938947200775142,1.0,1.0,1.0,1.0,0.259018759018759,0.0575538112963263,1.0,0.7479979364380769,0.011425018310546875,0.00039526470071719194,1.0,1.0,0.0,1.0,1.0,1.0
|
| 268 |
+
266,0.8109756097560976,0.3912373781204223,1.0,0.0,0.8969682359413229,0.028857077627018207,1.0,0.8934814612070715,1.0,1.0,1.0,1.0,0.2611832611832612,0.0543372714031397,1.0,0.7411566783889578,0.005085468292236328,0.00031369128170408156,1.0,1.0,0.0,1.0,1.0,1.0
|
| 269 |
+
267,0.8140243902439024,0.3909822702407837,1.0,0.0,0.8969294299520713,0.02886794603469905,1.0,0.89401790301005,1.0,1.0,1.0,1.0,0.2777777777777778,0.0543372714031397,1.0,0.7363036106436667,0.002295970916748047,-0.0003992991922112388,1.0,1.0,0.0,1.0,1.0,1.0
|
| 270 |
+
268,0.8170731707317073,0.3914669752120971,1.0,0.0,0.896825671834573,0.02889700754623933,1.0,0.8981008211771643,1.0,1.0,1.0,1.0,0.2965367965367965,0.0511207315099531,1.0,0.7365710530322869,0.0037646293640131168,0.0002728720682481159,1.0,1.0,0.0,1.0,1.0,1.0
|
| 271 |
+
269,0.8201219512195121,0.391358733177185,1.0,0.0,0.8970268587314495,0.02884065882787424,1.0,0.9231635808944698,1.0,1.0,1.0,1.0,0.2519480519480519,0.0370385629531971,0.996252557319224,0.6890303850567168,0.003733634948731024,0.0005947857054442937,1.0,1.0,0.0,1.0,1.0,1.0
|
| 272 |
+
270,0.823170731707317,0.3918403387069702,1.0,0.0,0.8970380344780572,0.0288375289756949,1.0,0.9645609935124712,1.0,1.0,1.0,1.0,0.2727272727272728,0.0519480519480519,1.0,0.7321323320598567,0.006372928619384766,0.0006351932155492304,1.0,1.0,0.0,1.0,1.0,1.0
|
| 273 |
+
271,0.8262195121951219,0.3919960260391235,1.0,0.0,0.8972536463951507,0.028777139506319317,1.0,1.0,1.0,1.0,1.0,1.0,0.2796536796536796,0.0402684563758388,0.9983201800485751,0.7051416056635906,0.003440380096436102,-0.00036479264450193366,1.0,1.0,0.0,1.0,1.0,1.0
|
| 274 |
+
272,0.8292682926829268,0.3914963006973266,1.0,0.0,0.8969077849499176,0.028874008240145094,1.0,1.0,1.0,1.0,1.0,1.0,0.2704184704184703,0.0601503759398496,0.9978733048691896,0.678326844410124,0.005674362182616632,-0.0009059078199092144,1.0,1.0,0.0,1.0,1.0,1.0
|
| 275 |
+
273,0.8323170731707317,0.3914285898208618,1.0,0.0,0.8969302026620216,0.028867730288310238,1.0,1.0,1.0,1.0,1.0,1.0,0.3272727272727274,0.08213866039953,0.9978572390572392,0.7266176523675016,0.0020933151245111636,0.0002554355323982835,1.0,1.0,0.0,1.0,1.0,1.0
|
| 276 |
+
274,0.8353658536585366,0.3912869691848755,1.0,0.0,0.8969989903276705,0.028848464686905266,1.0,1.0,1.0,1.0,1.0,1.0,0.2611832611832612,0.101157191674433,0.99206456095345,0.6879371685218361,0.0012063980102539062,-0.0003886896187023023,1.0,1.0,0.0,1.0,1.0,1.0
|
| 277 |
+
275,0.8384146341463414,0.3915492296218872,1.0,0.0,0.8967914249280653,0.028906599250180468,1.0,1.0,1.0,1.0,1.0,1.0,0.3636363636363636,0.2449281605103522,1.0,0.7706232870458144,0.003364086151123047,0.01085100152034807,1.0,1.0,1.0,1.0,1.0,1.0
|
| 278 |
+
276,0.8414634146341463,0.3916233777999878,1.0,0.0,0.9008732458552243,0.02776336453487046,1.0,1.0,1.0,1.0,1.0,1.0,0.4563575958924796,0.3808028919330288,1.0,0.9501717534579748,0.0003266334533691406,0.026441073359688982,1.0,1.0,1.0,1.0,1.0,1.0
|
| 279 |
+
277,0.8445121951219512,0.3915818929672241,1.0,0.0,0.9062319850583388,0.02626249191421157,1.0,1.0,1.0,1.0,1.0,1.0,0.8233766233766233,0.4583487597186226,1.0,0.9757896264969512,0.0009751319885259457,0.01748297758725894,1.0,1.0,1.0,1.0,1.0,1.0
|
| 280 |
+
278,0.8475609756097561,0.3915258646011352,1.0,0.0,0.9071153977715019,0.026015066776144565,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.3252499074416881,1.0,0.9653426171737044,0.0016522407531743832,0.016536962653303823,1.0,1.0,1.0,1.0,1.0,1.0
|
| 281 |
+
279,0.850609756097561,0.3914166688919067,1.0,0.0,0.912136367300929,0.024608795648881188,1.0,1.0,1.0,1.0,1.0,1.0,0.4936708860759493,0.0933450573861532,1.0,0.958061384845428,0.00255584716796875,0.021920777722081418,1.0,1.0,1.0,1.0,1.0,1.0
|
| 282 |
+
280,0.8536585365853658,0.3917814493179321,1.0,0.0,0.9149420248175221,0.023822989003936423,1.0,1.0,1.0,1.0,1.0,1.0,0.6506024096385542,0.1159524250277674,0.9905101889037632,0.9095372899707838,0.00850439071655329,0.0049089007450472955,1.0,1.0,0.0,1.0,1.0,1.0
|
| 283 |
+
281,0.8567073170731707,0.392267107963562,1.0,0.0,0.9138890486892751,0.024117905574376458,1.0,1.0,1.0,1.0,1.0,1.0,0.8452380952380952,0.4186486486486487,0.9972486772486772,0.9948493136570152,0.0017428398132324219,-0.05077063386194538,1.0,1.0,0.0,1.0,1.0,1.0
|
| 284 |
+
282,0.8597560975609756,0.3919557332992553,1.0,0.0,0.8968147996910931,0.02890005239013096,1.0,1.0,1.0,1.0,1.0,1.0,0.7273504273504273,0.3760468214693566,1.0,0.9893241755889484,0.008485317230225164,-0.04714729130432246,1.0,1.0,0.0,1.0,1.0,1.0
|
| 285 |
+
283,0.8628048780487805,0.3914185762405395,1.0,0.0,0.8970555083210856,0.028832634704808704,1.0,1.0,1.0,1.0,1.0,1.0,0.6974358974358974,0.4168728587742671,0.9996484611867328,0.9879832440988114,0.005173683166503351,0.0010037235094963182,1.0,1.0,0.0,1.0,1.0,1.0
|
| 286 |
+
284,0.8658536585365854,0.391438364982605,1.0,0.0,0.8971731687186246,0.02879968003918133,1.0,1.0,1.0,1.0,1.0,1.0,0.6698005698005698,0.472401979444233,0.9992571645191672,0.9897344248597238,0.0043964385986328125,-0.006400826228582478,1.0,1.0,0.0,1.0,1.0,1.0
|
| 287 |
+
285,0.8689024390243902,0.3918582201004028,1.0,0.0,0.8947701486053181,0.02947271732766695,1.0,1.0,1.0,1.0,1.0,1.0,0.7073170731707317,0.4618861819566044,0.999440329218107,0.9897570561043386,0.004298686981201172,-0.005350311076744961,1.0,1.0,0.0,1.0,1.0,1.0
|
| 288 |
+
286,0.8719512195121951,0.3918682336807251,1.0,0.0,0.8952628876570708,0.029334711146855826,1.0,1.0,1.0,1.0,1.0,1.0,0.6879518072289157,0.0135135135135134,0.9953770638107988,0.9628917680126784,0.00048398971557561676,0.005030575121779748,1.0,1.0,0.0,1.0,1.0,1.0
|
| 289 |
+
287,0.875,0.3918098211288452,1.0,0.0,0.8965662706053051,0.028969659815488977,1.0,1.0,1.0,1.0,1.0,1.0,0.7048192771084338,0.010135135135135,0.9969024245128664,0.9576483992381644,0.0035500526428228207,0.004674999478718848,1.0,1.0,0.0,1.0,1.0,1.0
|
| 290 |
+
288,0.8780487804878049,0.3915132284164428,1.0,0.0,0.8969320536401602,0.02886721119898394,1.0,1.0,1.0,1.0,1.0,1.0,0.5713675213675213,0.0,0.9921681966867152,0.7984101416937238,0.00396728515625,0.0014046203366491206,1.0,1.0,0.0,1.0,1.0,1.0
|
| 291 |
+
289,0.8810975609756098,0.3914130926132202,1.0,0.0,0.8970677792373044,0.028829197781824065,1.0,1.0,1.0,1.0,1.0,1.0,0.5497835497835498,0.0,0.98999518999519,0.7202364864864865,5.245208740234375e-05,1.2710984931274538e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 292 |
+
290,0.8841463414634146,0.3915079832077026,1.0,0.0,0.8969365925340977,0.028865940100490813,1.0,1.0,1.0,1.0,1.0,1.0,0.6103896103896104,0.0,0.9911014911014911,0.7380865074672414,0.0019598007202148438,-0.0002023287603786575,1.0,1.0,0.0,1.0,1.0,1.0
|
| 293 |
+
291,0.8871951219512195,0.3916090726852417,1.0,0.0,0.8969955386733086,0.02884943065786193,1.0,1.0,1.0,1.0,1.0,1.0,0.5670995670995671,0.0,0.9960451071562184,0.6905424214811781,0.000698566436767023,-0.0004298350858503511,1.0,1.0,0.0,1.0,1.0,1.0
|
| 294 |
+
292,0.8902439024390244,0.3914381265640259,1.0,0.0,0.896783124863397,0.02890892360907585,1.0,1.0,1.0,1.0,1.0,1.0,0.5774891774891775,0.0,0.9864900860456416,0.7097355769230769,0.0037717819213867188,0.00015314335639417948,1.0,1.0,0.0,1.0,1.0,1.0
|
| 295 |
+
293,0.8932926829268293,0.391231894493103,1.0,0.0,0.8970502156138911,0.028834116322222512,1.0,1.0,1.0,1.0,1.0,1.0,0.498989898989899,0.0,0.985897493453049,0.7024714554126319,0.0002646446228027344,0.00029039828819854563,1.0,1.0,0.0,1.0,1.0,1.0
|
| 296 |
+
294,0.8963414634146342,0.3914116621017456,1.0,0.0,0.8968868098115803,0.028879883780255994,1.0,1.0,1.0,1.0,1.0,1.0,0.5324675324675325,0.0033783783783783,0.9957287157287156,0.7229163187901052,0.003926753997802734,-0.00023902442412671726,1.0,1.0,0.0,1.0,1.0,1.0
|
| 297 |
+
295,0.899390243902439,0.3916245698928833,1.0,0.0,0.8969648738785612,0.028858018764635184,1.0,1.0,1.0,1.0,1.0,1.0,0.5070707070707071,0.0,0.9953749844120214,0.7371287128712871,0.0003147125244140625,0.00026531619954441726,1.0,1.0,0.0,1.0,1.0,1.0
|
| 298 |
+
296,0.902439024390244,0.391443133354187,1.0,0.0,0.8969815383664738,0.028853352160301552,1.0,1.0,1.0,1.0,1.0,1.0,0.5064935064935066,0.0,0.9930543530543532,0.7191898581750067,0.002028942108154852,-0.00021662523812113893,1.0,1.0,0.0,1.0,1.0,1.0
|
| 299 |
+
297,0.9054878048780488,0.3914216756820678,1.0,0.0,0.8968875326646946,0.028879681288447298,1.0,1.0,1.0,1.0,1.0,1.0,0.49004329004329,0.0,0.9848901715568382,0.7145945945945946,0.016360282897948664,-0.00015075776352454356,1.0,1.0,0.0,1.0,1.0,1.0
|
| 300 |
+
298,0.9085365853658536,0.3930791616439819,1.0,0.0,0.8969277096360353,0.028868427936654006,1.0,1.0,1.0,1.0,1.0,1.0,0.5238095238095237,0.0033783783783783,0.9979423868312756,0.7328643076065756,0.0013351440429681949,-0.00015273861302837755,1.0,1.0,0.0,1.0,1.0,1.0
|
| 301 |
+
299,0.9115853658536586,0.391288161277771,1.0,0.0,0.8968329974446408,0.028894955149750136,1.0,1.0,1.0,1.0,1.0,1.0,0.5760233918128654,0.0,0.986809616634178,0.730034176618479,0.01632213592529297,0.0002052558558006401,1.0,1.0,0.0,1.0,1.0,1.0
|
| 302 |
+
300,0.9146341463414634,0.3914469480514526,1.0,0.0,0.89700099530568,0.028847902351073942,1.0,1.0,1.0,1.0,1.0,1.0,0.5272300469483568,0.0,0.9775288355648292,0.6857672091316951,0.0018572807312011719,0.00024163787810824178,1.0,1.0,0.0,1.0,1.0,1.0
|
| 303 |
+
301,0.9176829268292684,0.3914738893508911,1.0,0.0,0.8969192717261606,0.02887079136193931,1.0,1.0,1.0,1.0,1.0,1.0,0.5799999999999998,0.0,0.948874074074074,0.7471160184574819,2.384185791015625e-05,-0.0007756491639211369,1.0,1.0,0.0,1.0,1.0,1.0
|
| 304 |
+
302,0.9207317073170732,0.3914493322372436,1.0,0.0,0.896724055655933,0.028925467267466056,1.0,1.0,1.0,1.0,1.0,1.0,0.5877777777777777,0.0,0.9542484224965706,0.7111051841314999,0.003974437713623047,-0.0005158643022382114,1.0,1.0,0.0,1.0,1.0,1.0
|
| 305 |
+
303,0.923780487804878,0.3918713331222534,1.0,0.0,0.8967350879070884,0.028922377792163133,1.0,1.0,1.0,1.0,1.0,1.0,0.6298412698412699,0.0067567567567567,0.932366059180874,0.627514681972603,0.003945827484130859,-0.0003622976091700175,1.0,1.0,0.0,1.0,1.0,1.0
|
| 306 |
+
304,0.926829268292683,0.3910547494888305,1.0,0.0,0.896594703006145,0.028961697028383058,1.0,1.0,1.0,1.0,1.0,1.0,0.5310789049919484,0.0033783783783783,0.9124680622651636,0.5898517029218042,0.0042319297790532895,0.0010555330579930036,1.0,1.0,0.0,1.0,1.0,1.0
|
| 307 |
+
305,0.929878048780488,0.3914481401443481,1.0,0.0,0.8971119561853949,0.028816824486363832,1.0,1.0,1.0,1.0,1.0,1.0,0.6315619967793881,0.0,0.9237196874813622,0.6238425925925926,0.002372264862061102,0.0008750896065303979,1.0,1.0,0.0,1.0,1.0,1.0
|
| 308 |
+
306,0.9329268292682928,0.3912919759750366,1.0,0.0,0.896907146139359,0.028874188067730018,1.0,1.0,1.0,1.0,1.0,1.0,0.6231884057971014,0.0033783783783783,0.9225442834138486,0.6115222090728847,0.004014968872070868,-0.0003271555948505117,1.0,1.0,0.0,1.0,1.0,1.0
|
| 309 |
+
307,0.9359756097560976,0.3918496370315552,1.0,0.0,0.8969951477975392,0.028849540045848884,1.0,1.0,1.0,1.0,1.0,1.0,0.5227053140096618,0.0,0.8942880658436214,0.6036036036036037,0.002276897430419922,0.00031404789549226847,1.0,1.0,0.0,1.0,1.0,1.0
|
| 310 |
+
308,0.9390243902439024,0.3915196657180786,1.0,0.0,0.8970192753840884,0.02884278327818079,1.0,1.0,1.0,1.0,1.0,1.0,0.6064412238325283,0.0,0.914556964824565,0.5485966735966736,0.0022530555725097656,-0.00046864352644563484,1.0,1.0,0.0,1.0,1.0,1.0
|
| 311 |
+
309,0.9420731707317072,0.3916243314743042,1.0,0.0,0.8968278251665435,0.028896404398493447,1.0,1.0,1.0,1.0,1.0,1.0,0.5896940418679548,0.0,0.9061391599044342,0.5474324324324324,0.0031256675720220395,-0.00011833349580912117,1.0,1.0,0.0,1.0,1.0,1.0
|
| 312 |
+
310,0.945121951219512,0.3912070989608764,1.0,0.0,0.896977022982665,0.028854616627761703,1.0,1.0,1.0,1.0,1.0,1.0,0.5813204508856682,0.0,0.9118569370285616,0.6245668745668745,0.0021600723266601562,0.00035968844998846006,1.0,1.0,0.0,1.0,1.0,1.0
|
| 313 |
+
311,0.948170731707317,0.3914083242416382,1.0,0.0,0.8969562469702679,0.0288604355534946,1.0,1.0,1.0,1.0,1.0,1.0,0.5961904761904762,0.0034722222222222,0.9295921855921856,0.629770750864501,0.003256797790527899,-0.0003266130522786709,1.0,1.0,0.0,1.0,1.0,1.0
|
| 314 |
+
312,0.951219512195122,0.3915327787399292,1.0,0.0,0.896860407315617,0.02888727793298957,1.0,1.0,1.0,1.0,1.0,1.0,0.5961904761904762,0.0,0.9849244444444444,0.6009290540540541,0.005414485931395929,-0.0002436741439214643,1.0,1.0,0.0,1.0,1.0,1.0
|
| 315 |
+
313,0.9542682926829268,0.3919497728347778,1.0,0.0,0.8968692474923968,0.028884802967886748,1.0,1.0,1.0,1.0,1.0,1.0,0.5204761904761905,0.0,0.9914751322751324,0.545045045045045,0.001068115234375,0.00035755188188789366,1.0,1.0,0.0,1.0,1.0,1.0
|
| 316 |
+
314,0.9573170731707316,0.3914259672164917,1.0,0.0,0.8969880712073491,0.02885152274480078,1.0,1.0,1.0,1.0,1.0,1.0,0.5705790297339592,0.0,0.9899067720663964,0.563063063063063,0.001354217529296875,0.04682875475803986,1.0,1.0,1.0,1.0,1.0,1.0
|
| 317 |
+
315,0.9603658536585366,0.3918143510818481,1.0,1.0,0.9135890584838219,0.02420192749208276,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8470884360327218,1.0,0.9675457968368336,0.00011920928955078125,0.033578289536896865,1.0,1.0,1.0,1.0,1.0,1.0
|
| 318 |
+
316,0.9634146341463414,0.3914140462875366,1.0,1.0,0.9089769158310053,0.025493693791111095,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8449900793650794,1.0,0.96369136994137,0.0018835067749017886,-0.018569566722703885,1.0,1.0,0.0,1.0,1.0,1.0
|
| 319 |
+
317,0.9664634146341464,0.3916260004043579,1.0,1.0,0.9069589512567355,0.02605888416435315,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8588368153585545,1.0,0.9703759294552132,0.0010633468627929688,-0.006698548922085164,1.0,1.0,0.0,1.0,1.0,1.0
|
| 320 |
+
318,0.9695121951219512,0.3915203809738159,1.0,1.0,0.9065852554156536,0.02616354868331961,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8490544543176122,1.0,0.9664848760243496,0.001780986785889227,-0.003016714384664436,1.0,1.0,0.0,1.0,1.0,1.0
|
| 321 |
+
319,0.972560975609756,0.391447901725769,1.0,1.0,0.9058818588262141,0.026360555602819594,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8338293650793651,1.0,0.9610771485771484,0.002665519714356024,-0.0012962962448814438,1.0,1.0,0.0,1.0,1.0,1.0
|
| 322 |
+
320,0.975609756097561,0.3912538290023803,1.0,1.0,0.9061224237742421,0.026293178307807755,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8368506493506493,1.0,0.9625197437697438,0.005884170532227118,0.0013180230863809456,1.0,1.0,0.0,1.0,1.0,1.0
|
| 323 |
+
321,0.9786585365853658,0.3920363187789917,1.0,1.0,0.9063524478488666,0.0262287532941815,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8478084415584416,1.0,0.9646479798506824,0.001304149627686102,-0.0008127108667336722,1.0,1.0,0.0,1.0,1.0,1.0
|
| 324 |
+
322,0.9817073170731708,0.3913842439651489,1.0,1.0,0.9058322513730124,0.026374449394481123,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8575985418090681,1.0,0.9687294095188832,0.007798671722412109,-0.0008841850387101072,1.0,1.0,0.0,1.0,1.0,1.0
|
| 325 |
+
323,0.9847560975609756,0.3912564516067505,1.0,1.0,0.9060367562022127,0.02631717179805251,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8553082191780822,1.0,0.9668750136115164,0.00010251998901367188,0.001589135167945413,1.0,1.0,0.0,1.0,1.0,1.0
|
| 326 |
+
324,0.9878048780487804,0.3913944959640503,1.0,1.0,0.9063996386876098,0.02621553587768658,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8449900793650794,1.0,0.964069584837814,0.0032687187194818668,0.0006944354437097428,1.0,1.0,0.0,1.0,1.0,1.0
|
| 327 |
+
325,0.9908536585365854,0.3915833234786987,1.0,1.0,0.9062846985246259,0.026247728253681536,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8418401451489688,1.0,0.9668090606671922,0.0006031990051269531,-0.00028014814184455783,1.0,1.0,0.0,1.0,1.0,1.0
|
| 328 |
+
326,0.9939024390243902,0.391454815864563,1.0,1.0,0.9062996141549017,0.026243550691871037,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8497431506849316,1.0,0.9673925915238364,0.0017261505126947574,-1.138857619705641e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 329 |
+
327,0.9969512195121952,0.3914107084274292,1.0,1.0,0.9062806331637525,0.02624886711130124,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8506268037518038,1.0,0.9642797296407938,0.0033211708068842105,-0.001442379025393542,1.0,1.0,0.0,1.0,1.0,1.0
|
| 330 |
+
328,1.0,0.3917869329452514,1.0,1.0,0.905784625720522,0.02638778859441039,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8449900793650794,1.0,0.9640404913842414,0.007524490356444202,-0.002778429662183002,1.0,1.0,0.0,1.0,1.0,1.0
|
artifacts/results/metric_iter22_ep0_pregrasp_repair/episode0.keyframes.csv
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
frame_index,time_norm,door_angle,right_gripper_open,left_gripper_open,pregrasp_progress,pregrasp_distance,p_pre,p_ext,y_pre_raw,y_ext_raw,y_pre,y_ext,three_view_visibility,three_view_whole_tray_visibility,full_view_visibility,full_view_whole_tray_visibility,door_speed_abs,pregrasp_speed,y_pre_progress_seed,phase_score,approach_active,y_retrieve,y_ready,phase_switch,keyframe_ordinal
|
| 2 |
+
61,0.1859756097560975,1.5707963705062866,1.0,1.0,0.0003966207773271613,0.27996834683588046,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.008864560822093304,0.0,0.0,0.0,0.0,0.0,0.0,0
|
| 3 |
+
91,0.2774390243902439,1.5704001188278198,0.0,1.0,0.005002393682502104,0.27867836459827655,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0020718574523947986,0.010448094188048596,0.0,0.0,0.0,0.0,0.0,0.0,1
|
| 4 |
+
93,0.2835365853658536,1.569938063621521,0.0,1.0,0.006840924530867487,0.2781634299639764,0.0,0.0007311503092447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.002665519714357689,0.006444191656841958,0.0,0.0,0.0,0.0,0.0,0.0,2
|
| 5 |
+
130,0.3963414634146341,0.728131890296936,1.0,1.0,0.01907851101545255,0.27473593387861606,0.44620877071596826,0.0007311503092447,0.0,0.0,0.0,0.0,0.7,0.7673611111111112,0.9417283950617285,0.8622844789512951,0.08178234100341797,0.007885939925640906,0.0,0.44620877071596826,0.0,0.0,0.0,0.0,3
|
| 6 |
+
132,0.4024390243902439,0.7292441129684448,1.0,1.0,0.020499772720911857,0.27433786558532053,0.4447570287929474,0.0007315476735432,0.0,0.0,0.0,0.0,0.7,0.7638888888888888,0.9417283950617285,0.8602290234132547,0.014355182647705078,0.005093607297941838,0.0,0.4447570287929474,0.0,0.0,0.0,0.0,4
|
| 7 |
+
175,0.5335365853658537,0.7309871912002563,1.0,1.0,0.005424323805194087,0.2785601884693985,0.7222230970999384,0.0007311503092447,0.0,0.0,0.0,0.0,0.83,0.8596476124885216,0.9669794238683128,0.9169154294499549,0.013387203216552734,0.011233225893156895,0.0,0.7222230970999384,0.0,0.0,0.0,1.0,5
|
| 8 |
+
234,0.7134146341463414,0.5661109685897827,1.0,0.0,0.8869339516211069,0.03166747458623281,0.0,1.0,0.0,1.0,0.0,1.0,0.964102564102564,0.3174825174825174,0.9764583729028172,0.574679636950962,0.057735443115234375,-0.020575684207202113,1.0,0.0,0.0,0.0,1.0,1.0,6
|
| 9 |
+
236,0.7195121951219512,0.5650361776351929,1.0,0.0,0.9045016076100404,0.026747135417500293,1.0,1.0,1.0,1.0,1.0,1.0,0.7743589743589743,0.4888927058284666,0.9095702578171714,0.7931544024948072,0.0016927719116210938,0.0641049075699722,1.0,1.0,1.0,1.0,1.0,1.0,7
|
| 10 |
+
266,0.8109756097560976,0.3912373781204223,1.0,0.0,0.8969682359413229,0.028857077627018207,1.0,0.8934814612070715,1.0,1.0,1.0,1.0,0.2611832611832612,0.0543372714031397,1.0,0.7411566783889578,0.005085468292236328,0.00031369128170408156,1.0,1.0,0.0,1.0,1.0,1.0,8
|
| 11 |
+
295,0.899390243902439,0.3916245698928833,1.0,0.0,0.8969648738785612,0.028858018764635184,1.0,1.0,1.0,1.0,1.0,1.0,0.5070707070707071,0.0,0.9953749844120214,0.7371287128712871,0.0003147125244140625,0.00026531619954441726,1.0,1.0,0.0,1.0,1.0,1.0,9
|
| 12 |
+
315,0.9603658536585366,0.3918143510818481,1.0,1.0,0.9135890584838219,0.02420192749208276,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8470884360327218,1.0,0.9675457968368336,0.00011920928955078125,0.033578289536896865,1.0,1.0,1.0,1.0,1.0,1.0,10
|
| 13 |
+
317,0.9664634146341464,0.3916260004043579,1.0,1.0,0.9069589512567355,0.02605888416435315,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8588368153585545,1.0,0.9703759294552132,0.0010633468627929688,-0.006698548922085164,1.0,1.0,0.0,1.0,1.0,1.0,11
|
| 14 |
+
322,0.9817073170731708,0.3913842439651489,1.0,1.0,0.9058322513730124,0.026374449394481123,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8575985418090681,1.0,0.9687294095188832,0.007798671722412109,-0.0008841850387101072,1.0,1.0,0.0,1.0,1.0,1.0,12
|
| 15 |
+
328,1.0,0.3917869329452514,1.0,1.0,0.905784625720522,0.02638778859441039,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.8449900793650794,1.0,0.9640404913842414,0.007524490356444202,-0.002778429662183002,1.0,1.0,0.0,1.0,1.0,1.0,13
|
artifacts/results/metric_iter22_ep0_pregrasp_repair/episode0.metrics.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"episode_name": "episode0",
|
| 3 |
+
"description": "take tray out of oven",
|
| 4 |
+
"num_dense_frames": 329,
|
| 5 |
+
"num_keyframes": 14,
|
| 6 |
+
"phase_switch_rises": 1,
|
| 7 |
+
"phase_switch_falls": 0,
|
| 8 |
+
"ppre_cross_frame": 138,
|
| 9 |
+
"pext_cross_frame": 232,
|
| 10 |
+
"phase_cross_frame": 143,
|
| 11 |
+
"retrieve_cross_frame": 235,
|
| 12 |
+
"ready_cross_frame": 234,
|
| 13 |
+
"ordering_ok": true,
|
| 14 |
+
"dense_boundary_error_to_retrieve_frames": 92.0,
|
| 15 |
+
"dense_boundary_error_frames": 91.0,
|
| 16 |
+
"dense_boundary_error_fraction": 0.2765957446808511,
|
| 17 |
+
"key_boundary_error_to_retrieve_keyframes": 2.0,
|
| 18 |
+
"key_boundary_error_keyframes": 1.0,
|
| 19 |
+
"auroc_vret_ypre_three": 0.5981892258940698,
|
| 20 |
+
"auprc_vret_ypre_three": 0.43447287211488084,
|
| 21 |
+
"auroc_vret_ypre_full": 0.8700316885468538,
|
| 22 |
+
"auprc_vret_ypre_full": 0.8448747258661806,
|
| 23 |
+
"auroc_ppre_ypre": 0.9914893617021276,
|
| 24 |
+
"auprc_ppre_ypre": 0.9591836734693877,
|
| 25 |
+
"auroc_pext_yext": 1.0,
|
| 26 |
+
"auprc_pext_yext": 1.0,
|
| 27 |
+
"auroc_phase_yretrieve": 0.9914893617021276,
|
| 28 |
+
"auprc_phase_yretrieve": 0.9591836734693877,
|
| 29 |
+
"f1_phase_yretrieve": 0.6714285714285714,
|
| 30 |
+
"auroc_phase_yready": 0.9838281601439496,
|
| 31 |
+
"auprc_phase_yready": 0.952126516900153,
|
| 32 |
+
"f1_phase_yready": 0.6761565836298933,
|
| 33 |
+
"baseline_auroc_door_yext": 0.0,
|
| 34 |
+
"baseline_auprc_door_yext": 0.16602997815735956,
|
| 35 |
+
"baseline_auroc_time_yext": 1.0,
|
| 36 |
+
"baseline_auprc_time_yext": 1.0,
|
| 37 |
+
"baseline_auroc_whole_vis_yext": 0.6285104870245289,
|
| 38 |
+
"baseline_auprc_whole_vis_yext": 0.5079253033451323,
|
| 39 |
+
"pre_ready_open_more_increases_pext": 2.0,
|
| 40 |
+
"pre_ready_open_more_trials": 2.0,
|
| 41 |
+
"pre_ready_hold_open_increases_pext": 0.0,
|
| 42 |
+
"pre_ready_hold_open_trials": 2.0,
|
| 43 |
+
"pre_ready_extract_success": 0.0,
|
| 44 |
+
"pre_ready_extract_trials": 2.0,
|
| 45 |
+
"pre_ready_wait_extract_success": 0.0,
|
| 46 |
+
"pre_ready_wait_trials": 2.0,
|
| 47 |
+
"post_ready_extract_success": 2.0,
|
| 48 |
+
"post_ready_extract_trials": 2.0,
|
| 49 |
+
"post_ready_open_more_low_gain": 2.0,
|
| 50 |
+
"post_ready_open_more_trials": 2.0,
|
| 51 |
+
"post_ready_hold_open_low_gain": 2.0,
|
| 52 |
+
"post_ready_hold_open_trials": 2.0
|
| 53 |
+
}
|
artifacts/results/metric_iter22_ep0_pregrasp_repair/summary.json
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"num_episodes": 1,
|
| 3 |
+
"mean_metrics": {
|
| 4 |
+
"num_dense_frames": 329.0,
|
| 5 |
+
"num_keyframes": 14.0,
|
| 6 |
+
"phase_switch_rises": 1.0,
|
| 7 |
+
"phase_switch_falls": 0.0,
|
| 8 |
+
"ppre_cross_frame": 138.0,
|
| 9 |
+
"pext_cross_frame": 232.0,
|
| 10 |
+
"phase_cross_frame": 143.0,
|
| 11 |
+
"retrieve_cross_frame": 235.0,
|
| 12 |
+
"ready_cross_frame": 234.0,
|
| 13 |
+
"dense_boundary_error_to_retrieve_frames": 92.0,
|
| 14 |
+
"dense_boundary_error_frames": 91.0,
|
| 15 |
+
"dense_boundary_error_fraction": 0.2765957446808511,
|
| 16 |
+
"key_boundary_error_to_retrieve_keyframes": 2.0,
|
| 17 |
+
"key_boundary_error_keyframes": 1.0,
|
| 18 |
+
"auroc_vret_ypre_three": 0.5981892258940698,
|
| 19 |
+
"auprc_vret_ypre_three": 0.43447287211488084,
|
| 20 |
+
"auroc_vret_ypre_full": 0.8700316885468538,
|
| 21 |
+
"auprc_vret_ypre_full": 0.8448747258661806,
|
| 22 |
+
"auroc_ppre_ypre": 0.9914893617021276,
|
| 23 |
+
"auprc_ppre_ypre": 0.9591836734693877,
|
| 24 |
+
"auroc_pext_yext": 1.0,
|
| 25 |
+
"auprc_pext_yext": 1.0,
|
| 26 |
+
"auroc_phase_yretrieve": 0.9914893617021276,
|
| 27 |
+
"auprc_phase_yretrieve": 0.9591836734693877,
|
| 28 |
+
"f1_phase_yretrieve": 0.6714285714285714,
|
| 29 |
+
"auroc_phase_yready": 0.9838281601439496,
|
| 30 |
+
"auprc_phase_yready": 0.952126516900153,
|
| 31 |
+
"f1_phase_yready": 0.6761565836298933,
|
| 32 |
+
"baseline_auroc_door_yext": 0.0,
|
| 33 |
+
"baseline_auprc_door_yext": 0.16602997815735956,
|
| 34 |
+
"baseline_auroc_time_yext": 1.0,
|
| 35 |
+
"baseline_auprc_time_yext": 1.0,
|
| 36 |
+
"baseline_auroc_whole_vis_yext": 0.6285104870245289,
|
| 37 |
+
"baseline_auprc_whole_vis_yext": 0.5079253033451323,
|
| 38 |
+
"pre_ready_open_more_increases_pext": 2.0,
|
| 39 |
+
"pre_ready_open_more_trials": 2.0,
|
| 40 |
+
"pre_ready_hold_open_increases_pext": 0.0,
|
| 41 |
+
"pre_ready_hold_open_trials": 2.0,
|
| 42 |
+
"pre_ready_extract_success": 0.0,
|
| 43 |
+
"pre_ready_extract_trials": 2.0,
|
| 44 |
+
"pre_ready_wait_extract_success": 0.0,
|
| 45 |
+
"pre_ready_wait_trials": 2.0,
|
| 46 |
+
"post_ready_extract_success": 2.0,
|
| 47 |
+
"post_ready_extract_trials": 2.0,
|
| 48 |
+
"post_ready_open_more_low_gain": 2.0,
|
| 49 |
+
"post_ready_open_more_trials": 2.0,
|
| 50 |
+
"post_ready_hold_open_low_gain": 2.0,
|
| 51 |
+
"post_ready_hold_open_trials": 2.0
|
| 52 |
+
},
|
| 53 |
+
"median_metrics": {
|
| 54 |
+
"num_dense_frames": 329.0,
|
| 55 |
+
"num_keyframes": 14.0,
|
| 56 |
+
"phase_switch_rises": 1.0,
|
| 57 |
+
"phase_switch_falls": 0.0,
|
| 58 |
+
"ppre_cross_frame": 138.0,
|
| 59 |
+
"pext_cross_frame": 232.0,
|
| 60 |
+
"phase_cross_frame": 143.0,
|
| 61 |
+
"retrieve_cross_frame": 235.0,
|
| 62 |
+
"ready_cross_frame": 234.0,
|
| 63 |
+
"dense_boundary_error_to_retrieve_frames": 92.0,
|
| 64 |
+
"dense_boundary_error_frames": 91.0,
|
| 65 |
+
"dense_boundary_error_fraction": 0.2765957446808511,
|
| 66 |
+
"key_boundary_error_to_retrieve_keyframes": 2.0,
|
| 67 |
+
"key_boundary_error_keyframes": 1.0,
|
| 68 |
+
"auroc_vret_ypre_three": 0.5981892258940698,
|
| 69 |
+
"auprc_vret_ypre_three": 0.43447287211488084,
|
| 70 |
+
"auroc_vret_ypre_full": 0.8700316885468538,
|
| 71 |
+
"auprc_vret_ypre_full": 0.8448747258661806,
|
| 72 |
+
"auroc_ppre_ypre": 0.9914893617021276,
|
| 73 |
+
"auprc_ppre_ypre": 0.9591836734693877,
|
| 74 |
+
"auroc_pext_yext": 1.0,
|
| 75 |
+
"auprc_pext_yext": 1.0,
|
| 76 |
+
"auroc_phase_yretrieve": 0.9914893617021276,
|
| 77 |
+
"auprc_phase_yretrieve": 0.9591836734693877,
|
| 78 |
+
"f1_phase_yretrieve": 0.6714285714285714,
|
| 79 |
+
"auroc_phase_yready": 0.9838281601439496,
|
| 80 |
+
"auprc_phase_yready": 0.952126516900153,
|
| 81 |
+
"f1_phase_yready": 0.6761565836298933,
|
| 82 |
+
"baseline_auroc_door_yext": 0.0,
|
| 83 |
+
"baseline_auprc_door_yext": 0.16602997815735956,
|
| 84 |
+
"baseline_auroc_time_yext": 1.0,
|
| 85 |
+
"baseline_auprc_time_yext": 1.0,
|
| 86 |
+
"baseline_auroc_whole_vis_yext": 0.6285104870245289,
|
| 87 |
+
"baseline_auprc_whole_vis_yext": 0.5079253033451323,
|
| 88 |
+
"pre_ready_open_more_increases_pext": 2.0,
|
| 89 |
+
"pre_ready_open_more_trials": 2.0,
|
| 90 |
+
"pre_ready_hold_open_increases_pext": 0.0,
|
| 91 |
+
"pre_ready_hold_open_trials": 2.0,
|
| 92 |
+
"pre_ready_extract_success": 0.0,
|
| 93 |
+
"pre_ready_extract_trials": 2.0,
|
| 94 |
+
"pre_ready_wait_extract_success": 0.0,
|
| 95 |
+
"pre_ready_wait_trials": 2.0,
|
| 96 |
+
"post_ready_extract_success": 2.0,
|
| 97 |
+
"post_ready_extract_trials": 2.0,
|
| 98 |
+
"post_ready_open_more_low_gain": 2.0,
|
| 99 |
+
"post_ready_open_more_trials": 2.0,
|
| 100 |
+
"post_ready_hold_open_low_gain": 2.0,
|
| 101 |
+
"post_ready_hold_open_trials": 2.0
|
| 102 |
+
},
|
| 103 |
+
"single_switch_rate": 1.0,
|
| 104 |
+
"reversion_rate": 0.0,
|
| 105 |
+
"ordering_ok_rate": 1.0
|
| 106 |
+
}
|
artifacts/results/metric_iter22_ep0_pregrasp_repair/templates.json
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"template_mode": "per_episode",
|
| 3 |
+
"template_episode": "episode0",
|
| 4 |
+
"template_frames": {
|
| 5 |
+
"pregrasp": 229,
|
| 6 |
+
"grasp": 234,
|
| 7 |
+
"right_close": 91,
|
| 8 |
+
"right_open": 130,
|
| 9 |
+
"approach": [
|
| 10 |
+
177,
|
| 11 |
+
187,
|
| 12 |
+
197,
|
| 13 |
+
208,
|
| 14 |
+
218,
|
| 15 |
+
229,
|
| 16 |
+
232
|
| 17 |
+
],
|
| 18 |
+
"retreat": [
|
| 19 |
+
239,
|
| 20 |
+
244,
|
| 21 |
+
249,
|
| 22 |
+
254,
|
| 23 |
+
264,
|
| 24 |
+
274,
|
| 25 |
+
284,
|
| 26 |
+
295,
|
| 27 |
+
305,
|
| 28 |
+
310,
|
| 29 |
+
315
|
| 30 |
+
]
|
| 31 |
+
},
|
| 32 |
+
"templates": {
|
| 33 |
+
"approach_rel_poses": [
|
| 34 |
+
[
|
| 35 |
+
-0.3625197505146321,
|
| 36 |
+
0.08372429131714548,
|
| 37 |
+
0.13691903626392898,
|
| 38 |
+
0.6416348447407467,
|
| 39 |
+
0.6410872565393582,
|
| 40 |
+
0.29868034011062794,
|
| 41 |
+
0.2968196589661076
|
| 42 |
+
],
|
| 43 |
+
[
|
| 44 |
+
-0.32979445983162176,
|
| 45 |
+
0.08659364792515764,
|
| 46 |
+
0.12045077578809749,
|
| 47 |
+
0.6287469690798895,
|
| 48 |
+
0.6287301318727057,
|
| 49 |
+
0.3243430018231259,
|
| 50 |
+
0.32276506520462594
|
| 51 |
+
],
|
| 52 |
+
[
|
| 53 |
+
-0.2910925493361141,
|
| 54 |
+
0.08985276158129711,
|
| 55 |
+
0.10101096601604831,
|
| 56 |
+
0.6124184244028302,
|
| 57 |
+
0.6122709767290938,
|
| 58 |
+
0.35430518709849695,
|
| 59 |
+
0.35289624381998647
|
| 60 |
+
],
|
| 61 |
+
[
|
| 62 |
+
-0.244818538450706,
|
| 63 |
+
0.09371070170750202,
|
| 64 |
+
0.07770067425331129,
|
| 65 |
+
0.5909841767637374,
|
| 66 |
+
0.5908549510320831,
|
| 67 |
+
0.3889344056030255,
|
| 68 |
+
0.38776043866540033
|
| 69 |
+
],
|
| 70 |
+
[
|
| 71 |
+
-0.19036243621330934,
|
| 72 |
+
0.09824358579289771,
|
| 73 |
+
0.04990667629200307,
|
| 74 |
+
0.5635900638946065,
|
| 75 |
+
0.5631538374566398,
|
| 76 |
+
0.4277702591171187,
|
| 77 |
+
0.4268917903310006
|
| 78 |
+
],
|
| 79 |
+
[
|
| 80 |
+
-0.12217129631756263,
|
| 81 |
+
0.09345070134195246,
|
| 82 |
+
-0.006546997831216039,
|
| 83 |
+
0.5503450945485194,
|
| 84 |
+
0.5264249147312487,
|
| 85 |
+
0.4450459711257041,
|
| 86 |
+
0.47109571176286236
|
| 87 |
+
],
|
| 88 |
+
[
|
| 89 |
+
-0.11087643306877748,
|
| 90 |
+
0.09014108451750254,
|
| 91 |
+
-0.031580235354697894,
|
| 92 |
+
0.5622041544757288,
|
| 93 |
+
0.5226343775452266,
|
| 94 |
+
0.43323659021636735,
|
| 95 |
+
0.472319651291199
|
| 96 |
+
]
|
| 97 |
+
],
|
| 98 |
+
"pregrasp_rel_pose": [
|
| 99 |
+
-0.12217129631756263,
|
| 100 |
+
0.09345070134195246,
|
| 101 |
+
-0.006546997831216039,
|
| 102 |
+
0.5503450945485194,
|
| 103 |
+
0.5264249147312487,
|
| 104 |
+
0.4450459711257041,
|
| 105 |
+
0.47109571176286236
|
| 106 |
+
],
|
| 107 |
+
"grasp_rel_pose": [
|
| 108 |
+
-0.09865615619553114,
|
| 109 |
+
0.09471180553609355,
|
| 110 |
+
-0.023587008474192483,
|
| 111 |
+
0.5452601219922814,
|
| 112 |
+
0.5150377871073674,
|
| 113 |
+
0.45379910210390734,
|
| 114 |
+
0.48113808012481835
|
| 115 |
+
],
|
| 116 |
+
"retreat_rel_poses": [
|
| 117 |
+
[
|
| 118 |
+
0.2548525929450989,
|
| 119 |
+
0.23748670518398285,
|
| 120 |
+
0.292730450630188,
|
| 121 |
+
0.3300291728725241,
|
| 122 |
+
0.627796734434498,
|
| 123 |
+
0.6244628081014154,
|
| 124 |
+
0.3271058033489361
|
| 125 |
+
],
|
| 126 |
+
[
|
| 127 |
+
0.22123366594314575,
|
| 128 |
+
0.20692090690135956,
|
| 129 |
+
0.3001290559768677,
|
| 130 |
+
0.3293369490711715,
|
| 131 |
+
0.6272174893562581,
|
| 132 |
+
0.6253236114995244,
|
| 133 |
+
0.3272701879538016
|
| 134 |
+
],
|
| 135 |
+
[
|
| 136 |
+
0.17805954813957214,
|
| 137 |
+
0.16776257753372192,
|
| 138 |
+
0.3092261552810669,
|
| 139 |
+
0.3292203946981642,
|
| 140 |
+
0.627092205167199,
|
| 141 |
+
0.6254558193462786,
|
| 142 |
+
0.3273748859934127
|
| 143 |
+
],
|
| 144 |
+
[
|
| 145 |
+
0.132161945104599,
|
| 146 |
+
0.1261904537677765,
|
| 147 |
+
0.31862151622772217,
|
| 148 |
+
0.32922833561062037,
|
| 149 |
+
0.6270130163004302,
|
| 150 |
+
0.6255370861132601,
|
| 151 |
+
0.32736330630941085
|
| 152 |
+
],
|
| 153 |
+
[
|
| 154 |
+
0.05666536092758179,
|
| 155 |
+
0.058310166001319885,
|
| 156 |
+
0.33417391777038574,
|
| 157 |
+
0.3290531759368521,
|
| 158 |
+
0.6267400620289424,
|
| 159 |
+
0.6259557840834131,
|
| 160 |
+
0.3272617582705744
|
| 161 |
+
],
|
| 162 |
+
[
|
| 163 |
+
0.0558415949344635,
|
| 164 |
+
0.05751470848917961,
|
| 165 |
+
0.3844491243362427,
|
| 166 |
+
0.32944931283048395,
|
| 167 |
+
0.6271554580797323,
|
| 168 |
+
0.6255767695203596,
|
| 169 |
+
0.3267918100454689
|
| 170 |
+
],
|
| 171 |
+
[
|
| 172 |
+
0.05576580762863159,
|
| 173 |
+
0.053012214601039886,
|
| 174 |
+
0.5137358903884888,
|
| 175 |
+
0.3352571906446373,
|
| 176 |
+
0.6275228042160846,
|
| 177 |
+
0.6205178281888475,
|
| 178 |
+
0.329811114442256
|
| 179 |
+
],
|
| 180 |
+
[
|
| 181 |
+
0.05594903230667114,
|
| 182 |
+
0.05725332349538803,
|
| 183 |
+
0.6016567945480347,
|
| 184 |
+
0.3290406683903203,
|
| 185 |
+
0.6269357648722236,
|
| 186 |
+
0.625839814295268,
|
| 187 |
+
0.3271212498634039
|
| 188 |
+
],
|
| 189 |
+
[
|
| 190 |
+
0.11017268896102905,
|
| 191 |
+
0.09445947408676147,
|
| 192 |
+
0.6008111238479614,
|
| 193 |
+
0.3295905054305836,
|
| 194 |
+
0.6274618621218736,
|
| 195 |
+
0.6252874250360436,
|
| 196 |
+
0.3266149819043174
|
| 197 |
+
],
|
| 198 |
+
[
|
| 199 |
+
0.1597837209701538,
|
| 200 |
+
0.1288578361272812,
|
| 201 |
+
0.6011183261871338,
|
| 202 |
+
0.3293548308249215,
|
| 203 |
+
0.627458650421648,
|
| 204 |
+
0.6253267712318655,
|
| 205 |
+
0.32678351642036935
|
| 206 |
+
],
|
| 207 |
+
[
|
| 208 |
+
0.19115081429481506,
|
| 209 |
+
0.15017743408679962,
|
| 210 |
+
0.6012866497039795,
|
| 211 |
+
0.3296702831570499,
|
| 212 |
+
0.6273651178974856,
|
| 213 |
+
0.6251746471824625,
|
| 214 |
+
0.3269360392628933
|
| 215 |
+
]
|
| 216 |
+
],
|
| 217 |
+
"grasp_local_center": [
|
| 218 |
+
-0.09865615619553109,
|
| 219 |
+
0.09471180553609354,
|
| 220 |
+
-0.02358700847419226
|
| 221 |
+
],
|
| 222 |
+
"grasp_region_extents": [
|
| 223 |
+
0.03,
|
| 224 |
+
0.015,
|
| 225 |
+
0.004
|
| 226 |
+
],
|
| 227 |
+
"retriever_home_joints": [
|
| 228 |
+
1.4340894267661497e-06,
|
| 229 |
+
0.17521002888679504,
|
| 230 |
+
6.947189831407741e-06,
|
| 231 |
+
-0.8730043768882751,
|
| 232 |
+
-1.9187582438462414e-05,
|
| 233 |
+
1.2215814590454102,
|
| 234 |
+
0.7853902578353882
|
| 235 |
+
],
|
| 236 |
+
"hold_open_angle": 0.7285879850387573,
|
| 237 |
+
"open_more_delta": 0.12,
|
| 238 |
+
"reference_tray_height": 1.0472617149353027,
|
| 239 |
+
"mask_handle_ids": [
|
| 240 |
+
192
|
| 241 |
+
]
|
| 242 |
+
}
|
| 243 |
+
}
|
artifacts/results/metric_iter22_ep0_pregrasp_repair/templates.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9654a892a8bc231d35df19d719d44ddddb754b3a6748332d18d91e6eb3ba48f6
|
| 3 |
+
size 2351
|
artifacts/results/metric_iter22_ep0_pregrasp_repair/visualizations/README.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Visualizations
|
| 2 |
+
|
| 3 |
+
- `episode0_visibility_focus.gif`: three-view visibility montage over dense frames 131-171.
|
| 4 |
+
- `episode0_path_quality_focus.gif`: path-quality montage over dense frames 135-223.
|
| 5 |
+
- `episode0_all_metrics.gif`: full episode overlay GIF over dense frames 0-328, sampled every 2 frames.
|
| 6 |
+
- `frames/visibility_focus/`: per-frame PNGs with scene overlays, x-ray projections, and tray-mask views.
|
| 7 |
+
- `frames/path_quality_focus/`: per-frame PNGs with demo wrist trails plus planned pregrasp/grasp/retreat path overlays.
|
| 8 |
+
- `frames/all_metrics/`: per-frame PNGs with the episode-wide metric bars and phase banner.
|
| 9 |
+
|
| 10 |
+
Legend highlights:
|
| 11 |
+
- Visibility: blue = sampled tray surface, magenta = sampled grasp region, green = depth-consistent visible grasp samples.
|
| 12 |
+
- Path quality: cyan/purple = recent left/right demo wrist trails, yellow = pregrasp, orange = grasp, green = retreat / extraction path.
|
| 13 |
+
- All metrics: red banner = reveal phase, green banner = retrieve phase.
|
artifacts/results/metric_iter22_ep0_pregrasp_repair/visualizations/episode0_all_metrics.gif
ADDED
|
Git LFS Details
|
artifacts/results/metric_iter22_ep0_pregrasp_repair/visualizations/episode0_path_quality_focus.gif
ADDED
|
Git LFS Details
|
artifacts/results/metric_iter22_ep0_pregrasp_repair/visualizations/episode0_visibility_focus.gif
ADDED
|
Git LFS Details
|
artifacts/results/metric_iter22_ep1_pregrasp_repair/episode1.dense.csv
ADDED
|
@@ -0,0 +1,313 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
frame_index,time_norm,door_angle,right_gripper_open,left_gripper_open,pregrasp_progress,pregrasp_distance,p_pre,p_ext,y_pre_raw,y_ext_raw,y_pre,y_ext,three_view_visibility,three_view_whole_tray_visibility,full_view_visibility,full_view_whole_tray_visibility,door_speed_abs,pregrasp_speed,y_pre_progress_seed,phase_score,approach_active,y_retrieve,y_ready,phase_switch
|
| 2 |
+
0,0.0,1.5707966089248655,1.0,1.0,0.0,0.4203838495762581,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.029834118846104873,0.0,0.0,0.0,0.0,0.0,0.0
|
| 3 |
+
1,0.0032154340836012,1.5707966089248655,1.0,1.0,0.0,0.41889214363395283,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.030836864845421585,0.0,0.0,0.0,0.0,0.0,0.0
|
| 4 |
+
2,0.0064308681672025,1.5707966089248655,1.0,1.0,0.0,0.4173001630917159,0.0,0.0010259946187337,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03581839781183538,0.0,0.0,0.0,0.0,0.0,0.0
|
| 5 |
+
3,0.0096463022508038,1.5707966089248655,1.0,1.0,0.0,0.4153103038527693,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.046036826189782,0.0,0.0,0.0,0.0,0.0,0.0
|
| 6 |
+
4,0.0128617363344051,1.5707966089248655,1.0,1.0,0.0,0.4126964804727377,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05855835061947978,0.0,0.0,0.0,0.0,0.0,0.0
|
| 7 |
+
5,0.0160771704180064,1.5707966089248655,1.0,1.0,0.0,0.4094544687908213,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06989860223346411,0.0,0.0,0.0,0.0,0.0,0.0
|
| 8 |
+
6,0.0192926045016077,1.5707966089248655,1.0,1.0,0.0,0.4057066202493913,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08078924613917626,0.0,0.0,0.0,0.0,0.0,0.0
|
| 9 |
+
7,0.022508038585209,1.5707966089248655,1.0,1.0,0.0,0.4013755441769037,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08906039040044778,0.0,0.0,0.0,0.0,0.0,0.0
|
| 10 |
+
8,0.0257234726688102,1.5707966089248655,1.0,1.0,0.0,0.3968005812093465,0.0,0.0010259946187337,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09472423788832562,0.0,0.0,0.0,0.0,0.0,0.0
|
| 11 |
+
9,0.0289389067524115,1.5707966089248655,1.0,1.0,0.0,0.3919031203880711,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.100798973848793,0.0,0.0,0.0,0.0,0.0,0.0
|
| 12 |
+
10,0.0321543408360128,1.5707966089248655,1.0,1.0,0.0,0.3867206838244672,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1060767525543338,0.0,0.0,0.0,0.0,0.0,0.0
|
| 13 |
+
11,0.0353697749196141,1.5707966089248655,1.0,1.0,0.0,0.38129544513263774,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1104517338650074,0.0,0.0,0.0,0.0,0.0,0.0
|
| 14 |
+
12,0.0385852090032154,1.5707966089248655,1.0,1.0,0.0,0.3756755104379665,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11345011961536422,0.0,0.0,0.0,0.0,0.0,0.0
|
| 15 |
+
13,0.0418006430868167,1.5707966089248655,1.0,1.0,0.0,0.3699504331711013,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1184708191160555,0.0,0.0,0.0,0.0,0.0,0.0
|
| 16 |
+
14,0.045016077170418,1.5707966089248655,1.0,1.0,0.0,0.36382842852636094,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.12555070858265793,0.0,0.0,0.0,0.0,0.0,0.0
|
| 17 |
+
15,0.0482315112540192,1.5707966089248655,1.0,1.0,0.0,0.35739536231283553,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.12899273100608066,0.0,0.0,0.0,0.0,0.0,0.0
|
| 18 |
+
16,0.0514469453376205,1.5707966089248655,1.0,1.0,0.0,0.35092915542575287,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.13510069839749728,0.0,0.0,0.0,0.0,0.0,0.0
|
| 19 |
+
17,0.0546623794212218,1.5707966089248655,1.0,1.0,0.0,0.3438852924730858,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.14247848425468168,0.0,0.0,0.0,0.0,0.0,0.0
|
| 20 |
+
18,0.0578778135048231,1.5707966089248655,1.0,1.0,0.0,0.3366813070002847,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1443118600491744,0.0,0.0,0.0,0.0,0.0,0.0
|
| 21 |
+
19,0.0610932475884244,1.5707966089248655,1.0,1.0,0.0,0.32945410646816836,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1448496923155279,0.0,0.0,0.0,0.0,0.0,0.0
|
| 22 |
+
20,0.0643086816720257,1.5707966089248655,1.0,1.0,0.0,0.3221963377687319,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.14570731257182723,0.0,0.0,0.0,0.0,0.0,0.0
|
| 23 |
+
21,0.067524115755627,1.5707966089248655,1.0,1.0,0.0,0.31488337521098564,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.14403609321488542,0.0,0.0,0.0,0.0,0.0,0.0
|
| 24 |
+
22,0.0707395498392283,1.5707966089248655,1.0,1.0,0.0,0.30779272844724337,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.13982093976247334,0.0,0.0,0.0,0.0,0.0,0.0
|
| 25 |
+
23,0.0739549839228295,1.5707966089248655,1.0,1.0,0.0,0.3009012812347383,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.13534421493782256,0.0,0.0,0.0,0.0,0.0,0.0
|
| 26 |
+
24,0.0771704180064308,1.5707966089248655,1.0,1.0,0.0,0.2942583069534611,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.12645516555488068,0.0,0.0,0.0,0.0,0.0,0.0
|
| 27 |
+
25,0.0803858520900321,1.5707966089248655,1.0,1.0,0.0,0.28825576467925024,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.007400377180943329,0.0,0.0,0.0,0.0,0.0,0.0
|
| 28 |
+
26,0.0836012861736334,1.5707966089248655,1.0,1.0,0.0,0.29499834467155545,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0007727275850288873,0.0,0.0,0.0,0.0,0.0,0.0
|
| 29 |
+
27,0.0868167202572347,1.5707966089248655,1.0,1.0,0.0,0.2883330374377531,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1273052042355488,0.0,0.0,0.0,0.0,0.0,0.0
|
| 30 |
+
28,0.090032154340836,1.5707966089248655,1.0,1.0,0.0,0.28226782424800057,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11545505939212941,0.0,0.0,0.0,0.0,0.0,0.0
|
| 31 |
+
29,0.0932475884244373,1.5707966089248655,1.0,1.0,0.0,0.2767875314985402,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1025543368160603,0.0,0.0,0.0,0.0,0.0,0.0
|
| 32 |
+
30,0.0964630225080385,1.5707966089248655,1.0,1.0,0.0,0.27201239056639454,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08211730513808801,0.0,0.0,0.0,0.0,0.0,0.0
|
| 33 |
+
31,0.0996784565916398,1.5707966089248655,1.0,1.0,0.006305161165773843,0.2685758009847314,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05597278481345502,0.0,0.0,0.0,0.0,0.0,0.0
|
| 34 |
+
32,0.1028938906752411,1.5707966089248655,1.0,1.0,0.014299329780733783,0.26641511208504903,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.030020317662921014,0.0,0.0,0.0,0.0,0.0,0.0
|
| 35 |
+
33,0.1061093247588424,1.5707966089248655,1.0,1.0,0.01741218761388086,0.2655737692184393,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.003554782535097889,0.0,0.0,0.0,0.0,0.0,0.0
|
| 36 |
+
34,0.1093247588424437,1.5707966089248655,1.0,1.0,0.015614552748928756,0.26605963383153924,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.012957401260962342,0.0,0.0,0.0,0.0,0.0,0.0
|
| 37 |
+
35,0.112540192926045,1.5707966089248655,1.0,1.0,0.012618120630190743,0.2668695093445355,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.02164468217345339,0.0,0.0,0.0,0.0,0.0,0.0
|
| 38 |
+
36,0.1157556270096463,1.5707966089248655,1.0,1.0,0.00760630686956365,0.2682241020488846,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.03150146004378129,0.0,0.0,0.0,0.0,0.0,0.0
|
| 39 |
+
37,0.1189710610932476,1.5707966089248655,1.0,1.0,0.0009629973863990449,0.27001965534891365,0.0,0.0010259946187337,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0458316428575134,0.0,0.0,0.0,0.0,0.0,0.0
|
| 40 |
+
38,0.1221864951768488,1.5707966089248655,1.0,1.0,0.0,0.2728072663346359,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.03877826590598321,0.0,0.0,0.0,0.0,0.0,0.0
|
| 41 |
+
39,0.1254019292604501,1.5707966089248655,1.0,1.0,0.0,0.27389748193951197,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.023739923866781254,0.0,0.0,0.0,0.0,0.0,0.0
|
| 42 |
+
40,0.1286173633440514,1.5707966089248655,1.0,1.0,0.0,0.27518125872131405,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.004166084245633694,0.0,0.0,0.0,0.0,0.0,0.0
|
| 43 |
+
41,0.1318327974276527,1.5707966089248655,1.0,1.0,0.0,0.27431409036407534,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.016394312315768933,0.0,0.0,0.0,0.0,0.0,0.0
|
| 44 |
+
42,0.135048231511254,1.5707966089248655,1.0,1.0,0.0,0.27354182748973715,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007299968377837973,0.0,0.0,0.0,0.0,0.0,0.0
|
| 45 |
+
43,0.1382636655948553,1.5707966089248655,1.0,1.0,0.0,0.27358409352629154,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0035299951227685256,0.0,0.0,0.0,0.0,0.0,0.0
|
| 46 |
+
44,0.1414790996784566,1.5707966089248655,1.0,1.0,0.0,0.2731888279774603,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.010007786538447916,0.0,0.0,0.0,0.0,0.0,0.0
|
| 47 |
+
45,0.1446945337620578,1.5707966089248655,1.0,1.0,0.0,0.27258331487244675,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.012735153414401568,0.0,0.0,0.0,0.0,0.0,0.0
|
| 48 |
+
46,0.1479099678456591,1.5707966089248655,1.0,1.0,0.0,0.27191531263602015,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.013683796940363036,0.0,0.0,0.0,0.0,0.0,0.0
|
| 49 |
+
47,0.1511254019292604,1.5707966089248655,1.0,1.0,0.0,0.27121493517841044,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.013643192409392157,0.0,0.0,0.0,0.0,0.0,0.0
|
| 50 |
+
48,0.1543408360128617,1.5707966089248655,1.0,1.0,0.0,0.27055099339508093,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.013726566849524002,0.0,0.0,0.0,0.0,0.0,0.0
|
| 51 |
+
49,0.157556270096463,1.5707966089248655,1.0,1.0,0.001619272108033143,0.26984227849345804,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.01413895371941476,0.0,0.0,0.0,0.0,0.0,0.0
|
| 52 |
+
50,0.1607717041800643,1.5707966089248655,1.0,1.0,0.004228346512835879,0.26913709802313945,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.01357803418747583,0.0,0.0,0.0,0.0,0.0,0.0
|
| 53 |
+
51,0.1639871382636656,1.5707966089248655,1.0,1.0,0.006642965393127254,0.26848447507471046,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.026989837459132637,0.0,0.0,0.0,0.0,0.0,0.0
|
| 54 |
+
52,0.1672025723472668,1.5707966089248655,1.0,1.0,0.0,0.2718360817690527,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.028487202733392114,0.0,0.0,0.0,0.0,0.0,0.0
|
| 55 |
+
53,0.1704180064308681,1.5707966089248655,1.0,1.0,0.0,0.27133319534804967,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00935316817706755,0.0,0.0,0.0,0.0,0.0,0.0
|
| 56 |
+
54,0.1736334405144694,1.5707966089248655,1.0,1.0,0.0,0.27090076495134596,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.008563564456479655,0.0,0.0,0.0,0.0,0.0,0.0
|
| 57 |
+
55,0.1768488745980707,1.5707966089248655,1.0,1.0,0.0,0.2704768389024017,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.008158701053422313,0.0,0.0,0.0,0.0,0.0,0.0
|
| 58 |
+
56,0.180064308681672,1.5707966089248655,1.0,1.0,0.0007217138757549257,0.27008489484600373,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0073930458724347226,0.0,0.0,0.0,0.0,0.0,0.0
|
| 59 |
+
57,0.1832797427652733,1.5707966089248655,1.0,1.0,0.0020069017828643343,0.26973753431515823,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007674318422092874,0.0,0.0,0.0,0.0,0.0,0.0
|
| 60 |
+
58,0.1864951768488746,1.5707966089248655,1.0,1.0,0.0035611100645090987,0.26931746300379444,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007668496105138201,0.0,0.0,0.0,0.0,0.0,0.0
|
| 61 |
+
59,0.1897106109324758,1.5707966089248655,1.0,1.0,0.004844143916219457,0.2689706847046444,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0069181838298143505,0.0,0.0,0.0,0.0,0.0,0.0
|
| 62 |
+
60,0.1929260450160771,1.5707966089248655,1.0,1.0,0.006120746743955574,0.268625644620813,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00707001359391668,0.0,0.0,0.0,0.0,0.0,0.0
|
| 63 |
+
61,0.1961414790996784,1.5707966089248655,1.0,1.0,0.0074599555493291,0.26826368334525275,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00879710386837984,0.0,0.0,0.0,0.0,0.0,0.0
|
| 64 |
+
62,0.1993569131832797,1.5707966089248655,1.0,1.0,0.009375547577089804,0.267745934233975,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.009292471081517317,0.0,0.0,0.0,0.0,0.0,0.0
|
| 65 |
+
63,0.202572347266881,1.5707966089248655,1.0,1.0,0.010898035820831486,0.267334436237101,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00674994659141448,0.0,0.0,0.0,0.0,0.0,0.0
|
| 66 |
+
64,0.2057877813504823,1.5707966089248655,1.0,1.0,0.01187293877240303,0.2670709395748336,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006145424808854383,0.0,0.0,0.0,0.0,0.0,0.0
|
| 67 |
+
65,0.2090032154340836,1.5707966089248655,1.0,1.0,0.013171762333632486,0.2667198937562156,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007073857204413225,0.0,0.0,0.0,0.0,0.0,0.0
|
| 68 |
+
66,0.2122186495176848,1.5707966089248655,1.0,1.0,0.014490172488696107,0.26636355385439225,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006617974452802766,0.0,0.0,0.0,0.0,0.0,0.0
|
| 69 |
+
67,0.2154340836012861,1.5707966089248655,1.0,1.0,0.015620325640900878,0.2660580963109353,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.005878519539421756,0.0,0.0,0.0,0.0,0.0,0.0
|
| 70 |
+
68,0.2186495176848874,1.5707966089248655,1.0,1.0,0.016665147997344976,0.2657757019004501,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006602457386649663,0.0,0.0,0.0,0.0,0.0,0.0
|
| 71 |
+
69,0.2218649517684887,1.5707966089248655,1.0,1.0,0.018063147540687274,0.26539785057227033,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007344467166194857,0.0,0.0,0.0,0.0,0.0,0.0
|
| 72 |
+
70,0.22508038585209,1.5707966089248655,1.0,1.0,0.01938250358297222,0.2650412551838306,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007146078725193683,0.0,0.0,0.0,0.0,0.0,0.0
|
| 73 |
+
71,0.2282958199356913,1.5707966089248655,1.0,1.0,0.02070710287123223,0.26468324269975096,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007068475326458268,0.0,0.0,0.0,0.0,0.0,0.0
|
| 74 |
+
72,0.2315112540192926,1.5707966089248655,1.0,1.0,0.021997745782045497,0.26433440765118477,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0066819275463614325,0.0,0.0,0.0,0.0,0.0,0.0
|
| 75 |
+
73,0.2347266881028939,1.5707966089248655,1.0,1.0,0.023179327786980286,0.2640150499451148,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006583735354432907,0.0,0.0,0.0,0.0,0.0,0.0
|
| 76 |
+
74,0.2379421221864952,1.5707966089248655,1.0,1.0,0.02443364205466847,0.2636760341157415,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006147868586571237,0.0,0.0,0.0,0.0,0.0,0.0
|
| 77 |
+
75,0.2411575562700964,1.5707966089248655,1.0,1.0,0.025453881975757264,0.2634002630864577,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006337611721394243,0.0,0.0,0.0,0.0,0.0,0.0
|
| 78 |
+
76,0.2443729903536977,1.5707966089248655,1.0,1.0,0.02677848586019993,0.26304227294360205,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0070232407172710065,0.0,0.0,0.0,0.0,0.0,0.0
|
| 79 |
+
77,0.247588424437299,1.5707966089248655,1.0,1.0,0.02805247552785406,0.2626979390147306,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.08658533091181586,0.0,0.0,0.0,0.0,0.0,0.0
|
| 80 |
+
78,0.2508038585209003,1.5707966089248655,1.0,1.0,0.0,0.27170080603478364,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.08513636237399258,0.0,0.0,0.0,0.0,0.0,0.0
|
| 81 |
+
79,0.2540192926045016,1.5707966089248655,1.0,1.0,0.0,0.27121157525212986,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00906863056062579,0.0,0.0,0.0,0.0,0.0,0.0
|
| 82 |
+
80,0.2572347266881029,1.5707966089248655,1.0,1.0,0.0,0.27079394297872106,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00836259289751784,0.0,0.0,0.0,0.0,0.0,0.0
|
| 83 |
+
81,0.2604501607717042,1.5707966089248655,1.0,1.0,0.0,0.27037531596237807,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007948431132631106,0.0,0.0,0.0,0.0,0.0,0.0
|
| 84 |
+
82,0.2636655948553054,1.5707966089248655,1.0,1.0,0.001039143823816091,0.26999909986545795,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00755685380637694,0.0,0.0,0.0,0.0,0.0,0.0
|
| 85 |
+
83,0.2668810289389067,1.5707966089248655,1.0,1.0,0.0024431298856426586,0.2696196305817404,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007521491708858408,0.0,0.0,0.0,0.0,0.0,0.0
|
| 86 |
+
84,0.270096463022508,1.5707966089248655,1.0,1.0,0.0038219961242987877,0.2692469506945721,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007419898482256548,0.0,0.0,0.0,0.0,0.0,0.0
|
| 87 |
+
85,0.2733118971061093,1.5707966089248655,1.0,1.0,0.005188394180013822,0.2688776407335147,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006803069530642025,0.0,0.0,0.0,0.0,0.0,0.0
|
| 88 |
+
86,0.2765273311897106,1.5707966089248655,1.0,1.0,0.006339042056817568,0.2685666437415079,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006476895969524943,0.0,0.0,0.0,0.0,0.0,0.0
|
| 89 |
+
87,0.2797427652733119,1.5707966089248655,1.0,1.0,0.007584760287909109,0.26822995113656223,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0074205169912794355,0.0,0.0,0.0,0.0,0.0,0.0
|
| 90 |
+
88,0.2829581993569132,1.5707966089248655,1.0,1.0,0.009084535146794304,0.26782459204237996,0.0,0.0010263919830322,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.008661240406507842,0.0,0.0,0.0,0.0,0.0,0.0
|
| 91 |
+
89,0.2861736334405145,1.5707966089248655,1.0,1.0,0.01078930461115557,0.26736382709591144,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0078118644678687454,0.0,0.0,0.0,0.0,0.0,0.0
|
| 92 |
+
90,0.2893890675241157,1.5707966089248655,1.0,1.0,0.011974821905293864,0.2670434055955931,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006853467821563708,0.0,0.0,0.0,0.0,0.0,0.0
|
| 93 |
+
91,0.292604501607717,1.5707966089248655,1.0,1.0,0.013324997312456954,0.2666784803137551,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006969944110827853,0.0,0.0,0.0,0.0,0.0,0.0
|
| 94 |
+
92,0.2958199356913183,1.5707966089248655,1.0,1.0,0.014553609858158234,0.2663464111845103,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006728272584622386,0.0,0.0,0.0,0.0,0.0,0.0
|
| 95 |
+
93,0.2990353697749196,1.5707966089248655,1.0,1.0,0.015814281126337648,0.26600565305529283,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006831799278071982,0.0,0.0,0.0,0.0,0.0,0.0
|
| 96 |
+
94,0.3022508038585209,1.5707966089248655,1.0,1.0,0.017081284465747526,0.2656632312567031,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007031510123088336,0.0,0.0,0.0,0.0,0.0,0.0
|
| 97 |
+
95,0.3054662379421222,1.5707966089248655,1.0,1.0,0.018415935207798717,0.265302502042984,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.002567768096923828,0.01121459589023488,0.0,0.0,0.0,0.0,0.0,0.0
|
| 98 |
+
96,0.3086816720257235,1.5705398321151731,0.0,1.0,0.021230536606462458,0.2645417716676796,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0008988380432151111,0.0075986409301131985,0.0,0.0,0.0,0.0,0.0,0.0
|
| 99 |
+
97,0.3118971061093247,1.570886492729187,0.0,1.0,0.021227332240119412,0.2645426379499727,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.005640983581545189,0.0049237630653492515,0.0,0.0,0.0,0.0,0.0,0.0
|
| 100 |
+
98,0.315112540192926,1.5711039304733276,0.0,1.0,0.02305226441072572,0.2640493953611447,0.0,0.0010259946187337,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0006198883056640625,0.00857267253610794,0.0,0.0,0.0,0.0,0.0,0.0
|
| 101 |
+
99,0.3183279742765273,1.5709484815597534,0.0,1.0,0.024399107781870155,0.2636853706963619,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.004658699035644531,0.004857459167089684,0.0,0.0,0.0,0.0,0.0,0.0
|
| 102 |
+
100,0.3215434083601286,1.5706380605697632,0.0,1.0,0.024849449804678292,0.2635636494444357,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.022194385528564453,0.0039271202012058914,0.0,0.0,0.0,0.0,0.0,0.0
|
| 103 |
+
101,0.3247588424437299,1.568729043006897,0.0,1.0,0.025852079998217148,0.2632926586762413,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05697488784790039,0.005715360443480644,0.0,0.0,0.0,0.0,0.0,0.0
|
| 104 |
+
102,0.3279742765273312,1.5649405717849731,0.0,1.0,0.02696405818425196,0.26299211340008766,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09707689285278098,0.006810604024000688,0.0,0.0,0.0,0.0,0.0,0.0
|
| 105 |
+
103,0.3311897106109325,1.5590213537216189,0.0,1.0,0.028371913983511243,0.26261159827384123,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1342320442199707,-0.08658725247955079,0.0,0.0,0.0,0.0,0.0,0.0
|
| 106 |
+
104,0.3344051446945337,1.551517367362976,0.0,1.0,0.0,0.27165083864804274,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.14599084854125977,-0.0855837997933162,0.0,0.0,0.0,0.0,0.0,0.0
|
| 107 |
+
105,0.337620578778135,1.544422268867493,0.0,1.0,0.0,0.27116997825317285,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1645970344543457,0.0092428503817793,0.0,0.0,0.0,0.0,0.0,0.0
|
| 108 |
+
106,0.3408360128617363,1.5350576639175415,0.0,1.0,0.0,0.2707265536098648,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1673865318298362,0.009109662701293209,0.0,0.0,0.0,0.0,0.0,0.0
|
| 109 |
+
107,0.3440514469453376,1.5276836156845093,0.0,1.0,7.750342546353206e-05,0.27025901198304353,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15044450759887695,0.008351549969313754,0.0,0.0,0.0,0.0,0.0,0.0
|
| 110 |
+
108,0.3472668810289389,1.5200132131576538,0.0,1.0,0.0014376241751080654,0.26989139861293343,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.17527103424072266,0.007177394089232236,0.0,0.0,0.0,0.0,0.0,0.0
|
| 111 |
+
109,0.3504823151125402,1.510156512260437,0.0,1.0,0.002733044069845647,0.2695412725741203,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.29818296432495117,0.007628770292679721,0.0,0.0,0.0,0.0,0.0,0.0
|
| 112 |
+
110,0.3536977491961415,1.4901949167251587,0.0,1.0,0.004260168177710133,0.26912852158366546,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3951430320739746,0.007669947780417075,0.0,0.0,0.0,0.0,0.0,0.0
|
| 113 |
+
111,0.3569131832797427,1.4706422090530396,0.0,1.0,0.005570823462003105,0.2687742777960786,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0333333333333333,0.0,0.414278507232666,0.00675024438823113,0.0,0.0,0.0,0.0,0.0,0.0
|
| 114 |
+
112,0.360128617363344,1.448767066001892,0.0,1.0,0.00675766946551859,0.26845349714484235,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.1555555555555555,0.0371621621621621,0.45035362243652344,0.006338513301852311,0.0,0.0,0.0,0.0,0.0,0.0
|
| 115 |
+
113,0.3633440514469453,1.4256068468093872,0.0,1.0,0.007915989503754384,0.26814042646589337,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.2666666666666666,0.0405405405405405,0.42422056198120117,0.006841929663966018,0.0,0.0,0.0,0.0,0.0,0.0
|
| 116 |
+
114,0.3665594855305466,1.406345009803772,0.0,1.0,0.00928909305690584,0.26776930417844574,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.3444444444444444,0.0439189189189189,0.4080486297607422,0.00740686029398141,0.0,0.0,0.0,0.0,0.0,0.0
|
| 117 |
+
115,0.3697749196141479,1.384801983833313,0.0,1.0,0.010656429992462968,0.2673997404364952,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.4,0.0439189189189189,0.4366087913513206,0.0067612933141508735,0.0,0.0,0.0,0.0,0.0,0.0
|
| 118 |
+
116,0.3729903536977492,1.36268413066864,0.0,1.0,0.011790682274029352,0.26709317484703066,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.4,0.0439189189189189,0.3972625732421875,0.0061095737194982735,0.0,0.0,0.0,0.0,0.0,0.0
|
| 119 |
+
117,0.3762057877813505,1.3450757265090942,0.0,1.0,0.012916891386055562,0.2667887830645454,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.4,0.0405405405405405,0.3677392005920388,0.006853195951797564,0.0,0.0,0.0,0.0,0.0,0.0
|
| 120 |
+
118,0.3794212218649517,1.325910210609436,0.0,1.0,0.014326274602191935,0.2664078552518509,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.4,0.0439189189189189,0.38450956344604714,0.007758833759142214,0.0,0.0,0.0,0.0,0.0,0.0
|
| 121 |
+
119,0.382636655948553,1.3066247701644895,0.0,1.0,0.01578755747557825,0.2660128996886312,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.0,0.4,0.0405405405405405,0.38176536560058594,0.007087590316049441,0.0,0.0,0.0,0.0,0.0,0.0
|
| 122 |
+
120,0.3858520900321543,1.2877336740493774,0.0,1.0,0.016948589486775134,0.26569909622024596,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.4,0.0439189189189189,0.3752017021179177,0.006152288043893561,0.0,0.0,0.0,0.0,0.0,0.0
|
| 123 |
+
121,0.3890675241157556,1.2691045999526978,0.0,1.0,0.018063812986859995,0.2653976708842418,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.4,0.0405405405405405,0.3648233413696289,0.006669206839986508,0.0,0.0,0.0,0.0,0.0,0.0
|
| 124 |
+
122,0.3922829581993569,1.2512513399124146,0.0,1.0,0.019416097260657517,0.2650321755362473,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.0,0.4,0.0439189189189189,0.3816795349121094,0.007112420525861585,0.0,0.0,0.0,0.0,0.0,0.0
|
| 125 |
+
123,0.3954983922829582,1.2309366464614868,0.0,1.0,0.02069531501837829,0.26468642883165566,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.0,0.1423611111111111,0.4,0.1771302552552552,0.40856122970581055,0.006466259511902495,0.0,0.0,0.0,0.0,0.0,0.0
|
| 126 |
+
124,0.3987138263665595,1.2103952169418335,0.0,1.0,0.02180852781140241,0.26438554958505706,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.2326388888888888,0.4,0.2637481231231231,0.4054450988769531,0.006769620370492557,0.0,0.0,0.0,0.0,0.0,0.0
|
| 127 |
+
125,0.4019292604501607,1.1903921365737915,0.0,1.0,0.023199985649385746,0.2640094667946064,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.0,0.3263888888888888,0.4,0.3559731606606606,0.4365253448486328,0.00750439424097582,0.0,0.0,0.0,0.0,0.0,0.0
|
| 128 |
+
126,0.405144694533762,1.1667426824569702,0.0,1.0,0.024585055362080332,0.2636351101609595,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.4340277777777778,0.4,0.4588846659159159,0.43770313262939453,0.006984741479079681,0.0,0.0,0.0,0.0,0.0,0.0
|
| 129 |
+
127,0.4083601286173633,1.146621823310852,0.0,1.0,0.025784247604326516,0.26331099264669844,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.5243055555555556,0.4,0.5451975412912913,0.3930640220642112,0.00641753815276036,0.0,0.0,0.0,0.0,0.0,0.0
|
| 130 |
+
128,0.4115755627009646,1.127436280250549,0.0,1.0,0.026959459238391492,0.26299335634568344,0.0,0.0010259946187337,0.0,0.0,0.0,0.0,0.0,0.6111111111111112,0.4,0.6281906906906908,0.42133569717407227,0.006062145214686954,0.0,0.0,0.0,0.0,0.0,0.0
|
| 131 |
+
129,0.4147909967845659,1.1044882535934448,0.0,1.0,0.028027161802985034,0.26270477812522974,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.1111111111111111,0.6701388888888888,0.4666666666666667,0.6846260322822822,0.45452356338500755,-0.08669210278088257,0.0,0.0,0.0,0.0,0.0,0.0
|
| 132 |
+
130,0.4180064308681672,1.0819839239120483,0.0,1.0,0.0,0.2716625666237717,0.0,0.0010251998901367,0.0,0.0,0.0,0.0,0.4444444444444444,0.7013888888888888,0.6666666666666667,0.714503566066066,0.45659303665161133,-0.0841518622771048,0.0,0.0,0.0,0.0,0.0,0.0
|
| 133 |
+
131,0.4212218649517685,1.0588289499282837,0.0,1.0,0.0,0.2711199643529402,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.4611968994140625,0.0093585213698405,0.0,0.0,0.0,0.0,0.0,0.0
|
| 134 |
+
132,0.4244372990353697,1.035864233970642,0.0,1.0,0.0,0.27072671448678765,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.4461002349853538,0.007789040054331786,0.0,0.0,0.0,0.0,0.0,0.0
|
| 135 |
+
133,0.427652733118971,1.0142189264297483,0.0,1.0,0.0,0.27034106034750705,0.0,0.0010248025258382,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.41251182556152455,0.007729823116687795,0.0,0.0,0.0,0.0,0.0,0.0
|
| 136 |
+
134,0.4308681672025723,0.9946130514144896,0.0,1.0,0.0012069982001895463,0.26995373217511887,0.0,0.0010259946187337,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.357530117034911,0.007469535264810756,0.0,0.0,0.0,0.0,0.0,0.0
|
| 137 |
+
135,0.4340836012861736,0.9784659147262572,0.0,1.0,0.0025375644992394752,0.26959410682102597,0.7116493773750608,0.0010255972544352,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.3806805610656727,0.006911195474760268,0.0,0.7116493773750608,0.0,0.0,0.0,1.0
|
| 138 |
+
136,0.4372990353697749,0.9565449953079224,0.0,1.0,0.003764049183122009,0.26926261262764284,0.7065558053383572,0.0010240077972412,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7801238738738739,0.43018817901611217,0.0066236079329656805,0.0,0.7065558053383572,0.0,0.0,0.0,1.0
|
| 139 |
+
137,0.4405144694533762,0.935447096824646,0.0,1.0,0.004988211968532386,0.2689317460277294,0.709740803586083,0.0010255972544352,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.41130542755126953,0.006966225259277814,0.0,0.709740803586083,0.0,0.0,0.0,1.0
|
| 140 |
+
138,0.4437299035369775,0.9154144525527954,0.0,1.0,0.006341460476042782,0.26856599010171506,0.707086802953687,0.0010248025258382,0.0,0.0,0.0,0.0,0.6888888888888889,0.7708333333333334,0.8133333333333334,0.7801238738738739,0.4379081726074219,0.007558345148501178,0.0,0.707086802953687,0.0,0.0,0.0,1.0
|
| 141 |
+
139,0.4469453376205787,0.8916562795639038,0.0,1.0,0.007784699872226186,0.2681759115128793,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.4575800895690918,0.007724557558035361,0.0,0.0,0.0,0.0,0.0,1.0
|
| 142 |
+
140,0.45016077170418,0.8696564435958862,0.0,1.0,0.009199444963317371,0.2677935343459115,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.477297306060791,0.007494898983462783,0.0,0.0,0.0,0.0,0.0,1.0
|
| 143 |
+
141,0.4533762057877814,0.8439265489578247,0.0,1.0,0.010557713226914567,0.267426421614533,0.7079443684068463,0.0010255972544352,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.5397844314575195,0.008059047536829733,0.0,0.7079443684068463,0.0,0.0,0.0,1.0
|
| 144 |
+
142,0.4565916398713826,0.8156780004501343,0.0,1.0,0.012181185904729497,0.26698762959222855,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.5407905578613281,0.007809310973421191,0.0,0.0,0.0,0.0,0.0,1.0
|
| 145 |
+
143,0.4598070739549839,0.7898474931716919,0.0,1.0,0.013447055404113173,0.2666454905171909,0.7137208400467014,0.0010259946187337,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.47156572341918945,0.0069036401968303185,0.0,0.7137208400467014,0.0,0.0,0.0,1.0
|
| 146 |
+
144,0.4630225080385852,0.7685214281082153,0.0,1.0,0.014735337172912422,0.2662972655725455,0.7139899904106973,0.0010248025258382,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.3824496269226074,0.007097202105845746,0.0,0.7139899904106973,0.0,0.0,0.0,1.0
|
| 147 |
+
145,0.4662379421221865,0.7516025304794312,0.0,1.0,0.016072821993829867,0.2659357703066063,0.7142575768653133,0.0010248025258382,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.3328418731689453,0.006640781648633021,0.0,0.7142575768653133,0.0,0.0,0.0,1.0
|
| 148 |
+
146,0.4694533762057878,0.7352372407913208,0.0,1.0,0.01719233876280346,0.2656331874076822,0.7144947765710666,0.0010259946187337,0.0,0.0,0.0,0.0,0.6888888888888889,0.7708333333333334,0.8133333333333334,0.7801238738738739,0.20832300186157227,0.006545425211032518,0.0,0.7144947765710666,0.0,0.0,0.0,1.0
|
| 149 |
+
147,0.472668810289389,0.7307702302932739,0.0,1.0,0.018494571025394757,0.26528122778550306,0.7147352333929506,0.0010240077972412,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.05270242691040039,0.009239903254346093,0.0,0.7147352333929506,0.0,0.0,0.0,1.0
|
| 150 |
+
148,0.4758842443729904,0.7299669981002808,0.0,1.0,0.020610981258044614,0.2647091970822476,0.7150712122365241,0.0010259946187337,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7634665915915916,0.07445573806762695,0.012581097629018045,0.0,0.7150712122365241,1.0,0.0,0.0,1.0
|
| 151 |
+
149,0.4790996784565916,0.7233246564865112,1.0,1.0,0.023149487547852288,0.26402311802260126,0.7154452749838629,0.0010240077972412,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.043487548828125,0.008812120038229065,0.0,0.7154452749838629,0.0,0.0,0.0,1.0
|
| 152 |
+
150,0.4823151125401929,0.7256182432174683,1.0,1.0,0.023871453845512036,0.2638279850784247,0.7156435894528343,0.0010255972544352,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.04121541976928711,0.004389247435850341,0.0,0.7156435894528343,0.0,0.0,0.0,1.0
|
| 153 |
+
151,0.4855305466237942,0.7274461984634399,1.0,1.0,0.02477345115475227,0.2635841932790162,0.7158666640531521,0.0010255972544352,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.024998188018798828,0.005642328265169638,0.0,0.7158666640531521,0.0,0.0,0.0,1.0
|
| 154 |
+
152,0.4887459807073955,0.7281180620193481,1.0,1.0,0.025959040799099276,0.26326375225190773,0.7161247443499053,0.0010251998901367,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.024404525756835938,0.004496126339393891,0.0,0.7161247443499053,0.0,0.0,0.0,1.0
|
| 155 |
+
153,0.4919614147909968,0.7250057458877563,1.0,1.0,0.02643695847070293,0.26313458064507683,0.7163253677935957,0.0010255972544352,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7634665915915916,0.028285980224609375,0.0035139175134552003,0.0,0.7163253677935957,0.0,0.0,0.0,1.0
|
| 156 |
+
154,0.495176848874598,0.7252894639968872,1.0,1.0,0.027259144126335677,0.2629123605005622,0.7165649146650218,0.0010255972544352,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.008091926574707031,0.005307218604197472,0.0,0.7165649146650218,0.0,0.0,0.0,1.0
|
| 157 |
+
155,0.4983922829581994,0.725814938545227,1.0,1.0,0.028400559755517585,0.2626038587846571,0.8572848790424619,0.0010240077972412,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.014758110046386719,-0.08767895112721857,0.0,0.8572848790424619,0.0,0.0,0.0,1.0
|
| 158 |
+
156,0.5016077170418006,0.7267652750015259,1.0,1.0,0.0,0.27168025561328407,0.7102969519023542,0.0010240077972412,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7801238738738739,0.015680789947509766,-0.08593242178642047,0.0,0.7102969519023542,0.0,0.0,0.0,1.0
|
| 159 |
+
157,0.5048231511254019,0.727383017539978,1.0,1.0,0.0,0.27119710096329913,0.7105915758515081,0.0010251998901367,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.010285377502441406,0.008664192016029637,0.0,0.7105915758515081,0.0,0.0,0.0,1.0
|
| 160 |
+
158,0.5080385852090032,0.7257367372512817,1.0,1.0,0.0,0.2708138364116811,0.7108435248467139,0.0010248025258382,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.021467208862304688,0.008345280073998596,0.0,0.7108435248467139,0.0,0.0,0.0,1.0
|
| 161 |
+
159,0.5112540192926045,0.7252362966537476,1.0,1.0,0.0,0.27036257295589927,0.7111394889727812,0.0010240077972412,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7801238738738739,0.010366439819335938,0.00869670780343279,0.0,0.7111394889727812,0.0,0.0,0.0,1.0
|
| 162 |
+
160,0.5144694533762058,0.7267733812332153,1.0,1.0,0.0012423932071891075,0.26994416563133783,0.7114323798981004,0.0010240077972412,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.01960277557373047,0.0076834466652453415,0.0,0.7114323798981004,0.0,0.0,0.0,1.0
|
| 163 |
+
161,0.5176848874598071,0.7271965742111206,1.0,1.0,0.0025371152651334494,0.26959422828937474,0.7116963099701472,0.0010259946187337,0.0,0.0,0.0,0.0,0.6888888888888889,0.7708333333333334,0.8133333333333334,0.7808980855855856,0.0004172325134277344,0.006951403116449151,0.0,0.7116963099701472,0.0,0.0,0.0,1.0
|
| 164 |
+
162,0.5209003215434084,0.7268151044845581,1.0,1.0,0.0038143205989009665,0.2692490253196929,0.8533173991224634,0.0010251998901367,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.008966922760009766,0.007133358485720276,0.0,0.8533173991224634,0.0,0.0,0.0,1.0
|
| 165 |
+
163,0.5241157556270096,0.7262998819351196,1.0,1.0,0.005176363309795873,0.2688808924408027,0.8534416550178265,0.0010251998901367,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7801238738738739,0.0008416175842285156,0.007520117965110207,0.0,0.8534416550178265,0.0,0.0,0.0,1.0
|
| 166 |
+
164,0.5273311897106109,0.726899266242981,1.0,1.0,0.006596664660044382,0.2684970135231819,0.7124561107724398,0.0010248025258382,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.015294551849365234,0.007282547034921927,0.0,0.7124561107724398,0.0,0.0,0.0,1.0
|
| 167 |
+
165,0.5305466237942122,0.7278293371200562,1.0,1.0,0.00787080942692242,0.2681526377373105,0.7127349136572647,0.0010259946187337,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.00957489013671875,0.0066246878592579606,0.0,0.7127349136572647,0.0,0.0,0.0,1.0
|
| 168 |
+
166,0.5337620578778135,0.7259417772293091,1.0,1.0,0.009047711625808863,0.2678345447372561,0.855292081304197,0.0010240077972412,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.013468265533447266,0.006938428947568243,0.0,0.855292081304197,0.0,0.0,0.0,1.0
|
| 169 |
+
167,0.5369774919614148,0.7264825105667114,1.0,1.0,0.010437936311776252,0.2674587948425537,0.713193059548658,0.0010248025258382,0.0,0.0,0.0,0.0,0.6666666666666666,0.7708333333333334,0.8,0.7808980855855856,0.01241445541381836,0.007048062586592629,0.0,0.713193059548658,0.0,0.0,0.0,1.0
|
| 170 |
+
168,0.5401929260450161,0.7247003316879272,1.0,1.0,0.011655390592877568,0.26712973847859683,0.8567417893283482,0.0010240077972412,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.014011859893798828,0.006966266166548163,0.0,0.8567417893283482,0.0,0.0,0.0,1.0
|
| 171 |
+
169,0.5434083601286174,0.7278836965560913,1.0,1.0,0.013015351989598467,0.2667621682258989,0.8568536145129102,0.0010251998901367,0.0,0.0,0.0,0.0,0.6888888888888889,0.7708333333333334,0.8133333333333334,0.7808980855855856,0.03302812576293945,0.007562664398670926,0.0,0.8568536145129102,0.0,0.0,0.0,1.0
|
| 172 |
+
170,0.5466237942122186,0.7280031442642212,1.0,1.0,0.01445347624922766,0.26637347203872974,0.8569910942777254,0.0010255972544352,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.004842281341552734,0.006938096057975129,0.0,0.8569910942777254,0.0,0.0,0.0,1.0
|
| 173 |
+
171,0.5498392282958199,0.727399468421936,1.0,1.0,0.015582367105905104,0.26606835862010136,0.8571109200641032,0.0010255972544352,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.0074291229248046875,0.006144178026914471,0.0,0.8571109200641032,0.0,0.0,0.0,1.0
|
| 174 |
+
172,0.5530546623794212,0.7272602319717407,1.0,1.0,0.016726752344925044,0.2657590542360383,0.8572249617896095,0.0010255972544352,0.0,0.0,0.0,0.0,0.6888888888888889,0.7708333333333334,0.8133333333333334,0.7808980855855856,0.01899242401123047,0.006635214660322686,0.0,0.8572249617896095,0.0,0.0,0.0,1.0
|
| 175 |
+
173,0.5562700964630225,0.725500226020813,1.0,1.0,0.018037309139387614,0.2654048371540691,0.8573676939388775,0.0010248025258382,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.04044055938720703,0.006729857873445377,0.0,0.8573676939388775,0.0,0.0,0.0,1.0
|
| 176 |
+
174,0.5594855305466238,0.72321617603302,1.0,1.0,0.0192167111260646,0.26508606844869376,0.8574790462907931,0.0010255972544352,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.015406608581542969,0.006350904365743371,0.0,0.8574790462907931,0.0,0.0,0.0,1.0
|
| 177 |
+
175,0.5627009646302251,0.7270408868789673,1.0,1.0,0.02038705999174162,0.26476974671749476,0.8576059723145535,0.0010251998901367,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.014255046844482422,0.0071621323007986515,0.0,0.8576059723145535,0.0,0.0,0.0,1.0
|
| 178 |
+
176,0.5659163987138264,0.7246416807174683,1.0,1.0,0.021866605703885877,0.2643698552186139,0.857729591589341,0.0010255972544352,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7801238738738739,0.01544952392578125,0.0077858127112706565,0.0,0.857729591589341,0.0,0.0,0.0,1.0
|
| 179 |
+
177,0.5691318327974276,0.7285858392715454,1.0,1.0,0.023267708293048917,0.2639911654463677,0.8578670160620075,0.0010255972544352,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7634665915915916,0.02605438232421875,0.006896899009594115,0.0,0.8578670160620075,0.0,0.0,0.0,1.0
|
| 180 |
+
178,0.572347266881029,0.7272471189498901,1.0,1.0,0.024418367826450682,0.2636801653176545,0.8579895354946621,0.0010248025258382,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.0005316734313964844,0.006689837117052622,0.0,0.8579895354946621,0.0,0.0,0.0,1.0
|
| 181 |
+
179,0.5755627009646302,0.7285326719284058,1.0,1.0,0.025742859925856343,0.26332218173466243,0.8581309322243551,0.0010240077972412,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7801238738738739,0.0041866302490234375,0.006140341702043917,0.0,0.8581309322243551,0.0,0.0,0.0,1.0
|
| 182 |
+
180,0.5787781350482315,0.7268284559249878,1.0,1.0,0.026690212910065125,0.2630661311474501,0.8582433750645082,0.0010240077972412,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.033893585205078125,0.00637173220273346,0.0,0.8582433750645082,0.0,0.0,0.0,1.0
|
| 183 |
+
181,0.5819935691318328,0.725143313407898,1.0,1.0,0.028100317051605983,0.2626850085143891,0.858372343396548,0.0010240077972412,0.0,0.0,0.0,0.0,0.6888888888888889,0.7708333333333334,0.8133333333333334,0.7801238738738739,0.020596981048583984,-0.08586575292310827,0.0,0.858372343396548,0.0,0.0,0.0,1.0
|
| 184 |
+
182,0.5852090032154341,0.7288881540298462,1.0,1.0,0.0,0.2716527064397609,0.8524461860958548,0.0010248025258382,0.0,0.0,0.0,0.0,0.6888888888888889,0.7708333333333334,0.8133333333333334,0.7801238738738739,0.00072479248046875,-0.085204560330851,0.0,0.8524461860958548,0.0,0.0,0.0,1.0
|
| 185 |
+
183,0.5884244372990354,0.7252157926559448,1.0,1.0,0.0,0.2712054645474742,0.7105878926356938,0.0010259946187337,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.03679513931274414,0.009098842766211424,0.0,0.7105878926356938,0.0,0.0,0.0,1.0
|
| 186 |
+
184,0.5916398713826366,0.7252086400985718,1.0,1.0,0.0,0.2707428221631398,0.8527576022797827,0.0010248025258382,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7801238738738739,0.019605159759521484,0.008341614876373749,0.0,0.8527576022797827,0.0,0.0,0.0,1.0
|
| 187 |
+
185,0.594855305466238,0.727176308631897,1.0,1.0,0.0,0.2703713030598368,0.711151782369138,0.0010255972544352,0.0,0.0,0.0,0.0,0.6888888888888889,0.7708333333333334,0.8133333333333334,0.7801238738738739,0.028412342071533203,0.0073585627631816974,0.0,0.711151782369138,0.0,0.0,0.0,1.0
|
| 188 |
+
186,0.5980707395498392,0.7280498743057251,1.0,1.0,0.0010099459453268844,0.2700069658868216,0.8530278023988125,0.0010255972544352,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.01720428466796875,0.0069811092626342885,0.0,0.8530278023988125,0.0,0.0,0.0,1.0
|
| 189 |
+
187,0.6012861736334405,0.7254558801651001,1.0,1.0,0.002244864534569402,0.2696731921335734,0.8531659467557996,0.0010240077972412,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.004601478576660156,0.007195686201257878,0.0,0.8531659467557996,0.0,0.0,0.0,1.0
|
| 190 |
+
188,0.6045016077170418,0.7275897264480591,1.0,1.0,0.003672254634317307,0.2692873972666958,0.7119098170852656,0.0010240077972412,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.00018596649169921875,0.007641963103193761,0.0,0.7119098170852656,0.0,0.0,0.0,1.0
|
| 191 |
+
189,0.6077170418006431,0.72547447681427,1.0,1.0,0.0050722902958700855,0.268908995823254,0.8534476068996345,0.0010259946187337,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.008454322814941406,0.007110488643407575,0.0,0.8534476068996345,0.0,0.0,0.0,1.0
|
| 192 |
+
190,0.6109324758842444,0.7284351587295532,1.0,1.0,0.006303041657171438,0.26857634840235506,0.8535696968755953,0.0010240077972412,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7801238738738739,0.021448135375976562,0.006914370037230944,0.0,0.8535696968755953,0.0,0.0,0.0,1.0
|
| 193 |
+
191,0.6141479099678456,0.7276192903518677,1.0,1.0,0.007630515789610048,0.2682175588195309,0.85371068176825,0.0010248025258382,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.027141571044921875,0.006491705942804349,0.0,0.85371068176825,0.0,0.0,0.0,1.0
|
| 194 |
+
192,0.617363344051447,0.725721001625061,1.0,1.0,0.00870488738335995,0.2679271778080746,0.8564591867884412,0.0010240077972412,0.0,0.0,0.0,0.0,0.6888888888888889,0.7708333333333334,0.8133333333333334,0.7801238738738739,0.0034856796264648438,0.006603711590797423,0.0,0.8564591867884412,0.0,0.0,0.0,1.0
|
| 195 |
+
193,0.6205787781350482,0.7272707223892212,1.0,1.0,0.010073802035762136,0.26755718766045117,0.8565889100923463,0.0010255972544352,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.0139617919921875,0.007716760291979208,0.0,0.8565889100923463,0.0,0.0,0.0,1.0
|
| 196 |
+
194,0.6237942122186495,0.7271171808242798,1.0,1.0,0.011559987201257393,0.2671555017788767,0.8567219523020104,0.0010251998901367,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7808980855855856,0.005054473876953125,0.007411637147290984,0.0,0.8567219523020104,0.0,0.0,0.0,1.0
|
| 197 |
+
195,0.6270096463022508,0.7267652750015259,1.0,1.0,0.01281601034622426,0.26681602394572207,0.8568449596432575,0.0010248025258382,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7801238738738739,0.004355907440185547,0.0068946507815970115,0.0,0.8568449596432575,0.0,0.0,0.0,1.0
|
| 198 |
+
196,0.6302250803858521,0.7266815900802612,1.0,1.0,0.01411091713556245,0.266466036700717,0.85697712797481,0.0010248025258382,0.0,0.0,0.0,0.0,0.6777777777777778,0.7708333333333334,0.8066666666666666,0.7801238738738739,0.0013780593872070312,0.007296491477670752,0.0,0.85697712797481,0.0,0.0,0.0,1.0
|
| 199 |
+
197,0.6334405144694534,0.7269030809402466,1.0,1.0,0.015515615719172593,0.266086374797955,0.8571265163494177,0.0010259946187337,0.0,0.0,0.0,0.0,0.6777777777777778,0.7955280172413793,0.8066666666666666,0.8045082056733458,0.015633106231689453,0.007360584975535933,0.0,0.8571265163494177,0.0,0.0,0.0,1.0
|
| 200 |
+
198,0.6366559485530546,0.7282449007034302,1.0,1.0,0.016834236252079804,0.2657299782031634,0.8572366030727321,0.0010251998901367,0.0,0.0,0.0,0.0,0.6777777777777778,0.8286411411411412,0.8066666666666666,0.8361670369694019,0.006546974182128906,0.007072546584234174,0.0,0.8572366030727321,0.0,0.0,0.0,1.0
|
| 201 |
+
199,0.639871382636656,0.7262483835220337,1.0,1.0,0.01813236523381556,0.2653791201395316,0.8573564291166681,0.0010259946187337,0.0,0.0,0.0,0.0,0.6777777777777778,0.8318730529595015,0.8066666666666666,0.8392570067146586,0.018284320831298828,0.007601165379678698,0.0,0.8573564291166681,0.0,0.0,0.0,1.0
|
| 202 |
+
200,0.6430868167202572,0.7264164686203003,1.0,1.0,0.01964656764492312,0.26496986166519554,0.8575054772945228,0.0010248025258382,0.0,0.0,0.0,0.0,0.8074074074074074,0.8606099656357389,0.8844444444444445,0.8667318252530881,0.025086402893066406,0.008158396292377579,0.0,0.8575054772945228,0.0,0.0,0.0,1.0
|
| 203 |
+
201,0.6463022508038585,0.7287570238113403,1.0,1.0,0.021150968526553515,0.2645632805102938,0.8576466376664953,0.0010248025258382,0.0,0.0,0.0,0.0,0.8148148148148148,0.8549423758865249,0.8888888888888888,0.8608230903776117,0.002791881561279297,0.007722335421090354,0.0,0.8576466376664953,0.0,0.0,0.0,1.0
|
| 204 |
+
202,0.6495176848874598,0.7261372804641724,1.0,1.0,0.022503834360806052,0.2641976281230865,0.857771008428262,0.0010255972544352,0.0,0.0,0.0,0.0,0.7887654320987655,0.8700457317073171,0.8732592592592593,0.8757531826796309,0.005517005920410156,0.00688973000783244,0.0,0.857771008428262,0.0,0.0,0.0,1.0
|
| 205 |
+
203,0.6527331189710611,0.7282053232192993,1.0,1.0,0.023700077989258106,0.2638743075095106,0.8579021377623207,0.0010248025258382,0.0,0.0,0.0,0.0,0.8138271604938272,0.8612938596491229,0.8882962962962964,0.8673856833807492,0.009279251098632812,0.006525484058310105,0.0,0.8579021377623207,0.0,0.0,0.0,1.0
|
| 206 |
+
204,0.6559485530546624,0.7252093553543091,1.0,1.0,0.024918177386275442,0.2635450797172555,0.8580215444949701,0.0010248025258382,0.0,0.0,0.0,0.0,0.8281481481481482,0.8679108796296297,0.8968888888888888,0.873265843968969,0.01819610595703125,0.006546783899628594,0.0,0.8580215444949701,0.0,0.0,0.0,1.0
|
| 207 |
+
205,0.6591639871382636,0.7263857126235962,1.0,1.0,0.02612230163311513,0.2632196291195477,0.858149530526146,0.0010255972544352,0.0,0.0,0.0,0.0,0.8037037037037037,0.863370811287478,0.8822222222222222,0.8689098324514991,0.006866455078125,0.006586385791297333,0.0,0.858149530526146,0.0,0.0,0.0,1.0
|
| 208 |
+
206,0.662379421221865,0.7258960008621216,1.0,1.0,0.027355052936311908,0.26288644113812576,0.8582856654473495,0.0010248025258382,0.0,0.0,0.0,0.0,0.8222222222222222,0.8346994535519126,0.8933333333333333,0.8419592748486191,0.0037336349487304688,0.008416803881783341,0.0,0.8582856654473495,0.0,0.0,0.0,1.0
|
| 209 |
+
207,0.6655948553054662,0.7267590761184692,1.0,1.0,0.029236408228264565,0.2623779487313694,0.8584307474155517,0.0010251998901367,0.0,0.0,0.0,0.0,0.8222222222222222,0.8346994535519126,0.8933333333333333,0.8419592748486191,0.016078948974609375,-0.08620634514762249,0.0,0.8584307474155517,0.0,0.0,0.0,1.0
|
| 210 |
+
208,0.6688102893890675,0.7242881059646606,1.0,1.0,0.0,0.271507075652888,0.8539452687457768,0.0010259946187337,0.0,0.0,0.0,0.0,0.7962962962962963,0.8440915300546449,0.8777777777777778,0.8509388615049476,0.020570755004882812,-0.07766196083802468,0.0,0.8539452687457768,0.0,0.0,0.0,1.0
|
| 211 |
+
209,0.6720257234726688,0.724702000617981,1.0,1.0,0.0005024965044460039,0.27014414481517185,0.8530004366874328,0.0010259946187337,0.0,0.0,0.0,0.0,0.768888888888889,0.8596476124885216,0.8613333333333333,0.865811737615715,0.04540443420410156,0.018177857276230336,0.0,0.8530004366874328,0.0,0.0,0.0,1.0
|
| 212 |
+
210,0.6752411575562701,0.7288285493850708,1.0,1.0,0.0021853992918792198,0.269689289925265,0.8531443890595475,0.0010255972544352,0.0,0.0,0.0,0.0,0.768888888888889,0.8596476124885216,0.8613333333333333,0.865811737615715,0.015499591827392578,0.035476237184979276,0.0,0.8531443890595475,0.0,0.0,0.0,1.0
|
| 213 |
+
211,0.6784565916398714,0.7262519598007202,1.0,1.0,0.01362823368217625,0.2665965210966739,0.8544639865006065,0.0010259946187337,0.0,0.0,0.0,0.0,0.654320987654321,0.8723958333333333,0.7925925925925925,0.8780000703828829,0.03539323806762695,0.08603891315792533,0.0,0.8544639865006065,0.0,0.0,0.0,1.0
|
| 214 |
+
212,0.6816720257234726,0.7252892255783081,1.0,1.0,0.03401865610211141,0.26108539860947244,0.8567389521194418,0.0010251998901367,0.0,0.0,0.0,0.0,0.6481481481481481,0.8725,0.7888888888888889,0.877668918918919,0.011544227600097656,0.13493279736931763,0.0,0.8567389521194418,1.0,0.0,0.0,1.0
|
| 215 |
+
213,0.684887459807074,0.72740638256073,1.0,1.0,0.06355157925490529,0.25310324135974216,0.8599738132264658,0.0010248025258382,0.0,0.0,0.0,0.0,0.7466666666666666,0.8645833333333334,0.848,0.8705306869369369,0.03981351852416992,0.18483870118342516,0.0,0.8599738132264658,1.0,0.0,0.0,1.0
|
| 216 |
+
214,0.6881028938906752,0.7292705774307251,1.0,1.0,0.10240652404056072,0.24260152849112993,0.8658786021466848,0.0010248025258382,0.0,0.0,0.0,0.0,0.7325925925925926,0.875,0.8395555555555556,0.8800675675675675,0.016727447509765625,0.2256854766608249,0.0,0.8658786021466848,1.0,0.0,0.0,1.0
|
| 217 |
+
215,0.6913183279742765,0.7257336378097534,1.0,1.0,0.14705221251766698,0.23053469369365967,0.8700700918910287,0.0010251998901367,0.0,0.0,0.0,0.0,0.8311111111111111,0.88125,0.8986666666666666,0.8864653716216216,0.01936197280883789,0.2474806368642979,0.0,0.8700700918910287,1.0,0.0,0.0,1.0
|
| 218 |
+
216,0.6945337620578779,0.7273343801498413,1.0,1.0,0.19397107728479968,0.21785346480470014,0.8744548988198597,0.0010251998901367,0.0,0.0,0.0,0.0,0.6833333333333333,0.8585199004975125,0.81,0.8647335535162028,0.012023448944091797,0.2551111696556463,0.0,0.8744548988198597,1.0,0.0,0.0,1.0
|
| 219 |
+
217,0.6977491961414791,0.7269359827041626,1.0,1.0,0.24143996154751202,0.20502357672809504,0.8789219124090115,0.0010259946187337,0.0,0.0,0.0,0.0,0.7466666666666666,0.85625,0.848,0.8620777027027027,0.009303092956542969,0.2576718987138124,0.0,0.8789219124090115,1.0,0.0,0.0,1.0
|
| 220 |
+
218,0.7009646302250804,0.726404070854187,1.0,1.0,0.28930626215688593,0.1920862749333189,0.8837525407664515,0.0010248025258382,0.0,0.0,0.0,0.0,0.8099999999999999,0.8840725806451613,0.886,0.8887723408892764,0.06026506423950195,0.19121796364588745,0.0,0.8837525407664515,1.0,0.0,0.0,1.0
|
| 221 |
+
219,0.7041800643086816,0.7209094762802124,1.0,1.0,0.31218807181221186,0.1859017803635063,0.886587265464466,0.0010248025258382,0.0,0.0,0.0,0.0,0.7466666666666666,0.8574186991869919,0.848,0.8636807157767524,0.05483865737915039,0.04945181265058246,0.0,0.886587265464466,1.0,0.0,0.0,1.0
|
| 222 |
+
220,0.707395498392283,0.720920205116272,1.0,1.0,0.30760277737525266,0.18714109366826065,0.8876708976459665,0.0010255972544352,0.0,0.0,0.0,0.0,0.8099999999999999,0.8622899159663866,0.886,0.8678727572109926,0.014154911041259766,-0.035531873736399655,0.0,0.8876708976459665,0.0,0.0,0.0,1.0
|
| 223 |
+
221,0.7106109324758842,0.7194939851760864,1.0,1.0,0.2990417503117967,0.18945496773714626,0.8883500626479859,0.0010255972544352,0.0,0.0,0.0,0.0,0.7466666666666666,0.8879237288135593,0.848,0.8924673614292258,0.026302337646484375,-0.05015954712565662,0.0,0.8883500626479859,0.0,0.0,0.0,1.0
|
| 224 |
+
222,0.7138263665594855,0.7182899713516235,1.0,1.0,0.28904441052499974,0.1921570483808263,1.0,0.0010240077972412,1.0,0.0,1.0,0.0,0.8240740740740741,0.8890350877192983,0.8944444444444445,0.8939085467045993,0.007431507110595703,-0.06740815397609762,0.0,1.0,0.0,0.0,0.0,1.0
|
| 225 |
+
223,0.7170418006430869,0.7187508344650269,1.0,1.0,0.27410162808682004,0.19619578313475602,1.0,0.0010240077972412,1.0,0.0,1.0,0.0,0.8522222222222222,0.8928409090909091,0.9113333333333332,0.8971851965601966,0.0021719932556152344,-0.08323703189297704,0.0,1.0,0.0,0.0,0.0,1.0
|
| 226 |
+
224,0.7202572347266881,0.718072772026062,1.0,1.0,0.25824781325122115,0.20048075157012402,1.0,0.0010251998901367,1.0,0.0,1.0,0.0,0.8592592592592593,0.885,0.9155555555555556,0.8900506756756758,0.02162933349609375,-0.0888144455386311,0.0,1.0,0.0,0.0,0.0,1.0
|
| 227 |
+
225,0.7234726688102894,0.7165879011154175,1.0,1.0,0.24124146163064308,0.20507722768861913,0.8900182244114121,0.0010255972544352,0.0,0.0,1.0,0.0,0.8311111111111111,0.8923948220064725,0.8986666666666666,0.8971207250940261,0.014538764953613281,-0.09350225490714542,0.0,0.8900182244114121,0.0,0.0,0.0,1.0
|
| 228 |
+
226,0.7266881028938906,0.7166188955307007,1.0,1.0,0.22365321941716332,0.20983097706083856,0.8901179868367626,0.0010251998901367,0.0,0.0,1.0,0.0,0.8099999999999999,0.8799757281553398,0.886,0.8852470644187878,0.006735324859619141,-0.09353117657074889,0.0,0.8901179868367626,0.0,0.0,0.0,1.0
|
| 229 |
+
227,0.729903536977492,0.7172614336013794,1.0,1.0,0.20663616721560107,0.21443034534569402,0.8902346654509699,0.0010259946187337,0.0,0.0,1.0,0.0,0.8451851851851852,0.8931518151815181,0.9071111111111112,0.8978444719471947,0.015287399291992188,-0.08007305461758901,0.0,0.8902346654509699,0.0,0.0,0.0,1.0
|
| 230 |
+
228,0.7331189710610932,0.7181476354598999,1.0,1.0,0.19402725203529536,0.21783828252259746,0.8904562029982045,0.0010259946187337,0.0,0.0,1.0,0.0,0.8592592592592593,0.9003712871287128,0.9155555555555556,0.9047468724913031,0.18268823623657227,0.13091616557819458,0.0,0.8904562029982045,1.0,1.0,0.0,1.0
|
| 231 |
+
229,0.7363344051446945,0.6989926099777222,1.0,1.0,0.25507341196732614,0.20133872878787457,0.0,0.0010255972544352,0.0,0.0,1.0,0.0,0.8592592592592593,0.8971052631578947,0.9155555555555556,0.9012766714082504,0.21086692810058594,0.4300708476150228,0.0,0.0,1.0,1.0,0.0,1.0
|
| 232 |
+
230,0.7395498392282959,0.6970609426498413,1.0,1.0,0.3531477613407634,0.17483119776109518,1.0,0.0010255972544352,1.0,0.0,1.0,0.0,0.8662962962962963,0.8880263157894737,0.91680658436214,0.8929440789473684,0.3241896629333496,0.6668300846196281,0.0,1.0,1.0,1.0,0.0,1.0
|
| 233 |
+
231,0.7427652733118971,0.6665736436843872,1.0,1.0,0.5017916980832033,0.13465572032591175,1.0,0.0010240077972412,1.0,0.0,1.0,0.0,0.8662962962962963,0.9002890173410405,0.9108641975308642,0.904668215903765,0.641322135925293,0.7264083854889738,0.0,1.0,1.0,1.0,0.0,1.0
|
| 234 |
+
232,0.7459807073954984,0.632928729057312,1.0,1.0,0.6219092272129484,0.1021903592121978,1.0,0.0010248025258382,1.0,0.0,1.0,0.0,0.8733333333333334,0.8680882352941177,0.9085185185185184,0.8729903616852146,0.5564665794372559,0.6857915298623685,1.0,1.0,1.0,1.0,0.0,1.0
|
| 235 |
+
233,0.7491961414790996,0.6109269857406616,1.0,1.0,0.7555254664181075,0.0660765673396749,1.0,0.0010251998901367,1.0,0.0,1.0,0.0,0.8803703703703704,0.8497942386831275,0.90961316872428,0.855883661439217,0.32346487045288086,0.8329679869175927,1.0,1.0,1.0,1.0,0.0,1.0
|
| 236 |
+
234,0.752411575562701,0.6005822420120239,1.0,1.0,0.9300963321361988,0.01889356052043853,0.0,0.0010255972544352,0.0,0.0,1.0,0.0,0.8240740740740741,0.7479938271604938,0.8553497942386832,0.7573589214214215,0.21266460418701172,0.39102736898797813,1.0,0.0,1.0,1.0,0.0,1.0
|
| 237 |
+
235,0.7556270096463023,0.5896605253219604,1.0,1.0,0.900200405221647,0.026973830440877093,0.0,0.1312051430631415,0.0,0.0,1.0,0.0,0.8099999999999999,0.6929324894514768,0.8416666666666667,0.7043437820732125,0.19653081893920898,-0.14631948189120855,1.0,0.0,0.0,1.0,0.0,1.0
|
| 238 |
+
236,0.7588424437299035,0.580929160118103,1.0,1.0,0.875960064646186,0.033525508709559386,1.0,0.1262225533815222,1.0,0.0,1.0,0.0,0.8662962962962963,0.4759493670886076,0.8811522633744856,0.4954242216900444,0.14760494232177734,-0.09193911716855882,1.0,1.0,0.0,1.0,0.0,1.0
|
| 239 |
+
237,0.7620578778135049,0.5749000310897827,1.0,1.0,0.8661841513618604,0.036167742157732975,1.0,1.0,1.0,1.0,1.0,1.0,0.8662962962962963,0.4575342465753425,0.8811522633744856,0.4795261014439097,0.10993242263793945,-0.0469882420212088,1.0,1.0,0.0,1.0,0.0,1.0
|
| 240 |
+
238,0.7652733118971061,0.5699359178543091,1.0,0.0,0.8585750263520959,0.038224332911680266,1.0,1.0,1.0,1.0,1.0,1.0,0.9666666666666668,0.3821794871794872,0.9737037037037036,0.4197496534996535,0.0502324104309082,-0.019563483341889926,1.0,1.0,0.0,1.0,1.0,1.0
|
| 241 |
+
239,0.7684887459807074,0.5698767900466919,1.0,0.0,0.8589459134746872,0.03812409049192197,1.0,1.0,1.0,1.0,1.0,1.0,0.9666666666666668,0.3352564102564103,0.974074074074074,0.375680006930007,0.0006890296936035156,0.0013052226360461133,1.0,1.0,0.0,1.0,1.0,1.0
|
| 242 |
+
240,0.7717041800643086,0.5700048208236694,1.0,0.0,0.8590579511740282,0.038093810648075654,1.0,1.0,1.0,1.0,1.0,1.0,0.9666666666666668,0.3508974358974359,0.9744444444444444,0.3881769750519751,0.015075206756591797,0.00031890376035063894,1.0,1.0,0.0,1.0,1.0,1.0
|
| 243 |
+
241,0.77491961414791,0.5683692693710327,1.0,0.0,0.8590638949783278,0.038092200115886904,1.0,1.0,1.0,1.0,1.0,1.0,0.9753086419753086,0.3978205128205129,0.98079561042524,0.4385083160083161,0.0821828842163086,0.00012080935548580696,1.0,1.0,0.0,1.0,1.0,1.0
|
| 244 |
+
242,0.7781350482315113,0.5617865324020386,1.0,0.0,0.8591026401656363,0.038081729712527074,1.0,1.0,1.0,1.0,1.0,1.0,0.9777777777777776,0.3872854418308963,0.9837037037037036,0.4576648167557258,0.17501354217529297,0.00010529565621905657,1.0,1.0,0.0,1.0,1.0,1.0
|
| 245 |
+
243,0.7813504823151125,0.5508679151535034,1.0,0.0,0.8591028677637206,0.038081670550265,1.0,1.0,1.0,1.0,1.0,1.0,0.9814814814814816,0.3923076923076923,0.986721536351166,0.4414205168005846,0.25955677032470703,0.0002430614223852129,1.0,1.0,0.0,1.0,1.0,1.0
|
| 246 |
+
244,0.7845659163987139,0.5358308553695679,1.0,0.0,0.8591925660845953,0.03805742357028855,1.0,1.0,1.0,1.0,1.0,1.0,0.9777777777777776,0.4538461538461539,0.9892894375857338,0.5443440256784852,0.32786130905151367,2.5805334066472674e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 247 |
+
245,0.7877813504823151,0.518081784248352,1.0,0.0,0.8591124107452897,0.03807909001685835,1.0,1.0,1.0,1.0,1.0,1.0,0.9790123456790124,0.4626550868486353,0.9947564548087182,0.5497390580262468,0.3584122657775879,-0.00022343550445801108,1.0,1.0,0.0,1.0,1.0,1.0
|
| 248 |
+
246,0.7909967845659164,0.4999896287918091,1.0,0.0,0.8591099049987749,0.038079767120734354,1.0,1.0,1.0,1.0,1.0,1.0,0.9839506172839506,0.4471079308288611,0.9978244170096022,0.6284040378983217,0.2740263938903814,-5.249008501351238e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 249 |
+
247,0.7942122186495176,0.4906791448593139,1.0,0.0,0.859092988510817,0.0380843390253597,1.0,1.0,1.0,1.0,1.0,1.0,0.9814814814814816,0.4845070422535211,0.998435299497028,0.6958924335502283,0.10443210601806696,4.1186946394614066e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 250 |
+
248,0.797427652733119,0.4895464181900024,1.0,0.0,0.8591251395397628,0.03807564842609489,1.0,1.0,1.0,1.0,1.0,1.0,0.9901234567901236,0.5434511434511434,0.9996780978509372,0.7731807209332603,0.001151561737061102,0.000148423479440149,1.0,1.0,0.0,1.0,1.0,1.0
|
| 251 |
+
249,0.8006430868167203,0.49079430103302,1.0,0.0,0.8591479019196937,0.03806949667741569,1.0,1.0,1.0,1.0,1.0,1.0,0.9901234567901236,0.5121806738245094,0.9998089722095208,0.7679547979178671,0.002093315124512274,-3.51867977790854e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 252 |
+
250,0.8038585209003215,0.4897557497024536,1.0,0.0,0.8591121332856062,0.0380791671058728,1.0,1.0,1.0,1.0,1.0,1.0,0.982716049382716,0.5587894027083216,0.9999103795153178,0.8710903250539893,0.2296924591064453,-0.0002317837994363775,1.0,1.0,0.0,1.0,1.0,1.0
|
| 253 |
+
251,0.8070739549839229,0.4678250551223755,1.0,0.0,0.8590621405220339,0.038092675057359325,1.0,1.0,1.0,1.0,1.0,1.0,0.9851851851851852,0.5708652113652115,0.9997251638469744,0.8731731183843244,0.41527032852172907,9.794357996480152e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 254 |
+
252,0.8102893890675241,0.4482287168502807,1.0,0.0,0.8591483560908209,0.03806937274787632,1.0,1.0,1.0,1.0,1.0,1.0,0.9901234567901236,0.6262173104278368,0.9998731900624904,0.9283186503565328,0.3678202629089361,2.6562892892073586e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 255 |
+
253,0.8135048231511254,0.4310430288314819,1.0,0.0,0.8590719822490738,0.03809001876807012,1.0,1.0,1.0,1.0,1.0,1.0,0.9850617283950616,0.5570962393747203,0.9996772595640908,0.95611528532662,0.32250881195068304,-0.0002255993974834697,1.0,1.0,0.0,1.0,1.0,1.0
|
| 256 |
+
254,0.8167202572347267,0.4159778356552124,1.0,0.0,0.8590648932016264,0.03809193268762467,1.0,1.0,1.0,1.0,1.0,1.0,0.9876543209876544,0.6901510333863274,0.9997748649426748,0.9655221923027422,0.2497053146362299,8.611092530454167e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 257 |
+
255,0.819935691318328,0.4060724973678589,1.0,0.0,0.8591038395322872,0.038081407675539664,1.0,1.0,1.0,1.0,1.0,1.0,0.9753086419753086,0.6013698376899472,0.9995886805873088,0.9633472814603522,0.1228189468383789,0.00023242332168799118,1.0,1.0,0.0,1.0,1.0,1.0
|
| 258 |
+
256,0.8231511254019293,0.4036959409713745,1.0,0.0,0.8591508952470457,0.03806869035545587,1.0,1.0,1.0,1.0,1.0,1.0,0.9864197530864196,0.7281089185137161,0.9998032820200172,0.9837961976144212,0.11640310287475586,4.822111417841779e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 259 |
+
257,0.8263665594855305,0.3944321870803833,1.0,0.0,0.8591216706626132,0.03807658556412182,1.0,1.0,1.0,1.0,1.0,1.0,0.991358024691358,0.7464752983868426,0.9998952056766416,0.9887204280328274,0.09926795959472712,-5.9137644703929904e-05,1.0,1.0,0.0,1.0,1.0,1.0
|
| 260 |
+
258,0.8295819935691319,0.3937691450119018,1.0,0.0,0.8591290038825387,0.03807460411992626,1.0,1.0,1.0,1.0,1.0,1.0,0.9873251028806584,0.7161701474201474,0.999802452426516,0.986006944921944,0.016307830810546875,0.00012177964182132073,1.0,1.0,0.0,1.0,1.0,1.0
|
| 261 |
+
259,0.8327974276527331,0.3928014039993286,1.0,0.0,0.8591667371298695,0.03806440759993969,1.0,1.0,1.0,1.0,1.0,1.0,0.9873388203017832,0.6807791585881473,0.9998406150259388,0.9857599857368236,0.021142959594726007,-0.039549728508102705,1.0,1.0,0.0,1.0,1.0,1.0
|
| 262 |
+
260,0.8360128617363344,0.3916548490524292,1.0,0.0,0.8444961231143526,0.04202957697073653,1.0,1.0,1.0,1.0,1.0,1.0,0.98880658436214,0.6734407484407484,0.9998331275155662,0.9865090745105408,0.006992816925049383,-0.0360416970108373,1.0,1.0,0.0,1.0,1.0,1.0
|
| 263 |
+
261,0.8392282958199357,0.3921021223068237,1.0,0.0,0.8458317827585606,0.04166857730102342,1.0,1.0,1.0,1.0,1.0,1.0,0.9967626886145404,0.709050159099011,0.9999631683667614,0.9891461319416448,0.004332065582275946,-0.0002818196796300354,1.0,1.0,0.0,1.0,1.0,1.0
|
| 264 |
+
262,0.842443729903537,0.3912216424942016,1.0,0.0,0.8443918611218083,0.042057758938699535,1.0,1.0,1.0,1.0,1.0,1.0,0.9951440329218108,0.6786773809245719,0.999942847465664,0.9883722217749727,0.004265308380127508,-0.003934879581911216,1.0,1.0,0.0,1.0,1.0,1.0
|
| 265 |
+
263,0.8456591639871383,0.3925286531448364,1.0,0.0,0.8443759386785528,0.04206206525921454,1.0,1.0,1.0,1.0,1.0,1.0,0.9910973936899864,0.6729776448877571,0.9998831303945312,0.988525174569192,0.014271736145020086,-0.000730958646056809,1.0,1.0,0.0,1.0,1.0,1.0
|
| 266 |
+
264,0.8488745980707395,0.3926488161087036,1.0,0.0,0.8441214103105348,0.042130854803305216,1.0,1.0,1.0,1.0,1.0,1.0,0.9637421124828532,0.4933869046228596,0.9998408432921058,0.9779534151388092,0.0013661384582519531,0.00025337631203756206,1.0,1.0,0.0,1.0,1.0,1.0
|
| 267 |
+
265,0.8520900321543409,0.3926652669906616,1.0,0.0,0.8444696894841389,0.042036727628010785,1.0,1.0,1.0,1.0,1.0,1.0,0.9305596707818932,0.407919479548693,0.998011091805111,0.9774209158263568,0.0015616416931146793,0.00046044346492239707,1.0,1.0,0.0,1.0,1.0,1.0
|
| 268 |
+
266,0.8553054662379421,0.3928049802780151,1.0,0.0,0.8442917656090296,0.04208481045681298,1.0,1.0,1.0,1.0,1.0,1.0,0.878196159122085,0.2979046462192529,0.993200037426544,0.9665519544628716,0.0014257431030273438,0.001405747702789631,1.0,1.0,0.0,1.0,1.0,1.0
|
| 269 |
+
267,0.8585209003215434,0.3925226926803589,1.0,0.0,0.8449897839493221,0.04189615285773182,1.0,0.9084700425465898,1.0,1.0,1.0,1.0,0.7576131687242799,0.2873885743450961,0.9705903978052126,0.9765548547795018,0.002644062042235773,0.001662695811665213,1.0,1.0,0.0,1.0,1.0,1.0
|
| 270 |
+
268,0.8617363344051447,0.3925405740737915,1.0,0.0,0.8449069579613016,0.041918540875646455,1.0,1.0,1.0,1.0,1.0,1.0,0.5925925925925926,0.2344536951382464,0.9400345475791292,0.9746027123205412,0.0012445449829101562,-0.00280648362671318,1.0,1.0,0.0,1.0,1.0,1.0
|
| 271 |
+
269,0.864951768488746,0.3926471471786499,1.0,0.0,0.8439514116207569,0.04217680122040314,1.0,1.0,1.0,1.0,1.0,1.0,0.6023703703703703,0.1917167372458594,0.9318237000457248,0.9659052029017524,0.0034999847412109375,0.047719915327030654,1.0,1.0,1.0,1.0,1.0,1.0
|
| 272 |
+
270,0.8681672025723473,0.3928905725479126,1.0,0.0,0.8625626822347028,0.03714654934294339,1.0,1.0,1.0,1.0,1.0,1.0,0.5887640449438203,0.2289522724305333,0.9151296989873768,0.961931366872086,0.000374317169188898,0.10050694162431456,1.0,1.0,1.0,1.0,1.0,1.0
|
| 273 |
+
271,0.8713826366559485,0.3926845788955688,1.0,0.0,0.8811376599878488,0.032126107057971684,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.3278495887191539,1.0,0.9597195089353566,0.0019264221191411801,0.07411134596055365,1.0,1.0,1.0,1.0,1.0,1.0
|
| 274 |
+
272,0.8745980707395499,0.3926979303359985,1.0,0.0,0.8899829032524859,0.029735414746888025,1.0,1.0,1.0,1.0,1.0,1.0,0.4565432098765433,0.1069330199764982,0.8957278626225678,0.9561591778258952,0.0007343292236328125,0.02108037706811075,1.0,1.0,1.0,1.0,1.0,1.0
|
| 275 |
+
273,0.8778135048231511,0.3926111459732055,1.0,0.0,0.8889371195124847,0.03001806935116061,1.0,1.0,1.0,1.0,1.0,1.0,0.442716049382716,0.1037994516255386,0.9100640024386528,0.961752196155228,0.0016474723815917969,-0.04826820417068729,1.0,1.0,0.0,1.0,1.0,1.0
|
| 276 |
+
274,0.8810289389067524,0.3925331830978393,1.0,0.0,0.8721243165656887,0.034562235163956755,1.0,1.0,1.0,1.0,1.0,1.0,0.4201234567901234,0.0943987465726596,0.8995634234190872,0.9469459498537952,0.0005960464477539062,-0.09216563362504648,1.0,1.0,0.0,1.0,1.0,1.0
|
| 277 |
+
275,0.8842443729903537,0.3926707506179809,1.0,0.0,0.8548370593686109,0.03923463271366526,1.0,1.0,1.0,1.0,1.0,1.0,0.4050617283950617,0.0885668276972625,0.938353062904174,0.9420448679193368,0.0010251998901361636,-0.052706511086785465,1.0,1.0,0.0,1.0,1.0,1.0
|
| 278 |
+
276,0.887459807073955,0.3924306631088257,1.0,0.0,0.8526235878006102,0.0398328862726353,1.0,1.0,1.0,1.0,1.0,1.0,0.4029629629629629,0.0982286634460547,0.9769948280241832,0.928762095428762,0.0008344650268549136,-0.013536391513472162,1.0,1.0,0.0,1.0,1.0,1.0
|
| 279 |
+
277,0.8906752411575563,0.3925873041152954,1.0,0.0,0.8498287697856157,0.040588271865012474,1.0,1.0,1.0,1.0,1.0,1.0,0.4888888888888888,0.217391304347826,1.0,0.9586630367684726,0.003292560577392023,-0.016674137021616894,1.0,1.0,0.0,1.0,1.0,1.0
|
| 280 |
+
278,0.8938906752411575,0.3927599191665649,1.0,0.0,0.8464543831199601,0.04150029997479699,1.0,1.0,1.0,1.0,1.0,1.0,0.6533333333333333,0.1560990338164251,1.0,0.9453900695408848,0.0010800361633300781,-0.01417482832936641,1.0,1.0,0.0,1.0,1.0,1.0
|
| 281 |
+
279,0.8971061093247589,0.3924793004989624,1.0,0.0,0.8445842737578608,0.042005754697949114,1.0,1.0,1.0,1.0,1.0,1.0,0.8790123456790123,0.2367149758454106,1.0,0.9365648256952605,0.0022196769714349918,-0.00411579438857515,1.0,1.0,0.0,1.0,1.0,1.0
|
| 282 |
+
280,0.9003215434083601,0.3925379514694214,1.0,0.0,0.8449315956962757,0.041911879413654506,1.0,1.0,1.0,1.0,1.0,1.0,0.9351851851851852,0.3754528985507246,1.0,0.9624315080162738,0.00041961669921875,0.010993171726528458,1.0,1.0,1.0,1.0,1.0,1.0
|
| 283 |
+
281,0.9035369774919614,0.3925212621688843,1.0,0.0,0.8486516007033659,0.04090643752529627,1.0,1.0,1.0,1.0,1.0,1.0,0.9861728395061728,0.5295893719806763,1.0,0.9781362097924864,0.00035762786865234375,0.020441300758818684,1.0,1.0,1.0,1.0,1.0,1.0
|
| 284 |
+
282,0.9067524115755627,0.3925737142562866,1.0,0.0,0.8524946132568703,0.03986774933777264,1.0,1.0,1.0,1.0,1.0,1.0,0.9901234567901236,0.5357789855072465,1.0,0.9730248812102456,0.001175403594970148,0.020631034841076673,1.0,1.0,1.0,1.0,1.0,1.0
|
| 285 |
+
283,0.909967845659164,0.3926388025283813,1.0,0.0,0.8562848148415116,0.0388433340411886,1.0,1.0,1.0,1.0,1.0,1.0,0.9975308641975308,0.5855978260869565,1.0,0.9776551914233074,0.002479553222655695,0.017346800444162785,1.0,1.0,1.0,1.0,1.0,1.0
|
| 286 |
+
284,0.9131832797427653,0.3928216695785522,1.0,0.0,0.8589126900247541,0.03813306929335636,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.6040157004830917,1.0,0.981981695759078,0.0004410743713378906,0.01328387749852819,1.0,1.0,1.0,1.0,1.0,1.0
|
| 287 |
+
285,0.9163987138263664,0.3925946950912475,1.0,0.0,0.8611996723670057,0.03751494629133578,1.0,1.0,1.0,1.0,1.0,1.0,0.9987654320987654,0.6408514492753623,1.0,0.9833827257306396,0.0023341178894037418,0.017258098792206147,1.0,1.0,1.0,1.0,1.0,1.0
|
| 288 |
+
286,0.919614147909968,0.3925882577896118,1.0,0.0,0.8652979668784461,0.036407259414135744,1.0,1.0,1.0,1.0,1.0,1.0,0.9987654320987654,0.6439210950080515,1.0,0.9739785623169512,4.291534423828125e-05,0.009273963734673235,1.0,1.0,0.0,1.0,1.0,1.0
|
| 289 |
+
287,0.9228295819935692,0.3925904035568237,1.0,0.0,0.8646309113784556,0.03658754991786846,1.0,1.0,1.0,1.0,1.0,1.0,0.9987654320987654,0.6445848021934979,1.0,0.979344250054434,0.002899169921875,0.004008625780188499,1.0,1.0,0.0,1.0,1.0,1.0
|
| 290 |
+
288,0.9260450160771704,0.3928781747817993,1.0,0.0,0.8667811132493689,0.036006396836116894,1.0,1.0,1.0,1.0,1.0,1.0,0.9987654320987654,0.6206913435174304,0.9999944873434956,0.9788516558246334,0.0008678436279296875,0.021722821434747158,1.0,1.0,1.0,1.0,1.0,1.0
|
| 291 |
+
289,0.9292604501607716,0.3925036191940307,1.0,0.0,0.8726680748985933,0.03441526777439374,1.0,1.0,1.0,1.0,1.0,1.0,0.9987654320987654,0.6356247551899725,0.9999903978052126,0.9725165953903848,0.0029134750366210938,-0.027433592338347024,1.0,1.0,0.0,1.0,1.0,1.0
|
| 292 |
+
290,0.932475884244373,0.3925868272781372,1.0,0.0,0.8566310442787085,0.038749756069951596,1.0,1.0,1.0,1.0,1.0,1.0,0.9987654320987654,0.6475714845280063,0.9999871293332656,0.9785762071445708,0.002620220184326727,-0.0503305159066688,1.0,1.0,0.0,1.0,1.0,1.0
|
| 293 |
+
291,0.9356913183279744,0.3927656412124634,1.0,0.0,0.8540464565338376,0.03944831936506062,1.0,1.0,1.0,1.0,1.0,1.0,0.9950617283950616,0.6983450842146495,0.999931148707006,0.9862420899895196,9.059906005914886e-05,-0.010442807563420808,1.0,1.0,0.0,1.0,1.0,1.0
|
| 294 |
+
292,0.9389067524115756,0.3925777673721313,1.0,0.0,0.8527673234509853,0.03979403682629368,1.0,1.0,1.0,1.0,1.0,1.0,0.9975308641975308,0.6505581668625147,0.9999283036122544,0.9815154683197832,1.9073486328125e-05,0.02227283324643746,1.0,1.0,1.0,1.0,1.0,1.0
|
| 295 |
+
293,0.9421221864951768,0.3927675485610962,1.0,0.0,0.8622870931242872,0.03722103604041688,1.0,1.0,1.0,1.0,1.0,1.0,0.9975308641975308,0.7222385428907168,0.9999390336838896,0.9828695133553936,0.00039577484130803864,0.041009544747133,1.0,1.0,1.0,1.0,1.0,1.0
|
| 296 |
+
294,0.945337620578778,0.3925381898880005,1.0,0.0,0.867940320644268,0.03569308235158038,1.0,1.0,1.0,1.0,1.0,1.0,0.9962962962962963,0.65951821386604,0.9998600823045268,0.9775598271030088,0.0008225440979009457,0.03245284246394517,1.0,1.0,1.0,1.0,1.0,1.0
|
| 297 |
+
295,0.9485530546623794,0.3926852941513061,1.0,0.0,0.8742942250709524,0.03397575179402236,1.0,1.0,1.0,1.0,1.0,1.0,0.9962962962962963,0.6834116725421073,0.9998655692729768,0.9748145225341172,8.106231689508636e-05,0.014529197054488005,1.0,1.0,1.0,1.0,1.0,1.0
|
| 298 |
+
296,0.9517684887459807,0.392530083656311,1.0,0.0,0.8733159348192989,0.034240162646131576,1.0,1.0,1.0,1.0,1.0,1.0,0.9938271604938272,0.638611437524481,0.999772061329374,0.9804654831094314,0.0012373924255371094,0.0027408709537095344,1.0,1.0,0.0,1.0,1.0,1.0
|
| 299 |
+
297,0.954983922829582,0.3925615549087524,1.0,0.0,0.8753083052779357,0.03370166469865141,1.0,1.0,1.0,1.0,1.0,1.0,0.9938271604938272,0.6147179788484136,0.999772953029658,0.9721409121536444,0.0003266334533691406,-3.423840079138002,1.0,1.0,0.0,1.0,1.0,1.0
|
| 300 |
+
298,0.9581993569131833,0.3925627470016479,1.0,1.0,0.0,0.3766241705599318,0.4517677302241453,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7698785742264003,0.991561347355586,0.9765941148586812,0.0023674964904790707,-3.4404222977818075,0.0,0.4517677302241453,0.0,1.0,1.0,1.0
|
| 301 |
+
299,0.9614147909967846,0.3927983045578003,1.0,1.0,0.0,0.37774389447683215,0.4523209829414418,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7749951037994516,0.991740893156531,0.9777523208004786,0.0021862983703618832,-0.0172224895740003,0.0,0.4523209829414418,0.0,1.0,1.0,1.0
|
| 302 |
+
300,0.964630225080386,0.3927813768386841,1.0,1.0,0.0,0.37834641951733183,0.45296247556029184,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7749951037994516,0.991740893156531,0.9777523208004786,0.0009846687316900082,-0.011939154717193201,0.0,0.45296247556029184,0.0,1.0,1.0,1.0
|
| 303 |
+
301,0.9678456591639872,0.3926998376846313,1.0,1.0,0.0,0.3789378099485515,0.45328402616429214,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.777222875048962,0.991740893156531,0.977972594851959,0.0013375282287597656,-0.01613151232049581,0.0,0.45328402616429214,0.0,1.0,1.0,1.0
|
| 304 |
+
302,0.9710610932475884,0.3926476240158081,1.0,1.0,0.0,0.3799595707493814,0.4538895146996784,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7631496881496882,0.9912427983539096,0.9759097129864474,0.0008821487426757812,-0.01571514259359641,0.0,0.4538895146996784,0.0,1.0,1.0,1.0
|
| 305 |
+
303,0.9742765273311896,0.3926116228103637,1.0,1.0,0.0,0.3805093242079111,0.4554191728382966,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7580561330561331,0.991103795153178,0.9753916422979838,0.00030517578125,-0.011688865900427725,0.0,0.4554191728382966,0.0,1.0,1.0,1.0
|
| 306 |
+
304,0.977491961414791,0.3926781415939331,1.0,1.0,0.0,0.3811284573394242,0.4563351354361921,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7746034077555817,0.991561347355586,0.9777135912969216,0.0008916854858392886,-0.018894973759875366,0.0,0.4563351354361921,0.0,1.0,1.0,1.0
|
| 307 |
+
305,0.9807073954983924,0.3925224542617798,1.0,1.0,0.0,0.38239882158389865,0.4567235788016699,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7794506462984724,0.991561347355586,0.9781928689034394,0.001990795135498047,-0.018222851795383632,0.0,0.4567235788016699,0.0,1.0,1.0,1.0
|
| 308 |
+
306,0.9839228295819936,0.3928772211074829,1.0,1.0,0.0,0.38295074251896255,0.4576669836444091,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7794506462984724,0.9914252400548696,0.9781928689034394,0.000717639923095148,-0.014853622764205432,0.0,0.4576669836444091,0.0,1.0,1.0,1.0
|
| 309 |
+
307,0.9871382636655948,0.3925942182540893,1.0,1.0,0.0,0.3838841838603192,0.4562945992231467,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7794506462984724,0.9914252400548696,0.9781928689034394,0.001506805419921875,-0.0158717226604832,0.0,0.4562945992231467,0.0,1.0,1.0,1.0
|
| 310 |
+
308,0.990353697749196,0.3927265405654907,1.0,1.0,0.0,0.38453791478501087,0.0,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7794506462984724,0.9914252400548696,0.9781928689034394,0.0014996528625488281,-0.014976659698534567,0.0,0.0,0.0,1.0,1.0,1.0
|
| 311 |
+
309,0.9935691318327974,0.3927441835403442,1.0,1.0,0.0,0.38538184983017265,0.45882970986282867,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7794506462984724,0.991561347355586,0.9781928689034394,0.002892017364501953,-0.00681303135188549,0.0,0.45882970986282867,0.0,1.0,1.0,1.0
|
| 312 |
+
310,0.9967845659163987,0.3924373388290405,1.0,1.0,0.0,0.3852192179201994,0.46009433972064445,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7794506462984724,0.991740893156531,0.9781928689034394,4.291534423828125e-05,-1.8860716621826867e-06,0.0,0.46009433972064445,0.0,1.0,1.0,1.0
|
| 313 |
+
311,1.0,0.392748475074768,1.0,1.0,0.0,0.38538203843733887,0.4600183715704433,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7746034077555817,0.9915208047553726,0.9780496561900632,0.006222724914549671,-0.0032564103427890068,0.0,0.4600183715704433,0.0,1.0,1.0,1.0
|
artifacts/results/metric_iter22_ep1_pregrasp_repair/episode1.keyframes.csv
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
frame_index,time_norm,door_angle,right_gripper_open,left_gripper_open,pregrasp_progress,pregrasp_distance,p_pre,p_ext,y_pre_raw,y_ext_raw,y_pre,y_ext,three_view_visibility,three_view_whole_tray_visibility,full_view_visibility,full_view_whole_tray_visibility,door_speed_abs,pregrasp_speed,y_pre_progress_seed,phase_score,approach_active,y_retrieve,y_ready,phase_switch,keyframe_ordinal
|
| 2 |
+
61,0.1961414790996784,1.5707966089248655,1.0,1.0,0.0074599555493291,0.26826368334525275,0.0,0.0010240077972412,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00879710386837984,0.0,0.0,0.0,0.0,0.0,0.0,0
|
| 3 |
+
96,0.3086816720257235,1.5705398321151731,0.0,1.0,0.021230536606462458,0.2645417716676796,0.0,0.0010255972544352,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0008988380432151111,0.0075986409301131985,0.0,0.0,0.0,0.0,0.0,0.0,1
|
| 4 |
+
98,0.315112540192926,1.5711039304733276,0.0,1.0,0.02305226441072572,0.2640493953611447,0.0,0.0010259946187337,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0006198883056640625,0.00857267253610794,0.0,0.0,0.0,0.0,0.0,0.0,2
|
| 5 |
+
149,0.4790996784565916,0.7233246564865112,1.0,1.0,0.023149487547852288,0.26402311802260126,0.7154452749838629,0.0010240077972412,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.043487548828125,0.008812120038229065,0.0,0.7154452749838629,0.0,0.0,0.0,1.0,3
|
| 6 |
+
151,0.4855305466237942,0.7274461984634399,1.0,1.0,0.02477345115475227,0.2635841932790162,0.7158666640531521,0.0010255972544352,0.0,0.0,0.0,0.0,0.6888888888888889,0.7534722222222222,0.8133333333333334,0.7642994557057057,0.024998188018798828,0.005642328265169638,0.0,0.7158666640531521,0.0,0.0,0.0,1.0,4
|
| 7 |
+
208,0.6688102893890675,0.7242881059646606,1.0,1.0,0.0,0.271507075652888,0.8539452687457768,0.0010259946187337,0.0,0.0,0.0,0.0,0.7962962962962963,0.8440915300546449,0.8777777777777778,0.8509388615049476,0.020570755004882812,-0.07766196083802468,0.0,0.8539452687457768,0.0,0.0,0.0,1.0,5
|
| 8 |
+
238,0.7652733118971061,0.5699359178543091,1.0,0.0,0.8585750263520959,0.038224332911680266,1.0,1.0,1.0,1.0,1.0,1.0,0.9666666666666668,0.3821794871794872,0.9737037037037036,0.4197496534996535,0.0502324104309082,-0.019563483341889926,1.0,1.0,0.0,1.0,1.0,1.0,6
|
| 9 |
+
240,0.7717041800643086,0.5700048208236694,1.0,0.0,0.8590579511740282,0.038093810648075654,1.0,1.0,1.0,1.0,1.0,1.0,0.9666666666666668,0.3508974358974359,0.9744444444444444,0.3881769750519751,0.015075206756591797,0.00031890376035063894,1.0,1.0,0.0,1.0,1.0,1.0,7
|
| 10 |
+
263,0.8456591639871383,0.3925286531448364,1.0,0.0,0.8443759386785528,0.04206206525921454,1.0,1.0,1.0,1.0,1.0,1.0,0.9910973936899864,0.6729776448877571,0.9998831303945312,0.988525174569192,0.014271736145020086,-0.000730958646056809,1.0,1.0,0.0,1.0,1.0,1.0,8
|
| 11 |
+
282,0.9067524115755627,0.3925737142562866,1.0,0.0,0.8524946132568703,0.03986774933777264,1.0,1.0,1.0,1.0,1.0,1.0,0.9901234567901236,0.5357789855072465,1.0,0.9730248812102456,0.001175403594970148,0.020631034841076673,1.0,1.0,1.0,1.0,1.0,1.0,9
|
| 12 |
+
298,0.9581993569131833,0.3925627470016479,1.0,1.0,0.0,0.3766241705599318,0.4517677302241453,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7698785742264003,0.991561347355586,0.9765941148586812,0.0023674964904790707,-3.4404222977818075,0.0,0.4517677302241453,0.0,1.0,1.0,1.0,10
|
| 13 |
+
300,0.964630225080386,0.3927813768386841,1.0,1.0,0.0,0.37834641951733183,0.45296247556029184,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7749951037994516,0.991740893156531,0.9777523208004786,0.0009846687316900082,-0.011939154717193201,0.0,0.45296247556029184,0.0,1.0,1.0,1.0,11
|
| 14 |
+
305,0.9807073954983924,0.3925224542617798,1.0,1.0,0.0,0.38239882158389865,0.4567235788016699,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7794506462984724,0.991561347355586,0.9781928689034394,0.001990795135498047,-0.018222851795383632,0.0,0.4567235788016699,0.0,1.0,1.0,1.0,12
|
| 15 |
+
311,1.0,0.392748475074768,1.0,1.0,0.0,0.38538203843733887,0.4600183715704433,1.0,0.0,1.0,1.0,1.0,0.971851851851852,0.7746034077555817,0.9915208047553726,0.9780496561900632,0.006222724914549671,-0.0032564103427890068,0.0,0.4600183715704433,0.0,1.0,1.0,1.0,13
|
artifacts/results/metric_iter22_ep1_pregrasp_repair/episode1.metrics.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"episode_name": "episode1",
|
| 3 |
+
"description": "take tray out of oven",
|
| 4 |
+
"num_dense_frames": 312,
|
| 5 |
+
"num_keyframes": 14,
|
| 6 |
+
"phase_switch_rises": 1,
|
| 7 |
+
"phase_switch_falls": 0,
|
| 8 |
+
"ppre_cross_frame": 135,
|
| 9 |
+
"pext_cross_frame": 237,
|
| 10 |
+
"phase_cross_frame": 135,
|
| 11 |
+
"retrieve_cross_frame": 228,
|
| 12 |
+
"ready_cross_frame": 238,
|
| 13 |
+
"ordering_ok": true,
|
| 14 |
+
"dense_boundary_error_to_retrieve_frames": 93.0,
|
| 15 |
+
"dense_boundary_error_frames": 103.0,
|
| 16 |
+
"dense_boundary_error_fraction": 0.3301282051282051,
|
| 17 |
+
"key_boundary_error_to_retrieve_keyframes": 3.0,
|
| 18 |
+
"key_boundary_error_keyframes": 3.0,
|
| 19 |
+
"auroc_vret_ypre_three": 0.9526776776776777,
|
| 20 |
+
"auprc_vret_ypre_three": 0.9382002220396171,
|
| 21 |
+
"auroc_vret_ypre_full": 0.9968218218218219,
|
| 22 |
+
"auprc_vret_ypre_full": 0.9927785989555453,
|
| 23 |
+
"auroc_ppre_ypre": 0.9147147147147148,
|
| 24 |
+
"auprc_ppre_ypre": 0.8943537824287375,
|
| 25 |
+
"auroc_pext_yext": 1.0,
|
| 26 |
+
"auprc_pext_yext": 1.0,
|
| 27 |
+
"auroc_phase_yretrieve": 0.900375939849624,
|
| 28 |
+
"auprc_phase_yretrieve": 0.8455552074868606,
|
| 29 |
+
"f1_phase_yretrieve": 0.6436781609195402,
|
| 30 |
+
"auroc_phase_yready": 0.9035600726777198,
|
| 31 |
+
"auprc_phase_yready": 0.7799738121388438,
|
| 32 |
+
"f1_phase_yready": 0.5896414342629482,
|
| 33 |
+
"baseline_auroc_door_yext": 0.0,
|
| 34 |
+
"baseline_auprc_door_yext": 0.1327805535676393,
|
| 35 |
+
"baseline_auroc_time_yext": 1.0,
|
| 36 |
+
"baseline_auprc_time_yext": 1.0,
|
| 37 |
+
"baseline_auroc_whole_vis_yext": 0.9203938115330521,
|
| 38 |
+
"baseline_auprc_whole_vis_yext": 0.888952798412559,
|
| 39 |
+
"pre_ready_open_more_increases_pext": 2.0,
|
| 40 |
+
"pre_ready_open_more_trials": 2.0,
|
| 41 |
+
"pre_ready_hold_open_increases_pext": 0.0,
|
| 42 |
+
"pre_ready_hold_open_trials": 2.0,
|
| 43 |
+
"pre_ready_extract_success": 0.0,
|
| 44 |
+
"pre_ready_extract_trials": 2.0,
|
| 45 |
+
"pre_ready_wait_extract_success": 0.0,
|
| 46 |
+
"pre_ready_wait_trials": 2.0,
|
| 47 |
+
"post_ready_extract_success": 2.0,
|
| 48 |
+
"post_ready_extract_trials": 2.0,
|
| 49 |
+
"post_ready_open_more_low_gain": 1.0,
|
| 50 |
+
"post_ready_open_more_trials": 2.0,
|
| 51 |
+
"post_ready_hold_open_low_gain": 1.0,
|
| 52 |
+
"post_ready_hold_open_trials": 2.0
|
| 53 |
+
}
|
artifacts/results/metric_iter22_ep1_pregrasp_repair/summary.json
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"num_episodes": 1,
|
| 3 |
+
"mean_metrics": {
|
| 4 |
+
"num_dense_frames": 312.0,
|
| 5 |
+
"num_keyframes": 14.0,
|
| 6 |
+
"phase_switch_rises": 1.0,
|
| 7 |
+
"phase_switch_falls": 0.0,
|
| 8 |
+
"ppre_cross_frame": 135.0,
|
| 9 |
+
"pext_cross_frame": 237.0,
|
| 10 |
+
"phase_cross_frame": 135.0,
|
| 11 |
+
"retrieve_cross_frame": 228.0,
|
| 12 |
+
"ready_cross_frame": 238.0,
|
| 13 |
+
"dense_boundary_error_to_retrieve_frames": 93.0,
|
| 14 |
+
"dense_boundary_error_frames": 103.0,
|
| 15 |
+
"dense_boundary_error_fraction": 0.3301282051282051,
|
| 16 |
+
"key_boundary_error_to_retrieve_keyframes": 3.0,
|
| 17 |
+
"key_boundary_error_keyframes": 3.0,
|
| 18 |
+
"auroc_vret_ypre_three": 0.9526776776776777,
|
| 19 |
+
"auprc_vret_ypre_three": 0.9382002220396171,
|
| 20 |
+
"auroc_vret_ypre_full": 0.9968218218218219,
|
| 21 |
+
"auprc_vret_ypre_full": 0.9927785989555453,
|
| 22 |
+
"auroc_ppre_ypre": 0.9147147147147148,
|
| 23 |
+
"auprc_ppre_ypre": 0.8943537824287375,
|
| 24 |
+
"auroc_pext_yext": 1.0,
|
| 25 |
+
"auprc_pext_yext": 1.0,
|
| 26 |
+
"auroc_phase_yretrieve": 0.900375939849624,
|
| 27 |
+
"auprc_phase_yretrieve": 0.8455552074868606,
|
| 28 |
+
"f1_phase_yretrieve": 0.6436781609195402,
|
| 29 |
+
"auroc_phase_yready": 0.9035600726777198,
|
| 30 |
+
"auprc_phase_yready": 0.7799738121388438,
|
| 31 |
+
"f1_phase_yready": 0.5896414342629482,
|
| 32 |
+
"baseline_auroc_door_yext": 0.0,
|
| 33 |
+
"baseline_auprc_door_yext": 0.1327805535676393,
|
| 34 |
+
"baseline_auroc_time_yext": 1.0,
|
| 35 |
+
"baseline_auprc_time_yext": 1.0,
|
| 36 |
+
"baseline_auroc_whole_vis_yext": 0.9203938115330521,
|
| 37 |
+
"baseline_auprc_whole_vis_yext": 0.888952798412559,
|
| 38 |
+
"pre_ready_open_more_increases_pext": 2.0,
|
| 39 |
+
"pre_ready_open_more_trials": 2.0,
|
| 40 |
+
"pre_ready_hold_open_increases_pext": 0.0,
|
| 41 |
+
"pre_ready_hold_open_trials": 2.0,
|
| 42 |
+
"pre_ready_extract_success": 0.0,
|
| 43 |
+
"pre_ready_extract_trials": 2.0,
|
| 44 |
+
"pre_ready_wait_extract_success": 0.0,
|
| 45 |
+
"pre_ready_wait_trials": 2.0,
|
| 46 |
+
"post_ready_extract_success": 2.0,
|
| 47 |
+
"post_ready_extract_trials": 2.0,
|
| 48 |
+
"post_ready_open_more_low_gain": 1.0,
|
| 49 |
+
"post_ready_open_more_trials": 2.0,
|
| 50 |
+
"post_ready_hold_open_low_gain": 1.0,
|
| 51 |
+
"post_ready_hold_open_trials": 2.0
|
| 52 |
+
},
|
| 53 |
+
"median_metrics": {
|
| 54 |
+
"num_dense_frames": 312.0,
|
| 55 |
+
"num_keyframes": 14.0,
|
| 56 |
+
"phase_switch_rises": 1.0,
|
| 57 |
+
"phase_switch_falls": 0.0,
|
| 58 |
+
"ppre_cross_frame": 135.0,
|
| 59 |
+
"pext_cross_frame": 237.0,
|
| 60 |
+
"phase_cross_frame": 135.0,
|
| 61 |
+
"retrieve_cross_frame": 228.0,
|
| 62 |
+
"ready_cross_frame": 238.0,
|
| 63 |
+
"dense_boundary_error_to_retrieve_frames": 93.0,
|
| 64 |
+
"dense_boundary_error_frames": 103.0,
|
| 65 |
+
"dense_boundary_error_fraction": 0.3301282051282051,
|
| 66 |
+
"key_boundary_error_to_retrieve_keyframes": 3.0,
|
| 67 |
+
"key_boundary_error_keyframes": 3.0,
|
| 68 |
+
"auroc_vret_ypre_three": 0.9526776776776777,
|
| 69 |
+
"auprc_vret_ypre_three": 0.9382002220396171,
|
| 70 |
+
"auroc_vret_ypre_full": 0.9968218218218219,
|
| 71 |
+
"auprc_vret_ypre_full": 0.9927785989555453,
|
| 72 |
+
"auroc_ppre_ypre": 0.9147147147147148,
|
| 73 |
+
"auprc_ppre_ypre": 0.8943537824287375,
|
| 74 |
+
"auroc_pext_yext": 1.0,
|
| 75 |
+
"auprc_pext_yext": 1.0,
|
| 76 |
+
"auroc_phase_yretrieve": 0.900375939849624,
|
| 77 |
+
"auprc_phase_yretrieve": 0.8455552074868606,
|
| 78 |
+
"f1_phase_yretrieve": 0.6436781609195402,
|
| 79 |
+
"auroc_phase_yready": 0.9035600726777198,
|
| 80 |
+
"auprc_phase_yready": 0.7799738121388438,
|
| 81 |
+
"f1_phase_yready": 0.5896414342629482,
|
| 82 |
+
"baseline_auroc_door_yext": 0.0,
|
| 83 |
+
"baseline_auprc_door_yext": 0.1327805535676393,
|
| 84 |
+
"baseline_auroc_time_yext": 1.0,
|
| 85 |
+
"baseline_auprc_time_yext": 1.0,
|
| 86 |
+
"baseline_auroc_whole_vis_yext": 0.9203938115330521,
|
| 87 |
+
"baseline_auprc_whole_vis_yext": 0.888952798412559,
|
| 88 |
+
"pre_ready_open_more_increases_pext": 2.0,
|
| 89 |
+
"pre_ready_open_more_trials": 2.0,
|
| 90 |
+
"pre_ready_hold_open_increases_pext": 0.0,
|
| 91 |
+
"pre_ready_hold_open_trials": 2.0,
|
| 92 |
+
"pre_ready_extract_success": 0.0,
|
| 93 |
+
"pre_ready_extract_trials": 2.0,
|
| 94 |
+
"pre_ready_wait_extract_success": 0.0,
|
| 95 |
+
"pre_ready_wait_trials": 2.0,
|
| 96 |
+
"post_ready_extract_success": 2.0,
|
| 97 |
+
"post_ready_extract_trials": 2.0,
|
| 98 |
+
"post_ready_open_more_low_gain": 1.0,
|
| 99 |
+
"post_ready_open_more_trials": 2.0,
|
| 100 |
+
"post_ready_hold_open_low_gain": 1.0,
|
| 101 |
+
"post_ready_hold_open_trials": 2.0
|
| 102 |
+
},
|
| 103 |
+
"single_switch_rate": 1.0,
|
| 104 |
+
"reversion_rate": 0.0,
|
| 105 |
+
"ordering_ok_rate": 1.0
|
| 106 |
+
}
|
artifacts/results/metric_iter22_ep1_pregrasp_repair/templates.json
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"template_mode": "per_episode",
|
| 3 |
+
"template_episode": "episode1",
|
| 4 |
+
"template_frames": {
|
| 5 |
+
"pregrasp": 233,
|
| 6 |
+
"grasp": 238,
|
| 7 |
+
"right_close": 96,
|
| 8 |
+
"right_open": 149,
|
| 9 |
+
"approach": [
|
| 10 |
+
208,
|
| 11 |
+
213,
|
| 12 |
+
218,
|
| 13 |
+
223,
|
| 14 |
+
228,
|
| 15 |
+
233,
|
| 16 |
+
236
|
| 17 |
+
],
|
| 18 |
+
"retreat": [
|
| 19 |
+
243,
|
| 20 |
+
248,
|
| 21 |
+
253,
|
| 22 |
+
258,
|
| 23 |
+
268,
|
| 24 |
+
278,
|
| 25 |
+
288,
|
| 26 |
+
293,
|
| 27 |
+
298
|
| 28 |
+
]
|
| 29 |
+
},
|
| 30 |
+
"templates": {
|
| 31 |
+
"approach_rel_poses": [
|
| 32 |
+
[
|
| 33 |
+
-0.36245508353905986,
|
| 34 |
+
0.0836113657065195,
|
| 35 |
+
0.13725238901315362,
|
| 36 |
+
0.6415420900574104,
|
| 37 |
+
0.6402432100023456,
|
| 38 |
+
0.30041430863400326,
|
| 39 |
+
0.29709194182713144
|
| 40 |
+
],
|
| 41 |
+
[
|
| 42 |
+
-0.34738865009656433,
|
| 43 |
+
0.08507865136091547,
|
| 44 |
+
0.1298340574841772,
|
| 45 |
+
0.6356541773702851,
|
| 46 |
+
0.6351472860878979,
|
| 47 |
+
0.31179297602371386,
|
| 48 |
+
0.30873424149122125
|
| 49 |
+
],
|
| 50 |
+
[
|
| 51 |
+
-0.289833896953664,
|
| 52 |
+
0.09006675142633891,
|
| 53 |
+
0.1007337562722821,
|
| 54 |
+
0.6116820288651007,
|
| 55 |
+
0.6120308334529039,
|
| 56 |
+
0.35606267862709184,
|
| 57 |
+
0.35282109256012206
|
| 58 |
+
],
|
| 59 |
+
[
|
| 60 |
+
-0.22959350407648904,
|
| 61 |
+
0.09517184245706051,
|
| 62 |
+
0.07070743658999779,
|
| 63 |
+
0.5834227929504305,
|
| 64 |
+
0.5835597005266273,
|
| 65 |
+
0.4008544326202859,
|
| 66 |
+
0.397984477631805
|
| 67 |
+
],
|
| 68 |
+
[
|
| 69 |
+
-0.17165833273980532,
|
| 70 |
+
0.10009537980103722,
|
| 71 |
+
0.04194181672817909,
|
| 72 |
+
0.5531857251933899,
|
| 73 |
+
0.5530388872528774,
|
| 74 |
+
0.44172133174187284,
|
| 75 |
+
0.4393356435716874
|
| 76 |
+
],
|
| 77 |
+
[
|
| 78 |
+
-0.1231460174213749,
|
| 79 |
+
0.09969612051577048,
|
| 80 |
+
0.01265825170527135,
|
| 81 |
+
0.5311584890422428,
|
| 82 |
+
0.5227175780787313,
|
| 83 |
+
0.46572774144064183,
|
| 84 |
+
0.4772155319543421
|
| 85 |
+
],
|
| 86 |
+
[
|
| 87 |
+
-0.09027581380427976,
|
| 88 |
+
0.10692156426404792,
|
| 89 |
+
0.0018343185084412905,
|
| 90 |
+
0.505481557848821,
|
| 91 |
+
0.5048378746297203,
|
| 92 |
+
0.49555117097958495,
|
| 93 |
+
0.49402039629436145
|
| 94 |
+
]
|
| 95 |
+
],
|
| 96 |
+
"pregrasp_rel_pose": [
|
| 97 |
+
-0.1231460174213749,
|
| 98 |
+
0.09969612051577048,
|
| 99 |
+
0.01265825170527135,
|
| 100 |
+
0.5311584890422428,
|
| 101 |
+
0.5227175780787313,
|
| 102 |
+
0.46572774144064183,
|
| 103 |
+
0.4772155319543421
|
| 104 |
+
],
|
| 105 |
+
"grasp_rel_pose": [
|
| 106 |
+
-0.10036508073821429,
|
| 107 |
+
0.08741720728235974,
|
| 108 |
+
-0.02078270392085768,
|
| 109 |
+
0.5514328324227972,
|
| 110 |
+
0.5030620556550104,
|
| 111 |
+
0.4473662127869575,
|
| 112 |
+
0.49265999547657746
|
| 113 |
+
],
|
| 114 |
+
"retreat_rel_poses": [
|
| 115 |
+
[
|
| 116 |
+
0.1402307152748108,
|
| 117 |
+
0.06349289417266846,
|
| 118 |
+
0.2952132225036621,
|
| 119 |
+
0.16023066264463862,
|
| 120 |
+
0.6891299324690295,
|
| 121 |
+
0.6887792187473888,
|
| 122 |
+
0.1581431590219048
|
| 123 |
+
],
|
| 124 |
+
[
|
| 125 |
+
0.114012211561203,
|
| 126 |
+
-0.015882685780525208,
|
| 127 |
+
0.30751562118530273,
|
| 128 |
+
0.16025755264957176,
|
| 129 |
+
0.6891621502401655,
|
| 130 |
+
0.688718632107023,
|
| 131 |
+
0.1582393544089225
|
| 132 |
+
],
|
| 133 |
+
[
|
| 134 |
+
0.08392333984375,
|
| 135 |
+
-0.1057267040014267,
|
| 136 |
+
0.3217874765396118,
|
| 137 |
+
0.160221448632837,
|
| 138 |
+
0.6889863825807692,
|
| 139 |
+
0.6888883329455286,
|
| 140 |
+
0.15830261131071563
|
| 141 |
+
],
|
| 142 |
+
[
|
| 143 |
+
0.06033626198768616,
|
| 144 |
+
-0.17559631168842316,
|
| 145 |
+
0.33280396461486816,
|
| 146 |
+
0.16034800946895866,
|
| 147 |
+
0.6887454833038534,
|
| 148 |
+
0.6890855277947168,
|
| 149 |
+
0.1583644861443395
|
| 150 |
+
],
|
| 151 |
+
[
|
| 152 |
+
0.05752289295196533,
|
| 153 |
+
-0.18496546149253845,
|
| 154 |
+
0.38399529457092285,
|
| 155 |
+
0.1613262847578106,
|
| 156 |
+
0.6887548377197392,
|
| 157 |
+
0.6892198731455383,
|
| 158 |
+
0.1567372636776133
|
| 159 |
+
],
|
| 160 |
+
[
|
| 161 |
+
0.05758163332939148,
|
| 162 |
+
-0.1864495724439621,
|
| 163 |
+
0.5771888494491577,
|
| 164 |
+
0.1604210189327871,
|
| 165 |
+
0.6892041738984471,
|
| 166 |
+
0.6888083990813172,
|
| 167 |
+
0.1574982308489793
|
| 168 |
+
],
|
| 169 |
+
[
|
| 170 |
+
0.07197123765945435,
|
| 171 |
+
-0.1565917730331421,
|
| 172 |
+
0.6011577844619751,
|
| 173 |
+
0.1603302270475677,
|
| 174 |
+
0.6887327645907958,
|
| 175 |
+
0.6892655108761903,
|
| 176 |
+
0.15765295046582292
|
| 177 |
+
],
|
| 178 |
+
[
|
| 179 |
+
0.11050841212272644,
|
| 180 |
+
-0.07776785641908646,
|
| 181 |
+
0.60198974609375,
|
| 182 |
+
0.1599628978766199,
|
| 183 |
+
0.6889541929620641,
|
| 184 |
+
0.6891167348186555,
|
| 185 |
+
0.1577089632702597
|
| 186 |
+
],
|
| 187 |
+
[
|
| 188 |
+
0.08477449417114258,
|
| 189 |
+
-0.06145069748163223,
|
| 190 |
+
0.4819430112838745,
|
| 191 |
+
0.15302119788446777,
|
| 192 |
+
0.8682446871188412,
|
| 193 |
+
0.46903469053007496,
|
| 194 |
+
0.05236540238807523
|
| 195 |
+
]
|
| 196 |
+
],
|
| 197 |
+
"grasp_local_center": [
|
| 198 |
+
-0.10036508073821429,
|
| 199 |
+
0.08741720728235974,
|
| 200 |
+
-0.02078270392085768
|
| 201 |
+
],
|
| 202 |
+
"grasp_region_extents": [
|
| 203 |
+
0.03,
|
| 204 |
+
0.015,
|
| 205 |
+
0.004
|
| 206 |
+
],
|
| 207 |
+
"retriever_home_joints": [
|
| 208 |
+
1.9109265849692747e-06,
|
| 209 |
+
0.17527583241462708,
|
| 210 |
+
4.563004040392116e-06,
|
| 211 |
+
-0.8731929659843445,
|
| 212 |
+
1.0853158528334461e-05,
|
| 213 |
+
1.221557378768921,
|
| 214 |
+
0.7853907346725464
|
| 215 |
+
],
|
| 216 |
+
"hold_open_angle": 0.7280260324478149,
|
| 217 |
+
"open_more_delta": 0.12,
|
| 218 |
+
"reference_tray_height": 1.0471735000610352,
|
| 219 |
+
"mask_handle_ids": [
|
| 220 |
+
226
|
| 221 |
+
]
|
| 222 |
+
}
|
| 223 |
+
}
|
artifacts/results/metric_iter22_ep1_pregrasp_repair/templates.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0e45e3e2905677398379a48aebb36080e3f78bed249db66d295f60525f19e9e8
|
| 3 |
+
size 2179
|
artifacts/results/metric_iter22_ep1_pregrasp_repair/visualizations/README.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Visualizations
|
| 2 |
+
|
| 3 |
+
- `episode1_visibility_focus.gif`: three-view visibility montage over dense frames 123-163.
|
| 4 |
+
- `episode1_path_quality_focus.gif`: path-quality montage over dense frames 127-215.
|
| 5 |
+
- `episode1_all_metrics.gif`: full episode overlay GIF over dense frames 0-311, sampled every 2 frames.
|
| 6 |
+
- `frames/visibility_focus/`: per-frame PNGs with scene overlays, x-ray projections, and tray-mask views.
|
| 7 |
+
- `frames/path_quality_focus/`: per-frame PNGs with demo wrist trails plus planned pregrasp/grasp/retreat path overlays.
|
| 8 |
+
- `frames/all_metrics/`: per-frame PNGs with the episode-wide metric bars and phase banner.
|
| 9 |
+
|
| 10 |
+
Legend highlights:
|
| 11 |
+
- Visibility: blue = sampled tray surface, magenta = sampled grasp region, green = depth-consistent visible grasp samples.
|
| 12 |
+
- Path quality: cyan/purple = recent left/right demo wrist trails, yellow = pregrasp, orange = grasp, green = retreat / extraction path.
|
| 13 |
+
- All metrics: red banner = reveal phase, green banner = retrieve phase.
|
artifacts/results/metric_iter22_ep1_pregrasp_repair/visualizations/episode1_all_metrics.gif
ADDED
|
Git LFS Details
|
artifacts/results/metric_iter22_ep1_pregrasp_repair/visualizations/episode1_path_quality_focus.gif
ADDED
|
Git LFS Details
|
artifacts/results/metric_iter22_ep1_pregrasp_repair/visualizations/episode1_visibility_focus.gif
ADDED
|
Git LFS Details
|
code/rr_label_study/oven_study.py
CHANGED
|
@@ -11,11 +11,12 @@ import numpy as np
|
|
| 11 |
import pandas as pd
|
| 12 |
from natsort import natsorted
|
| 13 |
from PIL import Image
|
| 14 |
-
from pyrep.const import ConfigurationPathAlgorithms as Algos
|
| 15 |
from pyrep.errors import ConfigurationPathError
|
| 16 |
from pyrep.objects.joint import Joint
|
| 17 |
from pyrep.objects.object import Object
|
| 18 |
from pyrep.objects.shape import Shape
|
|
|
|
| 19 |
from rlbench.action_modes.action_mode import BimanualJointPositionActionMode
|
| 20 |
from rlbench.action_modes.gripper_action_modes import BimanualDiscrete
|
| 21 |
from rlbench.backend.const import DEPTH_SCALE
|
|
@@ -62,10 +63,14 @@ DEFAULT_PLAN_MAX_TIME_MS = 10
|
|
| 62 |
DEFAULT_PLAN_TRIALS_PER_GOAL = 4
|
| 63 |
DEFAULT_PLAN_ATTEMPTS = 2
|
| 64 |
DEFAULT_PLAN_MIN_SUCCESSES = 2
|
|
|
|
|
|
|
| 65 |
DEFAULT_READY_PERSISTENCE = 3
|
| 66 |
DEFAULT_RETRIEVE_PERSISTENCE = 3
|
| 67 |
DEFAULT_PREGRASP_PERSISTENCE = 3
|
| 68 |
-
DEFAULT_MASK_HANDLE_COUNT =
|
|
|
|
|
|
|
| 69 |
|
| 70 |
|
| 71 |
@dataclass
|
|
@@ -105,6 +110,7 @@ class MotionTemplates:
|
|
| 105 |
retreat_rel_poses: List[np.ndarray]
|
| 106 |
grasp_local_center: np.ndarray
|
| 107 |
grasp_region_extents: np.ndarray
|
|
|
|
| 108 |
hold_open_angle: float
|
| 109 |
open_more_delta: float
|
| 110 |
reference_tray_height: float
|
|
@@ -119,6 +125,7 @@ class MotionTemplates:
|
|
| 119 |
"retreat_rel_poses": [pose.tolist() for pose in self.retreat_rel_poses],
|
| 120 |
"grasp_local_center": self.grasp_local_center.tolist(),
|
| 121 |
"grasp_region_extents": self.grasp_region_extents.tolist(),
|
|
|
|
| 122 |
"hold_open_angle": float(self.hold_open_angle),
|
| 123 |
"open_more_delta": float(self.open_more_delta),
|
| 124 |
"reference_tray_height": float(self.reference_tray_height),
|
|
@@ -136,6 +143,9 @@ class MotionTemplates:
|
|
| 136 |
],
|
| 137 |
grasp_local_center=np.asarray(payload["grasp_local_center"], dtype=np.float64),
|
| 138 |
grasp_region_extents=np.asarray(payload["grasp_region_extents"], dtype=np.float64),
|
|
|
|
|
|
|
|
|
|
| 139 |
hold_open_angle=float(payload["hold_open_angle"]),
|
| 140 |
open_more_delta=float(payload["open_more_delta"]),
|
| 141 |
reference_tray_height=float(payload["reference_tray_height"]),
|
|
@@ -563,6 +573,101 @@ def _local_to_world(reference_pose: Sequence[float], point_local: Sequence[float
|
|
| 563 |
return (reference @ point)[:3]
|
| 564 |
|
| 565 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 566 |
def _first_transition(demo: Demo, side: str, open_to_closed: bool) -> int:
|
| 567 |
values = [getattr(demo[i], side).gripper_open for i in range(len(demo))]
|
| 568 |
for i in range(1, len(values)):
|
|
@@ -687,6 +792,7 @@ def _derive_templates(dataset_root: Path, template_episode_dir: Path) -> Tuple[M
|
|
| 687 |
retreat_rel_poses=retreat_rel_poses,
|
| 688 |
grasp_local_center=grasp_local_center,
|
| 689 |
grasp_region_extents=np.array([0.03, 0.015, 0.004], dtype=np.float64),
|
|
|
|
| 690 |
hold_open_angle=float(states[right_open].door_angle),
|
| 691 |
open_more_delta=max(
|
| 692 |
0.12,
|
|
@@ -733,22 +839,59 @@ def _project_points(points_world: np.ndarray, extrinsics: np.ndarray, intrinsics
|
|
| 733 |
|
| 734 |
|
| 735 |
def _sample_grasp_points(templates: MotionTemplates, tray_pose: np.ndarray) -> np.ndarray:
|
| 736 |
-
|
| 737 |
-
|
| 738 |
-
|
| 739 |
-
|
| 740 |
-
|
| 741 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 742 |
return np.array([_local_to_world(tray_pose, point) for point in points_local], dtype=np.float64)
|
| 743 |
|
| 744 |
|
| 745 |
def _sample_full_tray_points(tray_pose: np.ndarray) -> np.ndarray:
|
| 746 |
-
|
| 747 |
-
|
| 748 |
-
|
| 749 |
-
|
| 750 |
-
|
| 751 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 752 |
return np.array([_local_to_world(tray_pose, point) for point in points_local], dtype=np.float64)
|
| 753 |
|
| 754 |
|
|
@@ -761,37 +904,95 @@ def _infer_tray_mask_handle_ids(
|
|
| 761 |
max_handles: int = DEFAULT_MASK_HANDLE_COUNT,
|
| 762 |
) -> List[int]:
|
| 763 |
counts: Dict[int, int] = {}
|
|
|
|
| 764 |
unique_frames = sorted({int(frame_index) for frame_index in reference_frames})
|
| 765 |
for frame_index in unique_frames:
|
| 766 |
cache.step_to(frame_index)
|
| 767 |
grasp_points = _sample_grasp_points(templates, Shape("tray").get_pose())
|
|
|
|
| 768 |
for camera_name in FULL_CAMERA_SET:
|
| 769 |
mask = _load_mask(episode_dir, frame_index, camera_name)
|
| 770 |
-
extrinsics =
|
| 771 |
-
|
| 772 |
-
|
| 773 |
-
|
| 774 |
-
|
| 775 |
-
|
| 776 |
-
|
| 777 |
-
|
| 778 |
-
|
| 779 |
-
|
| 780 |
-
|
| 781 |
-
|
| 782 |
-
|
| 783 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 784 |
return []
|
| 785 |
-
ranked = sorted(
|
| 786 |
top_count = ranked[0][1]
|
| 787 |
selected = [
|
| 788 |
handle
|
| 789 |
for handle, count in ranked
|
| 790 |
-
if count >= max(
|
| 791 |
][:max_handles]
|
| 792 |
return selected if selected else [ranked[0][0]]
|
| 793 |
|
| 794 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 795 |
def _mask_visibility_ratio(
|
| 796 |
points_world: np.ndarray,
|
| 797 |
mask: np.ndarray,
|
|
@@ -963,6 +1164,43 @@ def _pregrasp_candidates(tray_pose: np.ndarray, templates: MotionTemplates) -> L
|
|
| 963 |
return _dedupe_pose_list(candidates)
|
| 964 |
|
| 965 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 966 |
def _extract_sequence_poses(
|
| 967 |
tray_pose: np.ndarray, task_base_pose: np.ndarray, templates: MotionTemplates
|
| 968 |
) -> List[np.ndarray]:
|
|
@@ -1002,6 +1240,100 @@ def _extraction_progress_score(current_height: float, templates: MotionTemplates
|
|
| 1002 |
return float(min(1.0, 0.8 + margin / 0.12))
|
| 1003 |
|
| 1004 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1005 |
def _pregrasp_score_and_success(task, templates: MotionTemplates) -> Tuple[float, bool]:
|
| 1006 |
tray = Shape("tray")
|
| 1007 |
if any(
|
|
@@ -1009,68 +1341,37 @@ def _pregrasp_score_and_success(task, templates: MotionTemplates) -> Tuple[float
|
|
| 1009 |
for grasped in task._scene.robot.left_gripper.get_grasped_objects()
|
| 1010 |
):
|
| 1011 |
return 1.0, True
|
| 1012 |
-
tray_pose =
|
| 1013 |
-
|
| 1014 |
-
|
| 1015 |
-
|
| 1016 |
-
|
| 1017 |
-
|
| 1018 |
-
|
| 1019 |
-
|
| 1020 |
-
|
| 1021 |
-
|
| 1022 |
-
|
| 1023 |
-
|
| 1024 |
-
|
| 1025 |
-
|
| 1026 |
-
|
| 1027 |
-
|
| 1028 |
-
|
| 1029 |
-
|
| 1030 |
-
|
| 1031 |
-
|
| 1032 |
-
|
| 1033 |
-
|
| 1034 |
-
|
| 1035 |
-
|
| 1036 |
-
|
| 1037 |
-
|
| 1038 |
-
|
| 1039 |
-
|
| 1040 |
-
|
| 1041 |
-
|
| 1042 |
-
|
| 1043 |
-
task._scene,
|
| 1044 |
-
"left",
|
| 1045 |
-
target_pose,
|
| 1046 |
-
ignore_collisions=False,
|
| 1047 |
-
)
|
| 1048 |
-
if path is None or not np.isfinite(length):
|
| 1049 |
-
stage_scores.append(0.25 * proximity)
|
| 1050 |
-
stage_success = False
|
| 1051 |
-
break
|
| 1052 |
-
|
| 1053 |
-
planner_score = reliability * math.exp(-length / DEFAULT_PATH_SCALE)
|
| 1054 |
-
stage_scores.append(0.7 * planner_score + 0.3 * proximity)
|
| 1055 |
-
if not _plan_is_reliable(reliability):
|
| 1056 |
-
stage_success = False
|
| 1057 |
-
break
|
| 1058 |
-
|
| 1059 |
-
path.set_to_end(disable_dynamics=True)
|
| 1060 |
-
task._pyrep.step()
|
| 1061 |
-
reliable_stage_count += 1
|
| 1062 |
-
|
| 1063 |
-
if stage_scores:
|
| 1064 |
-
normalized_stage_score = float(np.mean(stage_scores))
|
| 1065 |
-
best = max(best, 0.35 * progress + 0.65 * normalized_stage_score)
|
| 1066 |
-
else:
|
| 1067 |
-
best = max(best, 0.75 * progress)
|
| 1068 |
-
|
| 1069 |
-
if stage_success and reliable_stage_count == len(corridor_targets[start_index:]):
|
| 1070 |
-
success = True
|
| 1071 |
-
finally:
|
| 1072 |
-
_restore_snapshot(task, snapshot)
|
| 1073 |
-
return best, success
|
| 1074 |
|
| 1075 |
|
| 1076 |
def _extract_score_and_success(task, templates: MotionTemplates) -> Tuple[float, bool]:
|
|
@@ -1171,15 +1472,15 @@ def _frame_metrics(
|
|
| 1171 |
full_tray_points = _sample_full_tray_points(frame_state.tray_pose)
|
| 1172 |
camera_values: Dict[str, Dict[str, float]] = {}
|
| 1173 |
for camera_name in FULL_CAMERA_SET:
|
| 1174 |
-
|
| 1175 |
-
|
| 1176 |
-
|
| 1177 |
camera_values[camera_name] = {
|
| 1178 |
-
"grasp_visibility":
|
| 1179 |
-
grasp_points,
|
| 1180 |
),
|
| 1181 |
-
"tray_visibility":
|
| 1182 |
-
full_tray_points,
|
| 1183 |
),
|
| 1184 |
}
|
| 1185 |
|
|
@@ -1213,6 +1514,39 @@ def _compute_frame_row_isolated(
|
|
| 1213 |
return rows[0]
|
| 1214 |
|
| 1215 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1216 |
def _compute_frame_rows_sequential(
|
| 1217 |
episode_dir: Path,
|
| 1218 |
demo: Demo,
|
|
@@ -1230,38 +1564,37 @@ def _compute_frame_rows_sequential(
|
|
| 1230 |
cache.step_to(frame_index)
|
| 1231 |
frame_snapshot = cache.snapshot()
|
| 1232 |
state = cache.current_state()
|
| 1233 |
-
|
| 1234 |
-
pregrasp_progress, pregrasp_distance = _pregrasp_progress_and_distance(
|
| 1235 |
-
np.asarray(state.left_gripper_pose, dtype=np.float64),
|
| 1236 |
-
np.asarray(state.tray_pose, dtype=np.float64),
|
| 1237 |
-
templates,
|
| 1238 |
-
)
|
| 1239 |
-
p_pre, y_pre = _pregrasp_score_and_success(task, templates)
|
| 1240 |
-
p_ext, y_ext = _extract_score_and_success(task, templates)
|
| 1241 |
-
rows.append(
|
| 1242 |
-
{
|
| 1243 |
-
"frame_index": frame_index,
|
| 1244 |
-
"time_norm": frame_index / max(1, len(demo) - 1),
|
| 1245 |
-
"door_angle": state.door_angle,
|
| 1246 |
-
"right_gripper_open": state.right_gripper_open,
|
| 1247 |
-
"left_gripper_open": state.left_gripper_open,
|
| 1248 |
-
"pregrasp_progress": pregrasp_progress,
|
| 1249 |
-
"pregrasp_distance": pregrasp_distance,
|
| 1250 |
-
"p_pre": p_pre,
|
| 1251 |
-
"p_ext": p_ext,
|
| 1252 |
-
"y_pre_raw": float(bool(y_pre)),
|
| 1253 |
-
"y_ext_raw": float(bool(y_ext)),
|
| 1254 |
-
"y_pre": float(bool(y_pre)),
|
| 1255 |
-
"y_ext": float(bool(y_ext)),
|
| 1256 |
-
**visibility,
|
| 1257 |
-
}
|
| 1258 |
-
)
|
| 1259 |
cache.restore(frame_snapshot)
|
| 1260 |
return rows
|
| 1261 |
finally:
|
| 1262 |
env.shutdown()
|
| 1263 |
|
| 1264 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1265 |
def _safe_auc(y_true: np.ndarray, y_score: np.ndarray) -> float:
|
| 1266 |
if len(np.unique(y_true)) < 2:
|
| 1267 |
return float("nan")
|
|
@@ -1334,22 +1667,23 @@ def _annotate_phase_columns(frame_df: pd.DataFrame) -> pd.DataFrame:
|
|
| 1334 |
pregrasp_speed = -np.gradient(pregrasp_distance, DEMO_DT)
|
| 1335 |
frame_df["pregrasp_speed"] = pregrasp_speed
|
| 1336 |
|
| 1337 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1338 |
y_pre_binary = _monotone_after_first(
|
| 1339 |
_persistent_rise_mask(y_pre_seed, DEFAULT_PREGRASP_PERSISTENCE)
|
| 1340 |
)
|
| 1341 |
y_ext_binary = _monotone_after_first(
|
| 1342 |
_persistent_rise_mask(y_ext_raw, DEFAULT_READY_PERSISTENCE)
|
| 1343 |
)
|
| 1344 |
-
frame_df["y_pre_progress_seed"] =
|
| 1345 |
frame_df["y_pre"] = y_pre_binary.astype(float)
|
| 1346 |
frame_df["y_ext"] = y_ext_binary.astype(float)
|
| 1347 |
|
| 1348 |
-
frame_df["phase_score"] = np.clip(
|
| 1349 |
-
0.7 * pregrasp_progress + 0.3 * frame_df["p_pre"].to_numpy(dtype=float),
|
| 1350 |
-
0.0,
|
| 1351 |
-
1.0,
|
| 1352 |
-
)
|
| 1353 |
approach_active = (
|
| 1354 |
(pregrasp_progress >= DEFAULT_APPROACH_PROGRESS_TAU)
|
| 1355 |
& (pregrasp_speed >= DEFAULT_APPROACH_SPEED_TAU)
|
|
@@ -1373,7 +1707,7 @@ def _annotate_phase_columns(frame_df: pd.DataFrame) -> pd.DataFrame:
|
|
| 1373 |
frame_df["y_ready"] = _monotone_after_first(ready_seed).astype(float)
|
| 1374 |
|
| 1375 |
phase_seed = _persistent_rise_mask(
|
| 1376 |
-
frame_df["
|
| 1377 |
DEFAULT_RETRIEVE_PERSISTENCE,
|
| 1378 |
)
|
| 1379 |
frame_df["phase_switch"] = _monotone_after_first(phase_seed).astype(float)
|
|
@@ -1698,7 +2032,8 @@ def run_study(
|
|
| 1698 |
episode_offset: int = 0,
|
| 1699 |
template_episode_index: int = 0,
|
| 1700 |
episode_indices: Optional[Sequence[int]] = None,
|
| 1701 |
-
independent_replay: bool =
|
|
|
|
| 1702 |
) -> Dict[str, object]:
|
| 1703 |
dataset_path = Path(dataset_root)
|
| 1704 |
result_path = Path(result_dir)
|
|
@@ -1740,27 +2075,58 @@ def run_study(
|
|
| 1740 |
)
|
| 1741 |
|
| 1742 |
template_episode_dir = all_episode_dirs[template_episode_index]
|
| 1743 |
-
|
| 1744 |
-
|
| 1745 |
-
json.
|
| 1746 |
-
|
| 1747 |
-
|
| 1748 |
-
|
| 1749 |
-
|
| 1750 |
-
|
| 1751 |
-
|
| 1752 |
-
|
| 1753 |
-
|
| 1754 |
-
|
| 1755 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1756 |
|
| 1757 |
episode_metrics: List[Dict[str, object]] = []
|
| 1758 |
for episode_dir in episode_dirs:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1759 |
artifacts = _analyze_episode(
|
| 1760 |
dataset_path,
|
| 1761 |
episode_dir,
|
| 1762 |
-
|
| 1763 |
-
|
| 1764 |
checkpoint_stride=checkpoint_stride,
|
| 1765 |
max_frames=max_frames,
|
| 1766 |
independent_replay=independent_replay,
|
|
@@ -1808,7 +2174,20 @@ def main(argv: Optional[Sequence[str]] = None) -> int:
|
|
| 1808 |
parser.add_argument("--episode-offset", type=int, default=0)
|
| 1809 |
parser.add_argument("--template-episode-index", type=int, default=0)
|
| 1810 |
parser.add_argument("--episode-indices", type=_parse_episode_indices)
|
| 1811 |
-
parser.add_argument(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1812 |
args = parser.parse_args(argv)
|
| 1813 |
|
| 1814 |
summary = run_study(
|
|
@@ -1821,6 +2200,7 @@ def main(argv: Optional[Sequence[str]] = None) -> int:
|
|
| 1821 |
template_episode_index=args.template_episode_index,
|
| 1822 |
episode_indices=args.episode_indices,
|
| 1823 |
independent_replay=args.independent_replay,
|
|
|
|
| 1824 |
)
|
| 1825 |
print(json.dumps(summary, indent=2))
|
| 1826 |
return 0
|
|
|
|
| 11 |
import pandas as pd
|
| 12 |
from natsort import natsorted
|
| 13 |
from PIL import Image
|
| 14 |
+
from pyrep.const import ConfigurationPathAlgorithms as Algos, ObjectType
|
| 15 |
from pyrep.errors import ConfigurationPathError
|
| 16 |
from pyrep.objects.joint import Joint
|
| 17 |
from pyrep.objects.object import Object
|
| 18 |
from pyrep.objects.shape import Shape
|
| 19 |
+
from pyrep.objects.vision_sensor import VisionSensor
|
| 20 |
from rlbench.action_modes.action_mode import BimanualJointPositionActionMode
|
| 21 |
from rlbench.action_modes.gripper_action_modes import BimanualDiscrete
|
| 22 |
from rlbench.backend.const import DEPTH_SCALE
|
|
|
|
| 63 |
DEFAULT_PLAN_TRIALS_PER_GOAL = 4
|
| 64 |
DEFAULT_PLAN_ATTEMPTS = 2
|
| 65 |
DEFAULT_PLAN_MIN_SUCCESSES = 2
|
| 66 |
+
DEFAULT_PREGRASP_ASSIST_PATH_SCALE = 3.0
|
| 67 |
+
DEFAULT_DOOR_ASSIST_MIN_OPEN_DELTA = 0.01
|
| 68 |
DEFAULT_READY_PERSISTENCE = 3
|
| 69 |
DEFAULT_RETRIEVE_PERSISTENCE = 3
|
| 70 |
DEFAULT_PREGRASP_PERSISTENCE = 3
|
| 71 |
+
DEFAULT_MASK_HANDLE_COUNT = 8
|
| 72 |
+
DEFAULT_VISIBILITY_POINT_TOLERANCE = 0.03
|
| 73 |
+
DEFAULT_GRASP_SECONDARY_FACE_RATIO = 0.35
|
| 74 |
|
| 75 |
|
| 76 |
@dataclass
|
|
|
|
| 110 |
retreat_rel_poses: List[np.ndarray]
|
| 111 |
grasp_local_center: np.ndarray
|
| 112 |
grasp_region_extents: np.ndarray
|
| 113 |
+
retriever_home_joints: np.ndarray
|
| 114 |
hold_open_angle: float
|
| 115 |
open_more_delta: float
|
| 116 |
reference_tray_height: float
|
|
|
|
| 125 |
"retreat_rel_poses": [pose.tolist() for pose in self.retreat_rel_poses],
|
| 126 |
"grasp_local_center": self.grasp_local_center.tolist(),
|
| 127 |
"grasp_region_extents": self.grasp_region_extents.tolist(),
|
| 128 |
+
"retriever_home_joints": self.retriever_home_joints.tolist(),
|
| 129 |
"hold_open_angle": float(self.hold_open_angle),
|
| 130 |
"open_more_delta": float(self.open_more_delta),
|
| 131 |
"reference_tray_height": float(self.reference_tray_height),
|
|
|
|
| 143 |
],
|
| 144 |
grasp_local_center=np.asarray(payload["grasp_local_center"], dtype=np.float64),
|
| 145 |
grasp_region_extents=np.asarray(payload["grasp_region_extents"], dtype=np.float64),
|
| 146 |
+
retriever_home_joints=np.asarray(
|
| 147 |
+
payload.get("retriever_home_joints", [0.0] * 7), dtype=np.float64
|
| 148 |
+
),
|
| 149 |
hold_open_angle=float(payload["hold_open_angle"]),
|
| 150 |
open_more_delta=float(payload["open_more_delta"]),
|
| 151 |
reference_tray_height=float(payload["reference_tray_height"]),
|
|
|
|
| 573 |
return (reference @ point)[:3]
|
| 574 |
|
| 575 |
|
| 576 |
+
def _tray_bbox_local() -> np.ndarray:
|
| 577 |
+
return np.asarray(Shape("tray").get_bounding_box(), dtype=np.float64)
|
| 578 |
+
|
| 579 |
+
|
| 580 |
+
def _dedupe_points(points: Iterable[np.ndarray], precision: int = 5) -> List[np.ndarray]:
|
| 581 |
+
unique: List[np.ndarray] = []
|
| 582 |
+
seen = set()
|
| 583 |
+
for point in points:
|
| 584 |
+
array = np.asarray(point, dtype=np.float64)
|
| 585 |
+
key = tuple(np.round(array, precision))
|
| 586 |
+
if key in seen:
|
| 587 |
+
continue
|
| 588 |
+
seen.add(key)
|
| 589 |
+
unique.append(array)
|
| 590 |
+
return unique
|
| 591 |
+
|
| 592 |
+
|
| 593 |
+
def _sample_box_face_points_local(
|
| 594 |
+
bbox: np.ndarray,
|
| 595 |
+
axis: int,
|
| 596 |
+
face_index: int,
|
| 597 |
+
center: np.ndarray,
|
| 598 |
+
extents: np.ndarray,
|
| 599 |
+
primary_samples: int,
|
| 600 |
+
secondary_samples: int,
|
| 601 |
+
) -> List[np.ndarray]:
|
| 602 |
+
center = np.asarray(center, dtype=np.float64)
|
| 603 |
+
extents = np.asarray(extents, dtype=np.float64)
|
| 604 |
+
tangent_axes = [idx for idx in range(3) if idx != axis]
|
| 605 |
+
tangent_ranges: List[np.ndarray] = []
|
| 606 |
+
for tangent_idx, tangent_axis in enumerate(tangent_axes):
|
| 607 |
+
lo = max(bbox[tangent_axis * 2], center[tangent_axis] - extents[tangent_axis])
|
| 608 |
+
hi = min(bbox[tangent_axis * 2 + 1], center[tangent_axis] + extents[tangent_axis])
|
| 609 |
+
if hi < lo:
|
| 610 |
+
lo = hi = float(np.clip(center[tangent_axis], bbox[tangent_axis * 2], bbox[tangent_axis * 2 + 1]))
|
| 611 |
+
tangent_ranges.append(
|
| 612 |
+
np.linspace(lo, hi, primary_samples if tangent_idx == 0 else secondary_samples)
|
| 613 |
+
)
|
| 614 |
+
|
| 615 |
+
face_value = bbox[axis * 2 + face_index]
|
| 616 |
+
points: List[np.ndarray] = []
|
| 617 |
+
for first in tangent_ranges[0]:
|
| 618 |
+
for second in tangent_ranges[1]:
|
| 619 |
+
point = center.copy()
|
| 620 |
+
point[axis] = face_value
|
| 621 |
+
point[tangent_axes[0]] = first
|
| 622 |
+
point[tangent_axes[1]] = second
|
| 623 |
+
points.append(point)
|
| 624 |
+
return points
|
| 625 |
+
|
| 626 |
+
|
| 627 |
+
def _grasp_surface_specs(
|
| 628 |
+
templates: MotionTemplates, bbox: np.ndarray
|
| 629 |
+
) -> Tuple[np.ndarray, List[Tuple[int, int]]]:
|
| 630 |
+
center = np.asarray(templates.grasp_local_center, dtype=np.float64).copy()
|
| 631 |
+
mins = np.asarray([bbox[0], bbox[2], bbox[4]], dtype=np.float64)
|
| 632 |
+
maxs = np.asarray([bbox[1], bbox[3], bbox[5]], dtype=np.float64)
|
| 633 |
+
center = np.clip(center, mins, maxs)
|
| 634 |
+
|
| 635 |
+
approach = (
|
| 636 |
+
np.asarray(templates.grasp_rel_pose[:3], dtype=np.float64)
|
| 637 |
+
- np.asarray(templates.pregrasp_rel_pose[:3], dtype=np.float64)
|
| 638 |
+
)
|
| 639 |
+
if np.linalg.norm(approach) < 1e-6:
|
| 640 |
+
approach = center - 0.5 * (mins + maxs)
|
| 641 |
+
|
| 642 |
+
ranked_axes = np.argsort(-np.abs(approach))
|
| 643 |
+
primary_mag = float(abs(approach[ranked_axes[0]])) if len(ranked_axes) else 0.0
|
| 644 |
+
specs: List[Tuple[int, int]] = []
|
| 645 |
+
for rank, axis in enumerate(ranked_axes.tolist()):
|
| 646 |
+
magnitude = float(abs(approach[axis]))
|
| 647 |
+
if magnitude < 1e-6:
|
| 648 |
+
continue
|
| 649 |
+
if rank > 0 and magnitude < max(1e-6, primary_mag * DEFAULT_GRASP_SECONDARY_FACE_RATIO):
|
| 650 |
+
continue
|
| 651 |
+
move_positive = float(approach[axis]) >= 0.0
|
| 652 |
+
face_index = 0 if move_positive else 1
|
| 653 |
+
spec = (int(axis), int(face_index))
|
| 654 |
+
if spec not in specs:
|
| 655 |
+
specs.append(spec)
|
| 656 |
+
if len(specs) >= 2:
|
| 657 |
+
break
|
| 658 |
+
|
| 659 |
+
if specs:
|
| 660 |
+
return center, specs
|
| 661 |
+
|
| 662 |
+
# Fallback to the face closest to the demonstrated grasp center.
|
| 663 |
+
face_distances = []
|
| 664 |
+
for axis in range(3):
|
| 665 |
+
face_distances.append((abs(center[axis] - bbox[axis * 2]), axis, 0))
|
| 666 |
+
face_distances.append((abs(center[axis] - bbox[axis * 2 + 1]), axis, 1))
|
| 667 |
+
_, axis, face_index = min(face_distances, key=lambda item: item[0])
|
| 668 |
+
return center, [(int(axis), int(face_index))]
|
| 669 |
+
|
| 670 |
+
|
| 671 |
def _first_transition(demo: Demo, side: str, open_to_closed: bool) -> int:
|
| 672 |
values = [getattr(demo[i], side).gripper_open for i in range(len(demo))]
|
| 673 |
for i in range(1, len(values)):
|
|
|
|
| 792 |
retreat_rel_poses=retreat_rel_poses,
|
| 793 |
grasp_local_center=grasp_local_center,
|
| 794 |
grasp_region_extents=np.array([0.03, 0.015, 0.004], dtype=np.float64),
|
| 795 |
+
retriever_home_joints=np.asarray(demo[0].left.joint_positions, dtype=np.float64),
|
| 796 |
hold_open_angle=float(states[right_open].door_angle),
|
| 797 |
open_more_delta=max(
|
| 798 |
0.12,
|
|
|
|
| 839 |
|
| 840 |
|
| 841 |
def _sample_grasp_points(templates: MotionTemplates, tray_pose: np.ndarray) -> np.ndarray:
|
| 842 |
+
bbox = _tray_bbox_local()
|
| 843 |
+
center, face_specs = _grasp_surface_specs(templates, bbox)
|
| 844 |
+
extents = np.asarray(templates.grasp_region_extents, dtype=np.float64)
|
| 845 |
+
points_local: List[np.ndarray] = []
|
| 846 |
+
for axis, face_index in face_specs:
|
| 847 |
+
points_local.extend(
|
| 848 |
+
_sample_box_face_points_local(
|
| 849 |
+
bbox=bbox,
|
| 850 |
+
axis=axis,
|
| 851 |
+
face_index=face_index,
|
| 852 |
+
center=center,
|
| 853 |
+
extents=extents,
|
| 854 |
+
primary_samples=9,
|
| 855 |
+
secondary_samples=5,
|
| 856 |
+
)
|
| 857 |
+
)
|
| 858 |
+
points_local = _dedupe_points(points_local)
|
| 859 |
return np.array([_local_to_world(tray_pose, point) for point in points_local], dtype=np.float64)
|
| 860 |
|
| 861 |
|
| 862 |
def _sample_full_tray_points(tray_pose: np.ndarray) -> np.ndarray:
|
| 863 |
+
bbox = _tray_bbox_local()
|
| 864 |
+
center = np.asarray(
|
| 865 |
+
[
|
| 866 |
+
0.5 * (bbox[0] + bbox[1]),
|
| 867 |
+
0.5 * (bbox[2] + bbox[3]),
|
| 868 |
+
0.5 * (bbox[4] + bbox[5]),
|
| 869 |
+
],
|
| 870 |
+
dtype=np.float64,
|
| 871 |
+
)
|
| 872 |
+
extents = np.asarray(
|
| 873 |
+
[
|
| 874 |
+
0.5 * (bbox[1] - bbox[0]),
|
| 875 |
+
0.5 * (bbox[3] - bbox[2]),
|
| 876 |
+
0.5 * (bbox[5] - bbox[4]),
|
| 877 |
+
],
|
| 878 |
+
dtype=np.float64,
|
| 879 |
+
)
|
| 880 |
+
points_local: List[np.ndarray] = []
|
| 881 |
+
for axis in range(3):
|
| 882 |
+
for face_index in [0, 1]:
|
| 883 |
+
points_local.extend(
|
| 884 |
+
_sample_box_face_points_local(
|
| 885 |
+
bbox=bbox,
|
| 886 |
+
axis=axis,
|
| 887 |
+
face_index=face_index,
|
| 888 |
+
center=center,
|
| 889 |
+
extents=extents,
|
| 890 |
+
primary_samples=8,
|
| 891 |
+
secondary_samples=8,
|
| 892 |
+
)
|
| 893 |
+
)
|
| 894 |
+
points_local = _dedupe_points(points_local)
|
| 895 |
return np.array([_local_to_world(tray_pose, point) for point in points_local], dtype=np.float64)
|
| 896 |
|
| 897 |
|
|
|
|
| 904 |
max_handles: int = DEFAULT_MASK_HANDLE_COUNT,
|
| 905 |
) -> List[int]:
|
| 906 |
counts: Dict[int, int] = {}
|
| 907 |
+
fallback_counts: Dict[int, int] = {}
|
| 908 |
unique_frames = sorted({int(frame_index) for frame_index in reference_frames})
|
| 909 |
for frame_index in unique_frames:
|
| 910 |
cache.step_to(frame_index)
|
| 911 |
grasp_points = _sample_grasp_points(templates, Shape("tray").get_pose())
|
| 912 |
+
tray_points = _sample_full_tray_points(Shape("tray").get_pose())
|
| 913 |
for camera_name in FULL_CAMERA_SET:
|
| 914 |
mask = _load_mask(episode_dir, frame_index, camera_name)
|
| 915 |
+
point_cloud, extrinsics, intrinsics = _camera_point_cloud(
|
| 916 |
+
episode_dir, demo, frame_index, camera_name
|
| 917 |
+
)
|
| 918 |
+
for points_world in [grasp_points, tray_points]:
|
| 919 |
+
projected, visible = _visibility_projection_details(
|
| 920 |
+
points_world, point_cloud, extrinsics, intrinsics
|
| 921 |
+
)
|
| 922 |
+
for px, py in visible:
|
| 923 |
+
handle = int(mask[py, px])
|
| 924 |
+
if handle != 0:
|
| 925 |
+
counts[handle] = counts.get(handle, 0) + 1
|
| 926 |
+
for px, py in projected:
|
| 927 |
+
handle = int(mask[py, px])
|
| 928 |
+
if handle != 0:
|
| 929 |
+
fallback_counts[handle] = fallback_counts.get(handle, 0) + 1
|
| 930 |
+
|
| 931 |
+
ranked_source = counts if counts else fallback_counts
|
| 932 |
+
if not ranked_source:
|
| 933 |
return []
|
| 934 |
+
ranked = sorted(ranked_source.items(), key=lambda item: item[1], reverse=True)
|
| 935 |
top_count = ranked[0][1]
|
| 936 |
selected = [
|
| 937 |
handle
|
| 938 |
for handle, count in ranked
|
| 939 |
+
if count >= max(2, int(math.ceil(top_count * 0.15)))
|
| 940 |
][:max_handles]
|
| 941 |
return selected if selected else [ranked[0][0]]
|
| 942 |
|
| 943 |
|
| 944 |
+
def _camera_point_cloud(
|
| 945 |
+
episode_dir: Path,
|
| 946 |
+
demo: Demo,
|
| 947 |
+
frame_index: int,
|
| 948 |
+
camera_name: str,
|
| 949 |
+
) -> Tuple[np.ndarray, np.ndarray, np.ndarray]:
|
| 950 |
+
depth = _load_depth_meters(episode_dir, demo, frame_index, camera_name)
|
| 951 |
+
extrinsics = demo[frame_index].misc[f"{camera_name}_camera_extrinsics"]
|
| 952 |
+
intrinsics = demo[frame_index].misc[f"{camera_name}_camera_intrinsics"]
|
| 953 |
+
point_cloud = VisionSensor.pointcloud_from_depth_and_camera_params(
|
| 954 |
+
depth, extrinsics, intrinsics
|
| 955 |
+
)
|
| 956 |
+
return point_cloud, extrinsics, intrinsics
|
| 957 |
+
|
| 958 |
+
|
| 959 |
+
def _visibility_projection_details(
|
| 960 |
+
points_world: np.ndarray,
|
| 961 |
+
point_cloud_world: np.ndarray,
|
| 962 |
+
extrinsics: np.ndarray,
|
| 963 |
+
intrinsics: np.ndarray,
|
| 964 |
+
tolerance: float = DEFAULT_VISIBILITY_POINT_TOLERANCE,
|
| 965 |
+
) -> Tuple[List[Tuple[int, int]], List[Tuple[int, int]]]:
|
| 966 |
+
uv, camera_xyz = _project_points(points_world, extrinsics, intrinsics)
|
| 967 |
+
height, width = point_cloud_world.shape[:2]
|
| 968 |
+
projected: List[Tuple[int, int]] = []
|
| 969 |
+
visible: List[Tuple[int, int]] = []
|
| 970 |
+
for point_world, (u, v), (_, _, camera_depth) in zip(points_world, uv, camera_xyz):
|
| 971 |
+
if camera_depth <= 0 or not (0 <= u < width and 0 <= v < height):
|
| 972 |
+
continue
|
| 973 |
+
px = min(max(int(round(float(u))), 0), width - 1)
|
| 974 |
+
py = min(max(int(round(float(v))), 0), height - 1)
|
| 975 |
+
projected.append((px, py))
|
| 976 |
+
scene_point = np.asarray(point_cloud_world[py, px], dtype=np.float64)
|
| 977 |
+
if not np.isfinite(scene_point).all():
|
| 978 |
+
continue
|
| 979 |
+
if float(np.linalg.norm(scene_point - point_world)) <= tolerance:
|
| 980 |
+
visible.append((px, py))
|
| 981 |
+
return projected, visible
|
| 982 |
+
|
| 983 |
+
|
| 984 |
+
def _point_visibility_ratio_from_point_cloud(
|
| 985 |
+
points_world: np.ndarray,
|
| 986 |
+
point_cloud_world: np.ndarray,
|
| 987 |
+
extrinsics: np.ndarray,
|
| 988 |
+
intrinsics: np.ndarray,
|
| 989 |
+
) -> float:
|
| 990 |
+
projected, visible = _visibility_projection_details(
|
| 991 |
+
points_world, point_cloud_world, extrinsics, intrinsics
|
| 992 |
+
)
|
| 993 |
+
return float(len(visible) / len(projected)) if projected else 0.0
|
| 994 |
+
|
| 995 |
+
|
| 996 |
def _mask_visibility_ratio(
|
| 997 |
points_world: np.ndarray,
|
| 998 |
mask: np.ndarray,
|
|
|
|
| 1164 |
return _dedupe_pose_list(candidates)
|
| 1165 |
|
| 1166 |
|
| 1167 |
+
def _late_pregrasp_goal_poses(
|
| 1168 |
+
tray_pose: np.ndarray, templates: MotionTemplates
|
| 1169 |
+
) -> List[np.ndarray]:
|
| 1170 |
+
final_goal = _apply_relative_pose(tray_pose, templates.pregrasp_rel_pose)
|
| 1171 |
+
goals = [final_goal]
|
| 1172 |
+
for dx in (-0.02, 0.02):
|
| 1173 |
+
perturbed = final_goal.copy()
|
| 1174 |
+
perturbed[0] += dx
|
| 1175 |
+
goals.append(perturbed)
|
| 1176 |
+
return _dedupe_pose_list(goals)
|
| 1177 |
+
|
| 1178 |
+
|
| 1179 |
+
def _pregrasp_corridor_rel_poses(templates: MotionTemplates) -> List[np.ndarray]:
|
| 1180 |
+
rel_poses = [
|
| 1181 |
+
np.asarray(rel_pose, dtype=np.float64)
|
| 1182 |
+
for rel_pose in templates.approach_rel_poses
|
| 1183 |
+
]
|
| 1184 |
+
if not rel_poses:
|
| 1185 |
+
return [np.asarray(templates.pregrasp_rel_pose, dtype=np.float64)]
|
| 1186 |
+
|
| 1187 |
+
pregrasp_rel_pose = np.asarray(templates.pregrasp_rel_pose, dtype=np.float64)
|
| 1188 |
+
stop_index = int(
|
| 1189 |
+
np.argmin(
|
| 1190 |
+
[
|
| 1191 |
+
float(np.linalg.norm(rel_pose[:3] - pregrasp_rel_pose[:3]))
|
| 1192 |
+
for rel_pose in rel_poses
|
| 1193 |
+
]
|
| 1194 |
+
)
|
| 1195 |
+
)
|
| 1196 |
+
corridor = rel_poses[: stop_index + 1]
|
| 1197 |
+
if not corridor:
|
| 1198 |
+
corridor = [pregrasp_rel_pose]
|
| 1199 |
+
elif float(np.linalg.norm(corridor[-1][:3] - pregrasp_rel_pose[:3])) > 1e-6:
|
| 1200 |
+
corridor.append(pregrasp_rel_pose)
|
| 1201 |
+
return _dedupe_pose_list(corridor)
|
| 1202 |
+
|
| 1203 |
+
|
| 1204 |
def _extract_sequence_poses(
|
| 1205 |
tray_pose: np.ndarray, task_base_pose: np.ndarray, templates: MotionTemplates
|
| 1206 |
) -> List[np.ndarray]:
|
|
|
|
| 1240 |
return float(min(1.0, 0.8 + margin / 0.12))
|
| 1241 |
|
| 1242 |
|
| 1243 |
+
def _arm_external_collision_names(scene, arm_name: str) -> List[str]:
|
| 1244 |
+
arm = scene.robot.left_arm if arm_name == "left" else scene.robot.right_arm
|
| 1245 |
+
gripper = scene.robot.left_gripper if arm_name == "left" else scene.robot.right_gripper
|
| 1246 |
+
robot_shapes = {
|
| 1247 |
+
shape.get_name() for shape in arm.get_objects_in_tree(object_type=ObjectType.SHAPE)
|
| 1248 |
+
}
|
| 1249 |
+
grasped = {obj.get_name() for obj in gripper.get_grasped_objects()}
|
| 1250 |
+
collisions: List[str] = []
|
| 1251 |
+
for shape in scene.pyrep.get_objects_in_tree(object_type=ObjectType.SHAPE):
|
| 1252 |
+
name = shape.get_name()
|
| 1253 |
+
if not shape.is_collidable() or name in robot_shapes or name in grasped:
|
| 1254 |
+
continue
|
| 1255 |
+
try:
|
| 1256 |
+
if arm.check_arm_collision(shape):
|
| 1257 |
+
collisions.append(name)
|
| 1258 |
+
except Exception:
|
| 1259 |
+
continue
|
| 1260 |
+
return sorted(set(collisions))
|
| 1261 |
+
|
| 1262 |
+
|
| 1263 |
+
def _allowed_door_collision_names(scene) -> set:
|
| 1264 |
+
allowed = set()
|
| 1265 |
+
for shape in scene.pyrep.get_objects_in_tree(object_type=ObjectType.SHAPE):
|
| 1266 |
+
name = shape.get_name()
|
| 1267 |
+
if name.startswith("oven_door") or name.startswith("oven_knob"):
|
| 1268 |
+
allowed.add(name)
|
| 1269 |
+
return allowed
|
| 1270 |
+
|
| 1271 |
+
|
| 1272 |
+
def _execute_path_with_collision_trace(task, path, arm_name: str) -> List[str]:
|
| 1273 |
+
collisions = set()
|
| 1274 |
+
path.set_to_start(disable_dynamics=True)
|
| 1275 |
+
task._pyrep.step()
|
| 1276 |
+
steps = 0
|
| 1277 |
+
while True:
|
| 1278 |
+
done = path.step()
|
| 1279 |
+
task._pyrep.step()
|
| 1280 |
+
collisions.update(_arm_external_collision_names(task._scene, arm_name))
|
| 1281 |
+
steps += 1
|
| 1282 |
+
if done or steps > 400:
|
| 1283 |
+
break
|
| 1284 |
+
return sorted(collisions)
|
| 1285 |
+
|
| 1286 |
+
|
| 1287 |
+
def _door_assisted_pregrasp_score(
|
| 1288 |
+
task,
|
| 1289 |
+
target_pose: np.ndarray,
|
| 1290 |
+
base_snapshot: Optional[SimulatorSnapshot] = None,
|
| 1291 |
+
before_angle: Optional[float] = None,
|
| 1292 |
+
allowed_collisions: Optional[set] = None,
|
| 1293 |
+
) -> Tuple[float, bool]:
|
| 1294 |
+
snapshot = base_snapshot if base_snapshot is not None else _capture_snapshot(task)
|
| 1295 |
+
try:
|
| 1296 |
+
if before_angle is None:
|
| 1297 |
+
before_angle = float(Joint("oven_door_joint").get_joint_position())
|
| 1298 |
+
path = _plan_path(
|
| 1299 |
+
task._scene,
|
| 1300 |
+
"left",
|
| 1301 |
+
target_pose,
|
| 1302 |
+
ignore_collisions=True,
|
| 1303 |
+
)
|
| 1304 |
+
length = _path_length(path)
|
| 1305 |
+
if path is None or not np.isfinite(length):
|
| 1306 |
+
return 0.0, False
|
| 1307 |
+
|
| 1308 |
+
collision_names = _execute_path_with_collision_trace(task, path, "left")
|
| 1309 |
+
allowed = (
|
| 1310 |
+
_allowed_door_collision_names(task._scene)
|
| 1311 |
+
if allowed_collisions is None
|
| 1312 |
+
else allowed_collisions
|
| 1313 |
+
)
|
| 1314 |
+
bad_collisions = [name for name in collision_names if name not in allowed]
|
| 1315 |
+
door_open_delta = before_angle - float(Joint("oven_door_joint").get_joint_position())
|
| 1316 |
+
if bad_collisions or door_open_delta <= DEFAULT_DOOR_ASSIST_MIN_OPEN_DELTA:
|
| 1317 |
+
return 0.0, False
|
| 1318 |
+
|
| 1319 |
+
base_score = float(
|
| 1320 |
+
math.exp(-float(length) / DEFAULT_PREGRASP_ASSIST_PATH_SCALE)
|
| 1321 |
+
)
|
| 1322 |
+
strict_path = _plan_path(
|
| 1323 |
+
task._scene,
|
| 1324 |
+
"left",
|
| 1325 |
+
target_pose,
|
| 1326 |
+
ignore_collisions=False,
|
| 1327 |
+
)
|
| 1328 |
+
strict_length = _path_length(strict_path)
|
| 1329 |
+
if strict_path is not None and np.isfinite(strict_length):
|
| 1330 |
+
return float(0.5 + 0.5 * base_score), False
|
| 1331 |
+
|
| 1332 |
+
return base_score, False
|
| 1333 |
+
finally:
|
| 1334 |
+
_restore_snapshot(task, snapshot)
|
| 1335 |
+
|
| 1336 |
+
|
| 1337 |
def _pregrasp_score_and_success(task, templates: MotionTemplates) -> Tuple[float, bool]:
|
| 1338 |
tray = Shape("tray")
|
| 1339 |
if any(
|
|
|
|
| 1341 |
for grasped in task._scene.robot.left_gripper.get_grasped_objects()
|
| 1342 |
):
|
| 1343 |
return 1.0, True
|
| 1344 |
+
tray_pose = tray.get_pose()
|
| 1345 |
+
goal_poses = _late_pregrasp_goal_poses(tray_pose, templates)
|
| 1346 |
+
best_score = 0.0
|
| 1347 |
+
best_success = False
|
| 1348 |
+
base_snapshot: Optional[SimulatorSnapshot] = None
|
| 1349 |
+
before_angle = float(Joint("oven_door_joint").get_joint_position())
|
| 1350 |
+
allowed_collisions: Optional[set] = None
|
| 1351 |
+
for target_pose in goal_poses:
|
| 1352 |
+
path = _plan_path(
|
| 1353 |
+
task._scene,
|
| 1354 |
+
"left",
|
| 1355 |
+
target_pose,
|
| 1356 |
+
ignore_collisions=False,
|
| 1357 |
+
)
|
| 1358 |
+
length = _path_length(path)
|
| 1359 |
+
if path is not None and np.isfinite(length):
|
| 1360 |
+
return 1.0, True
|
| 1361 |
+
if base_snapshot is None:
|
| 1362 |
+
base_snapshot = _capture_snapshot(task)
|
| 1363 |
+
allowed_collisions = _allowed_door_collision_names(task._scene)
|
| 1364 |
+
assisted_score, assisted_success = _door_assisted_pregrasp_score(
|
| 1365 |
+
task,
|
| 1366 |
+
target_pose,
|
| 1367 |
+
base_snapshot=base_snapshot,
|
| 1368 |
+
before_angle=before_angle,
|
| 1369 |
+
allowed_collisions=allowed_collisions,
|
| 1370 |
+
)
|
| 1371 |
+
if assisted_score > best_score:
|
| 1372 |
+
best_score = assisted_score
|
| 1373 |
+
best_success = best_success or assisted_success
|
| 1374 |
+
return float(best_score), bool(best_success)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1375 |
|
| 1376 |
|
| 1377 |
def _extract_score_and_success(task, templates: MotionTemplates) -> Tuple[float, bool]:
|
|
|
|
| 1472 |
full_tray_points = _sample_full_tray_points(frame_state.tray_pose)
|
| 1473 |
camera_values: Dict[str, Dict[str, float]] = {}
|
| 1474 |
for camera_name in FULL_CAMERA_SET:
|
| 1475 |
+
point_cloud, extrinsics, intrinsics = _camera_point_cloud(
|
| 1476 |
+
episode_dir, demo, frame_state.frame_index, camera_name
|
| 1477 |
+
)
|
| 1478 |
camera_values[camera_name] = {
|
| 1479 |
+
"grasp_visibility": _point_visibility_ratio_from_point_cloud(
|
| 1480 |
+
grasp_points, point_cloud, extrinsics, intrinsics
|
| 1481 |
),
|
| 1482 |
+
"tray_visibility": _point_visibility_ratio_from_point_cloud(
|
| 1483 |
+
full_tray_points, point_cloud, extrinsics, intrinsics
|
| 1484 |
),
|
| 1485 |
}
|
| 1486 |
|
|
|
|
| 1514 |
return rows[0]
|
| 1515 |
|
| 1516 |
|
| 1517 |
+
def _build_frame_row(
|
| 1518 |
+
episode_dir: Path,
|
| 1519 |
+
demo: Demo,
|
| 1520 |
+
templates: MotionTemplates,
|
| 1521 |
+
task,
|
| 1522 |
+
state: ReplayState,
|
| 1523 |
+
) -> Dict[str, float]:
|
| 1524 |
+
visibility = _frame_metrics(episode_dir, demo, state, templates)
|
| 1525 |
+
pregrasp_progress, pregrasp_distance = _pregrasp_progress_and_distance(
|
| 1526 |
+
np.asarray(state.left_gripper_pose, dtype=np.float64),
|
| 1527 |
+
np.asarray(state.tray_pose, dtype=np.float64),
|
| 1528 |
+
templates,
|
| 1529 |
+
)
|
| 1530 |
+
p_pre, y_pre = _pregrasp_score_and_success(task, templates)
|
| 1531 |
+
p_ext, y_ext = _extract_score_and_success(task, templates)
|
| 1532 |
+
return {
|
| 1533 |
+
"frame_index": int(state.frame_index),
|
| 1534 |
+
"time_norm": float(state.frame_index / max(1, len(demo) - 1)),
|
| 1535 |
+
"door_angle": float(state.door_angle),
|
| 1536 |
+
"right_gripper_open": float(state.right_gripper_open),
|
| 1537 |
+
"left_gripper_open": float(state.left_gripper_open),
|
| 1538 |
+
"pregrasp_progress": float(pregrasp_progress),
|
| 1539 |
+
"pregrasp_distance": float(pregrasp_distance),
|
| 1540 |
+
"p_pre": float(p_pre),
|
| 1541 |
+
"p_ext": float(p_ext),
|
| 1542 |
+
"y_pre_raw": float(bool(y_pre)),
|
| 1543 |
+
"y_ext_raw": float(bool(y_ext)),
|
| 1544 |
+
"y_pre": float(bool(y_pre)),
|
| 1545 |
+
"y_ext": float(bool(y_ext)),
|
| 1546 |
+
**visibility,
|
| 1547 |
+
}
|
| 1548 |
+
|
| 1549 |
+
|
| 1550 |
def _compute_frame_rows_sequential(
|
| 1551 |
episode_dir: Path,
|
| 1552 |
demo: Demo,
|
|
|
|
| 1564 |
cache.step_to(frame_index)
|
| 1565 |
frame_snapshot = cache.snapshot()
|
| 1566 |
state = cache.current_state()
|
| 1567 |
+
rows.append(_build_frame_row(episode_dir, demo, templates, task, state))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1568 |
cache.restore(frame_snapshot)
|
| 1569 |
return rows
|
| 1570 |
finally:
|
| 1571 |
env.shutdown()
|
| 1572 |
|
| 1573 |
|
| 1574 |
+
def _compute_frame_rows_independent(
|
| 1575 |
+
episode_dir: Path,
|
| 1576 |
+
demo: Demo,
|
| 1577 |
+
templates: MotionTemplates,
|
| 1578 |
+
checkpoint_stride: int,
|
| 1579 |
+
frame_indices: Sequence[int],
|
| 1580 |
+
) -> List[Dict[str, float]]:
|
| 1581 |
+
env = _launch_replay_env()
|
| 1582 |
+
try:
|
| 1583 |
+
task = env.get_task(BimanualTakeTrayOutOfOven)
|
| 1584 |
+
cache = ReplayCache(task, demo, checkpoint_stride=checkpoint_stride)
|
| 1585 |
+
cache.reset()
|
| 1586 |
+
initial_snapshot = cache.snapshot()
|
| 1587 |
+
rows: List[Dict[str, float]] = []
|
| 1588 |
+
for frame_index in sorted({int(index) for index in frame_indices}):
|
| 1589 |
+
cache.restore_to_index(initial_snapshot, 0)
|
| 1590 |
+
cache.step_to(frame_index)
|
| 1591 |
+
state = cache.current_state()
|
| 1592 |
+
rows.append(_build_frame_row(episode_dir, demo, templates, task, state))
|
| 1593 |
+
return rows
|
| 1594 |
+
finally:
|
| 1595 |
+
env.shutdown()
|
| 1596 |
+
|
| 1597 |
+
|
| 1598 |
def _safe_auc(y_true: np.ndarray, y_score: np.ndarray) -> float:
|
| 1599 |
if len(np.unique(y_true)) < 2:
|
| 1600 |
return float("nan")
|
|
|
|
| 1667 |
pregrasp_speed = -np.gradient(pregrasp_distance, DEMO_DT)
|
| 1668 |
frame_df["pregrasp_speed"] = pregrasp_speed
|
| 1669 |
|
| 1670 |
+
pregrasp_progress_seed = pregrasp_progress >= DEFAULT_PREGRASP_LABEL_PROGRESS_TAU
|
| 1671 |
+
y_pre_seed = (
|
| 1672 |
+
frame_df["y_pre_raw"].to_numpy(dtype=bool)
|
| 1673 |
+
if "y_pre_raw" in frame_df
|
| 1674 |
+
else pregrasp_progress_seed
|
| 1675 |
+
)
|
| 1676 |
y_pre_binary = _monotone_after_first(
|
| 1677 |
_persistent_rise_mask(y_pre_seed, DEFAULT_PREGRASP_PERSISTENCE)
|
| 1678 |
)
|
| 1679 |
y_ext_binary = _monotone_after_first(
|
| 1680 |
_persistent_rise_mask(y_ext_raw, DEFAULT_READY_PERSISTENCE)
|
| 1681 |
)
|
| 1682 |
+
frame_df["y_pre_progress_seed"] = pregrasp_progress_seed.astype(float)
|
| 1683 |
frame_df["y_pre"] = y_pre_binary.astype(float)
|
| 1684 |
frame_df["y_ext"] = y_ext_binary.astype(float)
|
| 1685 |
|
| 1686 |
+
frame_df["phase_score"] = np.clip(frame_df["p_pre"].to_numpy(dtype=float), 0.0, 1.0)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1687 |
approach_active = (
|
| 1688 |
(pregrasp_progress >= DEFAULT_APPROACH_PROGRESS_TAU)
|
| 1689 |
& (pregrasp_speed >= DEFAULT_APPROACH_SPEED_TAU)
|
|
|
|
| 1707 |
frame_df["y_ready"] = _monotone_after_first(ready_seed).astype(float)
|
| 1708 |
|
| 1709 |
phase_seed = _persistent_rise_mask(
|
| 1710 |
+
frame_df["p_pre"].to_numpy(dtype=float) >= DEFAULT_PHASE_SCORE_TAU,
|
| 1711 |
DEFAULT_RETRIEVE_PERSISTENCE,
|
| 1712 |
)
|
| 1713 |
frame_df["phase_switch"] = _monotone_after_first(phase_seed).astype(float)
|
|
|
|
| 2032 |
episode_offset: int = 0,
|
| 2033 |
template_episode_index: int = 0,
|
| 2034 |
episode_indices: Optional[Sequence[int]] = None,
|
| 2035 |
+
independent_replay: bool = True,
|
| 2036 |
+
per_episode_templates: bool = False,
|
| 2037 |
) -> Dict[str, object]:
|
| 2038 |
dataset_path = Path(dataset_root)
|
| 2039 |
result_path = Path(result_dir)
|
|
|
|
| 2075 |
)
|
| 2076 |
|
| 2077 |
template_episode_dir = all_episode_dirs[template_episode_index]
|
| 2078 |
+
if not per_episode_templates:
|
| 2079 |
+
templates, template_frames = _derive_templates(dataset_path, template_episode_dir)
|
| 2080 |
+
with result_path.joinpath("templates.json").open("w", encoding="utf-8") as handle:
|
| 2081 |
+
json.dump(
|
| 2082 |
+
{
|
| 2083 |
+
"template_mode": "shared",
|
| 2084 |
+
"templates": templates.to_json(),
|
| 2085 |
+
"template_episode": template_episode_dir.name,
|
| 2086 |
+
"template_frames": template_frames,
|
| 2087 |
+
"episode_offset": episode_offset,
|
| 2088 |
+
"selected_episode_indices": selected_episode_indices,
|
| 2089 |
+
},
|
| 2090 |
+
handle,
|
| 2091 |
+
indent=2,
|
| 2092 |
+
)
|
| 2093 |
+
else:
|
| 2094 |
+
with result_path.joinpath("templates.json").open("w", encoding="utf-8") as handle:
|
| 2095 |
+
json.dump(
|
| 2096 |
+
{
|
| 2097 |
+
"template_mode": "per_episode",
|
| 2098 |
+
"episode_offset": episode_offset,
|
| 2099 |
+
"selected_episode_indices": selected_episode_indices,
|
| 2100 |
+
},
|
| 2101 |
+
handle,
|
| 2102 |
+
indent=2,
|
| 2103 |
+
)
|
| 2104 |
|
| 2105 |
episode_metrics: List[Dict[str, object]] = []
|
| 2106 |
for episode_dir in episode_dirs:
|
| 2107 |
+
if per_episode_templates:
|
| 2108 |
+
episode_templates, episode_template_frames = _derive_templates(dataset_path, episode_dir)
|
| 2109 |
+
with result_path.joinpath(f"{episode_dir.name}.templates.json").open(
|
| 2110 |
+
"w", encoding="utf-8"
|
| 2111 |
+
) as handle:
|
| 2112 |
+
json.dump(
|
| 2113 |
+
{
|
| 2114 |
+
"template_mode": "per_episode",
|
| 2115 |
+
"templates": episode_templates.to_json(),
|
| 2116 |
+
"template_episode": episode_dir.name,
|
| 2117 |
+
"template_frames": episode_template_frames,
|
| 2118 |
+
},
|
| 2119 |
+
handle,
|
| 2120 |
+
indent=2,
|
| 2121 |
+
)
|
| 2122 |
+
else:
|
| 2123 |
+
episode_templates = templates
|
| 2124 |
+
episode_template_frames = template_frames
|
| 2125 |
artifacts = _analyze_episode(
|
| 2126 |
dataset_path,
|
| 2127 |
episode_dir,
|
| 2128 |
+
episode_templates,
|
| 2129 |
+
episode_template_frames,
|
| 2130 |
checkpoint_stride=checkpoint_stride,
|
| 2131 |
max_frames=max_frames,
|
| 2132 |
independent_replay=independent_replay,
|
|
|
|
| 2174 |
parser.add_argument("--episode-offset", type=int, default=0)
|
| 2175 |
parser.add_argument("--template-episode-index", type=int, default=0)
|
| 2176 |
parser.add_argument("--episode-indices", type=_parse_episode_indices)
|
| 2177 |
+
parser.add_argument(
|
| 2178 |
+
"--independent-replay",
|
| 2179 |
+
dest="independent_replay",
|
| 2180 |
+
action="store_true",
|
| 2181 |
+
help="Replay each frame from the demo start/checkpoint to avoid simulator drift.",
|
| 2182 |
+
)
|
| 2183 |
+
parser.add_argument(
|
| 2184 |
+
"--sequential-replay",
|
| 2185 |
+
dest="independent_replay",
|
| 2186 |
+
action="store_false",
|
| 2187 |
+
help="Reuse the live replay state across frames for speed at the cost of more drift.",
|
| 2188 |
+
)
|
| 2189 |
+
parser.add_argument("--per-episode-templates", action="store_true")
|
| 2190 |
+
parser.set_defaults(independent_replay=True)
|
| 2191 |
args = parser.parse_args(argv)
|
| 2192 |
|
| 2193 |
summary = run_study(
|
|
|
|
| 2200 |
template_episode_index=args.template_episode_index,
|
| 2201 |
episode_indices=args.episode_indices,
|
| 2202 |
independent_replay=args.independent_replay,
|
| 2203 |
+
per_episode_templates=args.per_episode_templates,
|
| 2204 |
)
|
| 2205 |
print(json.dumps(summary, indent=2))
|
| 2206 |
return 0
|
code/scripts/launch_parallel_oven_label_study.py
CHANGED
|
@@ -105,6 +105,7 @@ def _launch_worker(
|
|
| 105 |
template_episode_index: int,
|
| 106 |
max_frames: Optional[int],
|
| 107 |
independent_replay: bool,
|
|
|
|
| 108 |
thread_count: int,
|
| 109 |
) -> Tuple[subprocess.Popen, subprocess.Popen]:
|
| 110 |
worker_dir.mkdir(parents=True, exist_ok=True)
|
|
@@ -130,8 +131,10 @@ def _launch_worker(
|
|
| 130 |
]
|
| 131 |
if max_frames is not None:
|
| 132 |
command.extend(["--max-frames", str(max_frames)])
|
| 133 |
-
if independent_replay:
|
| 134 |
-
command.append("--
|
|
|
|
|
|
|
| 135 |
|
| 136 |
env = os.environ.copy()
|
| 137 |
env["DISPLAY"] = f":{display_num}"
|
|
@@ -209,7 +212,20 @@ def main(argv: Optional[List[str]] = None) -> int:
|
|
| 209 |
parser.add_argument("--episode-indices")
|
| 210 |
parser.add_argument("--thread-count", type=int, default=1)
|
| 211 |
parser.add_argument("--stagger-seconds", type=float, default=0.5)
|
| 212 |
-
parser.add_argument(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 213 |
args = parser.parse_args(argv)
|
| 214 |
|
| 215 |
dataset_root = Path(args.dataset_root)
|
|
@@ -250,6 +266,7 @@ def main(argv: Optional[List[str]] = None) -> int:
|
|
| 250 |
template_episode_index=args.template_episode_index,
|
| 251 |
max_frames=args.max_frames,
|
| 252 |
independent_replay=args.independent_replay,
|
|
|
|
| 253 |
thread_count=args.thread_count,
|
| 254 |
)
|
| 255 |
workers.append((xvfb, process))
|
|
|
|
| 105 |
template_episode_index: int,
|
| 106 |
max_frames: Optional[int],
|
| 107 |
independent_replay: bool,
|
| 108 |
+
per_episode_templates: bool,
|
| 109 |
thread_count: int,
|
| 110 |
) -> Tuple[subprocess.Popen, subprocess.Popen]:
|
| 111 |
worker_dir.mkdir(parents=True, exist_ok=True)
|
|
|
|
| 131 |
]
|
| 132 |
if max_frames is not None:
|
| 133 |
command.extend(["--max-frames", str(max_frames)])
|
| 134 |
+
if not independent_replay:
|
| 135 |
+
command.append("--sequential-replay")
|
| 136 |
+
if per_episode_templates:
|
| 137 |
+
command.append("--per-episode-templates")
|
| 138 |
|
| 139 |
env = os.environ.copy()
|
| 140 |
env["DISPLAY"] = f":{display_num}"
|
|
|
|
| 212 |
parser.add_argument("--episode-indices")
|
| 213 |
parser.add_argument("--thread-count", type=int, default=1)
|
| 214 |
parser.add_argument("--stagger-seconds", type=float, default=0.5)
|
| 215 |
+
parser.add_argument(
|
| 216 |
+
"--independent-replay",
|
| 217 |
+
dest="independent_replay",
|
| 218 |
+
action="store_true",
|
| 219 |
+
help="Replay each frame independently to avoid simulator drift.",
|
| 220 |
+
)
|
| 221 |
+
parser.add_argument(
|
| 222 |
+
"--sequential-replay",
|
| 223 |
+
dest="independent_replay",
|
| 224 |
+
action="store_false",
|
| 225 |
+
help="Reuse replay state across frames for speed.",
|
| 226 |
+
)
|
| 227 |
+
parser.add_argument("--per-episode-templates", action="store_true")
|
| 228 |
+
parser.set_defaults(independent_replay=True)
|
| 229 |
args = parser.parse_args(argv)
|
| 230 |
|
| 231 |
dataset_root = Path(args.dataset_root)
|
|
|
|
| 266 |
template_episode_index=args.template_episode_index,
|
| 267 |
max_frames=args.max_frames,
|
| 268 |
independent_replay=args.independent_replay,
|
| 269 |
+
per_episode_templates=args.per_episode_templates,
|
| 270 |
thread_count=args.thread_count,
|
| 271 |
)
|
| 272 |
workers.append((xvfb, process))
|
code/scripts/recompute_oven_episode_parallel.py
ADDED
|
@@ -0,0 +1,267 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from pathlib import Path
|
| 2 |
+
import argparse
|
| 3 |
+
import json
|
| 4 |
+
import math
|
| 5 |
+
import os
|
| 6 |
+
import pickle
|
| 7 |
+
import signal
|
| 8 |
+
import subprocess
|
| 9 |
+
import sys
|
| 10 |
+
import time
|
| 11 |
+
from typing import Dict, List, Optional, Sequence, Tuple
|
| 12 |
+
|
| 13 |
+
import numpy as np
|
| 14 |
+
import pandas as pd
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
| 18 |
+
if str(PROJECT_ROOT) not in sys.path:
|
| 19 |
+
sys.path.insert(0, str(PROJECT_ROOT))
|
| 20 |
+
|
| 21 |
+
from rr_label_study.oven_study import (
|
| 22 |
+
_aggregate_summary,
|
| 23 |
+
_annotate_phase_columns,
|
| 24 |
+
_derive_templates,
|
| 25 |
+
_episode_metrics_from_frames,
|
| 26 |
+
_interventional_validity,
|
| 27 |
+
_keyframe_subset,
|
| 28 |
+
_keypoint_discovery,
|
| 29 |
+
_load_demo,
|
| 30 |
+
_load_descriptions,
|
| 31 |
+
)
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
def _launch_xvfb(display_num: int, log_path: Path) -> subprocess.Popen:
|
| 35 |
+
log_handle = log_path.open("w", encoding="utf-8")
|
| 36 |
+
return subprocess.Popen(
|
| 37 |
+
[
|
| 38 |
+
"Xvfb",
|
| 39 |
+
f":{display_num}",
|
| 40 |
+
"-screen",
|
| 41 |
+
"0",
|
| 42 |
+
"1280x1024x24",
|
| 43 |
+
"+extension",
|
| 44 |
+
"GLX",
|
| 45 |
+
"+render",
|
| 46 |
+
"-noreset",
|
| 47 |
+
],
|
| 48 |
+
stdout=log_handle,
|
| 49 |
+
stderr=subprocess.STDOUT,
|
| 50 |
+
start_new_session=True,
|
| 51 |
+
)
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
def _stop_process(process: Optional[subprocess.Popen]) -> None:
|
| 55 |
+
if process is None or process.poll() is not None:
|
| 56 |
+
return
|
| 57 |
+
try:
|
| 58 |
+
os.killpg(process.pid, signal.SIGTERM)
|
| 59 |
+
except ProcessLookupError:
|
| 60 |
+
return
|
| 61 |
+
try:
|
| 62 |
+
process.wait(timeout=10)
|
| 63 |
+
except subprocess.TimeoutExpired:
|
| 64 |
+
try:
|
| 65 |
+
os.killpg(process.pid, signal.SIGKILL)
|
| 66 |
+
except ProcessLookupError:
|
| 67 |
+
pass
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
def _spawn_frame_batch_job(
|
| 71 |
+
display_num: int,
|
| 72 |
+
episode_dir: Path,
|
| 73 |
+
templates_pkl: Path,
|
| 74 |
+
frame_indices: Sequence[int],
|
| 75 |
+
checkpoint_stride: int,
|
| 76 |
+
output_dir: Path,
|
| 77 |
+
) -> subprocess.Popen:
|
| 78 |
+
runtime_dir = Path(f"/tmp/rr_label_study_parallel_display_{display_num}")
|
| 79 |
+
runtime_dir.mkdir(parents=True, exist_ok=True)
|
| 80 |
+
env = os.environ.copy()
|
| 81 |
+
env["DISPLAY"] = f":{display_num}"
|
| 82 |
+
env["COPPELIASIM_ROOT"] = "/workspace/coppelia_sim"
|
| 83 |
+
env["LD_LIBRARY_PATH"] = f"/workspace/coppelia_sim:{env.get('LD_LIBRARY_PATH', '')}"
|
| 84 |
+
env["QT_QPA_PLATFORM_PLUGIN_PATH"] = "/workspace/coppelia_sim"
|
| 85 |
+
env["XDG_RUNTIME_DIR"] = str(runtime_dir)
|
| 86 |
+
env["PYTHONUNBUFFERED"] = "1"
|
| 87 |
+
return subprocess.Popen(
|
| 88 |
+
[
|
| 89 |
+
sys.executable,
|
| 90 |
+
str(PROJECT_ROOT.joinpath("scripts", "run_oven_frame_batch.py")),
|
| 91 |
+
"--episode-dir",
|
| 92 |
+
str(episode_dir),
|
| 93 |
+
"--templates-pkl",
|
| 94 |
+
str(templates_pkl),
|
| 95 |
+
"--frame-indices",
|
| 96 |
+
*[str(frame_index) for frame_index in frame_indices],
|
| 97 |
+
"--checkpoint-stride",
|
| 98 |
+
str(checkpoint_stride),
|
| 99 |
+
"--output-dir",
|
| 100 |
+
str(output_dir),
|
| 101 |
+
"--independent-replay",
|
| 102 |
+
],
|
| 103 |
+
stdout=subprocess.DEVNULL,
|
| 104 |
+
stderr=subprocess.DEVNULL,
|
| 105 |
+
cwd=str(PROJECT_ROOT),
|
| 106 |
+
env=env,
|
| 107 |
+
start_new_session=True,
|
| 108 |
+
)
|
| 109 |
+
|
| 110 |
+
|
| 111 |
+
def _chunk_frame_indices(frame_indices: Sequence[int], num_workers: int) -> List[List[int]]:
|
| 112 |
+
if not frame_indices:
|
| 113 |
+
return []
|
| 114 |
+
worker_count = min(max(1, num_workers), len(frame_indices))
|
| 115 |
+
chunk_size = math.ceil(len(frame_indices) / worker_count)
|
| 116 |
+
chunks: List[List[int]] = []
|
| 117 |
+
for worker_index in range(worker_count):
|
| 118 |
+
start = worker_index * chunk_size
|
| 119 |
+
chunk = list(frame_indices[start : start + chunk_size])
|
| 120 |
+
if chunk:
|
| 121 |
+
chunks.append(chunk)
|
| 122 |
+
return chunks
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
def _collect_rows(frame_json_dir: Path, num_frames: int) -> pd.DataFrame:
|
| 126 |
+
rows: List[Dict[str, float]] = []
|
| 127 |
+
for frame_index in range(num_frames):
|
| 128 |
+
row_path = frame_json_dir.joinpath(f"frame_{frame_index:04d}.json")
|
| 129 |
+
if not row_path.exists():
|
| 130 |
+
raise RuntimeError(f"missing recomputed frame output: {row_path}")
|
| 131 |
+
with row_path.open("r", encoding="utf-8") as handle:
|
| 132 |
+
rows.append(json.load(handle))
|
| 133 |
+
frame_df = pd.DataFrame(rows).sort_values("frame_index").reset_index(drop=True)
|
| 134 |
+
return frame_df
|
| 135 |
+
|
| 136 |
+
|
| 137 |
+
def main() -> int:
|
| 138 |
+
parser = argparse.ArgumentParser()
|
| 139 |
+
parser.add_argument("--dataset-root", required=True)
|
| 140 |
+
parser.add_argument("--episode-dir", required=True)
|
| 141 |
+
parser.add_argument("--output-dir", required=True)
|
| 142 |
+
parser.add_argument("--checkpoint-stride", type=int, default=16)
|
| 143 |
+
parser.add_argument("--num-workers", type=int, default=8)
|
| 144 |
+
parser.add_argument("--base-display", type=int, default=380)
|
| 145 |
+
parser.add_argument("--template-episode-dir")
|
| 146 |
+
parser.add_argument("--stagger-seconds", type=float, default=0.15)
|
| 147 |
+
parser.add_argument("--keep-frame-json", action="store_true")
|
| 148 |
+
args = parser.parse_args()
|
| 149 |
+
|
| 150 |
+
dataset_root = Path(args.dataset_root)
|
| 151 |
+
episode_dir = Path(args.episode_dir)
|
| 152 |
+
output_dir = Path(args.output_dir)
|
| 153 |
+
output_dir.mkdir(parents=True, exist_ok=True)
|
| 154 |
+
|
| 155 |
+
demo = _load_demo(episode_dir)
|
| 156 |
+
descriptions = _load_descriptions(episode_dir)
|
| 157 |
+
num_frames = len(demo)
|
| 158 |
+
template_episode_dir = (
|
| 159 |
+
Path(args.template_episode_dir) if args.template_episode_dir else episode_dir
|
| 160 |
+
)
|
| 161 |
+
templates, template_frames = _derive_templates(dataset_root, template_episode_dir)
|
| 162 |
+
|
| 163 |
+
templates_pkl = output_dir.joinpath("templates.pkl")
|
| 164 |
+
with templates_pkl.open("wb") as handle:
|
| 165 |
+
pickle.dump(templates, handle)
|
| 166 |
+
with output_dir.joinpath("templates.json").open("w", encoding="utf-8") as handle:
|
| 167 |
+
json.dump(
|
| 168 |
+
{
|
| 169 |
+
"template_mode": "per_episode",
|
| 170 |
+
"template_episode": template_episode_dir.name,
|
| 171 |
+
"template_frames": template_frames,
|
| 172 |
+
"templates": templates.to_json(),
|
| 173 |
+
},
|
| 174 |
+
handle,
|
| 175 |
+
indent=2,
|
| 176 |
+
)
|
| 177 |
+
|
| 178 |
+
frame_json_dir = output_dir.joinpath("frame_rows")
|
| 179 |
+
frame_json_dir.mkdir(parents=True, exist_ok=True)
|
| 180 |
+
frame_indices = list(range(num_frames))
|
| 181 |
+
frame_chunks = _chunk_frame_indices(frame_indices, args.num_workers)
|
| 182 |
+
displays = [args.base_display + index for index in range(len(frame_chunks))]
|
| 183 |
+
xvfb_procs: List[subprocess.Popen] = []
|
| 184 |
+
active: Dict[int, Tuple[List[int], subprocess.Popen]] = {}
|
| 185 |
+
|
| 186 |
+
try:
|
| 187 |
+
for display_num in displays:
|
| 188 |
+
xvfb_procs.append(
|
| 189 |
+
_launch_xvfb(display_num, output_dir.joinpath(f"xvfb_{display_num}.log"))
|
| 190 |
+
)
|
| 191 |
+
time.sleep(1.0)
|
| 192 |
+
|
| 193 |
+
for display_num, frame_chunk in zip(displays, frame_chunks):
|
| 194 |
+
process = _spawn_frame_batch_job(
|
| 195 |
+
display_num=display_num,
|
| 196 |
+
episode_dir=episode_dir,
|
| 197 |
+
templates_pkl=templates_pkl,
|
| 198 |
+
frame_indices=frame_chunk,
|
| 199 |
+
checkpoint_stride=args.checkpoint_stride,
|
| 200 |
+
output_dir=frame_json_dir,
|
| 201 |
+
)
|
| 202 |
+
active[display_num] = (frame_chunk, process)
|
| 203 |
+
if args.stagger_seconds > 0:
|
| 204 |
+
time.sleep(args.stagger_seconds)
|
| 205 |
+
|
| 206 |
+
while active:
|
| 207 |
+
time.sleep(1.0)
|
| 208 |
+
finished: List[int] = []
|
| 209 |
+
for display_num, (frame_chunk, process) in active.items():
|
| 210 |
+
return_code = process.poll()
|
| 211 |
+
if return_code is None:
|
| 212 |
+
continue
|
| 213 |
+
missing = [
|
| 214 |
+
frame_index
|
| 215 |
+
for frame_index in frame_chunk
|
| 216 |
+
if not frame_json_dir.joinpath(f"frame_{frame_index:04d}.json").exists()
|
| 217 |
+
]
|
| 218 |
+
if return_code != 0 or missing:
|
| 219 |
+
raise RuntimeError(
|
| 220 |
+
f"display :{display_num} failed for frames {frame_chunk[:3]}...; missing={missing[:8]}"
|
| 221 |
+
)
|
| 222 |
+
finished.append(display_num)
|
| 223 |
+
for display_num in finished:
|
| 224 |
+
active.pop(display_num)
|
| 225 |
+
finally:
|
| 226 |
+
for _, process in list(active.values()):
|
| 227 |
+
_stop_process(process)
|
| 228 |
+
for xvfb in xvfb_procs:
|
| 229 |
+
_stop_process(xvfb)
|
| 230 |
+
|
| 231 |
+
frame_df = _collect_rows(frame_json_dir, num_frames)
|
| 232 |
+
frame_df = _annotate_phase_columns(frame_df)
|
| 233 |
+
keyframes = [index for index in _keypoint_discovery(demo) if index < len(frame_df)]
|
| 234 |
+
key_df = _keyframe_subset(frame_df, keyframes)
|
| 235 |
+
interventions = _interventional_validity(
|
| 236 |
+
demo=demo,
|
| 237 |
+
templates=templates,
|
| 238 |
+
frame_df=frame_df,
|
| 239 |
+
checkpoint_stride=args.checkpoint_stride,
|
| 240 |
+
)
|
| 241 |
+
metrics = _episode_metrics_from_frames(
|
| 242 |
+
frame_df=frame_df,
|
| 243 |
+
key_df=key_df,
|
| 244 |
+
episode_name=episode_dir.name,
|
| 245 |
+
description=descriptions[0],
|
| 246 |
+
interventions=interventions,
|
| 247 |
+
)
|
| 248 |
+
|
| 249 |
+
frame_df.to_csv(output_dir.joinpath(f"{episode_dir.name}.dense.csv"), index=False)
|
| 250 |
+
key_df.to_csv(output_dir.joinpath(f"{episode_dir.name}.keyframes.csv"), index=False)
|
| 251 |
+
with output_dir.joinpath(f"{episode_dir.name}.metrics.json").open("w", encoding="utf-8") as handle:
|
| 252 |
+
json.dump(metrics, handle, indent=2)
|
| 253 |
+
summary = _aggregate_summary([metrics])
|
| 254 |
+
with output_dir.joinpath("summary.json").open("w", encoding="utf-8") as handle:
|
| 255 |
+
json.dump(summary, handle, indent=2)
|
| 256 |
+
|
| 257 |
+
if not args.keep_frame_json:
|
| 258 |
+
for row_path in frame_json_dir.glob("frame_*.json"):
|
| 259 |
+
row_path.unlink()
|
| 260 |
+
frame_json_dir.rmdir()
|
| 261 |
+
|
| 262 |
+
print(json.dumps(summary, indent=2))
|
| 263 |
+
return 0
|
| 264 |
+
|
| 265 |
+
|
| 266 |
+
if __name__ == "__main__":
|
| 267 |
+
raise SystemExit(main())
|
code/scripts/recompute_oven_pregrasp_parallel.py
ADDED
|
@@ -0,0 +1,282 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from pathlib import Path
|
| 2 |
+
import argparse
|
| 3 |
+
import json
|
| 4 |
+
import os
|
| 5 |
+
import pickle
|
| 6 |
+
import shutil
|
| 7 |
+
import signal
|
| 8 |
+
import subprocess
|
| 9 |
+
import sys
|
| 10 |
+
import time
|
| 11 |
+
from typing import Dict, List, Optional, Sequence, Tuple
|
| 12 |
+
|
| 13 |
+
import numpy as np
|
| 14 |
+
import pandas as pd
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
| 18 |
+
if str(PROJECT_ROOT) not in sys.path:
|
| 19 |
+
sys.path.insert(0, str(PROJECT_ROOT))
|
| 20 |
+
|
| 21 |
+
from rr_label_study.oven_study import (
|
| 22 |
+
MotionTemplates,
|
| 23 |
+
_aggregate_summary,
|
| 24 |
+
_annotate_phase_columns,
|
| 25 |
+
_episode_metrics_from_frames,
|
| 26 |
+
_keyframe_subset,
|
| 27 |
+
_keypoint_discovery,
|
| 28 |
+
_load_demo,
|
| 29 |
+
_load_descriptions,
|
| 30 |
+
)
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
def _launch_xvfb(display_num: int, log_path: Path) -> subprocess.Popen:
|
| 34 |
+
log_handle = log_path.open("w", encoding="utf-8")
|
| 35 |
+
return subprocess.Popen(
|
| 36 |
+
[
|
| 37 |
+
"Xvfb",
|
| 38 |
+
f":{display_num}",
|
| 39 |
+
"-screen",
|
| 40 |
+
"0",
|
| 41 |
+
"1280x1024x24",
|
| 42 |
+
"+extension",
|
| 43 |
+
"GLX",
|
| 44 |
+
"+render",
|
| 45 |
+
"-noreset",
|
| 46 |
+
],
|
| 47 |
+
stdout=log_handle,
|
| 48 |
+
stderr=subprocess.STDOUT,
|
| 49 |
+
start_new_session=True,
|
| 50 |
+
)
|
| 51 |
+
|
| 52 |
+
|
| 53 |
+
def _wait_for_display(display_num: int, timeout_s: float = 10.0) -> None:
|
| 54 |
+
deadline = time.time() + timeout_s
|
| 55 |
+
while time.time() < deadline:
|
| 56 |
+
result = subprocess.run(
|
| 57 |
+
["xdpyinfo", "-display", f":{display_num}"],
|
| 58 |
+
stdout=subprocess.DEVNULL,
|
| 59 |
+
stderr=subprocess.DEVNULL,
|
| 60 |
+
check=False,
|
| 61 |
+
)
|
| 62 |
+
if result.returncode == 0:
|
| 63 |
+
return
|
| 64 |
+
time.sleep(0.25)
|
| 65 |
+
raise RuntimeError(f"display :{display_num} did not become ready")
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
def _stop_process(process: Optional[subprocess.Popen]) -> None:
|
| 69 |
+
if process is None or process.poll() is not None:
|
| 70 |
+
return
|
| 71 |
+
try:
|
| 72 |
+
os.killpg(process.pid, signal.SIGTERM)
|
| 73 |
+
except ProcessLookupError:
|
| 74 |
+
return
|
| 75 |
+
try:
|
| 76 |
+
process.wait(timeout=10)
|
| 77 |
+
except subprocess.TimeoutExpired:
|
| 78 |
+
try:
|
| 79 |
+
os.killpg(process.pid, signal.SIGKILL)
|
| 80 |
+
except ProcessLookupError:
|
| 81 |
+
pass
|
| 82 |
+
|
| 83 |
+
|
| 84 |
+
def _spawn_pregrasp_batch_job(
|
| 85 |
+
display_num: int,
|
| 86 |
+
episode_dir: Path,
|
| 87 |
+
templates_pkl: Path,
|
| 88 |
+
frame_indices: Sequence[int],
|
| 89 |
+
checkpoint_stride: int,
|
| 90 |
+
output_dir: Path,
|
| 91 |
+
log_path: Path,
|
| 92 |
+
) -> subprocess.Popen:
|
| 93 |
+
runtime_dir = Path(f"/tmp/rr_label_study_pregrasp_display_{display_num}")
|
| 94 |
+
runtime_dir.mkdir(parents=True, exist_ok=True)
|
| 95 |
+
env = os.environ.copy()
|
| 96 |
+
env["DISPLAY"] = f":{display_num}"
|
| 97 |
+
env["COPPELIASIM_ROOT"] = "/workspace/coppelia_sim"
|
| 98 |
+
env["LD_LIBRARY_PATH"] = f"/workspace/coppelia_sim:{env.get('LD_LIBRARY_PATH', '')}"
|
| 99 |
+
env["QT_QPA_PLATFORM_PLUGIN_PATH"] = "/workspace/coppelia_sim"
|
| 100 |
+
env["XDG_RUNTIME_DIR"] = str(runtime_dir)
|
| 101 |
+
env["PYTHONUNBUFFERED"] = "1"
|
| 102 |
+
env["OMP_NUM_THREADS"] = "1"
|
| 103 |
+
env["OPENBLAS_NUM_THREADS"] = "1"
|
| 104 |
+
env["MKL_NUM_THREADS"] = "1"
|
| 105 |
+
env["NUMEXPR_NUM_THREADS"] = "1"
|
| 106 |
+
log_handle = log_path.open("w", encoding="utf-8")
|
| 107 |
+
return subprocess.Popen(
|
| 108 |
+
[
|
| 109 |
+
sys.executable,
|
| 110 |
+
str(PROJECT_ROOT.joinpath("scripts", "run_oven_pregrasp_batch.py")),
|
| 111 |
+
"--episode-dir",
|
| 112 |
+
str(episode_dir),
|
| 113 |
+
"--templates-pkl",
|
| 114 |
+
str(templates_pkl),
|
| 115 |
+
"--frame-indices",
|
| 116 |
+
*[str(frame_index) for frame_index in frame_indices],
|
| 117 |
+
"--checkpoint-stride",
|
| 118 |
+
str(checkpoint_stride),
|
| 119 |
+
"--output-dir",
|
| 120 |
+
str(output_dir),
|
| 121 |
+
],
|
| 122 |
+
stdout=log_handle,
|
| 123 |
+
stderr=subprocess.STDOUT,
|
| 124 |
+
cwd=str(PROJECT_ROOT),
|
| 125 |
+
env=env,
|
| 126 |
+
start_new_session=True,
|
| 127 |
+
)
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
def _chunk_frame_indices(frame_indices: Sequence[int], num_workers: int) -> List[List[int]]:
|
| 131 |
+
if not frame_indices:
|
| 132 |
+
return []
|
| 133 |
+
worker_count = min(max(1, num_workers), len(frame_indices))
|
| 134 |
+
return [
|
| 135 |
+
[int(index) for index in chunk.tolist()]
|
| 136 |
+
for chunk in np.array_split(np.asarray(frame_indices, dtype=int), worker_count)
|
| 137 |
+
if len(chunk)
|
| 138 |
+
]
|
| 139 |
+
|
| 140 |
+
|
| 141 |
+
def _load_interventions(metrics_path: Path) -> Dict[str, float]:
|
| 142 |
+
payload = json.loads(metrics_path.read_text())
|
| 143 |
+
return {
|
| 144 |
+
key: float(value)
|
| 145 |
+
for key, value in payload.items()
|
| 146 |
+
if key.startswith("pre_ready_") or key.startswith("post_ready_")
|
| 147 |
+
}
|
| 148 |
+
|
| 149 |
+
|
| 150 |
+
def main() -> int:
|
| 151 |
+
parser = argparse.ArgumentParser()
|
| 152 |
+
parser.add_argument("--episode-dir", required=True)
|
| 153 |
+
parser.add_argument("--input-dense-csv", required=True)
|
| 154 |
+
parser.add_argument("--input-metrics-json", required=True)
|
| 155 |
+
parser.add_argument("--templates-json", required=True)
|
| 156 |
+
parser.add_argument("--output-dir", required=True)
|
| 157 |
+
parser.add_argument("--checkpoint-stride", type=int, default=16)
|
| 158 |
+
parser.add_argument("--num-workers", type=int, default=8)
|
| 159 |
+
parser.add_argument("--base-display", type=int, default=500)
|
| 160 |
+
parser.add_argument("--stagger-seconds", type=float, default=0.1)
|
| 161 |
+
parser.add_argument("--keep-frame-json", action="store_true")
|
| 162 |
+
args = parser.parse_args()
|
| 163 |
+
|
| 164 |
+
episode_dir = Path(args.episode_dir)
|
| 165 |
+
input_dense_csv = Path(args.input_dense_csv)
|
| 166 |
+
input_metrics_json = Path(args.input_metrics_json)
|
| 167 |
+
templates_json = Path(args.templates_json)
|
| 168 |
+
output_dir = Path(args.output_dir)
|
| 169 |
+
output_dir.mkdir(parents=True, exist_ok=True)
|
| 170 |
+
|
| 171 |
+
base_df = pd.read_csv(input_dense_csv)
|
| 172 |
+
demo = _load_demo(episode_dir)
|
| 173 |
+
descriptions = _load_descriptions(episode_dir)
|
| 174 |
+
num_frames = min(len(demo), len(base_df))
|
| 175 |
+
frame_indices = list(range(num_frames))
|
| 176 |
+
interventions = _load_interventions(input_metrics_json)
|
| 177 |
+
|
| 178 |
+
template_payload = json.loads(templates_json.read_text())
|
| 179 |
+
templates = MotionTemplates.from_json(template_payload["templates"])
|
| 180 |
+
with output_dir.joinpath("templates.json").open("w", encoding="utf-8") as handle:
|
| 181 |
+
json.dump(template_payload, handle, indent=2)
|
| 182 |
+
templates_pkl = output_dir.joinpath("templates.pkl")
|
| 183 |
+
with templates_pkl.open("wb") as handle:
|
| 184 |
+
pickle.dump(templates, handle)
|
| 185 |
+
|
| 186 |
+
frame_json_dir = output_dir.joinpath("pregrasp_rows")
|
| 187 |
+
frame_json_dir.mkdir(parents=True, exist_ok=True)
|
| 188 |
+
pending_frame_indices = [
|
| 189 |
+
frame_index
|
| 190 |
+
for frame_index in frame_indices
|
| 191 |
+
if not frame_json_dir.joinpath(f"frame_{frame_index:04d}.json").exists()
|
| 192 |
+
]
|
| 193 |
+
frame_chunks = _chunk_frame_indices(pending_frame_indices, args.num_workers)
|
| 194 |
+
displays = [args.base_display + index for index in range(len(frame_chunks))]
|
| 195 |
+
xvfb_procs: List[subprocess.Popen] = []
|
| 196 |
+
active: Dict[int, Tuple[List[int], subprocess.Popen]] = {}
|
| 197 |
+
|
| 198 |
+
try:
|
| 199 |
+
for display_num in displays:
|
| 200 |
+
xvfb = _launch_xvfb(display_num, output_dir.joinpath(f"xvfb_{display_num}.log"))
|
| 201 |
+
xvfb_procs.append(xvfb)
|
| 202 |
+
for display_num in displays:
|
| 203 |
+
_wait_for_display(display_num)
|
| 204 |
+
|
| 205 |
+
for display_num, frame_chunk in zip(displays, frame_chunks):
|
| 206 |
+
process = _spawn_pregrasp_batch_job(
|
| 207 |
+
display_num=display_num,
|
| 208 |
+
episode_dir=episode_dir,
|
| 209 |
+
templates_pkl=templates_pkl,
|
| 210 |
+
frame_indices=frame_chunk,
|
| 211 |
+
checkpoint_stride=args.checkpoint_stride,
|
| 212 |
+
output_dir=frame_json_dir,
|
| 213 |
+
log_path=output_dir.joinpath(f"worker_{display_num}.log"),
|
| 214 |
+
)
|
| 215 |
+
active[display_num] = (frame_chunk, process)
|
| 216 |
+
if args.stagger_seconds > 0:
|
| 217 |
+
time.sleep(args.stagger_seconds)
|
| 218 |
+
|
| 219 |
+
while active:
|
| 220 |
+
time.sleep(1.0)
|
| 221 |
+
finished: List[int] = []
|
| 222 |
+
for display_num, (frame_chunk, process) in active.items():
|
| 223 |
+
return_code = process.poll()
|
| 224 |
+
if return_code is None:
|
| 225 |
+
continue
|
| 226 |
+
missing = [
|
| 227 |
+
frame_index
|
| 228 |
+
for frame_index in frame_chunk
|
| 229 |
+
if not frame_json_dir.joinpath(f"frame_{frame_index:04d}.json").exists()
|
| 230 |
+
]
|
| 231 |
+
if return_code != 0 or missing:
|
| 232 |
+
raise RuntimeError(
|
| 233 |
+
"display "
|
| 234 |
+
f":{display_num} failed for frames {frame_chunk[:5]} "
|
| 235 |
+
f"missing={missing[:8]} log={output_dir.joinpath(f'worker_{display_num}.log')}"
|
| 236 |
+
)
|
| 237 |
+
finished.append(display_num)
|
| 238 |
+
for display_num in finished:
|
| 239 |
+
active.pop(display_num)
|
| 240 |
+
finally:
|
| 241 |
+
for _, process in list(active.values()):
|
| 242 |
+
_stop_process(process)
|
| 243 |
+
for xvfb in xvfb_procs:
|
| 244 |
+
_stop_process(xvfb)
|
| 245 |
+
|
| 246 |
+
corrected_df = base_df.iloc[:num_frames].copy()
|
| 247 |
+
for frame_index in frame_indices:
|
| 248 |
+
row_path = frame_json_dir.joinpath(f"frame_{frame_index:04d}.json")
|
| 249 |
+
if not row_path.exists():
|
| 250 |
+
raise RuntimeError(f"missing pregrasp row: {row_path}")
|
| 251 |
+
row = json.loads(row_path.read_text())
|
| 252 |
+
for key, value in row.items():
|
| 253 |
+
corrected_df.at[frame_index, key] = value
|
| 254 |
+
|
| 255 |
+
corrected_df = _annotate_phase_columns(corrected_df)
|
| 256 |
+
keyframes = [index for index in _keypoint_discovery(demo) if index < len(corrected_df)]
|
| 257 |
+
key_df = _keyframe_subset(corrected_df, keyframes)
|
| 258 |
+
metrics = _episode_metrics_from_frames(
|
| 259 |
+
frame_df=corrected_df,
|
| 260 |
+
key_df=key_df,
|
| 261 |
+
episode_name=episode_dir.name,
|
| 262 |
+
description=descriptions[0],
|
| 263 |
+
interventions=interventions,
|
| 264 |
+
)
|
| 265 |
+
|
| 266 |
+
corrected_df.to_csv(output_dir.joinpath(f"{episode_dir.name}.dense.csv"), index=False)
|
| 267 |
+
key_df.to_csv(output_dir.joinpath(f"{episode_dir.name}.keyframes.csv"), index=False)
|
| 268 |
+
with output_dir.joinpath(f"{episode_dir.name}.metrics.json").open("w", encoding="utf-8") as handle:
|
| 269 |
+
json.dump(metrics, handle, indent=2)
|
| 270 |
+
summary = _aggregate_summary([metrics])
|
| 271 |
+
with output_dir.joinpath("summary.json").open("w", encoding="utf-8") as handle:
|
| 272 |
+
json.dump(summary, handle, indent=2)
|
| 273 |
+
|
| 274 |
+
if not args.keep_frame_json:
|
| 275 |
+
shutil.rmtree(frame_json_dir, ignore_errors=True)
|
| 276 |
+
|
| 277 |
+
print(json.dumps(summary, indent=2))
|
| 278 |
+
return 0
|
| 279 |
+
|
| 280 |
+
|
| 281 |
+
if __name__ == "__main__":
|
| 282 |
+
raise SystemExit(main())
|
code/scripts/recompute_oven_visibility_pregrasp.py
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from pathlib import Path
|
| 2 |
+
import argparse
|
| 3 |
+
import json
|
| 4 |
+
import sys
|
| 5 |
+
from typing import Dict, Optional
|
| 6 |
+
|
| 7 |
+
import pandas as pd
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
| 11 |
+
if str(PROJECT_ROOT) not in sys.path:
|
| 12 |
+
sys.path.insert(0, str(PROJECT_ROOT))
|
| 13 |
+
|
| 14 |
+
from rr_label_study.oven_study import (
|
| 15 |
+
BimanualTakeTrayOutOfOven,
|
| 16 |
+
ReplayCache,
|
| 17 |
+
_aggregate_summary,
|
| 18 |
+
_annotate_phase_columns,
|
| 19 |
+
_analyze_episode,
|
| 20 |
+
_derive_templates,
|
| 21 |
+
_episode_metrics_from_frames,
|
| 22 |
+
_keyframe_subset,
|
| 23 |
+
_keypoint_discovery,
|
| 24 |
+
_launch_replay_env,
|
| 25 |
+
_load_demo,
|
| 26 |
+
_load_descriptions,
|
| 27 |
+
_pregrasp_progress_and_distance,
|
| 28 |
+
_pregrasp_score_and_success,
|
| 29 |
+
_frame_metrics,
|
| 30 |
+
)
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
def _recompute_columns(
|
| 34 |
+
episode_dir: Path,
|
| 35 |
+
templates,
|
| 36 |
+
checkpoint_stride: int,
|
| 37 |
+
base_df: pd.DataFrame,
|
| 38 |
+
) -> pd.DataFrame:
|
| 39 |
+
demo = _load_demo(episode_dir)
|
| 40 |
+
num_frames = min(len(demo), len(base_df))
|
| 41 |
+
frame_df = base_df.iloc[:num_frames].copy()
|
| 42 |
+
|
| 43 |
+
env = _launch_replay_env()
|
| 44 |
+
try:
|
| 45 |
+
task = env.get_task(BimanualTakeTrayOutOfOven)
|
| 46 |
+
cache = ReplayCache(task, demo, checkpoint_stride=checkpoint_stride)
|
| 47 |
+
cache.reset()
|
| 48 |
+
|
| 49 |
+
for frame_index in range(num_frames):
|
| 50 |
+
cache.step_to(frame_index)
|
| 51 |
+
state = cache.current_state()
|
| 52 |
+
visibility = _frame_metrics(episode_dir, demo, state, templates)
|
| 53 |
+
pregrasp_progress, pregrasp_distance = _pregrasp_progress_and_distance(
|
| 54 |
+
state.left_gripper_pose,
|
| 55 |
+
state.tray_pose,
|
| 56 |
+
templates,
|
| 57 |
+
)
|
| 58 |
+
p_pre, y_pre = _pregrasp_score_and_success(task, templates)
|
| 59 |
+
|
| 60 |
+
frame_df.at[frame_index, "frame_index"] = frame_index
|
| 61 |
+
frame_df.at[frame_index, "time_norm"] = frame_index / max(1, num_frames - 1)
|
| 62 |
+
frame_df.at[frame_index, "door_angle"] = state.door_angle
|
| 63 |
+
frame_df.at[frame_index, "right_gripper_open"] = state.right_gripper_open
|
| 64 |
+
frame_df.at[frame_index, "left_gripper_open"] = state.left_gripper_open
|
| 65 |
+
frame_df.at[frame_index, "pregrasp_progress"] = pregrasp_progress
|
| 66 |
+
frame_df.at[frame_index, "pregrasp_distance"] = pregrasp_distance
|
| 67 |
+
frame_df.at[frame_index, "p_pre"] = p_pre
|
| 68 |
+
frame_df.at[frame_index, "y_pre_raw"] = float(bool(y_pre))
|
| 69 |
+
frame_df.at[frame_index, "y_pre"] = float(bool(y_pre))
|
| 70 |
+
for key, value in visibility.items():
|
| 71 |
+
frame_df.at[frame_index, key] = value
|
| 72 |
+
|
| 73 |
+
if (frame_index + 1) % 25 == 0 or (frame_index + 1) == num_frames:
|
| 74 |
+
print(
|
| 75 |
+
f"[{episode_dir.name}] recomputed {frame_index + 1}/{num_frames} dense frames",
|
| 76 |
+
flush=True,
|
| 77 |
+
)
|
| 78 |
+
return frame_df
|
| 79 |
+
finally:
|
| 80 |
+
env.shutdown()
|
| 81 |
+
|
| 82 |
+
|
| 83 |
+
def main() -> int:
|
| 84 |
+
parser = argparse.ArgumentParser()
|
| 85 |
+
parser.add_argument("--dataset-root", required=True)
|
| 86 |
+
parser.add_argument("--episode-dir", required=True)
|
| 87 |
+
parser.add_argument("--input-dense-csv", required=True)
|
| 88 |
+
parser.add_argument("--output-dir", required=True)
|
| 89 |
+
parser.add_argument("--checkpoint-stride", type=int, default=16)
|
| 90 |
+
parser.add_argument("--template-episode-dir")
|
| 91 |
+
args = parser.parse_args()
|
| 92 |
+
|
| 93 |
+
dataset_root = Path(args.dataset_root)
|
| 94 |
+
episode_dir = Path(args.episode_dir)
|
| 95 |
+
output_dir = Path(args.output_dir)
|
| 96 |
+
output_dir.mkdir(parents=True, exist_ok=True)
|
| 97 |
+
|
| 98 |
+
base_df = pd.read_csv(args.input_dense_csv)
|
| 99 |
+
demo = _load_demo(episode_dir)
|
| 100 |
+
descriptions = _load_descriptions(episode_dir)
|
| 101 |
+
|
| 102 |
+
template_episode_dir = (
|
| 103 |
+
Path(args.template_episode_dir) if args.template_episode_dir else episode_dir
|
| 104 |
+
)
|
| 105 |
+
templates, template_frames = _derive_templates(dataset_root, template_episode_dir)
|
| 106 |
+
with output_dir.joinpath("templates.json").open("w", encoding="utf-8") as handle:
|
| 107 |
+
json.dump(
|
| 108 |
+
{
|
| 109 |
+
"templates": templates.to_json(),
|
| 110 |
+
"template_episode": template_episode_dir.name,
|
| 111 |
+
"template_frames": template_frames,
|
| 112 |
+
},
|
| 113 |
+
handle,
|
| 114 |
+
indent=2,
|
| 115 |
+
)
|
| 116 |
+
|
| 117 |
+
frame_df = _recompute_columns(
|
| 118 |
+
episode_dir=episode_dir,
|
| 119 |
+
templates=templates,
|
| 120 |
+
checkpoint_stride=args.checkpoint_stride,
|
| 121 |
+
base_df=base_df,
|
| 122 |
+
)
|
| 123 |
+
frame_df = _annotate_phase_columns(frame_df)
|
| 124 |
+
|
| 125 |
+
keyframes = [index for index in _keypoint_discovery(demo) if index < len(frame_df)]
|
| 126 |
+
key_df = _keyframe_subset(frame_df, keyframes)
|
| 127 |
+
metrics = _episode_metrics_from_frames(
|
| 128 |
+
frame_df=frame_df,
|
| 129 |
+
key_df=key_df,
|
| 130 |
+
episode_name=episode_dir.name,
|
| 131 |
+
description=descriptions[0],
|
| 132 |
+
interventions={},
|
| 133 |
+
)
|
| 134 |
+
|
| 135 |
+
frame_df.to_csv(output_dir.joinpath(f"{episode_dir.name}.dense.csv"), index=False)
|
| 136 |
+
key_df.to_csv(output_dir.joinpath(f"{episode_dir.name}.keyframes.csv"), index=False)
|
| 137 |
+
with output_dir.joinpath(f"{episode_dir.name}.metrics.json").open("w", encoding="utf-8") as handle:
|
| 138 |
+
json.dump(metrics, handle, indent=2)
|
| 139 |
+
summary = _aggregate_summary([metrics])
|
| 140 |
+
with output_dir.joinpath("summary.json").open("w", encoding="utf-8") as handle:
|
| 141 |
+
json.dump(summary, handle, indent=2)
|
| 142 |
+
print(json.dumps(summary, indent=2))
|
| 143 |
+
return 0
|
| 144 |
+
|
| 145 |
+
|
| 146 |
+
if __name__ == "__main__":
|
| 147 |
+
raise SystemExit(main())
|
code/scripts/render_oven_metric_frame.py
CHANGED
|
@@ -24,16 +24,19 @@ from rr_label_study.oven_study import (
|
|
| 24 |
MotionTemplates,
|
| 25 |
ReplayCache,
|
| 26 |
Shape,
|
|
|
|
|
|
|
| 27 |
_camera_file,
|
| 28 |
_extract_sequence_poses,
|
| 29 |
_frame_metrics,
|
| 30 |
_launch_replay_env,
|
| 31 |
_load_demo,
|
| 32 |
_load_mask,
|
| 33 |
-
|
| 34 |
_project_points,
|
| 35 |
_sample_full_tray_points,
|
| 36 |
_sample_grasp_points,
|
|
|
|
| 37 |
)
|
| 38 |
|
| 39 |
|
|
@@ -132,25 +135,13 @@ def _bar(draw: ImageDraw.ImageDraw, x: int, y: int, w: int, h: int, value: float
|
|
| 132 |
|
| 133 |
def _project_coords(
|
| 134 |
points_world: np.ndarray,
|
| 135 |
-
|
| 136 |
-
handle_ids: Sequence[int],
|
| 137 |
extrinsics: np.ndarray,
|
| 138 |
intrinsics: np.ndarray,
|
| 139 |
) -> Tuple[List[Tuple[int, int]], List[Tuple[int, int]]]:
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
projected: List[Tuple[int, int]] = []
|
| 144 |
-
visible: List[Tuple[int, int]] = []
|
| 145 |
-
for (u, v), (_, _, camera_depth) in zip(uv, camera_xyz):
|
| 146 |
-
if camera_depth <= 0 or not (0 <= u < width and 0 <= v < height):
|
| 147 |
-
continue
|
| 148 |
-
px = min(max(int(round(float(u))), 0), width - 1)
|
| 149 |
-
py = min(max(int(round(float(v))), 0), height - 1)
|
| 150 |
-
projected.append((px, py))
|
| 151 |
-
if int(mask[py, px]) in handle_set:
|
| 152 |
-
visible.append((px, py))
|
| 153 |
-
return projected, visible
|
| 154 |
|
| 155 |
|
| 156 |
def _infer_mask_handle(mask: np.ndarray, coords: Sequence[Tuple[int, int]]) -> Optional[int]:
|
|
@@ -202,15 +193,18 @@ def _compose_visibility_panel(
|
|
| 202 |
per_camera_vis: float,
|
| 203 |
) -> Image.Image:
|
| 204 |
rgb = _load_rgb(episode_dir, camera_name, frame_index)
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
handle_ids = templates.mask_handle_ids
|
| 209 |
|
| 210 |
tray_points = _sample_full_tray_points(tray_pose)
|
| 211 |
grasp_points = _sample_grasp_points(templates, tray_pose)
|
| 212 |
-
tray_proj, tray_visible = _project_coords(
|
| 213 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 214 |
|
| 215 |
scene_panel = _scale_image(rgb)
|
| 216 |
_draw_panel_title(
|
|
@@ -243,16 +237,14 @@ def _compose_visibility_panel(
|
|
| 243 |
if right_xy is not None:
|
| 244 |
_draw_point(draw, _scaled_coords([right_xy], PANEL_SIZE / RGB_SIZE)[0], (140, 110, 255), radius=4)
|
| 245 |
|
| 246 |
-
|
| 247 |
-
|
| 248 |
-
|
| 249 |
-
|
| 250 |
-
|
| 251 |
-
masked_panel = _masked_rgb(rgb, np.isin(mask, np.asarray(handle_ids, dtype=np.int64)))
|
| 252 |
-
masked_panel = _scale_image(masked_panel)
|
| 253 |
_draw_panel_title(
|
| 254 |
masked_panel,
|
| 255 |
-
f"{camera_name} visible
|
| 256 |
f"visible grasp pts={len(grasp_visible)}/{len(grasp_proj) or 1}",
|
| 257 |
)
|
| 258 |
draw = ImageDraw.Draw(masked_panel)
|
|
@@ -313,11 +305,11 @@ def _camera_grasp_visibility(
|
|
| 313 |
tray_pose: np.ndarray,
|
| 314 |
templates: MotionTemplates,
|
| 315 |
) -> float:
|
| 316 |
-
|
| 317 |
-
|
| 318 |
-
|
| 319 |
grasp_points = _sample_grasp_points(templates, tray_pose)
|
| 320 |
-
proj, vis = _project_coords(grasp_points,
|
| 321 |
return float(len(vis) / len(proj)) if proj else 0.0
|
| 322 |
|
| 323 |
|
|
@@ -344,10 +336,18 @@ def _compose_path_quality(
|
|
| 344 |
font=FONT_SM,
|
| 345 |
)
|
| 346 |
|
| 347 |
-
|
|
|
|
|
|
|
|
|
|
| 348 |
extract_poses = _extract_sequence_poses(tray_pose, task_base_pose, templates)
|
| 349 |
-
plan_poses = [
|
| 350 |
-
colors = [(255, 220, 0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 351 |
|
| 352 |
demo_left_trail = np.asarray(
|
| 353 |
[_demo_gripper_pose(demo[i], "left")[:3] for i in range(max(0, frame_index - 12), frame_index + 1)],
|
|
@@ -415,6 +415,7 @@ def _project_world_polyline(points_world: np.ndarray, extrinsics: np.ndarray, in
|
|
| 415 |
|
| 416 |
|
| 417 |
def _compose_all_metrics(
|
|
|
|
| 418 |
episode_dir: Path,
|
| 419 |
demo,
|
| 420 |
frame_index: int,
|
|
@@ -426,7 +427,7 @@ def _compose_all_metrics(
|
|
| 426 |
draw.rectangle((0, 0, canvas.size[0], 36), fill=banner_color)
|
| 427 |
draw.text(
|
| 428 |
(12, 7),
|
| 429 |
-
f"
|
| 430 |
fill=(255, 255, 255),
|
| 431 |
font=FONT_LG,
|
| 432 |
)
|
|
@@ -534,6 +535,7 @@ def main() -> int:
|
|
| 534 |
|
| 535 |
if all_out is not None:
|
| 536 |
all_image = _compose_all_metrics(
|
|
|
|
| 537 |
episode_dir=episode_dir,
|
| 538 |
demo=demo,
|
| 539 |
frame_index=int(args.frame_index),
|
|
|
|
| 24 |
MotionTemplates,
|
| 25 |
ReplayCache,
|
| 26 |
Shape,
|
| 27 |
+
_apply_relative_pose,
|
| 28 |
+
_camera_point_cloud,
|
| 29 |
_camera_file,
|
| 30 |
_extract_sequence_poses,
|
| 31 |
_frame_metrics,
|
| 32 |
_launch_replay_env,
|
| 33 |
_load_demo,
|
| 34 |
_load_mask,
|
| 35 |
+
_pregrasp_corridor_rel_poses,
|
| 36 |
_project_points,
|
| 37 |
_sample_full_tray_points,
|
| 38 |
_sample_grasp_points,
|
| 39 |
+
_visibility_projection_details,
|
| 40 |
)
|
| 41 |
|
| 42 |
|
|
|
|
| 135 |
|
| 136 |
def _project_coords(
|
| 137 |
points_world: np.ndarray,
|
| 138 |
+
point_cloud_world: np.ndarray,
|
|
|
|
| 139 |
extrinsics: np.ndarray,
|
| 140 |
intrinsics: np.ndarray,
|
| 141 |
) -> Tuple[List[Tuple[int, int]], List[Tuple[int, int]]]:
|
| 142 |
+
return _visibility_projection_details(
|
| 143 |
+
points_world, point_cloud_world, extrinsics, intrinsics
|
| 144 |
+
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 145 |
|
| 146 |
|
| 147 |
def _infer_mask_handle(mask: np.ndarray, coords: Sequence[Tuple[int, int]]) -> Optional[int]:
|
|
|
|
| 193 |
per_camera_vis: float,
|
| 194 |
) -> Image.Image:
|
| 195 |
rgb = _load_rgb(episode_dir, camera_name, frame_index)
|
| 196 |
+
point_cloud, extrinsics, intrinsics = _camera_point_cloud(
|
| 197 |
+
episode_dir, demo, frame_index, camera_name
|
| 198 |
+
)
|
|
|
|
| 199 |
|
| 200 |
tray_points = _sample_full_tray_points(tray_pose)
|
| 201 |
grasp_points = _sample_grasp_points(templates, tray_pose)
|
| 202 |
+
tray_proj, tray_visible = _project_coords(
|
| 203 |
+
tray_points, point_cloud, extrinsics, intrinsics
|
| 204 |
+
)
|
| 205 |
+
grasp_proj, grasp_visible = _project_coords(
|
| 206 |
+
grasp_points, point_cloud, extrinsics, intrinsics
|
| 207 |
+
)
|
| 208 |
|
| 209 |
scene_panel = _scale_image(rgb)
|
| 210 |
_draw_panel_title(
|
|
|
|
| 237 |
if right_xy is not None:
|
| 238 |
_draw_point(draw, _scaled_coords([right_xy], PANEL_SIZE / RGB_SIZE)[0], (140, 110, 255), radius=4)
|
| 239 |
|
| 240 |
+
visible_pixels = np.zeros((RGB_SIZE, RGB_SIZE), dtype=bool)
|
| 241 |
+
for x, y in tray_visible + grasp_visible:
|
| 242 |
+
visible_pixels[y, x] = True
|
| 243 |
+
masked_panel = _masked_rgb(rgb, visible_pixels)
|
| 244 |
+
masked_panel = _scale_image(masked_panel)
|
|
|
|
|
|
|
| 245 |
_draw_panel_title(
|
| 246 |
masked_panel,
|
| 247 |
+
f"{camera_name} depth-visible",
|
| 248 |
f"visible grasp pts={len(grasp_visible)}/{len(grasp_proj) or 1}",
|
| 249 |
)
|
| 250 |
draw = ImageDraw.Draw(masked_panel)
|
|
|
|
| 305 |
tray_pose: np.ndarray,
|
| 306 |
templates: MotionTemplates,
|
| 307 |
) -> float:
|
| 308 |
+
point_cloud, extrinsics, intrinsics = _camera_point_cloud(
|
| 309 |
+
episode_dir, demo, frame_index, camera_name
|
| 310 |
+
)
|
| 311 |
grasp_points = _sample_grasp_points(templates, tray_pose)
|
| 312 |
+
proj, vis = _project_coords(grasp_points, point_cloud, extrinsics, intrinsics)
|
| 313 |
return float(len(vis) / len(proj)) if proj else 0.0
|
| 314 |
|
| 315 |
|
|
|
|
| 336 |
font=FONT_SM,
|
| 337 |
)
|
| 338 |
|
| 339 |
+
pregrasp_corridor = [
|
| 340 |
+
_apply_relative_pose(tray_pose, rel_pose)
|
| 341 |
+
for rel_pose in _pregrasp_corridor_rel_poses(templates)
|
| 342 |
+
]
|
| 343 |
extract_poses = _extract_sequence_poses(tray_pose, task_base_pose, templates)
|
| 344 |
+
plan_poses = [*pregrasp_corridor, extract_poses[1], *extract_poses[2:5]]
|
| 345 |
+
colors = ([(255, 220, 0)] * len(pregrasp_corridor)) + [
|
| 346 |
+
(255, 140, 0),
|
| 347 |
+
(80, 255, 120),
|
| 348 |
+
(80, 255, 120),
|
| 349 |
+
(80, 255, 120),
|
| 350 |
+
]
|
| 351 |
|
| 352 |
demo_left_trail = np.asarray(
|
| 353 |
[_demo_gripper_pose(demo[i], "left")[:3] for i in range(max(0, frame_index - 12), frame_index + 1)],
|
|
|
|
| 415 |
|
| 416 |
|
| 417 |
def _compose_all_metrics(
|
| 418 |
+
episode_name: str,
|
| 419 |
episode_dir: Path,
|
| 420 |
demo,
|
| 421 |
frame_index: int,
|
|
|
|
| 427 |
draw.rectangle((0, 0, canvas.size[0], 36), fill=banner_color)
|
| 428 |
draw.text(
|
| 429 |
(12, 7),
|
| 430 |
+
f"{episode_name} | frame {frame_index:03d} | {'REVEAL' if int(frame_row['phase_switch']) == 0 else 'RETRIEVE'}",
|
| 431 |
fill=(255, 255, 255),
|
| 432 |
font=FONT_LG,
|
| 433 |
)
|
|
|
|
| 535 |
|
| 536 |
if all_out is not None:
|
| 537 |
all_image = _compose_all_metrics(
|
| 538 |
+
episode_name=episode_dir.name,
|
| 539 |
episode_dir=episode_dir,
|
| 540 |
demo=demo,
|
| 541 |
frame_index=int(args.frame_index),
|
code/scripts/render_oven_metric_gifs.py
CHANGED
|
@@ -8,6 +8,8 @@ import time
|
|
| 8 |
from typing import Dict, List, Optional, Tuple
|
| 9 |
|
| 10 |
from PIL import Image
|
|
|
|
|
|
|
| 11 |
|
| 12 |
|
| 13 |
PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
|
@@ -113,6 +115,12 @@ def _assemble_gif(frame_paths: List[Path], output_path: Path, duration_ms: int)
|
|
| 113 |
)
|
| 114 |
|
| 115 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 116 |
def main() -> int:
|
| 117 |
parser = argparse.ArgumentParser()
|
| 118 |
parser.add_argument(
|
|
@@ -140,6 +148,21 @@ def main() -> int:
|
|
| 140 |
dense_csv = Path(args.dense_csv)
|
| 141 |
templates_pkl = Path(args.templates_pkl)
|
| 142 |
output_dir = Path(args.output_dir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 143 |
frames_dir = output_dir.joinpath("frames")
|
| 144 |
visibility_dir = frames_dir.joinpath("visibility_focus")
|
| 145 |
path_dir = frames_dir.joinpath("path_quality_focus")
|
|
@@ -147,9 +170,9 @@ def main() -> int:
|
|
| 147 |
for directory in [visibility_dir, path_dir, all_dir]:
|
| 148 |
directory.mkdir(parents=True, exist_ok=True)
|
| 149 |
|
| 150 |
-
visibility_frames =
|
| 151 |
-
path_frames =
|
| 152 |
-
all_frames =
|
| 153 |
unique_frames = sorted(set(visibility_frames) | set(path_frames) | set(all_frames))
|
| 154 |
|
| 155 |
pending = unique_frames[:]
|
|
@@ -208,9 +231,21 @@ def main() -> int:
|
|
| 208 |
if not path.exists():
|
| 209 |
raise RuntimeError(f"missing rendered frame: {path}")
|
| 210 |
|
| 211 |
-
_assemble_gif(
|
| 212 |
-
|
| 213 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 214 |
|
| 215 |
readme = output_dir.joinpath("README.md")
|
| 216 |
readme.write_text(
|
|
@@ -218,9 +253,9 @@ def main() -> int:
|
|
| 218 |
[
|
| 219 |
"# Visualizations",
|
| 220 |
"",
|
| 221 |
-
"- `
|
| 222 |
-
"- `
|
| 223 |
-
"- `
|
| 224 |
"- `frames/visibility_focus/`: per-frame PNGs with scene overlays, x-ray projections, and tray-mask views.",
|
| 225 |
"- `frames/path_quality_focus/`: per-frame PNGs with demo wrist trails plus planned pregrasp/grasp/retreat path overlays.",
|
| 226 |
"- `frames/all_metrics/`: per-frame PNGs with the episode-wide metric bars and phase banner.",
|
|
|
|
| 8 |
from typing import Dict, List, Optional, Tuple
|
| 9 |
|
| 10 |
from PIL import Image
|
| 11 |
+
import numpy as np
|
| 12 |
+
import pandas as pd
|
| 13 |
|
| 14 |
|
| 15 |
PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
|
|
|
| 115 |
)
|
| 116 |
|
| 117 |
|
| 118 |
+
def _range_inclusive(start: int, end: int, step: int) -> List[int]:
|
| 119 |
+
if end < start:
|
| 120 |
+
return []
|
| 121 |
+
return list(range(start, end + 1, step))
|
| 122 |
+
|
| 123 |
+
|
| 124 |
def main() -> int:
|
| 125 |
parser = argparse.ArgumentParser()
|
| 126 |
parser.add_argument(
|
|
|
|
| 148 |
dense_csv = Path(args.dense_csv)
|
| 149 |
templates_pkl = Path(args.templates_pkl)
|
| 150 |
output_dir = Path(args.output_dir)
|
| 151 |
+
frame_df = pd.read_csv(dense_csv)
|
| 152 |
+
episode_name = episode_dir.name
|
| 153 |
+
frame_indices = (
|
| 154 |
+
frame_df["frame_index"].to_numpy(dtype=int)
|
| 155 |
+
if "frame_index" in frame_df
|
| 156 |
+
else np.arange(len(frame_df), dtype=int)
|
| 157 |
+
)
|
| 158 |
+
max_frame = int(frame_indices.max()) if len(frame_indices) else 0
|
| 159 |
+
phase_candidates = frame_df.loc[frame_df["phase_switch"].to_numpy(dtype=float) >= 0.5]
|
| 160 |
+
if len(phase_candidates):
|
| 161 |
+
phase_cross = int(phase_candidates.iloc[0]["frame_index"])
|
| 162 |
+
else:
|
| 163 |
+
ppre_candidates = frame_df.loc[frame_df["p_pre"].to_numpy(dtype=float) >= 0.45]
|
| 164 |
+
phase_cross = int(ppre_candidates.iloc[0]["frame_index"]) if len(ppre_candidates) else max_frame // 2
|
| 165 |
+
|
| 166 |
frames_dir = output_dir.joinpath("frames")
|
| 167 |
visibility_dir = frames_dir.joinpath("visibility_focus")
|
| 168 |
path_dir = frames_dir.joinpath("path_quality_focus")
|
|
|
|
| 170 |
for directory in [visibility_dir, path_dir, all_dir]:
|
| 171 |
directory.mkdir(parents=True, exist_ok=True)
|
| 172 |
|
| 173 |
+
visibility_frames = _range_inclusive(max(0, phase_cross - 12), min(max_frame, phase_cross + 28), 1)
|
| 174 |
+
path_frames = _range_inclusive(max(0, phase_cross - 8), min(max_frame, phase_cross + 80), 2)
|
| 175 |
+
all_frames = _range_inclusive(0, max_frame, 2)
|
| 176 |
unique_frames = sorted(set(visibility_frames) | set(path_frames) | set(all_frames))
|
| 177 |
|
| 178 |
pending = unique_frames[:]
|
|
|
|
| 231 |
if not path.exists():
|
| 232 |
raise RuntimeError(f"missing rendered frame: {path}")
|
| 233 |
|
| 234 |
+
_assemble_gif(
|
| 235 |
+
visibility_pngs,
|
| 236 |
+
output_dir.joinpath(f"{episode_name}_visibility_focus.gif"),
|
| 237 |
+
duration_ms=120,
|
| 238 |
+
)
|
| 239 |
+
_assemble_gif(
|
| 240 |
+
path_pngs,
|
| 241 |
+
output_dir.joinpath(f"{episode_name}_path_quality_focus.gif"),
|
| 242 |
+
duration_ms=120,
|
| 243 |
+
)
|
| 244 |
+
_assemble_gif(
|
| 245 |
+
all_pngs,
|
| 246 |
+
output_dir.joinpath(f"{episode_name}_all_metrics.gif"),
|
| 247 |
+
duration_ms=100,
|
| 248 |
+
)
|
| 249 |
|
| 250 |
readme = output_dir.joinpath("README.md")
|
| 251 |
readme.write_text(
|
|
|
|
| 253 |
[
|
| 254 |
"# Visualizations",
|
| 255 |
"",
|
| 256 |
+
f"- `{episode_name}_visibility_focus.gif`: three-view visibility montage over dense frames {visibility_frames[0]}-{visibility_frames[-1]}.",
|
| 257 |
+
f"- `{episode_name}_path_quality_focus.gif`: path-quality montage over dense frames {path_frames[0]}-{path_frames[-1]}.",
|
| 258 |
+
f"- `{episode_name}_all_metrics.gif`: full episode overlay GIF over dense frames 0-{max_frame}, sampled every 2 frames.",
|
| 259 |
"- `frames/visibility_focus/`: per-frame PNGs with scene overlays, x-ray projections, and tray-mask views.",
|
| 260 |
"- `frames/path_quality_focus/`: per-frame PNGs with demo wrist trails plus planned pregrasp/grasp/retreat path overlays.",
|
| 261 |
"- `frames/all_metrics/`: per-frame PNGs with the episode-wide metric bars and phase banner.",
|
code/scripts/run_oven_frame_batch.py
CHANGED
|
@@ -9,7 +9,11 @@ PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
|
| 9 |
if str(PROJECT_ROOT) not in sys.path:
|
| 10 |
sys.path.insert(0, str(PROJECT_ROOT))
|
| 11 |
|
| 12 |
-
from rr_label_study.oven_study import
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
|
| 14 |
|
| 15 |
def main() -> int:
|
|
@@ -19,13 +23,19 @@ def main() -> int:
|
|
| 19 |
parser.add_argument("--frame-indices", nargs="+", type=int, required=True)
|
| 20 |
parser.add_argument("--checkpoint-stride", type=int, default=16)
|
| 21 |
parser.add_argument("--output-dir", required=True)
|
|
|
|
| 22 |
args = parser.parse_args()
|
| 23 |
|
| 24 |
episode_dir = Path(args.episode_dir)
|
| 25 |
with Path(args.templates_pkl).open("rb") as handle:
|
| 26 |
templates = pickle.load(handle)
|
| 27 |
demo = _load_demo(episode_dir)
|
| 28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
episode_dir=episode_dir,
|
| 30 |
demo=demo,
|
| 31 |
templates=templates,
|
|
|
|
| 9 |
if str(PROJECT_ROOT) not in sys.path:
|
| 10 |
sys.path.insert(0, str(PROJECT_ROOT))
|
| 11 |
|
| 12 |
+
from rr_label_study.oven_study import (
|
| 13 |
+
_compute_frame_rows_independent,
|
| 14 |
+
_compute_frame_rows_sequential,
|
| 15 |
+
_load_demo,
|
| 16 |
+
)
|
| 17 |
|
| 18 |
|
| 19 |
def main() -> int:
|
|
|
|
| 23 |
parser.add_argument("--frame-indices", nargs="+", type=int, required=True)
|
| 24 |
parser.add_argument("--checkpoint-stride", type=int, default=16)
|
| 25 |
parser.add_argument("--output-dir", required=True)
|
| 26 |
+
parser.add_argument("--independent-replay", action="store_true")
|
| 27 |
args = parser.parse_args()
|
| 28 |
|
| 29 |
episode_dir = Path(args.episode_dir)
|
| 30 |
with Path(args.templates_pkl).open("rb") as handle:
|
| 31 |
templates = pickle.load(handle)
|
| 32 |
demo = _load_demo(episode_dir)
|
| 33 |
+
compute_rows = (
|
| 34 |
+
_compute_frame_rows_independent
|
| 35 |
+
if args.independent_replay
|
| 36 |
+
else _compute_frame_rows_sequential
|
| 37 |
+
)
|
| 38 |
+
rows = compute_rows(
|
| 39 |
episode_dir=episode_dir,
|
| 40 |
demo=demo,
|
| 41 |
templates=templates,
|
code/scripts/run_oven_pregrasp_batch.py
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from pathlib import Path
|
| 2 |
+
import argparse
|
| 3 |
+
import json
|
| 4 |
+
import pickle
|
| 5 |
+
import sys
|
| 6 |
+
|
| 7 |
+
import numpy as np
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
| 11 |
+
if str(PROJECT_ROOT) not in sys.path:
|
| 12 |
+
sys.path.insert(0, str(PROJECT_ROOT))
|
| 13 |
+
|
| 14 |
+
from rr_label_study.oven_study import (
|
| 15 |
+
BimanualTakeTrayOutOfOven,
|
| 16 |
+
ReplayCache,
|
| 17 |
+
_launch_replay_env,
|
| 18 |
+
_load_demo,
|
| 19 |
+
_pregrasp_progress_and_distance,
|
| 20 |
+
_pregrasp_score_and_success,
|
| 21 |
+
)
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
def main() -> int:
|
| 25 |
+
parser = argparse.ArgumentParser()
|
| 26 |
+
parser.add_argument("--episode-dir", required=True)
|
| 27 |
+
parser.add_argument("--templates-pkl", required=True)
|
| 28 |
+
parser.add_argument("--frame-indices", nargs="+", type=int, required=True)
|
| 29 |
+
parser.add_argument("--checkpoint-stride", type=int, default=16)
|
| 30 |
+
parser.add_argument("--output-dir", required=True)
|
| 31 |
+
args = parser.parse_args()
|
| 32 |
+
|
| 33 |
+
output_dir = Path(args.output_dir)
|
| 34 |
+
output_dir.mkdir(parents=True, exist_ok=True)
|
| 35 |
+
frame_indices = sorted(set(args.frame_indices))
|
| 36 |
+
pending_frame_indices = [
|
| 37 |
+
frame_index
|
| 38 |
+
for frame_index in frame_indices
|
| 39 |
+
if not output_dir.joinpath(f"frame_{frame_index:04d}.json").exists()
|
| 40 |
+
]
|
| 41 |
+
if not pending_frame_indices:
|
| 42 |
+
return 0
|
| 43 |
+
|
| 44 |
+
episode_dir = Path(args.episode_dir)
|
| 45 |
+
with Path(args.templates_pkl).open("rb") as handle:
|
| 46 |
+
templates = pickle.load(handle)
|
| 47 |
+
demo = _load_demo(episode_dir)
|
| 48 |
+
|
| 49 |
+
env = _launch_replay_env()
|
| 50 |
+
try:
|
| 51 |
+
task = env.get_task(BimanualTakeTrayOutOfOven)
|
| 52 |
+
cache = ReplayCache(task, demo, checkpoint_stride=args.checkpoint_stride)
|
| 53 |
+
cache.reset()
|
| 54 |
+
total = len(pending_frame_indices)
|
| 55 |
+
for completed, frame_index in enumerate(pending_frame_indices, start=1):
|
| 56 |
+
cache.step_to(frame_index)
|
| 57 |
+
state = cache.current_state()
|
| 58 |
+
pregrasp_progress, pregrasp_distance = _pregrasp_progress_and_distance(
|
| 59 |
+
np.asarray(state.left_gripper_pose, dtype=np.float64),
|
| 60 |
+
np.asarray(state.tray_pose, dtype=np.float64),
|
| 61 |
+
templates,
|
| 62 |
+
)
|
| 63 |
+
p_pre, y_pre = _pregrasp_score_and_success(task, templates)
|
| 64 |
+
row = {
|
| 65 |
+
"frame_index": int(frame_index),
|
| 66 |
+
"pregrasp_progress": float(pregrasp_progress),
|
| 67 |
+
"pregrasp_distance": float(pregrasp_distance),
|
| 68 |
+
"p_pre": float(p_pre),
|
| 69 |
+
"y_pre_raw": float(bool(y_pre)),
|
| 70 |
+
"y_pre": float(bool(y_pre)),
|
| 71 |
+
}
|
| 72 |
+
row_path = output_dir.joinpath(f"frame_{frame_index:04d}.json")
|
| 73 |
+
tmp_path = row_path.with_suffix(".json.tmp")
|
| 74 |
+
with tmp_path.open("w", encoding="utf-8") as handle:
|
| 75 |
+
json.dump(row, handle)
|
| 76 |
+
tmp_path.replace(row_path)
|
| 77 |
+
if completed == total or completed % 8 == 0:
|
| 78 |
+
print(
|
| 79 |
+
json.dumps(
|
| 80 |
+
{
|
| 81 |
+
"done": completed,
|
| 82 |
+
"total": total,
|
| 83 |
+
"frame_index": int(frame_index),
|
| 84 |
+
}
|
| 85 |
+
),
|
| 86 |
+
flush=True,
|
| 87 |
+
)
|
| 88 |
+
finally:
|
| 89 |
+
env.shutdown()
|
| 90 |
+
return 0
|
| 91 |
+
|
| 92 |
+
|
| 93 |
+
if __name__ == "__main__":
|
| 94 |
+
raise SystemExit(main())
|