Add files using upload-large-folder tool
Browse files- MANIFEST.txt +114 -0
- README.md +154 -0
- artifacts/results/oven_episode0_full/episode0.dense.csv +330 -0
- artifacts/results/oven_episode0_full/episode0.keyframes.csv +15 -0
- artifacts/results/oven_episode0_full/episode0.metrics.json +47 -0
- artifacts/results/oven_episode0_full/summary.json +94 -0
- artifacts/results/oven_episode0_full/templates.json +71 -0
- artifacts/results/oven_episode0_full_v2/templates.json +72 -0
- artifacts/results/oven_episode0_full_v3/episode0.dense.csv +330 -0
- artifacts/results/oven_episode0_full_v3/episode0.keyframes.csv +15 -0
- artifacts/results/oven_episode0_full_v3/episode0.metrics.json +47 -0
- artifacts/results/oven_episode0_full_v3/summary.json +94 -0
- artifacts/results/oven_episode0_full_v3/templates.json +108 -0
- artifacts/results/oven_episode0_full_v4/episode0.dense.csv +330 -0
- artifacts/results/oven_episode0_full_v4/episode0.keyframes.csv +15 -0
- artifacts/results/oven_episode0_full_v4/episode0.metrics.json +47 -0
- artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0247.json +1 -0
- artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0249.json +1 -0
- artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0253.json +1 -0
- artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0254.json +1 -0
- artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0255.json +1 -0
- artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0258.json +1 -0
- artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0263.json +1 -0
- artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0278.json +1 -0
- artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0283.json +1 -0
- artifacts/results/oven_episode0_repaired_v1/repaired_frames/frame_0294.json +1 -0
- artifacts/results/parallel_smoke_2x10/parallel_summary.json +94 -0
- artifacts/results/parallel_smoke_2x10/parallel_workers.json +16 -0
- artifacts/results/parallel_smoke_2x10/worker_00/episode0.keyframes.csv +1 -0
- artifacts/results/parallel_smoke_2x10/worker_00/templates.json +72 -0
- artifacts/results/parallel_smoke_2x10/worker_00/xvfb.log +0 -0
- artifacts/results/parallel_smoke_2x10/worker_01/episode1.dense.csv +11 -0
- artifacts/results/parallel_smoke_2x10/worker_01/episode1.metrics.json +47 -0
- artifacts/results/parallel_smoke_2x10/worker_01/summary.json +94 -0
- artifacts/results/parallel_smoke_2x10/worker_01/templates.json +72 -0
- artifacts/results/parallel_smoke_2x10/worker_01/worker.log +102 -0
- artifacts/results/parallel_smoke_2x10/worker_01/xvfb.log +0 -0
- code/rr_label_study/__init__.py +3 -0
- code/rr_label_study/oven_study.py +1222 -0
- code/scripts/launch_parallel_oven_label_study.py +223 -0
- code/scripts/repair_oven_episode_dense.py +375 -0
- code/scripts/run_oven_label_study.py +13 -0
- code/scripts/run_oven_single_frame.py +43 -0
- environment/activate_rlbench_runtime.sh +26 -0
- environment/conda_env_rlbench.yml +202 -0
- environment/dataset_notes.txt +17 -0
- environment/pip_freeze_rlbench.txt +64 -0
- environment/repo_revisions.txt +21 -0
- environment/setup_same_hardware.sh +58 -0
- 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 |
+
+-----------------------------------------------------------------------------------------+
|