lsnu commited on
Commit
150d02a
·
verified ·
1 Parent(s): d98dfd9

Add files using upload-large-folder tool

Browse files
Files changed (50) hide show
  1. MANIFEST.txt +114 -0
  2. README.md +154 -0
  3. artifacts/results/oven_episode0_full/episode0.dense.csv +330 -0
  4. artifacts/results/oven_episode0_full/episode0.keyframes.csv +15 -0
  5. artifacts/results/oven_episode0_full/episode0.metrics.json +47 -0
  6. artifacts/results/oven_episode0_full/summary.json +94 -0
  7. artifacts/results/oven_episode0_full/templates.json +71 -0
  8. artifacts/results/oven_episode0_full_v2/templates.json +72 -0
  9. artifacts/results/oven_episode0_full_v3/episode0.dense.csv +330 -0
  10. artifacts/results/oven_episode0_full_v3/episode0.keyframes.csv +15 -0
  11. artifacts/results/oven_episode0_full_v3/episode0.metrics.json +47 -0
  12. artifacts/results/oven_episode0_full_v3/summary.json +94 -0
  13. artifacts/results/oven_episode0_full_v3/templates.json +108 -0
  14. artifacts/results/oven_episode0_full_v4/episode0.dense.csv +330 -0
  15. artifacts/results/oven_episode0_full_v4/episode0.keyframes.csv +15 -0
  16. artifacts/results/oven_episode0_full_v4/episode0.metrics.json +47 -0
  17. artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0247.json +1 -0
  18. artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0249.json +1 -0
  19. artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0253.json +1 -0
  20. artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0254.json +1 -0
  21. artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0255.json +1 -0
  22. artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0258.json +1 -0
  23. artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0263.json +1 -0
  24. artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0278.json +1 -0
  25. artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0283.json +1 -0
  26. artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0294.json +1 -0
  27. artifacts/results/parallel_smoke_2x10/parallel_summary.json +94 -0
  28. artifacts/results/parallel_smoke_2x10/parallel_workers.json +16 -0
  29. artifacts/results/parallel_smoke_2x10/worker_00/episode0.keyframes.csv +1 -0
  30. artifacts/results/parallel_smoke_2x10/worker_00/templates.json +72 -0
  31. artifacts/results/parallel_smoke_2x10/worker_00/xvfb.log +0 -0
  32. artifacts/results/parallel_smoke_2x10/worker_01/episode1.dense.csv +11 -0
  33. artifacts/results/parallel_smoke_2x10/worker_01/episode1.metrics.json +47 -0
  34. artifacts/results/parallel_smoke_2x10/worker_01/summary.json +94 -0
  35. artifacts/results/parallel_smoke_2x10/worker_01/templates.json +72 -0
  36. artifacts/results/parallel_smoke_2x10/worker_01/worker.log +102 -0
  37. artifacts/results/parallel_smoke_2x10/worker_01/xvfb.log +0 -0
  38. code/rr_label_study/__init__.py +3 -0
  39. code/rr_label_study/oven_study.py +1222 -0
  40. code/scripts/launch_parallel_oven_label_study.py +223 -0
  41. code/scripts/repair_oven_episode_dense.py +375 -0
  42. code/scripts/run_oven_label_study.py +13 -0
  43. code/scripts/run_oven_single_frame.py +43 -0
  44. environment/activate_rlbench_runtime.sh +26 -0
  45. environment/conda_env_rlbench.yml +202 -0
  46. environment/dataset_notes.txt +17 -0
  47. environment/pip_freeze_rlbench.txt +64 -0
  48. environment/repo_revisions.txt +21 -0
  49. environment/setup_same_hardware.sh +58 -0
  50. environment/system_info.txt +34 -0
MANIFEST.txt ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MANIFEST.txt
2
+ README.md
3
+ artifacts/results/oven_episode0_full/episode0.dense.csv
4
+ artifacts/results/oven_episode0_full/episode0.keyframes.csv
5
+ artifacts/results/oven_episode0_full/episode0.metrics.json
6
+ artifacts/results/oven_episode0_full/summary.json
7
+ artifacts/results/oven_episode0_full/templates.json
8
+ artifacts/results/oven_episode0_full_v2/templates.json
9
+ artifacts/results/oven_episode0_full_v3/episode0.dense.csv
10
+ artifacts/results/oven_episode0_full_v3/episode0.keyframes.csv
11
+ artifacts/results/oven_episode0_full_v3/episode0.metrics.json
12
+ artifacts/results/oven_episode0_full_v3/summary.json
13
+ artifacts/results/oven_episode0_full_v3/templates.json
14
+ artifacts/results/oven_episode0_full_v4/episode0.dense.csv
15
+ artifacts/results/oven_episode0_full_v4/episode0.keyframes.csv
16
+ artifacts/results/oven_episode0_full_v4/episode0.metrics.json
17
+ artifacts/results/oven_episode0_full_v4/summary.json
18
+ artifacts/results/oven_episode0_full_v4/templates.json
19
+ artifacts/results/oven_episode0_independent_v1/episode0.dense.csv
20
+ artifacts/results/oven_episode0_independent_v1/episode0.keyframes.csv
21
+ artifacts/results/oven_episode0_independent_v1/episode0.metrics.json
22
+ artifacts/results/oven_episode0_independent_v1/summary.json
23
+ artifacts/results/oven_episode0_independent_v1/templates.json
24
+ artifacts/results/oven_episode0_independent_v2/templates.json
25
+ artifacts/results/oven_episode0_independent_v3/templates.json
26
+ artifacts/results/oven_episode0_repaired_v1/episode0.dense.csv
27
+ artifacts/results/oven_episode0_repaired_v1/episode0.keyframes.csv
28
+ artifacts/results/oven_episode0_repaired_v1/episode0.metrics.json
29
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0247.json
30
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0249.json
31
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0250.json
32
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0253.json
33
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0254.json
34
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0255.json
35
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0258.json
36
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0263.json
37
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0265.json
38
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0269.json
39
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0270.json
40
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0271.json
41
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0276.json
42
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0277.json
43
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0278.json
44
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0279.json
45
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0280.json
46
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0282.json
47
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0283.json
48
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0284.json
49
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0288.json
50
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0292.json
51
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0293.json
52
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0294.json
53
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0296.json
54
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0297.json
55
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0298.json
56
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0302.json
57
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0308.json
58
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0312.json
59
+ artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0314.json
60
+ artifacts/results/oven_episode0_repaired_v1/summary.json
61
+ artifacts/results/oven_episode0_repaired_v1/templates.json
62
+ artifacts/results/oven_episode0_repaired_v1/templates.pkl
63
+ artifacts/results/oven_episode0_repaired_v1/xvfb_170.log
64
+ artifacts/results/oven_episode0_repaired_v1/xvfb_171.log
65
+ artifacts/results/oven_episode0_repaired_v1/xvfb_172.log
66
+ artifacts/results/oven_episode0_repaired_v1/xvfb_173.log
67
+ artifacts/results/oven_smoke_1/templates.json
68
+ artifacts/results/oven_smoke_30/templates.json
69
+ artifacts/results/oven_smoke_30_fast/episode0.dense.csv
70
+ artifacts/results/oven_smoke_30_fast/episode0.keyframes.csv
71
+ artifacts/results/oven_smoke_30_fast/episode0.metrics.json
72
+ artifacts/results/oven_smoke_30_fast/summary.json
73
+ artifacts/results/oven_smoke_30_fast/templates.json
74
+ artifacts/results/oven_to240_independent/templates.json
75
+ artifacts/results/oven_to240_independent_v2/episode0.dense.csv
76
+ artifacts/results/oven_to240_independent_v2/episode0.keyframes.csv
77
+ artifacts/results/oven_to240_independent_v2/episode0.metrics.json
78
+ artifacts/results/oven_to240_independent_v2/summary.json
79
+ artifacts/results/oven_to240_independent_v2/templates.json
80
+ artifacts/results/oven_to240_realign/templates.json
81
+ artifacts/results/oven_to240_snapshot/episode0.dense.csv
82
+ artifacts/results/oven_to240_snapshot/episode0.keyframes.csv
83
+ artifacts/results/oven_to240_snapshot/episode0.metrics.json
84
+ artifacts/results/oven_to240_snapshot/summary.json
85
+ artifacts/results/oven_to240_snapshot/templates.json
86
+ artifacts/results/parallel_smoke_2x10/parallel_summary.json
87
+ artifacts/results/parallel_smoke_2x10/parallel_workers.json
88
+ artifacts/results/parallel_smoke_2x10/worker_00/episode0.dense.csv
89
+ artifacts/results/parallel_smoke_2x10/worker_00/episode0.keyframes.csv
90
+ artifacts/results/parallel_smoke_2x10/worker_00/episode0.metrics.json
91
+ artifacts/results/parallel_smoke_2x10/worker_00/summary.json
92
+ artifacts/results/parallel_smoke_2x10/worker_00/templates.json
93
+ artifacts/results/parallel_smoke_2x10/worker_00/worker.log
94
+ artifacts/results/parallel_smoke_2x10/worker_00/xvfb.log
95
+ artifacts/results/parallel_smoke_2x10/worker_01/episode1.dense.csv
96
+ artifacts/results/parallel_smoke_2x10/worker_01/episode1.keyframes.csv
97
+ artifacts/results/parallel_smoke_2x10/worker_01/episode1.metrics.json
98
+ artifacts/results/parallel_smoke_2x10/worker_01/summary.json
99
+ artifacts/results/parallel_smoke_2x10/worker_01/templates.json
100
+ artifacts/results/parallel_smoke_2x10/worker_01/worker.log
101
+ artifacts/results/parallel_smoke_2x10/worker_01/xvfb.log
102
+ code/rr_label_study/__init__.py
103
+ code/rr_label_study/oven_study.py
104
+ code/scripts/launch_parallel_oven_label_study.py
105
+ code/scripts/repair_oven_episode_dense.py
106
+ code/scripts/run_oven_label_study.py
107
+ code/scripts/run_oven_single_frame.py
108
+ environment/activate_rlbench_runtime.sh
109
+ environment/conda_env_rlbench.yml
110
+ environment/dataset_notes.txt
111
+ environment/pip_freeze_rlbench.txt
112
+ environment/repo_revisions.txt
113
+ environment/setup_same_hardware.sh
114
+ environment/system_info.txt
README.md ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # VLAdaptorBench
2
+
3
+ This repository contains the first-pass benchmark setup, metric code, debug history, and single-episode label-validation artifacts for the proposed VLA + adaptor study on `bimanual_take_tray_out_of_oven`.
4
+
5
+ This pass is a label study, not a policy study. No `pi0.5` integration is included here.
6
+
7
+ ## What is in this upload
8
+
9
+ - `code/rr_label_study/`
10
+ - Core study code, including dense replay, visibility metrics, pregrasp/extraction oracles, keyframe extraction, intervention checks, and summary metric computation.
11
+ - `code/scripts/`
12
+ - Study runners and helper scripts.
13
+ - `run_oven_label_study.py`: main dense/keyframe study runner.
14
+ - `launch_parallel_oven_label_study.py`: multi-display worker launcher.
15
+ - `run_oven_single_frame.py`: isolated single-frame recomputation helper.
16
+ - `repair_oven_episode_dense.py`: external repair pass for corrupted dense frames.
17
+ - `artifacts/results/`
18
+ - All result directories produced during debugging and validation.
19
+ - This includes failed/stale runs, partial runs, smoke runs, the first independent run, and the final repaired run.
20
+ - `environment/`
21
+ - Machine snapshot, conda env export, pip freeze, upstream repo revisions, runtime activation helper, setup helper, and dataset notes.
22
+ - `MANIFEST.txt`
23
+ - Flat file listing of the uploaded bundle contents.
24
+
25
+ ## Final validated artifact
26
+
27
+ The clean single-episode artifact is:
28
+
29
+ - `artifacts/results/oven_episode0_repaired_v1/episode0.dense.csv`
30
+ - `artifacts/results/oven_episode0_repaired_v1/episode0.keyframes.csv`
31
+ - `artifacts/results/oven_episode0_repaired_v1/episode0.metrics.json`
32
+ - `artifacts/results/oven_episode0_repaired_v1/summary.json`
33
+
34
+ Key numbers from `oven_episode0_repaired_v1`:
35
+
36
+ - `phase_switch_rises = 1`
37
+ - `phase_switch_falls = 0`
38
+ - `ppre_cross_frame = 232`
39
+ - `pext_cross_frame = 232`
40
+ - `ready_cross_frame = 234`
41
+ - `phase_cross_frame = 236`
42
+ - `dense_boundary_error_frames = 2`
43
+ - `key_boundary_error_keyframes = 1`
44
+ - `auroc_ppre_ypre = 1.0`
45
+ - `auprc_ppre_ypre = 1.0`
46
+ - `auroc_pext_yext = 1.0`
47
+ - `auprc_pext_yext = 1.0`
48
+ - `auroc_phase_yready = 0.9895`
49
+ - `auprc_phase_yready = 0.9850`
50
+ - `f1_phase_yready = 0.9894`
51
+ - Interventions:
52
+ - pre-ready `open_more` raises `p_ext` in `2/2`
53
+ - pre-ready extract succeeds in `0/2`
54
+ - post-ready extract succeeds in `2/2`
55
+ - post-ready extra reveal has low gain in `2/2`
56
+
57
+ ## What was done
58
+
59
+ The work in this bundle is the full benchmark/metric debugging path, including intermediate failures:
60
+
61
+ 1. Built dense replay and label-generation scaffolding around RLBench/PerAct-style demos.
62
+ 2. Verified the local RLBench fork was not actuating discrete grippers correctly through `BimanualJointPositionActionMode`.
63
+ 3. Patched replay to explicitly apply bimanual discrete gripper state from demonstrations.
64
+ 4. Fixed visibility scoring so it does not depend on stale simulator object handles in stored mask images.
65
+ 5. Reworked snapshot restoration to bypass RLBench task-state restore issues after grasp events.
66
+ 6. Tightened template extraction and extraction scoring for already-grasped/already-extracted states.
67
+ 7. Added independent replay evaluation for dense label validation.
68
+ 8. Identified remaining corrupted dense frames caused by repeated replay/restore contamination inside one simulator process.
69
+ 9. Added an external isolated-frame repair pass and used it to produce the clean `oven_episode0_repaired_v1` artifact.
70
+
71
+ The result directories preserve this whole path. They are intentionally not pruned.
72
+
73
+ ## Result directory guide
74
+
75
+ - `oven_smoke_1`, `oven_smoke_30`, `oven_smoke_30_fast`
76
+ - Early smoke tests.
77
+ - `oven_episode0_full*`
78
+ - Early full-episode dense runs before the replay/visibility/oracle fixes converged.
79
+ - `oven_to240_*`
80
+ - Shorter targeted runs used while debugging replay, snapshots, and late-phase drift.
81
+ - `oven_episode0_independent_v1`
82
+ - First successful independent dense pass. Core metrics were already strong, but the dense CSV still had stale corrupted rows.
83
+ - `oven_episode0_repaired_v1`
84
+ - Final cleaned artifact after isolated-frame recomputation.
85
+ - `parallel_smoke_2x10`
86
+ - Worker/Xvfb parallelization smoke test.
87
+
88
+ ## Environment
89
+
90
+ The run used:
91
+
92
+ - Ubuntu `22.04.5`
93
+ - Kernel `6.8.0-65-generic`
94
+ - `96` CPU cores visible
95
+ - `503 GiB` RAM visible
96
+ - `NVIDIA A40` with driver `570.195.03`
97
+ - CUDA reported by `nvidia-smi`: `12.8`
98
+
99
+ See:
100
+
101
+ - `environment/system_info.txt`
102
+ - `environment/repo_revisions.txt`
103
+ - `environment/conda_env_rlbench.yml`
104
+ - `environment/pip_freeze_rlbench.txt`
105
+
106
+ ## Upstream repos used
107
+
108
+ Exact upstream revisions are recorded in `environment/repo_revisions.txt`.
109
+
110
+ The local run used:
111
+
112
+ - `markusgrotz/RLBench` at `8af748c51287989294e00c9c670e3330a0e35ed5`
113
+ - `markusgrotz/PyRep` at `b8bd1d7a3182adcd570d001649c0849047ebf197`
114
+ - `markusgrotz/peract_bimanual` at `bb0232a6ba3fe116566e9568f0c7af980ed6703d`
115
+ - `markusgrotz/YARR` at `6822ff78602c77878b27d4cfe759ce029c67bffb`
116
+
117
+ ## Reproducing on the same hardware class
118
+
119
+ 1. Read `environment/dataset_notes.txt`.
120
+ 2. Run `environment/setup_same_hardware.sh /workspace`.
121
+ 3. Source `environment/activate_rlbench_runtime.sh /workspace`.
122
+ 4. Run the dense study:
123
+
124
+ ```bash
125
+ python /workspace/VLAdaptorBench_upload/code/scripts/run_oven_label_study.py \
126
+ --dataset-root /workspace/data/bimanual_take_tray_out_of_oven_train_128 \
127
+ --result-dir /workspace/tmp_run \
128
+ --max-episodes 1 \
129
+ --checkpoint-stride 16 \
130
+ --template-episode-index 0 \
131
+ --independent-replay
132
+ ```
133
+
134
+ 5. If the dense CSV shows the known replay contamination pattern, run the external repair pass:
135
+
136
+ ```bash
137
+ python /workspace/VLAdaptorBench_upload/code/scripts/repair_oven_episode_dense.py \
138
+ --dataset-root /workspace/data/bimanual_take_tray_out_of_oven_train_128 \
139
+ --episode-dir /workspace/data/bimanual_take_tray_out_of_oven_train_128/all_variations/episodes/episode0 \
140
+ --input-dense-csv /workspace/tmp_run/episode0.dense.csv \
141
+ --output-dir /workspace/tmp_run_repaired \
142
+ --checkpoint-stride 16 \
143
+ --num-workers 4 \
144
+ --base-display 170 \
145
+ --template-episode-dir /workspace/data/bimanual_take_tray_out_of_oven_train_128/all_variations/episodes/episode0
146
+ ```
147
+
148
+ ## Important note about baselines
149
+
150
+ On a single deterministic episode, normalized time can become a degenerate perfect predictor for `y_ext`. That is an artifact of single-episode evaluation, not evidence that time is a useful control signal. The cleaned artifact here should be treated as a validated single-episode label trace, not as a multi-episode benchmark conclusion.
151
+
152
+ ## Dataset note
153
+
154
+ The upstream RLBench demonstration dataset itself is not re-uploaded in this bundle. This repo contains the study code and all artifacts generated from the local run. The expected dataset path is documented in `environment/dataset_notes.txt`.
artifacts/results/oven_episode0_full/episode0.dense.csv ADDED
@@ -0,0 +1,330 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ frame_index,time_norm,door_angle,right_gripper_open,left_gripper_open,p_pre,p_ext,y_pre,y_ext,three_view_visibility,three_view_whole_tray_visibility,full_view_visibility,full_view_whole_tray_visibility,door_speed_abs,y_ready,phase_switch
2
+ 0,0.0,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
3
+ 1,0.003048780487804878,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
4
+ 2,0.006097560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
5
+ 3,0.009146341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
6
+ 4,0.012195121951219513,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
7
+ 5,0.01524390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
8
+ 6,0.018292682926829267,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
9
+ 7,0.021341463414634148,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
10
+ 8,0.024390243902439025,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
11
+ 9,0.027439024390243903,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
12
+ 10,0.03048780487804878,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
13
+ 11,0.03353658536585366,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
14
+ 12,0.036585365853658534,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
15
+ 13,0.039634146341463415,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
16
+ 14,0.042682926829268296,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
17
+ 15,0.04573170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
18
+ 16,0.04878048780487805,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
19
+ 17,0.051829268292682924,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
20
+ 18,0.054878048780487805,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
21
+ 19,0.057926829268292686,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
22
+ 20,0.06097560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
23
+ 21,0.06402439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
24
+ 22,0.06707317073170732,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
26
+ 24,0.07317073170731707,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
27
+ 25,0.07621951219512195,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
28
+ 26,0.07926829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
29
+ 27,0.08231707317073171,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
30
+ 28,0.08536585365853659,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
31
+ 29,0.08841463414634146,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
32
+ 30,0.09146341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
33
+ 31,0.09451219512195122,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
35
+ 33,0.10060975609756098,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
36
+ 34,0.10365853658536585,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
37
+ 35,0.10670731707317073,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
38
+ 36,0.10975609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
39
+ 37,0.11280487804878049,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
40
+ 38,0.11585365853658537,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
41
+ 39,0.11890243902439024,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
42
+ 40,0.12195121951219512,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
44
+ 42,0.12804878048780488,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
45
+ 43,0.13109756097560976,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
46
+ 44,0.13414634146341464,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
47
+ 45,0.13719512195121952,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
48
+ 46,0.1402439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
49
+ 47,0.14329268292682926,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
50
+ 48,0.14634146341463414,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
51
+ 49,0.14939024390243902,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
53
+ 51,0.15548780487804878,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
54
+ 52,0.15853658536585366,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
55
+ 53,0.16158536585365854,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
56
+ 54,0.16463414634146342,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
57
+ 55,0.1676829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
58
+ 56,0.17073170731707318,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
59
+ 57,0.17378048780487804,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
60
+ 58,0.17682926829268292,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
62
+ 60,0.18292682926829268,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
63
+ 61,0.18597560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
64
+ 62,0.18902439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
65
+ 63,0.19207317073170732,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
66
+ 64,0.1951219512195122,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
67
+ 65,0.19817073170731708,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
68
+ 66,0.20121951219512196,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
69
+ 67,0.20426829268292682,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
70
+ 68,0.2073170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
71
+ 69,0.21036585365853658,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
72
+ 70,0.21341463414634146,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
73
+ 71,0.21646341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
74
+ 72,0.21951219512195122,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
75
+ 73,0.2225609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
76
+ 74,0.22560975609756098,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
77
+ 75,0.22865853658536586,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
78
+ 76,0.23170731707317074,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
79
+ 77,0.2347560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
80
+ 78,0.23780487804878048,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
81
+ 79,0.24085365853658536,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
82
+ 80,0.24390243902439024,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
83
+ 81,0.24695121951219512,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
84
+ 82,0.25,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
85
+ 83,0.2530487804878049,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
86
+ 84,0.25609756097560976,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
87
+ 85,0.25914634146341464,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,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.0,0.0,0.0,0.0,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.0,0.0,0.0,0.0,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.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
91
+ 89,0.27134146341463417,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
92
+ 90,0.27439024390243905,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
93
+ 91,0.2774390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
94
+ 92,0.2804878048780488,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
95
+ 93,0.28353658536585363,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
96
+ 94,0.2865853658536585,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
97
+ 95,0.2896341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
98
+ 96,0.2926829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
99
+ 97,0.29573170731707316,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
100
+ 98,0.29878048780487804,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
101
+ 99,0.3018292682926829,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
102
+ 100,0.3048780487804878,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
103
+ 101,0.3079268292682927,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
104
+ 102,0.31097560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
105
+ 103,0.31402439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
106
+ 104,0.3170731707317073,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
107
+ 105,0.3201219512195122,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
108
+ 106,0.3231707317073171,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
109
+ 107,0.32621951219512196,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
110
+ 108,0.32926829268292684,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
111
+ 109,0.3323170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
112
+ 110,0.3353658536585366,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
113
+ 111,0.3384146341463415,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
114
+ 112,0.34146341463414637,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
115
+ 113,0.3445121951219512,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
116
+ 114,0.3475609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
117
+ 115,0.35060975609756095,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
118
+ 116,0.35365853658536583,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
119
+ 117,0.3567073170731707,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
120
+ 118,0.3597560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
121
+ 119,0.3628048780487805,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
122
+ 120,0.36585365853658536,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
123
+ 121,0.36890243902439024,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
124
+ 122,0.3719512195121951,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
125
+ 123,0.375,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
126
+ 124,0.3780487804878049,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
127
+ 125,0.38109756097560976,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
128
+ 126,0.38414634146341464,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
129
+ 127,0.3871951219512195,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
130
+ 128,0.3902439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
131
+ 129,0.3932926829268293,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
132
+ 130,0.39634146341463417,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
133
+ 131,0.39939024390243905,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
134
+ 132,0.4024390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
135
+ 133,0.4054878048780488,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
136
+ 134,0.40853658536585363,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
137
+ 135,0.4115853658536585,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
138
+ 136,0.4146341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
139
+ 137,0.4176829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
140
+ 138,0.42073170731707316,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
141
+ 139,0.42378048780487804,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
142
+ 140,0.4268292682926829,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
143
+ 141,0.4298780487804878,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
144
+ 142,0.4329268292682927,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
145
+ 143,0.43597560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
146
+ 144,0.43902439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
147
+ 145,0.4420731707317073,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
148
+ 146,0.4451219512195122,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
149
+ 147,0.4481707317073171,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
150
+ 148,0.45121951219512196,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
151
+ 149,0.45426829268292684,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
152
+ 150,0.4573170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
153
+ 151,0.4603658536585366,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
154
+ 152,0.4634146341463415,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
155
+ 153,0.46646341463414637,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
156
+ 154,0.4695121951219512,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
157
+ 155,0.4725609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
158
+ 156,0.47560975609756095,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
159
+ 157,0.47865853658536583,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
160
+ 158,0.4817073170731707,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
161
+ 159,0.4847560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
162
+ 160,0.4878048780487805,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
163
+ 161,0.49085365853658536,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
164
+ 162,0.49390243902439024,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
165
+ 163,0.4969512195121951,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
166
+ 164,0.5,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
167
+ 165,0.5030487804878049,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
168
+ 166,0.5060975609756098,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
169
+ 167,0.5091463414634146,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
170
+ 168,0.5121951219512195,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
171
+ 169,0.5152439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
172
+ 170,0.5182926829268293,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
173
+ 171,0.5213414634146342,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
174
+ 172,0.524390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
175
+ 173,0.5274390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
176
+ 174,0.5304878048780488,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
177
+ 175,0.5335365853658537,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
178
+ 176,0.5365853658536586,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
179
+ 177,0.5396341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
180
+ 178,0.5426829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
181
+ 179,0.5457317073170732,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
182
+ 180,0.5487804878048781,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
183
+ 181,0.551829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
184
+ 182,0.5548780487804879,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
185
+ 183,0.5579268292682927,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
186
+ 184,0.5609756097560976,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
187
+ 185,0.5640243902439024,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
188
+ 186,0.5670731707317073,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
189
+ 187,0.5701219512195121,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
190
+ 188,0.573170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
191
+ 189,0.5762195121951219,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
192
+ 190,0.5792682926829268,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
193
+ 191,0.5823170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
194
+ 192,0.5853658536585366,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
195
+ 193,0.5884146341463414,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
196
+ 194,0.5914634146341463,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
197
+ 195,0.5945121951219512,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
198
+ 196,0.5975609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
199
+ 197,0.600609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
200
+ 198,0.6036585365853658,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
201
+ 199,0.6067073170731707,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
202
+ 200,0.6097560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
203
+ 201,0.6128048780487805,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
204
+ 202,0.6158536585365854,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
205
+ 203,0.6189024390243902,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
206
+ 204,0.6219512195121951,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
207
+ 205,0.625,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
208
+ 206,0.6280487804878049,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
209
+ 207,0.6310975609756098,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
210
+ 208,0.6341463414634146,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
211
+ 209,0.6371951219512195,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
212
+ 210,0.6402439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
213
+ 211,0.6432926829268293,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
214
+ 212,0.6463414634146342,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
215
+ 213,0.649390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
216
+ 214,0.6524390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
217
+ 215,0.6554878048780488,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
218
+ 216,0.6585365853658537,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.025801658630371094,0.0,0.0
219
+ 217,0.6615853658536586,1.5682162046432495,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06229877471923828,0.0,0.0
220
+ 218,0.6646341463414634,1.5770262479782104,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.050978660583496094,0.0,0.0
221
+ 219,0.6676829268292683,1.5733140707015991,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05507469177246094,0.0,0.0
222
+ 220,0.6707317073170732,1.5715187788009644,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.010721683502197266,0.0,0.0
223
+ 221,0.6737804878048781,1.5722419023513794,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006058216094970703,0.0,0.0
224
+ 222,0.676829268292683,1.5709129571914673,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07681846618652344,0.0,0.0
225
+ 223,0.6798780487804879,1.564560055732727,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.13027429580688477,0.0,0.0
226
+ 224,0.6829268292682927,1.5578855276107788,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.18486261367797852,0.0,0.0
227
+ 225,0.6859756097560976,1.5460737943649292,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.23247718811035156,0.0,0.0
228
+ 226,0.6890243902439024,1.5346378087997437,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.19779205322265625,0.0,0.0
229
+ 227,0.6920731707317073,1.5262945890426636,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21966934204101562,0.0,0.0
230
+ 228,0.6951219512195121,1.512670874595642,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.245819091796875,0.0,0.0
231
+ 229,0.698170731707317,1.501712679862976,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.24532318115234375,0.0,0.0
232
+ 230,0.7012195121951219,1.4881385564804077,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21081209182739258,0.0,0.0
233
+ 231,0.7042682926829268,1.4806314706802368,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1742076873779297,0.0,0.0
234
+ 232,0.7073170731707317,1.4707177877426147,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1432514190673828,0.0,0.0
235
+ 233,0.7103658536585366,1.4663063287734985,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10785341262817383,0.0,0.0
236
+ 234,0.7134146341463414,1.4599324464797974,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1160430908203125,0.0,0.0
237
+ 235,0.7164634146341463,1.4547020196914673,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08775472640991211,0.0,0.0
238
+ 236,0.7195121951219512,1.4511569738388062,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06876945495605469,0.0,0.0
239
+ 237,0.7225609756097561,1.4478250741958618,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.04881620407104492,0.0,0.0
240
+ 238,0.725609756097561,1.4462753534317017,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.016684532165527344,0.0,0.0
241
+ 239,0.7286585365853658,1.446156620979309,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0011801719665527344,0.0,0.0
242
+ 240,0.7317073170731707,1.4461573362350464,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.384185791015625e-05,0.0,0.0
243
+ 241,0.7347560975609756,1.446154236793518,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.291534423828125e-05,0.0,0.0
244
+ 242,0.7378048780487805,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.430511474609375e-05,0.0,0.0
245
+ 243,0.7408536585365854,1.4461528062820435,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.384185791015625e-06,0.0,0.0
246
+ 244,0.7439024390243902,1.4461528062820435,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
247
+ 245,0.7469512195121951,1.4461528062820435,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
248
+ 246,0.75,1.4461528062820435,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
249
+ 247,0.7530487804878049,1.4461528062820435,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
250
+ 248,0.7560975609756098,1.4461528062820435,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.76837158203125e-06,0.0,0.0
251
+ 249,0.7591463414634146,1.4461532831192017,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.76837158203125e-06,0.0,0.0
252
+ 250,0.7621951219512195,1.4461532831192017,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
253
+ 251,0.7652439024390244,1.4461532831192017,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.152557373046875e-06,0.0,0.0
254
+ 252,0.7682926829268293,1.446153998374939,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.5367431640625e-06,0.0,0.0
255
+ 253,0.7713414634146342,1.446154236793518,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.384185791015625e-06,0.0,0.0
256
+ 254,0.774390243902439,1.446154236793518,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
257
+ 255,0.7774390243902439,1.446154236793518,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.76837158203125e-06,0.0,0.0
258
+ 256,0.7804878048780488,1.4461537599563599,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.152557373046875e-06,0.0,0.0
259
+ 257,0.7835365853658537,1.4461535215377808,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
260
+ 258,0.7865853658536586,1.4461537599563599,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.384185791015625e-06,0.0,0.0
261
+ 259,0.7896341463414634,1.4461537599563599,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
262
+ 260,0.7926829268292683,1.4461537599563599,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.76837158203125e-06,0.0,0.0
263
+ 261,0.7957317073170732,1.4461532831192017,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.152557373046875e-06,0.0,0.0
264
+ 262,0.7987804878048781,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.384185791015625e-06,0.0,0.0
265
+ 263,0.801829268292683,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
266
+ 264,0.8048780487804879,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
267
+ 265,0.8079268292682927,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
268
+ 266,0.8109756097560976,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
269
+ 267,0.8140243902439024,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
270
+ 268,0.8170731707317073,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
271
+ 269,0.8201219512195121,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
272
+ 270,0.823170731707317,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
273
+ 271,0.8262195121951219,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
274
+ 272,0.8292682926829268,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
275
+ 273,0.8323170731707317,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
276
+ 274,0.8353658536585366,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
277
+ 275,0.8384146341463414,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
278
+ 276,0.8414634146341463,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
279
+ 277,0.8445121951219512,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
280
+ 278,0.8475609756097561,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
281
+ 279,0.850609756097561,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
282
+ 280,0.8536585365853658,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
283
+ 281,0.8567073170731707,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
284
+ 282,0.8597560975609756,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
285
+ 283,0.8628048780487805,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
286
+ 284,0.8658536585365854,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
287
+ 285,0.8689024390243902,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
288
+ 286,0.8719512195121951,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
289
+ 287,0.875,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
290
+ 288,0.8780487804878049,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
291
+ 289,0.8810975609756098,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
292
+ 290,0.8841463414634146,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
293
+ 291,0.8871951219512195,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
294
+ 292,0.8902439024390244,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
295
+ 293,0.8932926829268293,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
296
+ 294,0.8963414634146342,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
297
+ 295,0.899390243902439,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
298
+ 296,0.9024390243902439,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
299
+ 297,0.9054878048780488,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
300
+ 298,0.9085365853658537,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
301
+ 299,0.9115853658536586,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
302
+ 300,0.9146341463414634,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
303
+ 301,0.9176829268292683,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
304
+ 302,0.9207317073170732,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
305
+ 303,0.9237804878048781,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
306
+ 304,0.926829268292683,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
307
+ 305,0.9298780487804879,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
308
+ 306,0.9329268292682927,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
309
+ 307,0.9359756097560976,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.022416114807128906,0.0,0.0
310
+ 308,0.9390243902439024,1.4483946561813354,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.22216558456420898,0.0,0.0
311
+ 309,0.9420731707317073,1.4683696031570435,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3991246223449707,0.0,0.0
312
+ 310,0.9451219512195121,1.4883071184158325,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.36394596099853516,0.0,0.0
313
+ 311,0.948170731707317,1.504764199256897,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.29874324798583984,0.0,0.0
314
+ 312,0.9512195121951219,1.5181814432144165,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.24899005889892578,0.0,0.0
315
+ 313,0.9542682926829268,1.5296632051467896,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1957106590270996,0.0,0.0
316
+ 314,0.9573170731707317,1.5377525091171265,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08672952651977539,0.0,0.0
317
+ 315,0.9603658536585366,1.538336157798767,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03631114959716797,0.0,0.0
318
+ 316,0.9634146341463414,1.5413836240768433,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0497126579284668,0.0,0.0
319
+ 317,0.9664634146341463,1.5433074235916138,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03251314163208008,0.0,0.0
320
+ 318,0.9695121951219512,1.5446349382400513,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.035948753356933594,0.0,0.0
321
+ 319,0.9725609756097561,1.5469022989273071,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.021131038665771484,0.0,0.0
322
+ 320,0.975609756097561,1.5467480421066284,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0004601478576660156,0.0,0.0
323
+ 321,0.9786585365853658,1.5469483137130737,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0004076957702636719,0.0,0.0
324
+ 322,0.9817073170731707,1.546707272529602,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.003192424774169922,0.0,0.0
325
+ 323,0.9847560975609756,1.5466290712356567,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0007891654968261719,0.0,0.0
326
+ 324,0.9878048780487805,1.5466283559799194,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.152557373046875e-06,0.0,0.0
327
+ 325,0.9908536585365854,1.5466283559799194,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
328
+ 326,0.9939024390243902,1.5466283559799194,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
329
+ 327,0.9969512195121951,1.5466283559799194,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.384185791015625e-06,0.0,0.0
330
+ 328,1.0,1.5466281175613403,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.76837158203125e-06,0.0,0.0
artifacts/results/oven_episode0_full/episode0.keyframes.csv ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ frame_index,time_norm,door_angle,right_gripper_open,left_gripper_open,p_pre,p_ext,y_pre,y_ext,three_view_visibility,three_view_whole_tray_visibility,full_view_visibility,full_view_whole_tray_visibility,door_speed_abs,y_ready,phase_switch,keyframe_ordinal
2
+ 61,0.18597560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0
3
+ 91,0.2774390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1
4
+ 93,0.28353658536585363,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2
5
+ 130,0.39634146341463417,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3
6
+ 132,0.4024390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4
7
+ 175,0.5335365853658537,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5
8
+ 234,0.7134146341463414,1.4599324464797974,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1160430908203125,0.0,0.0,6
9
+ 236,0.7195121951219512,1.4511569738388062,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06876945495605469,0.0,0.0,7
10
+ 266,0.8109756097560976,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8
11
+ 295,0.899390243902439,1.4461530447006226,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9
12
+ 315,0.9603658536585366,1.538336157798767,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03631114959716797,0.0,0.0,10
13
+ 317,0.9664634146341463,1.5433074235916138,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03251314163208008,0.0,0.0,11
14
+ 322,0.9817073170731707,1.546707272529602,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.003192424774169922,0.0,0.0,12
15
+ 328,1.0,1.5466281175613403,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.76837158203125e-06,0.0,0.0,13
artifacts/results/oven_episode0_full/episode0.metrics.json ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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": 0,
7
+ "phase_switch_falls": 0,
8
+ "ppre_cross_frame": -1,
9
+ "pext_cross_frame": -1,
10
+ "phase_cross_frame": -1,
11
+ "ready_cross_frame": -1,
12
+ "ordering_ok": true,
13
+ "dense_boundary_error_frames": NaN,
14
+ "dense_boundary_error_fraction": NaN,
15
+ "key_boundary_error_keyframes": NaN,
16
+ "auroc_vret_ypre_three": NaN,
17
+ "auprc_vret_ypre_three": NaN,
18
+ "auroc_vret_ypre_full": NaN,
19
+ "auprc_vret_ypre_full": NaN,
20
+ "auroc_ppre_ypre": NaN,
21
+ "auprc_ppre_ypre": NaN,
22
+ "auroc_pext_yext": NaN,
23
+ "auprc_pext_yext": NaN,
24
+ "auroc_phase_yready": NaN,
25
+ "auprc_phase_yready": NaN,
26
+ "f1_phase_yready": NaN,
27
+ "baseline_auroc_door_yext": NaN,
28
+ "baseline_auprc_door_yext": NaN,
29
+ "baseline_auroc_time_yext": NaN,
30
+ "baseline_auprc_time_yext": NaN,
31
+ "baseline_auroc_whole_vis_yext": NaN,
32
+ "baseline_auprc_whole_vis_yext": NaN,
33
+ "pre_ready_open_more_increases_pext": 0.0,
34
+ "pre_ready_open_more_trials": 3.0,
35
+ "pre_ready_hold_open_increases_pext": 0.0,
36
+ "pre_ready_hold_open_trials": 3.0,
37
+ "pre_ready_extract_success": 0.0,
38
+ "pre_ready_extract_trials": 3.0,
39
+ "pre_ready_wait_extract_success": 0.0,
40
+ "pre_ready_wait_trials": 3.0,
41
+ "post_ready_extract_success": 0.0,
42
+ "post_ready_extract_trials": 0.0,
43
+ "post_ready_open_more_low_gain": 0.0,
44
+ "post_ready_open_more_trials": 0.0,
45
+ "post_ready_hold_open_low_gain": 0.0,
46
+ "post_ready_hold_open_trials": 0.0
47
+ }
artifacts/results/oven_episode0_full/summary.json ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "num_episodes": 1,
3
+ "mean_metrics": {
4
+ "num_dense_frames": 329.0,
5
+ "num_keyframes": 14.0,
6
+ "phase_switch_rises": 0.0,
7
+ "phase_switch_falls": 0.0,
8
+ "ppre_cross_frame": -1.0,
9
+ "pext_cross_frame": -1.0,
10
+ "phase_cross_frame": -1.0,
11
+ "ready_cross_frame": -1.0,
12
+ "dense_boundary_error_frames": NaN,
13
+ "dense_boundary_error_fraction": NaN,
14
+ "key_boundary_error_keyframes": NaN,
15
+ "auroc_vret_ypre_three": NaN,
16
+ "auprc_vret_ypre_three": NaN,
17
+ "auroc_vret_ypre_full": NaN,
18
+ "auprc_vret_ypre_full": NaN,
19
+ "auroc_ppre_ypre": NaN,
20
+ "auprc_ppre_ypre": NaN,
21
+ "auroc_pext_yext": NaN,
22
+ "auprc_pext_yext": NaN,
23
+ "auroc_phase_yready": NaN,
24
+ "auprc_phase_yready": NaN,
25
+ "f1_phase_yready": NaN,
26
+ "baseline_auroc_door_yext": NaN,
27
+ "baseline_auprc_door_yext": NaN,
28
+ "baseline_auroc_time_yext": NaN,
29
+ "baseline_auprc_time_yext": NaN,
30
+ "baseline_auroc_whole_vis_yext": NaN,
31
+ "baseline_auprc_whole_vis_yext": NaN,
32
+ "pre_ready_open_more_increases_pext": 0.0,
33
+ "pre_ready_open_more_trials": 3.0,
34
+ "pre_ready_hold_open_increases_pext": 0.0,
35
+ "pre_ready_hold_open_trials": 3.0,
36
+ "pre_ready_extract_success": 0.0,
37
+ "pre_ready_extract_trials": 3.0,
38
+ "pre_ready_wait_extract_success": 0.0,
39
+ "pre_ready_wait_trials": 3.0,
40
+ "post_ready_extract_success": 0.0,
41
+ "post_ready_extract_trials": 0.0,
42
+ "post_ready_open_more_low_gain": 0.0,
43
+ "post_ready_open_more_trials": 0.0,
44
+ "post_ready_hold_open_low_gain": 0.0,
45
+ "post_ready_hold_open_trials": 0.0
46
+ },
47
+ "median_metrics": {
48
+ "num_dense_frames": 329.0,
49
+ "num_keyframes": 14.0,
50
+ "phase_switch_rises": 0.0,
51
+ "phase_switch_falls": 0.0,
52
+ "ppre_cross_frame": -1.0,
53
+ "pext_cross_frame": -1.0,
54
+ "phase_cross_frame": -1.0,
55
+ "ready_cross_frame": -1.0,
56
+ "dense_boundary_error_frames": NaN,
57
+ "dense_boundary_error_fraction": NaN,
58
+ "key_boundary_error_keyframes": NaN,
59
+ "auroc_vret_ypre_three": NaN,
60
+ "auprc_vret_ypre_three": NaN,
61
+ "auroc_vret_ypre_full": NaN,
62
+ "auprc_vret_ypre_full": NaN,
63
+ "auroc_ppre_ypre": NaN,
64
+ "auprc_ppre_ypre": NaN,
65
+ "auroc_pext_yext": NaN,
66
+ "auprc_pext_yext": NaN,
67
+ "auroc_phase_yready": NaN,
68
+ "auprc_phase_yready": NaN,
69
+ "f1_phase_yready": NaN,
70
+ "baseline_auroc_door_yext": NaN,
71
+ "baseline_auprc_door_yext": NaN,
72
+ "baseline_auroc_time_yext": NaN,
73
+ "baseline_auprc_time_yext": NaN,
74
+ "baseline_auroc_whole_vis_yext": NaN,
75
+ "baseline_auprc_whole_vis_yext": NaN,
76
+ "pre_ready_open_more_increases_pext": 0.0,
77
+ "pre_ready_open_more_trials": 3.0,
78
+ "pre_ready_hold_open_increases_pext": 0.0,
79
+ "pre_ready_hold_open_trials": 3.0,
80
+ "pre_ready_extract_success": 0.0,
81
+ "pre_ready_extract_trials": 3.0,
82
+ "pre_ready_wait_extract_success": 0.0,
83
+ "pre_ready_wait_trials": 3.0,
84
+ "post_ready_extract_success": 0.0,
85
+ "post_ready_extract_trials": 0.0,
86
+ "post_ready_open_more_low_gain": 0.0,
87
+ "post_ready_open_more_trials": 0.0,
88
+ "post_ready_hold_open_low_gain": 0.0,
89
+ "post_ready_hold_open_trials": 0.0
90
+ },
91
+ "single_switch_rate": 0.0,
92
+ "reversion_rate": 0.0,
93
+ "ordering_ok_rate": 1.0
94
+ }
artifacts/results/oven_episode0_full/templates.json ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "templates": {
3
+ "pregrasp_rel_pose": [
4
+ -0.13080622153625854,
5
+ 0.09101976559951595,
6
+ 0.02870928398798034,
7
+ 0.5387310717060861,
8
+ 0.5160426587568956,
9
+ 0.45387044508326163,
10
+ 0.48730937380831085
11
+ ],
12
+ "grasp_rel_pose": [
13
+ -0.12734151579886066,
14
+ 0.08957834056859733,
15
+ 0.03087325631449933,
16
+ 0.5299842234493235,
17
+ 0.49388142793356815,
18
+ 0.4702687361365511,
19
+ 0.5040289414801972
20
+ ],
21
+ "retreat_rel_poses": [
22
+ [
23
+ -0.13649576054721357,
24
+ 0.09819523449397849,
25
+ 0.0103747024652463,
26
+ 0.4999387992730166,
27
+ 0.4984778938697299,
28
+ 0.4997914401835644,
29
+ 0.5017863117143504
30
+ ],
31
+ [
32
+ -0.2546191190272784,
33
+ 0.08419523798913177,
34
+ 0.0243663588873686,
35
+ 0.500806402191772,
36
+ 0.5002684909918421,
37
+ 0.4994416739891425,
38
+ 0.4994821305386226
39
+ ],
40
+ [
41
+ -0.3554965132950257,
42
+ 0.071270154826924,
43
+ 0.03977937595477288,
44
+ 0.5006546968340642,
45
+ 0.5000946885564522,
46
+ 0.49977557510595916,
47
+ 0.4994742751565132
48
+ ]
49
+ ],
50
+ "grasp_local_center": [
51
+ -0.12734151579886066,
52
+ 0.08957834056859731,
53
+ 0.03087325631449933
54
+ ],
55
+ "grasp_region_extents": [
56
+ 0.03,
57
+ 0.015,
58
+ 0.004
59
+ ],
60
+ "hold_open_angle": 1.5707963705062866,
61
+ "open_more_delta": 0.12,
62
+ "reference_tray_height": 1.047482967376709
63
+ },
64
+ "template_episode": "episode0",
65
+ "template_frames": {
66
+ "pregrasp": 229,
67
+ "grasp": 234,
68
+ "right_close": 91,
69
+ "right_open": 130
70
+ }
71
+ }
artifacts/results/oven_episode0_full_v2/templates.json ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "templates": {
3
+ "pregrasp_rel_pose": [
4
+ -0.12217129631756263,
5
+ 0.09345070134195246,
6
+ -0.006546997831216039,
7
+ 0.5503450945485194,
8
+ 0.5264249147312487,
9
+ 0.4450459711257041,
10
+ 0.47109571176286236
11
+ ],
12
+ "grasp_rel_pose": [
13
+ -0.09865615619553114,
14
+ 0.09471180553609355,
15
+ -0.023587008474192483,
16
+ 0.5452601219922814,
17
+ 0.5150377871073674,
18
+ 0.45379910210390734,
19
+ 0.48113808012481835
20
+ ],
21
+ "retreat_rel_poses": [
22
+ [
23
+ -0.13606082390231533,
24
+ 0.09925001755642679,
25
+ 0.007159999571909381,
26
+ 0.5039770117543441,
27
+ 0.5010234541575561,
28
+ 0.4975187314673166,
29
+ 0.4974512859027956
30
+ ],
31
+ [
32
+ -0.2552654879315805,
33
+ 0.083815355235409,
34
+ 0.026427587051652823,
35
+ 0.5037664607816129,
36
+ 0.5009063330333771,
37
+ 0.49769434689918807,
38
+ 0.4976068082163002
39
+ ],
40
+ [
41
+ -0.3560349902964857,
42
+ 0.07106825702195463,
43
+ 0.042513138540252404,
44
+ 0.503616487364867,
45
+ 0.5007298033035058,
46
+ 0.49802483935497605,
47
+ 0.49760562408734454
48
+ ]
49
+ ],
50
+ "grasp_local_center": [
51
+ -0.09865615619553109,
52
+ 0.09471180553609354,
53
+ -0.02358700847419226
54
+ ],
55
+ "grasp_region_extents": [
56
+ 0.03,
57
+ 0.015,
58
+ 0.004
59
+ ],
60
+ "hold_open_angle": 0.7285879850387573,
61
+ "open_more_delta": 0.12,
62
+ "reference_tray_height": 1.0472617149353027
63
+ },
64
+ "template_episode": "episode0",
65
+ "template_frames": {
66
+ "pregrasp": 229,
67
+ "grasp": 234,
68
+ "right_close": 91,
69
+ "right_open": 130
70
+ },
71
+ "episode_offset": 0
72
+ }
artifacts/results/oven_episode0_full_v3/episode0.dense.csv ADDED
@@ -0,0 +1,330 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ frame_index,time_norm,door_angle,right_gripper_open,left_gripper_open,p_pre,p_ext,y_pre,y_ext,three_view_visibility,three_view_whole_tray_visibility,full_view_visibility,full_view_whole_tray_visibility,door_speed_abs,y_ready,phase_switch
2
+ 0,0.0,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
3
+ 1,0.003048780487804878,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
4
+ 2,0.006097560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
5
+ 3,0.009146341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.10370370370370374,0.0,0.38387928669410154,0.0,0.0,0.0,0.0
6
+ 4,0.012195121951219513,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
7
+ 5,0.01524390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
8
+ 6,0.018292682926829267,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
9
+ 7,0.021341463414634148,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.09629629629629632,0.0,0.37878737997256506,0.0,0.0,0.0,0.0
10
+ 8,0.024390243902439025,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.10370370370370374,0.0,0.38387928669410154,0.0,0.0,0.0,0.0
11
+ 9,0.027439024390243903,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.09629629629629632,0.0,0.37878737997256506,0.0,0.0,0.0,0.0
12
+ 10,0.03048780487804878,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.10370370370370374,0.0,0.38387928669410154,0.0,0.0,0.0,0.0
13
+ 11,0.03353658536585366,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.10370370370370374,0.0,0.38387928669410154,0.0,0.0,0.0,0.0
14
+ 12,0.036585365853658534,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
15
+ 13,0.039634146341463415,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
16
+ 14,0.042682926829268296,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
17
+ 15,0.04573170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
18
+ 16,0.04878048780487805,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0
19
+ 17,0.051829268292682924,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.7992831541218638,0.0,0.8691799735484854,0.0,0.0,0.0,0.0
20
+ 18,0.054878048780487805,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.5294117647058824,0.0,0.6932875010086339,0.0,0.0,0.0,0.0
21
+ 19,0.057926829268292686,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3600000000000001,0.0,0.5828710013717421,0.0,0.0,0.0,0.0
22
+ 20,0.06097560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.33333333333333337,0.0,0.5858582533150435,0.0,0.0,0.0,0.0
23
+ 21,0.06402439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2592592592592593,0.0,0.5398425036833816,0.0,0.0,0.0,0.0
24
+ 22,0.06707317073170732,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.28230452674897133,0.0,0.5087487337676662,0.0,0.0,0.0,0.0
25
+ 23,0.0701219512195122,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.28230452674897133,0.0,0.44269814334987334,0.0,0.0,0.0,0.0
26
+ 24,0.07317073170731707,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.28888888888888886,0.0,0.44781100442005783,0.0,0.0,0.0,0.0
27
+ 25,0.07621951219512195,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.28888888888888886,0.0,0.44781100442005783,0.0,0.0,0.0,0.0
28
+ 26,0.07926829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.30205761316872426,0.0,0.45803672656042727,0.0,0.0,0.0,0.0
29
+ 27,0.08231707317073171,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.4411475215498992,0.0,0.0,0.0,0.0
30
+ 28,0.08536585365853659,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2954732510288066,0.0,0.4305027124365639,0.0,0.0,0.0,0.0
31
+ 29,0.08841463414634146,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.30205761316872426,0.0,0.4358251169932317,0.0,0.0,0.0,0.0
32
+ 30,0.09146341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.30205761316872426,0.0,0.4358251169932317,0.0,0.0,0.0,0.0
33
+ 31,0.09451219512195122,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.47195041406289695,0.0,0.0,0.0,0.0
34
+ 32,0.0975609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.47195041406289695,0.0,0.0,0.0,0.0
35
+ 33,0.10060975609756098,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.4939524801436096,0.0,0.0,0.0,0.0
36
+ 34,0.10365853658536585,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.4939524801436096,0.0,0.0,0.0,0.0
37
+ 35,0.10670731707317073,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3144032921810699,0.0,0.49816954280907944,0.0,0.0,0.0,0.0
38
+ 36,0.10975609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.4939524801436096,0.0,0.0,0.0,0.0
39
+ 37,0.11280487804878049,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.4939524801436096,0.0,0.0,0.0,0.0
40
+ 38,0.11585365853658537,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.4939524801436096,0.0,0.0,0.0,0.0
41
+ 39,0.11890243902439024,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3144032921810699,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
42
+ 40,0.12195121951219512,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.32016460905349786,0.0,0.5018146360555545,0.0,0.0,0.0,0.0
43
+ 41,0.125,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.32592592592592584,0.0,0.5060365459194907,0.0,0.0,0.0,0.0
44
+ 42,0.12804878048780488,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.32592592592592584,0.0,0.520781723653237,0.0,0.0,0.0,0.0
45
+ 43,0.13109756097560976,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3374485596707819,0.0,0.5362200507676299,0.0,0.0,0.0,0.0
46
+ 44,0.13414634146341464,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3374485596707819,0.0,0.5362200507676299,0.0,0.0,0.0,0.0
47
+ 45,0.13719512195121952,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.34897119341563787,0.0,0.5442857890151493,0.0,0.0,0.0,0.0
48
+ 46,0.1402439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.35473251028806585,0.0,0.548318658138909,0.0,0.0,0.0,0.0
49
+ 47,0.14329268292682926,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.36049382716049383,0.0,0.5523515272626688,0.0,0.0,0.0,0.0
50
+ 48,0.14634146341463414,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.37777777777777777,0.0,0.5644501346339481,0.0,0.0,0.0,0.0
51
+ 49,0.14939024390243902,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3662551440329217,0.0,0.5667816370961216,0.0,0.0,0.0,0.0
52
+ 50,0.1524390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.37777777777777777,0.0,0.5746583346034649,0.0,0.0,0.0,0.0
53
+ 51,0.15548780487804878,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.593089806770648,0.0,0.0,0.0,0.0
54
+ 52,0.15853658536585366,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.593089806770648,0.0,0.0,0.0,0.0
55
+ 53,0.16158536585365854,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6030144456299006,0.0,0.0,0.0,0.0
56
+ 54,0.16463414634146342,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6030144456299006,0.0,0.0,0.0,0.0
57
+ 55,0.1676829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
58
+ 56,0.17073170731707318,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
59
+ 57,0.17378048780487804,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
60
+ 58,0.17682926829268292,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
61
+ 59,0.1798780487804878,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
62
+ 60,0.18292682926829268,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
63
+ 61,0.18597560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
64
+ 62,0.18902439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
65
+ 63,0.19207317073170732,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
66
+ 64,0.1951219512195122,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
67
+ 65,0.19817073170731708,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
68
+ 66,0.20121951219512196,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
69
+ 67,0.20426829268292682,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
70
+ 68,0.2073170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3813131313131314,0.0,0.5973754462780525,0.0,0.0,0.0,0.0
71
+ 69,0.21036585365853658,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.36692506459948315,0.0,0.5880120845635887,0.0,0.0,0.0,0.0
72
+ 70,0.21341463414634146,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3388888888888889,0.0,0.5697669054514047,0.0,0.0,0.0,0.0
73
+ 71,0.21646341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.550083038380554,0.0,0.0,0.0,0.0
74
+ 72,0.21951219512195122,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.274074074074074,0.0,0.5275871902995817,0.0,0.0,0.0,0.0
75
+ 73,0.2225609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
76
+ 74,0.22560975609756098,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
77
+ 75,0.22865853658536586,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
78
+ 76,0.23170731707317074,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
79
+ 77,0.2347560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
80
+ 78,0.23780487804878048,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
81
+ 79,0.24085365853658536,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
82
+ 80,0.24390243902439024,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
83
+ 81,0.24695121951219512,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
84
+ 82,0.25,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
85
+ 83,0.2530487804878049,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
86
+ 84,0.25609756097560976,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
87
+ 85,0.25914634146341464,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
88
+ 86,0.2621951219512195,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
89
+ 87,0.2652439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
90
+ 88,0.2682926829268293,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
91
+ 89,0.27134146341463417,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
92
+ 90,0.27439024390243905,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
93
+ 91,0.2774390243902439,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
94
+ 92,0.2804878048780488,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
95
+ 93,0.28353658536585363,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
96
+ 94,0.2865853658536585,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
97
+ 95,0.2896341463414634,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.489590001524158,0.0,0.0,0.0,0.0
98
+ 96,0.2926829268292683,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.47191058273637143,0.0,0.0,0.0,0.0
99
+ 97,0.29573170731707316,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.46743524869176445,0.0,0.0,0.0,0.0
100
+ 98,0.29878048780487804,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.36543006655489507,0.0,0.0,0.0,0.0
101
+ 99,0.3018292682926829,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.31672637978627927,0.0,0.0,0.0,0.0
102
+ 100,0.3048780487804878,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.2541754813798709,0.0,0.0,0.0,0.0
103
+ 101,0.3079268292682927,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.20053812935020077,0.0,0.0,0.0,0.0
104
+ 102,0.31097560975609756,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.022222222222222254,0.0,0.0,0.0,0.0
105
+ 103,0.31402439024390244,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007117437722419906,0.0,0.0,0.0
106
+ 104,0.3170731707317073,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.19520990527476578,0.0,0.0,0.0
107
+ 105,0.3201219512195122,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3038112731029733,0.0,0.0,0.0
108
+ 106,0.3231707317073171,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.43617265526346016,0.0,0.0,0.0
109
+ 107,0.32621951219512196,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.510752688172043,0.0,0.0,0.0
110
+ 108,0.32926829268292684,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5295698924731184,0.0,0.0,0.0
111
+ 109,0.3323170731707317,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.610215053763441,0.0,0.0,0.0
112
+ 110,0.3353658536585366,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.6129032258064517,0.0,0.0,0.0
113
+ 111,0.3384146341463415,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.01680672268907568,0.0,0.6194090539441583,0.0,0.0,0.0
114
+ 112,0.34146341463414637,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.21288515406162467,0.0,0.6953103822174032,0.0,0.0,0.0
115
+ 113,0.3445121951219512,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.39495798319327724,0.0,0.765790187042559,0.0,0.0,0.0
116
+ 114,0.3475609756097561,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5882352941176471,0.0,0.8406072106261859,0.0,0.0,0.0
117
+ 115,0.35060975609756095,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.7675070028011205,0.0,0.9100027107617241,0.0,0.0,0.0
118
+ 116,0.35365853658536583,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
119
+ 117,0.3567073170731707,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
120
+ 118,0.3597560975609756,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
121
+ 119,0.3628048780487805,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
122
+ 120,0.36585365853658536,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
123
+ 121,0.36890243902439024,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
124
+ 122,0.3719512195121951,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8851540616246498,0.0,0.9555435077256709,0.0,0.0,0.0
125
+ 123,0.375,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
126
+ 124,0.3780487804878049,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
127
+ 125,0.38109756097560976,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
128
+ 126,0.38414634146341464,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8851540616246498,0.0,0.9555435077256709,0.0,0.0,0.0
129
+ 127,0.3871951219512195,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
130
+ 128,0.3902439024390244,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
131
+ 129,0.3932926829268293,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
132
+ 130,0.39634146341463417,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
133
+ 131,0.39939024390243905,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
134
+ 132,0.4024390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
135
+ 133,0.4054878048780488,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
136
+ 134,0.40853658536585363,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.876750700280112,0.0,0.9522905936568176,0.0,0.0,0.0
137
+ 135,0.4115853658536585,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
138
+ 136,0.4146341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
139
+ 137,0.4176829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8851540616246498,0.0,0.9555435077256709,0.0,0.0,0.0
140
+ 138,0.42073170731707316,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
141
+ 139,0.42378048780487804,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
142
+ 140,0.4268292682926829,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
143
+ 141,0.4298780487804878,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
144
+ 142,0.4329268292682927,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
145
+ 143,0.43597560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
146
+ 144,0.43902439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
147
+ 145,0.4420731707317073,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
148
+ 146,0.4451219512195122,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
149
+ 147,0.4481707317073171,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
150
+ 148,0.45121951219512196,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
151
+ 149,0.45426829268292684,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
152
+ 150,0.4573170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
153
+ 151,0.4603658536585366,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
154
+ 152,0.4634146341463415,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
155
+ 153,0.46646341463414637,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
156
+ 154,0.4695121951219512,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
157
+ 155,0.4725609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8851540616246498,0.0,0.9555435077256709,0.0,0.0,0.0
158
+ 156,0.47560975609756095,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
159
+ 157,0.47865853658536583,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
160
+ 158,0.4817073170731707,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
161
+ 159,0.4847560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
162
+ 160,0.4878048780487805,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
163
+ 161,0.49085365853658536,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
164
+ 162,0.49390243902439024,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
165
+ 163,0.4969512195121951,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
166
+ 164,0.5,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
167
+ 165,0.5030487804878049,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
168
+ 166,0.5060975609756098,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8968935888962326,0.0,0.9600878408630578,0.0,0.0,0.0
169
+ 167,0.5091463414634146,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9108003857280617,0.0,0.9654711170560238,0.0,0.0,0.0
170
+ 168,0.5121951219512195,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9176470588235294,0.0,0.9681214421252372,0.0,0.0,0.0
171
+ 169,0.5152439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9215686274509803,0.0,0.969639468690702,0.0,0.0,0.0
172
+ 170,0.5182926829268293,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9283299526707235,0.0,0.9722567558725381,0.0,0.0,0.0
173
+ 171,0.5213414634146342,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9276018099547512,0.0,0.9719748941760327,0.0,0.0,0.0
174
+ 172,0.524390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9197012138188608,0.0,0.9689165988976236,0.0,0.0,0.0
175
+ 173,0.5274390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9261485616144267,0.0,0.971412346431391,0.0,0.0,0.0
176
+ 174,0.5304878048780488,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9261485616144267,0.0,0.971412346431391,0.0,0.0,0.0
177
+ 175,0.5335365853658537,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9276688453159041,0.0,0.9720008433480919,0.0,0.0,0.0
178
+ 176,0.5365853658536586,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9267973856209151,0.0,0.971663504111322,0.0,0.0,0.0
179
+ 177,0.5396341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9267973856209151,0.0,0.971663504111322,0.0,0.0,0.0
180
+ 178,0.5426829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.922180607573866,0.0,0.9698763642221417,0.0,0.0,0.0
181
+ 179,0.5457317073170732,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.916640584246218,0.0,0.9677318390630522,0.0,0.0,0.0
182
+ 180,0.5487804878048781,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9261770244821093,0.0,0.9714233643156552,0.0,0.0,0.0
183
+ 181,0.551829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9296924042686755,0.0,0.9727841564911002,0.0,0.0,0.0
184
+ 182,0.5548780487804879,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9332077840552416,0.0,0.9741449486665452,0.0,0.0,0.0
185
+ 183,0.5579268292682927,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9233658587766237,0.0,0.9703351711393382,0.0,0.0,0.0
186
+ 184,0.5609756097560976,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9273187717632162,0.0,0.971865331005116,0.0,0.0,0.0
187
+ 185,0.5640243902439024,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9255460588793922,0.0,0.9711791195662164,0.0,0.0,0.0
188
+ 186,0.5670731707317073,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9237733459955683,0.0,0.9704929081273167,0.0,0.0,0.0
189
+ 187,0.5701219512195121,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9262433862433863,0.0,0.9714490527393753,0.0,0.0,0.0
190
+ 188,0.573170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9340633387010199,0.0,0.9744761311100723,0.0,0.0,0.0
191
+ 189,0.5762195121951219,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.933268921095008,0.0,0.9741686146174224,0.0,0.0,0.0
192
+ 190,0.5792682926829268,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9242512077294687,0.0,0.9706778868630201,0.0,0.0,0.0
193
+ 191,0.5823170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9224476650563607,0.0,0.9699797413121396,0.0,0.0,0.0
194
+ 192,0.5853658536585366,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9139869281045752,0.0,0.9667046173308033,0.0,0.0,0.0
195
+ 193,0.5884146341463414,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9174041297935104,0.0,0.9680274050813589,0.0,0.0,0.0
196
+ 194,0.5914634146341463,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9192395935758767,0.0,0.968737907190662,0.0,0.0,0.0
197
+ 195,0.5945121951219512,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9347099311701081,0.0,0.9747264249690741,0.0,0.0,0.0
198
+ 196,0.5975609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.936476535883064,0.0,0.9754102719547345,0.0,0.0,0.0
199
+ 197,0.600609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9252585919252586,0.0,0.9710678420355839,0.0,0.0,0.0
200
+ 198,0.6036585365853658,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9065732399065732,0.0,0.96383480254448,0.0,0.0,0.0
201
+ 199,0.6067073170731707,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.90214659103548,0.0,0.9621212610459923,0.0,0.0,0.0
202
+ 200,0.6097560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9224586288416076,0.0,0.9699839853580416,0.0,0.0,0.0
203
+ 201,0.6128048780487805,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9291623931623931,0.0,0.9725789909015715,0.0,0.0,0.0
204
+ 202,0.6158536585365854,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9327846364883402,0.0,0.9739811496083898,0.0,0.0,0.0
205
+ 203,0.6189024390243902,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9212620027434842,0.0,0.9695207752555423,0.0,0.0,0.0
206
+ 204,0.6219512195121951,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9118956963193723,0.0,0.9658951082526602,0.0,0.0,0.0
207
+ 205,0.625,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9195233087977568,0.0,0.9686313972464374,0.0,0.0,0.0
208
+ 206,0.6280487804878049,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9111111111111111,0.0,0.9646356033452808,0.0,0.0,0.0
209
+ 207,0.6310975609756098,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9118895966029724,0.0,0.9649453233796772,0.0,0.0,0.0
210
+ 208,0.6341463414634146,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.913969274740979,0.0,0.9657727222087765,0.0,0.0,0.0
211
+ 209,0.6371951219512195,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.905050505050505,0.0,0.962224394482459,0.0,0.0,0.0
212
+ 210,0.6402439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9034836817015035,0.0,0.9616010346554369,0.0,0.0,0.0
213
+ 211,0.6432926829268293,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9066666666666666,0.0,0.9628673835125447,0.0,0.0,0.0
214
+ 212,0.6463414634146342,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9068462401795735,0.0,0.9629388267381099,0.0,0.0,0.0
215
+ 213,0.649390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9187476135929744,0.0,0.9676737817520435,0.0,0.0,0.0
216
+ 214,0.6524390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9179012345679013,0.0,0.9673370503119607,0.0,0.0,0.0
217
+ 215,0.6554878048780488,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9017543859649122,0.0,0.9611771363893605,0.018265247344970703,0.0,0.0
218
+ 216,0.6585365853658537,1.5689698457717896,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9029156816390859,0.0,0.961636035486413,0.04101753234863281,0.0,0.0
219
+ 217,0.6615853658536586,1.57489812374115,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8974113898845082,0.0,0.9594609524543621,0.036661624908447266,0.0,0.0
220
+ 218,0.6646341463414634,1.5653036832809448,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9031339031339032,0.0,0.9614618754403701,0.041871070861816406,0.0,0.0
221
+ 219,0.6676829268292683,1.5707110166549683,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9032098765432098,0.0,0.9614921014204169,0.0492548942565918,0.0,0.0
222
+ 220,0.6707317073170732,1.570229172706604,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8928731762065095,0.0,0.9573796507488264,0.013015270233154297,0.0,0.0
223
+ 221,0.6737804878048781,1.5720125436782837,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9022968705139248,0.0,0.9615289020620781,0.06649017333984375,0.0,0.0
224
+ 222,0.676829268292683,1.5635801553726196,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8803336259877085,0.0,0.9527476123555737,0.1457667350769043,0.0,0.0
225
+ 223,0.6798780487804879,1.5574358701705933,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8563074352548037,0.0,0.9430879846730588,0.18584489822387695,0.0,0.0
226
+ 224,0.6829268292682927,1.544995665550232,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8718428724873408,0.0,0.9487119460200075,0.17051935195922852,0.0,0.0
227
+ 225,0.6859756097560976,1.5403839349746704,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8281145902731513,0.0,0.930933977080592,0.16570091247558594,0.0,0.0
228
+ 226,0.6890243902439024,1.5284255743026733,1.0,1.0,0.0,0.0,0.0,0.0,0.036817558299039876,0.7709146283430094,0.043952243052380324,0.9065443724960824,0.1722407341003418,0.0,0.0
229
+ 227,0.6920731707317073,1.5231598615646362,1.0,1.0,0.0,0.0,0.0,0.0,0.05843621399176957,0.7484094852515906,0.11423258649596102,0.8976901635869478,0.15769243240356445,0.0,0.0
230
+ 228,0.6951219512195121,1.512656331062317,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.6250353918268474,0.007407407407407418,0.8514795721901803,0.11820077896118164,0.0,0.0
231
+ 229,0.698170731707317,1.511339783668518,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.3837072018890201,0.0,0.7576288688517169,0.04808664321899414,0.0,0.0
232
+ 230,0.7012195121951219,1.5078476667404175,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.39239311668292065,0.0,0.7619012722365164,0.0661158561706543,0.0,0.0
233
+ 231,0.7042682926829268,1.5047281980514526,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.4866279623108404,0.0,0.7988284326605486,0.09317398071289062,0.0,0.0
234
+ 232,0.7073170731707317,1.4985302686691284,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5171189777017651,0.0,0.8107273634760735,0.11939048767089844,0.0,0.0
235
+ 233,0.7103658536585366,1.4927891492843628,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5079252184515343,0.0,0.8033266591780763,0.12217998504638672,0.0,0.0
236
+ 234,0.7134146341463414,1.4863122701644897,1.0,1.0,0.0,0.0,0.0,0.0,0.24511784511784507,0.3397129186602871,0.30103504177578244,0.7312440431700031,0.13529539108276367,0.0,0.0
237
+ 235,0.7164634146341463,1.4792596101760864,1.0,1.0,0.0,0.0,0.0,0.0,0.24511784511784507,0.35406698564593286,0.30103504177578244,0.7370865639706552,0.10102272033691406,0.0,0.0
238
+ 236,0.7195121951219512,1.4762099981307983,1.0,1.0,0.0,0.0,0.0,0.0,0.24511784511784507,0.35406698564593286,0.30103504177578244,0.7362707107737683,0.06863117218017578,0.0,0.0
239
+ 237,0.7225609756097561,1.4723964929580688,1.0,1.0,0.0,0.0,0.0,0.0,0.2248248248248248,0.35406698564593286,0.2822452081711341,0.7486283117546546,0.05735635757446289,0.0,0.0
240
+ 238,0.725609756097561,1.470474362373352,1.0,1.0,0.0,0.0,0.0,0.0,0.2023391812865497,0.332535885167464,0.2732423651721897,0.7588063918175701,0.01617431640625,0.0,0.0
241
+ 239,0.7286585365853658,1.4707790613174438,1.0,1.0,0.0,0.0,0.0,0.0,0.18233618233618232,0.29665071770334916,0.2364881838681565,0.7802722804607649,0.002689361572265625,0.0,0.0
242
+ 240,0.7317073170731707,1.4707432985305786,1.0,1.0,0.0,0.0,0.0,0.0,0.15320686540198725,0.3100398053958425,0.20928803486480207,0.7959578112932073,0.0003790855407714844,0.0,0.0
243
+ 241,0.7347560975609756,1.4707411527633667,1.0,1.0,0.0,0.0,0.0,0.0,0.11317829457364337,0.16541353383458646,0.17886879127189204,0.7711641718629887,1.430511474609375e-05,0.0,0.0
244
+ 242,0.7378048780487805,1.470741868019104,1.0,1.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.09022556390977443,0.0949494949494949,0.7636424994012375,2.384185791015625e-06,0.0,0.0
245
+ 243,0.7408536585365854,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.03007518796992481,0.014814814814814836,0.7808800454479718,4.76837158203125e-06,0.0,0.0
246
+ 244,0.7439024390243902,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.007518796992481258,0.0,0.779715411914264,0.0,0.0,0.0
247
+ 245,0.7469512195121951,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7721804856999357,0.0,0.0,0.0
248
+ 246,0.75,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7135831158082384,0.0,0.0,0.0
249
+ 247,0.7530487804878049,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.6130355892277329,0.0,0.0,0.0
250
+ 248,0.7560975609756098,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.41265158964274007,0.0,0.0,0.0
251
+ 249,0.7591463414634146,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.17544704649259946,0.0,0.0,0.0
252
+ 250,0.7621951219512195,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03971524845020735,0.0,0.0,0.0
253
+ 251,0.7652439024390244,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.012402068068639638,0.0,0.0,0.0
254
+ 252,0.7682926829268293,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00653636382929057,0.0,0.0,0.0
255
+ 253,0.7713414634146342,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.028055431760786065,0.0,0.0,0.0
256
+ 254,0.774390243902439,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.04806774049786722,0.0,0.0,0.0
257
+ 255,0.7774390243902439,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.014814814814814836,0.060822138749177634,0.0,0.0,0.0
258
+ 256,0.7804878048780488,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.014814814814814836,0.06399269964559329,0.0,0.0,0.0
259
+ 257,0.7835365853658537,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.022222222222222254,0.10397434264977401,0.0,0.0,0.0
260
+ 258,0.7865853658536586,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03703703703703698,0.1679001341699502,0.0,0.0,0.0
261
+ 259,0.7896341463414634,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0028985507246376274,0.1427160493827161,0.20487605159333044,0.0,0.0,0.0
262
+ 260,0.7926829268292683,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.005698005698005715,0.12157699537672095,0.2519078434988775,0.0,0.0,0.0
263
+ 261,0.7957317073170732,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0028248587570621764,0.1479957323578721,0.25897058006478846,0.0,0.0,0.0
264
+ 262,0.7987804878048781,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0028248587570621764,0.16120510084844775,0.3081675540023959,0.0,0.0,0.0
265
+ 263,0.801829268292683,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.005649717514124242,0.16120510084844775,0.31012741928850807,0.0,0.0,0.0
266
+ 264,0.8048780487804879,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.008474576271186418,0.16120510084844775,0.3120872845746203,0.0,0.0,0.0
267
+ 265,0.8079268292682927,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.008474576271186418,0.16120510084844775,0.3120872845746203,0.0,0.0,0.0
268
+ 266,0.8109756097560976,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.008403361344537785,0.16120510084844775,0.3120378762060627,0.0,0.0,0.0
269
+ 267,0.8140243902439024,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.008403361344537785,0.16120510084844775,0.3120378762060627,0.0,0.0,0.0
270
+ 268,0.8170731707317073,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.008403361344537785,0.16120510084844775,0.3120378762060627,0.0,0.0,0.0
271
+ 269,0.8201219512195121,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.022408963585434205,0.16120510084844775,0.3217548553556946,0.0,0.0,0.0
272
+ 270,0.823170731707317,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.014005602240896309,0.16120510084844775,0.31592466786591544,0.0,0.0,0.0
273
+ 271,0.8262195121951219,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.06926406926406925,0.16120510084844775,0.3284330701167144,0.0,0.0,0.0
274
+ 272,0.8292682926829268,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.07486631016042777,0.1347863638672966,0.303948638290951,0.0,0.0,0.0
275
+ 273,0.8323170731707317,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.03703703703703698,0.07988458541311261,0.15411118073313868,0.30772428429911647,0.0,0.0,0.0
276
+ 274,0.8353658536585366,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.03703703703703698,0.13903743315508021,0.15411118073313868,0.3019103838913947,0.0,0.0,0.0
277
+ 275,0.8384146341463414,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.007407407407407418,0.160427807486631,0.1280838324480046,0.3036108484846216,0.0,0.0,0.0
278
+ 276,0.8414634146341463,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.17112299465240632,0.10836762688614532,0.2912868922441275,0.0,0.0,0.0
279
+ 277,0.8445121951219512,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.20053475935828868,0.10836762688614532,0.2851782871023075,0.0,0.0,0.0
280
+ 278,0.8475609756097561,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.014814814814814836,0.23796791443850263,0.12157699537672095,0.3144041768147168,0.0,0.0,0.0
281
+ 279,0.850609756097561,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.06666666666666665,0.25133689839572193,0.16780978509373567,0.2959683331529529,0.0,0.0,0.0
282
+ 280,0.8536585365853658,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.09523809523809523,0.27005347593582885,0.1932849957541315,0.31356912482412913,0.0,0.0,0.0
283
+ 281,0.8567073170731707,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.16666666666666663,0.3074866310160428,0.2569730224051211,0.3487707081664815,0.0,0.0,0.0
284
+ 282,0.8597560975609756,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.32258064516129026,0.10836762688614532,0.36296489499807505,0.0,0.0,0.0
285
+ 283,0.8628048780487805,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.32308377896613194,0.10836762688614532,0.36343803455912826,0.0,0.0,0.0
286
+ 284,0.8658536585365854,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.3086564171122994,0.10836762688614532,0.34987075764593,0.0,0.0,0.0
287
+ 285,0.8689024390243902,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.3233601841196777,0.10836762688614532,0.3702682873406561,0.0,0.0,0.0
288
+ 286,0.8719512195121951,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.31552106430155213,0.10836762688614532,0.36297261505984657,0.0,0.0,0.0
289
+ 287,0.875,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.34688995215311,0.12157699537672095,0.3921668525365166,0.0,0.0,0.0
290
+ 288,0.8780487804878049,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.32500000000000007,0.1347863638672966,0.3717944228687846,0.0,0.0,0.0
291
+ 289,0.8810975609756098,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.43595041322314054,0.1347863638672966,0.47826387467514475,0.0,0.0,0.0
292
+ 290,0.8841463414634146,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.41173361522198726,0.1347863638672966,0.4558637548043101,0.0,0.0,0.0
293
+ 291,0.8871951219512195,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.43939393939393934,0.1347863638672966,0.48144907690545513,0.0,0.0,0.0
294
+ 292,0.8902439024390244,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.4775145410696553,0.1347863638672966,0.516709975024344,0.0,0.0,0.0
295
+ 293,0.8932926829268293,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.47195357833655704,0.1347863638672966,0.5115661805469439,0.0,0.0,0.0
296
+ 294,0.8963414634146342,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.47195357833655704,0.1347863638672966,0.5115661805469439,0.0,0.0,0.0
297
+ 295,0.899390243902439,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5333333333333332,0.1347863638672966,0.5723259347291094,0.0,0.0,0.0
298
+ 296,0.9024390243902439,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5333333333333332,0.1347863638672966,0.5723259347291094,0.0,0.0,0.0
299
+ 297,0.9054878048780488,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.543314808761033,0.1347863638672966,0.5814734022438934,0.0,0.0,0.0
300
+ 298,0.9085365853658537,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5782241014799154,0.16120510084844775,0.6134658289570705,0.0,0.0,0.0
301
+ 299,0.9115853658536586,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5508021390374331,0.16120510084844775,0.5928755457609209,0.0,0.0,0.0
302
+ 300,0.9146341463414634,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.6528925619834711,0.16120510084844775,0.6994378606673646,0.0,0.0,0.0
303
+ 301,0.9176829268292683,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.16120510084844775,0.1766702486763605,0.0,0.0,0.0
304
+ 302,0.9207317073170732,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.16120510084844775,0.19596703972300833,0.0,0.0,0.0
305
+ 303,0.9237804878048781,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.2088315670874401,0.0,0.0,0.0
306
+ 304,0.926829268292683,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.23230406824982486,0.0,0.0,0.0
307
+ 305,0.9298780487804879,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.2354633107673153,0.0,0.0,0.0
308
+ 306,0.9329268292682927,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.24494103831978653,0.0,0.0,0.0
309
+ 307,0.9359756097560976,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.2417817958022962,0.0,0.0,0.0
310
+ 308,0.9390243902439024,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.2417817958022962,0.0,0.0,0.0
311
+ 309,0.9420731707317073,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.24824388276989018,0.0,0.0,0.0
312
+ 310,0.9451219512195121,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.24824388276989018,0.0,0.0,0.0
313
+ 311,0.948170731707317,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.25901402771588034,0.03186225891113281,0.0,0.0
314
+ 312,0.9512195121951219,1.473927617073059,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.2450769874848311,0.04912137985229492,0.0,0.0
315
+ 313,0.9542682926829268,1.4756535291671753,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.2450769874848311,0.02035379409790039,0.0,0.0
316
+ 314,0.9573170731707317,1.4759629964828491,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.2450769874848311,0.002148151397705078,0.0,0.0
317
+ 315,0.9603658536585366,1.4754387140274048,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.2450769874848311,0.0036334991455078125,0.0,0.0
318
+ 316,0.9634146341463414,1.4755996465682983,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.2450769874848311,0.0015902519226074219,0.0,0.0
319
+ 317,0.9664634146341463,1.4755977392196655,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.2450769874848311,0.0023102760314941406,0.0,0.0
320
+ 318,0.9695121951219512,1.4758306741714478,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.10836762688614532,0.24480669639549524,0.002257823944091797,0.0,0.0
321
+ 319,0.9725609756097561,1.4758235216140747,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.10836762688614532,0.24480669639549524,0.0055027008056640625,0.0,0.0
322
+ 320,0.975609756097561,1.4763809442520142,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.10836762688614532,0.24480669639549524,0.005893707275390625,0.0,0.0
323
+ 321,0.9786585365853658,1.4764128923416138,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.10836762688614532,0.24480669639549524,0.0003170967102050781,0.0,0.0
324
+ 322,0.9817073170731707,1.4764126539230347,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.10836762688614532,0.24480669639549524,2.384185791015625e-06,0.0,0.0
325
+ 323,0.9847560975609756,1.4764131307601929,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.10836762688614532,0.24480669639549524,9.5367431640625e-06,0.0,0.0
326
+ 324,0.9878048780487805,1.476413607597351,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.10836762688614532,0.24480669639549524,0.0002002716064453125,0.0,0.0
327
+ 325,0.9908536585365854,1.4764331579208374,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.10836762688614532,0.24480669639549524,0.0059223175048828125,0.0,0.0
328
+ 326,0.9939024390243902,1.4770058393478394,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.10836762688614532,0.24480669639549524,0.006120204925537109,0.0,0.0
329
+ 327,0.9969512195121951,1.4770451784133911,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.2450769874848311,0.0004029273986816406,0.0,0.0
330
+ 328,1.0,1.4770461320877075,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.2450769874848311,1.9073486328125e-05,0.0,0.0
artifacts/results/oven_episode0_full_v3/episode0.keyframes.csv ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ frame_index,time_norm,door_angle,right_gripper_open,left_gripper_open,p_pre,p_ext,y_pre,y_ext,three_view_visibility,three_view_whole_tray_visibility,full_view_visibility,full_view_whole_tray_visibility,door_speed_abs,y_ready,phase_switch,keyframe_ordinal
2
+ 61,0.18597560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0,0
3
+ 91,0.2774390243902439,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0,1
4
+ 93,0.28353658536585363,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0,2
5
+ 130,0.39634146341463417,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0,3
6
+ 132,0.4024390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0,4
7
+ 175,0.5335365853658537,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9276688453159041,0.0,0.9720008433480919,0.0,0.0,0.0,5
8
+ 234,0.7134146341463414,1.4863122701644897,1.0,1.0,0.0,0.0,0.0,0.0,0.24511784511784507,0.3397129186602871,0.30103504177578244,0.7312440431700031,0.13529539108276367,0.0,0.0,6
9
+ 236,0.7195121951219512,1.4762099981307983,1.0,1.0,0.0,0.0,0.0,0.0,0.24511784511784507,0.35406698564593286,0.30103504177578244,0.7362707107737683,0.06863117218017578,0.0,0.0,7
10
+ 266,0.8109756097560976,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.008403361344537785,0.16120510084844775,0.3120378762060627,0.0,0.0,0.0,8
11
+ 295,0.899390243902439,1.4707413911819458,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5333333333333332,0.1347863638672966,0.5723259347291094,0.0,0.0,0.0,9
12
+ 315,0.9603658536585366,1.4754387140274048,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.2450769874848311,0.0036334991455078125,0.0,0.0,10
13
+ 317,0.9664634146341463,1.4755977392196655,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.2450769874848311,0.0023102760314941406,0.0,0.0,11
14
+ 322,0.9817073170731707,1.4764126539230347,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.10836762688614532,0.24480669639549524,2.384185791015625e-06,0.0,0.0,12
15
+ 328,1.0,1.4770461320877075,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.10836762688614532,0.2450769874848311,1.9073486328125e-05,0.0,0.0,13
artifacts/results/oven_episode0_full_v3/episode0.metrics.json ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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": 0,
7
+ "phase_switch_falls": 0,
8
+ "ppre_cross_frame": -1,
9
+ "pext_cross_frame": -1,
10
+ "phase_cross_frame": -1,
11
+ "ready_cross_frame": -1,
12
+ "ordering_ok": true,
13
+ "dense_boundary_error_frames": NaN,
14
+ "dense_boundary_error_fraction": NaN,
15
+ "key_boundary_error_keyframes": NaN,
16
+ "auroc_vret_ypre_three": NaN,
17
+ "auprc_vret_ypre_three": NaN,
18
+ "auroc_vret_ypre_full": NaN,
19
+ "auprc_vret_ypre_full": NaN,
20
+ "auroc_ppre_ypre": NaN,
21
+ "auprc_ppre_ypre": NaN,
22
+ "auroc_pext_yext": NaN,
23
+ "auprc_pext_yext": NaN,
24
+ "auroc_phase_yready": NaN,
25
+ "auprc_phase_yready": NaN,
26
+ "f1_phase_yready": NaN,
27
+ "baseline_auroc_door_yext": NaN,
28
+ "baseline_auprc_door_yext": NaN,
29
+ "baseline_auroc_time_yext": NaN,
30
+ "baseline_auprc_time_yext": NaN,
31
+ "baseline_auroc_whole_vis_yext": NaN,
32
+ "baseline_auprc_whole_vis_yext": NaN,
33
+ "pre_ready_open_more_increases_pext": 0.0,
34
+ "pre_ready_open_more_trials": 3.0,
35
+ "pre_ready_hold_open_increases_pext": 0.0,
36
+ "pre_ready_hold_open_trials": 3.0,
37
+ "pre_ready_extract_success": 0.0,
38
+ "pre_ready_extract_trials": 3.0,
39
+ "pre_ready_wait_extract_success": 0.0,
40
+ "pre_ready_wait_trials": 3.0,
41
+ "post_ready_extract_success": 0.0,
42
+ "post_ready_extract_trials": 0.0,
43
+ "post_ready_open_more_low_gain": 0.0,
44
+ "post_ready_open_more_trials": 0.0,
45
+ "post_ready_hold_open_low_gain": 0.0,
46
+ "post_ready_hold_open_trials": 0.0
47
+ }
artifacts/results/oven_episode0_full_v3/summary.json ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "num_episodes": 1,
3
+ "mean_metrics": {
4
+ "num_dense_frames": 329.0,
5
+ "num_keyframes": 14.0,
6
+ "phase_switch_rises": 0.0,
7
+ "phase_switch_falls": 0.0,
8
+ "ppre_cross_frame": -1.0,
9
+ "pext_cross_frame": -1.0,
10
+ "phase_cross_frame": -1.0,
11
+ "ready_cross_frame": -1.0,
12
+ "dense_boundary_error_frames": NaN,
13
+ "dense_boundary_error_fraction": NaN,
14
+ "key_boundary_error_keyframes": NaN,
15
+ "auroc_vret_ypre_three": NaN,
16
+ "auprc_vret_ypre_three": NaN,
17
+ "auroc_vret_ypre_full": NaN,
18
+ "auprc_vret_ypre_full": NaN,
19
+ "auroc_ppre_ypre": NaN,
20
+ "auprc_ppre_ypre": NaN,
21
+ "auroc_pext_yext": NaN,
22
+ "auprc_pext_yext": NaN,
23
+ "auroc_phase_yready": NaN,
24
+ "auprc_phase_yready": NaN,
25
+ "f1_phase_yready": NaN,
26
+ "baseline_auroc_door_yext": NaN,
27
+ "baseline_auprc_door_yext": NaN,
28
+ "baseline_auroc_time_yext": NaN,
29
+ "baseline_auprc_time_yext": NaN,
30
+ "baseline_auroc_whole_vis_yext": NaN,
31
+ "baseline_auprc_whole_vis_yext": NaN,
32
+ "pre_ready_open_more_increases_pext": 0.0,
33
+ "pre_ready_open_more_trials": 3.0,
34
+ "pre_ready_hold_open_increases_pext": 0.0,
35
+ "pre_ready_hold_open_trials": 3.0,
36
+ "pre_ready_extract_success": 0.0,
37
+ "pre_ready_extract_trials": 3.0,
38
+ "pre_ready_wait_extract_success": 0.0,
39
+ "pre_ready_wait_trials": 3.0,
40
+ "post_ready_extract_success": 0.0,
41
+ "post_ready_extract_trials": 0.0,
42
+ "post_ready_open_more_low_gain": 0.0,
43
+ "post_ready_open_more_trials": 0.0,
44
+ "post_ready_hold_open_low_gain": 0.0,
45
+ "post_ready_hold_open_trials": 0.0
46
+ },
47
+ "median_metrics": {
48
+ "num_dense_frames": 329.0,
49
+ "num_keyframes": 14.0,
50
+ "phase_switch_rises": 0.0,
51
+ "phase_switch_falls": 0.0,
52
+ "ppre_cross_frame": -1.0,
53
+ "pext_cross_frame": -1.0,
54
+ "phase_cross_frame": -1.0,
55
+ "ready_cross_frame": -1.0,
56
+ "dense_boundary_error_frames": NaN,
57
+ "dense_boundary_error_fraction": NaN,
58
+ "key_boundary_error_keyframes": NaN,
59
+ "auroc_vret_ypre_three": NaN,
60
+ "auprc_vret_ypre_three": NaN,
61
+ "auroc_vret_ypre_full": NaN,
62
+ "auprc_vret_ypre_full": NaN,
63
+ "auroc_ppre_ypre": NaN,
64
+ "auprc_ppre_ypre": NaN,
65
+ "auroc_pext_yext": NaN,
66
+ "auprc_pext_yext": NaN,
67
+ "auroc_phase_yready": NaN,
68
+ "auprc_phase_yready": NaN,
69
+ "f1_phase_yready": NaN,
70
+ "baseline_auroc_door_yext": NaN,
71
+ "baseline_auprc_door_yext": NaN,
72
+ "baseline_auroc_time_yext": NaN,
73
+ "baseline_auprc_time_yext": NaN,
74
+ "baseline_auroc_whole_vis_yext": NaN,
75
+ "baseline_auprc_whole_vis_yext": NaN,
76
+ "pre_ready_open_more_increases_pext": 0.0,
77
+ "pre_ready_open_more_trials": 3.0,
78
+ "pre_ready_hold_open_increases_pext": 0.0,
79
+ "pre_ready_hold_open_trials": 3.0,
80
+ "pre_ready_extract_success": 0.0,
81
+ "pre_ready_extract_trials": 3.0,
82
+ "pre_ready_wait_extract_success": 0.0,
83
+ "pre_ready_wait_trials": 3.0,
84
+ "post_ready_extract_success": 0.0,
85
+ "post_ready_extract_trials": 0.0,
86
+ "post_ready_open_more_low_gain": 0.0,
87
+ "post_ready_open_more_trials": 0.0,
88
+ "post_ready_hold_open_low_gain": 0.0,
89
+ "post_ready_hold_open_trials": 0.0
90
+ },
91
+ "single_switch_rate": 0.0,
92
+ "reversion_rate": 0.0,
93
+ "ordering_ok_rate": 1.0
94
+ }
artifacts/results/oven_episode0_full_v3/templates.json ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "templates": {
3
+ "pregrasp_rel_pose": [
4
+ -0.12217129631756263,
5
+ 0.09345070134195246,
6
+ -0.006546997831216039,
7
+ 0.5503450945485194,
8
+ 0.5264249147312487,
9
+ 0.4450459711257041,
10
+ 0.47109571176286236
11
+ ],
12
+ "grasp_rel_pose": [
13
+ -0.09865615619553114,
14
+ 0.09471180553609355,
15
+ -0.023587008474192483,
16
+ 0.5452601219922814,
17
+ 0.5150377871073674,
18
+ 0.45379910210390734,
19
+ 0.48113808012481835
20
+ ],
21
+ "retreat_rel_poses": [
22
+ [
23
+ 0.2214498519897461,
24
+ 0.20658132433891296,
25
+ 0.3012295961380005,
26
+ 0.3291563621743852,
27
+ 0.627011226582004,
28
+ 0.6253744234656241,
29
+ 0.3277496627844094
30
+ ],
31
+ [
32
+ 0.13225239515304565,
33
+ 0.1258213222026825,
34
+ 0.31969189643859863,
35
+ 0.3289898231149965,
36
+ 0.6268359223035596,
37
+ 0.6255877414770727,
38
+ 0.32784508614622276
39
+ ],
40
+ [
41
+ 0.05667930841445923,
42
+ 0.057798177003860474,
43
+ 0.33509600162506104,
44
+ 0.3288982919906342,
45
+ 0.6266226412776637,
46
+ 0.625902199977161,
47
+ 0.3277444355402512
48
+ ],
49
+ [
50
+ 0.05564957857131958,
51
+ 0.056753985583782196,
52
+ 0.6027518510818481,
53
+ 0.32894212332982753,
54
+ 0.6266654224084302,
55
+ 0.6259026022261591,
56
+ 0.32761785724140696
57
+ ],
58
+ [
59
+ 0.1099032461643219,
60
+ 0.09394313395023346,
61
+ 0.6021068096160889,
62
+ 0.3294232917458771,
63
+ 0.627133516607113,
64
+ 0.6253952068346194,
65
+ 0.3272073997812251
66
+ ],
67
+ [
68
+ 0.1595928966999054,
69
+ 0.12838931381702423,
70
+ 0.6023930311203003,
71
+ 0.3292082711677807,
72
+ 0.6271354299888725,
73
+ 0.6254546386795143,
74
+ 0.3273065254492664
75
+ ],
76
+ [
77
+ 0.19115081429481506,
78
+ 0.15017743408679962,
79
+ 0.6012866497039795,
80
+ 0.3296702831570499,
81
+ 0.6273651178974856,
82
+ 0.6251746471824625,
83
+ 0.3269360392628933
84
+ ]
85
+ ],
86
+ "grasp_local_center": [
87
+ -0.09865615619553109,
88
+ 0.09471180553609354,
89
+ -0.02358700847419226
90
+ ],
91
+ "grasp_region_extents": [
92
+ 0.03,
93
+ 0.015,
94
+ 0.004
95
+ ],
96
+ "hold_open_angle": 0.7285879850387573,
97
+ "open_more_delta": 0.12,
98
+ "reference_tray_height": 1.0472617149353027
99
+ },
100
+ "template_episode": "episode0",
101
+ "template_frames": {
102
+ "pregrasp": 229,
103
+ "grasp": 234,
104
+ "right_close": 91,
105
+ "right_open": 130
106
+ },
107
+ "episode_offset": 0
108
+ }
artifacts/results/oven_episode0_full_v4/episode0.dense.csv ADDED
@@ -0,0 +1,330 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ frame_index,time_norm,door_angle,right_gripper_open,left_gripper_open,p_pre,p_ext,y_pre,y_ext,three_view_visibility,three_view_whole_tray_visibility,full_view_visibility,full_view_whole_tray_visibility,door_speed_abs,y_ready,phase_switch
2
+ 0,0.0,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
3
+ 1,0.003048780487804878,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
4
+ 2,0.006097560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
5
+ 3,0.009146341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.10370370370370374,0.0,0.38387928669410154,0.0,0.0,0.0,0.0
6
+ 4,0.012195121951219513,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
7
+ 5,0.01524390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
8
+ 6,0.018292682926829267,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
9
+ 7,0.021341463414634148,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.09629629629629632,0.0,0.37878737997256506,0.0,0.0,0.0,0.0
10
+ 8,0.024390243902439025,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.10370370370370374,0.0,0.38387928669410154,0.0,0.0,0.0,0.0
11
+ 9,0.027439024390243903,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.09629629629629632,0.0,0.37878737997256506,0.0,0.0,0.0,0.0
12
+ 10,0.03048780487804878,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.10370370370370374,0.0,0.38387928669410154,0.0,0.0,0.0,0.0
13
+ 11,0.03353658536585366,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.10370370370370374,0.0,0.38387928669410154,0.0,0.0,0.0,0.0
14
+ 12,0.036585365853658534,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
15
+ 13,0.039634146341463415,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
16
+ 14,0.042682926829268296,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
17
+ 15,0.04573170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.3889711934156379,0.0,0.0,0.0,0.0
18
+ 16,0.04878048780487805,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0
19
+ 17,0.051829268292682924,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.7992831541218638,0.0,0.8691799735484854,0.0,0.0,0.0,0.0
20
+ 18,0.054878048780487805,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.5294117647058824,0.0,0.6932875010086339,0.0,0.0,0.0,0.0
21
+ 19,0.057926829268292686,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3600000000000001,0.0,0.5828710013717421,0.0,0.0,0.0,0.0
22
+ 20,0.06097560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.33333333333333337,0.0,0.5858582533150435,0.0,0.0,0.0,0.0
23
+ 21,0.06402439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2663139329805997,0.0,0.5442249560292541,0.0,0.0,0.0,0.0
24
+ 22,0.06707317073170732,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.28230452674897133,0.0,0.5087487337676662,0.0,0.0,0.0,0.0
25
+ 23,0.0701219512195122,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.28230452674897133,0.0,0.44269814334987334,0.0,0.0,0.0,0.0
26
+ 24,0.07317073170731707,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.28888888888888886,0.0,0.44781100442005783,0.0,0.0,0.0,0.0
27
+ 25,0.07621951219512195,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.28888888888888886,0.0,0.44781100442005783,0.0,0.0,0.0,0.0
28
+ 26,0.07926829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.30205761316872426,0.0,0.45803672656042727,0.0,0.0,0.0,0.0
29
+ 27,0.08231707317073171,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.4411475215498992,0.0,0.0,0.0,0.0
30
+ 28,0.08536585365853659,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2954732510288066,0.0,0.4305027124365639,0.0,0.0,0.0,0.0
31
+ 29,0.08841463414634146,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.30205761316872426,0.0,0.4358251169932317,0.0,0.0,0.0,0.0
32
+ 30,0.09146341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.30205761316872426,0.0,0.4358251169932317,0.0,0.0,0.0,0.0
33
+ 31,0.09451219512195122,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.47195041406289695,0.0,0.0,0.0,0.0
34
+ 32,0.0975609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.47195041406289695,0.0,0.0,0.0,0.0
35
+ 33,0.10060975609756098,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.4939524801436096,0.0,0.0,0.0,0.0
36
+ 34,0.10365853658536585,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.4939524801436096,0.0,0.0,0.0,0.0
37
+ 35,0.10670731707317073,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3144032921810699,0.0,0.49816954280907944,0.0,0.0,0.0,0.0
38
+ 36,0.10975609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.489590001524158,0.0,0.0,0.0,0.0
39
+ 37,0.11280487804878049,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.4939524801436096,0.0,0.0,0.0,0.0
40
+ 38,0.11585365853658537,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.489590001524158,0.0,0.0,0.0,0.0
41
+ 39,0.11890243902439024,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3144032921810699,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
42
+ 40,0.12195121951219512,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.32016460905349786,0.0,0.5018146360555545,0.0,0.0,0.0,0.0
43
+ 41,0.125,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.32592592592592584,0.0,0.5060365459194907,0.0,0.0,0.0,0.0
44
+ 42,0.12804878048780488,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.32592592592592584,0.0,0.520781723653237,0.0,0.0,0.0,0.0
45
+ 43,0.13109756097560976,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3374485596707819,0.0,0.5362200507676299,0.0,0.0,0.0,0.0
46
+ 44,0.13414634146341464,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3374485596707819,0.0,0.5362200507676299,0.0,0.0,0.0,0.0
47
+ 45,0.13719512195121952,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.34897119341563787,0.0,0.5442857890151493,0.0,0.0,0.0,0.0
48
+ 46,0.1402439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.35473251028806585,0.0,0.548318658138909,0.0,0.0,0.0,0.0
49
+ 47,0.14329268292682926,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.36049382716049383,0.0,0.5523515272626688,0.0,0.0,0.0,0.0
50
+ 48,0.14634146341463414,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.37777777777777777,0.0,0.5644501346339481,0.0,0.0,0.0,0.0
51
+ 49,0.14939024390243902,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3662551440329217,0.0,0.5667816370961216,0.0,0.0,0.0,0.0
52
+ 50,0.1524390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.37777777777777777,0.0,0.5746583346034649,0.0,0.0,0.0,0.0
53
+ 51,0.15548780487804878,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.593089806770648,0.0,0.0,0.0,0.0
54
+ 52,0.15853658536585366,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.593089806770648,0.0,0.0,0.0,0.0
55
+ 53,0.16158536585365854,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6030144456299006,0.0,0.0,0.0,0.0
56
+ 54,0.16463414634146342,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6030144456299006,0.0,0.0,0.0,0.0
57
+ 55,0.1676829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
58
+ 56,0.17073170731707318,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
59
+ 57,0.17378048780487804,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
60
+ 58,0.17682926829268292,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
61
+ 59,0.1798780487804878,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
62
+ 60,0.18292682926829268,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
63
+ 61,0.18597560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
64
+ 62,0.18902439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
65
+ 63,0.19207317073170732,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
66
+ 64,0.1951219512195122,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
67
+ 65,0.19817073170731708,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
68
+ 66,0.20121951219512196,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
69
+ 67,0.20426829268292682,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0
70
+ 68,0.2073170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3813131313131314,0.0,0.5973754462780525,0.0,0.0,0.0,0.0
71
+ 69,0.21036585365853658,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.36692506459948315,0.0,0.5880120845635887,0.0,0.0,0.0,0.0
72
+ 70,0.21341463414634146,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3388888888888889,0.0,0.5697669054514047,0.0,0.0,0.0,0.0
73
+ 71,0.21646341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.308641975308642,0.0,0.550083038380554,0.0,0.0,0.0,0.0
74
+ 72,0.21951219512195122,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.274074074074074,0.0,0.5275871902995817,0.0,0.0,0.0,0.0
75
+ 73,0.2225609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
76
+ 74,0.22560975609756098,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
77
+ 75,0.22865853658536586,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
78
+ 76,0.23170731707317074,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
79
+ 77,0.2347560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
80
+ 78,0.23780487804878048,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
81
+ 79,0.24085365853658536,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
82
+ 80,0.24390243902439024,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
83
+ 81,0.24695121951219512,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
84
+ 82,0.25,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
85
+ 83,0.2530487804878049,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
86
+ 84,0.25609756097560976,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
87
+ 85,0.25914634146341464,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
88
+ 86,0.2621951219512195,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
89
+ 87,0.2652439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
90
+ 88,0.2682926829268293,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
91
+ 89,0.27134146341463417,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
92
+ 90,0.27439024390243905,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
93
+ 91,0.2774390243902439,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
94
+ 92,0.2804878048780488,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
95
+ 93,0.28353658536585363,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
96
+ 94,0.2865853658536585,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0
97
+ 95,0.2896341463414634,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.489590001524158,0.0,0.0,0.0,0.0
98
+ 96,0.2926829268292683,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.47191058273637143,0.0,0.0,0.0,0.0
99
+ 97,0.29573170731707316,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.46743524869176445,0.0,0.0,0.0,0.0
100
+ 98,0.29878048780487804,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.36543006655489507,0.0,0.0,0.0,0.0
101
+ 99,0.3018292682926829,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.31672637978627927,0.0,0.0,0.0,0.0
102
+ 100,0.3048780487804878,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.2541754813798709,0.0,0.0,0.0,0.0
103
+ 101,0.3079268292682927,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.11111111111111116,0.0,0.20053812935020077,0.0,0.0,0.0,0.0
104
+ 102,0.31097560975609756,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.022222222222222254,0.0,0.0,0.0,0.0
105
+ 103,0.31402439024390244,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007117437722419906,0.0,0.0,0.0
106
+ 104,0.3170731707317073,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.19520990527476578,0.0,0.0,0.0
107
+ 105,0.3201219512195122,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3038112731029733,0.0,0.0,0.0
108
+ 106,0.3231707317073171,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.43617265526346016,0.0,0.0,0.0
109
+ 107,0.32621951219512196,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.510752688172043,0.0,0.0,0.0
110
+ 108,0.32926829268292684,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5295698924731184,0.0,0.0,0.0
111
+ 109,0.3323170731707317,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.610215053763441,0.0,0.0,0.0
112
+ 110,0.3353658536585366,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.6129032258064517,0.0,0.0,0.0
113
+ 111,0.3384146341463415,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.01680672268907568,0.0,0.6194090539441583,0.0,0.0,0.0
114
+ 112,0.34146341463414637,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.21288515406162467,0.0,0.6953103822174032,0.0,0.0,0.0
115
+ 113,0.3445121951219512,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.39495798319327724,0.0,0.765790187042559,0.0,0.0,0.0
116
+ 114,0.3475609756097561,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5882352941176471,0.0,0.8406072106261859,0.0,0.0,0.0
117
+ 115,0.35060975609756095,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.7675070028011205,0.0,0.9100027107617241,0.0,0.0,0.0
118
+ 116,0.35365853658536583,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
119
+ 117,0.3567073170731707,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
120
+ 118,0.3597560975609756,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
121
+ 119,0.3628048780487805,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
122
+ 120,0.36585365853658536,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
123
+ 121,0.36890243902439024,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
124
+ 122,0.3719512195121951,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8851540616246498,0.0,0.9555435077256709,0.0,0.0,0.0
125
+ 123,0.375,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
126
+ 124,0.3780487804878049,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
127
+ 125,0.38109756097560976,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
128
+ 126,0.38414634146341464,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
129
+ 127,0.3871951219512195,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
130
+ 128,0.3902439024390244,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
131
+ 129,0.3932926829268293,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
132
+ 130,0.39634146341463417,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
133
+ 131,0.39939024390243905,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
134
+ 132,0.4024390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
135
+ 133,0.4054878048780488,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
136
+ 134,0.40853658536585363,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.876750700280112,0.0,0.9522905936568176,0.0,0.0,0.0
137
+ 135,0.4115853658536585,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
138
+ 136,0.4146341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
139
+ 137,0.4176829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8851540616246498,0.0,0.9555435077256709,0.0,0.0,0.0
140
+ 138,0.42073170731707316,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
141
+ 139,0.42378048780487804,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
142
+ 140,0.4268292682926829,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
143
+ 141,0.4298780487804878,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
144
+ 142,0.4329268292682927,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
145
+ 143,0.43597560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
146
+ 144,0.43902439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
147
+ 145,0.4420731707317073,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
148
+ 146,0.4451219512195122,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
149
+ 147,0.4481707317073171,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
150
+ 148,0.45121951219512196,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
151
+ 149,0.45426829268292684,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.876750700280112,0.0,0.9522905936568176,0.0,0.0,0.0
152
+ 150,0.4573170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
153
+ 151,0.4603658536585366,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
154
+ 152,0.4634146341463415,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
155
+ 153,0.46646341463414637,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
156
+ 154,0.4695121951219512,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
157
+ 155,0.4725609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
158
+ 156,0.47560975609756095,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
159
+ 157,0.47865853658536583,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
160
+ 158,0.4817073170731707,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
161
+ 159,0.4847560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8795518207282913,0.0,0.9533748983464353,0.0,0.0,0.0
162
+ 160,0.4878048780487805,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
163
+ 161,0.49085365853658536,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
164
+ 162,0.49390243902439024,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
165
+ 163,0.4969512195121951,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
166
+ 164,0.5,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
167
+ 165,0.5030487804878049,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0
168
+ 166,0.5060975609756098,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8968935888962326,0.0,0.9600878408630578,0.0,0.0,0.0
169
+ 167,0.5091463414634146,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9108003857280617,0.0,0.9654711170560238,0.0,0.0,0.0
170
+ 168,0.5121951219512195,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9176470588235294,0.0,0.9681214421252372,0.0,0.0,0.0
171
+ 169,0.5152439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9215686274509803,0.0,0.969639468690702,0.0,0.0,0.0
172
+ 170,0.5182926829268293,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9283299526707235,0.0,0.9722567558725381,0.0,0.0,0.0
173
+ 171,0.5213414634146342,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9258780435251024,0.0,0.9713076297516525,0.0,0.0,0.0
174
+ 172,0.524390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9197012138188608,0.0,0.9689165988976236,0.0,0.0,0.0
175
+ 173,0.5274390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9261485616144267,0.0,0.971412346431391,0.0,0.0,0.0
176
+ 174,0.5304878048780488,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9261485616144267,0.0,0.971412346431391,0.0,0.0,0.0
177
+ 175,0.5335365853658537,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9276688453159041,0.0,0.9720008433480919,0.0,0.0,0.0
178
+ 176,0.5365853658536586,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9267973856209151,0.0,0.971663504111322,0.0,0.0,0.0
179
+ 177,0.5396341463414634,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9267973856209151,0.0,0.971663504111322,0.0,0.0,0.0
180
+ 178,0.5426829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.922180607573866,0.0,0.9698763642221417,0.0,0.0,0.0
181
+ 179,0.5457317073170732,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.916640584246218,0.0,0.9677318390630522,0.0,0.0,0.0
182
+ 180,0.5487804878048781,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9261770244821093,0.0,0.9714233643156552,0.0,0.0,0.0
183
+ 181,0.551829268292683,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9296924042686755,0.0,0.9727841564911002,0.0,0.0,0.0
184
+ 182,0.5548780487804879,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9332077840552416,0.0,0.9741449486665452,0.0,0.0,0.0
185
+ 183,0.5579268292682927,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9233658587766237,0.0,0.9703351711393382,0.0,0.0,0.0
186
+ 184,0.5609756097560976,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9281840244803208,0.0,0.9722002675407694,0.0,0.0,0.0
187
+ 185,0.5640243902439024,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9255460588793922,0.0,0.9711791195662164,0.0,0.0,0.0
188
+ 186,0.5670731707317073,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9237733459955683,0.0,0.9704929081273167,0.0,0.0,0.0
189
+ 187,0.5701219512195121,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9271111111111111,0.0,0.9717849462365592,0.0,0.0,0.0
190
+ 188,0.573170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9340633387010199,0.0,0.9744761311100723,0.0,0.0,0.0
191
+ 189,0.5762195121951219,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.933268921095008,0.0,0.9741686146174224,0.0,0.0,0.0
192
+ 190,0.5792682926829268,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9242512077294687,0.0,0.9706778868630201,0.0,0.0,0.0
193
+ 191,0.5823170731707317,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9224476650563607,0.0,0.9699797413121396,0.0,0.0,0.0
194
+ 192,0.5853658536585366,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9139869281045752,0.0,0.9667046173308033,0.0,0.0,0.0
195
+ 193,0.5884146341463414,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9174041297935104,0.0,0.9680274050813589,0.0,0.0,0.0
196
+ 194,0.5914634146341463,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9192395935758767,0.0,0.968737907190662,0.0,0.0,0.0
197
+ 195,0.5945121951219512,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9347099311701081,0.0,0.9747264249690741,0.0,0.0,0.0
198
+ 196,0.5975609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.936476535883064,0.0,0.9754102719547345,0.0,0.0,0.0
199
+ 197,0.600609756097561,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9252585919252586,0.0,0.9710678420355839,0.0,0.0,0.0
200
+ 198,0.6036585365853658,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9065732399065732,0.0,0.96383480254448,0.0,0.0,0.0
201
+ 199,0.6067073170731707,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.90214659103548,0.0,0.9621212610459923,0.0,0.0,0.0
202
+ 200,0.6097560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9224586288416076,0.0,0.9699839853580416,0.0,0.0,0.0
203
+ 201,0.6128048780487805,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9291623931623931,0.0,0.9725789909015715,0.0,0.0,0.0
204
+ 202,0.6158536585365854,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9327846364883402,0.0,0.9739811496083898,0.0,0.0,0.0
205
+ 203,0.6189024390243902,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9212620027434842,0.0,0.9695207752555423,0.0,0.0,0.0
206
+ 204,0.6219512195121951,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9118956963193723,0.0,0.9658951082526602,0.0,0.0,0.0
207
+ 205,0.625,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9195233087977568,0.0,0.9686313972464374,0.0,0.0,0.0
208
+ 206,0.6280487804878049,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9111111111111111,0.0,0.9646356033452808,0.0,0.0,0.0
209
+ 207,0.6310975609756098,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.910828025477707,0.0,0.9645229778782275,0.0,0.0,0.0
210
+ 208,0.6341463414634146,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.913969274740979,0.0,0.9657727222087765,0.0,0.0,0.0
211
+ 209,0.6371951219512195,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.905050505050505,0.0,0.962224394482459,0.0,0.0,0.0
212
+ 210,0.6402439024390244,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9034836817015035,0.0,0.9616010346554369,0.0,0.0,0.0
213
+ 211,0.6432926829268293,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9066666666666666,0.0,0.9628673835125447,0.0,0.0,0.0
214
+ 212,0.6463414634146342,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9068462401795735,0.0,0.9629388267381099,0.0,0.0,0.0
215
+ 213,0.649390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9187476135929744,0.0,0.9676737817520435,0.0,0.0,0.0
216
+ 214,0.6524390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9179012345679013,0.0,0.9673370503119607,0.0,0.0,0.0
217
+ 215,0.6554878048780488,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9017543859649122,0.0,0.9611771363893605,0.11695623397827148,0.0,0.0
218
+ 216,0.6585365853658537,1.5591007471084595,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9029156816390859,0.0,0.961636035486413,0.1159358024597168,0.0,0.0
219
+ 217,0.6615853658536586,1.559202790260315,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8974113898845082,0.0,0.9594609524543621,0.003154277801513672,0.0,0.0
220
+ 218,0.6646341463414634,1.558785319328308,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9042735042735043,0.0,0.9619152651410716,0.16261577606201172,0.0,0.0
221
+ 219,0.6676829268292683,1.5754643678665161,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9032098765432098,0.0,0.9614921014204169,0.12814998626708984,0.0,0.0
222
+ 220,0.6707317073170732,1.571600317955017,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8928731762065095,0.0,0.9573796507488264,0.04101991653442383,0.0,0.0
223
+ 221,0.6737804878048781,1.5713623762130737,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8967372440124957,0.0,0.9593397712045529,0.059113502502441406,0.0,0.0
224
+ 222,0.676829268292683,1.565688967704773,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8819991154356479,0.0,0.9534052603679022,0.11734247207641602,0.0,0.0
225
+ 223,0.6798780487804879,1.5596281290054321,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8537414965986394,0.0,0.9422472389920926,0.13980865478515625,0.0,0.0
226
+ 224,0.6829268292682927,1.5517081022262573,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8723638364203191,0.0,0.9489204340443165,0.16158580780029297,0.0,0.0
227
+ 225,0.6859756097560976,1.5434695482254028,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8308429301100853,0.0,0.9318186294918294,0.18476486206054688,0.0,0.0
228
+ 226,0.6890243902439024,1.5332316160202026,1.0,1.0,0.0,0.0,0.0,0.0,0.036817558299039876,0.773547793534469,0.043952243052380324,0.9078951662035518,0.18151521682739258,0.0,0.0
229
+ 227,0.6920731707317073,1.5253180265426636,1.0,1.0,0.0,0.0,0.0,0.0,0.05843621399176957,0.7456140350877194,0.10028349336991305,0.8965336775291651,0.21637916564941406,0.0,0.0
230
+ 228,0.6951219512195121,1.5115936994552612,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.6239343127693711,0.007407407407407418,0.8519302474802062,0.18236637115478516,0.0,0.0
231
+ 229,0.698170731707317,1.507081389427185,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.3907910271546635,0.0,0.7611385664483009,0.06988763809204102,0.0,0.0
232
+ 230,0.7012195121951219,1.5046049356460571,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.3993771038474848,0.0,0.7653491025479159,0.05945444107055664,0.0,0.0
233
+ 231,0.7042682926829268,1.5011359453201294,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.48938802702959927,0.0,0.8005145017367782,0.06805419921875,0.0,0.0
234
+ 232,0.7073170731707317,1.4977995157241821,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5171189777017651,0.0,0.8106698056623194,0.06520271301269531,0.0,0.0
235
+ 233,0.7103658536585366,1.4946156740188599,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5108717740296687,0.0,0.8050896601894243,0.0965428352355957,0.0,0.0
236
+ 234,0.7134146341463414,1.4881452322006226,1.0,1.0,0.0,0.0,0.0,0.0,0.24511784511784507,0.34019664545980344,0.30103504177578244,0.7314214361256747,0.09296417236328125,0.0,0.0
237
+ 235,0.7164634146341463,1.4853192567825317,1.0,1.0,0.0,0.0,0.0,0.0,0.24511784511784507,0.35454019664545977,0.30103504177578244,0.7372601005577252,0.07221460342407227,0.0,0.0
238
+ 236,0.7195121951219512,1.4809237718582153,1.0,1.0,0.0,0.0,0.0,0.0,0.24511784511784507,0.35454019664545977,0.30103504177578244,0.7372601005577252,0.07308483123779297,0.0,0.0
239
+ 237,0.7225609756097561,1.4780107736587524,1.0,1.0,0.0,0.0,0.0,0.0,0.23123123123123124,0.35064935064935066,0.2881770659548437,0.7480617520583264,0.033278465270996094,0.0,0.0
240
+ 238,0.725609756097561,1.4775959253311157,1.0,1.0,0.0,0.0,0.0,0.0,0.2087719298245614,0.332535885167464,0.27910331384015596,0.7595395030886414,0.009260177612304688,0.0,0.0
241
+ 239,0.7286585365853658,1.477084755897522,1.0,1.0,0.0,0.0,0.0,0.0,0.18898385565052234,0.29665071770334916,0.2486586238026568,0.7800873712509604,0.005366802215576172,0.0,0.0
242
+ 240,0.7317073170731707,1.477059245109558,1.0,1.0,0.0,0.0,0.0,0.0,0.15320686540198725,0.3100398053958425,0.20928803486480207,0.7957725799743566,0.0002455711364746094,0.0,0.0
243
+ 241,0.7347560975609756,1.4770601987838745,1.0,1.0,0.0,0.0,0.0,0.0,0.11317829457364337,0.16541353383458646,0.17886879127189204,0.7708691114343412,0.0,0.0,0.0
244
+ 242,0.7378048780487805,1.477059245109558,1.0,1.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.07518796992481203,0.0949494949494949,0.759342382769921,7.152557373046875e-06,0.0,0.0
245
+ 243,0.7408536585365854,1.4770594835281372,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.03007518796992481,0.014814814814814836,0.7803694219848794,2.384185791015625e-06,0.0,0.0
246
+ 244,0.7439024390243902,1.4770594835281372,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.007518796992481258,0.0,0.7791827874313564,2.384185791015625e-06,0.0,0.0
247
+ 245,0.7469512195121951,1.477059245109558,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7696558740362464,4.76837158203125e-06,0.0,0.0
248
+ 246,0.75,1.477059006690979,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7134702882538071,0.0,0.0,0.0
249
+ 247,0.7530487804878049,1.477059245109558,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.6134866175846923,0.0,0.0,0.0
250
+ 248,0.7560975609756098,1.477059006690979,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.41513614432778956,0.0,0.0,0.0
251
+ 249,0.7591463414634146,1.477059245109558,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.17200867804080922,2.384185791015625e-06,0.0,0.0
252
+ 250,0.7621951219512195,1.477059245109558,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.039665002014733886,0.0,0.0,0.0
253
+ 251,0.7652439024390244,1.477059245109558,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.012402068068639638,2.384185791015625e-06,0.0,0.0
254
+ 252,0.7682926829268293,1.477059006690979,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006523508950000645,0.0,0.0,0.0
255
+ 253,0.7713414634146342,1.477059245109558,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.027965447605755922,0.0,0.0,0.0
256
+ 254,0.774390243902439,1.477059006690979,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0479271735337965,2.384185791015625e-06,0.0,0.0
257
+ 255,0.7774390243902439,1.477059006690979,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.014814814814814836,0.06065700299214427,4.76837158203125e-06,0.0,0.0
258
+ 256,0.7804878048780488,1.4770585298538208,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.014814814814814836,0.06381479014460267,4.76837158203125e-06,0.0,0.0
259
+ 257,0.7835365853658537,1.4770585298538208,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.022222222222222254,0.10368467239720447,0.0,0.0,0.0
260
+ 258,0.7865853658536586,1.4770585298538208,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03703703703703698,0.1676054269767595,0.0,0.0,0.0
261
+ 259,0.7896341463414634,1.4770585298538208,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0028985507246376274,0.1427160493827161,0.20257800549966953,0.0,0.0,0.0
262
+ 260,0.7926829268292683,1.4770585298538208,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.005698005698005715,0.12157699537672095,0.24935209901417577,9.5367431640625e-06,0.0,0.0
263
+ 261,0.7957317073170732,1.4770594835281372,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0028248587570621764,0.1479957323578721,0.2564011849852217,1.1920928955078125e-05,0.0,0.0
264
+ 262,0.7987804878048781,1.4770597219467163,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0028248587570621764,0.16120510084844775,0.30556474300272773,2.384185791015625e-06,0.0,0.0
265
+ 263,0.801829268292683,1.4770597219467163,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.005649717514124242,0.16120510084844775,0.3075319816911052,2.384185791015625e-06,0.0,0.0
266
+ 264,0.8048780487804879,1.4770599603652954,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.008474576271186418,0.16120510084844775,0.30949922037948274,2.384185791015625e-06,0.0,0.0
267
+ 265,0.8079268292682927,1.4770599603652954,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.008474576271186418,0.16120510084844775,0.30949922037948274,4.76837158203125e-06,0.0,0.0
268
+ 266,0.8109756097560976,1.4770594835281372,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.008403361344537785,0.16120510084844775,0.3094496261268346,4.76837158203125e-06,0.0,0.0
269
+ 267,0.8140243902439024,1.4770594835281372,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.008403361344537785,0.16120510084844775,0.3094496261268346,1.1920928955078125e-05,0.0,0.0
270
+ 268,0.8170731707317073,1.4770582914352417,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.008403361344537785,0.16120510084844775,0.3094496261268346,4.76837158203125e-06,0.0,0.0
271
+ 269,0.8201219512195121,1.477059006690979,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.025210084033613467,0.16120510084844775,0.3211538697518035,7.152557373046875e-06,0.0,0.0
272
+ 270,0.823170731707317,1.477059006690979,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.01680672268907568,0.16120510084844775,0.3153017479393191,0.0,0.0,0.0
273
+ 271,0.8262195121951219,1.477059006690979,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.07200152788388081,0.16120510084844775,0.3280035123277796,7.152557373046875e-06,0.0,0.0
274
+ 272,0.8292682926829268,1.4770582914352417,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.07486631016042777,0.1347863638672966,0.3015706833648131,1.1920928955078125e-05,0.0,0.0
275
+ 273,0.8323170731707317,1.4770578145980835,1.0,1.0,0.0,0.0,0.0,0.0,0.03703703703703698,0.08288770053475925,0.15411118073313868,0.3076264288847712,4.76837158203125e-06,0.0,0.0
276
+ 274,0.8353658536585366,1.4770578145980835,1.0,1.0,0.0,0.0,0.0,0.0,0.03703703703703698,0.13903743315508021,0.15411118073313868,0.29962717196889954,4.76837158203125e-06,0.0,0.0
277
+ 275,0.8384146341463414,1.4770582914352417,1.0,1.0,0.0,0.0,0.0,0.0,0.007407407407407418,0.16310160427807485,0.1280838324480046,0.3036113892399541,2.384185791015625e-06,0.0,0.0
278
+ 276,0.8414634146341463,1.4770580530166626,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.17112299465240632,0.10836762688614532,0.2890830139948075,7.152557373046875e-06,0.0,0.0
279
+ 277,0.8445121951219512,1.4770575761795044,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.19786096256684482,0.10836762688614532,0.2806060602291284,9.5367431640625e-06,0.0,0.0
280
+ 278,0.8475609756097561,1.4770570993423462,1.0,1.0,0.0,0.0,0.0,0.0,0.022222222222222254,0.23529411764705876,0.12818167962200888,0.3099324658125796,2.384185791015625e-06,0.0,0.0
281
+ 279,0.850609756097561,1.4770573377609253,1.0,1.0,0.0,0.0,0.0,0.0,0.06666666666666665,0.25133689839572193,0.16780978509373567,0.29593149503627725,2.384185791015625e-06,0.0,0.0
282
+ 280,0.8536585365853658,1.4770573377609253,1.0,1.0,0.0,0.0,0.0,0.0,0.09523809523809523,0.27807486631016043,0.1932849957541315,0.32107679878498174,0.0,0.0,0.0
283
+ 281,0.8567073170731707,1.4770573377609253,1.0,1.0,0.0,0.0,0.0,0.0,0.18333333333333335,0.30213903743315496,0.2718335619570187,0.3437075721588154,2.384185791015625e-06,0.0,0.0
284
+ 282,0.8597560975609756,1.4770570993423462,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.32537989869368167,0.10836762688614532,0.3655640766488918,2.384185791015625e-06,0.0,0.0
285
+ 283,0.8628048780487805,1.4770570993423462,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.3293226381461676,0.10836762688614532,0.36927196430333176,0.0,0.0,0.0
286
+ 284,0.8658536585365854,1.4770570993423462,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.32269385026737973,0.10836762688614532,0.36303802441563215,0.0,0.0,0.0
287
+ 285,0.8689024390243902,1.4770570993423462,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.33141542002301494,0.10836762688614532,0.37771589713550857,2.384185791015625e-06,0.0,0.0
288
+ 286,0.8719512195121951,1.4770573377609253,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.321524064171123,0.10836762688614532,0.3685095323961064,4.76837158203125e-06,0.0,0.0
289
+ 287,0.875,1.477056622505188,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.35805422647527907,0.12157699537672095,0.40250992659861495,9.5367431640625e-06,0.0,0.0
290
+ 288,0.8780487804878049,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.3338783518639633,0.1347863638672966,0.3800082672812778,2.384185791015625e-06,0.0,0.0
291
+ 289,0.8810975609756098,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.42727272727272725,0.1347863638672966,0.470195279947635,0.0,0.0,0.0
292
+ 290,0.8841463414634146,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.41173361522198726,0.1347863638672966,0.45582073327954764,0.0,0.0,0.0
293
+ 291,0.8871951219512195,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.43939393939393934,0.1347863638672966,0.4814080782556216,0.0,0.0,0.0
294
+ 292,0.8902439024390244,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.47770154373927953,0.1347863638672966,0.5168447521535036,0.0,0.0,0.0
295
+ 293,0.8932926829268293,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.48122529644268774,0.1347863638672966,0.520104420242423,0.0,0.0,0.0
296
+ 294,0.8963414634146342,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.48122529644268774,0.1347863638672966,0.520104420242423,0.0,0.0,0.0
297
+ 295,0.899390243902439,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5333333333333332,0.1347863638672966,0.5722921211565865,0.0,0.0,0.0
298
+ 296,0.9024390243902439,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5333333333333332,0.1347863638672966,0.5722921211565865,0.0,0.0,0.0
299
+ 297,0.9054878048780488,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5642292490118577,0.1347863638672966,0.6006087494989865,0.0,0.0,0.0
300
+ 298,0.9085365853658537,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5782241014799154,0.16120510084844775,0.6134352680643567,0.0,0.0,0.0
301
+ 299,0.9115853658536586,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5508021390374331,0.16120510084844775,0.5928267240251925,0.0,0.0,0.0
302
+ 300,0.9146341463414634,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.6528925619834711,0.16120510084844775,0.6993498335983998,0.0,0.0,0.0
303
+ 301,0.9176829268292683,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.16120510084844775,0.17641664688243797,0.0,0.0,0.0
304
+ 302,0.9207317073170732,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.16120510084844775,0.1956442738034706,0.0,0.0,0.0
305
+ 303,0.9237804878048781,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.20846269175082566,0.0,0.0,0.0
306
+ 304,0.926829268292683,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.23190774750390308,0.0,0.0,0.0
307
+ 305,0.9298780487804879,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.23505566657151,0.0,0.0,0.0
308
+ 306,0.9329268292682927,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.24449942377433087,0.0,0.0,0.0
309
+ 307,0.9359756097560976,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.24135150470672395,0.0,0.0,0.0
310
+ 308,0.9390243902439024,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.24135150470672395,0.0,0.0,0.0
311
+ 309,0.9420731707317073,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.24781725892797335,0.0,0.0,0.0
312
+ 310,0.9451219512195121,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.24781725892797335,0.0,0.0,0.0
313
+ 311,0.948170731707317,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.2585935159633893,0.0,0.0,0.0
314
+ 312,0.9512195121951219,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.2446485664203809,0.0,0.0,0.0
315
+ 313,0.9542682926829268,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.2446485664203809,0.0,0.0,0.0
316
+ 314,0.9573170731707317,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.2446485664203809,0.0017809867858886719,0.0,0.0
317
+ 315,0.9603658536585366,1.4772344827651978,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.2446485664203809,0.0029993057250976562,0.0,0.0
318
+ 316,0.9634146341463414,1.4773563146591187,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.2446485664203809,0.0011372566223144531,0.0,0.0
319
+ 317,0.9664634146341463,1.4773482084274292,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.2446485664203809,0.0027179718017578125,0.0,0.0
320
+ 318,0.9695121951219512,1.4776281118392944,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.2446485664203809,0.002791881561279297,0.0,0.0
321
+ 319,0.9725609756097561,1.4776273965835571,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.11522633744855959,0.2443781219400446,0.0034952163696289062,0.0,0.0
322
+ 320,0.975609756097561,1.4779776334762573,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.11522633744855959,0.2443781219400446,0.0036287307739257812,0.0,0.0
323
+ 321,0.9786585365853658,1.4779902696609497,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.11522633744855959,0.2443781219400446,0.00019550323486328125,0.0,0.0
324
+ 322,0.9817073170731707,1.4779971837997437,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.11522633744855959,0.2443781219400446,0.0011444091796875,0.0,0.0
325
+ 323,0.9847560975609756,1.4781047105789185,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.11522633744855959,0.2443781219400446,0.0011992454528808594,0.0,0.0
326
+ 324,0.9878048780487805,1.4781171083450317,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.11522633744855959,0.2443781219400446,0.0024390220642089844,0.0,0.0
327
+ 325,0.9908536585365854,1.4783486127853394,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.11522633744855959,0.2443781219400446,0.0019001960754394531,0.0,0.0
328
+ 326,0.9939024390243902,1.4783071279525757,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.11522633744855959,0.2443781219400446,0.0004458427429199219,0.0,0.0
329
+ 327,0.9969512195121951,1.4783040285110474,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.2446485664203809,2.384185791015625e-06,0.0,0.0
330
+ 328,1.0,1.4783073663711548,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.2446485664203809,6.67572021484375e-05,0.0,0.0
artifacts/results/oven_episode0_full_v4/episode0.keyframes.csv ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ frame_index,time_norm,door_angle,right_gripper_open,left_gripper_open,p_pre,p_ext,y_pre,y_ext,three_view_visibility,three_view_whole_tray_visibility,full_view_visibility,full_view_whole_tray_visibility,door_speed_abs,y_ready,phase_switch,keyframe_ordinal
2
+ 61,0.18597560975609756,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.3950617283950617,0.0,0.6063226585829847,0.0,0.0,0.0,0.0,0
3
+ 91,0.2774390243902439,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0,1
4
+ 93,0.28353658536585363,1.5707963705062866,0.0,1.0,0.0,0.0,0.0,0.0,0.2222222222222222,0.0,0.4938434181781233,0.0,0.0,0.0,0.0,2
5
+ 130,0.39634146341463417,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0,3
6
+ 132,0.4024390243902439,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.8823529411764706,0.0,0.9544592030360531,0.0,0.0,0.0,4
7
+ 175,0.5335365853658537,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.9276688453159041,0.0,0.9720008433480919,0.0,0.0,0.0,5
8
+ 234,0.7134146341463414,1.4881452322006226,1.0,1.0,0.0,0.0,0.0,0.0,0.24511784511784507,0.34019664545980344,0.30103504177578244,0.7314214361256747,0.09296417236328125,0.0,0.0,6
9
+ 236,0.7195121951219512,1.4809237718582153,1.0,1.0,0.0,0.0,0.0,0.0,0.24511784511784507,0.35454019664545977,0.30103504177578244,0.7372601005577252,0.07308483123779297,0.0,0.0,7
10
+ 266,0.8109756097560976,1.4770594835281372,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.008403361344537785,0.16120510084844775,0.3094496261268346,4.76837158203125e-06,0.0,0.0,8
11
+ 295,0.899390243902439,1.4770563840866089,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.5333333333333332,0.1347863638672966,0.5722921211565865,0.0,0.0,0.0,9
12
+ 315,0.9603658536585366,1.4772344827651978,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.2446485664203809,0.0029993057250976562,0.0,0.0,10
13
+ 317,0.9664634146341463,1.4773482084274292,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.2446485664203809,0.0027179718017578125,0.0,0.0,11
14
+ 322,0.9817073170731707,1.4779971837997437,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045112781954887216,0.11522633744855959,0.2443781219400446,0.0011444091796875,0.0,0.0,12
15
+ 328,1.0,1.4783073663711548,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.045454545454545414,0.11522633744855959,0.2446485664203809,6.67572021484375e-05,0.0,0.0,13
artifacts/results/oven_episode0_full_v4/episode0.metrics.json ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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": 0,
7
+ "phase_switch_falls": 0,
8
+ "ppre_cross_frame": -1,
9
+ "pext_cross_frame": -1,
10
+ "phase_cross_frame": -1,
11
+ "ready_cross_frame": -1,
12
+ "ordering_ok": true,
13
+ "dense_boundary_error_frames": NaN,
14
+ "dense_boundary_error_fraction": NaN,
15
+ "key_boundary_error_keyframes": NaN,
16
+ "auroc_vret_ypre_three": NaN,
17
+ "auprc_vret_ypre_three": NaN,
18
+ "auroc_vret_ypre_full": NaN,
19
+ "auprc_vret_ypre_full": NaN,
20
+ "auroc_ppre_ypre": NaN,
21
+ "auprc_ppre_ypre": NaN,
22
+ "auroc_pext_yext": NaN,
23
+ "auprc_pext_yext": NaN,
24
+ "auroc_phase_yready": NaN,
25
+ "auprc_phase_yready": NaN,
26
+ "f1_phase_yready": NaN,
27
+ "baseline_auroc_door_yext": NaN,
28
+ "baseline_auprc_door_yext": NaN,
29
+ "baseline_auroc_time_yext": NaN,
30
+ "baseline_auprc_time_yext": NaN,
31
+ "baseline_auroc_whole_vis_yext": NaN,
32
+ "baseline_auprc_whole_vis_yext": NaN,
33
+ "pre_ready_open_more_increases_pext": 0.0,
34
+ "pre_ready_open_more_trials": 3.0,
35
+ "pre_ready_hold_open_increases_pext": 0.0,
36
+ "pre_ready_hold_open_trials": 3.0,
37
+ "pre_ready_extract_success": 0.0,
38
+ "pre_ready_extract_trials": 3.0,
39
+ "pre_ready_wait_extract_success": 0.0,
40
+ "pre_ready_wait_trials": 3.0,
41
+ "post_ready_extract_success": 0.0,
42
+ "post_ready_extract_trials": 0.0,
43
+ "post_ready_open_more_low_gain": 0.0,
44
+ "post_ready_open_more_trials": 0.0,
45
+ "post_ready_hold_open_low_gain": 0.0,
46
+ "post_ready_hold_open_trials": 0.0
47
+ }
artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0247.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"frame_index": 247, "time_norm": 0.7530487804878049, "door_angle": 0.49261462688446045, "right_gripper_open": 1.0, "left_gripper_open": 0.0, "p_pre": 1.0, "p_ext": 0.8484124024709062, "y_pre": 1.0, "y_ext": 1.0, "three_view_visibility": 0.6510903426791277, "three_view_whole_tray_visibility": 0.019385456885456787, "full_view_visibility": 0.9401413335954315, "full_view_whole_tray_visibility": 0.07093302672499979}
artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0249.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"frame_index": 249, "time_norm": 0.7591463414634146, "door_angle": 0.4929593801498413, "right_gripper_open": 1.0, "left_gripper_open": 0.0, "p_pre": 1.0, "p_ext": 0.8467663208643591, "y_pre": 1.0, "y_ext": 1.0, "three_view_visibility": 0.6261682242990654, "three_view_whole_tray_visibility": 0.019215747539446992, "full_view_visibility": 0.9372863626802578, "full_view_whole_tray_visibility": 0.0860551110590233}
artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0253.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"frame_index": 253, "time_norm": 0.7713414634146342, "door_angle": 0.46142566204071045, "right_gripper_open": 1.0, "left_gripper_open": 0.0, "p_pre": 1.0, "p_ext": 0.8483955144882198, "y_pre": 1.0, "y_ext": 1.0, "three_view_visibility": 0.666043613707165, "three_view_whole_tray_visibility": 0.013513513513513487, "full_view_visibility": 0.9629142306809029, "full_view_whole_tray_visibility": 0.0870498488919541}
artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0254.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"frame_index": 254, "time_norm": 0.774390243902439, "door_angle": 0.4486583471298218, "right_gripper_open": 1.0, "left_gripper_open": 0.0, "p_pre": 1.0, "p_ext": 0.8470385154088335, "y_pre": 1.0, "y_ext": 1.0, "three_view_visibility": 0.666043613707165, "three_view_whole_tray_visibility": 0.018733018733018802, "full_view_visibility": 0.9650156635001218, "full_view_whole_tray_visibility": 0.09402891618521392}
artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0255.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"frame_index": 255, "time_norm": 0.7774390243902439, "door_angle": 0.43670451641082764, "right_gripper_open": 1.0, "left_gripper_open": 0.0, "p_pre": 1.0, "p_ext": 0.8028466383616125, "y_pre": 1.0, "y_ext": 1.0, "three_view_visibility": 0.6959501557632399, "three_view_whole_tray_visibility": 0.013513513513513487, "full_view_visibility": 0.9680900128722495, "full_view_whole_tray_visibility": 0.075855591759731}
artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0258.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"frame_index": 258, "time_norm": 0.7865853658536586, "door_angle": 0.4088653326034546, "right_gripper_open": 1.0, "left_gripper_open": 0.0, "p_pre": 1.0, "p_ext": 0.8543847878774004, "y_pre": 1.0, "y_ext": 1.0, "three_view_visibility": 0.6607822776047074, "three_view_whole_tray_visibility": 0.01847073203857119, "full_view_visibility": 0.9708598482204626, "full_view_whole_tray_visibility": 0.06690513322528724}
artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0263.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"frame_index": 263, "time_norm": 0.801829268292683, "door_angle": 0.39379656314849854, "right_gripper_open": 1.0, "left_gripper_open": 0.0, "p_pre": 1.0, "p_ext": 0.9123820940653479, "y_pre": 1.0, "y_ext": 1.0, "three_view_visibility": 0.6903426791277258, "three_view_whole_tray_visibility": 0.01814490546884906, "full_view_visibility": 0.9800784763738907, "full_view_whole_tray_visibility": 0.10063285507729947}
artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0278.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"frame_index": 278, "time_norm": 0.8475609756097561, "door_angle": 0.39204227924346924, "right_gripper_open": 1.0, "left_gripper_open": 0.0, "p_pre": 1.0, "p_ext": 1.0, "y_pre": 1.0, "y_ext": 1.0, "three_view_visibility": 0.5753086419753086, "three_view_whole_tray_visibility": 0.20045248868778287, "full_view_visibility": 0.8872409166774863, "full_view_whole_tray_visibility": 0.9969511008773104}
artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0283.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"frame_index": 283, "time_norm": 0.8628048780487805, "door_angle": 0.39204227924346924, "right_gripper_open": 1.0, "left_gripper_open": 0.0, "p_pre": 1.0, "p_ext": 1.0, "y_pre": 1.0, "y_ext": 1.0, "three_view_visibility": 0.3523456790123457, "three_view_whole_tray_visibility": 0.1749158249158248, "full_view_visibility": 0.7542289556131349, "full_view_whole_tray_visibility": 0.9167386876458267}
artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0294.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"frame_index": 294, "time_norm": 0.8963414634146342, "door_angle": 0.39204227924346924, "right_gripper_open": 1.0, "left_gripper_open": 0.0, "p_pre": 1.0, "p_ext": 1.0, "y_pre": 1.0, "y_ext": 1.0, "three_view_visibility": 0.7146090534979423, "three_view_whole_tray_visibility": 0.016253753753753708, "full_view_visibility": 0.9716221962550876, "full_view_whole_tray_visibility": 0.08770534622440718}
artifacts/results/parallel_smoke_2x10/parallel_summary.json ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "num_episodes": 2,
3
+ "mean_metrics": {
4
+ "num_dense_frames": 10.0,
5
+ "num_keyframes": 0.0,
6
+ "phase_switch_rises": 0.0,
7
+ "phase_switch_falls": 0.0,
8
+ "ppre_cross_frame": -1.0,
9
+ "pext_cross_frame": -1.0,
10
+ "phase_cross_frame": -1.0,
11
+ "ready_cross_frame": -1.0,
12
+ "dense_boundary_error_frames": NaN,
13
+ "dense_boundary_error_fraction": NaN,
14
+ "key_boundary_error_keyframes": NaN,
15
+ "auroc_vret_ypre_three": NaN,
16
+ "auprc_vret_ypre_three": NaN,
17
+ "auroc_vret_ypre_full": NaN,
18
+ "auprc_vret_ypre_full": NaN,
19
+ "auroc_ppre_ypre": NaN,
20
+ "auprc_ppre_ypre": NaN,
21
+ "auroc_pext_yext": NaN,
22
+ "auprc_pext_yext": NaN,
23
+ "auroc_phase_yready": NaN,
24
+ "auprc_phase_yready": NaN,
25
+ "f1_phase_yready": NaN,
26
+ "baseline_auroc_door_yext": NaN,
27
+ "baseline_auprc_door_yext": NaN,
28
+ "baseline_auroc_time_yext": NaN,
29
+ "baseline_auprc_time_yext": NaN,
30
+ "baseline_auroc_whole_vis_yext": NaN,
31
+ "baseline_auprc_whole_vis_yext": NaN,
32
+ "pre_ready_open_more_increases_pext": 0.0,
33
+ "pre_ready_open_more_trials": 3.0,
34
+ "pre_ready_hold_open_increases_pext": 0.0,
35
+ "pre_ready_hold_open_trials": 3.0,
36
+ "pre_ready_extract_success": 0.0,
37
+ "pre_ready_extract_trials": 3.0,
38
+ "pre_ready_wait_extract_success": 0.0,
39
+ "pre_ready_wait_trials": 3.0,
40
+ "post_ready_extract_success": 0.0,
41
+ "post_ready_extract_trials": 0.0,
42
+ "post_ready_open_more_low_gain": 0.0,
43
+ "post_ready_open_more_trials": 0.0,
44
+ "post_ready_hold_open_low_gain": 0.0,
45
+ "post_ready_hold_open_trials": 0.0
46
+ },
47
+ "median_metrics": {
48
+ "num_dense_frames": 10.0,
49
+ "num_keyframes": 0.0,
50
+ "phase_switch_rises": 0.0,
51
+ "phase_switch_falls": 0.0,
52
+ "ppre_cross_frame": -1.0,
53
+ "pext_cross_frame": -1.0,
54
+ "phase_cross_frame": -1.0,
55
+ "ready_cross_frame": -1.0,
56
+ "dense_boundary_error_frames": NaN,
57
+ "dense_boundary_error_fraction": NaN,
58
+ "key_boundary_error_keyframes": NaN,
59
+ "auroc_vret_ypre_three": NaN,
60
+ "auprc_vret_ypre_three": NaN,
61
+ "auroc_vret_ypre_full": NaN,
62
+ "auprc_vret_ypre_full": NaN,
63
+ "auroc_ppre_ypre": NaN,
64
+ "auprc_ppre_ypre": NaN,
65
+ "auroc_pext_yext": NaN,
66
+ "auprc_pext_yext": NaN,
67
+ "auroc_phase_yready": NaN,
68
+ "auprc_phase_yready": NaN,
69
+ "f1_phase_yready": NaN,
70
+ "baseline_auroc_door_yext": NaN,
71
+ "baseline_auprc_door_yext": NaN,
72
+ "baseline_auroc_time_yext": NaN,
73
+ "baseline_auprc_time_yext": NaN,
74
+ "baseline_auroc_whole_vis_yext": NaN,
75
+ "baseline_auprc_whole_vis_yext": NaN,
76
+ "pre_ready_open_more_increases_pext": 0.0,
77
+ "pre_ready_open_more_trials": 3.0,
78
+ "pre_ready_hold_open_increases_pext": 0.0,
79
+ "pre_ready_hold_open_trials": 3.0,
80
+ "pre_ready_extract_success": 0.0,
81
+ "pre_ready_extract_trials": 3.0,
82
+ "pre_ready_wait_extract_success": 0.0,
83
+ "pre_ready_wait_trials": 3.0,
84
+ "post_ready_extract_success": 0.0,
85
+ "post_ready_extract_trials": 0.0,
86
+ "post_ready_open_more_low_gain": 0.0,
87
+ "post_ready_open_more_trials": 0.0,
88
+ "post_ready_hold_open_low_gain": 0.0,
89
+ "post_ready_hold_open_trials": 0.0
90
+ },
91
+ "single_switch_rate": 0.0,
92
+ "reversion_rate": 0.0,
93
+ "ordering_ok_rate": 1.0
94
+ }
artifacts/results/parallel_smoke_2x10/parallel_workers.json ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "worker_index": 0,
4
+ "display_num": 110,
5
+ "episode_offset": 0,
6
+ "episode_count": 1,
7
+ "return_code": 0
8
+ },
9
+ {
10
+ "worker_index": 1,
11
+ "display_num": 111,
12
+ "episode_offset": 1,
13
+ "episode_count": 1,
14
+ "return_code": 0
15
+ }
16
+ ]
artifacts/results/parallel_smoke_2x10/worker_00/episode0.keyframes.csv ADDED
@@ -0,0 +1 @@
 
 
1
+ frame_index,time_norm,door_angle,right_gripper_open,left_gripper_open,p_pre,p_ext,y_pre,y_ext,three_view_visibility,three_view_whole_tray_visibility,full_view_visibility,full_view_whole_tray_visibility,door_speed_abs,y_ready,phase_switch,keyframe_ordinal
artifacts/results/parallel_smoke_2x10/worker_00/templates.json ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "templates": {
3
+ "pregrasp_rel_pose": [
4
+ -0.13080622153625854,
5
+ 0.09101976559951595,
6
+ 0.02870928398798034,
7
+ 0.5387310717060861,
8
+ 0.5160426587568956,
9
+ 0.45387044508326163,
10
+ 0.48730937380831085
11
+ ],
12
+ "grasp_rel_pose": [
13
+ -0.12734151579886066,
14
+ 0.08957834056859733,
15
+ 0.03087325631449933,
16
+ 0.5299842234493235,
17
+ 0.49388142793356815,
18
+ 0.4702687361365511,
19
+ 0.5040289414801972
20
+ ],
21
+ "retreat_rel_poses": [
22
+ [
23
+ -0.13649576054721357,
24
+ 0.09819523449397849,
25
+ 0.0103747024652463,
26
+ 0.4999387992730166,
27
+ 0.4984778938697299,
28
+ 0.4997914401835644,
29
+ 0.5017863117143504
30
+ ],
31
+ [
32
+ -0.2546191190272784,
33
+ 0.08419523798913177,
34
+ 0.0243663588873686,
35
+ 0.500806402191772,
36
+ 0.5002684909918421,
37
+ 0.4994416739891425,
38
+ 0.4994821305386226
39
+ ],
40
+ [
41
+ -0.3554965132950257,
42
+ 0.071270154826924,
43
+ 0.03977937595477288,
44
+ 0.5006546968340642,
45
+ 0.5000946885564522,
46
+ 0.49977557510595916,
47
+ 0.4994742751565132
48
+ ]
49
+ ],
50
+ "grasp_local_center": [
51
+ -0.12734151579886066,
52
+ 0.08957834056859731,
53
+ 0.03087325631449933
54
+ ],
55
+ "grasp_region_extents": [
56
+ 0.03,
57
+ 0.015,
58
+ 0.004
59
+ ],
60
+ "hold_open_angle": 1.5707963705062866,
61
+ "open_more_delta": 0.12,
62
+ "reference_tray_height": 1.047482967376709
63
+ },
64
+ "template_episode": "episode0",
65
+ "template_frames": {
66
+ "pregrasp": 229,
67
+ "grasp": 234,
68
+ "right_close": 91,
69
+ "right_open": 130
70
+ },
71
+ "episode_offset": 0
72
+ }
artifacts/results/parallel_smoke_2x10/worker_00/xvfb.log ADDED
File without changes
artifacts/results/parallel_smoke_2x10/worker_01/episode1.dense.csv ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ frame_index,time_norm,door_angle,right_gripper_open,left_gripper_open,p_pre,p_ext,y_pre,y_ext,three_view_visibility,three_view_whole_tray_visibility,full_view_visibility,full_view_whole_tray_visibility,door_speed_abs,y_ready,phase_switch
2
+ 0,0.0,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.76837158203125e-06,0.0,0.0
3
+ 1,0.1111111111111111,1.5707966089248657,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.76837158203125e-06,0.0,0.0
4
+ 2,0.2222222222222222,1.5707968473434448,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.384185791015625e-06,0.0,0.0
5
+ 3,0.3333333333333333,1.5707968473434448,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.384185791015625e-06,0.0,0.0
6
+ 4,0.4444444444444444,1.5707966089248657,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.76837158203125e-06,0.0,0.0
7
+ 5,0.5555555555555556,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.384185791015625e-06,0.0,0.0
8
+ 6,0.6666666666666666,1.5707968473434448,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
9
+ 7,0.7777777777777778,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.76837158203125e-06,0.0,0.0
10
+ 8,0.8888888888888888,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
11
+ 9,1.0,1.5707963705062866,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
artifacts/results/parallel_smoke_2x10/worker_01/episode1.metrics.json ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "episode_name": "episode1",
3
+ "description": "take tray out of oven",
4
+ "num_dense_frames": 10,
5
+ "num_keyframes": 0,
6
+ "phase_switch_rises": 0,
7
+ "phase_switch_falls": 0,
8
+ "ppre_cross_frame": -1,
9
+ "pext_cross_frame": -1,
10
+ "phase_cross_frame": -1,
11
+ "ready_cross_frame": -1,
12
+ "ordering_ok": true,
13
+ "dense_boundary_error_frames": NaN,
14
+ "dense_boundary_error_fraction": NaN,
15
+ "key_boundary_error_keyframes": NaN,
16
+ "auroc_vret_ypre_three": NaN,
17
+ "auprc_vret_ypre_three": NaN,
18
+ "auroc_vret_ypre_full": NaN,
19
+ "auprc_vret_ypre_full": NaN,
20
+ "auroc_ppre_ypre": NaN,
21
+ "auprc_ppre_ypre": NaN,
22
+ "auroc_pext_yext": NaN,
23
+ "auprc_pext_yext": NaN,
24
+ "auroc_phase_yready": NaN,
25
+ "auprc_phase_yready": NaN,
26
+ "f1_phase_yready": NaN,
27
+ "baseline_auroc_door_yext": NaN,
28
+ "baseline_auprc_door_yext": NaN,
29
+ "baseline_auroc_time_yext": NaN,
30
+ "baseline_auprc_time_yext": NaN,
31
+ "baseline_auroc_whole_vis_yext": NaN,
32
+ "baseline_auprc_whole_vis_yext": NaN,
33
+ "pre_ready_open_more_increases_pext": 0.0,
34
+ "pre_ready_open_more_trials": 3.0,
35
+ "pre_ready_hold_open_increases_pext": 0.0,
36
+ "pre_ready_hold_open_trials": 3.0,
37
+ "pre_ready_extract_success": 0.0,
38
+ "pre_ready_extract_trials": 3.0,
39
+ "pre_ready_wait_extract_success": 0.0,
40
+ "pre_ready_wait_trials": 3.0,
41
+ "post_ready_extract_success": 0.0,
42
+ "post_ready_extract_trials": 0.0,
43
+ "post_ready_open_more_low_gain": 0.0,
44
+ "post_ready_open_more_trials": 0.0,
45
+ "post_ready_hold_open_low_gain": 0.0,
46
+ "post_ready_hold_open_trials": 0.0
47
+ }
artifacts/results/parallel_smoke_2x10/worker_01/summary.json ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "num_episodes": 1,
3
+ "mean_metrics": {
4
+ "num_dense_frames": 10.0,
5
+ "num_keyframes": 0.0,
6
+ "phase_switch_rises": 0.0,
7
+ "phase_switch_falls": 0.0,
8
+ "ppre_cross_frame": -1.0,
9
+ "pext_cross_frame": -1.0,
10
+ "phase_cross_frame": -1.0,
11
+ "ready_cross_frame": -1.0,
12
+ "dense_boundary_error_frames": NaN,
13
+ "dense_boundary_error_fraction": NaN,
14
+ "key_boundary_error_keyframes": NaN,
15
+ "auroc_vret_ypre_three": NaN,
16
+ "auprc_vret_ypre_three": NaN,
17
+ "auroc_vret_ypre_full": NaN,
18
+ "auprc_vret_ypre_full": NaN,
19
+ "auroc_ppre_ypre": NaN,
20
+ "auprc_ppre_ypre": NaN,
21
+ "auroc_pext_yext": NaN,
22
+ "auprc_pext_yext": NaN,
23
+ "auroc_phase_yready": NaN,
24
+ "auprc_phase_yready": NaN,
25
+ "f1_phase_yready": NaN,
26
+ "baseline_auroc_door_yext": NaN,
27
+ "baseline_auprc_door_yext": NaN,
28
+ "baseline_auroc_time_yext": NaN,
29
+ "baseline_auprc_time_yext": NaN,
30
+ "baseline_auroc_whole_vis_yext": NaN,
31
+ "baseline_auprc_whole_vis_yext": NaN,
32
+ "pre_ready_open_more_increases_pext": 0.0,
33
+ "pre_ready_open_more_trials": 3.0,
34
+ "pre_ready_hold_open_increases_pext": 0.0,
35
+ "pre_ready_hold_open_trials": 3.0,
36
+ "pre_ready_extract_success": 0.0,
37
+ "pre_ready_extract_trials": 3.0,
38
+ "pre_ready_wait_extract_success": 0.0,
39
+ "pre_ready_wait_trials": 3.0,
40
+ "post_ready_extract_success": 0.0,
41
+ "post_ready_extract_trials": 0.0,
42
+ "post_ready_open_more_low_gain": 0.0,
43
+ "post_ready_open_more_trials": 0.0,
44
+ "post_ready_hold_open_low_gain": 0.0,
45
+ "post_ready_hold_open_trials": 0.0
46
+ },
47
+ "median_metrics": {
48
+ "num_dense_frames": 10.0,
49
+ "num_keyframes": 0.0,
50
+ "phase_switch_rises": 0.0,
51
+ "phase_switch_falls": 0.0,
52
+ "ppre_cross_frame": -1.0,
53
+ "pext_cross_frame": -1.0,
54
+ "phase_cross_frame": -1.0,
55
+ "ready_cross_frame": -1.0,
56
+ "dense_boundary_error_frames": NaN,
57
+ "dense_boundary_error_fraction": NaN,
58
+ "key_boundary_error_keyframes": NaN,
59
+ "auroc_vret_ypre_three": NaN,
60
+ "auprc_vret_ypre_three": NaN,
61
+ "auroc_vret_ypre_full": NaN,
62
+ "auprc_vret_ypre_full": NaN,
63
+ "auroc_ppre_ypre": NaN,
64
+ "auprc_ppre_ypre": NaN,
65
+ "auroc_pext_yext": NaN,
66
+ "auprc_pext_yext": NaN,
67
+ "auroc_phase_yready": NaN,
68
+ "auprc_phase_yready": NaN,
69
+ "f1_phase_yready": NaN,
70
+ "baseline_auroc_door_yext": NaN,
71
+ "baseline_auprc_door_yext": NaN,
72
+ "baseline_auroc_time_yext": NaN,
73
+ "baseline_auprc_time_yext": NaN,
74
+ "baseline_auroc_whole_vis_yext": NaN,
75
+ "baseline_auprc_whole_vis_yext": NaN,
76
+ "pre_ready_open_more_increases_pext": 0.0,
77
+ "pre_ready_open_more_trials": 3.0,
78
+ "pre_ready_hold_open_increases_pext": 0.0,
79
+ "pre_ready_hold_open_trials": 3.0,
80
+ "pre_ready_extract_success": 0.0,
81
+ "pre_ready_extract_trials": 3.0,
82
+ "pre_ready_wait_extract_success": 0.0,
83
+ "pre_ready_wait_trials": 3.0,
84
+ "post_ready_extract_success": 0.0,
85
+ "post_ready_extract_trials": 0.0,
86
+ "post_ready_open_more_low_gain": 0.0,
87
+ "post_ready_open_more_trials": 0.0,
88
+ "post_ready_hold_open_low_gain": 0.0,
89
+ "post_ready_hold_open_trials": 0.0
90
+ },
91
+ "single_switch_rate": 0.0,
92
+ "reversion_rate": 0.0,
93
+ "ordering_ok_rate": 1.0
94
+ }
artifacts/results/parallel_smoke_2x10/worker_01/templates.json ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "templates": {
3
+ "pregrasp_rel_pose": [
4
+ -0.13080622153625854,
5
+ 0.09101976559951595,
6
+ 0.02870928398798034,
7
+ 0.5387310717060861,
8
+ 0.5160426587568956,
9
+ 0.45387044508326163,
10
+ 0.48730937380831085
11
+ ],
12
+ "grasp_rel_pose": [
13
+ -0.12734151579886066,
14
+ 0.08957834056859733,
15
+ 0.03087325631449933,
16
+ 0.5299842234493235,
17
+ 0.49388142793356815,
18
+ 0.4702687361365511,
19
+ 0.5040289414801972
20
+ ],
21
+ "retreat_rel_poses": [
22
+ [
23
+ -0.13649576054721357,
24
+ 0.09819523449397849,
25
+ 0.0103747024652463,
26
+ 0.4999387992730166,
27
+ 0.4984778938697299,
28
+ 0.4997914401835644,
29
+ 0.5017863117143504
30
+ ],
31
+ [
32
+ -0.2546191190272784,
33
+ 0.08419523798913177,
34
+ 0.0243663588873686,
35
+ 0.500806402191772,
36
+ 0.5002684909918421,
37
+ 0.4994416739891425,
38
+ 0.4994821305386226
39
+ ],
40
+ [
41
+ -0.3554965132950257,
42
+ 0.071270154826924,
43
+ 0.03977937595477288,
44
+ 0.5006546968340642,
45
+ 0.5000946885564522,
46
+ 0.49977557510595916,
47
+ 0.4994742751565132
48
+ ]
49
+ ],
50
+ "grasp_local_center": [
51
+ -0.12734151579886066,
52
+ 0.08957834056859731,
53
+ 0.03087325631449933
54
+ ],
55
+ "grasp_region_extents": [
56
+ 0.03,
57
+ 0.015,
58
+ 0.004
59
+ ],
60
+ "hold_open_angle": 1.5707963705062866,
61
+ "open_more_delta": 0.12,
62
+ "reference_tray_height": 1.047482967376709
63
+ },
64
+ "template_episode": "episode0",
65
+ "template_frames": {
66
+ "pregrasp": 229,
67
+ "grasp": 234,
68
+ "right_close": 91,
69
+ "right_open": 130
70
+ },
71
+ "episode_offset": 1
72
+ }
artifacts/results/parallel_smoke_2x10/worker_01/worker.log ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WARNING:root:not sure how _robot_shapes are used is used.
2
+ WARNING:root:Waypoints are not reachable right=(False, 'waypoint0 - DualPanda') left=(True, '')
3
+ ERROR:root:Error when checking waypoints. Exception is: Error in task bimanual_take_tray_out_of_oven. Infeasible episode. Can't reach waypoint ((False, 'waypoint0 - DualPanda'), (True, '')).
4
+ WARNING: QApplication was not created in the main() thread.
5
+ WARNING:root:not sure how _robot_shapes are used is used.
6
+ [episode1] analyzed 10/10 dense frames
7
+ {
8
+ "num_episodes": 1,
9
+ "mean_metrics": {
10
+ "num_dense_frames": 10.0,
11
+ "num_keyframes": 0.0,
12
+ "phase_switch_rises": 0.0,
13
+ "phase_switch_falls": 0.0,
14
+ "ppre_cross_frame": -1.0,
15
+ "pext_cross_frame": -1.0,
16
+ "phase_cross_frame": -1.0,
17
+ "ready_cross_frame": -1.0,
18
+ "dense_boundary_error_frames": NaN,
19
+ "dense_boundary_error_fraction": NaN,
20
+ "key_boundary_error_keyframes": NaN,
21
+ "auroc_vret_ypre_three": NaN,
22
+ "auprc_vret_ypre_three": NaN,
23
+ "auroc_vret_ypre_full": NaN,
24
+ "auprc_vret_ypre_full": NaN,
25
+ "auroc_ppre_ypre": NaN,
26
+ "auprc_ppre_ypre": NaN,
27
+ "auroc_pext_yext": NaN,
28
+ "auprc_pext_yext": NaN,
29
+ "auroc_phase_yready": NaN,
30
+ "auprc_phase_yready": NaN,
31
+ "f1_phase_yready": NaN,
32
+ "baseline_auroc_door_yext": NaN,
33
+ "baseline_auprc_door_yext": NaN,
34
+ "baseline_auroc_time_yext": NaN,
35
+ "baseline_auprc_time_yext": NaN,
36
+ "baseline_auroc_whole_vis_yext": NaN,
37
+ "baseline_auprc_whole_vis_yext": NaN,
38
+ "pre_ready_open_more_increases_pext": 0.0,
39
+ "pre_ready_open_more_trials": 3.0,
40
+ "pre_ready_hold_open_increases_pext": 0.0,
41
+ "pre_ready_hold_open_trials": 3.0,
42
+ "pre_ready_extract_success": 0.0,
43
+ "pre_ready_extract_trials": 3.0,
44
+ "pre_ready_wait_extract_success": 0.0,
45
+ "pre_ready_wait_trials": 3.0,
46
+ "post_ready_extract_success": 0.0,
47
+ "post_ready_extract_trials": 0.0,
48
+ "post_ready_open_more_low_gain": 0.0,
49
+ "post_ready_open_more_trials": 0.0,
50
+ "post_ready_hold_open_low_gain": 0.0,
51
+ "post_ready_hold_open_trials": 0.0
52
+ },
53
+ "median_metrics": {
54
+ "num_dense_frames": 10.0,
55
+ "num_keyframes": 0.0,
56
+ "phase_switch_rises": 0.0,
57
+ "phase_switch_falls": 0.0,
58
+ "ppre_cross_frame": -1.0,
59
+ "pext_cross_frame": -1.0,
60
+ "phase_cross_frame": -1.0,
61
+ "ready_cross_frame": -1.0,
62
+ "dense_boundary_error_frames": NaN,
63
+ "dense_boundary_error_fraction": NaN,
64
+ "key_boundary_error_keyframes": NaN,
65
+ "auroc_vret_ypre_three": NaN,
66
+ "auprc_vret_ypre_three": NaN,
67
+ "auroc_vret_ypre_full": NaN,
68
+ "auprc_vret_ypre_full": NaN,
69
+ "auroc_ppre_ypre": NaN,
70
+ "auprc_ppre_ypre": NaN,
71
+ "auroc_pext_yext": NaN,
72
+ "auprc_pext_yext": NaN,
73
+ "auroc_phase_yready": NaN,
74
+ "auprc_phase_yready": NaN,
75
+ "f1_phase_yready": NaN,
76
+ "baseline_auroc_door_yext": NaN,
77
+ "baseline_auprc_door_yext": NaN,
78
+ "baseline_auroc_time_yext": NaN,
79
+ "baseline_auprc_time_yext": NaN,
80
+ "baseline_auroc_whole_vis_yext": NaN,
81
+ "baseline_auprc_whole_vis_yext": NaN,
82
+ "pre_ready_open_more_increases_pext": 0.0,
83
+ "pre_ready_open_more_trials": 3.0,
84
+ "pre_ready_hold_open_increases_pext": 0.0,
85
+ "pre_ready_hold_open_trials": 3.0,
86
+ "pre_ready_extract_success": 0.0,
87
+ "pre_ready_extract_trials": 3.0,
88
+ "pre_ready_wait_extract_success": 0.0,
89
+ "pre_ready_wait_trials": 3.0,
90
+ "post_ready_extract_success": 0.0,
91
+ "post_ready_extract_trials": 0.0,
92
+ "post_ready_open_more_low_gain": 0.0,
93
+ "post_ready_open_more_trials": 0.0,
94
+ "post_ready_hold_open_low_gain": 0.0,
95
+ "post_ready_hold_open_trials": 0.0
96
+ },
97
+ "single_switch_rate": 0.0,
98
+ "reversion_rate": 0.0,
99
+ "ordering_ok_rate": 1.0
100
+ }
101
+ [CoppeliaSim:loadinfo] done.
102
+ [CoppeliaSim:loadinfo] done.
artifacts/results/parallel_smoke_2x10/worker_01/xvfb.log ADDED
File without changes
code/rr_label_study/__init__.py ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ from .oven_study import main, run_study
2
+
3
+ __all__ = ["main", "run_study"]
code/rr_label_study/oven_study.py ADDED
@@ -0,0 +1,1222 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import argparse
2
+ import json
3
+ import math
4
+ import os
5
+ import pickle
6
+ from dataclasses import dataclass, asdict
7
+ from pathlib import Path
8
+ from typing import Dict, Iterable, List, Optional, Sequence, Tuple
9
+
10
+ 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.shape import Shape
18
+ from rlbench.action_modes.action_mode import BimanualJointPositionActionMode
19
+ from rlbench.action_modes.gripper_action_modes import BimanualDiscrete
20
+ from rlbench.backend.const import DEPTH_SCALE
21
+ from rlbench.backend.utils import image_to_float_array, rgb_handles_to_mask
22
+ from rlbench.bimanual_tasks.bimanual_take_tray_out_of_oven import (
23
+ BimanualTakeTrayOutOfOven,
24
+ )
25
+ from rlbench.demo import Demo
26
+ from rlbench.environment import Environment
27
+ from rlbench.observation_config import CameraConfig, ObservationConfig
28
+ from sklearn.metrics import (
29
+ average_precision_score,
30
+ f1_score,
31
+ roc_auc_score,
32
+ )
33
+
34
+
35
+ FULL_CAMERA_SET = [
36
+ "front",
37
+ "overhead",
38
+ "wrist_right",
39
+ "wrist_left",
40
+ "over_shoulder_left",
41
+ "over_shoulder_right",
42
+ ]
43
+ THREE_VIEW_SET = ["front", "wrist_right", "wrist_left"]
44
+ DISPLAY = ":99"
45
+ DEMO_DT = 0.05
46
+ DEFAULT_IMAGE_SIZE = (128, 128)
47
+ DEFAULT_PATH_SCALE = 0.75
48
+ DEFAULT_VISIBILITY_TAU = 0.35
49
+ DEFAULT_PEXT_TAU = 0.45
50
+ DEFAULT_DOOR_SPEED_TAU = 0.08
51
+ DEFAULT_PLAN_TRIALS = 48
52
+ DEFAULT_PLAN_MAX_CONFIGS = 4
53
+ DEFAULT_PLAN_MAX_TIME_MS = 10
54
+ DEFAULT_PLAN_TRIALS_PER_GOAL = 4
55
+
56
+
57
+ @dataclass
58
+ class SimulatorSnapshot:
59
+ task_state: Tuple[bytes, int]
60
+ right_arm_tree: bytes
61
+ right_gripper_tree: bytes
62
+ left_arm_tree: bytes
63
+ left_gripper_tree: bytes
64
+ right_grasped: Tuple[str, ...]
65
+ left_grasped: Tuple[str, ...]
66
+
67
+
68
+ @dataclass
69
+ class ReplayState:
70
+ frame_index: int
71
+ tray_pose: np.ndarray
72
+ door_angle: float
73
+ right_gripper_pose: np.ndarray
74
+ left_gripper_pose: np.ndarray
75
+ right_gripper_open: float
76
+ left_gripper_open: float
77
+ snapshot: Optional[SimulatorSnapshot] = None
78
+
79
+
80
+ @dataclass
81
+ class MotionTemplates:
82
+ pregrasp_rel_pose: np.ndarray
83
+ grasp_rel_pose: np.ndarray
84
+ retreat_rel_poses: List[np.ndarray]
85
+ grasp_local_center: np.ndarray
86
+ grasp_region_extents: np.ndarray
87
+ hold_open_angle: float
88
+ open_more_delta: float
89
+ reference_tray_height: float
90
+
91
+ def to_json(self) -> Dict[str, object]:
92
+ return {
93
+ "pregrasp_rel_pose": self.pregrasp_rel_pose.tolist(),
94
+ "grasp_rel_pose": self.grasp_rel_pose.tolist(),
95
+ "retreat_rel_poses": [pose.tolist() for pose in self.retreat_rel_poses],
96
+ "grasp_local_center": self.grasp_local_center.tolist(),
97
+ "grasp_region_extents": self.grasp_region_extents.tolist(),
98
+ "hold_open_angle": float(self.hold_open_angle),
99
+ "open_more_delta": float(self.open_more_delta),
100
+ "reference_tray_height": float(self.reference_tray_height),
101
+ }
102
+
103
+
104
+ @dataclass
105
+ class EpisodeArtifacts:
106
+ episode_name: str
107
+ dense: pd.DataFrame
108
+ keyframes: pd.DataFrame
109
+ metrics: Dict[str, object]
110
+ template_frames: Dict[str, int]
111
+
112
+
113
+ def _configure_runtime() -> None:
114
+ os.environ["DISPLAY"] = DISPLAY
115
+ os.environ["COPPELIASIM_ROOT"] = "/workspace/coppelia_sim"
116
+ ld_library_path = os.environ.get("LD_LIBRARY_PATH", "")
117
+ if "/workspace/coppelia_sim" not in ld_library_path:
118
+ os.environ["LD_LIBRARY_PATH"] = (
119
+ f"{ld_library_path}:/workspace/coppelia_sim"
120
+ if ld_library_path
121
+ else "/workspace/coppelia_sim"
122
+ )
123
+ os.environ["QT_QPA_PLATFORM_PLUGIN_PATH"] = "/workspace/coppelia_sim"
124
+ os.environ.setdefault("XDG_RUNTIME_DIR", "/tmp/runtime-root")
125
+
126
+
127
+ def _minimal_camera_config() -> Dict[str, CameraConfig]:
128
+ return {
129
+ "front": CameraConfig(
130
+ rgb=False,
131
+ depth=False,
132
+ point_cloud=False,
133
+ mask=False,
134
+ image_size=DEFAULT_IMAGE_SIZE,
135
+ )
136
+ }
137
+
138
+
139
+ def _make_observation_config() -> ObservationConfig:
140
+ return ObservationConfig(
141
+ camera_configs=_minimal_camera_config(),
142
+ joint_velocities=True,
143
+ joint_positions=True,
144
+ joint_forces=False,
145
+ gripper_open=True,
146
+ gripper_pose=True,
147
+ gripper_matrix=False,
148
+ gripper_joint_positions=True,
149
+ gripper_touch_forces=False,
150
+ task_low_dim_state=False,
151
+ robot_name="bimanual",
152
+ )
153
+
154
+
155
+ def _launch_replay_env() -> Environment:
156
+ _configure_runtime()
157
+ env = Environment(
158
+ action_mode=BimanualJointPositionActionMode(),
159
+ obs_config=_make_observation_config(),
160
+ headless=True,
161
+ robot_setup="dual_panda",
162
+ )
163
+ env.launch()
164
+ return env
165
+
166
+
167
+ def _load_demo(episode_dir: Path) -> Demo:
168
+ with episode_dir.joinpath("low_dim_obs.pkl").open("rb") as handle:
169
+ return pickle.load(handle)
170
+
171
+
172
+ def _load_descriptions(episode_dir: Path) -> List[str]:
173
+ with episode_dir.joinpath("variation_descriptions.pkl").open("rb") as handle:
174
+ return pickle.load(handle)
175
+
176
+
177
+ def _episode_dirs(dataset_root: Path) -> List[Path]:
178
+ episodes_dir = dataset_root.joinpath("all_variations", "episodes")
179
+ return [
180
+ episodes_dir.joinpath(name)
181
+ for name in natsorted(os.listdir(episodes_dir))
182
+ if episodes_dir.joinpath(name, "low_dim_obs.pkl").exists()
183
+ ]
184
+
185
+
186
+ def _camera_file(episode_dir: Path, camera_name: str, kind: str, frame_index: int) -> Path:
187
+ if kind == "rgb":
188
+ return episode_dir.joinpath(f"{camera_name}_rgb", f"rgb_{frame_index:04d}.png")
189
+ if kind == "depth":
190
+ return episode_dir.joinpath(
191
+ f"{camera_name}_depth", f"depth_{frame_index:04d}.png"
192
+ )
193
+ if kind == "mask":
194
+ return episode_dir.joinpath(f"{camera_name}_mask", f"mask_{frame_index:04d}.png")
195
+ raise ValueError(f"unknown kind: {kind}")
196
+
197
+
198
+ def _load_depth_meters(episode_dir: Path, demo: Demo, frame_index: int, camera_name: str) -> np.ndarray:
199
+ image = Image.open(_camera_file(episode_dir, camera_name, "depth", frame_index))
200
+ depth = image_to_float_array(image, DEPTH_SCALE)
201
+ near = demo[frame_index].misc[f"{camera_name}_camera_near"]
202
+ far = demo[frame_index].misc[f"{camera_name}_camera_far"]
203
+ return near + depth * (far - near)
204
+
205
+
206
+ def _load_mask(episode_dir: Path, frame_index: int, camera_name: str) -> np.ndarray:
207
+ image = np.array(Image.open(_camera_file(episode_dir, camera_name, "mask", frame_index)))
208
+ return rgb_handles_to_mask(image)
209
+
210
+
211
+ def _capture_snapshot(task) -> SimulatorSnapshot:
212
+ robot = task._scene.robot
213
+ return SimulatorSnapshot(
214
+ task_state=task._task.get_state(),
215
+ right_arm_tree=robot.right_arm.get_configuration_tree(),
216
+ right_gripper_tree=robot.right_gripper.get_configuration_tree(),
217
+ left_arm_tree=robot.left_arm.get_configuration_tree(),
218
+ left_gripper_tree=robot.left_gripper.get_configuration_tree(),
219
+ right_grasped=tuple(obj.get_name() for obj in robot.right_gripper.get_grasped_objects()),
220
+ left_grasped=tuple(obj.get_name() for obj in robot.left_gripper.get_grasped_objects()),
221
+ )
222
+
223
+
224
+ def _restore_snapshot(task, snapshot: SimulatorSnapshot) -> None:
225
+ robot = task._scene.robot
226
+ robot.release_gripper()
227
+ task._pyrep.set_configuration_tree(snapshot.right_arm_tree)
228
+ task._pyrep.set_configuration_tree(snapshot.right_gripper_tree)
229
+ task._pyrep.set_configuration_tree(snapshot.left_arm_tree)
230
+ task._pyrep.set_configuration_tree(snapshot.left_gripper_tree)
231
+ task._pyrep.set_configuration_tree(snapshot.task_state[0])
232
+ for name in snapshot.right_grasped:
233
+ robot.right_gripper.grasp(Shape(name))
234
+ for name in snapshot.left_grasped:
235
+ robot.left_gripper.grasp(Shape(name))
236
+ task._pyrep.step()
237
+
238
+
239
+ def _build_joint_action(target_obs) -> np.ndarray:
240
+ def _joint_vector(value, fallback) -> np.ndarray:
241
+ array = np.asarray(fallback if value is None else value, dtype=np.float64)
242
+ if array.ndim != 1 or array.shape[0] != 7:
243
+ array = np.asarray(fallback, dtype=np.float64)
244
+ if array.ndim != 1 or array.shape[0] != 7:
245
+ raise ValueError(f"invalid joint vector shape: {array.shape}")
246
+ return array
247
+
248
+ right = _joint_vector(
249
+ target_obs.misc.get("right_executed_demo_joint_position_action"),
250
+ target_obs.right.joint_positions,
251
+ )
252
+ left = _joint_vector(
253
+ target_obs.misc.get("left_executed_demo_joint_position_action"),
254
+ target_obs.left.joint_positions,
255
+ )
256
+ return np.concatenate(
257
+ [
258
+ right,
259
+ np.array([target_obs.right.gripper_open], dtype=np.float64),
260
+ left,
261
+ np.array([target_obs.left.gripper_open], dtype=np.float64),
262
+ ]
263
+ )
264
+
265
+
266
+ class ReplayCache:
267
+ def __init__(self, task, demo: Demo, checkpoint_stride: int = 16):
268
+ self.task = task
269
+ self.demo = demo
270
+ self.checkpoint_stride = checkpoint_stride
271
+ self.current_index = 0
272
+ self.current_obs = None
273
+ self.checkpoints: Dict[int, SimulatorSnapshot] = {}
274
+ self.discrete_gripper = BimanualDiscrete()
275
+
276
+ def reset(self) -> None:
277
+ _, self.current_obs = self.task.reset_to_demo(self.demo)
278
+ self.current_index = 0
279
+ self.checkpoints = {0: _capture_snapshot(self.task)}
280
+
281
+ def step_to(self, target_index: int):
282
+ if target_index < self.current_index:
283
+ checkpoint_index = max(i for i in self.checkpoints if i <= target_index)
284
+ _restore_snapshot(self.task, self.checkpoints[checkpoint_index])
285
+ self.current_index = checkpoint_index
286
+ self.current_obs = self._observation_from_scene()
287
+ while self.current_index < target_index:
288
+ next_index = self.current_index + 1
289
+ self.task._action_mode.action(
290
+ self.task._scene, _build_joint_action(self.demo[next_index])
291
+ )
292
+ self._apply_gripper_replay(self.demo[next_index])
293
+ self.current_obs = self._observation_from_scene()
294
+ self.current_index = next_index
295
+ if self.current_index % self.checkpoint_stride == 0:
296
+ self.checkpoints[self.current_index] = _capture_snapshot(self.task)
297
+ return self.current_obs
298
+
299
+ def current_state(self) -> ReplayState:
300
+ return ReplayState(
301
+ frame_index=self.current_index,
302
+ tray_pose=Shape("tray").get_pose(),
303
+ door_angle=Joint("oven_door_joint").get_joint_position(),
304
+ right_gripper_pose=self.current_obs.right.gripper_pose.copy(),
305
+ left_gripper_pose=self.current_obs.left.gripper_pose.copy(),
306
+ right_gripper_open=float(self.current_obs.right.gripper_open),
307
+ left_gripper_open=float(self.current_obs.left.gripper_open),
308
+ snapshot=None,
309
+ )
310
+
311
+ def snapshot(self) -> SimulatorSnapshot:
312
+ return _capture_snapshot(self.task)
313
+
314
+ def restore(self, snapshot: SimulatorSnapshot) -> None:
315
+ _restore_snapshot(self.task, snapshot)
316
+ self.current_obs = self._observation_from_scene()
317
+
318
+ def restore_to_index(self, snapshot: SimulatorSnapshot, frame_index: int) -> None:
319
+ self.restore(snapshot)
320
+ self.current_index = frame_index
321
+
322
+ def _observation_from_scene(self):
323
+ return self.task._scene.get_observation()
324
+
325
+ def _apply_gripper_replay(self, target_obs) -> None:
326
+ desired = np.array(
327
+ [target_obs.right.gripper_open, target_obs.left.gripper_open],
328
+ dtype=np.float64,
329
+ )
330
+ current = np.array(
331
+ [
332
+ float(all(x > 0.9 for x in self.task._scene.robot.right_gripper.get_open_amount())),
333
+ float(all(x > 0.9 for x in self.task._scene.robot.left_gripper.get_open_amount())),
334
+ ],
335
+ dtype=np.float64,
336
+ )
337
+ if not np.allclose(current, desired):
338
+ self.discrete_gripper.action(self.task._scene, desired)
339
+ self.current_obs = self._observation_from_scene()
340
+
341
+
342
+ def _quat_to_matrix(quat: Sequence[float]) -> np.ndarray:
343
+ x, y, z, w = quat
344
+ xx, yy, zz = x * x, y * y, z * z
345
+ xy, xz, yz = x * y, x * z, y * z
346
+ wx, wy, wz = w * x, w * y, w * z
347
+ return np.array(
348
+ [
349
+ [1 - 2 * (yy + zz), 2 * (xy - wz), 2 * (xz + wy)],
350
+ [2 * (xy + wz), 1 - 2 * (xx + zz), 2 * (yz - wx)],
351
+ [2 * (xz - wy), 2 * (yz + wx), 1 - 2 * (xx + yy)],
352
+ ],
353
+ dtype=np.float64,
354
+ )
355
+
356
+
357
+ def _matrix_to_quat(matrix: np.ndarray) -> np.ndarray:
358
+ trace = np.trace(matrix)
359
+ if trace > 0.0:
360
+ s = math.sqrt(trace + 1.0) * 2.0
361
+ w = 0.25 * s
362
+ x = (matrix[2, 1] - matrix[1, 2]) / s
363
+ y = (matrix[0, 2] - matrix[2, 0]) / s
364
+ z = (matrix[1, 0] - matrix[0, 1]) / s
365
+ elif matrix[0, 0] > matrix[1, 1] and matrix[0, 0] > matrix[2, 2]:
366
+ s = math.sqrt(1.0 + matrix[0, 0] - matrix[1, 1] - matrix[2, 2]) * 2.0
367
+ w = (matrix[2, 1] - matrix[1, 2]) / s
368
+ x = 0.25 * s
369
+ y = (matrix[0, 1] + matrix[1, 0]) / s
370
+ z = (matrix[0, 2] + matrix[2, 0]) / s
371
+ elif matrix[1, 1] > matrix[2, 2]:
372
+ s = math.sqrt(1.0 + matrix[1, 1] - matrix[0, 0] - matrix[2, 2]) * 2.0
373
+ w = (matrix[0, 2] - matrix[2, 0]) / s
374
+ x = (matrix[0, 1] + matrix[1, 0]) / s
375
+ y = 0.25 * s
376
+ z = (matrix[1, 2] + matrix[2, 1]) / s
377
+ else:
378
+ s = math.sqrt(1.0 + matrix[2, 2] - matrix[0, 0] - matrix[1, 1]) * 2.0
379
+ w = (matrix[1, 0] - matrix[0, 1]) / s
380
+ x = (matrix[0, 2] + matrix[2, 0]) / s
381
+ y = (matrix[1, 2] + matrix[2, 1]) / s
382
+ z = 0.25 * s
383
+ quat = np.array([x, y, z, w], dtype=np.float64)
384
+ return quat / np.linalg.norm(quat)
385
+
386
+
387
+ def _pose_to_matrix(pose: Sequence[float]) -> np.ndarray:
388
+ matrix = np.eye(4, dtype=np.float64)
389
+ matrix[:3, :3] = _quat_to_matrix(pose[3:])
390
+ matrix[:3, 3] = pose[:3]
391
+ return matrix
392
+
393
+
394
+ def _matrix_to_pose(matrix: np.ndarray) -> np.ndarray:
395
+ return np.concatenate([matrix[:3, 3], _matrix_to_quat(matrix[:3, :3])], axis=0)
396
+
397
+
398
+ def _relative_pose(reference_pose: Sequence[float], target_pose: Sequence[float]) -> np.ndarray:
399
+ reference = _pose_to_matrix(reference_pose)
400
+ target = _pose_to_matrix(target_pose)
401
+ rel = np.linalg.inv(reference) @ target
402
+ return _matrix_to_pose(rel)
403
+
404
+
405
+ def _apply_relative_pose(reference_pose: Sequence[float], relative_pose: Sequence[float]) -> np.ndarray:
406
+ reference = _pose_to_matrix(reference_pose)
407
+ relative = _pose_to_matrix(relative_pose)
408
+ world = reference @ relative
409
+ return _matrix_to_pose(world)
410
+
411
+
412
+ def _world_to_local(reference_pose: Sequence[float], point_world: Sequence[float]) -> np.ndarray:
413
+ reference = _pose_to_matrix(reference_pose)
414
+ point = np.concatenate([np.asarray(point_world, dtype=np.float64), [1.0]])
415
+ return (np.linalg.inv(reference) @ point)[:3]
416
+
417
+
418
+ def _local_to_world(reference_pose: Sequence[float], point_local: Sequence[float]) -> np.ndarray:
419
+ reference = _pose_to_matrix(reference_pose)
420
+ point = np.concatenate([np.asarray(point_local, dtype=np.float64), [1.0]])
421
+ return (reference @ point)[:3]
422
+
423
+
424
+ def _first_transition(demo: Demo, side: str, open_to_closed: bool) -> int:
425
+ values = [getattr(demo[i], side).gripper_open for i in range(len(demo))]
426
+ for i in range(1, len(values)):
427
+ if open_to_closed and values[i - 1] > 0.5 and values[i] < 0.5:
428
+ return i
429
+ if not open_to_closed and values[i - 1] < 0.5 and values[i] > 0.5:
430
+ return i
431
+ raise RuntimeError(f"no gripper transition found for {side}")
432
+
433
+
434
+ def _derive_templates(dataset_root: Path, template_episode_dir: Path) -> Tuple[MotionTemplates, Dict[str, int]]:
435
+ env = _launch_replay_env()
436
+ try:
437
+ demo = _load_demo(template_episode_dir)
438
+ task = env.get_task(BimanualTakeTrayOutOfOven)
439
+ cache = ReplayCache(task, demo, checkpoint_stride=8)
440
+ cache.reset()
441
+ base_pose = task._task.get_base().get_pose()
442
+
443
+ left_close = _first_transition(demo, "left", open_to_closed=True)
444
+ left_open = _first_transition(demo, "left", open_to_closed=False)
445
+ pregrasp_index = max(0, left_close - 5)
446
+ right_close = _first_transition(demo, "right", open_to_closed=True)
447
+ right_open = _first_transition(demo, "right", open_to_closed=False)
448
+
449
+ interesting = sorted(
450
+ {
451
+ pregrasp_index,
452
+ left_close,
453
+ min(len(demo) - 1, left_close + 10),
454
+ min(len(demo) - 1, left_close + 20),
455
+ min(len(demo) - 1, left_close + 30),
456
+ max(left_close + 1, left_open - 20),
457
+ max(left_close + 1, left_open - 10),
458
+ max(left_close + 1, left_open - 5),
459
+ right_close,
460
+ right_open,
461
+ left_open,
462
+ }
463
+ )
464
+ states: Dict[int, ReplayState] = {}
465
+ for frame_index in interesting:
466
+ cache.step_to(frame_index)
467
+ states[frame_index] = cache.current_state()
468
+
469
+ pregrasp_rel_pose = _relative_pose(
470
+ states[pregrasp_index].tray_pose, states[pregrasp_index].left_gripper_pose
471
+ )
472
+ grasp_rel_pose = _relative_pose(
473
+ states[left_close].tray_pose, states[left_close].left_gripper_pose
474
+ )
475
+ retreat_rel_poses = [
476
+ _relative_pose(base_pose, states[index].left_gripper_pose)
477
+ for index in interesting
478
+ if index > left_close
479
+ ]
480
+ grasp_local_center = _world_to_local(
481
+ states[left_close].tray_pose, states[left_close].left_gripper_pose[:3]
482
+ )
483
+ templates = MotionTemplates(
484
+ pregrasp_rel_pose=pregrasp_rel_pose,
485
+ grasp_rel_pose=grasp_rel_pose,
486
+ retreat_rel_poses=retreat_rel_poses,
487
+ grasp_local_center=grasp_local_center,
488
+ grasp_region_extents=np.array([0.03, 0.015, 0.004], dtype=np.float64),
489
+ hold_open_angle=float(states[right_open].door_angle),
490
+ open_more_delta=max(
491
+ 0.12,
492
+ float(states[right_open].door_angle - states[right_close].door_angle) * 0.25,
493
+ ),
494
+ reference_tray_height=float(states[left_close].tray_pose[2]),
495
+ )
496
+ template_frames = {
497
+ "pregrasp": pregrasp_index,
498
+ "grasp": left_close,
499
+ "right_close": right_close,
500
+ "right_open": right_open,
501
+ }
502
+ return templates, template_frames
503
+ finally:
504
+ env.shutdown()
505
+
506
+
507
+ def _camera_projection(extrinsics: np.ndarray, intrinsics: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
508
+ camera_pos = extrinsics[:3, 3:4]
509
+ rotation = extrinsics[:3, :3]
510
+ world_to_camera = np.concatenate([rotation.T, -(rotation.T @ camera_pos)], axis=1)
511
+ projection = intrinsics @ world_to_camera
512
+ return projection, world_to_camera
513
+
514
+
515
+ def _project_points(points_world: np.ndarray, extrinsics: np.ndarray, intrinsics: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
516
+ projection, world_to_camera = _camera_projection(extrinsics, intrinsics)
517
+ homogeneous = np.concatenate([points_world, np.ones((len(points_world), 1))], axis=1)
518
+ camera_xyz = (world_to_camera @ homogeneous.T).T
519
+ image_xyz = (projection @ homogeneous.T).T
520
+ uv = image_xyz[:, :2] / image_xyz[:, 2:3]
521
+ return uv, camera_xyz
522
+
523
+
524
+ def _sample_grasp_points(templates: MotionTemplates, tray_pose: np.ndarray) -> np.ndarray:
525
+ center = templates.grasp_local_center
526
+ extents = templates.grasp_region_extents
527
+ xs = np.linspace(center[0] - extents[0], center[0] + extents[0], 9)
528
+ ys = np.linspace(center[1] - extents[1], center[1] + extents[1], 5)
529
+ zs = np.linspace(center[2] - extents[2], center[2] + extents[2], 3)
530
+ points_local = np.array([[x, y, z] for x in xs for y in ys for z in zs], dtype=np.float64)
531
+ return np.array([_local_to_world(tray_pose, point) for point in points_local], dtype=np.float64)
532
+
533
+
534
+ def _sample_full_tray_points(tray_pose: np.ndarray) -> np.ndarray:
535
+ tray = Shape("tray")
536
+ bbox = np.asarray(tray.get_bounding_box(), dtype=np.float64)
537
+ xs = np.linspace(bbox[0], bbox[1], 10)
538
+ ys = np.linspace(bbox[2], bbox[3], 12)
539
+ zs = np.linspace(bbox[4], bbox[5], 3)
540
+ points_local = np.array([[x, y, z] for x in xs for y in ys for z in zs], dtype=np.float64)
541
+ return np.array([_local_to_world(tray_pose, point) for point in points_local], dtype=np.float64)
542
+
543
+
544
+ def _visibility_ratio(
545
+ points_world: np.ndarray,
546
+ depth_m: np.ndarray,
547
+ mask: np.ndarray,
548
+ tray_handle: int,
549
+ extrinsics: np.ndarray,
550
+ intrinsics: np.ndarray,
551
+ depth_tol: float = 0.02,
552
+ ) -> float:
553
+ uv, camera_xyz = _project_points(points_world, extrinsics, intrinsics)
554
+ height, width = depth_m.shape
555
+ visible = 0
556
+ total = 0
557
+ for (u, v), (_, _, camera_depth) in zip(uv, camera_xyz):
558
+ if camera_depth <= 0:
559
+ continue
560
+ if not (0 <= u < width and 0 <= v < height):
561
+ continue
562
+ total += 1
563
+ px = int(round(u))
564
+ py = int(round(v))
565
+ px = min(max(px, 0), width - 1)
566
+ py = min(max(py, 0), height - 1)
567
+ observed = float(depth_m[py, px])
568
+ if abs(observed - camera_depth) <= depth_tol:
569
+ visible += 1
570
+ return float(visible / total) if total else 0.0
571
+
572
+
573
+ def _union_visibility(values: Iterable[float]) -> float:
574
+ product = 1.0
575
+ for value in values:
576
+ product *= 1.0 - float(value)
577
+ return 1.0 - product
578
+
579
+
580
+ def _keypoint_discovery(demo: Demo, stopping_delta: float = 0.1) -> List[int]:
581
+ keypoints: List[int] = []
582
+ right_prev = demo[0].right.gripper_open
583
+ left_prev = demo[0].left.gripper_open
584
+ stopped_buffer = 0
585
+ for i, obs in enumerate(demo._observations):
586
+ if i < 2 or i >= len(demo) - 1:
587
+ right_stopped = left_stopped = False
588
+ else:
589
+ right_stopped = (
590
+ np.allclose(obs.right.joint_velocities, 0, atol=stopping_delta)
591
+ and obs.right.gripper_open == demo[i + 1].right.gripper_open
592
+ and obs.right.gripper_open == demo[i - 1].right.gripper_open
593
+ and demo[i - 2].right.gripper_open == demo[i - 1].right.gripper_open
594
+ )
595
+ left_stopped = (
596
+ np.allclose(obs.left.joint_velocities, 0, atol=stopping_delta)
597
+ and obs.left.gripper_open == demo[i + 1].left.gripper_open
598
+ and obs.left.gripper_open == demo[i - 1].left.gripper_open
599
+ and demo[i - 2].left.gripper_open == demo[i - 1].left.gripper_open
600
+ )
601
+ stopped = stopped_buffer <= 0 and right_stopped and left_stopped
602
+ stopped_buffer = 4 if stopped else stopped_buffer - 1
603
+ last = i == len(demo) - 1
604
+ state_changed = (
605
+ obs.right.gripper_open != right_prev or obs.left.gripper_open != left_prev
606
+ )
607
+ if i != 0 and (state_changed or last or stopped):
608
+ keypoints.append(i)
609
+ right_prev = obs.right.gripper_open
610
+ left_prev = obs.left.gripper_open
611
+ if len(keypoints) > 1 and (keypoints[-1] - 1) == keypoints[-2]:
612
+ keypoints.pop(-2)
613
+ return keypoints
614
+
615
+
616
+ def _plan_path(scene, arm_name: str, pose: np.ndarray, ignore_collisions: bool = False):
617
+ arm = scene.robot.left_arm if arm_name == "left" else scene.robot.right_arm
618
+ try:
619
+ return arm.get_path(
620
+ pose[:3],
621
+ quaternion=pose[3:],
622
+ ignore_collisions=ignore_collisions,
623
+ trials=DEFAULT_PLAN_TRIALS,
624
+ max_configs=DEFAULT_PLAN_MAX_CONFIGS,
625
+ max_time_ms=DEFAULT_PLAN_MAX_TIME_MS,
626
+ trials_per_goal=DEFAULT_PLAN_TRIALS_PER_GOAL,
627
+ algorithm=Algos.RRTConnect,
628
+ )
629
+ except Exception:
630
+ return None
631
+
632
+
633
+ def _path_length(path) -> float:
634
+ if path is None:
635
+ return math.inf
636
+ try:
637
+ return float(path._get_path_point_lengths()[-1])
638
+ except Exception:
639
+ return math.inf
640
+
641
+
642
+ def _pregrasp_candidates(tray_pose: np.ndarray, templates: MotionTemplates) -> List[np.ndarray]:
643
+ candidates = []
644
+ base = _apply_relative_pose(tray_pose, templates.pregrasp_rel_pose)
645
+ candidates.append(base)
646
+ for dx in (-0.02, 0.02):
647
+ perturbed = base.copy()
648
+ perturbed[0] += dx
649
+ candidates.append(perturbed)
650
+ return candidates
651
+
652
+
653
+ def _extract_sequence_poses(
654
+ tray_pose: np.ndarray, task_base_pose: np.ndarray, templates: MotionTemplates
655
+ ) -> List[np.ndarray]:
656
+ poses = [
657
+ _apply_relative_pose(tray_pose, templates.pregrasp_rel_pose),
658
+ _apply_relative_pose(tray_pose, templates.grasp_rel_pose),
659
+ ]
660
+ poses.extend(
661
+ _apply_relative_pose(task_base_pose, pose) for pose in templates.retreat_rel_poses[:3]
662
+ )
663
+ return poses
664
+
665
+
666
+ def _extract_height_threshold(templates: MotionTemplates) -> float:
667
+ return templates.reference_tray_height + 0.06
668
+
669
+
670
+ def _extraction_progress_score(current_height: float, templates: MotionTemplates) -> float:
671
+ threshold = _extract_height_threshold(templates)
672
+ margin = max(0.0, float(current_height) - threshold)
673
+ # Saturate smoothly once the tray is clearly lifted above the oven lip.
674
+ return min(1.0, 0.8 + margin / 0.12)
675
+
676
+
677
+ def _pregrasp_score_and_success(task, templates: MotionTemplates) -> Tuple[float, bool]:
678
+ tray = Shape("tray")
679
+ if any(
680
+ grasped.get_name() == tray.get_name()
681
+ for grasped in task._scene.robot.left_gripper.get_grasped_objects()
682
+ ):
683
+ return 1.0, True
684
+ tray_pose = Shape("tray").get_pose()
685
+ best = 0.0
686
+ success = False
687
+ for pose in _pregrasp_candidates(tray_pose, templates):
688
+ path = _plan_path(task._scene, "left", pose, ignore_collisions=False)
689
+ length = _path_length(path)
690
+ if np.isfinite(length):
691
+ success = True
692
+ best = max(best, math.exp(-length / DEFAULT_PATH_SCALE))
693
+ return best, success
694
+
695
+
696
+ def _extract_score_and_success(task, templates: MotionTemplates) -> Tuple[float, bool]:
697
+ tray = Shape("tray")
698
+ robot = task._scene.robot
699
+ snapshot = _capture_snapshot(task)
700
+ try:
701
+ total_length = 0.0
702
+ current_height = float(tray.get_position()[2])
703
+ already_grasped = any(
704
+ grasped.get_name() == tray.get_name()
705
+ for grasped in robot.left_gripper.get_grasped_objects()
706
+ )
707
+ if already_grasped and current_height >= _extract_height_threshold(templates):
708
+ return _extraction_progress_score(current_height, templates), True
709
+ poses = _extract_sequence_poses(
710
+ tray.get_pose(), task._task.get_base().get_pose(), templates
711
+ )
712
+ approach_poses = [] if already_grasped else poses[:2]
713
+ retreat_poses = poses[2:] if not already_grasped else poses[2:]
714
+
715
+ for pose in approach_poses:
716
+ path = _plan_path(task._scene, "left", pose, ignore_collisions=False)
717
+ if path is None:
718
+ return 0.0, False
719
+ total_length += _path_length(path)
720
+ path.set_to_end(disable_dynamics=True)
721
+ task._pyrep.step()
722
+ if not already_grasped:
723
+ robot.left_gripper.grasp(tray)
724
+ for pose in retreat_poses:
725
+ path = _plan_path(task._scene, "left", pose, ignore_collisions=True)
726
+ if path is None:
727
+ return 0.0, False
728
+ total_length += _path_length(path)
729
+ path.set_to_end(disable_dynamics=True)
730
+ task._pyrep.step()
731
+ final_height = float(tray.get_position()[2])
732
+ success = final_height >= _extract_height_threshold(templates)
733
+ score = max(
734
+ math.exp(-total_length / (DEFAULT_PATH_SCALE * 2.5)),
735
+ _extraction_progress_score(final_height, templates) if success else 0.0,
736
+ )
737
+ return score, bool(success)
738
+ finally:
739
+ _restore_snapshot(task, snapshot)
740
+
741
+
742
+ def _wait_branch(task, steps: int = 5) -> None:
743
+ for _ in range(steps):
744
+ task._scene.step()
745
+
746
+
747
+ def _open_more_branch(task, templates: MotionTemplates) -> None:
748
+ joint = Joint("oven_door_joint")
749
+ current = joint.get_joint_position()
750
+ joint.set_joint_position(current - templates.open_more_delta, disable_dynamics=True)
751
+ for _ in range(3):
752
+ task._pyrep.step()
753
+
754
+
755
+ def _hold_open_branch(task, templates: MotionTemplates) -> None:
756
+ joint = Joint("oven_door_joint")
757
+ current = joint.get_joint_position()
758
+ joint.set_joint_position(min(current, templates.hold_open_angle), disable_dynamics=True)
759
+ for _ in range(3):
760
+ task._pyrep.step()
761
+
762
+
763
+ def _frame_metrics(
764
+ episode_dir: Path,
765
+ demo: Demo,
766
+ frame_state: ReplayState,
767
+ templates: MotionTemplates,
768
+ tray_handle: int,
769
+ ) -> Dict[str, float]:
770
+ grasp_points = _sample_grasp_points(templates, frame_state.tray_pose)
771
+ full_tray_points = _sample_full_tray_points(frame_state.tray_pose)
772
+ camera_values: Dict[str, Dict[str, float]] = {}
773
+ for camera_name in FULL_CAMERA_SET:
774
+ depth_m = _load_depth_meters(episode_dir, demo, frame_state.frame_index, camera_name)
775
+ mask = _load_mask(episode_dir, frame_state.frame_index, camera_name)
776
+ extrinsics = demo[frame_state.frame_index].misc[f"{camera_name}_camera_extrinsics"]
777
+ intrinsics = demo[frame_state.frame_index].misc[f"{camera_name}_camera_intrinsics"]
778
+ camera_values[camera_name] = {
779
+ "grasp_visibility": _visibility_ratio(
780
+ grasp_points, depth_m, mask, tray_handle, extrinsics, intrinsics
781
+ ),
782
+ "tray_visibility": _visibility_ratio(
783
+ full_tray_points, depth_m, mask, tray_handle, extrinsics, intrinsics
784
+ ),
785
+ }
786
+
787
+ values: Dict[str, float] = {}
788
+ for name, camera_set in {"three_view": THREE_VIEW_SET, "full_view": FULL_CAMERA_SET}.items():
789
+ values[f"{name}_visibility"] = _union_visibility(
790
+ camera_values[camera_name]["grasp_visibility"] for camera_name in camera_set
791
+ )
792
+ values[f"{name}_whole_tray_visibility"] = _union_visibility(
793
+ camera_values[camera_name]["tray_visibility"] for camera_name in camera_set
794
+ )
795
+ return values
796
+
797
+
798
+ def _compute_frame_row_isolated(
799
+ episode_dir: Path,
800
+ demo: Demo,
801
+ templates: MotionTemplates,
802
+ checkpoint_stride: int,
803
+ frame_index: int,
804
+ ) -> Dict[str, float]:
805
+ env = _launch_replay_env()
806
+ try:
807
+ task = env.get_task(BimanualTakeTrayOutOfOven)
808
+ cache = ReplayCache(task, demo, checkpoint_stride=checkpoint_stride)
809
+ cache.reset()
810
+ cache.step_to(frame_index)
811
+ state = cache.current_state()
812
+ visibility = _frame_metrics(episode_dir, demo, state, templates, Shape("tray").get_handle())
813
+ p_pre, y_pre = _pregrasp_score_and_success(task, templates)
814
+ p_ext, y_ext = _extract_score_and_success(task, templates)
815
+ return {
816
+ "frame_index": frame_index,
817
+ "time_norm": frame_index / max(1, len(demo) - 1),
818
+ "door_angle": state.door_angle,
819
+ "right_gripper_open": state.right_gripper_open,
820
+ "left_gripper_open": state.left_gripper_open,
821
+ "p_pre": p_pre,
822
+ "p_ext": p_ext,
823
+ "y_pre": float(bool(y_pre)),
824
+ "y_ext": float(bool(y_ext)),
825
+ **visibility,
826
+ }
827
+ finally:
828
+ env.shutdown()
829
+
830
+
831
+ def _safe_auc(y_true: np.ndarray, y_score: np.ndarray) -> float:
832
+ if len(np.unique(y_true)) < 2:
833
+ return float("nan")
834
+ return float(roc_auc_score(y_true, y_score))
835
+
836
+
837
+ def _safe_auprc(y_true: np.ndarray, y_score: np.ndarray) -> float:
838
+ if len(np.unique(y_true)) < 2:
839
+ return float("nan")
840
+ return float(average_precision_score(y_true, y_score))
841
+
842
+
843
+ def _first_crossing(values: np.ndarray, threshold: float) -> int:
844
+ above = np.flatnonzero(values >= threshold)
845
+ return int(above[0]) if len(above) else -1
846
+
847
+
848
+ def _transition_count(binary_values: np.ndarray) -> Tuple[int, int]:
849
+ diffs = np.diff(binary_values.astype(int))
850
+ return int(np.sum(diffs == 1)), int(np.sum(diffs == -1))
851
+
852
+
853
+ def _keyframe_subset(frame_df: pd.DataFrame, keyframes: Sequence[int]) -> pd.DataFrame:
854
+ key_df = frame_df.iloc[list(keyframes)].copy()
855
+ key_df["keyframe_ordinal"] = np.arange(len(key_df))
856
+ return key_df
857
+
858
+
859
+ def _interventional_validity(
860
+ task,
861
+ cache: ReplayCache,
862
+ episode_dir: Path,
863
+ demo: Demo,
864
+ templates: MotionTemplates,
865
+ tray_handle: int,
866
+ frame_df: pd.DataFrame,
867
+ ) -> Dict[str, float]:
868
+ ready_indices = np.flatnonzero(frame_df["y_ready"].to_numpy(dtype=bool))
869
+ ready_onset = int(ready_indices[0]) if len(ready_indices) else len(frame_df) // 2
870
+ initial_snapshot = cache.snapshot()
871
+ sample_indices = sorted(
872
+ {
873
+ max(0, ready_onset - 10),
874
+ max(0, ready_onset - 5),
875
+ ready_onset,
876
+ min(len(frame_df) - 1, ready_onset + 20),
877
+ }
878
+ )
879
+ stats = {
880
+ "pre_ready_open_more_increases_pext": 0,
881
+ "pre_ready_open_more_trials": 0,
882
+ "pre_ready_hold_open_increases_pext": 0,
883
+ "pre_ready_hold_open_trials": 0,
884
+ "pre_ready_extract_success": 0,
885
+ "pre_ready_extract_trials": 0,
886
+ "pre_ready_wait_extract_success": 0,
887
+ "pre_ready_wait_trials": 0,
888
+ "post_ready_extract_success": 0,
889
+ "post_ready_extract_trials": 0,
890
+ "post_ready_open_more_low_gain": 0,
891
+ "post_ready_open_more_trials": 0,
892
+ "post_ready_hold_open_low_gain": 0,
893
+ "post_ready_hold_open_trials": 0,
894
+ }
895
+ for frame_index in sample_indices:
896
+ cache.restore_to_index(initial_snapshot, 0)
897
+ cache.step_to(frame_index)
898
+ snapshot = cache.snapshot()
899
+ base_pext, base_extract_success = _extract_score_and_success(task, templates)
900
+ pre_ready = not bool(frame_df.iloc[frame_index]["y_ready"])
901
+
902
+ _restore_snapshot(task, snapshot)
903
+ _open_more_branch(task, templates)
904
+ open_pext, _ = _extract_score_and_success(task, templates)
905
+
906
+ _restore_snapshot(task, snapshot)
907
+ _hold_open_branch(task, templates)
908
+ hold_pext, _ = _extract_score_and_success(task, templates)
909
+
910
+ _restore_snapshot(task, snapshot)
911
+ _wait_branch(task)
912
+ _, wait_extract_success = _extract_score_and_success(task, templates)
913
+ _restore_snapshot(task, snapshot)
914
+
915
+ if pre_ready:
916
+ stats["pre_ready_open_more_trials"] += 1
917
+ stats["pre_ready_hold_open_trials"] += 1
918
+ stats["pre_ready_extract_trials"] += 1
919
+ stats["pre_ready_wait_trials"] += 1
920
+ if open_pext > base_pext:
921
+ stats["pre_ready_open_more_increases_pext"] += 1
922
+ if hold_pext > base_pext:
923
+ stats["pre_ready_hold_open_increases_pext"] += 1
924
+ if base_extract_success:
925
+ stats["pre_ready_extract_success"] += 1
926
+ if wait_extract_success:
927
+ stats["pre_ready_wait_extract_success"] += 1
928
+ else:
929
+ stats["post_ready_extract_trials"] += 1
930
+ stats["post_ready_open_more_trials"] += 1
931
+ stats["post_ready_hold_open_trials"] += 1
932
+ if base_extract_success:
933
+ stats["post_ready_extract_success"] += 1
934
+ if (open_pext - base_pext) <= 0.05:
935
+ stats["post_ready_open_more_low_gain"] += 1
936
+ if (hold_pext - base_pext) <= 0.05:
937
+ stats["post_ready_hold_open_low_gain"] += 1
938
+ return {
939
+ key: float(value) for key, value in stats.items()
940
+ }
941
+
942
+
943
+ def _analyze_episode(
944
+ dataset_root: Path,
945
+ episode_dir: Path,
946
+ templates: MotionTemplates,
947
+ template_frames: Dict[str, int],
948
+ checkpoint_stride: int = 16,
949
+ max_frames: Optional[int] = None,
950
+ independent_replay: bool = False,
951
+ ) -> EpisodeArtifacts:
952
+ env = _launch_replay_env()
953
+ try:
954
+ demo = _load_demo(episode_dir)
955
+ descriptions = _load_descriptions(episode_dir)
956
+ task = env.get_task(BimanualTakeTrayOutOfOven)
957
+ cache = ReplayCache(task, demo, checkpoint_stride=checkpoint_stride)
958
+ cache.reset()
959
+ tray_handle = Shape("tray").get_handle()
960
+ num_frames = len(demo) if max_frames is None else min(len(demo), max_frames)
961
+
962
+ rows: List[Dict[str, float]] = []
963
+ door_angles: List[float] = []
964
+ initial_snapshot = cache.checkpoints[0] if independent_replay else None
965
+ for frame_index in range(num_frames):
966
+ if independent_replay:
967
+ cache.restore_to_index(initial_snapshot, 0)
968
+ cache.step_to(frame_index)
969
+ frame_snapshot = cache.snapshot() if not independent_replay else None
970
+ state = cache.current_state()
971
+ door_angles.append(state.door_angle)
972
+ visibility = _frame_metrics(episode_dir, demo, state, templates, tray_handle)
973
+ p_pre, y_pre = _pregrasp_score_and_success(task, templates)
974
+ p_ext, y_ext = _extract_score_and_success(task, templates)
975
+ rows.append(
976
+ {
977
+ "frame_index": frame_index,
978
+ "time_norm": frame_index / max(1, num_frames - 1),
979
+ "door_angle": state.door_angle,
980
+ "right_gripper_open": state.right_gripper_open,
981
+ "left_gripper_open": state.left_gripper_open,
982
+ "p_pre": p_pre,
983
+ "p_ext": p_ext,
984
+ "y_pre": float(bool(y_pre)),
985
+ "y_ext": float(bool(y_ext)),
986
+ **visibility,
987
+ }
988
+ )
989
+ if frame_snapshot is not None:
990
+ cache.restore(frame_snapshot)
991
+ if (frame_index + 1) % 25 == 0 or (frame_index + 1) == num_frames:
992
+ print(
993
+ f"[{episode_dir.name}] analyzed {frame_index + 1}/{num_frames} dense frames",
994
+ flush=True,
995
+ )
996
+
997
+ frame_df = pd.DataFrame(rows)
998
+ door_speed = np.gradient(frame_df["door_angle"].to_numpy(), DEMO_DT)
999
+ frame_df["door_speed_abs"] = np.abs(door_speed)
1000
+ y_ext_binary = frame_df["y_ext"].to_numpy(dtype=bool)
1001
+ y_ready = np.zeros(len(frame_df), dtype=bool)
1002
+ for i in range(len(frame_df)):
1003
+ window = y_ext_binary[i : i + 3]
1004
+ if len(window) == 3 and np.all(window) and frame_df.iloc[i]["door_speed_abs"] <= DEFAULT_DOOR_SPEED_TAU:
1005
+ y_ready[i] = True
1006
+ if np.any(y_ready):
1007
+ first_ready = int(np.flatnonzero(y_ready)[0])
1008
+ y_ready[first_ready:] = True
1009
+ frame_df["y_ready"] = y_ready.astype(float)
1010
+ phase_trigger = (
1011
+ (frame_df["full_view_visibility"] >= DEFAULT_VISIBILITY_TAU)
1012
+ & (frame_df["p_ext"] >= DEFAULT_PEXT_TAU)
1013
+ & (frame_df["door_speed_abs"] <= DEFAULT_DOOR_SPEED_TAU)
1014
+ ).to_numpy(dtype=bool)
1015
+ phase_switch = np.zeros(len(frame_df), dtype=bool)
1016
+ if np.any(phase_trigger):
1017
+ first_phase = int(np.flatnonzero(phase_trigger)[0])
1018
+ phase_switch[first_phase:] = True
1019
+ frame_df["phase_switch"] = phase_switch.astype(float)
1020
+
1021
+ keyframes = [index for index in _keypoint_discovery(demo) if index < num_frames]
1022
+ key_df = _keyframe_subset(frame_df, keyframes)
1023
+
1024
+ y_pre_arr = frame_df["y_pre"].to_numpy(dtype=int)
1025
+ y_ext_arr = frame_df["y_ext"].to_numpy(dtype=int)
1026
+ y_ready_arr = frame_df["y_ready"].to_numpy(dtype=int)
1027
+ p_pre_arr = frame_df["p_pre"].to_numpy(dtype=float)
1028
+ p_ext_arr = frame_df["p_ext"].to_numpy(dtype=float)
1029
+ phase_arr = frame_df["phase_switch"].to_numpy(dtype=int)
1030
+ full_vis = frame_df["full_view_visibility"].to_numpy(dtype=float)
1031
+ whole_vis = frame_df["full_view_whole_tray_visibility"].to_numpy(dtype=float)
1032
+ door_angle_arr = frame_df["door_angle"].to_numpy(dtype=float)
1033
+ time_arr = frame_df["time_norm"].to_numpy(dtype=float)
1034
+
1035
+ ppre_cross = _first_crossing(p_pre_arr, DEFAULT_PEXT_TAU)
1036
+ pext_cross = _first_crossing(p_ext_arr, DEFAULT_PEXT_TAU)
1037
+ phase_cross = _first_crossing(frame_df["phase_switch"].to_numpy(dtype=float), 0.5)
1038
+ ready_cross = _first_crossing(y_ready_arr.astype(float), 0.5)
1039
+ phase_rises, phase_falls = _transition_count(phase_arr)
1040
+
1041
+ key_phase_cross = _first_crossing(key_df["phase_switch"].to_numpy(dtype=float), 0.5)
1042
+ key_ready_cross = _first_crossing(key_df["y_ready"].to_numpy(dtype=float), 0.5)
1043
+
1044
+ interventions = _interventional_validity(
1045
+ task, cache, episode_dir, demo, templates, tray_handle, frame_df
1046
+ )
1047
+ metrics = {
1048
+ "episode_name": episode_dir.name,
1049
+ "description": descriptions[0],
1050
+ "num_dense_frames": int(num_frames),
1051
+ "num_keyframes": int(len(key_df)),
1052
+ "phase_switch_rises": int(phase_rises),
1053
+ "phase_switch_falls": int(phase_falls),
1054
+ "ppre_cross_frame": int(ppre_cross),
1055
+ "pext_cross_frame": int(pext_cross),
1056
+ "phase_cross_frame": int(phase_cross),
1057
+ "ready_cross_frame": int(ready_cross),
1058
+ "ordering_ok": bool(ppre_cross == -1 or pext_cross == -1 or ppre_cross <= pext_cross),
1059
+ "dense_boundary_error_frames": float(abs(phase_cross - ready_cross))
1060
+ if phase_cross >= 0 and ready_cross >= 0
1061
+ else float("nan"),
1062
+ "dense_boundary_error_fraction": float(abs(phase_cross - ready_cross) / len(frame_df))
1063
+ if phase_cross >= 0 and ready_cross >= 0
1064
+ else float("nan"),
1065
+ "key_boundary_error_keyframes": float(abs(key_phase_cross - key_ready_cross))
1066
+ if key_phase_cross >= 0 and key_ready_cross >= 0
1067
+ else float("nan"),
1068
+ "auroc_vret_ypre_three": _safe_auc(y_pre_arr, frame_df["three_view_visibility"].to_numpy(dtype=float)),
1069
+ "auprc_vret_ypre_three": _safe_auprc(y_pre_arr, frame_df["three_view_visibility"].to_numpy(dtype=float)),
1070
+ "auroc_vret_ypre_full": _safe_auc(y_pre_arr, frame_df["full_view_visibility"].to_numpy(dtype=float)),
1071
+ "auprc_vret_ypre_full": _safe_auprc(y_pre_arr, frame_df["full_view_visibility"].to_numpy(dtype=float)),
1072
+ "auroc_ppre_ypre": _safe_auc(y_pre_arr, p_pre_arr),
1073
+ "auprc_ppre_ypre": _safe_auprc(y_pre_arr, p_pre_arr),
1074
+ "auroc_pext_yext": _safe_auc(y_ext_arr, p_ext_arr),
1075
+ "auprc_pext_yext": _safe_auprc(y_ext_arr, p_ext_arr),
1076
+ "auroc_phase_yready": _safe_auc(y_ready_arr, frame_df["phase_switch"].to_numpy(dtype=float)),
1077
+ "auprc_phase_yready": _safe_auprc(y_ready_arr, frame_df["phase_switch"].to_numpy(dtype=float)),
1078
+ "f1_phase_yready": float(f1_score(y_ready_arr, phase_arr))
1079
+ if np.any(y_ready_arr) and np.any(phase_arr)
1080
+ else float("nan"),
1081
+ "baseline_auroc_door_yext": _safe_auc(y_ext_arr, door_angle_arr),
1082
+ "baseline_auprc_door_yext": _safe_auprc(y_ext_arr, door_angle_arr),
1083
+ "baseline_auroc_time_yext": _safe_auc(y_ext_arr, time_arr),
1084
+ "baseline_auprc_time_yext": _safe_auprc(y_ext_arr, time_arr),
1085
+ "baseline_auroc_whole_vis_yext": _safe_auc(y_ext_arr, whole_vis),
1086
+ "baseline_auprc_whole_vis_yext": _safe_auprc(y_ext_arr, whole_vis),
1087
+ **interventions,
1088
+ }
1089
+ return EpisodeArtifacts(
1090
+ episode_name=episode_dir.name,
1091
+ dense=frame_df,
1092
+ keyframes=key_df,
1093
+ metrics=metrics,
1094
+ template_frames=template_frames,
1095
+ )
1096
+ finally:
1097
+ env.shutdown()
1098
+
1099
+
1100
+ def _aggregate_summary(episode_metrics: List[Dict[str, object]]) -> Dict[str, object]:
1101
+ frame = pd.DataFrame(episode_metrics)
1102
+ numeric = frame.select_dtypes(include=[np.number])
1103
+ summary = {
1104
+ "num_episodes": int(len(frame)),
1105
+ "mean_metrics": numeric.mean(numeric_only=True).to_dict(),
1106
+ "median_metrics": numeric.median(numeric_only=True).to_dict(),
1107
+ "single_switch_rate": float((frame["phase_switch_rises"] == 1).mean())
1108
+ if len(frame)
1109
+ else float("nan"),
1110
+ "reversion_rate": float((frame["phase_switch_falls"] > 0).mean())
1111
+ if len(frame)
1112
+ else float("nan"),
1113
+ "ordering_ok_rate": float(frame["ordering_ok"].mean()) if len(frame) else float("nan"),
1114
+ }
1115
+ return summary
1116
+
1117
+
1118
+ def run_study(
1119
+ dataset_root: str,
1120
+ result_dir: str,
1121
+ max_episodes: Optional[int] = None,
1122
+ checkpoint_stride: int = 16,
1123
+ max_frames: Optional[int] = None,
1124
+ episode_offset: int = 0,
1125
+ template_episode_index: int = 0,
1126
+ independent_replay: bool = False,
1127
+ ) -> Dict[str, object]:
1128
+ dataset_path = Path(dataset_root)
1129
+ result_path = Path(result_dir)
1130
+ result_path.mkdir(parents=True, exist_ok=True)
1131
+
1132
+ all_episode_dirs = _episode_dirs(dataset_path)
1133
+ if not all_episode_dirs:
1134
+ raise RuntimeError(f"no episodes available under {dataset_root}")
1135
+ if not (0 <= template_episode_index < len(all_episode_dirs)):
1136
+ raise ValueError(
1137
+ f"template_episode_index {template_episode_index} outside available range 0..{len(all_episode_dirs) - 1}"
1138
+ )
1139
+
1140
+ episode_dirs = all_episode_dirs[episode_offset:]
1141
+ if max_episodes is not None:
1142
+ episode_dirs = episode_dirs[:max_episodes]
1143
+ if not episode_dirs:
1144
+ raise RuntimeError(
1145
+ f"no episodes selected under {dataset_root} with offset={episode_offset} max_episodes={max_episodes}"
1146
+ )
1147
+
1148
+ template_episode_dir = all_episode_dirs[template_episode_index]
1149
+ templates, template_frames = _derive_templates(dataset_path, template_episode_dir)
1150
+ with result_path.joinpath("templates.json").open("w", encoding="utf-8") as handle:
1151
+ json.dump(
1152
+ {
1153
+ "templates": templates.to_json(),
1154
+ "template_episode": template_episode_dir.name,
1155
+ "template_frames": template_frames,
1156
+ "episode_offset": episode_offset,
1157
+ },
1158
+ handle,
1159
+ indent=2,
1160
+ )
1161
+
1162
+ episode_metrics: List[Dict[str, object]] = []
1163
+ for episode_dir in episode_dirs:
1164
+ artifacts = _analyze_episode(
1165
+ dataset_path,
1166
+ episode_dir,
1167
+ templates,
1168
+ template_frames,
1169
+ checkpoint_stride=checkpoint_stride,
1170
+ max_frames=max_frames,
1171
+ independent_replay=independent_replay,
1172
+ )
1173
+ artifacts.dense.to_csv(result_path.joinpath(f"{episode_dir.name}.dense.csv"), index=False)
1174
+ artifacts.keyframes.to_csv(
1175
+ result_path.joinpath(f"{episode_dir.name}.keyframes.csv"), index=False
1176
+ )
1177
+ with result_path.joinpath(f"{episode_dir.name}.metrics.json").open(
1178
+ "w", encoding="utf-8"
1179
+ ) as handle:
1180
+ json.dump(artifacts.metrics, handle, indent=2)
1181
+ episode_metrics.append(artifacts.metrics)
1182
+
1183
+ summary = _aggregate_summary(episode_metrics)
1184
+ with result_path.joinpath("summary.json").open("w", encoding="utf-8") as handle:
1185
+ json.dump(summary, handle, indent=2)
1186
+ return summary
1187
+
1188
+
1189
+ def main(argv: Optional[Sequence[str]] = None) -> int:
1190
+ parser = argparse.ArgumentParser()
1191
+ parser.add_argument(
1192
+ "--dataset-root",
1193
+ default="/workspace/data/bimanual_take_tray_out_of_oven_train_128",
1194
+ )
1195
+ parser.add_argument(
1196
+ "--result-dir",
1197
+ default="/workspace/reveal_retrieve_label_study/results/oven_first_pass",
1198
+ )
1199
+ parser.add_argument("--max-episodes", type=int, default=1)
1200
+ parser.add_argument("--checkpoint-stride", type=int, default=16)
1201
+ parser.add_argument("--max-frames", type=int)
1202
+ parser.add_argument("--episode-offset", type=int, default=0)
1203
+ parser.add_argument("--template-episode-index", type=int, default=0)
1204
+ parser.add_argument("--independent-replay", action="store_true")
1205
+ args = parser.parse_args(argv)
1206
+
1207
+ summary = run_study(
1208
+ dataset_root=args.dataset_root,
1209
+ result_dir=args.result_dir,
1210
+ max_episodes=args.max_episodes,
1211
+ checkpoint_stride=args.checkpoint_stride,
1212
+ max_frames=args.max_frames,
1213
+ episode_offset=args.episode_offset,
1214
+ template_episode_index=args.template_episode_index,
1215
+ independent_replay=args.independent_replay,
1216
+ )
1217
+ print(json.dumps(summary, indent=2))
1218
+ return 0
1219
+
1220
+
1221
+ if __name__ == "__main__":
1222
+ raise SystemExit(main())
code/scripts/launch_parallel_oven_label_study.py ADDED
@@ -0,0 +1,223 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import argparse
2
+ import json
3
+ import math
4
+ import os
5
+ import signal
6
+ import subprocess
7
+ import sys
8
+ import time
9
+ from pathlib import Path
10
+ from typing import Dict, List, Optional, Tuple
11
+
12
+
13
+ PROJECT_ROOT = Path(__file__).resolve().parents[1]
14
+ if str(PROJECT_ROOT) not in sys.path:
15
+ sys.path.insert(0, str(PROJECT_ROOT))
16
+
17
+ from rr_label_study.oven_study import _aggregate_summary, _episode_dirs
18
+
19
+
20
+ def _chunk_specs(
21
+ total_episodes: int,
22
+ episode_offset: int,
23
+ max_episodes: Optional[int],
24
+ num_workers: int,
25
+ ) -> List[Tuple[int, int]]:
26
+ remaining = max(0, total_episodes - episode_offset)
27
+ if max_episodes is not None:
28
+ remaining = min(remaining, max_episodes)
29
+ if remaining <= 0:
30
+ return []
31
+ worker_count = min(num_workers, remaining)
32
+ chunk_size = math.ceil(remaining / worker_count)
33
+ specs: List[Tuple[int, int]] = []
34
+ for worker_index in range(worker_count):
35
+ start = episode_offset + worker_index * chunk_size
36
+ count = min(chunk_size, episode_offset + remaining - start)
37
+ if count > 0:
38
+ specs.append((start, count))
39
+ return specs
40
+
41
+
42
+ def _launch_xvfb(display_num: int, log_path: Path) -> subprocess.Popen:
43
+ log_handle = log_path.open("w", encoding="utf-8")
44
+ return subprocess.Popen(
45
+ [
46
+ "Xvfb",
47
+ f":{display_num}",
48
+ "-screen",
49
+ "0",
50
+ "1280x1024x24",
51
+ "+extension",
52
+ "GLX",
53
+ "+render",
54
+ "-noreset",
55
+ ],
56
+ stdout=log_handle,
57
+ stderr=subprocess.STDOUT,
58
+ start_new_session=True,
59
+ )
60
+
61
+
62
+ def _launch_worker(
63
+ worker_dir: Path,
64
+ display_num: int,
65
+ dataset_root: str,
66
+ episode_offset: int,
67
+ max_episodes: int,
68
+ checkpoint_stride: int,
69
+ template_episode_index: int,
70
+ max_frames: Optional[int],
71
+ ) -> Tuple[subprocess.Popen, subprocess.Popen]:
72
+ worker_dir.mkdir(parents=True, exist_ok=True)
73
+ xvfb = _launch_xvfb(display_num, worker_dir.joinpath("xvfb.log"))
74
+ time.sleep(1.0)
75
+
76
+ runtime_dir = Path(f"/tmp/rr_label_study_display_{display_num}")
77
+ runtime_dir.mkdir(parents=True, exist_ok=True)
78
+
79
+ command = [
80
+ sys.executable,
81
+ str(PROJECT_ROOT.joinpath("scripts", "run_oven_label_study.py")),
82
+ "--dataset-root",
83
+ dataset_root,
84
+ "--result-dir",
85
+ str(worker_dir),
86
+ "--episode-offset",
87
+ str(episode_offset),
88
+ "--max-episodes",
89
+ str(max_episodes),
90
+ "--checkpoint-stride",
91
+ str(checkpoint_stride),
92
+ "--template-episode-index",
93
+ str(template_episode_index),
94
+ ]
95
+ if max_frames is not None:
96
+ command.extend(["--max-frames", str(max_frames)])
97
+
98
+ env = os.environ.copy()
99
+ env["DISPLAY"] = f":{display_num}"
100
+ env["XDG_RUNTIME_DIR"] = str(runtime_dir)
101
+
102
+ worker_log = worker_dir.joinpath("worker.log").open("w", encoding="utf-8")
103
+ process = subprocess.Popen(
104
+ command,
105
+ stdout=worker_log,
106
+ stderr=subprocess.STDOUT,
107
+ env=env,
108
+ cwd=str(PROJECT_ROOT),
109
+ start_new_session=True,
110
+ )
111
+ return xvfb, process
112
+
113
+
114
+ def _stop_process(process: subprocess.Popen) -> None:
115
+ if process.poll() is not None:
116
+ return
117
+ try:
118
+ os.killpg(process.pid, signal.SIGTERM)
119
+ except ProcessLookupError:
120
+ return
121
+ try:
122
+ process.wait(timeout=10)
123
+ except subprocess.TimeoutExpired:
124
+ try:
125
+ os.killpg(process.pid, signal.SIGKILL)
126
+ except ProcessLookupError:
127
+ pass
128
+
129
+
130
+ def _collect_metrics(base_result_dir: Path) -> List[Dict[str, object]]:
131
+ metrics: List[Dict[str, object]] = []
132
+ for metrics_path in sorted(base_result_dir.glob("worker_*/episode*.metrics.json")):
133
+ with metrics_path.open("r", encoding="utf-8") as handle:
134
+ metrics.append(json.load(handle))
135
+ return metrics
136
+
137
+
138
+ def main(argv: Optional[List[str]] = None) -> int:
139
+ parser = argparse.ArgumentParser()
140
+ parser.add_argument(
141
+ "--dataset-root",
142
+ default="/workspace/data/bimanual_take_tray_out_of_oven_train_128",
143
+ )
144
+ parser.add_argument(
145
+ "--result-dir",
146
+ default="/workspace/reveal_retrieve_label_study/results/oven_parallel",
147
+ )
148
+ parser.add_argument("--num-workers", type=int, default=4)
149
+ parser.add_argument("--episode-offset", type=int, default=0)
150
+ parser.add_argument("--max-episodes", type=int)
151
+ parser.add_argument("--checkpoint-stride", type=int, default=16)
152
+ parser.add_argument("--template-episode-index", type=int, default=0)
153
+ parser.add_argument("--base-display", type=int, default=110)
154
+ parser.add_argument("--max-frames", type=int)
155
+ args = parser.parse_args(argv)
156
+
157
+ dataset_root = Path(args.dataset_root)
158
+ all_episodes = _episode_dirs(dataset_root)
159
+ chunk_specs = _chunk_specs(
160
+ total_episodes=len(all_episodes),
161
+ episode_offset=args.episode_offset,
162
+ max_episodes=args.max_episodes,
163
+ num_workers=args.num_workers,
164
+ )
165
+ if not chunk_specs:
166
+ raise RuntimeError("no episodes selected for parallel run")
167
+
168
+ result_dir = Path(args.result_dir)
169
+ result_dir.mkdir(parents=True, exist_ok=True)
170
+
171
+ workers: List[Tuple[subprocess.Popen, subprocess.Popen]] = []
172
+ worker_meta: List[Dict[str, object]] = []
173
+ try:
174
+ for worker_index, (episode_offset, episode_count) in enumerate(chunk_specs):
175
+ display_num = args.base_display + worker_index
176
+ worker_dir = result_dir.joinpath(f"worker_{worker_index:02d}")
177
+ xvfb, process = _launch_worker(
178
+ worker_dir=worker_dir,
179
+ display_num=display_num,
180
+ dataset_root=args.dataset_root,
181
+ episode_offset=episode_offset,
182
+ max_episodes=episode_count,
183
+ checkpoint_stride=args.checkpoint_stride,
184
+ template_episode_index=args.template_episode_index,
185
+ max_frames=args.max_frames,
186
+ )
187
+ workers.append((xvfb, process))
188
+ worker_meta.append(
189
+ {
190
+ "worker_index": worker_index,
191
+ "display_num": display_num,
192
+ "episode_offset": episode_offset,
193
+ "episode_count": episode_count,
194
+ }
195
+ )
196
+
197
+ for meta, (_, process) in zip(worker_meta, workers):
198
+ return_code = process.wait()
199
+ meta["return_code"] = return_code
200
+ if return_code != 0:
201
+ worker_index = int(meta["worker_index"])
202
+ worker_log = result_dir.joinpath(f"worker_{worker_index:02d}", "worker.log")
203
+ raise RuntimeError(
204
+ f"worker {worker_index} failed with code {return_code}; see {worker_log}"
205
+ )
206
+ finally:
207
+ for xvfb, process in workers:
208
+ _stop_process(process)
209
+ _stop_process(xvfb)
210
+
211
+ episode_metrics = _collect_metrics(result_dir)
212
+ summary = _aggregate_summary(episode_metrics)
213
+ with result_dir.joinpath("parallel_workers.json").open("w", encoding="utf-8") as handle:
214
+ json.dump(worker_meta, handle, indent=2)
215
+ with result_dir.joinpath("parallel_summary.json").open("w", encoding="utf-8") as handle:
216
+ json.dump(summary, handle, indent=2)
217
+
218
+ print(json.dumps(summary, indent=2))
219
+ return 0
220
+
221
+
222
+ if __name__ == "__main__":
223
+ raise SystemExit(main())
code/scripts/repair_oven_episode_dense.py ADDED
@@ -0,0 +1,375 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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, Tuple
12
+
13
+ import numpy as np
14
+ import pandas as pd
15
+ from sklearn.metrics import f1_score
16
+
17
+
18
+ PROJECT_ROOT = Path(__file__).resolve().parents[1]
19
+ if str(PROJECT_ROOT) not in sys.path:
20
+ sys.path.insert(0, str(PROJECT_ROOT))
21
+
22
+ from rr_label_study.oven_study import (
23
+ BimanualTakeTrayOutOfOven,
24
+ DEFAULT_DOOR_SPEED_TAU,
25
+ DEFAULT_PEXT_TAU,
26
+ DEFAULT_VISIBILITY_TAU,
27
+ ReplayCache,
28
+ Shape,
29
+ _aggregate_summary,
30
+ _derive_templates,
31
+ _first_crossing,
32
+ _interventional_validity,
33
+ _keyframe_subset,
34
+ _keypoint_discovery,
35
+ _launch_replay_env,
36
+ _load_demo,
37
+ _load_descriptions,
38
+ _safe_auc,
39
+ _safe_auprc,
40
+ _transition_count,
41
+ )
42
+
43
+
44
+ def _launch_xvfb(display_num: int, log_path: Path) -> subprocess.Popen:
45
+ log_handle = log_path.open("w", encoding="utf-8")
46
+ return subprocess.Popen(
47
+ [
48
+ "Xvfb",
49
+ f":{display_num}",
50
+ "-screen",
51
+ "0",
52
+ "1280x1024x24",
53
+ "+extension",
54
+ "GLX",
55
+ "+render",
56
+ "-noreset",
57
+ ],
58
+ stdout=log_handle,
59
+ stderr=subprocess.STDOUT,
60
+ start_new_session=True,
61
+ )
62
+
63
+
64
+ def _stop_process(process: Optional[subprocess.Popen]) -> None:
65
+ if process is None or process.poll() is not None:
66
+ return
67
+ try:
68
+ os.killpg(process.pid, signal.SIGTERM)
69
+ except ProcessLookupError:
70
+ return
71
+ try:
72
+ process.wait(timeout=10)
73
+ except subprocess.TimeoutExpired:
74
+ try:
75
+ os.killpg(process.pid, signal.SIGKILL)
76
+ except ProcessLookupError:
77
+ pass
78
+
79
+
80
+ def _spawn_frame_job(
81
+ display_num: int,
82
+ episode_dir: Path,
83
+ templates_pkl: Path,
84
+ frame_index: int,
85
+ checkpoint_stride: int,
86
+ output_json: Path,
87
+ ) -> subprocess.Popen:
88
+ runtime_dir = Path(f"/tmp/rr_label_study_frame_display_{display_num}")
89
+ runtime_dir.mkdir(parents=True, exist_ok=True)
90
+ env = os.environ.copy()
91
+ env["DISPLAY"] = f":{display_num}"
92
+ env["COPPELIASIM_ROOT"] = "/workspace/coppelia_sim"
93
+ env["LD_LIBRARY_PATH"] = f"/workspace/coppelia_sim:{env.get('LD_LIBRARY_PATH', '')}"
94
+ env["QT_QPA_PLATFORM_PLUGIN_PATH"] = "/workspace/coppelia_sim"
95
+ env["XDG_RUNTIME_DIR"] = str(runtime_dir)
96
+ return subprocess.Popen(
97
+ [
98
+ sys.executable,
99
+ str(PROJECT_ROOT.joinpath("scripts", "run_oven_single_frame.py")),
100
+ "--episode-dir",
101
+ str(episode_dir),
102
+ "--templates-pkl",
103
+ str(templates_pkl),
104
+ "--frame-index",
105
+ str(frame_index),
106
+ "--checkpoint-stride",
107
+ str(checkpoint_stride),
108
+ "--output-json",
109
+ str(output_json),
110
+ ],
111
+ stdout=subprocess.DEVNULL,
112
+ stderr=subprocess.DEVNULL,
113
+ cwd=str(PROJECT_ROOT),
114
+ env=env,
115
+ start_new_session=True,
116
+ )
117
+
118
+
119
+ def _recompute_episode_metrics(
120
+ frame_df: pd.DataFrame,
121
+ episode_dir: Path,
122
+ demo,
123
+ descriptions: List[str],
124
+ templates,
125
+ template_frames: Dict[str, int],
126
+ checkpoint_stride: int,
127
+ ) -> Tuple[pd.DataFrame, Dict[str, object]]:
128
+ door_speed = np.gradient(frame_df["door_angle"].to_numpy(), 0.05)
129
+ frame_df["door_speed_abs"] = np.abs(door_speed)
130
+ y_ext_binary = frame_df["y_ext"].to_numpy(dtype=bool)
131
+ y_ready = np.zeros(len(frame_df), dtype=bool)
132
+ for i in range(len(frame_df)):
133
+ window = y_ext_binary[i : i + 3]
134
+ if len(window) == 3 and np.all(window) and frame_df.iloc[i]["door_speed_abs"] <= DEFAULT_DOOR_SPEED_TAU:
135
+ y_ready[i] = True
136
+ if np.any(y_ready):
137
+ first_ready = int(np.flatnonzero(y_ready)[0])
138
+ y_ready[first_ready:] = True
139
+ frame_df["y_ready"] = y_ready.astype(float)
140
+
141
+ phase_trigger = (
142
+ (frame_df["full_view_visibility"] >= DEFAULT_VISIBILITY_TAU)
143
+ & (frame_df["p_ext"] >= DEFAULT_PEXT_TAU)
144
+ & (frame_df["door_speed_abs"] <= DEFAULT_DOOR_SPEED_TAU)
145
+ ).to_numpy(dtype=bool)
146
+ phase_switch = np.zeros(len(frame_df), dtype=bool)
147
+ if np.any(phase_trigger):
148
+ first_phase = int(np.flatnonzero(phase_trigger)[0])
149
+ phase_switch[first_phase:] = True
150
+ frame_df["phase_switch"] = phase_switch.astype(float)
151
+
152
+ keyframes = [index for index in _keypoint_discovery(demo) if index < len(frame_df)]
153
+ key_df = _keyframe_subset(frame_df, keyframes)
154
+
155
+ y_pre_arr = frame_df["y_pre"].to_numpy(dtype=int)
156
+ y_ext_arr = frame_df["y_ext"].to_numpy(dtype=int)
157
+ y_ready_arr = frame_df["y_ready"].to_numpy(dtype=int)
158
+ p_pre_arr = frame_df["p_pre"].to_numpy(dtype=float)
159
+ p_ext_arr = frame_df["p_ext"].to_numpy(dtype=float)
160
+ phase_arr = frame_df["phase_switch"].to_numpy(dtype=int)
161
+ whole_vis = frame_df["full_view_whole_tray_visibility"].to_numpy(dtype=float)
162
+ door_angle_arr = frame_df["door_angle"].to_numpy(dtype=float)
163
+ time_arr = frame_df["time_norm"].to_numpy(dtype=float)
164
+
165
+ ppre_cross = _first_crossing(p_pre_arr, DEFAULT_PEXT_TAU)
166
+ pext_cross = _first_crossing(p_ext_arr, DEFAULT_PEXT_TAU)
167
+ phase_cross = _first_crossing(frame_df["phase_switch"].to_numpy(dtype=float), 0.5)
168
+ ready_cross = _first_crossing(y_ready_arr.astype(float), 0.5)
169
+ phase_rises, phase_falls = _transition_count(phase_arr)
170
+ key_phase_cross = _first_crossing(key_df["phase_switch"].to_numpy(dtype=float), 0.5)
171
+ key_ready_cross = _first_crossing(key_df["y_ready"].to_numpy(dtype=float), 0.5)
172
+
173
+ env = _launch_replay_env()
174
+ try:
175
+ task = env.get_task(BimanualTakeTrayOutOfOven)
176
+ cache = ReplayCache(task, demo, checkpoint_stride=checkpoint_stride)
177
+ cache.reset()
178
+ interventions = _interventional_validity(
179
+ task,
180
+ cache,
181
+ episode_dir,
182
+ demo,
183
+ templates,
184
+ Shape("tray").get_handle(),
185
+ frame_df,
186
+ )
187
+ finally:
188
+ env.shutdown()
189
+
190
+ metrics = {
191
+ "episode_name": episode_dir.name,
192
+ "description": descriptions[0],
193
+ "num_dense_frames": int(len(frame_df)),
194
+ "num_keyframes": int(len(key_df)),
195
+ "phase_switch_rises": int(phase_rises),
196
+ "phase_switch_falls": int(phase_falls),
197
+ "ppre_cross_frame": int(ppre_cross),
198
+ "pext_cross_frame": int(pext_cross),
199
+ "phase_cross_frame": int(phase_cross),
200
+ "ready_cross_frame": int(ready_cross),
201
+ "ordering_ok": bool(ppre_cross == -1 or pext_cross == -1 or ppre_cross <= pext_cross),
202
+ "dense_boundary_error_frames": float(abs(phase_cross - ready_cross))
203
+ if phase_cross >= 0 and ready_cross >= 0
204
+ else float("nan"),
205
+ "dense_boundary_error_fraction": float(abs(phase_cross - ready_cross) / len(frame_df))
206
+ if phase_cross >= 0 and ready_cross >= 0
207
+ else float("nan"),
208
+ "key_boundary_error_keyframes": float(abs(key_phase_cross - key_ready_cross))
209
+ if key_phase_cross >= 0 and key_ready_cross >= 0
210
+ else float("nan"),
211
+ "auroc_vret_ypre_three": _safe_auc(
212
+ y_pre_arr, frame_df["three_view_visibility"].to_numpy(dtype=float)
213
+ ),
214
+ "auprc_vret_ypre_three": _safe_auprc(
215
+ y_pre_arr, frame_df["three_view_visibility"].to_numpy(dtype=float)
216
+ ),
217
+ "auroc_vret_ypre_full": _safe_auc(
218
+ y_pre_arr, frame_df["full_view_visibility"].to_numpy(dtype=float)
219
+ ),
220
+ "auprc_vret_ypre_full": _safe_auprc(
221
+ y_pre_arr, frame_df["full_view_visibility"].to_numpy(dtype=float)
222
+ ),
223
+ "auroc_ppre_ypre": _safe_auc(y_pre_arr, p_pre_arr),
224
+ "auprc_ppre_ypre": _safe_auprc(y_pre_arr, p_pre_arr),
225
+ "auroc_pext_yext": _safe_auc(y_ext_arr, p_ext_arr),
226
+ "auprc_pext_yext": _safe_auprc(y_ext_arr, p_ext_arr),
227
+ "auroc_phase_yready": _safe_auc(
228
+ y_ready_arr, frame_df["phase_switch"].to_numpy(dtype=float)
229
+ ),
230
+ "auprc_phase_yready": _safe_auprc(
231
+ y_ready_arr, frame_df["phase_switch"].to_numpy(dtype=float)
232
+ ),
233
+ "f1_phase_yready": float(f1_score(y_ready_arr, phase_arr))
234
+ if np.any(y_ready_arr) and np.any(phase_arr)
235
+ else float("nan"),
236
+ "baseline_auroc_door_yext": _safe_auc(y_ext_arr, door_angle_arr),
237
+ "baseline_auprc_door_yext": _safe_auprc(y_ext_arr, door_angle_arr),
238
+ "baseline_auroc_time_yext": _safe_auc(y_ext_arr, time_arr),
239
+ "baseline_auprc_time_yext": _safe_auprc(y_ext_arr, time_arr),
240
+ "baseline_auroc_whole_vis_yext": _safe_auc(y_ext_arr, whole_vis),
241
+ "baseline_auprc_whole_vis_yext": _safe_auprc(y_ext_arr, whole_vis),
242
+ **interventions,
243
+ }
244
+ return key_df, metrics
245
+
246
+
247
+ def main() -> int:
248
+ parser = argparse.ArgumentParser()
249
+ parser.add_argument("--dataset-root", required=True)
250
+ parser.add_argument("--episode-dir", required=True)
251
+ parser.add_argument("--input-dense-csv", required=True)
252
+ parser.add_argument("--output-dir", required=True)
253
+ parser.add_argument("--checkpoint-stride", type=int, default=16)
254
+ parser.add_argument("--num-workers", type=int, default=4)
255
+ parser.add_argument("--base-display", type=int, default=170)
256
+ parser.add_argument("--template-episode-dir")
257
+ args = parser.parse_args()
258
+
259
+ dataset_root = Path(args.dataset_root)
260
+ episode_dir = Path(args.episode_dir)
261
+ output_dir = Path(args.output_dir)
262
+ output_dir.mkdir(parents=True, exist_ok=True)
263
+ base_df = pd.read_csv(args.input_dense_csv)
264
+ demo = _load_demo(episode_dir)
265
+ descriptions = _load_descriptions(episode_dir)
266
+
267
+ template_episode_dir = (
268
+ Path(args.template_episode_dir) if args.template_episode_dir else episode_dir
269
+ )
270
+ templates, template_frames = _derive_templates(dataset_root, template_episode_dir)
271
+ templates_pkl = output_dir.joinpath("templates.pkl")
272
+ with templates_pkl.open("wb") as handle:
273
+ pickle.dump(templates, handle)
274
+ with output_dir.joinpath("templates.json").open("w", encoding="utf-8") as handle:
275
+ json.dump(
276
+ {
277
+ "templates": templates.to_json(),
278
+ "template_episode": template_episode_dir.name,
279
+ "template_frames": template_frames,
280
+ },
281
+ handle,
282
+ indent=2,
283
+ )
284
+
285
+ left_closed = np.array([float(demo[i].left.gripper_open) < 0.5 for i in range(len(base_df))])
286
+ onset_candidates = np.flatnonzero(
287
+ (base_df["p_ext"].to_numpy(dtype=float) >= DEFAULT_PEXT_TAU)
288
+ | (base_df["y_ext"].to_numpy(dtype=float) > 0.5)
289
+ )
290
+ onset = int(onset_candidates[0]) if len(onset_candidates) else 0
291
+ suspicious = np.flatnonzero(
292
+ (np.arange(len(base_df)) >= onset)
293
+ & left_closed
294
+ & (
295
+ (base_df["p_pre"].to_numpy(dtype=float) < 0.9)
296
+ | (base_df["y_ext"].to_numpy(dtype=float) < 0.5)
297
+ )
298
+ ).tolist()
299
+
300
+ frame_json_dir = output_dir.joinpath("repaired_frames")
301
+ frame_json_dir.mkdir(parents=True, exist_ok=True)
302
+ xvfb_procs: List[subprocess.Popen] = []
303
+ displays = [args.base_display + i for i in range(min(args.num_workers, max(1, len(suspicious))))]
304
+ try:
305
+ for display_num in displays:
306
+ xvfb_procs.append(_launch_xvfb(display_num, output_dir.joinpath(f"xvfb_{display_num}.log")))
307
+ time.sleep(1.0)
308
+
309
+ pending = suspicious[:]
310
+ active: Dict[int, Tuple[int, subprocess.Popen, Path]] = {}
311
+ while pending or active:
312
+ free_displays = [display for display in displays if display not in active]
313
+ while pending and free_displays:
314
+ display_num = free_displays.pop(0)
315
+ frame_index = pending.pop(0)
316
+ output_json = frame_json_dir.joinpath(f"frame_{frame_index:04d}.json")
317
+ process = _spawn_frame_job(
318
+ display_num=display_num,
319
+ episode_dir=episode_dir,
320
+ templates_pkl=templates_pkl,
321
+ frame_index=frame_index,
322
+ checkpoint_stride=args.checkpoint_stride,
323
+ output_json=output_json,
324
+ )
325
+ active[display_num] = (frame_index, process, output_json)
326
+ time.sleep(0.5)
327
+ finished = []
328
+ for display_num, (frame_index, process, output_json) in active.items():
329
+ return_code = process.poll()
330
+ if return_code is None:
331
+ continue
332
+ if return_code != 0 or not output_json.exists():
333
+ raise RuntimeError(
334
+ f"frame {frame_index} repair failed on display :{display_num}"
335
+ )
336
+ finished.append(display_num)
337
+ for display_num in finished:
338
+ active.pop(display_num)
339
+ finally:
340
+ for _, process, _ in list(active.values()) if "active" in locals() else []:
341
+ _stop_process(process)
342
+ for xvfb in xvfb_procs:
343
+ _stop_process(xvfb)
344
+
345
+ corrected_df = base_df.copy()
346
+ for frame_index in suspicious:
347
+ row_path = frame_json_dir.joinpath(f"frame_{frame_index:04d}.json")
348
+ with row_path.open("r", encoding="utf-8") as handle:
349
+ row = json.load(handle)
350
+ for key, value in row.items():
351
+ corrected_df.at[frame_index, key] = value
352
+
353
+ key_df, metrics = _recompute_episode_metrics(
354
+ frame_df=corrected_df,
355
+ episode_dir=episode_dir,
356
+ demo=demo,
357
+ descriptions=descriptions,
358
+ templates=templates,
359
+ template_frames=template_frames,
360
+ checkpoint_stride=args.checkpoint_stride,
361
+ )
362
+
363
+ corrected_df.to_csv(output_dir.joinpath(f"{episode_dir.name}.dense.csv"), index=False)
364
+ key_df.to_csv(output_dir.joinpath(f"{episode_dir.name}.keyframes.csv"), index=False)
365
+ with output_dir.joinpath(f"{episode_dir.name}.metrics.json").open("w", encoding="utf-8") as handle:
366
+ json.dump(metrics, handle, indent=2)
367
+ summary = _aggregate_summary([metrics])
368
+ with output_dir.joinpath("summary.json").open("w", encoding="utf-8") as handle:
369
+ json.dump(summary, handle, indent=2)
370
+ print(json.dumps({"suspicious_frames": suspicious, "summary": summary}, indent=2))
371
+ return 0
372
+
373
+
374
+ if __name__ == "__main__":
375
+ raise SystemExit(main())
code/scripts/run_oven_label_study.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pathlib import Path
2
+ import sys
3
+
4
+
5
+ PROJECT_ROOT = Path(__file__).resolve().parents[1]
6
+ if str(PROJECT_ROOT) not in sys.path:
7
+ sys.path.insert(0, str(PROJECT_ROOT))
8
+
9
+ from rr_label_study.oven_study import main
10
+
11
+
12
+ if __name__ == "__main__":
13
+ raise SystemExit(main())
code/scripts/run_oven_single_frame.py ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pathlib import Path
2
+ import argparse
3
+ import json
4
+ import pickle
5
+ import sys
6
+
7
+
8
+ 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 _compute_frame_row_isolated, _load_demo
13
+
14
+
15
+ def main() -> int:
16
+ parser = argparse.ArgumentParser()
17
+ parser.add_argument("--episode-dir", required=True)
18
+ parser.add_argument("--templates-pkl", required=True)
19
+ parser.add_argument("--frame-index", type=int, required=True)
20
+ parser.add_argument("--checkpoint-stride", type=int, default=16)
21
+ parser.add_argument("--output-json", 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
+ row = _compute_frame_row_isolated(
29
+ episode_dir=episode_dir,
30
+ demo=demo,
31
+ templates=templates,
32
+ checkpoint_stride=args.checkpoint_stride,
33
+ frame_index=args.frame_index,
34
+ )
35
+ output_path = Path(args.output_json)
36
+ output_path.parent.mkdir(parents=True, exist_ok=True)
37
+ with output_path.open("w", encoding="utf-8") as handle:
38
+ json.dump(row, handle)
39
+ return 0
40
+
41
+
42
+ if __name__ == "__main__":
43
+ raise SystemExit(main())
environment/activate_rlbench_runtime.sh ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ ROOT="${1:-/workspace}"
5
+ DISPLAY_NUM="${DISPLAY_NUM:-99}"
6
+ MINIFORGE_DIR="${ROOT}/miniforge3"
7
+ ENV_PREFIX="${MINIFORGE_DIR}/envs/rlbench"
8
+
9
+ source "${MINIFORGE_DIR}/etc/profile.d/conda.sh"
10
+ conda activate "${ENV_PREFIX}"
11
+
12
+ export DISPLAY=":${DISPLAY_NUM}"
13
+ export COPPELIASIM_ROOT="${ROOT}/coppelia_sim"
14
+ export LD_LIBRARY_PATH="${COPPELIASIM_ROOT}:${LD_LIBRARY_PATH:-}"
15
+ export QT_QPA_PLATFORM_PLUGIN_PATH="${COPPELIASIM_ROOT}"
16
+ export XDG_RUNTIME_DIR="/tmp/runtime-root"
17
+ export PYTHONPATH="${ROOT}/rlbench:${ROOT}/pyrep:${ROOT}/yarr:${ROOT}/peract_bimanual:${PYTHONPATH:-}"
18
+
19
+ mkdir -p "${XDG_RUNTIME_DIR}"
20
+
21
+ if ! pgrep -f "Xvfb :${DISPLAY_NUM}" >/dev/null 2>&1; then
22
+ Xvfb ":${DISPLAY_NUM}" -screen 0 1280x1024x24 +extension GLX +render -noreset >/tmp/xvfb_${DISPLAY_NUM}.log 2>&1 &
23
+ sleep 1
24
+ fi
25
+
26
+ echo "Activated rlbench runtime on DISPLAY=${DISPLAY}"
environment/conda_env_rlbench.yml ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: rlbench
2
+ channels:
3
+ - conda-forge
4
+ dependencies:
5
+ - _openmp_mutex=4.5
6
+ - alsa-lib=1.2.15.3
7
+ - brotli=1.2.0
8
+ - brotli-bin=1.2.0
9
+ - brotli-python=1.0.9
10
+ - bzip2=1.0.8
11
+ - ca-certificates=2026.2.25
12
+ - cairo=1.18.4
13
+ - certifi=2024.8.30
14
+ - cffi=1.17.0
15
+ - charset-normalizer=3.4.0
16
+ - contourpy=1.1.1
17
+ - cycler=0.12.1
18
+ - cyrus-sasl=2.1.28
19
+ - cython=3.0.11
20
+ - dbus=1.16.2
21
+ - font-ttf-dejavu-sans-mono=2.37
22
+ - font-ttf-inconsolata=3.000
23
+ - font-ttf-source-code-pro=2.038
24
+ - font-ttf-ubuntu=0.83
25
+ - fontconfig=2.17.1
26
+ - fonts-conda-ecosystem=1
27
+ - fonts-conda-forge=1
28
+ - fonttools=4.53.1
29
+ - freetype=2.14.3
30
+ - fribidi=1.0.16
31
+ - glib=2.86.4
32
+ - glib-tools=2.86.4
33
+ - graphite2=1.3.14
34
+ - gst-plugins-base=1.26.10
35
+ - gstreamer=1.26.10
36
+ - h2=4.1.0
37
+ - harfbuzz=13.2.1
38
+ - hpack=4.0.0
39
+ - hyperframe=6.0.1
40
+ - icu=78.3
41
+ - idna=3.10
42
+ - importlib-resources=6.4.5
43
+ - importlib_resources=6.4.5
44
+ - joblib=1.4.2
45
+ - keyutils=1.6.3
46
+ - kiwisolver=1.4.5
47
+ - krb5=1.22.2
48
+ - lame=3.100
49
+ - lcms2=2.18
50
+ - ld_impl_linux-64=2.45.1
51
+ - lerc=4.1.0
52
+ - libblas=3.9.0
53
+ - libbrotlicommon=1.2.0
54
+ - libbrotlidec=1.2.0
55
+ - libbrotlienc=1.2.0
56
+ - libcap=2.77
57
+ - libcblas=3.9.0
58
+ - libclang-cpp22.1=22.1.0
59
+ - libclang13=22.1.0
60
+ - libcups=2.3.3
61
+ - libdeflate=1.25
62
+ - libdrm=2.4.125
63
+ - libedit=3.1.20250104
64
+ - libegl=1.7.0
65
+ - libevent=2.1.12
66
+ - libexpat=2.7.5
67
+ - libffi=3.5.2
68
+ - libflac=1.5.0
69
+ - libfreetype=2.14.3
70
+ - libfreetype6=2.14.3
71
+ - libgcc=15.2.0
72
+ - libgcc-ng=15.2.0
73
+ - libgfortran=15.2.0
74
+ - libgfortran-ng=15.2.0
75
+ - libgfortran5=15.2.0
76
+ - libgl=1.7.0
77
+ - libglib=2.86.4
78
+ - libglvnd=1.7.0
79
+ - libglx=1.7.0
80
+ - libgomp=15.2.0
81
+ - libiconv=1.18
82
+ - libjpeg-turbo=3.1.2
83
+ - liblapack=3.9.0
84
+ - libllvm22=22.1.2
85
+ - liblzma=5.8.2
86
+ - liblzma-devel=5.8.2
87
+ - libnsl=2.0.1
88
+ - libntlm=1.8
89
+ - libogg=1.3.5
90
+ - libopenblas=0.3.25
91
+ - libopus=1.6.1
92
+ - libpciaccess=0.18
93
+ - libpng=1.6.56
94
+ - libpq=18.3
95
+ - libsndfile=1.2.2
96
+ - libsqlite=3.52.0
97
+ - libstdcxx=15.2.0
98
+ - libstdcxx-ng=15.2.0
99
+ - libsystemd0=260.1
100
+ - libtiff=4.7.1
101
+ - libuuid=2.42
102
+ - libvorbis=1.3.7
103
+ - libwebp-base=1.6.0
104
+ - libxcb=1.17.0
105
+ - libxcrypt=4.4.36
106
+ - libxkbcommon=1.13.1
107
+ - libxml2=2.15.2
108
+ - libxml2-16=2.15.2
109
+ - libzlib=1.3.2
110
+ - matplotlib=3.7.3
111
+ - matplotlib-base=3.7.3
112
+ - mpg123=1.32.9
113
+ - munkres=1.1.4
114
+ - natsort=8.4.0
115
+ - ncurses=6.5
116
+ - nspr=4.38
117
+ - nss=3.118
118
+ - numpy=1.24.4
119
+ - openjpeg=2.5.4
120
+ - openldap=2.6.10
121
+ - openssl=3.6.1
122
+ - packaging=26.0
123
+ - pandas=2.0.3
124
+ - pango=1.56.4
125
+ - pcre2=10.47
126
+ - pip=24.3.1
127
+ - pixman=0.46.4
128
+ - platformdirs=4.3.6
129
+ - ply=3.11
130
+ - pooch=1.8.2
131
+ - pthread-stubs=0.4
132
+ - pulseaudio-client=17.0
133
+ - pycparser=2.22
134
+ - pyparsing=3.1.4
135
+ - pyqt=5.15.9
136
+ - pyqt5-sip=12.12.2
137
+ - pysocks=1.7.1
138
+ - python=3.8.20
139
+ - python-dateutil=2.9.0
140
+ - python-tzdata=2024.2
141
+ - python_abi=3.8
142
+ - pytz=2024.2
143
+ - pyyaml=6.0.2
144
+ - qt-main=5.15.15
145
+ - readline=8.3
146
+ - requests=2.32.3
147
+ - scikit-learn=1.3.2
148
+ - scipy=1.10.1
149
+ - setuptools=75.3.0
150
+ - sip=6.7.12
151
+ - six=1.16.0
152
+ - threadpoolctl=3.5.0
153
+ - tk=8.6.13
154
+ - toml=0.10.2
155
+ - tomli=2.0.2
156
+ - tornado=6.4.1
157
+ - unicodedata2=15.1.0
158
+ - urllib3=2.2.3
159
+ - wheel=0.45.1
160
+ - xcb-util=0.4.1
161
+ - xcb-util-image=0.4.0
162
+ - xcb-util-keysyms=0.4.1
163
+ - xcb-util-renderutil=0.3.10
164
+ - xcb-util-wm=0.4.2
165
+ - xkeyboard-config=2.47
166
+ - xorg-libice=1.1.2
167
+ - xorg-libsm=1.2.6
168
+ - xorg-libx11=1.8.13
169
+ - xorg-libxau=1.0.12
170
+ - xorg-libxdamage=1.1.6
171
+ - xorg-libxdmcp=1.1.5
172
+ - xorg-libxext=1.3.7
173
+ - xorg-libxfixes=6.0.2
174
+ - xorg-libxrender=0.9.12
175
+ - xorg-libxshmfence=1.3.3
176
+ - xorg-libxxf86vm=1.1.7
177
+ - xz=5.8.2
178
+ - xz-gpl-tools=5.8.2
179
+ - xz-tools=5.8.2
180
+ - yaml=0.2.5
181
+ - zipp=3.21.0
182
+ - zstandard=0.19.0
183
+ - zstd=1.5.7
184
+ - pip:
185
+ - click==8.1.8
186
+ - click-prompt==0.5.1
187
+ - html-testrunner==1.2.1
188
+ - jinja2==3.1.6
189
+ - markdown-it-py==3.0.0
190
+ - markupsafe==2.1.5
191
+ - mdurl==0.1.2
192
+ - pillow==9.5.0
193
+ - prompt-toolkit==3.0.52
194
+ - pygments==2.19.2
195
+ - pyquaternion==0.9.9
196
+ - questionary==1.10.0
197
+ - rich==14.3.3
198
+ - rich-click==1.9.7
199
+ - rlbench==1.2.1
200
+ - typing-extensions==4.13.2
201
+ - wcwidth==0.6.0
202
+ prefix: /workspace/miniforge3/envs/rlbench
environment/dataset_notes.txt ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Expected benchmark dataset path:
2
+
3
+ /workspace/data/bimanual_take_tray_out_of_oven_train_128
4
+
5
+ This upload does not include the upstream RLBench demonstration dataset itself.
6
+
7
+ What is included here:
8
+ - all custom study code written for this work
9
+ - all generated result directories from the local run
10
+ - environment manifests
11
+ - setup helpers and runtime helpers
12
+
13
+ What is not included here:
14
+ - the original benchmark RGB-D demo dataset
15
+ - CoppeliaSim binaries
16
+
17
+ The final repaired single-episode study artifact in this upload was computed against the local dataset extraction used on the A40 RunPod machine described in `system_info.txt`.
environment/pip_freeze_rlbench.txt ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Brotli @ file:///home/conda/feedstock_root/build_artifacts/brotli-split_1666788425425/work
2
+ certifi @ file:///home/conda/feedstock_root/build_artifacts/certifi_1725278078093/work/certifi
3
+ cffi @ file:///home/conda/feedstock_root/build_artifacts/cffi_1723018376978/work
4
+ charset-normalizer @ file:///home/conda/feedstock_root/build_artifacts/charset-normalizer_1728479282467/work
5
+ click==8.1.8
6
+ click-prompt==0.5.1
7
+ contourpy @ file:///home/conda/feedstock_root/build_artifacts/contourpy_1695554215751/work
8
+ cycler @ file:///home/conda/feedstock_root/build_artifacts/cycler_1696677705766/work
9
+ Cython @ file:///home/conda/feedstock_root/build_artifacts/cython_1722872323968/work
10
+ fonttools @ file:///home/conda/feedstock_root/build_artifacts/fonttools_1720359039462/work
11
+ h2 @ file:///home/conda/feedstock_root/build_artifacts/h2_1634280454336/work
12
+ hpack==4.0.0
13
+ html-testRunner==1.2.1
14
+ hyperframe @ file:///home/conda/feedstock_root/build_artifacts/hyperframe_1619110129307/work
15
+ idna @ file:///home/conda/feedstock_root/build_artifacts/idna_1726459485162/work
16
+ importlib_resources @ file:///home/conda/feedstock_root/build_artifacts/importlib_resources_1725921340658/work
17
+ Jinja2==3.1.6
18
+ joblib @ file:///home/conda/feedstock_root/build_artifacts/joblib_1714665484399/work
19
+ kiwisolver @ file:///home/conda/feedstock_root/build_artifacts/kiwisolver_1695379923772/work
20
+ markdown-it-py==3.0.0
21
+ MarkupSafe==2.1.5
22
+ matplotlib @ file:///home/conda/feedstock_root/build_artifacts/matplotlib-suite_1695076686224/work
23
+ mdurl==0.1.2
24
+ munkres==1.1.4
25
+ natsort @ file:///home/conda/feedstock_root/build_artifacts/natsort_1687263093793/work
26
+ numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1687808301083/work
27
+ packaging @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_packaging_1769093650/work
28
+ pandas @ file:///home/conda/feedstock_root/build_artifacts/pandas_1688740514018/work
29
+ Pillow==9.5.0
30
+ platformdirs @ file:///home/conda/feedstock_root/build_artifacts/platformdirs_1726613481435/work
31
+ ply @ file:///home/conda/feedstock_root/build_artifacts/ply_1712242996588/work
32
+ pooch @ file:///home/conda/feedstock_root/build_artifacts/pooch_1717777836653/work
33
+ prompt_toolkit==3.0.52
34
+ pycparser @ file:///home/conda/feedstock_root/build_artifacts/pycparser_1711811537435/work
35
+ Pygments==2.19.2
36
+ pyparsing @ file:///home/conda/feedstock_root/build_artifacts/pyparsing_1724616129934/work
37
+ PyQt5==5.15.9
38
+ PyQt5-sip==12.12.2
39
+ pyquaternion==0.9.9
40
+ -e git+https://github.com/markusgrotz/PyRep.git@b8bd1d7a3182adcd570d001649c0849047ebf197#egg=PyRep
41
+ PySocks @ file:///home/conda/feedstock_root/build_artifacts/pysocks_1661604839144/work
42
+ python-dateutil @ file:///home/conda/feedstock_root/build_artifacts/python-dateutil_1709299778482/work
43
+ pytz @ file:///home/conda/feedstock_root/build_artifacts/pytz_1726055524169/work
44
+ PyYAML @ file:///home/conda/feedstock_root/build_artifacts/pyyaml_1723018227672/work
45
+ questionary==1.10.0
46
+ requests @ file:///home/conda/feedstock_root/build_artifacts/requests_1717057054362/work
47
+ rich==14.3.3
48
+ rich-click==1.9.7
49
+ -e git+https://github.com/markusgrotz/RLBench.git@8af748c51287989294e00c9c670e3330a0e35ed5#egg=rlbench
50
+ scikit-learn @ file:///home/conda/feedstock_root/build_artifacts/scikit-learn_1701931997682/work
51
+ scipy @ file:///home/conda/feedstock_root/build_artifacts/scipy-split_1683900206454/work/base/dist/scipy-1.10.1-cp38-cp38-linux_x86_64.whl#sha256=13ab5c17dedeb97a65ba90de1c51475f2d3ae0fe50bc43e9b018cc2943541de4
52
+ sip @ file:///home/conda/feedstock_root/build_artifacts/sip_1697300436403/work
53
+ six @ file:///home/conda/feedstock_root/build_artifacts/six_1620240208055/work
54
+ threadpoolctl @ file:///home/conda/feedstock_root/build_artifacts/threadpoolctl_1714400101435/work
55
+ toml @ file:///home/conda/feedstock_root/build_artifacts/toml_1604308577558/work
56
+ tomli @ file:///home/conda/feedstock_root/build_artifacts/tomli_1727974628237/work
57
+ tornado @ file:///home/conda/feedstock_root/build_artifacts/tornado_1717722826518/work
58
+ typing_extensions==4.13.2
59
+ tzdata @ file:///home/conda/feedstock_root/build_artifacts/python-tzdata_1727140567071/work
60
+ unicodedata2 @ file:///home/conda/feedstock_root/build_artifacts/unicodedata2_1695847997538/work
61
+ urllib3 @ file:///home/conda/feedstock_root/build_artifacts/urllib3_1726496430923/work
62
+ wcwidth==0.6.0
63
+ zipp @ file:///home/conda/feedstock_root/build_artifacts/zipp_1731262100163/work
64
+ zstandard @ file:///home/conda/feedstock_root/build_artifacts/zstandard_1667296101734/work
environment/repo_revisions.txt ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Upstream repositories used in this run
2
+
3
+ repo_path=/workspace/rlbench
4
+ remote=https://github.com/markusgrotz/RLBench.git
5
+ commit=8af748c51287989294e00c9c670e3330a0e35ed5
6
+ status:
7
+
8
+ repo_path=/workspace/pyrep
9
+ remote=https://github.com/markusgrotz/PyRep.git
10
+ commit=b8bd1d7a3182adcd570d001649c0849047ebf197
11
+ status:
12
+
13
+ repo_path=/workspace/peract_bimanual
14
+ remote=https://github.com/markusgrotz/peract_bimanual.git
15
+ commit=bb0232a6ba3fe116566e9568f0c7af980ed6703d
16
+ status:
17
+
18
+ repo_path=/workspace/yarr
19
+ remote=https://github.com/markusgrotz/YARR.git
20
+ commit=6822ff78602c77878b27d4cfe759ce029c67bffb
21
+ status:
environment/setup_same_hardware.sh ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ ROOT="${1:-/workspace}"
5
+ MINIFORGE_DIR="${ROOT}/miniforge3"
6
+ ENV_PREFIX="${MINIFORGE_DIR}/envs/rlbench"
7
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
+
9
+ echo "[1/6] optional system packages"
10
+ echo "Install these on Ubuntu 22.04 if they are missing:"
11
+ echo " sudo apt-get update"
12
+ echo " sudo apt-get install -y git wget curl xvfb git-lfs libgl1 libglib2.0-0 libsm6 libxext6 libxrender1 libxrandr2 libxi6 libxcursor1 libxinerama1 libxxf86vm1 libfontconfig1 libfreetype6"
13
+
14
+ echo "[2/6] install Miniforge if needed"
15
+ if [[ ! -x "${MINIFORGE_DIR}/bin/conda" ]]; then
16
+ wget -O "${ROOT}/Miniforge3-Linux-x86_64.sh" \
17
+ "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh"
18
+ bash "${ROOT}/Miniforge3-Linux-x86_64.sh" -b -p "${MINIFORGE_DIR}"
19
+ fi
20
+
21
+ source "${MINIFORGE_DIR}/etc/profile.d/conda.sh"
22
+
23
+ echo "[3/6] create or update rlbench environment"
24
+ if [[ ! -d "${ENV_PREFIX}" ]]; then
25
+ conda env create -p "${ENV_PREFIX}" -f "${SCRIPT_DIR}/conda_env_rlbench.yml"
26
+ else
27
+ conda env update -p "${ENV_PREFIX}" -f "${SCRIPT_DIR}/conda_env_rlbench.yml" --prune
28
+ fi
29
+ conda activate "${ENV_PREFIX}"
30
+
31
+ echo "[4/6] clone exact upstream repos"
32
+ mkdir -p "${ROOT}"
33
+ if [[ ! -d "${ROOT}/rlbench/.git" ]]; then
34
+ git clone https://github.com/markusgrotz/RLBench.git "${ROOT}/rlbench"
35
+ fi
36
+ if [[ ! -d "${ROOT}/pyrep/.git" ]]; then
37
+ git clone https://github.com/markusgrotz/PyRep.git "${ROOT}/pyrep"
38
+ fi
39
+ if [[ ! -d "${ROOT}/peract_bimanual/.git" ]]; then
40
+ git clone https://github.com/markusgrotz/peract_bimanual.git "${ROOT}/peract_bimanual"
41
+ fi
42
+ if [[ ! -d "${ROOT}/yarr/.git" ]]; then
43
+ git clone https://github.com/markusgrotz/YARR.git "${ROOT}/yarr"
44
+ fi
45
+
46
+ git -C "${ROOT}/rlbench" checkout 8af748c51287989294e00c9c670e3330a0e35ed5
47
+ git -C "${ROOT}/pyrep" checkout b8bd1d7a3182adcd570d001649c0849047ebf197
48
+ git -C "${ROOT}/peract_bimanual" checkout bb0232a6ba3fe116566e9568f0c7af980ed6703d
49
+ git -C "${ROOT}/yarr" checkout 6822ff78602c77878b27d4cfe759ce029c67bffb
50
+
51
+ echo "[5/6] install editable repos used by the rlbench env"
52
+ python -m pip install -e "${ROOT}/pyrep"
53
+ python -m pip install -e "${ROOT}/rlbench"
54
+
55
+ echo "[6/6] CoppeliaSim and dataset"
56
+ echo "Provide a CoppeliaSim extraction at ${ROOT}/coppelia_sim."
57
+ echo "Provide the benchmark dataset at ${ROOT}/data/bimanual_take_tray_out_of_oven_train_128."
58
+ echo "Then source: ${SCRIPT_DIR}/activate_rlbench_runtime.sh ${ROOT}"
environment/system_info.txt ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Machine profile captured on 2026-04-06 UTC
2
+ 96
3
+
4
+ total used free shared buff/cache available
5
+ Mem: 503Gi 67Gi 227Gi 3.5Gi 207Gi 427Gi
6
+ Swap: 0B 0B 0B
7
+
8
+ Linux cf69f4749f03 6.8.0-65-generic #68~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 15 18:06:34 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
9
+
10
+ Distributor ID: Ubuntu
11
+ Description: Ubuntu 22.04.5 LTS
12
+ Release: 22.04
13
+ Codename: jammy
14
+
15
+ Mon Apr 6 22:56:07 2026
16
+ +-----------------------------------------------------------------------------------------+
17
+ | NVIDIA-SMI 570.195.03 Driver Version: 570.195.03 CUDA Version: 12.8 |
18
+ |-----------------------------------------+------------------------+----------------------+
19
+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
20
+ | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
21
+ | | | MIG M. |
22
+ |=========================================+========================+======================|
23
+ | 0 NVIDIA A40 On | 00000000:53:00.0 Off | 0 |
24
+ | 0% 33C P8 32W / 300W | 0MiB / 46068MiB | 0% Default |
25
+ | | | N/A |
26
+ +-----------------------------------------+------------------------+----------------------+
27
+
28
+ +-----------------------------------------------------------------------------------------+
29
+ | Processes: |
30
+ | GPU GI CI PID Type Process name GPU Memory |
31
+ | ID ID Usage |
32
+ |=========================================================================================|
33
+ | No running processes found |
34
+ +-----------------------------------------------------------------------------------------+