Add files using upload-large-folder tool
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/artifact_hashes.json +15 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/bank_provenance.json +127 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/build_bank.py +27 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/controller.py +117 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/demo_manifest.json +2168 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/environment.lock +249 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/findings.md +14 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/freeze_manifest.json +122 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/handoff.md +13 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/model_tool_manifest.yaml +104 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/policy_runner.py +25 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/skills.md +9 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/synthetic_check_results.json +17 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/synthetic_checks.py +46 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/worker_api.py +81 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmMahjongSetup-v1/frozen/demonstrations_readonly/demo_04.h5 +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmMahjongSetup-v1/frozen/demonstrations_readonly/demo_08.h5 +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_01.h5 +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_02.h5 +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_05.h5 +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_06.h5 +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_07.h5 +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_11.h5 +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_14.h5 +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_15.h5 +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_16.h5 +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_18.h5 +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/exemplars.npz +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/geometry.npz +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/object_geometry.npz +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/pose_maps.npz +3 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/__pycache__/build_bank.cpython-310.pyc +0 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/__pycache__/controller.cpython-310.pyc +0 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/__pycache__/synthetic_checks.cpython-310.pyc +0 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/build_bank.py +21 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/controller.py +108 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/demo_manifest.json +2168 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/environment.lock +249 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/findings.md +18 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/freeze_manifest.json +174 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/handoff.md +7 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/model_tool_manifest.yaml +80 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/policy_runner.py +25 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/skills.md +7 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/synthetic_checks.py +26 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/worker_api.py +81 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmPouringTwoCups-v1/frozen/build_bank.py +28 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmPouringTwoCups-v1/frozen/config.json +157 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmPouringTwoCups-v1/frozen/controller.py +146 -0
- agent_d20_e20/frozen_20261102/tasks/DualArmPouringTwoCups-v1/frozen/demo_analysis.md +65 -0
agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/artifact_hashes.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"/task_contract.json": "6f6a43c9bd0c58e4401b9d76e328acc1b7715e5e3765470016c8bd263a588bd6",
|
| 3 |
+
"/demo_manifest.json": "54f9f171b26a3e8952df28e02e6e08192206b38b2f1e550c2e54c47fea4ca1eb",
|
| 4 |
+
"/worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e",
|
| 5 |
+
"/workspace/candidate/synthetic_checks.py": "a872ea56b1cf8c6bd1a6242c8c51b9a0868e2bb77e8ca305224dfd31b31741fc",
|
| 6 |
+
"/workspace/candidate/findings.md": "15518b532bcdbe49b7516b97fbf164d178f6b4782772e043441b9ac47b22a420",
|
| 7 |
+
"/workspace/candidate/handoff.md": "16efc672303e44ddaf41896a9bb19450a34418cf5147e5d33a3f132e5d79f81a",
|
| 8 |
+
"/workspace/candidate/reference_bank.npz": "229463850426e2d1d4d6022c2420cef2b3be14bc12389171c87958fe70ae8cb5",
|
| 9 |
+
"/workspace/candidate/bank_provenance.json": "89c9cfe9d87c6fe74991af56e3a213d0c619585dd983bc334b29e3b748a28154",
|
| 10 |
+
"/workspace/candidate/build_bank.py": "b07e3d43646e09064fad9e7f4b0a5b91c4a556a4950ad3469b8d6370a92f1ab1",
|
| 11 |
+
"/workspace/candidate/controller.py": "b5e049e3e1182e3c2c1d4b19fc9b0a5fca51b6df8a4a8e73ce853fb2df9e1efa",
|
| 12 |
+
"/workspace/candidate/model_tool_manifest.yaml": "05aafa50ca731142fb8dcc9e54f428d2c776ac3c5fabaf17c6f99ac5420f3d60",
|
| 13 |
+
"/workspace/candidate/skills.md": "d569f3a232ca60c195b0041e16ef10c07dbff0c1d6f37f3e4bb2f8762a857739",
|
| 14 |
+
"/workspace/candidate/synthetic_check_results.json": "ef827300a1a2ec2d5931847e3ed1c9e2f0401e50586b02619f7ca3d3493b9150"
|
| 15 |
+
}
|
agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/bank_provenance.json
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"method": "deterministic observation/action table, stride 2, labels clipped to contract bounds",
|
| 3 |
+
"episodes": [
|
| 4 |
+
{
|
| 5 |
+
"demo_id": "demo_00",
|
| 6 |
+
"numeric_frames": "actions 0..576; proprioception 0..577",
|
| 7 |
+
"rgb_read": "front_camera, top_camera: 0..576",
|
| 8 |
+
"rgb_features": "every even index from 0 through 576"
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"demo_id": "demo_01",
|
| 12 |
+
"numeric_frames": "actions 0..556; proprioception 0..557",
|
| 13 |
+
"rgb_read": "front_camera, top_camera: 0..556",
|
| 14 |
+
"rgb_features": "every even index from 0 through 556"
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"demo_id": "demo_02",
|
| 18 |
+
"numeric_frames": "actions 0..591; proprioception 0..592",
|
| 19 |
+
"rgb_read": "front_camera, top_camera: 0..591",
|
| 20 |
+
"rgb_features": "every even index from 0 through 590"
|
| 21 |
+
},
|
| 22 |
+
{
|
| 23 |
+
"demo_id": "demo_03",
|
| 24 |
+
"numeric_frames": "actions 0..593; proprioception 0..594",
|
| 25 |
+
"rgb_read": "front_camera, top_camera: 0..593",
|
| 26 |
+
"rgb_features": "every even index from 0 through 592"
|
| 27 |
+
},
|
| 28 |
+
{
|
| 29 |
+
"demo_id": "demo_04",
|
| 30 |
+
"numeric_frames": "actions 0..573; proprioception 0..574",
|
| 31 |
+
"rgb_read": "front_camera, top_camera: 0..573",
|
| 32 |
+
"rgb_features": "every even index from 0 through 572"
|
| 33 |
+
},
|
| 34 |
+
{
|
| 35 |
+
"demo_id": "demo_05",
|
| 36 |
+
"numeric_frames": "actions 0..551; proprioception 0..552",
|
| 37 |
+
"rgb_read": "front_camera, top_camera: 0..551",
|
| 38 |
+
"rgb_features": "every even index from 0 through 550"
|
| 39 |
+
},
|
| 40 |
+
{
|
| 41 |
+
"demo_id": "demo_06",
|
| 42 |
+
"numeric_frames": "actions 0..573; proprioception 0..574",
|
| 43 |
+
"rgb_read": "front_camera, top_camera: 0..573",
|
| 44 |
+
"rgb_features": "every even index from 0 through 572"
|
| 45 |
+
},
|
| 46 |
+
{
|
| 47 |
+
"demo_id": "demo_07",
|
| 48 |
+
"numeric_frames": "actions 0..576; proprioception 0..577",
|
| 49 |
+
"rgb_read": "front_camera, top_camera: 0..576",
|
| 50 |
+
"rgb_features": "every even index from 0 through 576"
|
| 51 |
+
},
|
| 52 |
+
{
|
| 53 |
+
"demo_id": "demo_08",
|
| 54 |
+
"numeric_frames": "actions 0..579; proprioception 0..580",
|
| 55 |
+
"rgb_read": "front_camera, top_camera: 0..579",
|
| 56 |
+
"rgb_features": "every even index from 0 through 578"
|
| 57 |
+
},
|
| 58 |
+
{
|
| 59 |
+
"demo_id": "demo_09",
|
| 60 |
+
"numeric_frames": "actions 0..559; proprioception 0..560",
|
| 61 |
+
"rgb_read": "front_camera, top_camera: 0..559",
|
| 62 |
+
"rgb_features": "every even index from 0 through 558"
|
| 63 |
+
},
|
| 64 |
+
{
|
| 65 |
+
"demo_id": "demo_10",
|
| 66 |
+
"numeric_frames": "actions 0..553; proprioception 0..554",
|
| 67 |
+
"rgb_read": "front_camera, top_camera: 0..553",
|
| 68 |
+
"rgb_features": "every even index from 0 through 552"
|
| 69 |
+
},
|
| 70 |
+
{
|
| 71 |
+
"demo_id": "demo_11",
|
| 72 |
+
"numeric_frames": "actions 0..598; proprioception 0..599",
|
| 73 |
+
"rgb_read": "front_camera, top_camera: 0..598",
|
| 74 |
+
"rgb_features": "every even index from 0 through 598"
|
| 75 |
+
},
|
| 76 |
+
{
|
| 77 |
+
"demo_id": "demo_12",
|
| 78 |
+
"numeric_frames": "actions 0..599; proprioception 0..600",
|
| 79 |
+
"rgb_read": "front_camera, top_camera: 0..599",
|
| 80 |
+
"rgb_features": "every even index from 0 through 598"
|
| 81 |
+
},
|
| 82 |
+
{
|
| 83 |
+
"demo_id": "demo_13",
|
| 84 |
+
"numeric_frames": "actions 0..595; proprioception 0..596",
|
| 85 |
+
"rgb_read": "front_camera, top_camera: 0..595",
|
| 86 |
+
"rgb_features": "every even index from 0 through 594"
|
| 87 |
+
},
|
| 88 |
+
{
|
| 89 |
+
"demo_id": "demo_14",
|
| 90 |
+
"numeric_frames": "actions 0..555; proprioception 0..556",
|
| 91 |
+
"rgb_read": "front_camera, top_camera: 0..555",
|
| 92 |
+
"rgb_features": "every even index from 0 through 554"
|
| 93 |
+
},
|
| 94 |
+
{
|
| 95 |
+
"demo_id": "demo_15",
|
| 96 |
+
"numeric_frames": "actions 0..556; proprioception 0..557",
|
| 97 |
+
"rgb_read": "front_camera, top_camera: 0..556",
|
| 98 |
+
"rgb_features": "every even index from 0 through 556"
|
| 99 |
+
},
|
| 100 |
+
{
|
| 101 |
+
"demo_id": "demo_16",
|
| 102 |
+
"numeric_frames": "actions 0..553; proprioception 0..554",
|
| 103 |
+
"rgb_read": "front_camera, top_camera: 0..553",
|
| 104 |
+
"rgb_features": "every even index from 0 through 552"
|
| 105 |
+
},
|
| 106 |
+
{
|
| 107 |
+
"demo_id": "demo_17",
|
| 108 |
+
"numeric_frames": "actions 0..554; proprioception 0..555",
|
| 109 |
+
"rgb_read": "front_camera, top_camera: 0..554",
|
| 110 |
+
"rgb_features": "every even index from 0 through 554"
|
| 111 |
+
},
|
| 112 |
+
{
|
| 113 |
+
"demo_id": "demo_18",
|
| 114 |
+
"numeric_frames": "actions 0..573; proprioception 0..574",
|
| 115 |
+
"rgb_read": "front_camera, top_camera: 0..573",
|
| 116 |
+
"rgb_features": "every even index from 0 through 572"
|
| 117 |
+
},
|
| 118 |
+
{
|
| 119 |
+
"demo_id": "demo_19",
|
| 120 |
+
"numeric_frames": "actions 0..571; proprioception 0..572",
|
| 121 |
+
"rgb_read": "front_camera, top_camera: 0..571",
|
| 122 |
+
"rgb_features": "every even index from 0 through 570"
|
| 123 |
+
}
|
| 124 |
+
],
|
| 125 |
+
"source_manifest_sha256": "54f9f171b26a3e8952df28e02e6e08192206b38b2f1e550c2e54c47fea4ca1eb",
|
| 126 |
+
"rows": 5730
|
| 127 |
+
}
|
agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/build_bank.py
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Offline compilation of authorized observations and labels; no neural training."""
|
| 2 |
+
import importlib.util,json,hashlib
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
import numpy as np
|
| 5 |
+
from controller import visual_features, KEYS, CAMERAS
|
| 6 |
+
spec=importlib.util.spec_from_file_location('worker_api','/worker_api.py')
|
| 7 |
+
m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m);api=m.API()
|
| 8 |
+
manifest=json.load(open('/demo_manifest.json'))
|
| 9 |
+
assert len(manifest['episodes'])==20
|
| 10 |
+
out={k:[] for k in ['qpos','qvel','visual','actions','phase','demo_index','frame']}
|
| 11 |
+
access=[]
|
| 12 |
+
for di,e in enumerate(manifest['episodes']):
|
| 13 |
+
n=e['length']; fields=['actions/'+k for k in KEYS]+['obs/agent/'+k+'/'+v for v in ('qpos','qvel') for k in KEYS]
|
| 14 |
+
d=api.read_demo(e['demo_id'],fields=fields)
|
| 15 |
+
for start in range(0,n,32):
|
| 16 |
+
stop=min(n,start+32)
|
| 17 |
+
rgb=api.read_demo(e['demo_id'],start,stop,['obs/sensor_data/'+c+'/rgb' for c in CAMERAS])
|
| 18 |
+
for t in range(start,stop,2):
|
| 19 |
+
for kind in ('qpos','qvel'):out[kind].append(np.concatenate([d['obs/agent/'+k+'/'+kind][t] for k in KEYS]))
|
| 20 |
+
out['visual'].append(visual_features({c:rgb['obs/sensor_data/'+c+'/rgb'][t-start] for c in CAMERAS}).astype(np.float16))
|
| 21 |
+
out['actions'].append(np.clip(np.concatenate([d['actions/'+k][t] for k in KEYS]),-1,1))
|
| 22 |
+
out['phase'].append(t/n);out['demo_index'].append(di);out['frame'].append(t)
|
| 23 |
+
access.append({'demo_id':e['demo_id'],'numeric_frames':f'actions 0..{n-1}; proprioception 0..{n}', 'rgb_read':f'front_camera, top_camera: 0..{n-1}', 'rgb_features':f'every even index from 0 through {2*((n-1)//2)}'})
|
| 24 |
+
print(e['demo_id'],flush=True)
|
| 25 |
+
root=Path(__file__).parent
|
| 26 |
+
np.savez_compressed(root/'reference_bank.npz',**{k:np.asarray(v,dtype=(np.int32 if k in ('demo_index','frame') else np.float16 if k=='visual' else np.float32)) for k,v in out.items()})
|
| 27 |
+
(root/'bank_provenance.json').write_text(json.dumps({'method':'deterministic observation/action table, stride 2, labels clipped to contract bounds','episodes':access,'source_manifest_sha256':hashlib.sha256(Path('/demo_manifest.json').read_bytes()).hexdigest(),'rows':len(out['phase'])},indent=2))
|
agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/controller.py
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Unrehearsed D20 draft: observation-conditioned nonparametric action retrieval.
|
| 2 |
+
No environment, kinematics, hidden state, neural model, or online weight updates.
|
| 3 |
+
"""
|
| 4 |
+
from pathlib import Path
|
| 5 |
+
import numpy as np
|
| 6 |
+
import cv2
|
| 7 |
+
|
| 8 |
+
KEYS = ('panda_leaphand-1', 'panda_leaphand_left-0')
|
| 9 |
+
CAMERAS = ('front_camera', 'top_camera')
|
| 10 |
+
_BANK = None
|
| 11 |
+
_phase = None
|
| 12 |
+
_last_step = 0
|
| 13 |
+
_last_action = None
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
def visual_features(rgb):
|
| 17 |
+
result = []
|
| 18 |
+
for camera in CAMERAS:
|
| 19 |
+
im = np.asarray(rgb[camera])
|
| 20 |
+
if im.ndim == 4 and im.shape[0] == 1:
|
| 21 |
+
im = im[0]
|
| 22 |
+
if im.ndim != 3 or im.shape[2] != 3 or im.dtype != np.uint8:
|
| 23 |
+
raise ValueError('RGB must be uint8 HWC or 1HWC')
|
| 24 |
+
# Fixed fractional crop includes the tabletop, dish, hands and clay.
|
| 25 |
+
h, w = im.shape[:2]
|
| 26 |
+
im = im[int(.25*h):int(.94*h), int(.12*w):int(.91*w)]
|
| 27 |
+
small = cv2.resize(im, (24, 24), interpolation=cv2.INTER_AREA)
|
| 28 |
+
hsv = cv2.cvtColor(im, cv2.COLOR_RGB2HSV)
|
| 29 |
+
# Color-independent clay occupancy; avoids treating a color as an arm ID.
|
| 30 |
+
mask = ((hsv[..., 1] > 120) & (hsv[..., 2] > 45)).astype(np.float32)
|
| 31 |
+
mask = cv2.resize(mask, (24, 24), interpolation=cv2.INTER_AREA)
|
| 32 |
+
result.append(np.r_[small.reshape(-1).astype(np.float32)/255., mask.reshape(-1)])
|
| 33 |
+
return np.stack(result)
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
def proprio_features(proprio):
|
| 37 |
+
values = []
|
| 38 |
+
for kind in ('qpos', 'qvel'):
|
| 39 |
+
parts = []
|
| 40 |
+
for key in KEYS:
|
| 41 |
+
v = np.asarray(proprio['agent/'+key+'/'+kind], dtype=np.float32).reshape(-1)
|
| 42 |
+
if v.size != 23 or not np.isfinite(v).all():
|
| 43 |
+
raise ValueError('Expected 23 finite joint values per robot')
|
| 44 |
+
parts.append(v)
|
| 45 |
+
values.append(np.concatenate(parts))
|
| 46 |
+
return values
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
def _bank():
|
| 50 |
+
global _BANK
|
| 51 |
+
if _BANK is None:
|
| 52 |
+
with np.load(Path(__file__).with_name('reference_bank.npz'), allow_pickle=False) as f:
|
| 53 |
+
_BANK = {k: f[k] for k in f.files}
|
| 54 |
+
return _BANK
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
def reset_episode():
|
| 58 |
+
global _phase, _last_step, _last_action
|
| 59 |
+
_phase, _last_step, _last_action = None, 0, None
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
def act(obs):
|
| 63 |
+
global _phase, _last_step, _last_action
|
| 64 |
+
step = int(obs['step_id'])
|
| 65 |
+
# Runner already owns the charged hold. At most 599 subsequent native actions.
|
| 66 |
+
if step >= 600:
|
| 67 |
+
return None
|
| 68 |
+
if step < 1:
|
| 69 |
+
raise ValueError('step_id starts at 1 after the runner hold')
|
| 70 |
+
if step < _last_step:
|
| 71 |
+
reset_episode()
|
| 72 |
+
if step == _last_step and _last_action is not None:
|
| 73 |
+
return _last_action.copy()
|
| 74 |
+
try:
|
| 75 |
+
q, v = proprio_features(obs['proprioception'])
|
| 76 |
+
visual = visual_features(obs['rgb'])
|
| 77 |
+
except (KeyError, ValueError, TypeError):
|
| 78 |
+
# Missing/invalid observations cannot establish safe task progression.
|
| 79 |
+
return None
|
| 80 |
+
b = _bank()
|
| 81 |
+
p = b['phase']
|
| 82 |
+
if _phase is None:
|
| 83 |
+
valid = p <= .12
|
| 84 |
+
else:
|
| 85 |
+
# Observation-selected progression, with bounded local recovery.
|
| 86 |
+
clock = (step-1)/575.
|
| 87 |
+
lower = max(0., _phase-.02, clock-.018)
|
| 88 |
+
upper = min(1., max(_phase+.04, clock+.025))
|
| 89 |
+
valid = (p >= lower) & (p <= upper)
|
| 90 |
+
ix = np.flatnonzero(valid)
|
| 91 |
+
scale = np.tile(np.r_[np.full(7,.18),np.full(16,.35)],2)
|
| 92 |
+
dq = (b['qpos'][ix]-q)/scale
|
| 93 |
+
joint_d = .7*np.mean(dq[:,np.r_[0:7,23:30]]**2,axis=1) + .3*np.mean(dq[:,np.r_[7:23,30:46]]**2,axis=1)
|
| 94 |
+
velocity_d = np.mean(((b['qvel'][ix]-v)/1.2)**2,axis=1)
|
| 95 |
+
# Proprioception narrows candidates; RGB then chooses scene-compatible states.
|
| 96 |
+
ix = ix[np.argsort(joint_d + .04*velocity_d)[:min(160,len(ix))]]
|
| 97 |
+
dq = (b['qpos'][ix]-q)/scale
|
| 98 |
+
joint_d = .7*np.mean(dq[:,np.r_[0:7,23:30]]**2,axis=1) + .3*np.mean(dq[:,np.r_[7:23,30:46]]**2,axis=1)
|
| 99 |
+
dv = b['visual'][ix].astype(np.float32)-visual
|
| 100 |
+
image_d = np.mean(dv[:,:,:1728]**2,axis=(1,2))/.08**2
|
| 101 |
+
clay_d = np.mean(dv[:,:,1728:]**2,axis=(1,2))/.10**2
|
| 102 |
+
cost = joint_d + .35*image_d + .35*clay_d + .04*np.mean(((b['qvel'][ix]-v)/1.2)**2,axis=1)
|
| 103 |
+
if _phase is not None:
|
| 104 |
+
cost += .05*((p[ix]-_phase)/.04)**2
|
| 105 |
+
best = int(np.argmin(cost))
|
| 106 |
+
# Never blend different phases (e.g., descend and retract).
|
| 107 |
+
compatible = np.flatnonzero(np.abs(p[ix]-p[ix[best]])<.012)
|
| 108 |
+
chosen = compatible[np.argsort(cost[compatible])[:5]]
|
| 109 |
+
weight = np.exp(-(cost[chosen]-cost[chosen].min())/.10)
|
| 110 |
+
weight /= weight.sum()
|
| 111 |
+
action = weight @ b['actions'][ix[chosen]]
|
| 112 |
+
_phase = float(weight @ p[ix[chosen]])
|
| 113 |
+
action = np.clip(action, -1., 1.).astype(np.float32)
|
| 114 |
+
if action.shape != (44,) or not np.isfinite(action).all():
|
| 115 |
+
return None
|
| 116 |
+
_last_step, _last_action = step, action.copy()
|
| 117 |
+
return action
|
agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/demo_manifest.json
ADDED
|
@@ -0,0 +1,2168 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"task_id": "DualArmLayerClayInDish-v1",
|
| 3 |
+
"status": "released",
|
| 4 |
+
"selection_rule": "prefer existing pinned D20, otherwise numeric trajectory ID sort before reading data",
|
| 5 |
+
"lineage_status": "pinned_comparator",
|
| 6 |
+
"episodes": [
|
| 7 |
+
{
|
| 8 |
+
"demo_id": "demo_00",
|
| 9 |
+
"file": "demo_00.h5",
|
| 10 |
+
"length": 577,
|
| 11 |
+
"fields": [
|
| 12 |
+
{
|
| 13 |
+
"path": "actions/panda_leaphand-1",
|
| 14 |
+
"shape": [
|
| 15 |
+
577,
|
| 16 |
+
22
|
| 17 |
+
],
|
| 18 |
+
"dtype": "float32"
|
| 19 |
+
},
|
| 20 |
+
{
|
| 21 |
+
"path": "actions/panda_leaphand_left-0",
|
| 22 |
+
"shape": [
|
| 23 |
+
577,
|
| 24 |
+
22
|
| 25 |
+
],
|
| 26 |
+
"dtype": "float32"
|
| 27 |
+
},
|
| 28 |
+
{
|
| 29 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 30 |
+
"shape": [
|
| 31 |
+
578,
|
| 32 |
+
23
|
| 33 |
+
],
|
| 34 |
+
"dtype": "float32"
|
| 35 |
+
},
|
| 36 |
+
{
|
| 37 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 38 |
+
"shape": [
|
| 39 |
+
578,
|
| 40 |
+
23
|
| 41 |
+
],
|
| 42 |
+
"dtype": "float32"
|
| 43 |
+
},
|
| 44 |
+
{
|
| 45 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 46 |
+
"shape": [
|
| 47 |
+
578,
|
| 48 |
+
23
|
| 49 |
+
],
|
| 50 |
+
"dtype": "float32"
|
| 51 |
+
},
|
| 52 |
+
{
|
| 53 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 54 |
+
"shape": [
|
| 55 |
+
578,
|
| 56 |
+
23
|
| 57 |
+
],
|
| 58 |
+
"dtype": "float32"
|
| 59 |
+
},
|
| 60 |
+
{
|
| 61 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 62 |
+
"shape": [
|
| 63 |
+
578,
|
| 64 |
+
240,
|
| 65 |
+
320,
|
| 66 |
+
3
|
| 67 |
+
],
|
| 68 |
+
"dtype": "uint8"
|
| 69 |
+
},
|
| 70 |
+
{
|
| 71 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 72 |
+
"shape": [
|
| 73 |
+
578,
|
| 74 |
+
240,
|
| 75 |
+
320,
|
| 76 |
+
3
|
| 77 |
+
],
|
| 78 |
+
"dtype": "uint8"
|
| 79 |
+
},
|
| 80 |
+
{
|
| 81 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 82 |
+
"shape": [
|
| 83 |
+
578,
|
| 84 |
+
240,
|
| 85 |
+
320,
|
| 86 |
+
3
|
| 87 |
+
],
|
| 88 |
+
"dtype": "uint8"
|
| 89 |
+
},
|
| 90 |
+
{
|
| 91 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 92 |
+
"shape": [
|
| 93 |
+
578,
|
| 94 |
+
240,
|
| 95 |
+
320,
|
| 96 |
+
3
|
| 97 |
+
],
|
| 98 |
+
"dtype": "uint8"
|
| 99 |
+
},
|
| 100 |
+
{
|
| 101 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 102 |
+
"shape": [
|
| 103 |
+
578,
|
| 104 |
+
320,
|
| 105 |
+
240,
|
| 106 |
+
3
|
| 107 |
+
],
|
| 108 |
+
"dtype": "uint8"
|
| 109 |
+
}
|
| 110 |
+
],
|
| 111 |
+
"trajectory_sha256": "6c19dd3ea220a35425c48501d180d55bae6956a361b1d096b0ff03024153c62b",
|
| 112 |
+
"source_sha256": "ce138e916dd6a46096c2f647a289a0045a49b181505e747f00d63c04fe60078e",
|
| 113 |
+
"view_sha256": "cc6904b79fa9d0ba2fd46f41fb6a57d4b71387ff4c8695aa9001bb88c5f397c0"
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"demo_id": "demo_01",
|
| 117 |
+
"file": "demo_01.h5",
|
| 118 |
+
"length": 557,
|
| 119 |
+
"fields": [
|
| 120 |
+
{
|
| 121 |
+
"path": "actions/panda_leaphand-1",
|
| 122 |
+
"shape": [
|
| 123 |
+
557,
|
| 124 |
+
22
|
| 125 |
+
],
|
| 126 |
+
"dtype": "float32"
|
| 127 |
+
},
|
| 128 |
+
{
|
| 129 |
+
"path": "actions/panda_leaphand_left-0",
|
| 130 |
+
"shape": [
|
| 131 |
+
557,
|
| 132 |
+
22
|
| 133 |
+
],
|
| 134 |
+
"dtype": "float32"
|
| 135 |
+
},
|
| 136 |
+
{
|
| 137 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 138 |
+
"shape": [
|
| 139 |
+
558,
|
| 140 |
+
23
|
| 141 |
+
],
|
| 142 |
+
"dtype": "float32"
|
| 143 |
+
},
|
| 144 |
+
{
|
| 145 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 146 |
+
"shape": [
|
| 147 |
+
558,
|
| 148 |
+
23
|
| 149 |
+
],
|
| 150 |
+
"dtype": "float32"
|
| 151 |
+
},
|
| 152 |
+
{
|
| 153 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 154 |
+
"shape": [
|
| 155 |
+
558,
|
| 156 |
+
23
|
| 157 |
+
],
|
| 158 |
+
"dtype": "float32"
|
| 159 |
+
},
|
| 160 |
+
{
|
| 161 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 162 |
+
"shape": [
|
| 163 |
+
558,
|
| 164 |
+
23
|
| 165 |
+
],
|
| 166 |
+
"dtype": "float32"
|
| 167 |
+
},
|
| 168 |
+
{
|
| 169 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 170 |
+
"shape": [
|
| 171 |
+
558,
|
| 172 |
+
240,
|
| 173 |
+
320,
|
| 174 |
+
3
|
| 175 |
+
],
|
| 176 |
+
"dtype": "uint8"
|
| 177 |
+
},
|
| 178 |
+
{
|
| 179 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 180 |
+
"shape": [
|
| 181 |
+
558,
|
| 182 |
+
240,
|
| 183 |
+
320,
|
| 184 |
+
3
|
| 185 |
+
],
|
| 186 |
+
"dtype": "uint8"
|
| 187 |
+
},
|
| 188 |
+
{
|
| 189 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 190 |
+
"shape": [
|
| 191 |
+
558,
|
| 192 |
+
240,
|
| 193 |
+
320,
|
| 194 |
+
3
|
| 195 |
+
],
|
| 196 |
+
"dtype": "uint8"
|
| 197 |
+
},
|
| 198 |
+
{
|
| 199 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 200 |
+
"shape": [
|
| 201 |
+
558,
|
| 202 |
+
240,
|
| 203 |
+
320,
|
| 204 |
+
3
|
| 205 |
+
],
|
| 206 |
+
"dtype": "uint8"
|
| 207 |
+
},
|
| 208 |
+
{
|
| 209 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 210 |
+
"shape": [
|
| 211 |
+
558,
|
| 212 |
+
320,
|
| 213 |
+
240,
|
| 214 |
+
3
|
| 215 |
+
],
|
| 216 |
+
"dtype": "uint8"
|
| 217 |
+
}
|
| 218 |
+
],
|
| 219 |
+
"trajectory_sha256": "5739428704770f18beb674f9a98fbe906785c85eba774b18b6c6b37addb782ea",
|
| 220 |
+
"source_sha256": "80b3dd1baa02efd05b0d4f9c32c3b0c21c81293313edba86eec4ecf21153e699",
|
| 221 |
+
"view_sha256": "e2126a3381fdcca89ea013e5363d26e55d299e90b7666ff55add85ecbf9b935e"
|
| 222 |
+
},
|
| 223 |
+
{
|
| 224 |
+
"demo_id": "demo_02",
|
| 225 |
+
"file": "demo_02.h5",
|
| 226 |
+
"length": 592,
|
| 227 |
+
"fields": [
|
| 228 |
+
{
|
| 229 |
+
"path": "actions/panda_leaphand-1",
|
| 230 |
+
"shape": [
|
| 231 |
+
592,
|
| 232 |
+
22
|
| 233 |
+
],
|
| 234 |
+
"dtype": "float32"
|
| 235 |
+
},
|
| 236 |
+
{
|
| 237 |
+
"path": "actions/panda_leaphand_left-0",
|
| 238 |
+
"shape": [
|
| 239 |
+
592,
|
| 240 |
+
22
|
| 241 |
+
],
|
| 242 |
+
"dtype": "float32"
|
| 243 |
+
},
|
| 244 |
+
{
|
| 245 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 246 |
+
"shape": [
|
| 247 |
+
593,
|
| 248 |
+
23
|
| 249 |
+
],
|
| 250 |
+
"dtype": "float32"
|
| 251 |
+
},
|
| 252 |
+
{
|
| 253 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 254 |
+
"shape": [
|
| 255 |
+
593,
|
| 256 |
+
23
|
| 257 |
+
],
|
| 258 |
+
"dtype": "float32"
|
| 259 |
+
},
|
| 260 |
+
{
|
| 261 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 262 |
+
"shape": [
|
| 263 |
+
593,
|
| 264 |
+
23
|
| 265 |
+
],
|
| 266 |
+
"dtype": "float32"
|
| 267 |
+
},
|
| 268 |
+
{
|
| 269 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 270 |
+
"shape": [
|
| 271 |
+
593,
|
| 272 |
+
23
|
| 273 |
+
],
|
| 274 |
+
"dtype": "float32"
|
| 275 |
+
},
|
| 276 |
+
{
|
| 277 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 278 |
+
"shape": [
|
| 279 |
+
593,
|
| 280 |
+
240,
|
| 281 |
+
320,
|
| 282 |
+
3
|
| 283 |
+
],
|
| 284 |
+
"dtype": "uint8"
|
| 285 |
+
},
|
| 286 |
+
{
|
| 287 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 288 |
+
"shape": [
|
| 289 |
+
593,
|
| 290 |
+
240,
|
| 291 |
+
320,
|
| 292 |
+
3
|
| 293 |
+
],
|
| 294 |
+
"dtype": "uint8"
|
| 295 |
+
},
|
| 296 |
+
{
|
| 297 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 298 |
+
"shape": [
|
| 299 |
+
593,
|
| 300 |
+
240,
|
| 301 |
+
320,
|
| 302 |
+
3
|
| 303 |
+
],
|
| 304 |
+
"dtype": "uint8"
|
| 305 |
+
},
|
| 306 |
+
{
|
| 307 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 308 |
+
"shape": [
|
| 309 |
+
593,
|
| 310 |
+
240,
|
| 311 |
+
320,
|
| 312 |
+
3
|
| 313 |
+
],
|
| 314 |
+
"dtype": "uint8"
|
| 315 |
+
},
|
| 316 |
+
{
|
| 317 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 318 |
+
"shape": [
|
| 319 |
+
593,
|
| 320 |
+
320,
|
| 321 |
+
240,
|
| 322 |
+
3
|
| 323 |
+
],
|
| 324 |
+
"dtype": "uint8"
|
| 325 |
+
}
|
| 326 |
+
],
|
| 327 |
+
"trajectory_sha256": "885e6bde77b5c81f5b8bc47d9cfc0e6f8bf770c0e17756bd2cea049a33f09240",
|
| 328 |
+
"source_sha256": "935c0474ae505a94db7d6030bca62141a142c141a204441c831b8f37cb82405c",
|
| 329 |
+
"view_sha256": "2eedd380282f088b8bc6741d21aacd1eeced834e8440006fd2c7f3aa33ebf2e7"
|
| 330 |
+
},
|
| 331 |
+
{
|
| 332 |
+
"demo_id": "demo_03",
|
| 333 |
+
"file": "demo_03.h5",
|
| 334 |
+
"length": 594,
|
| 335 |
+
"fields": [
|
| 336 |
+
{
|
| 337 |
+
"path": "actions/panda_leaphand-1",
|
| 338 |
+
"shape": [
|
| 339 |
+
594,
|
| 340 |
+
22
|
| 341 |
+
],
|
| 342 |
+
"dtype": "float32"
|
| 343 |
+
},
|
| 344 |
+
{
|
| 345 |
+
"path": "actions/panda_leaphand_left-0",
|
| 346 |
+
"shape": [
|
| 347 |
+
594,
|
| 348 |
+
22
|
| 349 |
+
],
|
| 350 |
+
"dtype": "float32"
|
| 351 |
+
},
|
| 352 |
+
{
|
| 353 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 354 |
+
"shape": [
|
| 355 |
+
595,
|
| 356 |
+
23
|
| 357 |
+
],
|
| 358 |
+
"dtype": "float32"
|
| 359 |
+
},
|
| 360 |
+
{
|
| 361 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 362 |
+
"shape": [
|
| 363 |
+
595,
|
| 364 |
+
23
|
| 365 |
+
],
|
| 366 |
+
"dtype": "float32"
|
| 367 |
+
},
|
| 368 |
+
{
|
| 369 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 370 |
+
"shape": [
|
| 371 |
+
595,
|
| 372 |
+
23
|
| 373 |
+
],
|
| 374 |
+
"dtype": "float32"
|
| 375 |
+
},
|
| 376 |
+
{
|
| 377 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 378 |
+
"shape": [
|
| 379 |
+
595,
|
| 380 |
+
23
|
| 381 |
+
],
|
| 382 |
+
"dtype": "float32"
|
| 383 |
+
},
|
| 384 |
+
{
|
| 385 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 386 |
+
"shape": [
|
| 387 |
+
595,
|
| 388 |
+
240,
|
| 389 |
+
320,
|
| 390 |
+
3
|
| 391 |
+
],
|
| 392 |
+
"dtype": "uint8"
|
| 393 |
+
},
|
| 394 |
+
{
|
| 395 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 396 |
+
"shape": [
|
| 397 |
+
595,
|
| 398 |
+
240,
|
| 399 |
+
320,
|
| 400 |
+
3
|
| 401 |
+
],
|
| 402 |
+
"dtype": "uint8"
|
| 403 |
+
},
|
| 404 |
+
{
|
| 405 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 406 |
+
"shape": [
|
| 407 |
+
595,
|
| 408 |
+
240,
|
| 409 |
+
320,
|
| 410 |
+
3
|
| 411 |
+
],
|
| 412 |
+
"dtype": "uint8"
|
| 413 |
+
},
|
| 414 |
+
{
|
| 415 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 416 |
+
"shape": [
|
| 417 |
+
595,
|
| 418 |
+
240,
|
| 419 |
+
320,
|
| 420 |
+
3
|
| 421 |
+
],
|
| 422 |
+
"dtype": "uint8"
|
| 423 |
+
},
|
| 424 |
+
{
|
| 425 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 426 |
+
"shape": [
|
| 427 |
+
595,
|
| 428 |
+
320,
|
| 429 |
+
240,
|
| 430 |
+
3
|
| 431 |
+
],
|
| 432 |
+
"dtype": "uint8"
|
| 433 |
+
}
|
| 434 |
+
],
|
| 435 |
+
"trajectory_sha256": "e915b41cc1616d53868ce32efe58e572c0a256989eb849ec5c0263229f394c73",
|
| 436 |
+
"source_sha256": "9983a72bfaaa9574d6f99135c504a9d095681f0bd4a5e9d38f444222689e249a",
|
| 437 |
+
"view_sha256": "13bf7716cb6fea598cec85bccd5b1474dc6126eb751e9e18053a8c93c7c1a27a"
|
| 438 |
+
},
|
| 439 |
+
{
|
| 440 |
+
"demo_id": "demo_04",
|
| 441 |
+
"file": "demo_04.h5",
|
| 442 |
+
"length": 574,
|
| 443 |
+
"fields": [
|
| 444 |
+
{
|
| 445 |
+
"path": "actions/panda_leaphand-1",
|
| 446 |
+
"shape": [
|
| 447 |
+
574,
|
| 448 |
+
22
|
| 449 |
+
],
|
| 450 |
+
"dtype": "float32"
|
| 451 |
+
},
|
| 452 |
+
{
|
| 453 |
+
"path": "actions/panda_leaphand_left-0",
|
| 454 |
+
"shape": [
|
| 455 |
+
574,
|
| 456 |
+
22
|
| 457 |
+
],
|
| 458 |
+
"dtype": "float32"
|
| 459 |
+
},
|
| 460 |
+
{
|
| 461 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 462 |
+
"shape": [
|
| 463 |
+
575,
|
| 464 |
+
23
|
| 465 |
+
],
|
| 466 |
+
"dtype": "float32"
|
| 467 |
+
},
|
| 468 |
+
{
|
| 469 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 470 |
+
"shape": [
|
| 471 |
+
575,
|
| 472 |
+
23
|
| 473 |
+
],
|
| 474 |
+
"dtype": "float32"
|
| 475 |
+
},
|
| 476 |
+
{
|
| 477 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 478 |
+
"shape": [
|
| 479 |
+
575,
|
| 480 |
+
23
|
| 481 |
+
],
|
| 482 |
+
"dtype": "float32"
|
| 483 |
+
},
|
| 484 |
+
{
|
| 485 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 486 |
+
"shape": [
|
| 487 |
+
575,
|
| 488 |
+
23
|
| 489 |
+
],
|
| 490 |
+
"dtype": "float32"
|
| 491 |
+
},
|
| 492 |
+
{
|
| 493 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 494 |
+
"shape": [
|
| 495 |
+
575,
|
| 496 |
+
240,
|
| 497 |
+
320,
|
| 498 |
+
3
|
| 499 |
+
],
|
| 500 |
+
"dtype": "uint8"
|
| 501 |
+
},
|
| 502 |
+
{
|
| 503 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 504 |
+
"shape": [
|
| 505 |
+
575,
|
| 506 |
+
240,
|
| 507 |
+
320,
|
| 508 |
+
3
|
| 509 |
+
],
|
| 510 |
+
"dtype": "uint8"
|
| 511 |
+
},
|
| 512 |
+
{
|
| 513 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 514 |
+
"shape": [
|
| 515 |
+
575,
|
| 516 |
+
240,
|
| 517 |
+
320,
|
| 518 |
+
3
|
| 519 |
+
],
|
| 520 |
+
"dtype": "uint8"
|
| 521 |
+
},
|
| 522 |
+
{
|
| 523 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 524 |
+
"shape": [
|
| 525 |
+
575,
|
| 526 |
+
240,
|
| 527 |
+
320,
|
| 528 |
+
3
|
| 529 |
+
],
|
| 530 |
+
"dtype": "uint8"
|
| 531 |
+
},
|
| 532 |
+
{
|
| 533 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 534 |
+
"shape": [
|
| 535 |
+
575,
|
| 536 |
+
320,
|
| 537 |
+
240,
|
| 538 |
+
3
|
| 539 |
+
],
|
| 540 |
+
"dtype": "uint8"
|
| 541 |
+
}
|
| 542 |
+
],
|
| 543 |
+
"trajectory_sha256": "cf23bd8811457174e01ace6ac16664bf640c6c16a0dbafb7fa0f8aba8533f570",
|
| 544 |
+
"source_sha256": "aea5b5d9e9116f16d7aa92494a380c24805213cb3737a702bead92051d4ed673",
|
| 545 |
+
"view_sha256": "411ea28f7e947803caf8550195b5f45c7f15b666af6fe02310b62d62c6097efb"
|
| 546 |
+
},
|
| 547 |
+
{
|
| 548 |
+
"demo_id": "demo_05",
|
| 549 |
+
"file": "demo_05.h5",
|
| 550 |
+
"length": 552,
|
| 551 |
+
"fields": [
|
| 552 |
+
{
|
| 553 |
+
"path": "actions/panda_leaphand-1",
|
| 554 |
+
"shape": [
|
| 555 |
+
552,
|
| 556 |
+
22
|
| 557 |
+
],
|
| 558 |
+
"dtype": "float32"
|
| 559 |
+
},
|
| 560 |
+
{
|
| 561 |
+
"path": "actions/panda_leaphand_left-0",
|
| 562 |
+
"shape": [
|
| 563 |
+
552,
|
| 564 |
+
22
|
| 565 |
+
],
|
| 566 |
+
"dtype": "float32"
|
| 567 |
+
},
|
| 568 |
+
{
|
| 569 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 570 |
+
"shape": [
|
| 571 |
+
553,
|
| 572 |
+
23
|
| 573 |
+
],
|
| 574 |
+
"dtype": "float32"
|
| 575 |
+
},
|
| 576 |
+
{
|
| 577 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 578 |
+
"shape": [
|
| 579 |
+
553,
|
| 580 |
+
23
|
| 581 |
+
],
|
| 582 |
+
"dtype": "float32"
|
| 583 |
+
},
|
| 584 |
+
{
|
| 585 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 586 |
+
"shape": [
|
| 587 |
+
553,
|
| 588 |
+
23
|
| 589 |
+
],
|
| 590 |
+
"dtype": "float32"
|
| 591 |
+
},
|
| 592 |
+
{
|
| 593 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 594 |
+
"shape": [
|
| 595 |
+
553,
|
| 596 |
+
23
|
| 597 |
+
],
|
| 598 |
+
"dtype": "float32"
|
| 599 |
+
},
|
| 600 |
+
{
|
| 601 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 602 |
+
"shape": [
|
| 603 |
+
553,
|
| 604 |
+
240,
|
| 605 |
+
320,
|
| 606 |
+
3
|
| 607 |
+
],
|
| 608 |
+
"dtype": "uint8"
|
| 609 |
+
},
|
| 610 |
+
{
|
| 611 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 612 |
+
"shape": [
|
| 613 |
+
553,
|
| 614 |
+
240,
|
| 615 |
+
320,
|
| 616 |
+
3
|
| 617 |
+
],
|
| 618 |
+
"dtype": "uint8"
|
| 619 |
+
},
|
| 620 |
+
{
|
| 621 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 622 |
+
"shape": [
|
| 623 |
+
553,
|
| 624 |
+
240,
|
| 625 |
+
320,
|
| 626 |
+
3
|
| 627 |
+
],
|
| 628 |
+
"dtype": "uint8"
|
| 629 |
+
},
|
| 630 |
+
{
|
| 631 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 632 |
+
"shape": [
|
| 633 |
+
553,
|
| 634 |
+
240,
|
| 635 |
+
320,
|
| 636 |
+
3
|
| 637 |
+
],
|
| 638 |
+
"dtype": "uint8"
|
| 639 |
+
},
|
| 640 |
+
{
|
| 641 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 642 |
+
"shape": [
|
| 643 |
+
553,
|
| 644 |
+
320,
|
| 645 |
+
240,
|
| 646 |
+
3
|
| 647 |
+
],
|
| 648 |
+
"dtype": "uint8"
|
| 649 |
+
}
|
| 650 |
+
],
|
| 651 |
+
"trajectory_sha256": "2449f751a8c6f2c37e65d8b2a5598728536a2ab73f7a8582e2570e28f4b5bca3",
|
| 652 |
+
"source_sha256": "6fb42ddbd997d1ce5809501e511e54b64f079d78acf6fcfe34b8904a6b055fb6",
|
| 653 |
+
"view_sha256": "9eb591d5afa61a52919b666222bf8acffc760f98b813282486cb0cdf483b331f"
|
| 654 |
+
},
|
| 655 |
+
{
|
| 656 |
+
"demo_id": "demo_06",
|
| 657 |
+
"file": "demo_06.h5",
|
| 658 |
+
"length": 574,
|
| 659 |
+
"fields": [
|
| 660 |
+
{
|
| 661 |
+
"path": "actions/panda_leaphand-1",
|
| 662 |
+
"shape": [
|
| 663 |
+
574,
|
| 664 |
+
22
|
| 665 |
+
],
|
| 666 |
+
"dtype": "float32"
|
| 667 |
+
},
|
| 668 |
+
{
|
| 669 |
+
"path": "actions/panda_leaphand_left-0",
|
| 670 |
+
"shape": [
|
| 671 |
+
574,
|
| 672 |
+
22
|
| 673 |
+
],
|
| 674 |
+
"dtype": "float32"
|
| 675 |
+
},
|
| 676 |
+
{
|
| 677 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 678 |
+
"shape": [
|
| 679 |
+
575,
|
| 680 |
+
23
|
| 681 |
+
],
|
| 682 |
+
"dtype": "float32"
|
| 683 |
+
},
|
| 684 |
+
{
|
| 685 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 686 |
+
"shape": [
|
| 687 |
+
575,
|
| 688 |
+
23
|
| 689 |
+
],
|
| 690 |
+
"dtype": "float32"
|
| 691 |
+
},
|
| 692 |
+
{
|
| 693 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 694 |
+
"shape": [
|
| 695 |
+
575,
|
| 696 |
+
23
|
| 697 |
+
],
|
| 698 |
+
"dtype": "float32"
|
| 699 |
+
},
|
| 700 |
+
{
|
| 701 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 702 |
+
"shape": [
|
| 703 |
+
575,
|
| 704 |
+
23
|
| 705 |
+
],
|
| 706 |
+
"dtype": "float32"
|
| 707 |
+
},
|
| 708 |
+
{
|
| 709 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 710 |
+
"shape": [
|
| 711 |
+
575,
|
| 712 |
+
240,
|
| 713 |
+
320,
|
| 714 |
+
3
|
| 715 |
+
],
|
| 716 |
+
"dtype": "uint8"
|
| 717 |
+
},
|
| 718 |
+
{
|
| 719 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 720 |
+
"shape": [
|
| 721 |
+
575,
|
| 722 |
+
240,
|
| 723 |
+
320,
|
| 724 |
+
3
|
| 725 |
+
],
|
| 726 |
+
"dtype": "uint8"
|
| 727 |
+
},
|
| 728 |
+
{
|
| 729 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 730 |
+
"shape": [
|
| 731 |
+
575,
|
| 732 |
+
240,
|
| 733 |
+
320,
|
| 734 |
+
3
|
| 735 |
+
],
|
| 736 |
+
"dtype": "uint8"
|
| 737 |
+
},
|
| 738 |
+
{
|
| 739 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 740 |
+
"shape": [
|
| 741 |
+
575,
|
| 742 |
+
240,
|
| 743 |
+
320,
|
| 744 |
+
3
|
| 745 |
+
],
|
| 746 |
+
"dtype": "uint8"
|
| 747 |
+
},
|
| 748 |
+
{
|
| 749 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 750 |
+
"shape": [
|
| 751 |
+
575,
|
| 752 |
+
320,
|
| 753 |
+
240,
|
| 754 |
+
3
|
| 755 |
+
],
|
| 756 |
+
"dtype": "uint8"
|
| 757 |
+
}
|
| 758 |
+
],
|
| 759 |
+
"trajectory_sha256": "5c3b2209bced7724274258d26645ac35d65a2379733f785d8180169e39bb67aa",
|
| 760 |
+
"source_sha256": "5eb12a7200e0c67f188d427dffe32344a3cf7eefc45194b58e9f2e1612c73eef",
|
| 761 |
+
"view_sha256": "adc29edd50bb66a4bbccd83f3fd33707d83fa2960a15ff228d3f88e41e5c1b98"
|
| 762 |
+
},
|
| 763 |
+
{
|
| 764 |
+
"demo_id": "demo_07",
|
| 765 |
+
"file": "demo_07.h5",
|
| 766 |
+
"length": 577,
|
| 767 |
+
"fields": [
|
| 768 |
+
{
|
| 769 |
+
"path": "actions/panda_leaphand-1",
|
| 770 |
+
"shape": [
|
| 771 |
+
577,
|
| 772 |
+
22
|
| 773 |
+
],
|
| 774 |
+
"dtype": "float32"
|
| 775 |
+
},
|
| 776 |
+
{
|
| 777 |
+
"path": "actions/panda_leaphand_left-0",
|
| 778 |
+
"shape": [
|
| 779 |
+
577,
|
| 780 |
+
22
|
| 781 |
+
],
|
| 782 |
+
"dtype": "float32"
|
| 783 |
+
},
|
| 784 |
+
{
|
| 785 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 786 |
+
"shape": [
|
| 787 |
+
578,
|
| 788 |
+
23
|
| 789 |
+
],
|
| 790 |
+
"dtype": "float32"
|
| 791 |
+
},
|
| 792 |
+
{
|
| 793 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 794 |
+
"shape": [
|
| 795 |
+
578,
|
| 796 |
+
23
|
| 797 |
+
],
|
| 798 |
+
"dtype": "float32"
|
| 799 |
+
},
|
| 800 |
+
{
|
| 801 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 802 |
+
"shape": [
|
| 803 |
+
578,
|
| 804 |
+
23
|
| 805 |
+
],
|
| 806 |
+
"dtype": "float32"
|
| 807 |
+
},
|
| 808 |
+
{
|
| 809 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 810 |
+
"shape": [
|
| 811 |
+
578,
|
| 812 |
+
23
|
| 813 |
+
],
|
| 814 |
+
"dtype": "float32"
|
| 815 |
+
},
|
| 816 |
+
{
|
| 817 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 818 |
+
"shape": [
|
| 819 |
+
578,
|
| 820 |
+
240,
|
| 821 |
+
320,
|
| 822 |
+
3
|
| 823 |
+
],
|
| 824 |
+
"dtype": "uint8"
|
| 825 |
+
},
|
| 826 |
+
{
|
| 827 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 828 |
+
"shape": [
|
| 829 |
+
578,
|
| 830 |
+
240,
|
| 831 |
+
320,
|
| 832 |
+
3
|
| 833 |
+
],
|
| 834 |
+
"dtype": "uint8"
|
| 835 |
+
},
|
| 836 |
+
{
|
| 837 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 838 |
+
"shape": [
|
| 839 |
+
578,
|
| 840 |
+
240,
|
| 841 |
+
320,
|
| 842 |
+
3
|
| 843 |
+
],
|
| 844 |
+
"dtype": "uint8"
|
| 845 |
+
},
|
| 846 |
+
{
|
| 847 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 848 |
+
"shape": [
|
| 849 |
+
578,
|
| 850 |
+
240,
|
| 851 |
+
320,
|
| 852 |
+
3
|
| 853 |
+
],
|
| 854 |
+
"dtype": "uint8"
|
| 855 |
+
},
|
| 856 |
+
{
|
| 857 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 858 |
+
"shape": [
|
| 859 |
+
578,
|
| 860 |
+
320,
|
| 861 |
+
240,
|
| 862 |
+
3
|
| 863 |
+
],
|
| 864 |
+
"dtype": "uint8"
|
| 865 |
+
}
|
| 866 |
+
],
|
| 867 |
+
"trajectory_sha256": "e8a7b380dc86330b532b6ed0b0fe2b56e170fabd5e10984183475470203a3fbf",
|
| 868 |
+
"source_sha256": "eb98028ad8e2166c203b12429f340e2bfed92c46feed1614bf39a8b780cd3bf8",
|
| 869 |
+
"view_sha256": "f5b997d9c04b149efdc391327ce48ed77a3073b3f6c8ec493728f35fd8975d99"
|
| 870 |
+
},
|
| 871 |
+
{
|
| 872 |
+
"demo_id": "demo_08",
|
| 873 |
+
"file": "demo_08.h5",
|
| 874 |
+
"length": 580,
|
| 875 |
+
"fields": [
|
| 876 |
+
{
|
| 877 |
+
"path": "actions/panda_leaphand-1",
|
| 878 |
+
"shape": [
|
| 879 |
+
580,
|
| 880 |
+
22
|
| 881 |
+
],
|
| 882 |
+
"dtype": "float32"
|
| 883 |
+
},
|
| 884 |
+
{
|
| 885 |
+
"path": "actions/panda_leaphand_left-0",
|
| 886 |
+
"shape": [
|
| 887 |
+
580,
|
| 888 |
+
22
|
| 889 |
+
],
|
| 890 |
+
"dtype": "float32"
|
| 891 |
+
},
|
| 892 |
+
{
|
| 893 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 894 |
+
"shape": [
|
| 895 |
+
581,
|
| 896 |
+
23
|
| 897 |
+
],
|
| 898 |
+
"dtype": "float32"
|
| 899 |
+
},
|
| 900 |
+
{
|
| 901 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 902 |
+
"shape": [
|
| 903 |
+
581,
|
| 904 |
+
23
|
| 905 |
+
],
|
| 906 |
+
"dtype": "float32"
|
| 907 |
+
},
|
| 908 |
+
{
|
| 909 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 910 |
+
"shape": [
|
| 911 |
+
581,
|
| 912 |
+
23
|
| 913 |
+
],
|
| 914 |
+
"dtype": "float32"
|
| 915 |
+
},
|
| 916 |
+
{
|
| 917 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 918 |
+
"shape": [
|
| 919 |
+
581,
|
| 920 |
+
23
|
| 921 |
+
],
|
| 922 |
+
"dtype": "float32"
|
| 923 |
+
},
|
| 924 |
+
{
|
| 925 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 926 |
+
"shape": [
|
| 927 |
+
581,
|
| 928 |
+
240,
|
| 929 |
+
320,
|
| 930 |
+
3
|
| 931 |
+
],
|
| 932 |
+
"dtype": "uint8"
|
| 933 |
+
},
|
| 934 |
+
{
|
| 935 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 936 |
+
"shape": [
|
| 937 |
+
581,
|
| 938 |
+
240,
|
| 939 |
+
320,
|
| 940 |
+
3
|
| 941 |
+
],
|
| 942 |
+
"dtype": "uint8"
|
| 943 |
+
},
|
| 944 |
+
{
|
| 945 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 946 |
+
"shape": [
|
| 947 |
+
581,
|
| 948 |
+
240,
|
| 949 |
+
320,
|
| 950 |
+
3
|
| 951 |
+
],
|
| 952 |
+
"dtype": "uint8"
|
| 953 |
+
},
|
| 954 |
+
{
|
| 955 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 956 |
+
"shape": [
|
| 957 |
+
581,
|
| 958 |
+
240,
|
| 959 |
+
320,
|
| 960 |
+
3
|
| 961 |
+
],
|
| 962 |
+
"dtype": "uint8"
|
| 963 |
+
},
|
| 964 |
+
{
|
| 965 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 966 |
+
"shape": [
|
| 967 |
+
581,
|
| 968 |
+
320,
|
| 969 |
+
240,
|
| 970 |
+
3
|
| 971 |
+
],
|
| 972 |
+
"dtype": "uint8"
|
| 973 |
+
}
|
| 974 |
+
],
|
| 975 |
+
"trajectory_sha256": "8f19dff57c0d66da2859f776bdf1cf73289c072a6552051e983e97de12cdd03c",
|
| 976 |
+
"source_sha256": "e4c68f5c0c656ecb50de854c7ee1ccbea21a1a3f2202475d6bbd7e3de4c3da66",
|
| 977 |
+
"view_sha256": "82bce05f16b6a888df37a0d502d0146ec0e7faa5b8d381b9669b81ae00938e1b"
|
| 978 |
+
},
|
| 979 |
+
{
|
| 980 |
+
"demo_id": "demo_09",
|
| 981 |
+
"file": "demo_09.h5",
|
| 982 |
+
"length": 560,
|
| 983 |
+
"fields": [
|
| 984 |
+
{
|
| 985 |
+
"path": "actions/panda_leaphand-1",
|
| 986 |
+
"shape": [
|
| 987 |
+
560,
|
| 988 |
+
22
|
| 989 |
+
],
|
| 990 |
+
"dtype": "float32"
|
| 991 |
+
},
|
| 992 |
+
{
|
| 993 |
+
"path": "actions/panda_leaphand_left-0",
|
| 994 |
+
"shape": [
|
| 995 |
+
560,
|
| 996 |
+
22
|
| 997 |
+
],
|
| 998 |
+
"dtype": "float32"
|
| 999 |
+
},
|
| 1000 |
+
{
|
| 1001 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1002 |
+
"shape": [
|
| 1003 |
+
561,
|
| 1004 |
+
23
|
| 1005 |
+
],
|
| 1006 |
+
"dtype": "float32"
|
| 1007 |
+
},
|
| 1008 |
+
{
|
| 1009 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1010 |
+
"shape": [
|
| 1011 |
+
561,
|
| 1012 |
+
23
|
| 1013 |
+
],
|
| 1014 |
+
"dtype": "float32"
|
| 1015 |
+
},
|
| 1016 |
+
{
|
| 1017 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1018 |
+
"shape": [
|
| 1019 |
+
561,
|
| 1020 |
+
23
|
| 1021 |
+
],
|
| 1022 |
+
"dtype": "float32"
|
| 1023 |
+
},
|
| 1024 |
+
{
|
| 1025 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1026 |
+
"shape": [
|
| 1027 |
+
561,
|
| 1028 |
+
23
|
| 1029 |
+
],
|
| 1030 |
+
"dtype": "float32"
|
| 1031 |
+
},
|
| 1032 |
+
{
|
| 1033 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1034 |
+
"shape": [
|
| 1035 |
+
561,
|
| 1036 |
+
240,
|
| 1037 |
+
320,
|
| 1038 |
+
3
|
| 1039 |
+
],
|
| 1040 |
+
"dtype": "uint8"
|
| 1041 |
+
},
|
| 1042 |
+
{
|
| 1043 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1044 |
+
"shape": [
|
| 1045 |
+
561,
|
| 1046 |
+
240,
|
| 1047 |
+
320,
|
| 1048 |
+
3
|
| 1049 |
+
],
|
| 1050 |
+
"dtype": "uint8"
|
| 1051 |
+
},
|
| 1052 |
+
{
|
| 1053 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1054 |
+
"shape": [
|
| 1055 |
+
561,
|
| 1056 |
+
240,
|
| 1057 |
+
320,
|
| 1058 |
+
3
|
| 1059 |
+
],
|
| 1060 |
+
"dtype": "uint8"
|
| 1061 |
+
},
|
| 1062 |
+
{
|
| 1063 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1064 |
+
"shape": [
|
| 1065 |
+
561,
|
| 1066 |
+
240,
|
| 1067 |
+
320,
|
| 1068 |
+
3
|
| 1069 |
+
],
|
| 1070 |
+
"dtype": "uint8"
|
| 1071 |
+
},
|
| 1072 |
+
{
|
| 1073 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1074 |
+
"shape": [
|
| 1075 |
+
561,
|
| 1076 |
+
320,
|
| 1077 |
+
240,
|
| 1078 |
+
3
|
| 1079 |
+
],
|
| 1080 |
+
"dtype": "uint8"
|
| 1081 |
+
}
|
| 1082 |
+
],
|
| 1083 |
+
"trajectory_sha256": "8ff66d2dc86aab5590c58f198d68d2e01759a1da58f54941b1d500f823a0f086",
|
| 1084 |
+
"source_sha256": "a297bb9b4aa5bb4e658f8245aea3d104c03b4ffef14d8f0fe2f4a55ba9065ad0",
|
| 1085 |
+
"view_sha256": "43f6e8c1727a739c980cd5ba8d93eddf0ef3fcd5b93500eef2c016ae698318fc"
|
| 1086 |
+
},
|
| 1087 |
+
{
|
| 1088 |
+
"demo_id": "demo_10",
|
| 1089 |
+
"file": "demo_10.h5",
|
| 1090 |
+
"length": 554,
|
| 1091 |
+
"fields": [
|
| 1092 |
+
{
|
| 1093 |
+
"path": "actions/panda_leaphand-1",
|
| 1094 |
+
"shape": [
|
| 1095 |
+
554,
|
| 1096 |
+
22
|
| 1097 |
+
],
|
| 1098 |
+
"dtype": "float32"
|
| 1099 |
+
},
|
| 1100 |
+
{
|
| 1101 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1102 |
+
"shape": [
|
| 1103 |
+
554,
|
| 1104 |
+
22
|
| 1105 |
+
],
|
| 1106 |
+
"dtype": "float32"
|
| 1107 |
+
},
|
| 1108 |
+
{
|
| 1109 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1110 |
+
"shape": [
|
| 1111 |
+
555,
|
| 1112 |
+
23
|
| 1113 |
+
],
|
| 1114 |
+
"dtype": "float32"
|
| 1115 |
+
},
|
| 1116 |
+
{
|
| 1117 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1118 |
+
"shape": [
|
| 1119 |
+
555,
|
| 1120 |
+
23
|
| 1121 |
+
],
|
| 1122 |
+
"dtype": "float32"
|
| 1123 |
+
},
|
| 1124 |
+
{
|
| 1125 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1126 |
+
"shape": [
|
| 1127 |
+
555,
|
| 1128 |
+
23
|
| 1129 |
+
],
|
| 1130 |
+
"dtype": "float32"
|
| 1131 |
+
},
|
| 1132 |
+
{
|
| 1133 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1134 |
+
"shape": [
|
| 1135 |
+
555,
|
| 1136 |
+
23
|
| 1137 |
+
],
|
| 1138 |
+
"dtype": "float32"
|
| 1139 |
+
},
|
| 1140 |
+
{
|
| 1141 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1142 |
+
"shape": [
|
| 1143 |
+
555,
|
| 1144 |
+
240,
|
| 1145 |
+
320,
|
| 1146 |
+
3
|
| 1147 |
+
],
|
| 1148 |
+
"dtype": "uint8"
|
| 1149 |
+
},
|
| 1150 |
+
{
|
| 1151 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1152 |
+
"shape": [
|
| 1153 |
+
555,
|
| 1154 |
+
240,
|
| 1155 |
+
320,
|
| 1156 |
+
3
|
| 1157 |
+
],
|
| 1158 |
+
"dtype": "uint8"
|
| 1159 |
+
},
|
| 1160 |
+
{
|
| 1161 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1162 |
+
"shape": [
|
| 1163 |
+
555,
|
| 1164 |
+
240,
|
| 1165 |
+
320,
|
| 1166 |
+
3
|
| 1167 |
+
],
|
| 1168 |
+
"dtype": "uint8"
|
| 1169 |
+
},
|
| 1170 |
+
{
|
| 1171 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1172 |
+
"shape": [
|
| 1173 |
+
555,
|
| 1174 |
+
240,
|
| 1175 |
+
320,
|
| 1176 |
+
3
|
| 1177 |
+
],
|
| 1178 |
+
"dtype": "uint8"
|
| 1179 |
+
},
|
| 1180 |
+
{
|
| 1181 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1182 |
+
"shape": [
|
| 1183 |
+
555,
|
| 1184 |
+
320,
|
| 1185 |
+
240,
|
| 1186 |
+
3
|
| 1187 |
+
],
|
| 1188 |
+
"dtype": "uint8"
|
| 1189 |
+
}
|
| 1190 |
+
],
|
| 1191 |
+
"trajectory_sha256": "47e4fadc1943760a050fea332bdc555c54d413e7b2c22cc4af436d8f4bfcfdb8",
|
| 1192 |
+
"source_sha256": "f675a99354695ba4f516dbf5cb62e3fecb8ca4129898e17433b43bb265200ce0",
|
| 1193 |
+
"view_sha256": "7cb9721a9a88ccc935ea738e7b02d9153a8a373aa5a328a078110233c7841b95"
|
| 1194 |
+
},
|
| 1195 |
+
{
|
| 1196 |
+
"demo_id": "demo_11",
|
| 1197 |
+
"file": "demo_11.h5",
|
| 1198 |
+
"length": 599,
|
| 1199 |
+
"fields": [
|
| 1200 |
+
{
|
| 1201 |
+
"path": "actions/panda_leaphand-1",
|
| 1202 |
+
"shape": [
|
| 1203 |
+
599,
|
| 1204 |
+
22
|
| 1205 |
+
],
|
| 1206 |
+
"dtype": "float32"
|
| 1207 |
+
},
|
| 1208 |
+
{
|
| 1209 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1210 |
+
"shape": [
|
| 1211 |
+
599,
|
| 1212 |
+
22
|
| 1213 |
+
],
|
| 1214 |
+
"dtype": "float32"
|
| 1215 |
+
},
|
| 1216 |
+
{
|
| 1217 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1218 |
+
"shape": [
|
| 1219 |
+
600,
|
| 1220 |
+
23
|
| 1221 |
+
],
|
| 1222 |
+
"dtype": "float32"
|
| 1223 |
+
},
|
| 1224 |
+
{
|
| 1225 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1226 |
+
"shape": [
|
| 1227 |
+
600,
|
| 1228 |
+
23
|
| 1229 |
+
],
|
| 1230 |
+
"dtype": "float32"
|
| 1231 |
+
},
|
| 1232 |
+
{
|
| 1233 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1234 |
+
"shape": [
|
| 1235 |
+
600,
|
| 1236 |
+
23
|
| 1237 |
+
],
|
| 1238 |
+
"dtype": "float32"
|
| 1239 |
+
},
|
| 1240 |
+
{
|
| 1241 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1242 |
+
"shape": [
|
| 1243 |
+
600,
|
| 1244 |
+
23
|
| 1245 |
+
],
|
| 1246 |
+
"dtype": "float32"
|
| 1247 |
+
},
|
| 1248 |
+
{
|
| 1249 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1250 |
+
"shape": [
|
| 1251 |
+
600,
|
| 1252 |
+
240,
|
| 1253 |
+
320,
|
| 1254 |
+
3
|
| 1255 |
+
],
|
| 1256 |
+
"dtype": "uint8"
|
| 1257 |
+
},
|
| 1258 |
+
{
|
| 1259 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1260 |
+
"shape": [
|
| 1261 |
+
600,
|
| 1262 |
+
240,
|
| 1263 |
+
320,
|
| 1264 |
+
3
|
| 1265 |
+
],
|
| 1266 |
+
"dtype": "uint8"
|
| 1267 |
+
},
|
| 1268 |
+
{
|
| 1269 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1270 |
+
"shape": [
|
| 1271 |
+
600,
|
| 1272 |
+
240,
|
| 1273 |
+
320,
|
| 1274 |
+
3
|
| 1275 |
+
],
|
| 1276 |
+
"dtype": "uint8"
|
| 1277 |
+
},
|
| 1278 |
+
{
|
| 1279 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1280 |
+
"shape": [
|
| 1281 |
+
600,
|
| 1282 |
+
240,
|
| 1283 |
+
320,
|
| 1284 |
+
3
|
| 1285 |
+
],
|
| 1286 |
+
"dtype": "uint8"
|
| 1287 |
+
},
|
| 1288 |
+
{
|
| 1289 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1290 |
+
"shape": [
|
| 1291 |
+
600,
|
| 1292 |
+
320,
|
| 1293 |
+
240,
|
| 1294 |
+
3
|
| 1295 |
+
],
|
| 1296 |
+
"dtype": "uint8"
|
| 1297 |
+
}
|
| 1298 |
+
],
|
| 1299 |
+
"trajectory_sha256": "dd5a86f3a9ceb06901823410641f29a42860e991ca7b43b085944c6189f0dff5",
|
| 1300 |
+
"source_sha256": "47e13242b6854e667ced4d430bdef1f40b186c33d7f5787e2484c2eaacd1b82e",
|
| 1301 |
+
"view_sha256": "40df553d8c9ef3d2ef9453172d59480b9384f67258faebd2cdbb75078bd4f34b"
|
| 1302 |
+
},
|
| 1303 |
+
{
|
| 1304 |
+
"demo_id": "demo_12",
|
| 1305 |
+
"file": "demo_12.h5",
|
| 1306 |
+
"length": 600,
|
| 1307 |
+
"fields": [
|
| 1308 |
+
{
|
| 1309 |
+
"path": "actions/panda_leaphand-1",
|
| 1310 |
+
"shape": [
|
| 1311 |
+
600,
|
| 1312 |
+
22
|
| 1313 |
+
],
|
| 1314 |
+
"dtype": "float32"
|
| 1315 |
+
},
|
| 1316 |
+
{
|
| 1317 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1318 |
+
"shape": [
|
| 1319 |
+
600,
|
| 1320 |
+
22
|
| 1321 |
+
],
|
| 1322 |
+
"dtype": "float32"
|
| 1323 |
+
},
|
| 1324 |
+
{
|
| 1325 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1326 |
+
"shape": [
|
| 1327 |
+
601,
|
| 1328 |
+
23
|
| 1329 |
+
],
|
| 1330 |
+
"dtype": "float32"
|
| 1331 |
+
},
|
| 1332 |
+
{
|
| 1333 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1334 |
+
"shape": [
|
| 1335 |
+
601,
|
| 1336 |
+
23
|
| 1337 |
+
],
|
| 1338 |
+
"dtype": "float32"
|
| 1339 |
+
},
|
| 1340 |
+
{
|
| 1341 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1342 |
+
"shape": [
|
| 1343 |
+
601,
|
| 1344 |
+
23
|
| 1345 |
+
],
|
| 1346 |
+
"dtype": "float32"
|
| 1347 |
+
},
|
| 1348 |
+
{
|
| 1349 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1350 |
+
"shape": [
|
| 1351 |
+
601,
|
| 1352 |
+
23
|
| 1353 |
+
],
|
| 1354 |
+
"dtype": "float32"
|
| 1355 |
+
},
|
| 1356 |
+
{
|
| 1357 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1358 |
+
"shape": [
|
| 1359 |
+
601,
|
| 1360 |
+
240,
|
| 1361 |
+
320,
|
| 1362 |
+
3
|
| 1363 |
+
],
|
| 1364 |
+
"dtype": "uint8"
|
| 1365 |
+
},
|
| 1366 |
+
{
|
| 1367 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1368 |
+
"shape": [
|
| 1369 |
+
601,
|
| 1370 |
+
240,
|
| 1371 |
+
320,
|
| 1372 |
+
3
|
| 1373 |
+
],
|
| 1374 |
+
"dtype": "uint8"
|
| 1375 |
+
},
|
| 1376 |
+
{
|
| 1377 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1378 |
+
"shape": [
|
| 1379 |
+
601,
|
| 1380 |
+
240,
|
| 1381 |
+
320,
|
| 1382 |
+
3
|
| 1383 |
+
],
|
| 1384 |
+
"dtype": "uint8"
|
| 1385 |
+
},
|
| 1386 |
+
{
|
| 1387 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1388 |
+
"shape": [
|
| 1389 |
+
601,
|
| 1390 |
+
240,
|
| 1391 |
+
320,
|
| 1392 |
+
3
|
| 1393 |
+
],
|
| 1394 |
+
"dtype": "uint8"
|
| 1395 |
+
},
|
| 1396 |
+
{
|
| 1397 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1398 |
+
"shape": [
|
| 1399 |
+
601,
|
| 1400 |
+
320,
|
| 1401 |
+
240,
|
| 1402 |
+
3
|
| 1403 |
+
],
|
| 1404 |
+
"dtype": "uint8"
|
| 1405 |
+
}
|
| 1406 |
+
],
|
| 1407 |
+
"trajectory_sha256": "c5d794bf3d259aca0b4686cd9f597693aa1ac41c6f080e8db6dba563463258d6",
|
| 1408 |
+
"source_sha256": "4fa67dfcdd30a4ef1d95d3401af76a8353e87c4946108919b48b9fbdf66a0842",
|
| 1409 |
+
"view_sha256": "d3e9567d1cb420cb75cd86b816efe7e4cb9bb2a85c1320667e3d4e4528bcd140"
|
| 1410 |
+
},
|
| 1411 |
+
{
|
| 1412 |
+
"demo_id": "demo_13",
|
| 1413 |
+
"file": "demo_13.h5",
|
| 1414 |
+
"length": 596,
|
| 1415 |
+
"fields": [
|
| 1416 |
+
{
|
| 1417 |
+
"path": "actions/panda_leaphand-1",
|
| 1418 |
+
"shape": [
|
| 1419 |
+
596,
|
| 1420 |
+
22
|
| 1421 |
+
],
|
| 1422 |
+
"dtype": "float32"
|
| 1423 |
+
},
|
| 1424 |
+
{
|
| 1425 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1426 |
+
"shape": [
|
| 1427 |
+
596,
|
| 1428 |
+
22
|
| 1429 |
+
],
|
| 1430 |
+
"dtype": "float32"
|
| 1431 |
+
},
|
| 1432 |
+
{
|
| 1433 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1434 |
+
"shape": [
|
| 1435 |
+
597,
|
| 1436 |
+
23
|
| 1437 |
+
],
|
| 1438 |
+
"dtype": "float32"
|
| 1439 |
+
},
|
| 1440 |
+
{
|
| 1441 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1442 |
+
"shape": [
|
| 1443 |
+
597,
|
| 1444 |
+
23
|
| 1445 |
+
],
|
| 1446 |
+
"dtype": "float32"
|
| 1447 |
+
},
|
| 1448 |
+
{
|
| 1449 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1450 |
+
"shape": [
|
| 1451 |
+
597,
|
| 1452 |
+
23
|
| 1453 |
+
],
|
| 1454 |
+
"dtype": "float32"
|
| 1455 |
+
},
|
| 1456 |
+
{
|
| 1457 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1458 |
+
"shape": [
|
| 1459 |
+
597,
|
| 1460 |
+
23
|
| 1461 |
+
],
|
| 1462 |
+
"dtype": "float32"
|
| 1463 |
+
},
|
| 1464 |
+
{
|
| 1465 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1466 |
+
"shape": [
|
| 1467 |
+
597,
|
| 1468 |
+
240,
|
| 1469 |
+
320,
|
| 1470 |
+
3
|
| 1471 |
+
],
|
| 1472 |
+
"dtype": "uint8"
|
| 1473 |
+
},
|
| 1474 |
+
{
|
| 1475 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1476 |
+
"shape": [
|
| 1477 |
+
597,
|
| 1478 |
+
240,
|
| 1479 |
+
320,
|
| 1480 |
+
3
|
| 1481 |
+
],
|
| 1482 |
+
"dtype": "uint8"
|
| 1483 |
+
},
|
| 1484 |
+
{
|
| 1485 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1486 |
+
"shape": [
|
| 1487 |
+
597,
|
| 1488 |
+
240,
|
| 1489 |
+
320,
|
| 1490 |
+
3
|
| 1491 |
+
],
|
| 1492 |
+
"dtype": "uint8"
|
| 1493 |
+
},
|
| 1494 |
+
{
|
| 1495 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1496 |
+
"shape": [
|
| 1497 |
+
597,
|
| 1498 |
+
240,
|
| 1499 |
+
320,
|
| 1500 |
+
3
|
| 1501 |
+
],
|
| 1502 |
+
"dtype": "uint8"
|
| 1503 |
+
},
|
| 1504 |
+
{
|
| 1505 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1506 |
+
"shape": [
|
| 1507 |
+
597,
|
| 1508 |
+
320,
|
| 1509 |
+
240,
|
| 1510 |
+
3
|
| 1511 |
+
],
|
| 1512 |
+
"dtype": "uint8"
|
| 1513 |
+
}
|
| 1514 |
+
],
|
| 1515 |
+
"trajectory_sha256": "f37a83a9c6b2b0bb9d048ead342d8f997be03461fdd21c99f02af00130616dbc",
|
| 1516 |
+
"source_sha256": "4960bcc8680a4fd1bef97569a0c49fe13955a0fab10cf3f5df011b009b600c65",
|
| 1517 |
+
"view_sha256": "69c103db93ae71b3221b8fdd06232d847c9d8cc3677ed384bc9ff4b3d20ac8f8"
|
| 1518 |
+
},
|
| 1519 |
+
{
|
| 1520 |
+
"demo_id": "demo_14",
|
| 1521 |
+
"file": "demo_14.h5",
|
| 1522 |
+
"length": 556,
|
| 1523 |
+
"fields": [
|
| 1524 |
+
{
|
| 1525 |
+
"path": "actions/panda_leaphand-1",
|
| 1526 |
+
"shape": [
|
| 1527 |
+
556,
|
| 1528 |
+
22
|
| 1529 |
+
],
|
| 1530 |
+
"dtype": "float32"
|
| 1531 |
+
},
|
| 1532 |
+
{
|
| 1533 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1534 |
+
"shape": [
|
| 1535 |
+
556,
|
| 1536 |
+
22
|
| 1537 |
+
],
|
| 1538 |
+
"dtype": "float32"
|
| 1539 |
+
},
|
| 1540 |
+
{
|
| 1541 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1542 |
+
"shape": [
|
| 1543 |
+
557,
|
| 1544 |
+
23
|
| 1545 |
+
],
|
| 1546 |
+
"dtype": "float32"
|
| 1547 |
+
},
|
| 1548 |
+
{
|
| 1549 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1550 |
+
"shape": [
|
| 1551 |
+
557,
|
| 1552 |
+
23
|
| 1553 |
+
],
|
| 1554 |
+
"dtype": "float32"
|
| 1555 |
+
},
|
| 1556 |
+
{
|
| 1557 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1558 |
+
"shape": [
|
| 1559 |
+
557,
|
| 1560 |
+
23
|
| 1561 |
+
],
|
| 1562 |
+
"dtype": "float32"
|
| 1563 |
+
},
|
| 1564 |
+
{
|
| 1565 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1566 |
+
"shape": [
|
| 1567 |
+
557,
|
| 1568 |
+
23
|
| 1569 |
+
],
|
| 1570 |
+
"dtype": "float32"
|
| 1571 |
+
},
|
| 1572 |
+
{
|
| 1573 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1574 |
+
"shape": [
|
| 1575 |
+
557,
|
| 1576 |
+
240,
|
| 1577 |
+
320,
|
| 1578 |
+
3
|
| 1579 |
+
],
|
| 1580 |
+
"dtype": "uint8"
|
| 1581 |
+
},
|
| 1582 |
+
{
|
| 1583 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1584 |
+
"shape": [
|
| 1585 |
+
557,
|
| 1586 |
+
240,
|
| 1587 |
+
320,
|
| 1588 |
+
3
|
| 1589 |
+
],
|
| 1590 |
+
"dtype": "uint8"
|
| 1591 |
+
},
|
| 1592 |
+
{
|
| 1593 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1594 |
+
"shape": [
|
| 1595 |
+
557,
|
| 1596 |
+
240,
|
| 1597 |
+
320,
|
| 1598 |
+
3
|
| 1599 |
+
],
|
| 1600 |
+
"dtype": "uint8"
|
| 1601 |
+
},
|
| 1602 |
+
{
|
| 1603 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1604 |
+
"shape": [
|
| 1605 |
+
557,
|
| 1606 |
+
240,
|
| 1607 |
+
320,
|
| 1608 |
+
3
|
| 1609 |
+
],
|
| 1610 |
+
"dtype": "uint8"
|
| 1611 |
+
},
|
| 1612 |
+
{
|
| 1613 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1614 |
+
"shape": [
|
| 1615 |
+
557,
|
| 1616 |
+
320,
|
| 1617 |
+
240,
|
| 1618 |
+
3
|
| 1619 |
+
],
|
| 1620 |
+
"dtype": "uint8"
|
| 1621 |
+
}
|
| 1622 |
+
],
|
| 1623 |
+
"trajectory_sha256": "e6ae81f5089027a66d2fd91e82752305f0dfcabd86ec5ea568004902adf4d2d3",
|
| 1624 |
+
"source_sha256": "9a1156cbde46476879048ea0939903a8b340e8757191decf90e2619d40b9fb54",
|
| 1625 |
+
"view_sha256": "cc118572b4a4d4ce4ce1a8673d0b5bbce061c17fd9ad2682c91cbdd4de1fe5bd"
|
| 1626 |
+
},
|
| 1627 |
+
{
|
| 1628 |
+
"demo_id": "demo_15",
|
| 1629 |
+
"file": "demo_15.h5",
|
| 1630 |
+
"length": 557,
|
| 1631 |
+
"fields": [
|
| 1632 |
+
{
|
| 1633 |
+
"path": "actions/panda_leaphand-1",
|
| 1634 |
+
"shape": [
|
| 1635 |
+
557,
|
| 1636 |
+
22
|
| 1637 |
+
],
|
| 1638 |
+
"dtype": "float32"
|
| 1639 |
+
},
|
| 1640 |
+
{
|
| 1641 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1642 |
+
"shape": [
|
| 1643 |
+
557,
|
| 1644 |
+
22
|
| 1645 |
+
],
|
| 1646 |
+
"dtype": "float32"
|
| 1647 |
+
},
|
| 1648 |
+
{
|
| 1649 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1650 |
+
"shape": [
|
| 1651 |
+
558,
|
| 1652 |
+
23
|
| 1653 |
+
],
|
| 1654 |
+
"dtype": "float32"
|
| 1655 |
+
},
|
| 1656 |
+
{
|
| 1657 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1658 |
+
"shape": [
|
| 1659 |
+
558,
|
| 1660 |
+
23
|
| 1661 |
+
],
|
| 1662 |
+
"dtype": "float32"
|
| 1663 |
+
},
|
| 1664 |
+
{
|
| 1665 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1666 |
+
"shape": [
|
| 1667 |
+
558,
|
| 1668 |
+
23
|
| 1669 |
+
],
|
| 1670 |
+
"dtype": "float32"
|
| 1671 |
+
},
|
| 1672 |
+
{
|
| 1673 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1674 |
+
"shape": [
|
| 1675 |
+
558,
|
| 1676 |
+
23
|
| 1677 |
+
],
|
| 1678 |
+
"dtype": "float32"
|
| 1679 |
+
},
|
| 1680 |
+
{
|
| 1681 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1682 |
+
"shape": [
|
| 1683 |
+
558,
|
| 1684 |
+
240,
|
| 1685 |
+
320,
|
| 1686 |
+
3
|
| 1687 |
+
],
|
| 1688 |
+
"dtype": "uint8"
|
| 1689 |
+
},
|
| 1690 |
+
{
|
| 1691 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1692 |
+
"shape": [
|
| 1693 |
+
558,
|
| 1694 |
+
240,
|
| 1695 |
+
320,
|
| 1696 |
+
3
|
| 1697 |
+
],
|
| 1698 |
+
"dtype": "uint8"
|
| 1699 |
+
},
|
| 1700 |
+
{
|
| 1701 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1702 |
+
"shape": [
|
| 1703 |
+
558,
|
| 1704 |
+
240,
|
| 1705 |
+
320,
|
| 1706 |
+
3
|
| 1707 |
+
],
|
| 1708 |
+
"dtype": "uint8"
|
| 1709 |
+
},
|
| 1710 |
+
{
|
| 1711 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1712 |
+
"shape": [
|
| 1713 |
+
558,
|
| 1714 |
+
240,
|
| 1715 |
+
320,
|
| 1716 |
+
3
|
| 1717 |
+
],
|
| 1718 |
+
"dtype": "uint8"
|
| 1719 |
+
},
|
| 1720 |
+
{
|
| 1721 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1722 |
+
"shape": [
|
| 1723 |
+
558,
|
| 1724 |
+
320,
|
| 1725 |
+
240,
|
| 1726 |
+
3
|
| 1727 |
+
],
|
| 1728 |
+
"dtype": "uint8"
|
| 1729 |
+
}
|
| 1730 |
+
],
|
| 1731 |
+
"trajectory_sha256": "7efa501c4248045d0e2ec773c322dce5b2f875e8e6514a376d61781a1b40eb2e",
|
| 1732 |
+
"source_sha256": "006a188b4479e06f631037a218d9a51ee2b75977ef98f2175004d5f38d5ead41",
|
| 1733 |
+
"view_sha256": "c801b13d8e1195cd46da1db2737cecd4aa2a9e789ba2fd61660d31b0c678451c"
|
| 1734 |
+
},
|
| 1735 |
+
{
|
| 1736 |
+
"demo_id": "demo_16",
|
| 1737 |
+
"file": "demo_16.h5",
|
| 1738 |
+
"length": 554,
|
| 1739 |
+
"fields": [
|
| 1740 |
+
{
|
| 1741 |
+
"path": "actions/panda_leaphand-1",
|
| 1742 |
+
"shape": [
|
| 1743 |
+
554,
|
| 1744 |
+
22
|
| 1745 |
+
],
|
| 1746 |
+
"dtype": "float32"
|
| 1747 |
+
},
|
| 1748 |
+
{
|
| 1749 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1750 |
+
"shape": [
|
| 1751 |
+
554,
|
| 1752 |
+
22
|
| 1753 |
+
],
|
| 1754 |
+
"dtype": "float32"
|
| 1755 |
+
},
|
| 1756 |
+
{
|
| 1757 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1758 |
+
"shape": [
|
| 1759 |
+
555,
|
| 1760 |
+
23
|
| 1761 |
+
],
|
| 1762 |
+
"dtype": "float32"
|
| 1763 |
+
},
|
| 1764 |
+
{
|
| 1765 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1766 |
+
"shape": [
|
| 1767 |
+
555,
|
| 1768 |
+
23
|
| 1769 |
+
],
|
| 1770 |
+
"dtype": "float32"
|
| 1771 |
+
},
|
| 1772 |
+
{
|
| 1773 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1774 |
+
"shape": [
|
| 1775 |
+
555,
|
| 1776 |
+
23
|
| 1777 |
+
],
|
| 1778 |
+
"dtype": "float32"
|
| 1779 |
+
},
|
| 1780 |
+
{
|
| 1781 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1782 |
+
"shape": [
|
| 1783 |
+
555,
|
| 1784 |
+
23
|
| 1785 |
+
],
|
| 1786 |
+
"dtype": "float32"
|
| 1787 |
+
},
|
| 1788 |
+
{
|
| 1789 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1790 |
+
"shape": [
|
| 1791 |
+
555,
|
| 1792 |
+
240,
|
| 1793 |
+
320,
|
| 1794 |
+
3
|
| 1795 |
+
],
|
| 1796 |
+
"dtype": "uint8"
|
| 1797 |
+
},
|
| 1798 |
+
{
|
| 1799 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1800 |
+
"shape": [
|
| 1801 |
+
555,
|
| 1802 |
+
240,
|
| 1803 |
+
320,
|
| 1804 |
+
3
|
| 1805 |
+
],
|
| 1806 |
+
"dtype": "uint8"
|
| 1807 |
+
},
|
| 1808 |
+
{
|
| 1809 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1810 |
+
"shape": [
|
| 1811 |
+
555,
|
| 1812 |
+
240,
|
| 1813 |
+
320,
|
| 1814 |
+
3
|
| 1815 |
+
],
|
| 1816 |
+
"dtype": "uint8"
|
| 1817 |
+
},
|
| 1818 |
+
{
|
| 1819 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1820 |
+
"shape": [
|
| 1821 |
+
555,
|
| 1822 |
+
240,
|
| 1823 |
+
320,
|
| 1824 |
+
3
|
| 1825 |
+
],
|
| 1826 |
+
"dtype": "uint8"
|
| 1827 |
+
},
|
| 1828 |
+
{
|
| 1829 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1830 |
+
"shape": [
|
| 1831 |
+
555,
|
| 1832 |
+
320,
|
| 1833 |
+
240,
|
| 1834 |
+
3
|
| 1835 |
+
],
|
| 1836 |
+
"dtype": "uint8"
|
| 1837 |
+
}
|
| 1838 |
+
],
|
| 1839 |
+
"trajectory_sha256": "50f9f79b579d9d680b43abb8abbc32cd1a79253921749aaa1e75fdfb0ffaebed",
|
| 1840 |
+
"source_sha256": "488b0560901115782416902d27be946216ac71d172a59922abff11c547645f86",
|
| 1841 |
+
"view_sha256": "373bdc3b273be751570a20cf46a54c35a4e379d8270f7d68e4322fd938820a6c"
|
| 1842 |
+
},
|
| 1843 |
+
{
|
| 1844 |
+
"demo_id": "demo_17",
|
| 1845 |
+
"file": "demo_17.h5",
|
| 1846 |
+
"length": 555,
|
| 1847 |
+
"fields": [
|
| 1848 |
+
{
|
| 1849 |
+
"path": "actions/panda_leaphand-1",
|
| 1850 |
+
"shape": [
|
| 1851 |
+
555,
|
| 1852 |
+
22
|
| 1853 |
+
],
|
| 1854 |
+
"dtype": "float32"
|
| 1855 |
+
},
|
| 1856 |
+
{
|
| 1857 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1858 |
+
"shape": [
|
| 1859 |
+
555,
|
| 1860 |
+
22
|
| 1861 |
+
],
|
| 1862 |
+
"dtype": "float32"
|
| 1863 |
+
},
|
| 1864 |
+
{
|
| 1865 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1866 |
+
"shape": [
|
| 1867 |
+
556,
|
| 1868 |
+
23
|
| 1869 |
+
],
|
| 1870 |
+
"dtype": "float32"
|
| 1871 |
+
},
|
| 1872 |
+
{
|
| 1873 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1874 |
+
"shape": [
|
| 1875 |
+
556,
|
| 1876 |
+
23
|
| 1877 |
+
],
|
| 1878 |
+
"dtype": "float32"
|
| 1879 |
+
},
|
| 1880 |
+
{
|
| 1881 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1882 |
+
"shape": [
|
| 1883 |
+
556,
|
| 1884 |
+
23
|
| 1885 |
+
],
|
| 1886 |
+
"dtype": "float32"
|
| 1887 |
+
},
|
| 1888 |
+
{
|
| 1889 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1890 |
+
"shape": [
|
| 1891 |
+
556,
|
| 1892 |
+
23
|
| 1893 |
+
],
|
| 1894 |
+
"dtype": "float32"
|
| 1895 |
+
},
|
| 1896 |
+
{
|
| 1897 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1898 |
+
"shape": [
|
| 1899 |
+
556,
|
| 1900 |
+
240,
|
| 1901 |
+
320,
|
| 1902 |
+
3
|
| 1903 |
+
],
|
| 1904 |
+
"dtype": "uint8"
|
| 1905 |
+
},
|
| 1906 |
+
{
|
| 1907 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1908 |
+
"shape": [
|
| 1909 |
+
556,
|
| 1910 |
+
240,
|
| 1911 |
+
320,
|
| 1912 |
+
3
|
| 1913 |
+
],
|
| 1914 |
+
"dtype": "uint8"
|
| 1915 |
+
},
|
| 1916 |
+
{
|
| 1917 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1918 |
+
"shape": [
|
| 1919 |
+
556,
|
| 1920 |
+
240,
|
| 1921 |
+
320,
|
| 1922 |
+
3
|
| 1923 |
+
],
|
| 1924 |
+
"dtype": "uint8"
|
| 1925 |
+
},
|
| 1926 |
+
{
|
| 1927 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1928 |
+
"shape": [
|
| 1929 |
+
556,
|
| 1930 |
+
240,
|
| 1931 |
+
320,
|
| 1932 |
+
3
|
| 1933 |
+
],
|
| 1934 |
+
"dtype": "uint8"
|
| 1935 |
+
},
|
| 1936 |
+
{
|
| 1937 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1938 |
+
"shape": [
|
| 1939 |
+
556,
|
| 1940 |
+
320,
|
| 1941 |
+
240,
|
| 1942 |
+
3
|
| 1943 |
+
],
|
| 1944 |
+
"dtype": "uint8"
|
| 1945 |
+
}
|
| 1946 |
+
],
|
| 1947 |
+
"trajectory_sha256": "ff71c4007be6f3993319ae228a172e4ae0ee3d7cdf1947e33dfea1f619dce30c",
|
| 1948 |
+
"source_sha256": "71445ede71d94047a98676454a0f9188c2c60ee87519e8da67e3ed0823733975",
|
| 1949 |
+
"view_sha256": "c8df1c07e37bd96fd9d3af5b75f09e2be464af64abbf320657f987d850090588"
|
| 1950 |
+
},
|
| 1951 |
+
{
|
| 1952 |
+
"demo_id": "demo_18",
|
| 1953 |
+
"file": "demo_18.h5",
|
| 1954 |
+
"length": 574,
|
| 1955 |
+
"fields": [
|
| 1956 |
+
{
|
| 1957 |
+
"path": "actions/panda_leaphand-1",
|
| 1958 |
+
"shape": [
|
| 1959 |
+
574,
|
| 1960 |
+
22
|
| 1961 |
+
],
|
| 1962 |
+
"dtype": "float32"
|
| 1963 |
+
},
|
| 1964 |
+
{
|
| 1965 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1966 |
+
"shape": [
|
| 1967 |
+
574,
|
| 1968 |
+
22
|
| 1969 |
+
],
|
| 1970 |
+
"dtype": "float32"
|
| 1971 |
+
},
|
| 1972 |
+
{
|
| 1973 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1974 |
+
"shape": [
|
| 1975 |
+
575,
|
| 1976 |
+
23
|
| 1977 |
+
],
|
| 1978 |
+
"dtype": "float32"
|
| 1979 |
+
},
|
| 1980 |
+
{
|
| 1981 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1982 |
+
"shape": [
|
| 1983 |
+
575,
|
| 1984 |
+
23
|
| 1985 |
+
],
|
| 1986 |
+
"dtype": "float32"
|
| 1987 |
+
},
|
| 1988 |
+
{
|
| 1989 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1990 |
+
"shape": [
|
| 1991 |
+
575,
|
| 1992 |
+
23
|
| 1993 |
+
],
|
| 1994 |
+
"dtype": "float32"
|
| 1995 |
+
},
|
| 1996 |
+
{
|
| 1997 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1998 |
+
"shape": [
|
| 1999 |
+
575,
|
| 2000 |
+
23
|
| 2001 |
+
],
|
| 2002 |
+
"dtype": "float32"
|
| 2003 |
+
},
|
| 2004 |
+
{
|
| 2005 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 2006 |
+
"shape": [
|
| 2007 |
+
575,
|
| 2008 |
+
240,
|
| 2009 |
+
320,
|
| 2010 |
+
3
|
| 2011 |
+
],
|
| 2012 |
+
"dtype": "uint8"
|
| 2013 |
+
},
|
| 2014 |
+
{
|
| 2015 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 2016 |
+
"shape": [
|
| 2017 |
+
575,
|
| 2018 |
+
240,
|
| 2019 |
+
320,
|
| 2020 |
+
3
|
| 2021 |
+
],
|
| 2022 |
+
"dtype": "uint8"
|
| 2023 |
+
},
|
| 2024 |
+
{
|
| 2025 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 2026 |
+
"shape": [
|
| 2027 |
+
575,
|
| 2028 |
+
240,
|
| 2029 |
+
320,
|
| 2030 |
+
3
|
| 2031 |
+
],
|
| 2032 |
+
"dtype": "uint8"
|
| 2033 |
+
},
|
| 2034 |
+
{
|
| 2035 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 2036 |
+
"shape": [
|
| 2037 |
+
575,
|
| 2038 |
+
240,
|
| 2039 |
+
320,
|
| 2040 |
+
3
|
| 2041 |
+
],
|
| 2042 |
+
"dtype": "uint8"
|
| 2043 |
+
},
|
| 2044 |
+
{
|
| 2045 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 2046 |
+
"shape": [
|
| 2047 |
+
575,
|
| 2048 |
+
320,
|
| 2049 |
+
240,
|
| 2050 |
+
3
|
| 2051 |
+
],
|
| 2052 |
+
"dtype": "uint8"
|
| 2053 |
+
}
|
| 2054 |
+
],
|
| 2055 |
+
"trajectory_sha256": "16c09cbe53b047f200eaffae12bfbbb85e1fafaad8a8413518d49d30d6908034",
|
| 2056 |
+
"source_sha256": "32a07b2cfe146ab5f5a57b3deadc6817d28c413270da0a7346f6abd5afb44305",
|
| 2057 |
+
"view_sha256": "26e89b74fb08f8ab58a1cd9247d69ca934120202075d64e069c66ade0f3b459f"
|
| 2058 |
+
},
|
| 2059 |
+
{
|
| 2060 |
+
"demo_id": "demo_19",
|
| 2061 |
+
"file": "demo_19.h5",
|
| 2062 |
+
"length": 572,
|
| 2063 |
+
"fields": [
|
| 2064 |
+
{
|
| 2065 |
+
"path": "actions/panda_leaphand-1",
|
| 2066 |
+
"shape": [
|
| 2067 |
+
572,
|
| 2068 |
+
22
|
| 2069 |
+
],
|
| 2070 |
+
"dtype": "float32"
|
| 2071 |
+
},
|
| 2072 |
+
{
|
| 2073 |
+
"path": "actions/panda_leaphand_left-0",
|
| 2074 |
+
"shape": [
|
| 2075 |
+
572,
|
| 2076 |
+
22
|
| 2077 |
+
],
|
| 2078 |
+
"dtype": "float32"
|
| 2079 |
+
},
|
| 2080 |
+
{
|
| 2081 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 2082 |
+
"shape": [
|
| 2083 |
+
573,
|
| 2084 |
+
23
|
| 2085 |
+
],
|
| 2086 |
+
"dtype": "float32"
|
| 2087 |
+
},
|
| 2088 |
+
{
|
| 2089 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 2090 |
+
"shape": [
|
| 2091 |
+
573,
|
| 2092 |
+
23
|
| 2093 |
+
],
|
| 2094 |
+
"dtype": "float32"
|
| 2095 |
+
},
|
| 2096 |
+
{
|
| 2097 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 2098 |
+
"shape": [
|
| 2099 |
+
573,
|
| 2100 |
+
23
|
| 2101 |
+
],
|
| 2102 |
+
"dtype": "float32"
|
| 2103 |
+
},
|
| 2104 |
+
{
|
| 2105 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 2106 |
+
"shape": [
|
| 2107 |
+
573,
|
| 2108 |
+
23
|
| 2109 |
+
],
|
| 2110 |
+
"dtype": "float32"
|
| 2111 |
+
},
|
| 2112 |
+
{
|
| 2113 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 2114 |
+
"shape": [
|
| 2115 |
+
573,
|
| 2116 |
+
240,
|
| 2117 |
+
320,
|
| 2118 |
+
3
|
| 2119 |
+
],
|
| 2120 |
+
"dtype": "uint8"
|
| 2121 |
+
},
|
| 2122 |
+
{
|
| 2123 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 2124 |
+
"shape": [
|
| 2125 |
+
573,
|
| 2126 |
+
240,
|
| 2127 |
+
320,
|
| 2128 |
+
3
|
| 2129 |
+
],
|
| 2130 |
+
"dtype": "uint8"
|
| 2131 |
+
},
|
| 2132 |
+
{
|
| 2133 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 2134 |
+
"shape": [
|
| 2135 |
+
573,
|
| 2136 |
+
240,
|
| 2137 |
+
320,
|
| 2138 |
+
3
|
| 2139 |
+
],
|
| 2140 |
+
"dtype": "uint8"
|
| 2141 |
+
},
|
| 2142 |
+
{
|
| 2143 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 2144 |
+
"shape": [
|
| 2145 |
+
573,
|
| 2146 |
+
240,
|
| 2147 |
+
320,
|
| 2148 |
+
3
|
| 2149 |
+
],
|
| 2150 |
+
"dtype": "uint8"
|
| 2151 |
+
},
|
| 2152 |
+
{
|
| 2153 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 2154 |
+
"shape": [
|
| 2155 |
+
573,
|
| 2156 |
+
320,
|
| 2157 |
+
240,
|
| 2158 |
+
3
|
| 2159 |
+
],
|
| 2160 |
+
"dtype": "uint8"
|
| 2161 |
+
}
|
| 2162 |
+
],
|
| 2163 |
+
"trajectory_sha256": "09e391f81690ab9f8d61cc9c12a27836ab081bd23c3bf768cdc86fc202b7ea97",
|
| 2164 |
+
"source_sha256": "5e02269e95db68f30ffcb0fd1d4fed8dd5bc10df4cd10f0b67e1cd3c29cfeb30",
|
| 2165 |
+
"view_sha256": "95d33e8fb4e6b7f9ecddea83e543a6a45eafe017ddd50e21d32de84667baf3d9"
|
| 2166 |
+
}
|
| 2167 |
+
]
|
| 2168 |
+
}
|
agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/environment.lock
ADDED
|
@@ -0,0 +1,249 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
absl-py==2.4.0
|
| 2 |
+
accelerate==1.13.0
|
| 3 |
+
addict==2.4.0
|
| 4 |
+
aiohappyeyeballs==2.6.1
|
| 5 |
+
aiohttp==3.13.5
|
| 6 |
+
aiosignal==1.4.0
|
| 7 |
+
annotated-types==0.7.0
|
| 8 |
+
anyio==4.13.0
|
| 9 |
+
anytree==2.13.0
|
| 10 |
+
asttokens==3.0.1
|
| 11 |
+
async-timeout==5.0.1
|
| 12 |
+
attrs==26.1.0
|
| 13 |
+
av==15.1.0
|
| 14 |
+
blinker==1.9.0
|
| 15 |
+
casadi==3.7.2
|
| 16 |
+
certifi==2026.4.22
|
| 17 |
+
cffi==2.0.0
|
| 18 |
+
charset-normalizer==3.4.7
|
| 19 |
+
click==8.3.3
|
| 20 |
+
cloudpickle==3.1.2
|
| 21 |
+
cmake==4.1.3
|
| 22 |
+
coacd==1.0.11
|
| 23 |
+
colorama==0.4.6
|
| 24 |
+
colorlog==6.10.1
|
| 25 |
+
comm==0.2.3
|
| 26 |
+
ConfigArgParse==1.7.5
|
| 27 |
+
contourpy==1.3.2
|
| 28 |
+
cuda-bindings==12.9.4
|
| 29 |
+
cuda-pathfinder==1.5.4
|
| 30 |
+
cycler==0.12.1
|
| 31 |
+
dacite==1.9.2
|
| 32 |
+
dash==4.1.0
|
| 33 |
+
dataclasses-json==0.6.7
|
| 34 |
+
datasets==4.8.5
|
| 35 |
+
decorator==5.2.1
|
| 36 |
+
deepdiff==8.6.2
|
| 37 |
+
Deprecated==1.3.1
|
| 38 |
+
diffusers==0.35.2
|
| 39 |
+
dill==0.4.1
|
| 40 |
+
docstring_parser==0.18.0
|
| 41 |
+
draccus==0.10.0
|
| 42 |
+
einops==0.8.2
|
| 43 |
+
embreex==4.4.0
|
| 44 |
+
etils==1.13.0
|
| 45 |
+
evdev==1.9.3
|
| 46 |
+
exceptiongroup==1.3.1
|
| 47 |
+
executing==2.2.1
|
| 48 |
+
Farama-Notifications==0.0.6
|
| 49 |
+
fast_simplification==0.1.13
|
| 50 |
+
fastjsonschema==2.21.2
|
| 51 |
+
filelock==3.29.0
|
| 52 |
+
Flask==3.1.3
|
| 53 |
+
fonttools==4.63.0
|
| 54 |
+
freetype-py==2.5.1
|
| 55 |
+
frozenlist==1.8.0
|
| 56 |
+
fsspec==2026.2.0
|
| 57 |
+
genesis-world @ file:///data/gck/genesis-world
|
| 58 |
+
git-filter-repo==2.47.0
|
| 59 |
+
gitdb==4.0.12
|
| 60 |
+
GitPython==3.1.50
|
| 61 |
+
glfw==2.10.0
|
| 62 |
+
gs-madrona==0.0.5
|
| 63 |
+
gstaichi==3.3.0
|
| 64 |
+
gym==0.26.2
|
| 65 |
+
gym-notices==0.1.0
|
| 66 |
+
gymnasium==1.3.0
|
| 67 |
+
h11==0.16.0
|
| 68 |
+
h5py==3.16.0
|
| 69 |
+
hf-xet==1.5.0
|
| 70 |
+
hf_transfer==0.1.9
|
| 71 |
+
httpcore==1.0.9
|
| 72 |
+
httpx==0.28.1
|
| 73 |
+
huggingface-hub==0.35.3
|
| 74 |
+
idna==3.15
|
| 75 |
+
ImageIO==2.37.3
|
| 76 |
+
imageio-ffmpeg==0.6.0
|
| 77 |
+
importlib_metadata==9.0.0
|
| 78 |
+
importlib_resources==7.1.0
|
| 79 |
+
inquirerpy==0.3.4
|
| 80 |
+
ipython==8.39.0
|
| 81 |
+
ipywidgets==8.1.8
|
| 82 |
+
itsdangerous==2.2.0
|
| 83 |
+
jedi==0.20.0
|
| 84 |
+
Jinja2==3.1.6
|
| 85 |
+
joblib==1.5.3
|
| 86 |
+
jsonlines==4.0.0
|
| 87 |
+
jsonschema==4.26.0
|
| 88 |
+
jsonschema-specifications==2025.9.1
|
| 89 |
+
jupyter_core==5.9.1
|
| 90 |
+
jupyterlab_widgets==3.0.16
|
| 91 |
+
kiwisolver==1.5.0
|
| 92 |
+
lazy-loader==0.5
|
| 93 |
+
lerobot==0.4.4
|
| 94 |
+
libigl==2.6.2
|
| 95 |
+
llvmlite==0.47.0
|
| 96 |
+
loguru==0.7.3
|
| 97 |
+
lxml==6.1.0
|
| 98 |
+
manifold3d==3.4.1
|
| 99 |
+
-e git+ssh://git@github.com/HeegerGao/maniladder.git@f6eed17496816bb41ce484f2d7580990a908d3e6#egg=maniladder
|
| 100 |
+
mapbox_earcut==2.0.0
|
| 101 |
+
markdown-it-py==4.2.0
|
| 102 |
+
MarkupSafe==3.0.3
|
| 103 |
+
marshmallow==3.26.2
|
| 104 |
+
matplotlib==3.10.9
|
| 105 |
+
matplotlib-inline==0.2.2
|
| 106 |
+
mdurl==0.1.2
|
| 107 |
+
mergedeep==1.3.4
|
| 108 |
+
moviepy==2.2.1
|
| 109 |
+
mpmath==1.3.0
|
| 110 |
+
msgspec==0.21.1
|
| 111 |
+
mujoco==3.8.1
|
| 112 |
+
multidict==6.7.1
|
| 113 |
+
multiprocess==0.70.19
|
| 114 |
+
mypy_extensions==1.1.0
|
| 115 |
+
nbformat==5.10.4
|
| 116 |
+
nest-asyncio==1.6.0
|
| 117 |
+
networkx==3.4.2
|
| 118 |
+
ninja==1.13.0
|
| 119 |
+
nlopt==2.10.0
|
| 120 |
+
numba==0.65.1
|
| 121 |
+
numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1747544640217/work/dist/numpy-2.2.6-cp310-cp310-linux_x86_64.whl#sha256=d6d964caeef85d00073d27cd62b46883d275b3d8162f723f0fcabbd0b3cc3f9d
|
| 122 |
+
nvidia-cublas-cu12==12.8.4.1
|
| 123 |
+
nvidia-cuda-cupti-cu12==12.8.90
|
| 124 |
+
nvidia-cuda-nvrtc-cu12==12.8.93
|
| 125 |
+
nvidia-cuda-runtime-cu12==12.8.90
|
| 126 |
+
nvidia-cudnn-cu12==9.10.2.21
|
| 127 |
+
nvidia-cufft-cu12==11.3.3.83
|
| 128 |
+
nvidia-cufile-cu12==1.13.1.3
|
| 129 |
+
nvidia-curand-cu12==10.3.9.90
|
| 130 |
+
nvidia-cusolver-cu12==11.7.3.90
|
| 131 |
+
nvidia-cusparse-cu12==12.5.8.93
|
| 132 |
+
nvidia-cusparselt-cu12==0.7.1
|
| 133 |
+
nvidia-nccl-cu12==2.27.5
|
| 134 |
+
nvidia-nvjitlink-cu12==12.8.93
|
| 135 |
+
nvidia-nvshmem-cu12==3.4.5
|
| 136 |
+
nvidia-nvtx-cu12==12.8.90
|
| 137 |
+
open3d==0.19.0
|
| 138 |
+
opencv-python==4.13.0.92
|
| 139 |
+
opencv-python-headless==4.12.0.88
|
| 140 |
+
OpenEXR==3.4.11
|
| 141 |
+
orderly-set==5.5.0
|
| 142 |
+
packaging==25.0
|
| 143 |
+
pandas==2.3.3
|
| 144 |
+
parso==0.8.7
|
| 145 |
+
pexpect==4.9.0
|
| 146 |
+
pfzy==0.3.4
|
| 147 |
+
pillow==11.3.0
|
| 148 |
+
pin==4.0.0
|
| 149 |
+
pip @ file:///home/task_177498883471825/croot/pip_1774988882575/work
|
| 150 |
+
platformdirs==4.9.6
|
| 151 |
+
plotly==5.24.1
|
| 152 |
+
polyscope==2.6.1
|
| 153 |
+
proglog==0.1.12
|
| 154 |
+
prompt_toolkit==3.0.52
|
| 155 |
+
propcache==0.5.2
|
| 156 |
+
protobuf==6.33.6
|
| 157 |
+
psutil==7.2.2
|
| 158 |
+
ptyprocess==0.7.0
|
| 159 |
+
pure_eval==0.2.3
|
| 160 |
+
py-cpuinfo==9.0.0
|
| 161 |
+
py-spy==0.4.2
|
| 162 |
+
pyarrow==24.0.0
|
| 163 |
+
pycollada==0.9.3
|
| 164 |
+
pycparser==3.0
|
| 165 |
+
pydantic==2.13.4
|
| 166 |
+
pydantic_core==2.46.4
|
| 167 |
+
PyGEL3D==0.6.1
|
| 168 |
+
pyglet==2.1.14
|
| 169 |
+
pygltflib==1.16.0
|
| 170 |
+
Pygments==2.20.0
|
| 171 |
+
pymeshlab==2025.7.post1
|
| 172 |
+
pynput==1.8.2
|
| 173 |
+
PyOpenGL==3.1.10
|
| 174 |
+
pyparsing==3.3.2
|
| 175 |
+
pyperclip==1.11.0
|
| 176 |
+
PyQt6==6.11.0
|
| 177 |
+
PyQt6-Qt6==6.11.0
|
| 178 |
+
PyQt6_sip==13.11.1
|
| 179 |
+
pyquaternion==0.9.9
|
| 180 |
+
pyserial==3.5
|
| 181 |
+
pysplashsurf==0.12.0.2
|
| 182 |
+
python-dateutil==2.9.0.post0
|
| 183 |
+
python-dotenv==1.2.2
|
| 184 |
+
python-xlib==0.33
|
| 185 |
+
pytransform3d==3.15.0
|
| 186 |
+
pytz==2026.2
|
| 187 |
+
pyuipc @ file:///tmp/claude-1005/-mnt4-gck-maniladder/9f005e67-04f6-4368-bd0e-9f40896c7dbf/scratchpad/pyuipc_dl/pyuipc-0.0.25-cp310-cp310-manylinux_2_34_x86_64.whl#sha256=76ff13554e1971ea4401db2c875369cf32352ae3a5a4c398c45193231b5cbf00
|
| 188 |
+
PyYAML==6.0.3
|
| 189 |
+
pyyaml-include==1.4.1
|
| 190 |
+
referencing==0.37.0
|
| 191 |
+
regex==2026.5.9
|
| 192 |
+
requests==2.34.2
|
| 193 |
+
rerun-sdk==0.26.2
|
| 194 |
+
retrying==1.4.2
|
| 195 |
+
rich==14.3.4
|
| 196 |
+
rpds-py==0.30.0
|
| 197 |
+
rtree==1.4.1
|
| 198 |
+
safetensors==0.7.0
|
| 199 |
+
sapien==3.0.3
|
| 200 |
+
scikit-image==0.25.2
|
| 201 |
+
scikit-learn==1.7.2
|
| 202 |
+
scipy @ file:///home/conda/feedstock_root/build_artifacts/scipy-split_1739790642651/work/dist/scipy-1.15.2-cp310-cp310-linux_x86_64.whl#sha256=9e52bad6c3294d1a5b04a13632118ca2157130603c6c018c2d710162b223b27e
|
| 203 |
+
sentry-sdk==2.60.0
|
| 204 |
+
setuptools==80.10.2
|
| 205 |
+
shapely==2.1.2
|
| 206 |
+
six==1.17.0
|
| 207 |
+
smmap==5.0.3
|
| 208 |
+
stack-data==0.6.3
|
| 209 |
+
svg.path==7.0
|
| 210 |
+
sympy==1.14.0
|
| 211 |
+
tenacity==9.1.4
|
| 212 |
+
termcolor==3.3.0
|
| 213 |
+
tetgen==0.8.4
|
| 214 |
+
threadpoolctl==3.6.0
|
| 215 |
+
tifffile==2025.5.10
|
| 216 |
+
timm==1.0.27
|
| 217 |
+
toml==0.10.2
|
| 218 |
+
torch==2.10.0
|
| 219 |
+
torchaudio==2.11.0
|
| 220 |
+
torchcodec==0.10.0
|
| 221 |
+
torchvision==0.25.0
|
| 222 |
+
tqdm==4.67.3
|
| 223 |
+
traitlets==5.15.0
|
| 224 |
+
transforms3d==0.4.2
|
| 225 |
+
trimesh==4.12.2
|
| 226 |
+
triton==3.6.0
|
| 227 |
+
typeguard==4.5.2
|
| 228 |
+
typing-inspect==0.9.0
|
| 229 |
+
typing-inspection==0.4.2
|
| 230 |
+
typing_extensions==4.15.0
|
| 231 |
+
tyro==1.0.13
|
| 232 |
+
tzdata==2026.2
|
| 233 |
+
urllib3==2.7.0
|
| 234 |
+
vhacdx==0.0.10
|
| 235 |
+
viser==1.0.27
|
| 236 |
+
vtk==9.6.1
|
| 237 |
+
wandb==0.24.2
|
| 238 |
+
wcwidth==0.7.0
|
| 239 |
+
websockets==16.0
|
| 240 |
+
Werkzeug==3.1.8
|
| 241 |
+
wheel==0.46.3
|
| 242 |
+
widgetsnbextension==4.0.15
|
| 243 |
+
wrapt==2.1.2
|
| 244 |
+
xxhash==3.7.0
|
| 245 |
+
yarl==1.23.0
|
| 246 |
+
yourdfpy==0.0.60
|
| 247 |
+
z3-solver==4.16.0.0
|
| 248 |
+
zipp==3.23.1
|
| 249 |
+
zstandard==0.25.0
|
agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/findings.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Findings
|
| 2 |
+
|
| 3 |
+
All 20 authorized demonstrations were analyzed: 11,454 action labels; representative front/top images at five indices each, plus ten five-camera views from demo_00. Exact indices and per-demo evidence are in ../demo_analysis.md and ../evidence/visual_inspection.json.
|
| 4 |
+
|
| 5 |
+
Two sequential tool-assisted clay transfers are visible. Initial colors and positions vary; final images show both colors in the dish region, without proving vertical layer order or success. Demo lengths span 552–600; demo_12 may be horizon-truncated. Initial joint configurations are identical across demos, but the live scene must still be observed.
|
| 6 |
+
|
| 7 |
+
All 20 demos contain 110 scalar hand labels above the native upper bound during action indices 38–46. The draft clips stored labels to [-1,1]. The underlying demonstrator execution semantics and impact of clipping are unknown. Rotation uses the contract's negative 0.5-radian scale. Output ordering differs from robot_uids order.
|
| 8 |
+
|
| 9 |
+
Draft limitations: coarse visual matching, unknown camera/root geometry and joint naming, no contact sensor or success signal, phase ambiguity, potential retrieval stalls, no calibrated recovery or out-of-distribution gate. No actual task performance has been measured.
|
| 10 |
+
|
| 11 |
+
## Authorized live continuation
|
| 12 |
+
Episode 1 (original retrieval): tools visibly lifted by step 100, then phase stalled near 0.177 through step 150 and the final observation at step 163. Both clay patches remained outside. Ended diagnostic episode; native success false. The standalone interactive logging adapter initially failed on the API wrapper after one action; corrected by unwrapping `steps[-1].observation` and copying step_id. A later explicit finish caused the running driver to reject its next action as inactive; no retry was made. Actions through the last periodic checkpoint and start/end observations are retained. This was a driver issue, not an independently rehearsed program issue.
|
| 13 |
+
Episode 2 modification: bounded time-based lower phase floor at (step-1)/575 - .018, retaining current image and proprioceptive action retrieval. This addresses phase stalling; efficacy pending.
|
| 14 |
+
Episode 2: progression floor resolved the observed stationary grasp stall. First tool visibly approached red clay by step 150 and red clay was visibly in dish region at step 200; yellow remained outside. Diagnostic episode deliberately ended after first-transfer evidence, not marked successful. Exact final observation and full actions/log are in evidence/ep02. No claim of complete layering.
|
agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/freeze_manifest.json
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"files": {
|
| 3 |
+
"__pycache__/build_bank.cpython-310.pyc": "8f0836dc3cec331055f4208e67958e677dc06d0fbe514e4e64b9aeddef4b00d3",
|
| 4 |
+
"__pycache__/controller.cpython-310.pyc": "9a8d5bba2186b90a691e3d741debc86e7c76eaef23a2258f92ce62aab8b20457",
|
| 5 |
+
"__pycache__/synthetic_checks.cpython-310.pyc": "2d6fa356b2328735dddcb739507f4f222ae10c7c8873bb87f7e0808757046774",
|
| 6 |
+
"artifact_hashes.json": "6e458133651b0de9602efa387710cb3706f5f5db24137a451876aaccb3d79ec7",
|
| 7 |
+
"bank_provenance.json": "89c9cfe9d87c6fe74991af56e3a213d0c619585dd983bc334b29e3b748a28154",
|
| 8 |
+
"build_bank.py": "b07e3d43646e09064fad9e7f4b0a5b91c4a556a4950ad3469b8d6370a92f1ab1",
|
| 9 |
+
"controller.py": "31ad0c78a9dd5f135380a2a1cb7512dfa79afd9a68f23888275c2ec04ca6815a",
|
| 10 |
+
"demo_manifest.json": "073ed6fd24d1a2ef3cd7c16b25eb30331ee18e4e5493ef2b4e018a8e24a89205",
|
| 11 |
+
"demonstrations_readonly/demo_00.h5": "cc6904b79fa9d0ba2fd46f41fb6a57d4b71387ff4c8695aa9001bb88c5f397c0",
|
| 12 |
+
"demonstrations_readonly/demo_01.h5": "e2126a3381fdcca89ea013e5363d26e55d299e90b7666ff55add85ecbf9b935e",
|
| 13 |
+
"demonstrations_readonly/demo_02.h5": "2eedd380282f088b8bc6741d21aacd1eeced834e8440006fd2c7f3aa33ebf2e7",
|
| 14 |
+
"demonstrations_readonly/demo_03.h5": "13bf7716cb6fea598cec85bccd5b1474dc6126eb751e9e18053a8c93c7c1a27a",
|
| 15 |
+
"demonstrations_readonly/demo_04.h5": "411ea28f7e947803caf8550195b5f45c7f15b666af6fe02310b62d62c6097efb",
|
| 16 |
+
"demonstrations_readonly/demo_05.h5": "9eb591d5afa61a52919b666222bf8acffc760f98b813282486cb0cdf483b331f",
|
| 17 |
+
"demonstrations_readonly/demo_06.h5": "adc29edd50bb66a4bbccd83f3fd33707d83fa2960a15ff228d3f88e41e5c1b98",
|
| 18 |
+
"demonstrations_readonly/demo_07.h5": "f5b997d9c04b149efdc391327ce48ed77a3073b3f6c8ec493728f35fd8975d99",
|
| 19 |
+
"demonstrations_readonly/demo_08.h5": "82bce05f16b6a888df37a0d502d0146ec0e7faa5b8d381b9669b81ae00938e1b",
|
| 20 |
+
"demonstrations_readonly/demo_09.h5": "43f6e8c1727a739c980cd5ba8d93eddf0ef3fcd5b93500eef2c016ae698318fc",
|
| 21 |
+
"demonstrations_readonly/demo_10.h5": "7cb9721a9a88ccc935ea738e7b02d9153a8a373aa5a328a078110233c7841b95",
|
| 22 |
+
"demonstrations_readonly/demo_11.h5": "40df553d8c9ef3d2ef9453172d59480b9384f67258faebd2cdbb75078bd4f34b",
|
| 23 |
+
"demonstrations_readonly/demo_12.h5": "d3e9567d1cb420cb75cd86b816efe7e4cb9bb2a85c1320667e3d4e4528bcd140",
|
| 24 |
+
"demonstrations_readonly/demo_13.h5": "69c103db93ae71b3221b8fdd06232d847c9d8cc3677ed384bc9ff4b3d20ac8f8",
|
| 25 |
+
"demonstrations_readonly/demo_14.h5": "cc118572b4a4d4ce4ce1a8673d0b5bbce061c17fd9ad2682c91cbdd4de1fe5bd",
|
| 26 |
+
"demonstrations_readonly/demo_15.h5": "c801b13d8e1195cd46da1db2737cecd4aa2a9e789ba2fd61660d31b0c678451c",
|
| 27 |
+
"demonstrations_readonly/demo_16.h5": "373bdc3b273be751570a20cf46a54c35a4e379d8270f7d68e4322fd938820a6c",
|
| 28 |
+
"demonstrations_readonly/demo_17.h5": "c8df1c07e37bd96fd9d3af5b75f09e2be464af64abbf320657f987d850090588",
|
| 29 |
+
"demonstrations_readonly/demo_18.h5": "26e89b74fb08f8ab58a1cd9247d69ca934120202075d64e069c66ade0f3b459f",
|
| 30 |
+
"demonstrations_readonly/demo_19.h5": "95d33e8fb4e6b7f9ecddea83e543a6a45eafe017ddd50e21d32de84667baf3d9",
|
| 31 |
+
"environment.lock": "f9f11f093744865020243315494d48c69e38ff9e67783e7cf5f0a1e5f22b34aa",
|
| 32 |
+
"findings.md": "8b83572c84b64c9509842ce15c20ecf2d506089c4b3b969789037d4c0d57c0f8",
|
| 33 |
+
"handoff.md": "16efc672303e44ddaf41896a9bb19450a34418cf5147e5d33a3f132e5d79f81a",
|
| 34 |
+
"model_tool_manifest.yaml": "fd25f845724cb9aae24a4d7e114485719aad2ae6fd65f604c781b59428c57843",
|
| 35 |
+
"policy_runner.py": "cd8a30fc763583fb9bf6570414f01d56aba16241c733fc0cdfdfab0f8f27270e",
|
| 36 |
+
"reference_bank.npz": "229463850426e2d1d4d6022c2420cef2b3be14bc12389171c87958fe70ae8cb5",
|
| 37 |
+
"skills.md": "d569f3a232ca60c195b0041e16ef10c07dbff0c1d6f37f3e4bb2f8762a857739",
|
| 38 |
+
"synthetic_check_results.json": "ef827300a1a2ec2d5931847e3ed1c9e2f0401e50586b02619f7ca3d3493b9150",
|
| 39 |
+
"synthetic_checks.py": "a872ea56b1cf8c6bd1a6242c8c51b9a0868e2bb77e8ca305224dfd31b31741fc",
|
| 40 |
+
"worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e"
|
| 41 |
+
},
|
| 42 |
+
"bundle_hash": "3626f977ff5b8ca9b6457ed8c5e6ce80da762661208a7f9b89b18730e0da2a3e",
|
| 43 |
+
"exploration_ledger_hash": "4ff14e341109a836b406cbfb36f74268d1a1c0d7848961252e7be4266e1b85c3",
|
| 44 |
+
"entrypoint": "controller.reset_episode(); controller.act(obs)",
|
| 45 |
+
"selection": {
|
| 46 |
+
"rule": "exact-version success rate, valid rehearsal count, recency",
|
| 47 |
+
"rehearsals": [
|
| 48 |
+
{
|
| 49 |
+
"bundle_hash": "3626f977ff5b8ca9b6457ed8c5e6ce80da762661208a7f9b89b18730e0da2a3e",
|
| 50 |
+
"episode": 3,
|
| 51 |
+
"independent": true,
|
| 52 |
+
"score_source": "native_step_feedback",
|
| 53 |
+
"status": "finished",
|
| 54 |
+
"success": true,
|
| 55 |
+
"valid": true
|
| 56 |
+
},
|
| 57 |
+
{
|
| 58 |
+
"episode": 14,
|
| 59 |
+
"bundle_hash": "5aef7e085730b499aadd41af6fad765e3c78886d49bd058b57ac640f27724174",
|
| 60 |
+
"independent": true,
|
| 61 |
+
"valid": true,
|
| 62 |
+
"status": "finished",
|
| 63 |
+
"success": false,
|
| 64 |
+
"score_source": "native_step_feedback"
|
| 65 |
+
},
|
| 66 |
+
{
|
| 67 |
+
"episode": 15,
|
| 68 |
+
"bundle_hash": "5aef7e085730b499aadd41af6fad765e3c78886d49bd058b57ac640f27724174",
|
| 69 |
+
"independent": true,
|
| 70 |
+
"valid": true,
|
| 71 |
+
"status": "finished",
|
| 72 |
+
"success": true,
|
| 73 |
+
"score_source": "native_step_feedback"
|
| 74 |
+
},
|
| 75 |
+
{
|
| 76 |
+
"episode": 16,
|
| 77 |
+
"bundle_hash": "5aef7e085730b499aadd41af6fad765e3c78886d49bd058b57ac640f27724174",
|
| 78 |
+
"independent": true,
|
| 79 |
+
"valid": true,
|
| 80 |
+
"status": "finished",
|
| 81 |
+
"success": false,
|
| 82 |
+
"score_source": "native_step_feedback"
|
| 83 |
+
},
|
| 84 |
+
{
|
| 85 |
+
"episode": 17,
|
| 86 |
+
"bundle_hash": "5aef7e085730b499aadd41af6fad765e3c78886d49bd058b57ac640f27724174",
|
| 87 |
+
"independent": true,
|
| 88 |
+
"valid": true,
|
| 89 |
+
"status": "finished",
|
| 90 |
+
"success": false,
|
| 91 |
+
"score_source": "native_step_feedback"
|
| 92 |
+
},
|
| 93 |
+
{
|
| 94 |
+
"episode": 18,
|
| 95 |
+
"bundle_hash": "5aef7e085730b499aadd41af6fad765e3c78886d49bd058b57ac640f27724174",
|
| 96 |
+
"independent": true,
|
| 97 |
+
"valid": true,
|
| 98 |
+
"status": "finished",
|
| 99 |
+
"success": false,
|
| 100 |
+
"score_source": "native_step_feedback"
|
| 101 |
+
},
|
| 102 |
+
{
|
| 103 |
+
"episode": 19,
|
| 104 |
+
"bundle_hash": "5aef7e085730b499aadd41af6fad765e3c78886d49bd058b57ac640f27724174",
|
| 105 |
+
"independent": true,
|
| 106 |
+
"valid": true,
|
| 107 |
+
"status": "finished",
|
| 108 |
+
"success": true,
|
| 109 |
+
"score_source": "native_step_feedback"
|
| 110 |
+
},
|
| 111 |
+
{
|
| 112 |
+
"episode": 20,
|
| 113 |
+
"bundle_hash": "5aef7e085730b499aadd41af6fad765e3c78886d49bd058b57ac640f27724174",
|
| 114 |
+
"independent": true,
|
| 115 |
+
"valid": true,
|
| 116 |
+
"status": "finished",
|
| 117 |
+
"success": false,
|
| 118 |
+
"score_source": "native_step_feedback"
|
| 119 |
+
}
|
| 120 |
+
]
|
| 121 |
+
}
|
| 122 |
+
}
|
agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/handoff.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Offline preparation handoff
|
| 2 |
+
|
| 3 |
+
Status: unrehearsed draft, not frozen, no success claim. No exploration episodes spent. All 20 demos analyzed. Required analysis and candidate files are present.
|
| 4 |
+
|
| 5 |
+
Entry point: controller.py, exposing reset_episode() and act(obs). Keep reference_bank.npz adjacent to controller.py. Runtime dependencies: Python, NumPy, OpenCV. No /demonstrations or worker_api dependency at inference. build_bank.py is an offline reproducibility helper requiring the authorized mounted demos, manifest, h5py, and /worker_api.py; it is not called by the controller.
|
| 6 |
+
|
| 7 |
+
Call reset_episode once before each episode. Supply RGB uint8 HWC or singleton-batch HWC for front_camera and top_camera, all four contract proprioception arrays, instruction, and step_id. The runner performs and charges the initial hold; do not call act for that hold. Action order is panda_leaphand-1 then panda_leaphand_left-0. act returns float32 shape (44,) in [-1,1], or None on invalid/missing observations or at step_id >= 600. None does not assert success. The draft has no early visual completion detector.
|
| 8 |
+
|
| 9 |
+
Evidence: ../demo_analysis.md, ../evidence/stats.json, ../evidence/action_details.json, ../evidence/visual_inspection.json and contact sheets. bank_provenance.json identifies legal source and exact computational sampling; artifact_hashes.json records generated artifact hashes. Runner supplies its verified demo manifest and common environment lock separately; neither is fabricated here.
|
| 10 |
+
|
| 11 |
+
Validation is syntax and synthetic-input only; see synthetic_check_results.json. No environment has been imported or contacted. No models or pretrained weights were changed. No internet request was made.
|
| 12 |
+
|
| 13 |
+
Before any later authorized rehearsal, review the hand-label bound discrepancy (1.2 in source versus 1.0 legal), observation wiring, phase stalling risk, and budget handling. Environment behavior, live efficacy, success criterion, and recovery remain blocked on a later authorized environment stage. This preparation itself has no missing-data blocker.
|
agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/model_tool_manifest.yaml
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
stage: authorized_E20_continuation
|
| 2 |
+
status: candidate_under_authorized_exploration
|
| 3 |
+
task_id: DualArmLayerClayInDish-v1
|
| 4 |
+
worker_role: single_task_local_coding_worker
|
| 5 |
+
exploration_budget: 20
|
| 6 |
+
real_task_tests: recorded_by_trusted_API
|
| 7 |
+
rehearsals: recorded_by_trusted_API
|
| 8 |
+
simulator_created_or_imported: false
|
| 9 |
+
task_specific_expert_or_controller_invoked: false
|
| 10 |
+
hidden_state_access: false
|
| 11 |
+
other_task_data_access: false
|
| 12 |
+
network_requests: 0
|
| 13 |
+
neural_finetuning: false
|
| 14 |
+
pretrained_weights_modified: false
|
| 15 |
+
models:
|
| 16 |
+
coding_model:
|
| 17 |
+
identity: Codex as identified by session instructions
|
| 18 |
+
exact_checkpoint: not_exposed_to_worker
|
| 19 |
+
provenance: provider_supplied_session
|
| 20 |
+
updates: none
|
| 21 |
+
frozen_weight_reference: provider_managed_not_locally_accessible
|
| 22 |
+
runtime_neural_models: []
|
| 23 |
+
pretrained_tool_models: []
|
| 24 |
+
downloaded_weights: []
|
| 25 |
+
controller:
|
| 26 |
+
entrypoint: controller.py
|
| 27 |
+
interface: reset_episode() and act(obs)
|
| 28 |
+
method: nonparametric_observation_conditioned_action_retrieval
|
| 29 |
+
learned_neural_parameters: none
|
| 30 |
+
data_asset: reference_bank.npz
|
| 31 |
+
data_asset_kind: deterministic_table_of_authorized_RGB_features_proprioception_and_action_labels
|
| 32 |
+
bank_builder: build_bank.py
|
| 33 |
+
table_sampling: every_even_action_aligned_observation_index_in_each_of_20_demos
|
| 34 |
+
label_transform: componentwise_clipping_to_contract_minus_one_plus_one
|
| 35 |
+
output_order: [panda_leaphand-1, panda_leaphand_left-0]
|
| 36 |
+
output_width: 44
|
| 37 |
+
native_horizon: 600
|
| 38 |
+
control_hz: 20
|
| 39 |
+
initial_hold: runner_owned_one_native_step
|
| 40 |
+
runtime_cameras: [front_camera, top_camera]
|
| 41 |
+
runtime_proprioception: all_four_contract_qpos_qvel_paths
|
| 42 |
+
live_demo_id_or_seed_matching: false
|
| 43 |
+
step_id_use: budget_guard_duplicate_cache_and_bounded_phase_progression
|
| 44 |
+
terminal_condition: budget_or_invalid_input_only_no_success_claim
|
| 45 |
+
provenance:
|
| 46 |
+
contract: /task_contract.json
|
| 47 |
+
demo_manifest: /demo_manifest.json
|
| 48 |
+
demo_root: /demonstrations
|
| 49 |
+
access: /worker_api.py_API.read_demo
|
| 50 |
+
authorized_demo_ids: [demo_00, demo_01, demo_02, demo_03, demo_04, demo_05, demo_06, demo_07, demo_08, demo_09, demo_10, demo_11, demo_12, demo_13, demo_14, demo_15, demo_16, demo_17, demo_18, demo_19]
|
| 51 |
+
computational_access_log: bank_provenance.json
|
| 52 |
+
actual_visual_inspection_log: ../evidence/visual_inspection.json
|
| 53 |
+
analysis: ../demo_analysis.md
|
| 54 |
+
artifact_and_source_hashes: artifact_hashes.json
|
| 55 |
+
verified_demo_manifest: supplied_separately_by_runner
|
| 56 |
+
common_environment_lock: supplied_separately_by_runner
|
| 57 |
+
actual_tools:
|
| 58 |
+
- name: functions.exec_with_exec_command_and_write_stdin
|
| 59 |
+
purpose: local_file_reads_writes_and_Python_execution
|
| 60 |
+
version: provider_tool_version_not_exposed
|
| 61 |
+
- name: view_image
|
| 62 |
+
purpose: display_legal_demo_contact_sheets
|
| 63 |
+
version: provider_tool_version_not_exposed
|
| 64 |
+
- name: worker_API.read_demo
|
| 65 |
+
purpose: manifest_allowlisted_HDF5_and_authorized_live_API
|
| 66 |
+
version: mounted_standalone_module_hash_in_artifact_hashes
|
| 67 |
+
- name: Python
|
| 68 |
+
version: 3.10.20
|
| 69 |
+
provenance: preinstalled_environment
|
| 70 |
+
purpose: compilation_analysis_checks_and_runtime
|
| 71 |
+
- name: NumPy
|
| 72 |
+
version: 2.2.6
|
| 73 |
+
provenance: preinstalled_environment
|
| 74 |
+
purpose: numeric_analysis_feature_table_and_runtime
|
| 75 |
+
- name: OpenCV
|
| 76 |
+
version: 4.12.0
|
| 77 |
+
provenance: preinstalled_environment
|
| 78 |
+
purpose: RGB_resizing_color_conversion_contact_sheets_and_runtime
|
| 79 |
+
- name: h5py
|
| 80 |
+
version: 3.16.0
|
| 81 |
+
hdf5_version: 2.0.0
|
| 82 |
+
provenance: preinstalled_environment
|
| 83 |
+
purpose: authorized_demo_reads_via_worker_API
|
| 84 |
+
- name: Python_standard_library
|
| 85 |
+
version: bundled_with_Python_3.10.20
|
| 86 |
+
modules: [importlib.util, json, pathlib, hashlib, py_compile, sys, platform]
|
| 87 |
+
purpose: standalone_imports_IO_provenance_and_syntax_checks
|
| 88 |
+
runtime_dependencies: [Python, NumPy, OpenCV]
|
| 89 |
+
offline_build_additional_dependencies: [h5py, worker_api.py, authorized_demonstrations, demo_manifest.json]
|
| 90 |
+
unused_available_libraries: [SciPy, torch]
|
| 91 |
+
validation:
|
| 92 |
+
scope: authorized_interactive_exploration_and_independent_rehearsals
|
| 93 |
+
script: synthetic_checks.py
|
| 94 |
+
result: synthetic_check_results.json
|
| 95 |
+
task_performance: see_findings_and_trusted_rehearsal_results
|
| 96 |
+
known_limitations:
|
| 97 |
+
- Only_trusted_worker_API_environment_access_is_used.
|
| 98 |
+
- Internet_permitted_only_through_audited_provider_proxy_no_network_access_attempted_or_validated.
|
| 99 |
+
- No_camera_calibration_root_transforms_joint_names_or_hidden_success_signal.
|
| 100 |
+
- Hand_labels_exceed_native_upper_bound_in_all_20_demos_clipping_effect_unverified.
|
| 101 |
+
- Coarse_RGB_and_proprioceptive_retrieval_can_stall_alias_phases_or_mix_contact_modes.
|
| 102 |
+
- No_verified_layer_order_completion_detector_or_failure_recovery.
|
| 103 |
+
- Frozen_coding_model_checkpoint_identifier_not_exposed.
|
| 104 |
+
- Synthetic_changed_input_case_returned_same_action_and_does_not_establish_policy_sensitivity_or_efficacy.
|
agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/policy_runner.py
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Frozen-program entry point; no development agent and no reset capability."""
|
| 2 |
+
import importlib.util
|
| 3 |
+
import sys
|
| 4 |
+
|
| 5 |
+
sys.path.insert(0,'/artifact')
|
| 6 |
+
sys.path.insert(0,'/')
|
| 7 |
+
from worker_api import API
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
def main():
|
| 11 |
+
spec=importlib.util.spec_from_file_location('controller','/artifact/controller.py')
|
| 12 |
+
module=importlib.util.module_from_spec(spec)
|
| 13 |
+
spec.loader.exec_module(module)
|
| 14 |
+
module.reset_episode()
|
| 15 |
+
api=API()
|
| 16 |
+
result=api.latest_observation()
|
| 17 |
+
while not (result['terminated'] or result['truncated'] or result['horizon_reached']):
|
| 18 |
+
obs=dict(result['observation'],step_id=result['step_id'])
|
| 19 |
+
action=module.act(obs)
|
| 20 |
+
if action is None:break
|
| 21 |
+
response=api.execute_actions([action])
|
| 22 |
+
result=response['steps'][-1]
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
if __name__=='__main__':main()
|
agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/skills.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Draft controller skills
|
| 2 |
+
|
| 3 |
+
- Observe both robots via the four legal proprioception paths; preserve contract action-part order.
|
| 4 |
+
- Extract deterministic front/top RGB thumbnails and saturation occupancy from current observations.
|
| 5 |
+
- Retrieve locally phase-compatible actions from the authorized D20 observation table, using both current visual evidence and joint state.
|
| 6 |
+
- Preserve native 44-dimensional bounds and account for the runner-owned initial hold.
|
| 7 |
+
- Reset phase/action cache between episodes; stop on missing input or exhausted native horizon.
|
| 8 |
+
|
| 9 |
+
These are implemented mechanisms, not demonstrated task skills. Tool pickup, clay transfer, layer ordering, recovery, and successful completion remain unverified. No simulator, expert controller, neural finetuning, or additional skill/plugin was used.
|
agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/synthetic_check_results.json
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"kind": "syntax and synthetic input only",
|
| 3 |
+
"environment_calls": 0,
|
| 4 |
+
"checks": [
|
| 5 |
+
"unbatched RGB and proprioception produce finite legal float32[44]",
|
| 6 |
+
"singleton-batched and unbatched inputs agree",
|
| 7 |
+
"duplicate step returns cached action without advancing phase",
|
| 8 |
+
"reset is deterministic",
|
| 9 |
+
"altered synthetic RGB/proprioception remains legal",
|
| 10 |
+
"step 599 accepts action, step 600 stops: runner hold budget respected",
|
| 11 |
+
"missing camera and nonfinite proprioception stop",
|
| 12 |
+
"non-uint8 RGB stops"
|
| 13 |
+
],
|
| 14 |
+
"synthetic_joint_and_image_change_action_l2": 0.0,
|
| 15 |
+
"syntax": "passed",
|
| 16 |
+
"status": "passed; not evidence of task performance"
|
| 17 |
+
}
|
agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/synthetic_checks.py
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Interface checks on fabricated arrays only; not a task rollout or replay."""
|
| 2 |
+
import json,py_compile
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
import numpy as np
|
| 5 |
+
import controller as c
|
| 6 |
+
root=Path(__file__).parent
|
| 7 |
+
for name in ('controller.py','build_bank.py','synthetic_checks.py'):
|
| 8 |
+
py_compile.compile(str(root/name),doraise=True)
|
| 9 |
+
results={'kind':'syntax and synthetic input only','environment_calls':0,'checks':[]}
|
| 10 |
+
|
| 11 |
+
def obs(batch=False, variant=0, step=1):
|
| 12 |
+
rgb={}
|
| 13 |
+
for camera in c.CAMERAS:
|
| 14 |
+
h,w=(320,240) if camera=='top_camera' else (240,320)
|
| 15 |
+
im=np.full((h,w,3),145,np.uint8)
|
| 16 |
+
im[h//2:h//2+20,w//3:w//3+20]=[30,50,220] if variant==0 else [220,40,30]
|
| 17 |
+
rgb[camera]=im[None] if batch else im
|
| 18 |
+
prop={}
|
| 19 |
+
for r,key in enumerate(c.KEYS):
|
| 20 |
+
q=np.zeros(23,np.float32);q[:7]=[.15,-.2,.1,-2.0,(-1 if r else 1)*1.3,1.4,.5]
|
| 21 |
+
q += variant*.04
|
| 22 |
+
prop['agent/'+key+'/qpos']=q[None] if batch else q
|
| 23 |
+
prop['agent/'+key+'/qvel']=np.zeros((1,23) if batch else 23,np.float32)
|
| 24 |
+
return {'rgb':rgb,'proprioception':prop,'step_id':step,'instruction':'Dual-arm dexterous clay layering task.'}
|
| 25 |
+
|
| 26 |
+
c.reset_episode();a=c.act(obs());assert a.shape==(44,) and a.dtype==np.float32 and np.isfinite(a).all() and (abs(a)<=1).all()
|
| 27 |
+
results['checks'].append('unbatched RGB and proprioception produce finite legal float32[44]')
|
| 28 |
+
c.reset_episode();ab=c.act(obs(batch=True));assert np.array_equal(a,ab)
|
| 29 |
+
results['checks'].append('singleton-batched and unbatched inputs agree')
|
| 30 |
+
assert np.array_equal(c.act(obs(batch=True)),ab)
|
| 31 |
+
results['checks'].append('duplicate step returns cached action without advancing phase')
|
| 32 |
+
c.reset_episode();assert np.array_equal(c.act(obs()),a)
|
| 33 |
+
results['checks'].append('reset is deterministic')
|
| 34 |
+
c.reset_episode();alt=c.act(obs(variant=1));assert np.isfinite(alt).all() and (abs(alt)<=1).all()
|
| 35 |
+
results['checks'].append('altered synthetic RGB/proprioception remains legal')
|
| 36 |
+
results['synthetic_joint_and_image_change_action_l2']=float(np.linalg.norm(alt-a))
|
| 37 |
+
c.reset_episode();end=c.act(obs(step=599));assert end is not None and end.shape==(44,)
|
| 38 |
+
assert c.act(obs(step=600)) is None
|
| 39 |
+
results['checks'].append('step 599 accepts action, step 600 stops: runner hold budget respected')
|
| 40 |
+
c.reset_episode();bad=obs();del bad['rgb']['top_camera'];assert c.act(bad) is None
|
| 41 |
+
bad=obs();bad['proprioception']['agent/'+c.KEYS[0]+'/qpos'][0]=np.nan;assert c.act(bad) is None
|
| 42 |
+
results['checks'].append('missing camera and nonfinite proprioception stop')
|
| 43 |
+
bad=obs();bad['rgb']['front_camera']=bad['rgb']['front_camera'].astype(np.float32);assert c.act(bad) is None
|
| 44 |
+
results['checks'].append('non-uint8 RGB stops')
|
| 45 |
+
results['syntax']='passed';results['status']='passed; not evidence of task performance'
|
| 46 |
+
(root/'synthetic_check_results.json').write_text(json.dumps(results,indent=2));print(json.dumps(results,indent=2))
|
agent_d20_e20/frozen_20261102/tasks/DualArmLayerClayInDish-v1/frozen/worker_api.py
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Standalone worker client; safe to mount without the runner package."""
|
| 2 |
+
import base64
|
| 3 |
+
import json
|
| 4 |
+
import socket
|
| 5 |
+
import struct
|
| 6 |
+
import uuid
|
| 7 |
+
import os
|
| 8 |
+
from pathlib import Path
|
| 9 |
+
|
| 10 |
+
import numpy as np
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
def array_hook(value):
|
| 14 |
+
if value.get('__array__') is True:
|
| 15 |
+
dtype=np.dtype(value['dtype'])
|
| 16 |
+
if dtype.kind not in 'bifu':raise ValueError('non-numeric array from service')
|
| 17 |
+
raw=base64.b64decode(value['data'],validate=True)
|
| 18 |
+
return np.frombuffer(raw,dtype=dtype).reshape(value['shape']).copy()
|
| 19 |
+
return value
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
class API:
|
| 23 |
+
def __init__(self,socket_path='/rpc/control.sock',demo_root='/demonstrations',manifest='/demo_manifest.json'):
|
| 24 |
+
self.socket_path=socket_path
|
| 25 |
+
self.demo_root=Path(demo_root)
|
| 26 |
+
self.manifest=Path(manifest)
|
| 27 |
+
|
| 28 |
+
def call(self,method,arguments=None,request_id=None):
|
| 29 |
+
# Caller can persist a request ID before sending. Never automatically retry.
|
| 30 |
+
request_id=request_id or str(uuid.uuid4())
|
| 31 |
+
request={'request_id':request_id,'method':method,'arguments':arguments or {}}
|
| 32 |
+
if os.environ.get('AGENT_E20_RPC_TOKEN'):
|
| 33 |
+
request['token']=os.environ['AGENT_E20_RPC_TOKEN']
|
| 34 |
+
payload=json.dumps(request,allow_nan=False).encode()
|
| 35 |
+
if len(payload)>65536:raise ValueError('request too large')
|
| 36 |
+
with socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) as s:
|
| 37 |
+
s.settimeout(1810);s.connect(self.socket_path)
|
| 38 |
+
s.sendall(struct.pack('!I',len(payload))+payload)
|
| 39 |
+
def exact(n):
|
| 40 |
+
chunks=[]
|
| 41 |
+
while n:
|
| 42 |
+
chunk=s.recv(min(n,1024*1024))
|
| 43 |
+
if not chunk:raise RuntimeError('RPC interrupted; do not replay action with a new ID')
|
| 44 |
+
chunks.append(chunk);n-=len(chunk)
|
| 45 |
+
return b''.join(chunks)
|
| 46 |
+
length=struct.unpack('!I',exact(4))[0]
|
| 47 |
+
if length>64*1024*1024:raise RuntimeError('response too large')
|
| 48 |
+
result=json.loads(exact(length),object_hook=array_hook)
|
| 49 |
+
if not result['ok']:raise RuntimeError(result['error'])
|
| 50 |
+
return result['result']
|
| 51 |
+
|
| 52 |
+
def next_episode(self,request_id=None):return self.call('next_episode',request_id=request_id)
|
| 53 |
+
def latest_observation(self):return self.call('latest_observation')
|
| 54 |
+
def execute_actions(self,actions,request_id=None):
|
| 55 |
+
return self.call('execute_actions',{'actions':np.asarray(actions).tolist()},request_id)
|
| 56 |
+
def finish_episode(self):return self.call('finish_episode')
|
| 57 |
+
def budget_status(self):return self.call('budget_status')
|
| 58 |
+
def rehearse(self,candidate='candidate',request_id=None):
|
| 59 |
+
return self.call('rehearse',{'candidate':candidate},request_id)
|
| 60 |
+
def score_rehearsal(self,episode,visible_success,evidence):
|
| 61 |
+
return self.call('score_rehearsal',{'episode':episode,'visible_success':visible_success,'evidence':evidence})
|
| 62 |
+
def freeze(self):return self.call('freeze')
|
| 63 |
+
|
| 64 |
+
def read_demo(self,demo_id,start=0,stop=None,fields=None):
|
| 65 |
+
import h5py
|
| 66 |
+
manifest=json.loads(self.manifest.read_text())
|
| 67 |
+
if manifest.get('status') not in ('released','released_for_offline_analysis'):
|
| 68 |
+
raise RuntimeError('demonstrations not released by trusted preflight')
|
| 69 |
+
entries={e['demo_id']:e for e in manifest['episodes']}
|
| 70 |
+
if demo_id not in entries:raise ValueError('unauthorized demo ID')
|
| 71 |
+
entry=entries[demo_id]
|
| 72 |
+
allowed={f['path'] for f in entry['fields']}
|
| 73 |
+
fields=sorted(allowed) if fields is None else fields
|
| 74 |
+
if not set(fields)<=allowed:raise ValueError('unauthorized demo field')
|
| 75 |
+
stop=entry['length']+1 if stop is None else stop
|
| 76 |
+
if not isinstance(start,int) or not isinstance(stop,int) or not 0<=start<stop<=entry['length']+1:
|
| 77 |
+
raise ValueError('invalid frame interval')
|
| 78 |
+
path=(self.demo_root/entry['file']).resolve()
|
| 79 |
+
if path.parent!=self.demo_root.resolve():raise ValueError('invalid demo file')
|
| 80 |
+
with h5py.File(path,'r') as f:
|
| 81 |
+
return {field:f[field][start:min(stop,len(f[field]))] for field in fields}
|
agent_d20_e20/frozen_20261102/tasks/DualArmMahjongSetup-v1/frozen/demonstrations_readonly/demo_04.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d7f2e85937b9f63b9636999d8d255de03f68faf9d86063cbc3f84628b121f7a9
|
| 3 |
+
size 127660612
|
agent_d20_e20/frozen_20261102/tasks/DualArmMahjongSetup-v1/frozen/demonstrations_readonly/demo_08.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:265b0f2753363168750c627f4593baf5e7c7b8a10b1a8bc381b6f252b1270e5c
|
| 3 |
+
size 125615921
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_01.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:445d84eb102d8bfd1e08a38d5d6f1467612d0c31f4c1cb0408c3ce25b845696d
|
| 3 |
+
size 165309101
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_02.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e5527220fd2a0c619d33bd85f88d2dd313316a7c63e4662d560e9c3e4784f17a
|
| 3 |
+
size 162365347
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_05.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c89a9bfe5ab6a92f07f5132aab3983e881b01c91dd532ee00cf15c6f94e0d47a
|
| 3 |
+
size 157320727
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_06.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:43166fb59ea76178cc351872b56244a88cd5dee83611a731cc007339aa255912
|
| 3 |
+
size 163094100
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_07.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:80b0aeb63dd303df8243d9ebb6d6d92752b531f77ec25cb296241b0789337cb9
|
| 3 |
+
size 161549807
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_11.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:284d69f5db81e912b0f9811cd39e9bcf656cc989cab370896673a39e00b246a8
|
| 3 |
+
size 161978000
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_14.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:07daca8ba882035ec8fcf206bdf44a7ba73a3a08b0e4c6cc62fa62ff88686d91
|
| 3 |
+
size 162972351
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_15.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:70fe443ca31d11aead05ee2f3c0f1bb38e1dd841f7fc8cb35545387fdeb984aa
|
| 3 |
+
size 165511764
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_16.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5df554e9f2c1a00dd4f13ebe2b2d86d7740771328c78ddc34ded95d028e7a0ed
|
| 3 |
+
size 170000208
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/demonstrations_readonly/demo_18.h5
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6f0b695c5b97cdf0380232acbd6546435628096dba16d61325329abdf0da91d4
|
| 3 |
+
size 163676297
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/exemplars.npz
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:36b80d5bcb6923bbb1f70e009c832d979a58c93f8822f5af33d59946af26376d
|
| 3 |
+
size 10842456
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/geometry.npz
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d8c29d8ba2b2b79bfcbb924dafa41ec1442a5bd71340119070fb063e2eb5f4c5
|
| 3 |
+
size 1438
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/object_geometry.npz
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:62a9ed8b690ef2130c9271d0846f88904d0e5e2544491efe49c853fd6dfb5f8c
|
| 3 |
+
size 3084
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenFridge-v1/frozen/pose_maps.npz
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b165fcd2ff88678acac5be09e968ade3000c6f061f95d2cde4b7fcbc2fff307f
|
| 3 |
+
size 7732
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/__pycache__/build_bank.cpython-310.pyc
ADDED
|
Binary file (2.31 kB). View file
|
|
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/__pycache__/controller.cpython-310.pyc
ADDED
|
Binary file (3.42 kB). View file
|
|
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/__pycache__/synthetic_checks.cpython-310.pyc
ADDED
|
Binary file (2.08 kB). View file
|
|
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/build_bank.py
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Offline compilation only; accesses exactly the released D20 legal fields."""
|
| 2 |
+
import importlib.util,json
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
import numpy as np
|
| 5 |
+
from controller import ROBOTS,CAMERAS,visual_features
|
| 6 |
+
spec=importlib.util.spec_from_file_location('worker_api','/worker_api.py'); m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m)
|
| 7 |
+
api=m.API(); manifest=json.load(open('/demo_manifest.json'))
|
| 8 |
+
assert len(manifest['episodes'])==20
|
| 9 |
+
parts={k:[] for k in ['q','v','actions','image_0','image_1','demo_index','frame_index']}
|
| 10 |
+
for ei,e in enumerate(manifest['episodes']):
|
| 11 |
+
n=e['length']
|
| 12 |
+
fields=[f'obs/agent/{r}/{p}' for r in ROBOTS for p in ['qpos','qvel']]+[f'actions/{r}' for r in ROBOTS]
|
| 13 |
+
d=api.read_demo(e['demo_id'],fields=fields)
|
| 14 |
+
for key,p in [('q','qpos'),('v','qvel')]: parts[key].append(np.concatenate([d[f'obs/agent/{r}/{p}'][:n] for r in ROBOTS],1))
|
| 15 |
+
parts['actions'].append(np.concatenate([d[f'actions/{r}'] for r in ROBOTS],1))
|
| 16 |
+
for ci,c in enumerate(CAMERAS):
|
| 17 |
+
path=f'obs/sensor_data/{c}/rgb'; images=api.read_demo(e['demo_id'],0,n,[path])[path]
|
| 18 |
+
parts[f'image_{ci}'].append(np.stack([visual_features(im) for im in images]))
|
| 19 |
+
parts['demo_index'].append(np.full(n,ei,dtype=np.int16));parts['frame_index'].append(np.arange(n,dtype=np.int16))
|
| 20 |
+
print(e['demo_id'],n,flush=True)
|
| 21 |
+
np.savez_compressed(Path(__file__).with_name('reference_bank.npz'),**{k:np.concatenate(v) for k,v in parts.items()})
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/controller.py
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""D20 observation-conditioned retrieval with bounded terminal-state recovery."""
|
| 2 |
+
from pathlib import Path
|
| 3 |
+
import numpy as np
|
| 4 |
+
import cv2
|
| 5 |
+
|
| 6 |
+
ROBOTS = ('panda_leaphand-1', 'panda_leaphand_left-0')
|
| 7 |
+
CAMERAS = ('front_camera', 'top_camera')
|
| 8 |
+
_bank = None
|
| 9 |
+
_calls = 0
|
| 10 |
+
_still = 0
|
| 11 |
+
_pull = 0
|
| 12 |
+
_axis = np.array([0.,1.],dtype=np.float32)
|
| 13 |
+
|
| 14 |
+
def visual_features(image):
|
| 15 |
+
image = np.asarray(image)
|
| 16 |
+
if image.ndim == 4 and image.shape[0] == 1:
|
| 17 |
+
image = image[0]
|
| 18 |
+
if image.ndim != 3 or image.shape[2] != 3 or image.dtype != np.uint8:
|
| 19 |
+
raise ValueError('RGB must be uint8 HWC or 1HWC')
|
| 20 |
+
x = image.astype(np.float32) / 255.
|
| 21 |
+
# Color cue is a soft blue dominance map, not a claim of object identity.
|
| 22 |
+
blue = np.maximum(0., x[:,:,2] - np.maximum(x[:,:,0], x[:,:,1]))
|
| 23 |
+
return np.concatenate((cv2.resize(x, (24,24), interpolation=cv2.INTER_AREA).ravel(),
|
| 24 |
+
cv2.resize(blue, (32,32), interpolation=cv2.INTER_AREA).ravel())).astype(np.float32)
|
| 25 |
+
|
| 26 |
+
def reset_episode():
|
| 27 |
+
global _calls, _still, _pull, _axis
|
| 28 |
+
_calls = 0
|
| 29 |
+
_still = 0
|
| 30 |
+
_pull = 0
|
| 31 |
+
_axis = np.array([0.,1.],dtype=np.float32)
|
| 32 |
+
|
| 33 |
+
def _load():
|
| 34 |
+
global _bank
|
| 35 |
+
if _bank is None:
|
| 36 |
+
with np.load(Path(__file__).with_name('reference_bank.npz'), allow_pickle=False) as z:
|
| 37 |
+
_bank = {k:z[k] for k in z.files}
|
| 38 |
+
return _bank
|
| 39 |
+
|
| 40 |
+
def act(obs):
|
| 41 |
+
"""Return contract-ordered 44-vector; None is budget exhaustion, not success."""
|
| 42 |
+
global _calls, _still, _pull, _axis
|
| 43 |
+
step = int(obs.get('step_id', _calls + 1))
|
| 44 |
+
if step >= 400 or _calls >= 399:
|
| 45 |
+
return None
|
| 46 |
+
_calls += 1
|
| 47 |
+
try:
|
| 48 |
+
prop = obs['proprioception']
|
| 49 |
+
q = np.concatenate([np.asarray(prop[f'agent/{r}/qpos'], dtype=np.float32).reshape(-1) for r in ROBOTS])
|
| 50 |
+
v = np.concatenate([np.asarray(prop[f'agent/{r}/qvel'], dtype=np.float32).reshape(-1) for r in ROBOTS])
|
| 51 |
+
if q.shape != (46,) or v.shape != (46,) or not np.isfinite(q).all() or not np.isfinite(v).all():
|
| 52 |
+
return np.zeros(44, dtype=np.float32)
|
| 53 |
+
visuals = [visual_features(obs['rgb'][c]) for c in CAMERAS]
|
| 54 |
+
except (KeyError, ValueError, TypeError):
|
| 55 |
+
return np.zeros(44, dtype=np.float32)
|
| 56 |
+
if _pull == 0:
|
| 57 |
+
im = np.asarray(obs['rgb']['top_camera']).squeeze().astype(np.float32)
|
| 58 |
+
ys,xs = np.where((im[:,:,2]-im[:,:,0]>25)&(im[:,:,2]-im[:,:,1]>15))
|
| 59 |
+
if len(xs)>20:
|
| 60 |
+
xy=np.column_stack((xs,ys)); vals,vecs=np.linalg.eigh(np.cov(xy.T)); direction=vecs[:,-1]
|
| 61 |
+
if direction[1]>0: direction=-direction
|
| 62 |
+
_axis=np.array([direction[0],-direction[1]],dtype=np.float32)
|
| 63 |
+
bank = _load()
|
| 64 |
+
scale = np.tile(np.r_[np.full(7,.15),np.full(16,.3)],2)
|
| 65 |
+
d = np.mean(((bank['q']-q)/scale)**2,axis=1)
|
| 66 |
+
d += .005 * np.mean(((bank['v']-v)/.5)**2,axis=1)
|
| 67 |
+
for i,f in enumerate(visuals):
|
| 68 |
+
diff = bank[f'image_{i}']-f
|
| 69 |
+
d += .6*np.mean((diff[:,:1728]/.15)**2,axis=1)
|
| 70 |
+
d += 2.*np.mean((diff[:,1728:]/.04)**2,axis=1)
|
| 71 |
+
if 'pose' not in bank: bank['pose']=blue_pose(bank['image_1'])
|
| 72 |
+
d += .5*np.mean(((bank['pose']-blue_pose(visuals[1]))/[.1,.1,.3,.15])**2,axis=1)
|
| 73 |
+
# Re-select from all observations at every step. No demo ID/time/seed lookup.
|
| 74 |
+
idx = np.argpartition(d, 4)[:5]
|
| 75 |
+
idx = idx[np.argsort(d[idx])]
|
| 76 |
+
# Avoid blending contradictory modes of coordinated bimanual action.
|
| 77 |
+
aa = bank['actions'][idx]
|
| 78 |
+
compatible = np.linalg.norm(aa-aa[0],axis=1) < .2
|
| 79 |
+
idx = idx[compatible]
|
| 80 |
+
weights = np.exp(-(d[idx]-d[idx[0]])/.08)
|
| 81 |
+
action = np.sum(bank['actions'][idx]*weights[:,None],axis=0)/weights.sum()
|
| 82 |
+
if not np.isfinite(action).all():
|
| 83 |
+
return np.zeros(44,dtype=np.float32)
|
| 84 |
+
# Faster approach remains re-localized from current observations every step.
|
| 85 |
+
action *= 2.0
|
| 86 |
+
arm_ids = [0,1,2,22,23,24]
|
| 87 |
+
closed = min(np.mean(q[7:23]),np.mean(q[30:46])) > .55
|
| 88 |
+
_still = _still + 1 if closed and np.linalg.norm(action[arm_ids]) < .02 else 0
|
| 89 |
+
if _still >= 5 and _pull == 0:
|
| 90 |
+
_pull = 1
|
| 91 |
+
if _pull:
|
| 92 |
+
action[arm_ids] = 0.
|
| 93 |
+
if _pull <= 35:
|
| 94 |
+
action[:2] = .12 * _axis
|
| 95 |
+
action[22:24] = -.12 * _axis
|
| 96 |
+
_pull += 1
|
| 97 |
+
if _pull > 41:
|
| 98 |
+
return None
|
| 99 |
+
return np.clip(action,-1.,1.).astype(np.float32)
|
| 100 |
+
|
| 101 |
+
def blue_pose(f):
|
| 102 |
+
f=np.atleast_2d(f)
|
| 103 |
+
yy,xx=np.mgrid[:32,:32];xy=np.column_stack((xx.ravel()/31,yy.ravel()/31))
|
| 104 |
+
w=np.maximum(f[:,1728:]-.015,0);w=w/(w.sum(-1,keepdims=True)+1e-8)
|
| 105 |
+
c=w@xy;dx=xy[None,:,:]-c[:,None,:]
|
| 106 |
+
cov=np.einsum('ni,nij,nik->njk',w,dx,dx); vals,vecs=np.linalg.eigh(cov)
|
| 107 |
+
v=vecs[:,:,-1];v*=np.where(v[:,1:2]<0,-1,1)
|
| 108 |
+
return np.column_stack((c,v[:,0],np.sqrt(np.maximum(0,vals[:,-1]))))
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/demo_manifest.json
ADDED
|
@@ -0,0 +1,2168 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"task_id": "DualArmOpenPen-v1",
|
| 3 |
+
"status": "released",
|
| 4 |
+
"selection_rule": "prefer existing pinned D20, otherwise numeric trajectory ID sort before reading data",
|
| 5 |
+
"lineage_status": "pinned_comparator",
|
| 6 |
+
"episodes": [
|
| 7 |
+
{
|
| 8 |
+
"demo_id": "demo_00",
|
| 9 |
+
"file": "demo_00.h5",
|
| 10 |
+
"length": 327,
|
| 11 |
+
"fields": [
|
| 12 |
+
{
|
| 13 |
+
"path": "actions/panda_leaphand-1",
|
| 14 |
+
"shape": [
|
| 15 |
+
327,
|
| 16 |
+
22
|
| 17 |
+
],
|
| 18 |
+
"dtype": "float32"
|
| 19 |
+
},
|
| 20 |
+
{
|
| 21 |
+
"path": "actions/panda_leaphand_left-0",
|
| 22 |
+
"shape": [
|
| 23 |
+
327,
|
| 24 |
+
22
|
| 25 |
+
],
|
| 26 |
+
"dtype": "float32"
|
| 27 |
+
},
|
| 28 |
+
{
|
| 29 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 30 |
+
"shape": [
|
| 31 |
+
328,
|
| 32 |
+
23
|
| 33 |
+
],
|
| 34 |
+
"dtype": "float32"
|
| 35 |
+
},
|
| 36 |
+
{
|
| 37 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 38 |
+
"shape": [
|
| 39 |
+
328,
|
| 40 |
+
23
|
| 41 |
+
],
|
| 42 |
+
"dtype": "float32"
|
| 43 |
+
},
|
| 44 |
+
{
|
| 45 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 46 |
+
"shape": [
|
| 47 |
+
328,
|
| 48 |
+
23
|
| 49 |
+
],
|
| 50 |
+
"dtype": "float32"
|
| 51 |
+
},
|
| 52 |
+
{
|
| 53 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 54 |
+
"shape": [
|
| 55 |
+
328,
|
| 56 |
+
23
|
| 57 |
+
],
|
| 58 |
+
"dtype": "float32"
|
| 59 |
+
},
|
| 60 |
+
{
|
| 61 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 62 |
+
"shape": [
|
| 63 |
+
328,
|
| 64 |
+
240,
|
| 65 |
+
320,
|
| 66 |
+
3
|
| 67 |
+
],
|
| 68 |
+
"dtype": "uint8"
|
| 69 |
+
},
|
| 70 |
+
{
|
| 71 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 72 |
+
"shape": [
|
| 73 |
+
328,
|
| 74 |
+
240,
|
| 75 |
+
320,
|
| 76 |
+
3
|
| 77 |
+
],
|
| 78 |
+
"dtype": "uint8"
|
| 79 |
+
},
|
| 80 |
+
{
|
| 81 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 82 |
+
"shape": [
|
| 83 |
+
328,
|
| 84 |
+
240,
|
| 85 |
+
320,
|
| 86 |
+
3
|
| 87 |
+
],
|
| 88 |
+
"dtype": "uint8"
|
| 89 |
+
},
|
| 90 |
+
{
|
| 91 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 92 |
+
"shape": [
|
| 93 |
+
328,
|
| 94 |
+
240,
|
| 95 |
+
320,
|
| 96 |
+
3
|
| 97 |
+
],
|
| 98 |
+
"dtype": "uint8"
|
| 99 |
+
},
|
| 100 |
+
{
|
| 101 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 102 |
+
"shape": [
|
| 103 |
+
328,
|
| 104 |
+
320,
|
| 105 |
+
240,
|
| 106 |
+
3
|
| 107 |
+
],
|
| 108 |
+
"dtype": "uint8"
|
| 109 |
+
}
|
| 110 |
+
],
|
| 111 |
+
"trajectory_sha256": "55c949f1baa81f0879149cd0ba79ba7579ad7eba9a0d46767d2fe165ff2a4538",
|
| 112 |
+
"source_sha256": "b26d7470cfbd8716304094c8482e6cbfdff90f31b5613c8fc8e5dbc085fc69db",
|
| 113 |
+
"view_sha256": "dec889fa131d3e76291d6fa33297a92fe399ebf8c8e639cccf889e37549ed5b5"
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"demo_id": "demo_01",
|
| 117 |
+
"file": "demo_01.h5",
|
| 118 |
+
"length": 289,
|
| 119 |
+
"fields": [
|
| 120 |
+
{
|
| 121 |
+
"path": "actions/panda_leaphand-1",
|
| 122 |
+
"shape": [
|
| 123 |
+
289,
|
| 124 |
+
22
|
| 125 |
+
],
|
| 126 |
+
"dtype": "float32"
|
| 127 |
+
},
|
| 128 |
+
{
|
| 129 |
+
"path": "actions/panda_leaphand_left-0",
|
| 130 |
+
"shape": [
|
| 131 |
+
289,
|
| 132 |
+
22
|
| 133 |
+
],
|
| 134 |
+
"dtype": "float32"
|
| 135 |
+
},
|
| 136 |
+
{
|
| 137 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 138 |
+
"shape": [
|
| 139 |
+
290,
|
| 140 |
+
23
|
| 141 |
+
],
|
| 142 |
+
"dtype": "float32"
|
| 143 |
+
},
|
| 144 |
+
{
|
| 145 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 146 |
+
"shape": [
|
| 147 |
+
290,
|
| 148 |
+
23
|
| 149 |
+
],
|
| 150 |
+
"dtype": "float32"
|
| 151 |
+
},
|
| 152 |
+
{
|
| 153 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 154 |
+
"shape": [
|
| 155 |
+
290,
|
| 156 |
+
23
|
| 157 |
+
],
|
| 158 |
+
"dtype": "float32"
|
| 159 |
+
},
|
| 160 |
+
{
|
| 161 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 162 |
+
"shape": [
|
| 163 |
+
290,
|
| 164 |
+
23
|
| 165 |
+
],
|
| 166 |
+
"dtype": "float32"
|
| 167 |
+
},
|
| 168 |
+
{
|
| 169 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 170 |
+
"shape": [
|
| 171 |
+
290,
|
| 172 |
+
240,
|
| 173 |
+
320,
|
| 174 |
+
3
|
| 175 |
+
],
|
| 176 |
+
"dtype": "uint8"
|
| 177 |
+
},
|
| 178 |
+
{
|
| 179 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 180 |
+
"shape": [
|
| 181 |
+
290,
|
| 182 |
+
240,
|
| 183 |
+
320,
|
| 184 |
+
3
|
| 185 |
+
],
|
| 186 |
+
"dtype": "uint8"
|
| 187 |
+
},
|
| 188 |
+
{
|
| 189 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 190 |
+
"shape": [
|
| 191 |
+
290,
|
| 192 |
+
240,
|
| 193 |
+
320,
|
| 194 |
+
3
|
| 195 |
+
],
|
| 196 |
+
"dtype": "uint8"
|
| 197 |
+
},
|
| 198 |
+
{
|
| 199 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 200 |
+
"shape": [
|
| 201 |
+
290,
|
| 202 |
+
240,
|
| 203 |
+
320,
|
| 204 |
+
3
|
| 205 |
+
],
|
| 206 |
+
"dtype": "uint8"
|
| 207 |
+
},
|
| 208 |
+
{
|
| 209 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 210 |
+
"shape": [
|
| 211 |
+
290,
|
| 212 |
+
320,
|
| 213 |
+
240,
|
| 214 |
+
3
|
| 215 |
+
],
|
| 216 |
+
"dtype": "uint8"
|
| 217 |
+
}
|
| 218 |
+
],
|
| 219 |
+
"trajectory_sha256": "4dcbbabc16bed4849317ad40b5cdf54c4787a020d4f11efaeea488558a5c6b10",
|
| 220 |
+
"source_sha256": "054e0db96106c066b3328cfd9bf5c78f24a1411ff2426aa283fdab6887de114e",
|
| 221 |
+
"view_sha256": "16ea7cf04783050e0d08a07bb999a9a3bc535dafadccd835de2139884ce084b3"
|
| 222 |
+
},
|
| 223 |
+
{
|
| 224 |
+
"demo_id": "demo_02",
|
| 225 |
+
"file": "demo_02.h5",
|
| 226 |
+
"length": 294,
|
| 227 |
+
"fields": [
|
| 228 |
+
{
|
| 229 |
+
"path": "actions/panda_leaphand-1",
|
| 230 |
+
"shape": [
|
| 231 |
+
294,
|
| 232 |
+
22
|
| 233 |
+
],
|
| 234 |
+
"dtype": "float32"
|
| 235 |
+
},
|
| 236 |
+
{
|
| 237 |
+
"path": "actions/panda_leaphand_left-0",
|
| 238 |
+
"shape": [
|
| 239 |
+
294,
|
| 240 |
+
22
|
| 241 |
+
],
|
| 242 |
+
"dtype": "float32"
|
| 243 |
+
},
|
| 244 |
+
{
|
| 245 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 246 |
+
"shape": [
|
| 247 |
+
295,
|
| 248 |
+
23
|
| 249 |
+
],
|
| 250 |
+
"dtype": "float32"
|
| 251 |
+
},
|
| 252 |
+
{
|
| 253 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 254 |
+
"shape": [
|
| 255 |
+
295,
|
| 256 |
+
23
|
| 257 |
+
],
|
| 258 |
+
"dtype": "float32"
|
| 259 |
+
},
|
| 260 |
+
{
|
| 261 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 262 |
+
"shape": [
|
| 263 |
+
295,
|
| 264 |
+
23
|
| 265 |
+
],
|
| 266 |
+
"dtype": "float32"
|
| 267 |
+
},
|
| 268 |
+
{
|
| 269 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 270 |
+
"shape": [
|
| 271 |
+
295,
|
| 272 |
+
23
|
| 273 |
+
],
|
| 274 |
+
"dtype": "float32"
|
| 275 |
+
},
|
| 276 |
+
{
|
| 277 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 278 |
+
"shape": [
|
| 279 |
+
295,
|
| 280 |
+
240,
|
| 281 |
+
320,
|
| 282 |
+
3
|
| 283 |
+
],
|
| 284 |
+
"dtype": "uint8"
|
| 285 |
+
},
|
| 286 |
+
{
|
| 287 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 288 |
+
"shape": [
|
| 289 |
+
295,
|
| 290 |
+
240,
|
| 291 |
+
320,
|
| 292 |
+
3
|
| 293 |
+
],
|
| 294 |
+
"dtype": "uint8"
|
| 295 |
+
},
|
| 296 |
+
{
|
| 297 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 298 |
+
"shape": [
|
| 299 |
+
295,
|
| 300 |
+
240,
|
| 301 |
+
320,
|
| 302 |
+
3
|
| 303 |
+
],
|
| 304 |
+
"dtype": "uint8"
|
| 305 |
+
},
|
| 306 |
+
{
|
| 307 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 308 |
+
"shape": [
|
| 309 |
+
295,
|
| 310 |
+
240,
|
| 311 |
+
320,
|
| 312 |
+
3
|
| 313 |
+
],
|
| 314 |
+
"dtype": "uint8"
|
| 315 |
+
},
|
| 316 |
+
{
|
| 317 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 318 |
+
"shape": [
|
| 319 |
+
295,
|
| 320 |
+
320,
|
| 321 |
+
240,
|
| 322 |
+
3
|
| 323 |
+
],
|
| 324 |
+
"dtype": "uint8"
|
| 325 |
+
}
|
| 326 |
+
],
|
| 327 |
+
"trajectory_sha256": "8108732ea1292016c7a75da31c8b821fbbe08d1d18b90c8e002f145f189df5c4",
|
| 328 |
+
"source_sha256": "a5e223e254f81537d527e8c6b64f2ee0c9ca31eb087b036394656f85f4ec57d9",
|
| 329 |
+
"view_sha256": "27d2a8988bb49a2a7feae13b306bc80544d195db5ac719252f404deb250ec375"
|
| 330 |
+
},
|
| 331 |
+
{
|
| 332 |
+
"demo_id": "demo_03",
|
| 333 |
+
"file": "demo_03.h5",
|
| 334 |
+
"length": 286,
|
| 335 |
+
"fields": [
|
| 336 |
+
{
|
| 337 |
+
"path": "actions/panda_leaphand-1",
|
| 338 |
+
"shape": [
|
| 339 |
+
286,
|
| 340 |
+
22
|
| 341 |
+
],
|
| 342 |
+
"dtype": "float32"
|
| 343 |
+
},
|
| 344 |
+
{
|
| 345 |
+
"path": "actions/panda_leaphand_left-0",
|
| 346 |
+
"shape": [
|
| 347 |
+
286,
|
| 348 |
+
22
|
| 349 |
+
],
|
| 350 |
+
"dtype": "float32"
|
| 351 |
+
},
|
| 352 |
+
{
|
| 353 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 354 |
+
"shape": [
|
| 355 |
+
287,
|
| 356 |
+
23
|
| 357 |
+
],
|
| 358 |
+
"dtype": "float32"
|
| 359 |
+
},
|
| 360 |
+
{
|
| 361 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 362 |
+
"shape": [
|
| 363 |
+
287,
|
| 364 |
+
23
|
| 365 |
+
],
|
| 366 |
+
"dtype": "float32"
|
| 367 |
+
},
|
| 368 |
+
{
|
| 369 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 370 |
+
"shape": [
|
| 371 |
+
287,
|
| 372 |
+
23
|
| 373 |
+
],
|
| 374 |
+
"dtype": "float32"
|
| 375 |
+
},
|
| 376 |
+
{
|
| 377 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 378 |
+
"shape": [
|
| 379 |
+
287,
|
| 380 |
+
23
|
| 381 |
+
],
|
| 382 |
+
"dtype": "float32"
|
| 383 |
+
},
|
| 384 |
+
{
|
| 385 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 386 |
+
"shape": [
|
| 387 |
+
287,
|
| 388 |
+
240,
|
| 389 |
+
320,
|
| 390 |
+
3
|
| 391 |
+
],
|
| 392 |
+
"dtype": "uint8"
|
| 393 |
+
},
|
| 394 |
+
{
|
| 395 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 396 |
+
"shape": [
|
| 397 |
+
287,
|
| 398 |
+
240,
|
| 399 |
+
320,
|
| 400 |
+
3
|
| 401 |
+
],
|
| 402 |
+
"dtype": "uint8"
|
| 403 |
+
},
|
| 404 |
+
{
|
| 405 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 406 |
+
"shape": [
|
| 407 |
+
287,
|
| 408 |
+
240,
|
| 409 |
+
320,
|
| 410 |
+
3
|
| 411 |
+
],
|
| 412 |
+
"dtype": "uint8"
|
| 413 |
+
},
|
| 414 |
+
{
|
| 415 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 416 |
+
"shape": [
|
| 417 |
+
287,
|
| 418 |
+
240,
|
| 419 |
+
320,
|
| 420 |
+
3
|
| 421 |
+
],
|
| 422 |
+
"dtype": "uint8"
|
| 423 |
+
},
|
| 424 |
+
{
|
| 425 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 426 |
+
"shape": [
|
| 427 |
+
287,
|
| 428 |
+
320,
|
| 429 |
+
240,
|
| 430 |
+
3
|
| 431 |
+
],
|
| 432 |
+
"dtype": "uint8"
|
| 433 |
+
}
|
| 434 |
+
],
|
| 435 |
+
"trajectory_sha256": "092fb5b06c2d6c53c1632864ff252d729dbbff4aba72e61197072dbfdf01d16c",
|
| 436 |
+
"source_sha256": "83d1f118f56e3861b0c8403042bc728506ef3fcacd67296d8390289f712aa7e5",
|
| 437 |
+
"view_sha256": "aa0bb714415ae664bf0b41d617f5bf8895d1fd06d5e5b1ad2b86d65aefd43a59"
|
| 438 |
+
},
|
| 439 |
+
{
|
| 440 |
+
"demo_id": "demo_04",
|
| 441 |
+
"file": "demo_04.h5",
|
| 442 |
+
"length": 306,
|
| 443 |
+
"fields": [
|
| 444 |
+
{
|
| 445 |
+
"path": "actions/panda_leaphand-1",
|
| 446 |
+
"shape": [
|
| 447 |
+
306,
|
| 448 |
+
22
|
| 449 |
+
],
|
| 450 |
+
"dtype": "float32"
|
| 451 |
+
},
|
| 452 |
+
{
|
| 453 |
+
"path": "actions/panda_leaphand_left-0",
|
| 454 |
+
"shape": [
|
| 455 |
+
306,
|
| 456 |
+
22
|
| 457 |
+
],
|
| 458 |
+
"dtype": "float32"
|
| 459 |
+
},
|
| 460 |
+
{
|
| 461 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 462 |
+
"shape": [
|
| 463 |
+
307,
|
| 464 |
+
23
|
| 465 |
+
],
|
| 466 |
+
"dtype": "float32"
|
| 467 |
+
},
|
| 468 |
+
{
|
| 469 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 470 |
+
"shape": [
|
| 471 |
+
307,
|
| 472 |
+
23
|
| 473 |
+
],
|
| 474 |
+
"dtype": "float32"
|
| 475 |
+
},
|
| 476 |
+
{
|
| 477 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 478 |
+
"shape": [
|
| 479 |
+
307,
|
| 480 |
+
23
|
| 481 |
+
],
|
| 482 |
+
"dtype": "float32"
|
| 483 |
+
},
|
| 484 |
+
{
|
| 485 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 486 |
+
"shape": [
|
| 487 |
+
307,
|
| 488 |
+
23
|
| 489 |
+
],
|
| 490 |
+
"dtype": "float32"
|
| 491 |
+
},
|
| 492 |
+
{
|
| 493 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 494 |
+
"shape": [
|
| 495 |
+
307,
|
| 496 |
+
240,
|
| 497 |
+
320,
|
| 498 |
+
3
|
| 499 |
+
],
|
| 500 |
+
"dtype": "uint8"
|
| 501 |
+
},
|
| 502 |
+
{
|
| 503 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 504 |
+
"shape": [
|
| 505 |
+
307,
|
| 506 |
+
240,
|
| 507 |
+
320,
|
| 508 |
+
3
|
| 509 |
+
],
|
| 510 |
+
"dtype": "uint8"
|
| 511 |
+
},
|
| 512 |
+
{
|
| 513 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 514 |
+
"shape": [
|
| 515 |
+
307,
|
| 516 |
+
240,
|
| 517 |
+
320,
|
| 518 |
+
3
|
| 519 |
+
],
|
| 520 |
+
"dtype": "uint8"
|
| 521 |
+
},
|
| 522 |
+
{
|
| 523 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 524 |
+
"shape": [
|
| 525 |
+
307,
|
| 526 |
+
240,
|
| 527 |
+
320,
|
| 528 |
+
3
|
| 529 |
+
],
|
| 530 |
+
"dtype": "uint8"
|
| 531 |
+
},
|
| 532 |
+
{
|
| 533 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 534 |
+
"shape": [
|
| 535 |
+
307,
|
| 536 |
+
320,
|
| 537 |
+
240,
|
| 538 |
+
3
|
| 539 |
+
],
|
| 540 |
+
"dtype": "uint8"
|
| 541 |
+
}
|
| 542 |
+
],
|
| 543 |
+
"trajectory_sha256": "eaee5eeb2dd6a7897ce11adeddece91965dfd932b834392c23c4530cbb699d57",
|
| 544 |
+
"source_sha256": "7a18122fb0842c807995dd7b85193b867fa2d05d6d30b569820da5c4b023e0e4",
|
| 545 |
+
"view_sha256": "480e703b2c71fd49d80fb35df15a18669e80b78b90079fb0949a376897c8e680"
|
| 546 |
+
},
|
| 547 |
+
{
|
| 548 |
+
"demo_id": "demo_05",
|
| 549 |
+
"file": "demo_05.h5",
|
| 550 |
+
"length": 206,
|
| 551 |
+
"fields": [
|
| 552 |
+
{
|
| 553 |
+
"path": "actions/panda_leaphand-1",
|
| 554 |
+
"shape": [
|
| 555 |
+
206,
|
| 556 |
+
22
|
| 557 |
+
],
|
| 558 |
+
"dtype": "float32"
|
| 559 |
+
},
|
| 560 |
+
{
|
| 561 |
+
"path": "actions/panda_leaphand_left-0",
|
| 562 |
+
"shape": [
|
| 563 |
+
206,
|
| 564 |
+
22
|
| 565 |
+
],
|
| 566 |
+
"dtype": "float32"
|
| 567 |
+
},
|
| 568 |
+
{
|
| 569 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 570 |
+
"shape": [
|
| 571 |
+
207,
|
| 572 |
+
23
|
| 573 |
+
],
|
| 574 |
+
"dtype": "float32"
|
| 575 |
+
},
|
| 576 |
+
{
|
| 577 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 578 |
+
"shape": [
|
| 579 |
+
207,
|
| 580 |
+
23
|
| 581 |
+
],
|
| 582 |
+
"dtype": "float32"
|
| 583 |
+
},
|
| 584 |
+
{
|
| 585 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 586 |
+
"shape": [
|
| 587 |
+
207,
|
| 588 |
+
23
|
| 589 |
+
],
|
| 590 |
+
"dtype": "float32"
|
| 591 |
+
},
|
| 592 |
+
{
|
| 593 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 594 |
+
"shape": [
|
| 595 |
+
207,
|
| 596 |
+
23
|
| 597 |
+
],
|
| 598 |
+
"dtype": "float32"
|
| 599 |
+
},
|
| 600 |
+
{
|
| 601 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 602 |
+
"shape": [
|
| 603 |
+
207,
|
| 604 |
+
240,
|
| 605 |
+
320,
|
| 606 |
+
3
|
| 607 |
+
],
|
| 608 |
+
"dtype": "uint8"
|
| 609 |
+
},
|
| 610 |
+
{
|
| 611 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 612 |
+
"shape": [
|
| 613 |
+
207,
|
| 614 |
+
240,
|
| 615 |
+
320,
|
| 616 |
+
3
|
| 617 |
+
],
|
| 618 |
+
"dtype": "uint8"
|
| 619 |
+
},
|
| 620 |
+
{
|
| 621 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 622 |
+
"shape": [
|
| 623 |
+
207,
|
| 624 |
+
240,
|
| 625 |
+
320,
|
| 626 |
+
3
|
| 627 |
+
],
|
| 628 |
+
"dtype": "uint8"
|
| 629 |
+
},
|
| 630 |
+
{
|
| 631 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 632 |
+
"shape": [
|
| 633 |
+
207,
|
| 634 |
+
240,
|
| 635 |
+
320,
|
| 636 |
+
3
|
| 637 |
+
],
|
| 638 |
+
"dtype": "uint8"
|
| 639 |
+
},
|
| 640 |
+
{
|
| 641 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 642 |
+
"shape": [
|
| 643 |
+
207,
|
| 644 |
+
320,
|
| 645 |
+
240,
|
| 646 |
+
3
|
| 647 |
+
],
|
| 648 |
+
"dtype": "uint8"
|
| 649 |
+
}
|
| 650 |
+
],
|
| 651 |
+
"trajectory_sha256": "ebdb082ac9823d6cccb3b83b7443c00de30e02754d4b925e4baef66bd236875d",
|
| 652 |
+
"source_sha256": "0c39445f2d8893729a1bb26e969a4bb5a11d0074ffae4ee2ce81b065060b57a7",
|
| 653 |
+
"view_sha256": "af1c267b4137075e12649aaba198fe55adc3ea59f51e0e65e36d759bcef4d3ca"
|
| 654 |
+
},
|
| 655 |
+
{
|
| 656 |
+
"demo_id": "demo_06",
|
| 657 |
+
"file": "demo_06.h5",
|
| 658 |
+
"length": 203,
|
| 659 |
+
"fields": [
|
| 660 |
+
{
|
| 661 |
+
"path": "actions/panda_leaphand-1",
|
| 662 |
+
"shape": [
|
| 663 |
+
203,
|
| 664 |
+
22
|
| 665 |
+
],
|
| 666 |
+
"dtype": "float32"
|
| 667 |
+
},
|
| 668 |
+
{
|
| 669 |
+
"path": "actions/panda_leaphand_left-0",
|
| 670 |
+
"shape": [
|
| 671 |
+
203,
|
| 672 |
+
22
|
| 673 |
+
],
|
| 674 |
+
"dtype": "float32"
|
| 675 |
+
},
|
| 676 |
+
{
|
| 677 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 678 |
+
"shape": [
|
| 679 |
+
204,
|
| 680 |
+
23
|
| 681 |
+
],
|
| 682 |
+
"dtype": "float32"
|
| 683 |
+
},
|
| 684 |
+
{
|
| 685 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 686 |
+
"shape": [
|
| 687 |
+
204,
|
| 688 |
+
23
|
| 689 |
+
],
|
| 690 |
+
"dtype": "float32"
|
| 691 |
+
},
|
| 692 |
+
{
|
| 693 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 694 |
+
"shape": [
|
| 695 |
+
204,
|
| 696 |
+
23
|
| 697 |
+
],
|
| 698 |
+
"dtype": "float32"
|
| 699 |
+
},
|
| 700 |
+
{
|
| 701 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 702 |
+
"shape": [
|
| 703 |
+
204,
|
| 704 |
+
23
|
| 705 |
+
],
|
| 706 |
+
"dtype": "float32"
|
| 707 |
+
},
|
| 708 |
+
{
|
| 709 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 710 |
+
"shape": [
|
| 711 |
+
204,
|
| 712 |
+
240,
|
| 713 |
+
320,
|
| 714 |
+
3
|
| 715 |
+
],
|
| 716 |
+
"dtype": "uint8"
|
| 717 |
+
},
|
| 718 |
+
{
|
| 719 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 720 |
+
"shape": [
|
| 721 |
+
204,
|
| 722 |
+
240,
|
| 723 |
+
320,
|
| 724 |
+
3
|
| 725 |
+
],
|
| 726 |
+
"dtype": "uint8"
|
| 727 |
+
},
|
| 728 |
+
{
|
| 729 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 730 |
+
"shape": [
|
| 731 |
+
204,
|
| 732 |
+
240,
|
| 733 |
+
320,
|
| 734 |
+
3
|
| 735 |
+
],
|
| 736 |
+
"dtype": "uint8"
|
| 737 |
+
},
|
| 738 |
+
{
|
| 739 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 740 |
+
"shape": [
|
| 741 |
+
204,
|
| 742 |
+
240,
|
| 743 |
+
320,
|
| 744 |
+
3
|
| 745 |
+
],
|
| 746 |
+
"dtype": "uint8"
|
| 747 |
+
},
|
| 748 |
+
{
|
| 749 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 750 |
+
"shape": [
|
| 751 |
+
204,
|
| 752 |
+
320,
|
| 753 |
+
240,
|
| 754 |
+
3
|
| 755 |
+
],
|
| 756 |
+
"dtype": "uint8"
|
| 757 |
+
}
|
| 758 |
+
],
|
| 759 |
+
"trajectory_sha256": "ded13e3d823f78c088fddf14eabda2d07738099d3fac9bb82fa76af6151bfb40",
|
| 760 |
+
"source_sha256": "f65ed45c7306d9c70a598d91ce425cbaeeed92af90520ffd8ece55dbf30222e6",
|
| 761 |
+
"view_sha256": "eef4c947d55a674af2ca15a900e02bdbce7af6d0e7d600fd993ea78bc2d339d6"
|
| 762 |
+
},
|
| 763 |
+
{
|
| 764 |
+
"demo_id": "demo_07",
|
| 765 |
+
"file": "demo_07.h5",
|
| 766 |
+
"length": 297,
|
| 767 |
+
"fields": [
|
| 768 |
+
{
|
| 769 |
+
"path": "actions/panda_leaphand-1",
|
| 770 |
+
"shape": [
|
| 771 |
+
297,
|
| 772 |
+
22
|
| 773 |
+
],
|
| 774 |
+
"dtype": "float32"
|
| 775 |
+
},
|
| 776 |
+
{
|
| 777 |
+
"path": "actions/panda_leaphand_left-0",
|
| 778 |
+
"shape": [
|
| 779 |
+
297,
|
| 780 |
+
22
|
| 781 |
+
],
|
| 782 |
+
"dtype": "float32"
|
| 783 |
+
},
|
| 784 |
+
{
|
| 785 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 786 |
+
"shape": [
|
| 787 |
+
298,
|
| 788 |
+
23
|
| 789 |
+
],
|
| 790 |
+
"dtype": "float32"
|
| 791 |
+
},
|
| 792 |
+
{
|
| 793 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 794 |
+
"shape": [
|
| 795 |
+
298,
|
| 796 |
+
23
|
| 797 |
+
],
|
| 798 |
+
"dtype": "float32"
|
| 799 |
+
},
|
| 800 |
+
{
|
| 801 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 802 |
+
"shape": [
|
| 803 |
+
298,
|
| 804 |
+
23
|
| 805 |
+
],
|
| 806 |
+
"dtype": "float32"
|
| 807 |
+
},
|
| 808 |
+
{
|
| 809 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 810 |
+
"shape": [
|
| 811 |
+
298,
|
| 812 |
+
23
|
| 813 |
+
],
|
| 814 |
+
"dtype": "float32"
|
| 815 |
+
},
|
| 816 |
+
{
|
| 817 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 818 |
+
"shape": [
|
| 819 |
+
298,
|
| 820 |
+
240,
|
| 821 |
+
320,
|
| 822 |
+
3
|
| 823 |
+
],
|
| 824 |
+
"dtype": "uint8"
|
| 825 |
+
},
|
| 826 |
+
{
|
| 827 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 828 |
+
"shape": [
|
| 829 |
+
298,
|
| 830 |
+
240,
|
| 831 |
+
320,
|
| 832 |
+
3
|
| 833 |
+
],
|
| 834 |
+
"dtype": "uint8"
|
| 835 |
+
},
|
| 836 |
+
{
|
| 837 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 838 |
+
"shape": [
|
| 839 |
+
298,
|
| 840 |
+
240,
|
| 841 |
+
320,
|
| 842 |
+
3
|
| 843 |
+
],
|
| 844 |
+
"dtype": "uint8"
|
| 845 |
+
},
|
| 846 |
+
{
|
| 847 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 848 |
+
"shape": [
|
| 849 |
+
298,
|
| 850 |
+
240,
|
| 851 |
+
320,
|
| 852 |
+
3
|
| 853 |
+
],
|
| 854 |
+
"dtype": "uint8"
|
| 855 |
+
},
|
| 856 |
+
{
|
| 857 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 858 |
+
"shape": [
|
| 859 |
+
298,
|
| 860 |
+
320,
|
| 861 |
+
240,
|
| 862 |
+
3
|
| 863 |
+
],
|
| 864 |
+
"dtype": "uint8"
|
| 865 |
+
}
|
| 866 |
+
],
|
| 867 |
+
"trajectory_sha256": "94506a595c8c770d4ebc5bd5b28b64f8489d4d37dd3ae6ec6ad8d16be4fc0703",
|
| 868 |
+
"source_sha256": "dfac7f144e80dcfecc7f1fca3922423cf6d625a0228c058b26e948b254eca699",
|
| 869 |
+
"view_sha256": "b953b3f95c4e210e7d0bfe0a0d42e88f605e76ca71437ce3b79eff6be1736f0b"
|
| 870 |
+
},
|
| 871 |
+
{
|
| 872 |
+
"demo_id": "demo_08",
|
| 873 |
+
"file": "demo_08.h5",
|
| 874 |
+
"length": 277,
|
| 875 |
+
"fields": [
|
| 876 |
+
{
|
| 877 |
+
"path": "actions/panda_leaphand-1",
|
| 878 |
+
"shape": [
|
| 879 |
+
277,
|
| 880 |
+
22
|
| 881 |
+
],
|
| 882 |
+
"dtype": "float32"
|
| 883 |
+
},
|
| 884 |
+
{
|
| 885 |
+
"path": "actions/panda_leaphand_left-0",
|
| 886 |
+
"shape": [
|
| 887 |
+
277,
|
| 888 |
+
22
|
| 889 |
+
],
|
| 890 |
+
"dtype": "float32"
|
| 891 |
+
},
|
| 892 |
+
{
|
| 893 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 894 |
+
"shape": [
|
| 895 |
+
278,
|
| 896 |
+
23
|
| 897 |
+
],
|
| 898 |
+
"dtype": "float32"
|
| 899 |
+
},
|
| 900 |
+
{
|
| 901 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 902 |
+
"shape": [
|
| 903 |
+
278,
|
| 904 |
+
23
|
| 905 |
+
],
|
| 906 |
+
"dtype": "float32"
|
| 907 |
+
},
|
| 908 |
+
{
|
| 909 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 910 |
+
"shape": [
|
| 911 |
+
278,
|
| 912 |
+
23
|
| 913 |
+
],
|
| 914 |
+
"dtype": "float32"
|
| 915 |
+
},
|
| 916 |
+
{
|
| 917 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 918 |
+
"shape": [
|
| 919 |
+
278,
|
| 920 |
+
23
|
| 921 |
+
],
|
| 922 |
+
"dtype": "float32"
|
| 923 |
+
},
|
| 924 |
+
{
|
| 925 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 926 |
+
"shape": [
|
| 927 |
+
278,
|
| 928 |
+
240,
|
| 929 |
+
320,
|
| 930 |
+
3
|
| 931 |
+
],
|
| 932 |
+
"dtype": "uint8"
|
| 933 |
+
},
|
| 934 |
+
{
|
| 935 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 936 |
+
"shape": [
|
| 937 |
+
278,
|
| 938 |
+
240,
|
| 939 |
+
320,
|
| 940 |
+
3
|
| 941 |
+
],
|
| 942 |
+
"dtype": "uint8"
|
| 943 |
+
},
|
| 944 |
+
{
|
| 945 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 946 |
+
"shape": [
|
| 947 |
+
278,
|
| 948 |
+
240,
|
| 949 |
+
320,
|
| 950 |
+
3
|
| 951 |
+
],
|
| 952 |
+
"dtype": "uint8"
|
| 953 |
+
},
|
| 954 |
+
{
|
| 955 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 956 |
+
"shape": [
|
| 957 |
+
278,
|
| 958 |
+
240,
|
| 959 |
+
320,
|
| 960 |
+
3
|
| 961 |
+
],
|
| 962 |
+
"dtype": "uint8"
|
| 963 |
+
},
|
| 964 |
+
{
|
| 965 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 966 |
+
"shape": [
|
| 967 |
+
278,
|
| 968 |
+
320,
|
| 969 |
+
240,
|
| 970 |
+
3
|
| 971 |
+
],
|
| 972 |
+
"dtype": "uint8"
|
| 973 |
+
}
|
| 974 |
+
],
|
| 975 |
+
"trajectory_sha256": "010d2e0dbbe3b4ca9f772e6ed92fe91eba43804a125b91305e8d8a4b898a32f3",
|
| 976 |
+
"source_sha256": "a9fbe29a4141d235beb04b9ae8b0e143887668462774bc7fcc51ef6f2e857986",
|
| 977 |
+
"view_sha256": "75b0ee5ea901fefb00711cc73e29471ed170c96c7079e349fc336fbb9abb924f"
|
| 978 |
+
},
|
| 979 |
+
{
|
| 980 |
+
"demo_id": "demo_09",
|
| 981 |
+
"file": "demo_09.h5",
|
| 982 |
+
"length": 300,
|
| 983 |
+
"fields": [
|
| 984 |
+
{
|
| 985 |
+
"path": "actions/panda_leaphand-1",
|
| 986 |
+
"shape": [
|
| 987 |
+
300,
|
| 988 |
+
22
|
| 989 |
+
],
|
| 990 |
+
"dtype": "float32"
|
| 991 |
+
},
|
| 992 |
+
{
|
| 993 |
+
"path": "actions/panda_leaphand_left-0",
|
| 994 |
+
"shape": [
|
| 995 |
+
300,
|
| 996 |
+
22
|
| 997 |
+
],
|
| 998 |
+
"dtype": "float32"
|
| 999 |
+
},
|
| 1000 |
+
{
|
| 1001 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1002 |
+
"shape": [
|
| 1003 |
+
301,
|
| 1004 |
+
23
|
| 1005 |
+
],
|
| 1006 |
+
"dtype": "float32"
|
| 1007 |
+
},
|
| 1008 |
+
{
|
| 1009 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1010 |
+
"shape": [
|
| 1011 |
+
301,
|
| 1012 |
+
23
|
| 1013 |
+
],
|
| 1014 |
+
"dtype": "float32"
|
| 1015 |
+
},
|
| 1016 |
+
{
|
| 1017 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1018 |
+
"shape": [
|
| 1019 |
+
301,
|
| 1020 |
+
23
|
| 1021 |
+
],
|
| 1022 |
+
"dtype": "float32"
|
| 1023 |
+
},
|
| 1024 |
+
{
|
| 1025 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1026 |
+
"shape": [
|
| 1027 |
+
301,
|
| 1028 |
+
23
|
| 1029 |
+
],
|
| 1030 |
+
"dtype": "float32"
|
| 1031 |
+
},
|
| 1032 |
+
{
|
| 1033 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1034 |
+
"shape": [
|
| 1035 |
+
301,
|
| 1036 |
+
240,
|
| 1037 |
+
320,
|
| 1038 |
+
3
|
| 1039 |
+
],
|
| 1040 |
+
"dtype": "uint8"
|
| 1041 |
+
},
|
| 1042 |
+
{
|
| 1043 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1044 |
+
"shape": [
|
| 1045 |
+
301,
|
| 1046 |
+
240,
|
| 1047 |
+
320,
|
| 1048 |
+
3
|
| 1049 |
+
],
|
| 1050 |
+
"dtype": "uint8"
|
| 1051 |
+
},
|
| 1052 |
+
{
|
| 1053 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1054 |
+
"shape": [
|
| 1055 |
+
301,
|
| 1056 |
+
240,
|
| 1057 |
+
320,
|
| 1058 |
+
3
|
| 1059 |
+
],
|
| 1060 |
+
"dtype": "uint8"
|
| 1061 |
+
},
|
| 1062 |
+
{
|
| 1063 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1064 |
+
"shape": [
|
| 1065 |
+
301,
|
| 1066 |
+
240,
|
| 1067 |
+
320,
|
| 1068 |
+
3
|
| 1069 |
+
],
|
| 1070 |
+
"dtype": "uint8"
|
| 1071 |
+
},
|
| 1072 |
+
{
|
| 1073 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1074 |
+
"shape": [
|
| 1075 |
+
301,
|
| 1076 |
+
320,
|
| 1077 |
+
240,
|
| 1078 |
+
3
|
| 1079 |
+
],
|
| 1080 |
+
"dtype": "uint8"
|
| 1081 |
+
}
|
| 1082 |
+
],
|
| 1083 |
+
"trajectory_sha256": "6debd05c892d42a11aeb4dc9ad20effab78af7da02e206da719c5f9b16acf058",
|
| 1084 |
+
"source_sha256": "97bd4d7f5d748080a8f48d2da7de975145eca9c74c75c610f24851d8dad9ad86",
|
| 1085 |
+
"view_sha256": "149ac2a8dc691151b5737abcdaac8ebc474db648e63279aab4135921b9416031"
|
| 1086 |
+
},
|
| 1087 |
+
{
|
| 1088 |
+
"demo_id": "demo_10",
|
| 1089 |
+
"file": "demo_10.h5",
|
| 1090 |
+
"length": 343,
|
| 1091 |
+
"fields": [
|
| 1092 |
+
{
|
| 1093 |
+
"path": "actions/panda_leaphand-1",
|
| 1094 |
+
"shape": [
|
| 1095 |
+
343,
|
| 1096 |
+
22
|
| 1097 |
+
],
|
| 1098 |
+
"dtype": "float32"
|
| 1099 |
+
},
|
| 1100 |
+
{
|
| 1101 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1102 |
+
"shape": [
|
| 1103 |
+
343,
|
| 1104 |
+
22
|
| 1105 |
+
],
|
| 1106 |
+
"dtype": "float32"
|
| 1107 |
+
},
|
| 1108 |
+
{
|
| 1109 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1110 |
+
"shape": [
|
| 1111 |
+
344,
|
| 1112 |
+
23
|
| 1113 |
+
],
|
| 1114 |
+
"dtype": "float32"
|
| 1115 |
+
},
|
| 1116 |
+
{
|
| 1117 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1118 |
+
"shape": [
|
| 1119 |
+
344,
|
| 1120 |
+
23
|
| 1121 |
+
],
|
| 1122 |
+
"dtype": "float32"
|
| 1123 |
+
},
|
| 1124 |
+
{
|
| 1125 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1126 |
+
"shape": [
|
| 1127 |
+
344,
|
| 1128 |
+
23
|
| 1129 |
+
],
|
| 1130 |
+
"dtype": "float32"
|
| 1131 |
+
},
|
| 1132 |
+
{
|
| 1133 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1134 |
+
"shape": [
|
| 1135 |
+
344,
|
| 1136 |
+
23
|
| 1137 |
+
],
|
| 1138 |
+
"dtype": "float32"
|
| 1139 |
+
},
|
| 1140 |
+
{
|
| 1141 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1142 |
+
"shape": [
|
| 1143 |
+
344,
|
| 1144 |
+
240,
|
| 1145 |
+
320,
|
| 1146 |
+
3
|
| 1147 |
+
],
|
| 1148 |
+
"dtype": "uint8"
|
| 1149 |
+
},
|
| 1150 |
+
{
|
| 1151 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1152 |
+
"shape": [
|
| 1153 |
+
344,
|
| 1154 |
+
240,
|
| 1155 |
+
320,
|
| 1156 |
+
3
|
| 1157 |
+
],
|
| 1158 |
+
"dtype": "uint8"
|
| 1159 |
+
},
|
| 1160 |
+
{
|
| 1161 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1162 |
+
"shape": [
|
| 1163 |
+
344,
|
| 1164 |
+
240,
|
| 1165 |
+
320,
|
| 1166 |
+
3
|
| 1167 |
+
],
|
| 1168 |
+
"dtype": "uint8"
|
| 1169 |
+
},
|
| 1170 |
+
{
|
| 1171 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1172 |
+
"shape": [
|
| 1173 |
+
344,
|
| 1174 |
+
240,
|
| 1175 |
+
320,
|
| 1176 |
+
3
|
| 1177 |
+
],
|
| 1178 |
+
"dtype": "uint8"
|
| 1179 |
+
},
|
| 1180 |
+
{
|
| 1181 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1182 |
+
"shape": [
|
| 1183 |
+
344,
|
| 1184 |
+
320,
|
| 1185 |
+
240,
|
| 1186 |
+
3
|
| 1187 |
+
],
|
| 1188 |
+
"dtype": "uint8"
|
| 1189 |
+
}
|
| 1190 |
+
],
|
| 1191 |
+
"trajectory_sha256": "d44fa2aede3afcb217cf9413a972b0846166827c8d33439c6cd587b46861ac55",
|
| 1192 |
+
"source_sha256": "64921018d0acfe719a3112926545d80b920937a14295609499933e6e9fbb8755",
|
| 1193 |
+
"view_sha256": "df199c5cc4008ecdd23b6af58a2501a9196374fff99b773c35d961334d039fe6"
|
| 1194 |
+
},
|
| 1195 |
+
{
|
| 1196 |
+
"demo_id": "demo_11",
|
| 1197 |
+
"file": "demo_11.h5",
|
| 1198 |
+
"length": 233,
|
| 1199 |
+
"fields": [
|
| 1200 |
+
{
|
| 1201 |
+
"path": "actions/panda_leaphand-1",
|
| 1202 |
+
"shape": [
|
| 1203 |
+
233,
|
| 1204 |
+
22
|
| 1205 |
+
],
|
| 1206 |
+
"dtype": "float32"
|
| 1207 |
+
},
|
| 1208 |
+
{
|
| 1209 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1210 |
+
"shape": [
|
| 1211 |
+
233,
|
| 1212 |
+
22
|
| 1213 |
+
],
|
| 1214 |
+
"dtype": "float32"
|
| 1215 |
+
},
|
| 1216 |
+
{
|
| 1217 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1218 |
+
"shape": [
|
| 1219 |
+
234,
|
| 1220 |
+
23
|
| 1221 |
+
],
|
| 1222 |
+
"dtype": "float32"
|
| 1223 |
+
},
|
| 1224 |
+
{
|
| 1225 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1226 |
+
"shape": [
|
| 1227 |
+
234,
|
| 1228 |
+
23
|
| 1229 |
+
],
|
| 1230 |
+
"dtype": "float32"
|
| 1231 |
+
},
|
| 1232 |
+
{
|
| 1233 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1234 |
+
"shape": [
|
| 1235 |
+
234,
|
| 1236 |
+
23
|
| 1237 |
+
],
|
| 1238 |
+
"dtype": "float32"
|
| 1239 |
+
},
|
| 1240 |
+
{
|
| 1241 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1242 |
+
"shape": [
|
| 1243 |
+
234,
|
| 1244 |
+
23
|
| 1245 |
+
],
|
| 1246 |
+
"dtype": "float32"
|
| 1247 |
+
},
|
| 1248 |
+
{
|
| 1249 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1250 |
+
"shape": [
|
| 1251 |
+
234,
|
| 1252 |
+
240,
|
| 1253 |
+
320,
|
| 1254 |
+
3
|
| 1255 |
+
],
|
| 1256 |
+
"dtype": "uint8"
|
| 1257 |
+
},
|
| 1258 |
+
{
|
| 1259 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1260 |
+
"shape": [
|
| 1261 |
+
234,
|
| 1262 |
+
240,
|
| 1263 |
+
320,
|
| 1264 |
+
3
|
| 1265 |
+
],
|
| 1266 |
+
"dtype": "uint8"
|
| 1267 |
+
},
|
| 1268 |
+
{
|
| 1269 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1270 |
+
"shape": [
|
| 1271 |
+
234,
|
| 1272 |
+
240,
|
| 1273 |
+
320,
|
| 1274 |
+
3
|
| 1275 |
+
],
|
| 1276 |
+
"dtype": "uint8"
|
| 1277 |
+
},
|
| 1278 |
+
{
|
| 1279 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1280 |
+
"shape": [
|
| 1281 |
+
234,
|
| 1282 |
+
240,
|
| 1283 |
+
320,
|
| 1284 |
+
3
|
| 1285 |
+
],
|
| 1286 |
+
"dtype": "uint8"
|
| 1287 |
+
},
|
| 1288 |
+
{
|
| 1289 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1290 |
+
"shape": [
|
| 1291 |
+
234,
|
| 1292 |
+
320,
|
| 1293 |
+
240,
|
| 1294 |
+
3
|
| 1295 |
+
],
|
| 1296 |
+
"dtype": "uint8"
|
| 1297 |
+
}
|
| 1298 |
+
],
|
| 1299 |
+
"trajectory_sha256": "29a81872491a27620e8581c60163e5eddf80330388a45ebf63ddc0c256bf575a",
|
| 1300 |
+
"source_sha256": "286cd42783a57bdbcfcb08ec59bb5e6101995b761a3aa3bcb93529a3bf5e9789",
|
| 1301 |
+
"view_sha256": "167b1b54b55129380b3e5d8dc7ae21691ddb9370c462f34fe40468690fbe1a3a"
|
| 1302 |
+
},
|
| 1303 |
+
{
|
| 1304 |
+
"demo_id": "demo_12",
|
| 1305 |
+
"file": "demo_12.h5",
|
| 1306 |
+
"length": 202,
|
| 1307 |
+
"fields": [
|
| 1308 |
+
{
|
| 1309 |
+
"path": "actions/panda_leaphand-1",
|
| 1310 |
+
"shape": [
|
| 1311 |
+
202,
|
| 1312 |
+
22
|
| 1313 |
+
],
|
| 1314 |
+
"dtype": "float32"
|
| 1315 |
+
},
|
| 1316 |
+
{
|
| 1317 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1318 |
+
"shape": [
|
| 1319 |
+
202,
|
| 1320 |
+
22
|
| 1321 |
+
],
|
| 1322 |
+
"dtype": "float32"
|
| 1323 |
+
},
|
| 1324 |
+
{
|
| 1325 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1326 |
+
"shape": [
|
| 1327 |
+
203,
|
| 1328 |
+
23
|
| 1329 |
+
],
|
| 1330 |
+
"dtype": "float32"
|
| 1331 |
+
},
|
| 1332 |
+
{
|
| 1333 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1334 |
+
"shape": [
|
| 1335 |
+
203,
|
| 1336 |
+
23
|
| 1337 |
+
],
|
| 1338 |
+
"dtype": "float32"
|
| 1339 |
+
},
|
| 1340 |
+
{
|
| 1341 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1342 |
+
"shape": [
|
| 1343 |
+
203,
|
| 1344 |
+
23
|
| 1345 |
+
],
|
| 1346 |
+
"dtype": "float32"
|
| 1347 |
+
},
|
| 1348 |
+
{
|
| 1349 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1350 |
+
"shape": [
|
| 1351 |
+
203,
|
| 1352 |
+
23
|
| 1353 |
+
],
|
| 1354 |
+
"dtype": "float32"
|
| 1355 |
+
},
|
| 1356 |
+
{
|
| 1357 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1358 |
+
"shape": [
|
| 1359 |
+
203,
|
| 1360 |
+
240,
|
| 1361 |
+
320,
|
| 1362 |
+
3
|
| 1363 |
+
],
|
| 1364 |
+
"dtype": "uint8"
|
| 1365 |
+
},
|
| 1366 |
+
{
|
| 1367 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1368 |
+
"shape": [
|
| 1369 |
+
203,
|
| 1370 |
+
240,
|
| 1371 |
+
320,
|
| 1372 |
+
3
|
| 1373 |
+
],
|
| 1374 |
+
"dtype": "uint8"
|
| 1375 |
+
},
|
| 1376 |
+
{
|
| 1377 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1378 |
+
"shape": [
|
| 1379 |
+
203,
|
| 1380 |
+
240,
|
| 1381 |
+
320,
|
| 1382 |
+
3
|
| 1383 |
+
],
|
| 1384 |
+
"dtype": "uint8"
|
| 1385 |
+
},
|
| 1386 |
+
{
|
| 1387 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1388 |
+
"shape": [
|
| 1389 |
+
203,
|
| 1390 |
+
240,
|
| 1391 |
+
320,
|
| 1392 |
+
3
|
| 1393 |
+
],
|
| 1394 |
+
"dtype": "uint8"
|
| 1395 |
+
},
|
| 1396 |
+
{
|
| 1397 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1398 |
+
"shape": [
|
| 1399 |
+
203,
|
| 1400 |
+
320,
|
| 1401 |
+
240,
|
| 1402 |
+
3
|
| 1403 |
+
],
|
| 1404 |
+
"dtype": "uint8"
|
| 1405 |
+
}
|
| 1406 |
+
],
|
| 1407 |
+
"trajectory_sha256": "fa310779c9433139ab669f4bfd634f5ce7771a91aca6812bec0e75ea5726fa37",
|
| 1408 |
+
"source_sha256": "45cad03c9c16828af7bfd9a4b67adcd8af2464bbf0619c5cb385ddcb520914c7",
|
| 1409 |
+
"view_sha256": "c960c75d12c22fcd2a6bc0f556a82b1a4931cf19458056d3020ca2beb5f96da0"
|
| 1410 |
+
},
|
| 1411 |
+
{
|
| 1412 |
+
"demo_id": "demo_13",
|
| 1413 |
+
"file": "demo_13.h5",
|
| 1414 |
+
"length": 271,
|
| 1415 |
+
"fields": [
|
| 1416 |
+
{
|
| 1417 |
+
"path": "actions/panda_leaphand-1",
|
| 1418 |
+
"shape": [
|
| 1419 |
+
271,
|
| 1420 |
+
22
|
| 1421 |
+
],
|
| 1422 |
+
"dtype": "float32"
|
| 1423 |
+
},
|
| 1424 |
+
{
|
| 1425 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1426 |
+
"shape": [
|
| 1427 |
+
271,
|
| 1428 |
+
22
|
| 1429 |
+
],
|
| 1430 |
+
"dtype": "float32"
|
| 1431 |
+
},
|
| 1432 |
+
{
|
| 1433 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1434 |
+
"shape": [
|
| 1435 |
+
272,
|
| 1436 |
+
23
|
| 1437 |
+
],
|
| 1438 |
+
"dtype": "float32"
|
| 1439 |
+
},
|
| 1440 |
+
{
|
| 1441 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1442 |
+
"shape": [
|
| 1443 |
+
272,
|
| 1444 |
+
23
|
| 1445 |
+
],
|
| 1446 |
+
"dtype": "float32"
|
| 1447 |
+
},
|
| 1448 |
+
{
|
| 1449 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1450 |
+
"shape": [
|
| 1451 |
+
272,
|
| 1452 |
+
23
|
| 1453 |
+
],
|
| 1454 |
+
"dtype": "float32"
|
| 1455 |
+
},
|
| 1456 |
+
{
|
| 1457 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1458 |
+
"shape": [
|
| 1459 |
+
272,
|
| 1460 |
+
23
|
| 1461 |
+
],
|
| 1462 |
+
"dtype": "float32"
|
| 1463 |
+
},
|
| 1464 |
+
{
|
| 1465 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1466 |
+
"shape": [
|
| 1467 |
+
272,
|
| 1468 |
+
240,
|
| 1469 |
+
320,
|
| 1470 |
+
3
|
| 1471 |
+
],
|
| 1472 |
+
"dtype": "uint8"
|
| 1473 |
+
},
|
| 1474 |
+
{
|
| 1475 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1476 |
+
"shape": [
|
| 1477 |
+
272,
|
| 1478 |
+
240,
|
| 1479 |
+
320,
|
| 1480 |
+
3
|
| 1481 |
+
],
|
| 1482 |
+
"dtype": "uint8"
|
| 1483 |
+
},
|
| 1484 |
+
{
|
| 1485 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1486 |
+
"shape": [
|
| 1487 |
+
272,
|
| 1488 |
+
240,
|
| 1489 |
+
320,
|
| 1490 |
+
3
|
| 1491 |
+
],
|
| 1492 |
+
"dtype": "uint8"
|
| 1493 |
+
},
|
| 1494 |
+
{
|
| 1495 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1496 |
+
"shape": [
|
| 1497 |
+
272,
|
| 1498 |
+
240,
|
| 1499 |
+
320,
|
| 1500 |
+
3
|
| 1501 |
+
],
|
| 1502 |
+
"dtype": "uint8"
|
| 1503 |
+
},
|
| 1504 |
+
{
|
| 1505 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1506 |
+
"shape": [
|
| 1507 |
+
272,
|
| 1508 |
+
320,
|
| 1509 |
+
240,
|
| 1510 |
+
3
|
| 1511 |
+
],
|
| 1512 |
+
"dtype": "uint8"
|
| 1513 |
+
}
|
| 1514 |
+
],
|
| 1515 |
+
"trajectory_sha256": "524fe336c86a1b7c30838f258a455f0cca7d506690d1f6234f7260e83d2576ce",
|
| 1516 |
+
"source_sha256": "cc45f614b5ac570e131c0e014157299e395519a519db9114765571a830496a94",
|
| 1517 |
+
"view_sha256": "f91abc022ba26823d86a05b122c9b020e0cb4ff08e4bae17cd1974ce1ebbe11b"
|
| 1518 |
+
},
|
| 1519 |
+
{
|
| 1520 |
+
"demo_id": "demo_14",
|
| 1521 |
+
"file": "demo_14.h5",
|
| 1522 |
+
"length": 318,
|
| 1523 |
+
"fields": [
|
| 1524 |
+
{
|
| 1525 |
+
"path": "actions/panda_leaphand-1",
|
| 1526 |
+
"shape": [
|
| 1527 |
+
318,
|
| 1528 |
+
22
|
| 1529 |
+
],
|
| 1530 |
+
"dtype": "float32"
|
| 1531 |
+
},
|
| 1532 |
+
{
|
| 1533 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1534 |
+
"shape": [
|
| 1535 |
+
318,
|
| 1536 |
+
22
|
| 1537 |
+
],
|
| 1538 |
+
"dtype": "float32"
|
| 1539 |
+
},
|
| 1540 |
+
{
|
| 1541 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1542 |
+
"shape": [
|
| 1543 |
+
319,
|
| 1544 |
+
23
|
| 1545 |
+
],
|
| 1546 |
+
"dtype": "float32"
|
| 1547 |
+
},
|
| 1548 |
+
{
|
| 1549 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1550 |
+
"shape": [
|
| 1551 |
+
319,
|
| 1552 |
+
23
|
| 1553 |
+
],
|
| 1554 |
+
"dtype": "float32"
|
| 1555 |
+
},
|
| 1556 |
+
{
|
| 1557 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1558 |
+
"shape": [
|
| 1559 |
+
319,
|
| 1560 |
+
23
|
| 1561 |
+
],
|
| 1562 |
+
"dtype": "float32"
|
| 1563 |
+
},
|
| 1564 |
+
{
|
| 1565 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1566 |
+
"shape": [
|
| 1567 |
+
319,
|
| 1568 |
+
23
|
| 1569 |
+
],
|
| 1570 |
+
"dtype": "float32"
|
| 1571 |
+
},
|
| 1572 |
+
{
|
| 1573 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1574 |
+
"shape": [
|
| 1575 |
+
319,
|
| 1576 |
+
240,
|
| 1577 |
+
320,
|
| 1578 |
+
3
|
| 1579 |
+
],
|
| 1580 |
+
"dtype": "uint8"
|
| 1581 |
+
},
|
| 1582 |
+
{
|
| 1583 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1584 |
+
"shape": [
|
| 1585 |
+
319,
|
| 1586 |
+
240,
|
| 1587 |
+
320,
|
| 1588 |
+
3
|
| 1589 |
+
],
|
| 1590 |
+
"dtype": "uint8"
|
| 1591 |
+
},
|
| 1592 |
+
{
|
| 1593 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1594 |
+
"shape": [
|
| 1595 |
+
319,
|
| 1596 |
+
240,
|
| 1597 |
+
320,
|
| 1598 |
+
3
|
| 1599 |
+
],
|
| 1600 |
+
"dtype": "uint8"
|
| 1601 |
+
},
|
| 1602 |
+
{
|
| 1603 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1604 |
+
"shape": [
|
| 1605 |
+
319,
|
| 1606 |
+
240,
|
| 1607 |
+
320,
|
| 1608 |
+
3
|
| 1609 |
+
],
|
| 1610 |
+
"dtype": "uint8"
|
| 1611 |
+
},
|
| 1612 |
+
{
|
| 1613 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1614 |
+
"shape": [
|
| 1615 |
+
319,
|
| 1616 |
+
320,
|
| 1617 |
+
240,
|
| 1618 |
+
3
|
| 1619 |
+
],
|
| 1620 |
+
"dtype": "uint8"
|
| 1621 |
+
}
|
| 1622 |
+
],
|
| 1623 |
+
"trajectory_sha256": "7560aa9f157d95e068e266f87ac13fc188838c6c3d98678d4a36c77a519a72a2",
|
| 1624 |
+
"source_sha256": "1fdf49010ab5f1e0fb1668419092bcaea13f0c86ef5601021822a8f50620fe0b",
|
| 1625 |
+
"view_sha256": "b96390fd235c2489e5e355b4612c41282b7f297b763272efb24ed30b652b56aa"
|
| 1626 |
+
},
|
| 1627 |
+
{
|
| 1628 |
+
"demo_id": "demo_15",
|
| 1629 |
+
"file": "demo_15.h5",
|
| 1630 |
+
"length": 257,
|
| 1631 |
+
"fields": [
|
| 1632 |
+
{
|
| 1633 |
+
"path": "actions/panda_leaphand-1",
|
| 1634 |
+
"shape": [
|
| 1635 |
+
257,
|
| 1636 |
+
22
|
| 1637 |
+
],
|
| 1638 |
+
"dtype": "float32"
|
| 1639 |
+
},
|
| 1640 |
+
{
|
| 1641 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1642 |
+
"shape": [
|
| 1643 |
+
257,
|
| 1644 |
+
22
|
| 1645 |
+
],
|
| 1646 |
+
"dtype": "float32"
|
| 1647 |
+
},
|
| 1648 |
+
{
|
| 1649 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1650 |
+
"shape": [
|
| 1651 |
+
258,
|
| 1652 |
+
23
|
| 1653 |
+
],
|
| 1654 |
+
"dtype": "float32"
|
| 1655 |
+
},
|
| 1656 |
+
{
|
| 1657 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1658 |
+
"shape": [
|
| 1659 |
+
258,
|
| 1660 |
+
23
|
| 1661 |
+
],
|
| 1662 |
+
"dtype": "float32"
|
| 1663 |
+
},
|
| 1664 |
+
{
|
| 1665 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1666 |
+
"shape": [
|
| 1667 |
+
258,
|
| 1668 |
+
23
|
| 1669 |
+
],
|
| 1670 |
+
"dtype": "float32"
|
| 1671 |
+
},
|
| 1672 |
+
{
|
| 1673 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1674 |
+
"shape": [
|
| 1675 |
+
258,
|
| 1676 |
+
23
|
| 1677 |
+
],
|
| 1678 |
+
"dtype": "float32"
|
| 1679 |
+
},
|
| 1680 |
+
{
|
| 1681 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1682 |
+
"shape": [
|
| 1683 |
+
258,
|
| 1684 |
+
240,
|
| 1685 |
+
320,
|
| 1686 |
+
3
|
| 1687 |
+
],
|
| 1688 |
+
"dtype": "uint8"
|
| 1689 |
+
},
|
| 1690 |
+
{
|
| 1691 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1692 |
+
"shape": [
|
| 1693 |
+
258,
|
| 1694 |
+
240,
|
| 1695 |
+
320,
|
| 1696 |
+
3
|
| 1697 |
+
],
|
| 1698 |
+
"dtype": "uint8"
|
| 1699 |
+
},
|
| 1700 |
+
{
|
| 1701 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1702 |
+
"shape": [
|
| 1703 |
+
258,
|
| 1704 |
+
240,
|
| 1705 |
+
320,
|
| 1706 |
+
3
|
| 1707 |
+
],
|
| 1708 |
+
"dtype": "uint8"
|
| 1709 |
+
},
|
| 1710 |
+
{
|
| 1711 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1712 |
+
"shape": [
|
| 1713 |
+
258,
|
| 1714 |
+
240,
|
| 1715 |
+
320,
|
| 1716 |
+
3
|
| 1717 |
+
],
|
| 1718 |
+
"dtype": "uint8"
|
| 1719 |
+
},
|
| 1720 |
+
{
|
| 1721 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1722 |
+
"shape": [
|
| 1723 |
+
258,
|
| 1724 |
+
320,
|
| 1725 |
+
240,
|
| 1726 |
+
3
|
| 1727 |
+
],
|
| 1728 |
+
"dtype": "uint8"
|
| 1729 |
+
}
|
| 1730 |
+
],
|
| 1731 |
+
"trajectory_sha256": "f3eb818034f2eb672b7eb3aae6ff5d43c883ff5d9c81fbd4b86f4acdfc5b0119",
|
| 1732 |
+
"source_sha256": "c5ecb1875e14a5d85405ccb56eb6573d930f39679f319136cfbc092e8efdaae9",
|
| 1733 |
+
"view_sha256": "0b49456b55d8a917c973d2ff772b6e40b8b8114efaf5a1f74f05f874c621d673"
|
| 1734 |
+
},
|
| 1735 |
+
{
|
| 1736 |
+
"demo_id": "demo_16",
|
| 1737 |
+
"file": "demo_16.h5",
|
| 1738 |
+
"length": 280,
|
| 1739 |
+
"fields": [
|
| 1740 |
+
{
|
| 1741 |
+
"path": "actions/panda_leaphand-1",
|
| 1742 |
+
"shape": [
|
| 1743 |
+
280,
|
| 1744 |
+
22
|
| 1745 |
+
],
|
| 1746 |
+
"dtype": "float32"
|
| 1747 |
+
},
|
| 1748 |
+
{
|
| 1749 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1750 |
+
"shape": [
|
| 1751 |
+
280,
|
| 1752 |
+
22
|
| 1753 |
+
],
|
| 1754 |
+
"dtype": "float32"
|
| 1755 |
+
},
|
| 1756 |
+
{
|
| 1757 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1758 |
+
"shape": [
|
| 1759 |
+
281,
|
| 1760 |
+
23
|
| 1761 |
+
],
|
| 1762 |
+
"dtype": "float32"
|
| 1763 |
+
},
|
| 1764 |
+
{
|
| 1765 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1766 |
+
"shape": [
|
| 1767 |
+
281,
|
| 1768 |
+
23
|
| 1769 |
+
],
|
| 1770 |
+
"dtype": "float32"
|
| 1771 |
+
},
|
| 1772 |
+
{
|
| 1773 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1774 |
+
"shape": [
|
| 1775 |
+
281,
|
| 1776 |
+
23
|
| 1777 |
+
],
|
| 1778 |
+
"dtype": "float32"
|
| 1779 |
+
},
|
| 1780 |
+
{
|
| 1781 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1782 |
+
"shape": [
|
| 1783 |
+
281,
|
| 1784 |
+
23
|
| 1785 |
+
],
|
| 1786 |
+
"dtype": "float32"
|
| 1787 |
+
},
|
| 1788 |
+
{
|
| 1789 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1790 |
+
"shape": [
|
| 1791 |
+
281,
|
| 1792 |
+
240,
|
| 1793 |
+
320,
|
| 1794 |
+
3
|
| 1795 |
+
],
|
| 1796 |
+
"dtype": "uint8"
|
| 1797 |
+
},
|
| 1798 |
+
{
|
| 1799 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1800 |
+
"shape": [
|
| 1801 |
+
281,
|
| 1802 |
+
240,
|
| 1803 |
+
320,
|
| 1804 |
+
3
|
| 1805 |
+
],
|
| 1806 |
+
"dtype": "uint8"
|
| 1807 |
+
},
|
| 1808 |
+
{
|
| 1809 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1810 |
+
"shape": [
|
| 1811 |
+
281,
|
| 1812 |
+
240,
|
| 1813 |
+
320,
|
| 1814 |
+
3
|
| 1815 |
+
],
|
| 1816 |
+
"dtype": "uint8"
|
| 1817 |
+
},
|
| 1818 |
+
{
|
| 1819 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1820 |
+
"shape": [
|
| 1821 |
+
281,
|
| 1822 |
+
240,
|
| 1823 |
+
320,
|
| 1824 |
+
3
|
| 1825 |
+
],
|
| 1826 |
+
"dtype": "uint8"
|
| 1827 |
+
},
|
| 1828 |
+
{
|
| 1829 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1830 |
+
"shape": [
|
| 1831 |
+
281,
|
| 1832 |
+
320,
|
| 1833 |
+
240,
|
| 1834 |
+
3
|
| 1835 |
+
],
|
| 1836 |
+
"dtype": "uint8"
|
| 1837 |
+
}
|
| 1838 |
+
],
|
| 1839 |
+
"trajectory_sha256": "7ce34bf23fceb4df30b488d93c26bf044a2fab773a453f806f9d7bfcf82c3a2d",
|
| 1840 |
+
"source_sha256": "2de57137e77c654c77f14a83a23bab0b70c02e47238def6419fc22e7ab961ede",
|
| 1841 |
+
"view_sha256": "5bbfa3bb2f9e83ed51650786dae69f3dfe624915b75918694bbbab016ac2238a"
|
| 1842 |
+
},
|
| 1843 |
+
{
|
| 1844 |
+
"demo_id": "demo_17",
|
| 1845 |
+
"file": "demo_17.h5",
|
| 1846 |
+
"length": 227,
|
| 1847 |
+
"fields": [
|
| 1848 |
+
{
|
| 1849 |
+
"path": "actions/panda_leaphand-1",
|
| 1850 |
+
"shape": [
|
| 1851 |
+
227,
|
| 1852 |
+
22
|
| 1853 |
+
],
|
| 1854 |
+
"dtype": "float32"
|
| 1855 |
+
},
|
| 1856 |
+
{
|
| 1857 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1858 |
+
"shape": [
|
| 1859 |
+
227,
|
| 1860 |
+
22
|
| 1861 |
+
],
|
| 1862 |
+
"dtype": "float32"
|
| 1863 |
+
},
|
| 1864 |
+
{
|
| 1865 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1866 |
+
"shape": [
|
| 1867 |
+
228,
|
| 1868 |
+
23
|
| 1869 |
+
],
|
| 1870 |
+
"dtype": "float32"
|
| 1871 |
+
},
|
| 1872 |
+
{
|
| 1873 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1874 |
+
"shape": [
|
| 1875 |
+
228,
|
| 1876 |
+
23
|
| 1877 |
+
],
|
| 1878 |
+
"dtype": "float32"
|
| 1879 |
+
},
|
| 1880 |
+
{
|
| 1881 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1882 |
+
"shape": [
|
| 1883 |
+
228,
|
| 1884 |
+
23
|
| 1885 |
+
],
|
| 1886 |
+
"dtype": "float32"
|
| 1887 |
+
},
|
| 1888 |
+
{
|
| 1889 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1890 |
+
"shape": [
|
| 1891 |
+
228,
|
| 1892 |
+
23
|
| 1893 |
+
],
|
| 1894 |
+
"dtype": "float32"
|
| 1895 |
+
},
|
| 1896 |
+
{
|
| 1897 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 1898 |
+
"shape": [
|
| 1899 |
+
228,
|
| 1900 |
+
240,
|
| 1901 |
+
320,
|
| 1902 |
+
3
|
| 1903 |
+
],
|
| 1904 |
+
"dtype": "uint8"
|
| 1905 |
+
},
|
| 1906 |
+
{
|
| 1907 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 1908 |
+
"shape": [
|
| 1909 |
+
228,
|
| 1910 |
+
240,
|
| 1911 |
+
320,
|
| 1912 |
+
3
|
| 1913 |
+
],
|
| 1914 |
+
"dtype": "uint8"
|
| 1915 |
+
},
|
| 1916 |
+
{
|
| 1917 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 1918 |
+
"shape": [
|
| 1919 |
+
228,
|
| 1920 |
+
240,
|
| 1921 |
+
320,
|
| 1922 |
+
3
|
| 1923 |
+
],
|
| 1924 |
+
"dtype": "uint8"
|
| 1925 |
+
},
|
| 1926 |
+
{
|
| 1927 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 1928 |
+
"shape": [
|
| 1929 |
+
228,
|
| 1930 |
+
240,
|
| 1931 |
+
320,
|
| 1932 |
+
3
|
| 1933 |
+
],
|
| 1934 |
+
"dtype": "uint8"
|
| 1935 |
+
},
|
| 1936 |
+
{
|
| 1937 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 1938 |
+
"shape": [
|
| 1939 |
+
228,
|
| 1940 |
+
320,
|
| 1941 |
+
240,
|
| 1942 |
+
3
|
| 1943 |
+
],
|
| 1944 |
+
"dtype": "uint8"
|
| 1945 |
+
}
|
| 1946 |
+
],
|
| 1947 |
+
"trajectory_sha256": "b5719f519bab8085693eba59d9e4c8e6e400da197aef0a3bfcda81044843651e",
|
| 1948 |
+
"source_sha256": "da1b0511b4706d9021c4bc6d4e5032b56abd3ba1b3406c1c3062913e9b933a37",
|
| 1949 |
+
"view_sha256": "127e902da5efcdd732e69505a2ab6c5e2fb8b72d4808f0b7c1ba52b6c9189465"
|
| 1950 |
+
},
|
| 1951 |
+
{
|
| 1952 |
+
"demo_id": "demo_18",
|
| 1953 |
+
"file": "demo_18.h5",
|
| 1954 |
+
"length": 333,
|
| 1955 |
+
"fields": [
|
| 1956 |
+
{
|
| 1957 |
+
"path": "actions/panda_leaphand-1",
|
| 1958 |
+
"shape": [
|
| 1959 |
+
333,
|
| 1960 |
+
22
|
| 1961 |
+
],
|
| 1962 |
+
"dtype": "float32"
|
| 1963 |
+
},
|
| 1964 |
+
{
|
| 1965 |
+
"path": "actions/panda_leaphand_left-0",
|
| 1966 |
+
"shape": [
|
| 1967 |
+
333,
|
| 1968 |
+
22
|
| 1969 |
+
],
|
| 1970 |
+
"dtype": "float32"
|
| 1971 |
+
},
|
| 1972 |
+
{
|
| 1973 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 1974 |
+
"shape": [
|
| 1975 |
+
334,
|
| 1976 |
+
23
|
| 1977 |
+
],
|
| 1978 |
+
"dtype": "float32"
|
| 1979 |
+
},
|
| 1980 |
+
{
|
| 1981 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 1982 |
+
"shape": [
|
| 1983 |
+
334,
|
| 1984 |
+
23
|
| 1985 |
+
],
|
| 1986 |
+
"dtype": "float32"
|
| 1987 |
+
},
|
| 1988 |
+
{
|
| 1989 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 1990 |
+
"shape": [
|
| 1991 |
+
334,
|
| 1992 |
+
23
|
| 1993 |
+
],
|
| 1994 |
+
"dtype": "float32"
|
| 1995 |
+
},
|
| 1996 |
+
{
|
| 1997 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 1998 |
+
"shape": [
|
| 1999 |
+
334,
|
| 2000 |
+
23
|
| 2001 |
+
],
|
| 2002 |
+
"dtype": "float32"
|
| 2003 |
+
},
|
| 2004 |
+
{
|
| 2005 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 2006 |
+
"shape": [
|
| 2007 |
+
334,
|
| 2008 |
+
240,
|
| 2009 |
+
320,
|
| 2010 |
+
3
|
| 2011 |
+
],
|
| 2012 |
+
"dtype": "uint8"
|
| 2013 |
+
},
|
| 2014 |
+
{
|
| 2015 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 2016 |
+
"shape": [
|
| 2017 |
+
334,
|
| 2018 |
+
240,
|
| 2019 |
+
320,
|
| 2020 |
+
3
|
| 2021 |
+
],
|
| 2022 |
+
"dtype": "uint8"
|
| 2023 |
+
},
|
| 2024 |
+
{
|
| 2025 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 2026 |
+
"shape": [
|
| 2027 |
+
334,
|
| 2028 |
+
240,
|
| 2029 |
+
320,
|
| 2030 |
+
3
|
| 2031 |
+
],
|
| 2032 |
+
"dtype": "uint8"
|
| 2033 |
+
},
|
| 2034 |
+
{
|
| 2035 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 2036 |
+
"shape": [
|
| 2037 |
+
334,
|
| 2038 |
+
240,
|
| 2039 |
+
320,
|
| 2040 |
+
3
|
| 2041 |
+
],
|
| 2042 |
+
"dtype": "uint8"
|
| 2043 |
+
},
|
| 2044 |
+
{
|
| 2045 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 2046 |
+
"shape": [
|
| 2047 |
+
334,
|
| 2048 |
+
320,
|
| 2049 |
+
240,
|
| 2050 |
+
3
|
| 2051 |
+
],
|
| 2052 |
+
"dtype": "uint8"
|
| 2053 |
+
}
|
| 2054 |
+
],
|
| 2055 |
+
"trajectory_sha256": "ecbd9000ad0d145e9d4edda4fe5c400890767d06da4f2fb75e8f2273d1579464",
|
| 2056 |
+
"source_sha256": "a17525dbeb4f46444ea0fbfcddf9f756b0bb9bd44667c8fa302f6cdd654f24ec",
|
| 2057 |
+
"view_sha256": "4095b5fe0d098f0f3d5678d19f1daac5154ab9901aeb5c7f2b1696ecf4582626"
|
| 2058 |
+
},
|
| 2059 |
+
{
|
| 2060 |
+
"demo_id": "demo_19",
|
| 2061 |
+
"file": "demo_19.h5",
|
| 2062 |
+
"length": 246,
|
| 2063 |
+
"fields": [
|
| 2064 |
+
{
|
| 2065 |
+
"path": "actions/panda_leaphand-1",
|
| 2066 |
+
"shape": [
|
| 2067 |
+
246,
|
| 2068 |
+
22
|
| 2069 |
+
],
|
| 2070 |
+
"dtype": "float32"
|
| 2071 |
+
},
|
| 2072 |
+
{
|
| 2073 |
+
"path": "actions/panda_leaphand_left-0",
|
| 2074 |
+
"shape": [
|
| 2075 |
+
246,
|
| 2076 |
+
22
|
| 2077 |
+
],
|
| 2078 |
+
"dtype": "float32"
|
| 2079 |
+
},
|
| 2080 |
+
{
|
| 2081 |
+
"path": "obs/agent/panda_leaphand-1/qpos",
|
| 2082 |
+
"shape": [
|
| 2083 |
+
247,
|
| 2084 |
+
23
|
| 2085 |
+
],
|
| 2086 |
+
"dtype": "float32"
|
| 2087 |
+
},
|
| 2088 |
+
{
|
| 2089 |
+
"path": "obs/agent/panda_leaphand-1/qvel",
|
| 2090 |
+
"shape": [
|
| 2091 |
+
247,
|
| 2092 |
+
23
|
| 2093 |
+
],
|
| 2094 |
+
"dtype": "float32"
|
| 2095 |
+
},
|
| 2096 |
+
{
|
| 2097 |
+
"path": "obs/agent/panda_leaphand_left-0/qpos",
|
| 2098 |
+
"shape": [
|
| 2099 |
+
247,
|
| 2100 |
+
23
|
| 2101 |
+
],
|
| 2102 |
+
"dtype": "float32"
|
| 2103 |
+
},
|
| 2104 |
+
{
|
| 2105 |
+
"path": "obs/agent/panda_leaphand_left-0/qvel",
|
| 2106 |
+
"shape": [
|
| 2107 |
+
247,
|
| 2108 |
+
23
|
| 2109 |
+
],
|
| 2110 |
+
"dtype": "float32"
|
| 2111 |
+
},
|
| 2112 |
+
{
|
| 2113 |
+
"path": "obs/sensor_data/front_camera/rgb",
|
| 2114 |
+
"shape": [
|
| 2115 |
+
247,
|
| 2116 |
+
240,
|
| 2117 |
+
320,
|
| 2118 |
+
3
|
| 2119 |
+
],
|
| 2120 |
+
"dtype": "uint8"
|
| 2121 |
+
},
|
| 2122 |
+
{
|
| 2123 |
+
"path": "obs/sensor_data/left_camera/rgb",
|
| 2124 |
+
"shape": [
|
| 2125 |
+
247,
|
| 2126 |
+
240,
|
| 2127 |
+
320,
|
| 2128 |
+
3
|
| 2129 |
+
],
|
| 2130 |
+
"dtype": "uint8"
|
| 2131 |
+
},
|
| 2132 |
+
{
|
| 2133 |
+
"path": "obs/sensor_data/robot_camera_0/rgb",
|
| 2134 |
+
"shape": [
|
| 2135 |
+
247,
|
| 2136 |
+
240,
|
| 2137 |
+
320,
|
| 2138 |
+
3
|
| 2139 |
+
],
|
| 2140 |
+
"dtype": "uint8"
|
| 2141 |
+
},
|
| 2142 |
+
{
|
| 2143 |
+
"path": "obs/sensor_data/robot_camera_1/rgb",
|
| 2144 |
+
"shape": [
|
| 2145 |
+
247,
|
| 2146 |
+
240,
|
| 2147 |
+
320,
|
| 2148 |
+
3
|
| 2149 |
+
],
|
| 2150 |
+
"dtype": "uint8"
|
| 2151 |
+
},
|
| 2152 |
+
{
|
| 2153 |
+
"path": "obs/sensor_data/top_camera/rgb",
|
| 2154 |
+
"shape": [
|
| 2155 |
+
247,
|
| 2156 |
+
320,
|
| 2157 |
+
240,
|
| 2158 |
+
3
|
| 2159 |
+
],
|
| 2160 |
+
"dtype": "uint8"
|
| 2161 |
+
}
|
| 2162 |
+
],
|
| 2163 |
+
"trajectory_sha256": "e64d7ec1ce7775fe62411d5bbd1794af5de27fec018a13e46185c241ef98f8ba",
|
| 2164 |
+
"source_sha256": "0fb9b233eedb28f9b9531554cde9c1c86e69c4d6b5e21f403e6f52ec4d00d901",
|
| 2165 |
+
"view_sha256": "03d9ed7c33f0be78ef2f57338778090ac2b88e116febf386c349bb2008fe30c9"
|
| 2166 |
+
}
|
| 2167 |
+
]
|
| 2168 |
+
}
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/environment.lock
ADDED
|
@@ -0,0 +1,249 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
absl-py==2.4.0
|
| 2 |
+
accelerate==1.13.0
|
| 3 |
+
addict==2.4.0
|
| 4 |
+
aiohappyeyeballs==2.6.1
|
| 5 |
+
aiohttp==3.13.5
|
| 6 |
+
aiosignal==1.4.0
|
| 7 |
+
annotated-types==0.7.0
|
| 8 |
+
anyio==4.13.0
|
| 9 |
+
anytree==2.13.0
|
| 10 |
+
asttokens==3.0.1
|
| 11 |
+
async-timeout==5.0.1
|
| 12 |
+
attrs==26.1.0
|
| 13 |
+
av==15.1.0
|
| 14 |
+
blinker==1.9.0
|
| 15 |
+
casadi==3.7.2
|
| 16 |
+
certifi==2026.4.22
|
| 17 |
+
cffi==2.0.0
|
| 18 |
+
charset-normalizer==3.4.7
|
| 19 |
+
click==8.3.3
|
| 20 |
+
cloudpickle==3.1.2
|
| 21 |
+
cmake==4.1.3
|
| 22 |
+
coacd==1.0.11
|
| 23 |
+
colorama==0.4.6
|
| 24 |
+
colorlog==6.10.1
|
| 25 |
+
comm==0.2.3
|
| 26 |
+
ConfigArgParse==1.7.5
|
| 27 |
+
contourpy==1.3.2
|
| 28 |
+
cuda-bindings==12.9.4
|
| 29 |
+
cuda-pathfinder==1.5.4
|
| 30 |
+
cycler==0.12.1
|
| 31 |
+
dacite==1.9.2
|
| 32 |
+
dash==4.1.0
|
| 33 |
+
dataclasses-json==0.6.7
|
| 34 |
+
datasets==4.8.5
|
| 35 |
+
decorator==5.2.1
|
| 36 |
+
deepdiff==8.6.2
|
| 37 |
+
Deprecated==1.3.1
|
| 38 |
+
diffusers==0.35.2
|
| 39 |
+
dill==0.4.1
|
| 40 |
+
docstring_parser==0.18.0
|
| 41 |
+
draccus==0.10.0
|
| 42 |
+
einops==0.8.2
|
| 43 |
+
embreex==4.4.0
|
| 44 |
+
etils==1.13.0
|
| 45 |
+
evdev==1.9.3
|
| 46 |
+
exceptiongroup==1.3.1
|
| 47 |
+
executing==2.2.1
|
| 48 |
+
Farama-Notifications==0.0.6
|
| 49 |
+
fast_simplification==0.1.13
|
| 50 |
+
fastjsonschema==2.21.2
|
| 51 |
+
filelock==3.29.0
|
| 52 |
+
Flask==3.1.3
|
| 53 |
+
fonttools==4.63.0
|
| 54 |
+
freetype-py==2.5.1
|
| 55 |
+
frozenlist==1.8.0
|
| 56 |
+
fsspec==2026.2.0
|
| 57 |
+
genesis-world @ file:///data/gck/genesis-world
|
| 58 |
+
git-filter-repo==2.47.0
|
| 59 |
+
gitdb==4.0.12
|
| 60 |
+
GitPython==3.1.50
|
| 61 |
+
glfw==2.10.0
|
| 62 |
+
gs-madrona==0.0.5
|
| 63 |
+
gstaichi==3.3.0
|
| 64 |
+
gym==0.26.2
|
| 65 |
+
gym-notices==0.1.0
|
| 66 |
+
gymnasium==1.3.0
|
| 67 |
+
h11==0.16.0
|
| 68 |
+
h5py==3.16.0
|
| 69 |
+
hf-xet==1.5.0
|
| 70 |
+
hf_transfer==0.1.9
|
| 71 |
+
httpcore==1.0.9
|
| 72 |
+
httpx==0.28.1
|
| 73 |
+
huggingface-hub==0.35.3
|
| 74 |
+
idna==3.15
|
| 75 |
+
ImageIO==2.37.3
|
| 76 |
+
imageio-ffmpeg==0.6.0
|
| 77 |
+
importlib_metadata==9.0.0
|
| 78 |
+
importlib_resources==7.1.0
|
| 79 |
+
inquirerpy==0.3.4
|
| 80 |
+
ipython==8.39.0
|
| 81 |
+
ipywidgets==8.1.8
|
| 82 |
+
itsdangerous==2.2.0
|
| 83 |
+
jedi==0.20.0
|
| 84 |
+
Jinja2==3.1.6
|
| 85 |
+
joblib==1.5.3
|
| 86 |
+
jsonlines==4.0.0
|
| 87 |
+
jsonschema==4.26.0
|
| 88 |
+
jsonschema-specifications==2025.9.1
|
| 89 |
+
jupyter_core==5.9.1
|
| 90 |
+
jupyterlab_widgets==3.0.16
|
| 91 |
+
kiwisolver==1.5.0
|
| 92 |
+
lazy-loader==0.5
|
| 93 |
+
lerobot==0.4.4
|
| 94 |
+
libigl==2.6.2
|
| 95 |
+
llvmlite==0.47.0
|
| 96 |
+
loguru==0.7.3
|
| 97 |
+
lxml==6.1.0
|
| 98 |
+
manifold3d==3.4.1
|
| 99 |
+
-e git+ssh://git@github.com/HeegerGao/maniladder.git@f6eed17496816bb41ce484f2d7580990a908d3e6#egg=maniladder
|
| 100 |
+
mapbox_earcut==2.0.0
|
| 101 |
+
markdown-it-py==4.2.0
|
| 102 |
+
MarkupSafe==3.0.3
|
| 103 |
+
marshmallow==3.26.2
|
| 104 |
+
matplotlib==3.10.9
|
| 105 |
+
matplotlib-inline==0.2.2
|
| 106 |
+
mdurl==0.1.2
|
| 107 |
+
mergedeep==1.3.4
|
| 108 |
+
moviepy==2.2.1
|
| 109 |
+
mpmath==1.3.0
|
| 110 |
+
msgspec==0.21.1
|
| 111 |
+
mujoco==3.8.1
|
| 112 |
+
multidict==6.7.1
|
| 113 |
+
multiprocess==0.70.19
|
| 114 |
+
mypy_extensions==1.1.0
|
| 115 |
+
nbformat==5.10.4
|
| 116 |
+
nest-asyncio==1.6.0
|
| 117 |
+
networkx==3.4.2
|
| 118 |
+
ninja==1.13.0
|
| 119 |
+
nlopt==2.10.0
|
| 120 |
+
numba==0.65.1
|
| 121 |
+
numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1747544640217/work/dist/numpy-2.2.6-cp310-cp310-linux_x86_64.whl#sha256=d6d964caeef85d00073d27cd62b46883d275b3d8162f723f0fcabbd0b3cc3f9d
|
| 122 |
+
nvidia-cublas-cu12==12.8.4.1
|
| 123 |
+
nvidia-cuda-cupti-cu12==12.8.90
|
| 124 |
+
nvidia-cuda-nvrtc-cu12==12.8.93
|
| 125 |
+
nvidia-cuda-runtime-cu12==12.8.90
|
| 126 |
+
nvidia-cudnn-cu12==9.10.2.21
|
| 127 |
+
nvidia-cufft-cu12==11.3.3.83
|
| 128 |
+
nvidia-cufile-cu12==1.13.1.3
|
| 129 |
+
nvidia-curand-cu12==10.3.9.90
|
| 130 |
+
nvidia-cusolver-cu12==11.7.3.90
|
| 131 |
+
nvidia-cusparse-cu12==12.5.8.93
|
| 132 |
+
nvidia-cusparselt-cu12==0.7.1
|
| 133 |
+
nvidia-nccl-cu12==2.27.5
|
| 134 |
+
nvidia-nvjitlink-cu12==12.8.93
|
| 135 |
+
nvidia-nvshmem-cu12==3.4.5
|
| 136 |
+
nvidia-nvtx-cu12==12.8.90
|
| 137 |
+
open3d==0.19.0
|
| 138 |
+
opencv-python==4.13.0.92
|
| 139 |
+
opencv-python-headless==4.12.0.88
|
| 140 |
+
OpenEXR==3.4.11
|
| 141 |
+
orderly-set==5.5.0
|
| 142 |
+
packaging==25.0
|
| 143 |
+
pandas==2.3.3
|
| 144 |
+
parso==0.8.7
|
| 145 |
+
pexpect==4.9.0
|
| 146 |
+
pfzy==0.3.4
|
| 147 |
+
pillow==11.3.0
|
| 148 |
+
pin==4.0.0
|
| 149 |
+
pip @ file:///home/task_177498883471825/croot/pip_1774988882575/work
|
| 150 |
+
platformdirs==4.9.6
|
| 151 |
+
plotly==5.24.1
|
| 152 |
+
polyscope==2.6.1
|
| 153 |
+
proglog==0.1.12
|
| 154 |
+
prompt_toolkit==3.0.52
|
| 155 |
+
propcache==0.5.2
|
| 156 |
+
protobuf==6.33.6
|
| 157 |
+
psutil==7.2.2
|
| 158 |
+
ptyprocess==0.7.0
|
| 159 |
+
pure_eval==0.2.3
|
| 160 |
+
py-cpuinfo==9.0.0
|
| 161 |
+
py-spy==0.4.2
|
| 162 |
+
pyarrow==24.0.0
|
| 163 |
+
pycollada==0.9.3
|
| 164 |
+
pycparser==3.0
|
| 165 |
+
pydantic==2.13.4
|
| 166 |
+
pydantic_core==2.46.4
|
| 167 |
+
PyGEL3D==0.6.1
|
| 168 |
+
pyglet==2.1.14
|
| 169 |
+
pygltflib==1.16.0
|
| 170 |
+
Pygments==2.20.0
|
| 171 |
+
pymeshlab==2025.7.post1
|
| 172 |
+
pynput==1.8.2
|
| 173 |
+
PyOpenGL==3.1.10
|
| 174 |
+
pyparsing==3.3.2
|
| 175 |
+
pyperclip==1.11.0
|
| 176 |
+
PyQt6==6.11.0
|
| 177 |
+
PyQt6-Qt6==6.11.0
|
| 178 |
+
PyQt6_sip==13.11.1
|
| 179 |
+
pyquaternion==0.9.9
|
| 180 |
+
pyserial==3.5
|
| 181 |
+
pysplashsurf==0.12.0.2
|
| 182 |
+
python-dateutil==2.9.0.post0
|
| 183 |
+
python-dotenv==1.2.2
|
| 184 |
+
python-xlib==0.33
|
| 185 |
+
pytransform3d==3.15.0
|
| 186 |
+
pytz==2026.2
|
| 187 |
+
pyuipc @ file:///tmp/claude-1005/-mnt4-gck-maniladder/9f005e67-04f6-4368-bd0e-9f40896c7dbf/scratchpad/pyuipc_dl/pyuipc-0.0.25-cp310-cp310-manylinux_2_34_x86_64.whl#sha256=76ff13554e1971ea4401db2c875369cf32352ae3a5a4c398c45193231b5cbf00
|
| 188 |
+
PyYAML==6.0.3
|
| 189 |
+
pyyaml-include==1.4.1
|
| 190 |
+
referencing==0.37.0
|
| 191 |
+
regex==2026.5.9
|
| 192 |
+
requests==2.34.2
|
| 193 |
+
rerun-sdk==0.26.2
|
| 194 |
+
retrying==1.4.2
|
| 195 |
+
rich==14.3.4
|
| 196 |
+
rpds-py==0.30.0
|
| 197 |
+
rtree==1.4.1
|
| 198 |
+
safetensors==0.7.0
|
| 199 |
+
sapien==3.0.3
|
| 200 |
+
scikit-image==0.25.2
|
| 201 |
+
scikit-learn==1.7.2
|
| 202 |
+
scipy @ file:///home/conda/feedstock_root/build_artifacts/scipy-split_1739790642651/work/dist/scipy-1.15.2-cp310-cp310-linux_x86_64.whl#sha256=9e52bad6c3294d1a5b04a13632118ca2157130603c6c018c2d710162b223b27e
|
| 203 |
+
sentry-sdk==2.60.0
|
| 204 |
+
setuptools==80.10.2
|
| 205 |
+
shapely==2.1.2
|
| 206 |
+
six==1.17.0
|
| 207 |
+
smmap==5.0.3
|
| 208 |
+
stack-data==0.6.3
|
| 209 |
+
svg.path==7.0
|
| 210 |
+
sympy==1.14.0
|
| 211 |
+
tenacity==9.1.4
|
| 212 |
+
termcolor==3.3.0
|
| 213 |
+
tetgen==0.8.4
|
| 214 |
+
threadpoolctl==3.6.0
|
| 215 |
+
tifffile==2025.5.10
|
| 216 |
+
timm==1.0.27
|
| 217 |
+
toml==0.10.2
|
| 218 |
+
torch==2.10.0
|
| 219 |
+
torchaudio==2.11.0
|
| 220 |
+
torchcodec==0.10.0
|
| 221 |
+
torchvision==0.25.0
|
| 222 |
+
tqdm==4.67.3
|
| 223 |
+
traitlets==5.15.0
|
| 224 |
+
transforms3d==0.4.2
|
| 225 |
+
trimesh==4.12.2
|
| 226 |
+
triton==3.6.0
|
| 227 |
+
typeguard==4.5.2
|
| 228 |
+
typing-inspect==0.9.0
|
| 229 |
+
typing-inspection==0.4.2
|
| 230 |
+
typing_extensions==4.15.0
|
| 231 |
+
tyro==1.0.13
|
| 232 |
+
tzdata==2026.2
|
| 233 |
+
urllib3==2.7.0
|
| 234 |
+
vhacdx==0.0.10
|
| 235 |
+
viser==1.0.27
|
| 236 |
+
vtk==9.6.1
|
| 237 |
+
wandb==0.24.2
|
| 238 |
+
wcwidth==0.7.0
|
| 239 |
+
websockets==16.0
|
| 240 |
+
Werkzeug==3.1.8
|
| 241 |
+
wheel==0.46.3
|
| 242 |
+
widgetsnbextension==4.0.15
|
| 243 |
+
wrapt==2.1.2
|
| 244 |
+
xxhash==3.7.0
|
| 245 |
+
yarl==1.23.0
|
| 246 |
+
yourdfpy==0.0.60
|
| 247 |
+
z3-solver==4.16.0.0
|
| 248 |
+
zipp==3.23.1
|
| 249 |
+
zstandard==0.25.0
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/findings.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# E20 live exploration ledger
|
| 2 |
+
|
| 3 |
+
Only the trusted worker API is used for environment interaction. Budget initially 0/20. The original D20 preparation remains in demo_analysis.md; versions/v0 preserves the original candidate.
|
| 4 |
+
|
| 5 |
+
Episode 1: baseline nonparametric closed-loop policy ran to native step 400. Native success false throughout recorded steps. Images at 50-step intervals show approach, finger closure, then a stable joined pen. Nearest terminal reference actions have exactly zero arm translations, so retrieval alone cannot escape the terminal posture. No visible success claimed. Program harness initially misunderstood execute_actions response as a single observation; one legal action was executed, saved in the initial actions file before resume. The response is a list under steps. The resumed run starts at native step 2 and has 398 recorded actions; the first action is reconstructible from ep01_initial.pkl and versions/v0. No reset or extra slot was used.
|
| 6 |
+
|
| 7 |
+
Plan for episodes 2–4: 10 positive and 10 negative x/y/z translation commands per arm, 0.1 normalized, from the held initial observation. Record all commands and endpoint cameras to establish image-space direction and avoid assuming root transforms.
|
| 8 |
+
|
| 9 |
+
Episodes 2, 3, 4: completed 40 actions each (native step 41), native success false. Reversible root x/y/z probes; all endpoint images and action arrays retained. Optical flow on initial wrist-circle patches in top view gives per +0.1 × 10 commands: first arm x=(19.67,0.02), y=(-0.16,-19.85), z=(-0.98,-2.52) pixels; second arm x=(19.55,0.05), y=(-0.36,-19.44), z=(-0.91,2.90). Positive x maps right and positive y maps up for both arms. Top RGB is 640×480 in live observations versus 320×240 in demos, a consistent factor of two; descriptor resampling remains compatible. Probes do not establish grasp or success.
|
| 10 |
+
|
| 11 |
+
Episode 5 variant v1: doubled retrieved action magnitude, reduced velocity-distance weight from .05 to .005 to accommodate changed speed, and added a 35-step opposed-y pull after both hand mean joint angles exceed .55 and five consecutive arm-command norms fall below .02. This is a posture heuristic, not a contact detector. Ten subsequent settle steps precede return None. Bounded recovery counters are not success claims.
|
| 12 |
+
|
| 13 |
+
Prepared v2: use PCA of blue-dominant top-camera pixels at first held observation to estimate pen-axis orientation; map it to root xy using episodes 2–3. Axis estimation remains vulnerable to occlusion; unchanged fallback is opposed y. No neural weights modified.
|
| 14 |
+
|
| 15 |
+
Episode 5 completed native step 150+ (exact final in returns.json), no native success. Pull moved hands outward but images show a long connected/overlapping pen and ambiguous cap junction. Speed increase does permit grasp-like closure earlier. Initial pen orientation changed substantially during approach/grasp, exposing stale-axis risk. Episode 6 tests v2 with initial-axis pull. Prepared v3 refreshes visible blue-axis PCA until pull begins and increases bounded pull from .06×35 to .12×60, with 15 settling steps. This is an empirical parameter change, not a guarantee of grasp force/contact.
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
Variant v5: Add analytic blue center/orientation distance, weight .5.
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/freeze_manifest.json
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"files": {
|
| 3 |
+
"__pycache__/build_bank.cpython-310.pyc": "c5b110cf4533740338d10d1c9443725b755f1e7963298b4eeca1ed9edd7349a9",
|
| 4 |
+
"__pycache__/controller.cpython-310.pyc": "0192c6b40bda16232deff499604b5ff45d84c6a9b5a2e8480f7ca4c39f0d408d",
|
| 5 |
+
"__pycache__/synthetic_checks.cpython-310.pyc": "e523281c0e7f672b21763ecbeeb299f3d04aa31655fcde36cf026653b7b8ae31",
|
| 6 |
+
"build_bank.py": "d3de183745a280f102358572fda477ea9f3616bfe6e9e1af406bb335af7857aa",
|
| 7 |
+
"controller.py": "9e90a854769c78e8baff55b8efae54b28e32cab6da8a0a261688c848402d6853",
|
| 8 |
+
"demo_manifest.json": "4b899f5af6e744f1df541f665e6aa148f7a4426bd63eeeaccbf4136c484f42cc",
|
| 9 |
+
"demonstrations_readonly/demo_00.h5": "dec889fa131d3e76291d6fa33297a92fe399ebf8c8e639cccf889e37549ed5b5",
|
| 10 |
+
"demonstrations_readonly/demo_01.h5": "16ea7cf04783050e0d08a07bb999a9a3bc535dafadccd835de2139884ce084b3",
|
| 11 |
+
"demonstrations_readonly/demo_02.h5": "27d2a8988bb49a2a7feae13b306bc80544d195db5ac719252f404deb250ec375",
|
| 12 |
+
"demonstrations_readonly/demo_03.h5": "aa0bb714415ae664bf0b41d617f5bf8895d1fd06d5e5b1ad2b86d65aefd43a59",
|
| 13 |
+
"demonstrations_readonly/demo_04.h5": "480e703b2c71fd49d80fb35df15a18669e80b78b90079fb0949a376897c8e680",
|
| 14 |
+
"demonstrations_readonly/demo_05.h5": "af1c267b4137075e12649aaba198fe55adc3ea59f51e0e65e36d759bcef4d3ca",
|
| 15 |
+
"demonstrations_readonly/demo_06.h5": "eef4c947d55a674af2ca15a900e02bdbce7af6d0e7d600fd993ea78bc2d339d6",
|
| 16 |
+
"demonstrations_readonly/demo_07.h5": "b953b3f95c4e210e7d0bfe0a0d42e88f605e76ca71437ce3b79eff6be1736f0b",
|
| 17 |
+
"demonstrations_readonly/demo_08.h5": "75b0ee5ea901fefb00711cc73e29471ed170c96c7079e349fc336fbb9abb924f",
|
| 18 |
+
"demonstrations_readonly/demo_09.h5": "149ac2a8dc691151b5737abcdaac8ebc474db648e63279aab4135921b9416031",
|
| 19 |
+
"demonstrations_readonly/demo_10.h5": "df199c5cc4008ecdd23b6af58a2501a9196374fff99b773c35d961334d039fe6",
|
| 20 |
+
"demonstrations_readonly/demo_11.h5": "167b1b54b55129380b3e5d8dc7ae21691ddb9370c462f34fe40468690fbe1a3a",
|
| 21 |
+
"demonstrations_readonly/demo_12.h5": "c960c75d12c22fcd2a6bc0f556a82b1a4931cf19458056d3020ca2beb5f96da0",
|
| 22 |
+
"demonstrations_readonly/demo_13.h5": "f91abc022ba26823d86a05b122c9b020e0cb4ff08e4bae17cd1974ce1ebbe11b",
|
| 23 |
+
"demonstrations_readonly/demo_14.h5": "b96390fd235c2489e5e355b4612c41282b7f297b763272efb24ed30b652b56aa",
|
| 24 |
+
"demonstrations_readonly/demo_15.h5": "0b49456b55d8a917c973d2ff772b6e40b8b8114efaf5a1f74f05f874c621d673",
|
| 25 |
+
"demonstrations_readonly/demo_16.h5": "5bbfa3bb2f9e83ed51650786dae69f3dfe624915b75918694bbbab016ac2238a",
|
| 26 |
+
"demonstrations_readonly/demo_17.h5": "127e902da5efcdd732e69505a2ab6c5e2fb8b72d4808f0b7c1ba52b6c9189465",
|
| 27 |
+
"demonstrations_readonly/demo_18.h5": "4095b5fe0d098f0f3d5678d19f1daac5154ab9901aeb5c7f2b1696ecf4582626",
|
| 28 |
+
"demonstrations_readonly/demo_19.h5": "03d9ed7c33f0be78ef2f57338778090ac2b88e116febf386c349bb2008fe30c9",
|
| 29 |
+
"environment.lock": "f9f11f093744865020243315494d48c69e38ff9e67783e7cf5f0a1e5f22b34aa",
|
| 30 |
+
"findings.md": "4fa0f6bbbe1ce064f15929f392a38233aff7999c5f24d69df657a83fbda86015",
|
| 31 |
+
"handoff.md": "95b2f63e68b54a52c3109aaf9c105e5b73c392efdef436d56854d47cea4d402e",
|
| 32 |
+
"model_tool_manifest.yaml": "ed2320d75262bf53e3e91a2a3b64f1cbbfb331b5ad08e75e16db7ef28e5877c0",
|
| 33 |
+
"policy_runner.py": "cd8a30fc763583fb9bf6570414f01d56aba16241c733fc0cdfdfab0f8f27270e",
|
| 34 |
+
"reference_bank.npz": "88738c67d3061865c5237986583e71318f2d2de6e153f68f7571fbe64965aa73",
|
| 35 |
+
"skills.md": "05d647f41a308eb717c2b88298e52c4d407f7adf245b6d722263d66a7b99ac6c",
|
| 36 |
+
"synthetic_checks.py": "2706a5aa88ac665f0251dda4534e5bed1866942b1618817a6070c4a99b7012f9",
|
| 37 |
+
"worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e"
|
| 38 |
+
},
|
| 39 |
+
"bundle_hash": "1b2ed6675745e61793981d6ed3d2d75d83401ce1ac77614e3517c52f3202b44a",
|
| 40 |
+
"exploration_ledger_hash": "500776d9ef184156f16c71da3a944a19f4310fe4826f74a36b0c30b558281f17",
|
| 41 |
+
"entrypoint": "controller.reset_episode(); controller.act(obs)",
|
| 42 |
+
"selection": {
|
| 43 |
+
"rule": "exact-version success rate, valid rehearsal count, recency",
|
| 44 |
+
"rehearsals": [
|
| 45 |
+
{
|
| 46 |
+
"bundle_hash": "d28f662e2e102ea4a2546a9526b4791f8b53486444813a872e4059557d6a54a1",
|
| 47 |
+
"episode": 7,
|
| 48 |
+
"independent": true,
|
| 49 |
+
"score_source": "native_step_feedback",
|
| 50 |
+
"status": "finished",
|
| 51 |
+
"success": true,
|
| 52 |
+
"valid": true
|
| 53 |
+
},
|
| 54 |
+
{
|
| 55 |
+
"bundle_hash": "d28f662e2e102ea4a2546a9526b4791f8b53486444813a872e4059557d6a54a1",
|
| 56 |
+
"episode": 8,
|
| 57 |
+
"independent": true,
|
| 58 |
+
"score_source": "native_step_feedback",
|
| 59 |
+
"status": "finished",
|
| 60 |
+
"success": false,
|
| 61 |
+
"valid": true
|
| 62 |
+
},
|
| 63 |
+
{
|
| 64 |
+
"bundle_hash": "1240d5cb285ad031471b8b1f3c06070b645367464e03652609b71599489bc0f8",
|
| 65 |
+
"episode": 9,
|
| 66 |
+
"independent": true,
|
| 67 |
+
"score_source": "native_step_feedback",
|
| 68 |
+
"status": "finished",
|
| 69 |
+
"success": false,
|
| 70 |
+
"valid": true
|
| 71 |
+
},
|
| 72 |
+
{
|
| 73 |
+
"bundle_hash": "1240d5cb285ad031471b8b1f3c06070b645367464e03652609b71599489bc0f8",
|
| 74 |
+
"episode": 10,
|
| 75 |
+
"independent": true,
|
| 76 |
+
"score_source": "native_step_feedback",
|
| 77 |
+
"status": "finished",
|
| 78 |
+
"success": true,
|
| 79 |
+
"valid": true
|
| 80 |
+
},
|
| 81 |
+
{
|
| 82 |
+
"bundle_hash": "1b2ed6675745e61793981d6ed3d2d75d83401ce1ac77614e3517c52f3202b44a",
|
| 83 |
+
"episode": 11,
|
| 84 |
+
"independent": true,
|
| 85 |
+
"score_source": "native_step_feedback",
|
| 86 |
+
"status": "finished",
|
| 87 |
+
"success": true,
|
| 88 |
+
"valid": true
|
| 89 |
+
},
|
| 90 |
+
{
|
| 91 |
+
"bundle_hash": "1b2ed6675745e61793981d6ed3d2d75d83401ce1ac77614e3517c52f3202b44a",
|
| 92 |
+
"episode": 12,
|
| 93 |
+
"independent": true,
|
| 94 |
+
"score_source": "native_step_feedback",
|
| 95 |
+
"status": "finished",
|
| 96 |
+
"success": true,
|
| 97 |
+
"valid": true
|
| 98 |
+
},
|
| 99 |
+
{
|
| 100 |
+
"bundle_hash": "a38890354b240d33737795de73d57fe79bf25e546eeaf86430693b9241b93c7f",
|
| 101 |
+
"episode": 13,
|
| 102 |
+
"independent": true,
|
| 103 |
+
"score_source": "native_step_feedback",
|
| 104 |
+
"status": "finished",
|
| 105 |
+
"success": true,
|
| 106 |
+
"valid": true
|
| 107 |
+
},
|
| 108 |
+
{
|
| 109 |
+
"bundle_hash": "a38890354b240d33737795de73d57fe79bf25e546eeaf86430693b9241b93c7f",
|
| 110 |
+
"episode": 14,
|
| 111 |
+
"independent": true,
|
| 112 |
+
"score_source": "native_step_feedback",
|
| 113 |
+
"status": "finished",
|
| 114 |
+
"success": false,
|
| 115 |
+
"valid": true
|
| 116 |
+
},
|
| 117 |
+
{
|
| 118 |
+
"bundle_hash": "9d229d608f8cf631bbae9c4d05017337138f588825191d49b80bb253ff844ebf",
|
| 119 |
+
"episode": 15,
|
| 120 |
+
"independent": true,
|
| 121 |
+
"score_source": "native_step_feedback",
|
| 122 |
+
"status": "finished",
|
| 123 |
+
"success": false,
|
| 124 |
+
"valid": true
|
| 125 |
+
},
|
| 126 |
+
{
|
| 127 |
+
"bundle_hash": "9d229d608f8cf631bbae9c4d05017337138f588825191d49b80bb253ff844ebf",
|
| 128 |
+
"episode": 16,
|
| 129 |
+
"independent": true,
|
| 130 |
+
"score_source": "native_step_feedback",
|
| 131 |
+
"status": "finished",
|
| 132 |
+
"success": false,
|
| 133 |
+
"valid": true
|
| 134 |
+
},
|
| 135 |
+
{
|
| 136 |
+
"bundle_hash": "1b2ed6675745e61793981d6ed3d2d75d83401ce1ac77614e3517c52f3202b44a",
|
| 137 |
+
"episode": 17,
|
| 138 |
+
"independent": true,
|
| 139 |
+
"score_source": "native_step_feedback",
|
| 140 |
+
"status": "finished",
|
| 141 |
+
"success": true,
|
| 142 |
+
"valid": true
|
| 143 |
+
},
|
| 144 |
+
{
|
| 145 |
+
"bundle_hash": "1b2ed6675745e61793981d6ed3d2d75d83401ce1ac77614e3517c52f3202b44a",
|
| 146 |
+
"episode": 18,
|
| 147 |
+
"independent": true,
|
| 148 |
+
"score_source": "native_step_feedback",
|
| 149 |
+
"status": "finished",
|
| 150 |
+
"success": false,
|
| 151 |
+
"valid": true
|
| 152 |
+
},
|
| 153 |
+
{
|
| 154 |
+
"bundle_hash": "1b2ed6675745e61793981d6ed3d2d75d83401ce1ac77614e3517c52f3202b44a",
|
| 155 |
+
"episode": 20,
|
| 156 |
+
"independent": true,
|
| 157 |
+
"score_source": "native_step_feedback",
|
| 158 |
+
"status": "finished",
|
| 159 |
+
"success": false,
|
| 160 |
+
"valid": true
|
| 161 |
+
},
|
| 162 |
+
{
|
| 163 |
+
"episode": 19,
|
| 164 |
+
"bundle_hash": null,
|
| 165 |
+
"independent": true,
|
| 166 |
+
"valid": false,
|
| 167 |
+
"status": "infrastructure_interrupted",
|
| 168 |
+
"success": false,
|
| 169 |
+
"score_source": "interrupted_no_score",
|
| 170 |
+
"recovery": "durable_rehearsal_request_and_charged_episode; no replay"
|
| 171 |
+
}
|
| 172 |
+
]
|
| 173 |
+
}
|
| 174 |
+
}
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/handoff.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# E20 candidate handoff
|
| 2 |
+
|
| 3 |
+
Entry point controller.py: reset_episode() and act(obs). Dependencies: Python, NumPy, OpenCV, reference_bank.npz in this bundle. The fixed bank contains legal D20 descriptors, proprioception and action labels. No neural weights are trained or loaded. build_bank.py is an offline provenance helper and is never called at runtime.
|
| 4 |
+
|
| 5 |
+
Input: current rgb mapping and proprioception mapping at the exact contract paths; optional step_id. Output: bounded float32 44-vector in panda_leaphand-1 then panda_leaphand_left-0 order, or None. The runner's charged initial hold consumes native step 1. Controller counts at most 399 actions.
|
| 6 |
+
|
| 7 |
+
Development: baseline stalled at terminal reference states. Reversible x/y/z probes established camera directions. Closed-loop retrieval is accelerated, with a bounded posture-triggered axis pull. Closure and axis detection remain uncertain; success must come from native step returns or the preregistered unambiguous-image rule. No success is inferred from controller termination. See findings.md and workspace evidence for outcomes. Independent rehearsal/freeze status is owned by the trusted API ledger.
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/model_tool_manifest.yaml
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"stage": "E20_EXPLORATION",
|
| 3 |
+
"status": "developing_not_frozen",
|
| 4 |
+
"task_id": "DualArmOpenPen-v1",
|
| 5 |
+
"model": {
|
| 6 |
+
"identity": "coding worker model supplied by host; precise checkpoint identifier not exposed",
|
| 7 |
+
"weights_modified": false,
|
| 8 |
+
"finetuning": false
|
| 9 |
+
},
|
| 10 |
+
"pretrained_tool_weights": [],
|
| 11 |
+
"neural_dependencies_used": [],
|
| 12 |
+
"runtime_dependencies": {
|
| 13 |
+
"python": "3.10.20",
|
| 14 |
+
"numpy": "2.2.6",
|
| 15 |
+
"opencv-python": "4.13.0.92"
|
| 16 |
+
},
|
| 17 |
+
"offline_dependencies": {
|
| 18 |
+
"h5py": "3.16.0",
|
| 19 |
+
"worker_api.py": {
|
| 20 |
+
"path": "/worker_api.py",
|
| 21 |
+
"sha256": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e"
|
| 22 |
+
}
|
| 23 |
+
},
|
| 24 |
+
"tools_used": [
|
| 25 |
+
"functions.exec orchestration",
|
| 26 |
+
"exec_command bash/filesystem/Python",
|
| 27 |
+
"write_stdin process completion",
|
| 28 |
+
"view_image legal contact-sheet inspection",
|
| 29 |
+
"worker_api.API.read_demo local HDF5 reads",
|
| 30 |
+
"Python standard library including importlib, json, pathlib, hashlib, importlib.metadata",
|
| 31 |
+
"NumPy numerical analysis and nearest-neighbor interpolation",
|
| 32 |
+
"OpenCV image resizing, blue cue, contact sheets",
|
| 33 |
+
"h5py via API.read_demo",
|
| 34 |
+
"Trusted API interactive exploration and independent rehearsal",
|
| 35 |
+
"OpenCV optical flow on legal calibration images"
|
| 36 |
+
],
|
| 37 |
+
"data_provenance": {
|
| 38 |
+
"contract_sha256": "1683be6c7c0fa838ae085285cee7d5e340a21922e1db3ed66ec23e7fa1993837",
|
| 39 |
+
"demo_manifest_sha256": "f5f690d1fe369cb08db73fefe5b1f6b26eebedb6029fd1506cbc04a5568876ac",
|
| 40 |
+
"demo_ids": [
|
| 41 |
+
"demo_00",
|
| 42 |
+
"demo_01",
|
| 43 |
+
"demo_02",
|
| 44 |
+
"demo_03",
|
| 45 |
+
"demo_04",
|
| 46 |
+
"demo_05",
|
| 47 |
+
"demo_06",
|
| 48 |
+
"demo_07",
|
| 49 |
+
"demo_08",
|
| 50 |
+
"demo_09",
|
| 51 |
+
"demo_10",
|
| 52 |
+
"demo_11",
|
| 53 |
+
"demo_12",
|
| 54 |
+
"demo_13",
|
| 55 |
+
"demo_14",
|
| 56 |
+
"demo_15",
|
| 57 |
+
"demo_16",
|
| 58 |
+
"demo_17",
|
| 59 |
+
"demo_18",
|
| 60 |
+
"demo_19"
|
| 61 |
+
],
|
| 62 |
+
"source": "only /demonstrations sanitized HDF5 fields authorized by /demo_manifest.json",
|
| 63 |
+
"reference_bank": "fixed descriptors plus original legal action/proprioception labels; no trained parameters",
|
| 64 |
+
"reference_bank_sha256": "88738c67d3061865c5237986583e71318f2d2de6e153f68f7571fbe64965aa73",
|
| 65 |
+
"reference_rows": 5495,
|
| 66 |
+
"verified_manifest_and_common_lock": "supplied separately by runner"
|
| 67 |
+
},
|
| 68 |
+
"checks": [
|
| 69 |
+
"py_compile passed",
|
| 70 |
+
"synthetic_checks.py passed; only fabricated observations"
|
| 71 |
+
],
|
| 72 |
+
"internet_access": "none attempted; audited proxy restriction respected",
|
| 73 |
+
"limitations": [
|
| 74 |
+
"No contact/force observations",
|
| 75 |
+
"Blue PCA axis can be occluded",
|
| 76 |
+
"Joint closure is only a grasp proxy",
|
| 77 |
+
"Bounded pull completion does not imply success"
|
| 78 |
+
],
|
| 79 |
+
"frozen_weight_references": "none loaded or modified; host model checkpoint unavailable"
|
| 80 |
+
}
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/policy_runner.py
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Frozen-program entry point; no development agent and no reset capability."""
|
| 2 |
+
import importlib.util
|
| 3 |
+
import sys
|
| 4 |
+
|
| 5 |
+
sys.path.insert(0,'/artifact')
|
| 6 |
+
sys.path.insert(0,'/')
|
| 7 |
+
from worker_api import API
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
def main():
|
| 11 |
+
spec=importlib.util.spec_from_file_location('controller','/artifact/controller.py')
|
| 12 |
+
module=importlib.util.module_from_spec(spec)
|
| 13 |
+
spec.loader.exec_module(module)
|
| 14 |
+
module.reset_episode()
|
| 15 |
+
api=API()
|
| 16 |
+
result=api.latest_observation()
|
| 17 |
+
while not (result['terminated'] or result['truncated'] or result['horizon_reached']):
|
| 18 |
+
obs=dict(result['observation'],step_id=result['step_id'])
|
| 19 |
+
action=module.act(obs)
|
| 20 |
+
if action is None:break
|
| 21 |
+
response=api.execute_actions([action])
|
| 22 |
+
result=response['steps'][-1]
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
if __name__=='__main__':main()
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/skills.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Controller capabilities and limits
|
| 2 |
+
|
| 3 |
+
Retrieve coordinated bimanual actions from the 20 authorized demonstrations using current front/top RGB, qpos and qvel. Use all 44 native action components in contract order. Recompute neighbors at every step; no seed lookup or timed demonstration replay.
|
| 4 |
+
|
| 5 |
+
Estimate the pen axis from blue-dominant top-camera pixels. Calibration episodes 2–4 established root x→image right and root y→image up for both arms. After sustained joint closure and stalled retrieved arm motion, execute a bounded opposed-axis pull and settle. Axis is refreshed until pulling starts. These are geometric/posture heuristics, not contact verification or success detection. Missing observations yield legal holds. Return None means bounded-program completion or horizon exhaustion, never success.
|
| 6 |
+
|
| 7 |
+
No network, model weights, external skills, agent delegation, simulator access, or online model-development agent is required at runtime.
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/synthetic_checks.py
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Interface checks only: fabricated observations, no environment or demo rollout."""
|
| 2 |
+
import numpy as np
|
| 3 |
+
import controller as c
|
| 4 |
+
|
| 5 |
+
def observation(batch=False):
|
| 6 |
+
rgb={k:np.zeros((240,320,3),np.uint8) for k in c.CAMERAS}
|
| 7 |
+
if batch: rgb={k:v[None] for k,v in rgb.items()}
|
| 8 |
+
return dict(rgb=rgb,proprioception={f'agent/{r}/{p}':np.zeros(23,np.float32) for r in c.ROBOTS for p in ('qpos','qvel')},instruction='Open the pen',step_id=1)
|
| 9 |
+
|
| 10 |
+
def valid(a):
|
| 11 |
+
assert isinstance(a,np.ndarray) and a.shape==(44,) and np.isfinite(a).all() and np.max(np.abs(a))<=1
|
| 12 |
+
c.reset_episode(); o=observation();a=c.act(o);valid(a)
|
| 13 |
+
c.reset_episode();b=c.act(observation(True));valid(b);assert np.allclose(a,b)
|
| 14 |
+
o['proprioception'][f'agent/{c.ROBOTS[0]}/qpos'][:]=.7
|
| 15 |
+
valid(c.act(o))
|
| 16 |
+
o['rgb']['front_camera'][:,:,2]=255
|
| 17 |
+
valid(c.act(o))
|
| 18 |
+
o['proprioception'][f'agent/{c.ROBOTS[0]}/qpos'][0]=np.nan
|
| 19 |
+
assert np.all(c.act(o)==0)
|
| 20 |
+
o=observation();del o['rgb']['top_camera'];assert np.all(c.act(o)==0)
|
| 21 |
+
o=observation();o['step_id']=399;valid(c.act(o));o['step_id']=400;assert c.act(o) is None
|
| 22 |
+
c.reset_episode();assert c._calls==0
|
| 23 |
+
# Pure feature response; no claim about task performance.
|
| 24 |
+
f0=c.visual_features(np.zeros((240,320,3),np.uint8));im=np.zeros((240,320,3),np.uint8);im[50:100,60:90,2]=255
|
| 25 |
+
assert not np.array_equal(f0,c.visual_features(im))
|
| 26 |
+
print('PASS: synthetic shape, bounds, finite values, batch RGB, reset, feature response, invalid-input hold, horizon boundary. No environment used.')
|
agent_d20_e20/frozen_20261102/tasks/DualArmOpenPen-v1/frozen/worker_api.py
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Standalone worker client; safe to mount without the runner package."""
|
| 2 |
+
import base64
|
| 3 |
+
import json
|
| 4 |
+
import socket
|
| 5 |
+
import struct
|
| 6 |
+
import uuid
|
| 7 |
+
import os
|
| 8 |
+
from pathlib import Path
|
| 9 |
+
|
| 10 |
+
import numpy as np
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
def array_hook(value):
|
| 14 |
+
if value.get('__array__') is True:
|
| 15 |
+
dtype=np.dtype(value['dtype'])
|
| 16 |
+
if dtype.kind not in 'bifu':raise ValueError('non-numeric array from service')
|
| 17 |
+
raw=base64.b64decode(value['data'],validate=True)
|
| 18 |
+
return np.frombuffer(raw,dtype=dtype).reshape(value['shape']).copy()
|
| 19 |
+
return value
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
class API:
|
| 23 |
+
def __init__(self,socket_path='/rpc/control.sock',demo_root='/demonstrations',manifest='/demo_manifest.json'):
|
| 24 |
+
self.socket_path=socket_path
|
| 25 |
+
self.demo_root=Path(demo_root)
|
| 26 |
+
self.manifest=Path(manifest)
|
| 27 |
+
|
| 28 |
+
def call(self,method,arguments=None,request_id=None):
|
| 29 |
+
# Caller can persist a request ID before sending. Never automatically retry.
|
| 30 |
+
request_id=request_id or str(uuid.uuid4())
|
| 31 |
+
request={'request_id':request_id,'method':method,'arguments':arguments or {}}
|
| 32 |
+
if os.environ.get('AGENT_E20_RPC_TOKEN'):
|
| 33 |
+
request['token']=os.environ['AGENT_E20_RPC_TOKEN']
|
| 34 |
+
payload=json.dumps(request,allow_nan=False).encode()
|
| 35 |
+
if len(payload)>65536:raise ValueError('request too large')
|
| 36 |
+
with socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) as s:
|
| 37 |
+
s.settimeout(1810);s.connect(self.socket_path)
|
| 38 |
+
s.sendall(struct.pack('!I',len(payload))+payload)
|
| 39 |
+
def exact(n):
|
| 40 |
+
chunks=[]
|
| 41 |
+
while n:
|
| 42 |
+
chunk=s.recv(min(n,1024*1024))
|
| 43 |
+
if not chunk:raise RuntimeError('RPC interrupted; do not replay action with a new ID')
|
| 44 |
+
chunks.append(chunk);n-=len(chunk)
|
| 45 |
+
return b''.join(chunks)
|
| 46 |
+
length=struct.unpack('!I',exact(4))[0]
|
| 47 |
+
if length>64*1024*1024:raise RuntimeError('response too large')
|
| 48 |
+
result=json.loads(exact(length),object_hook=array_hook)
|
| 49 |
+
if not result['ok']:raise RuntimeError(result['error'])
|
| 50 |
+
return result['result']
|
| 51 |
+
|
| 52 |
+
def next_episode(self,request_id=None):return self.call('next_episode',request_id=request_id)
|
| 53 |
+
def latest_observation(self):return self.call('latest_observation')
|
| 54 |
+
def execute_actions(self,actions,request_id=None):
|
| 55 |
+
return self.call('execute_actions',{'actions':np.asarray(actions).tolist()},request_id)
|
| 56 |
+
def finish_episode(self):return self.call('finish_episode')
|
| 57 |
+
def budget_status(self):return self.call('budget_status')
|
| 58 |
+
def rehearse(self,candidate='candidate',request_id=None):
|
| 59 |
+
return self.call('rehearse',{'candidate':candidate},request_id)
|
| 60 |
+
def score_rehearsal(self,episode,visible_success,evidence):
|
| 61 |
+
return self.call('score_rehearsal',{'episode':episode,'visible_success':visible_success,'evidence':evidence})
|
| 62 |
+
def freeze(self):return self.call('freeze')
|
| 63 |
+
|
| 64 |
+
def read_demo(self,demo_id,start=0,stop=None,fields=None):
|
| 65 |
+
import h5py
|
| 66 |
+
manifest=json.loads(self.manifest.read_text())
|
| 67 |
+
if manifest.get('status') not in ('released','released_for_offline_analysis'):
|
| 68 |
+
raise RuntimeError('demonstrations not released by trusted preflight')
|
| 69 |
+
entries={e['demo_id']:e for e in manifest['episodes']}
|
| 70 |
+
if demo_id not in entries:raise ValueError('unauthorized demo ID')
|
| 71 |
+
entry=entries[demo_id]
|
| 72 |
+
allowed={f['path'] for f in entry['fields']}
|
| 73 |
+
fields=sorted(allowed) if fields is None else fields
|
| 74 |
+
if not set(fields)<=allowed:raise ValueError('unauthorized demo field')
|
| 75 |
+
stop=entry['length']+1 if stop is None else stop
|
| 76 |
+
if not isinstance(start,int) or not isinstance(stop,int) or not 0<=start<stop<=entry['length']+1:
|
| 77 |
+
raise ValueError('invalid frame interval')
|
| 78 |
+
path=(self.demo_root/entry['file']).resolve()
|
| 79 |
+
if path.parent!=self.demo_root.resolve():raise ValueError('invalid demo file')
|
| 80 |
+
with h5py.File(path,'r') as f:
|
| 81 |
+
return {field:f[field][start:min(stop,len(f[field]))] for field in fields}
|
agent_d20_e20/frozen_20261102/tasks/DualArmPouringTwoCups-v1/frozen/build_bank.py
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Offline descriptor compilation only; no model fitting or environment access."""
|
| 2 |
+
import importlib.util,json,sys
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
import numpy as np
|
| 5 |
+
ROOT=Path(__file__).resolve().parent
|
| 6 |
+
contract=json.load(open('/task_contract.json')); (ROOT/'config.json').write_text(json.dumps(contract,indent=2))
|
| 7 |
+
sys.path.insert(0,str(ROOT));from controller import visual_features,CAMS
|
| 8 |
+
spec=importlib.util.spec_from_file_location('worker_api','/worker_api.py');m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m);api=m.API()
|
| 9 |
+
manifest=json.load(open('/demo_manifest.json'));bank={k:[] for k in ['proprio','visual','action','demo','frame']};indices={}
|
| 10 |
+
for j,e in enumerate(manifest['episodes']):
|
| 11 |
+
n=e['length'];fields=['obs/'+p for p in contract['proprio_paths']]+['actions/'+p['robot_key'] for p in contract['action_parts']]
|
| 12 |
+
data=api.read_demo(e['demo_id'],fields=fields)
|
| 13 |
+
ids=sorted(set(range(0,n,4))|{n-1});indices[e['demo_id']]=ids
|
| 14 |
+
# Stream authorized frames in bounded blocks, recording descriptor indices exactly.
|
| 15 |
+
for start in range(0,n,64):
|
| 16 |
+
selected=[i for i in ids if start<=i<start+64]
|
| 17 |
+
images=api.read_demo(e['demo_id'],start,min(start+64,n),fields=['obs/sensor_data/'+c+'/rgb' for c in CAMS])
|
| 18 |
+
for i in selected:
|
| 19 |
+
bank['proprio'].append(np.concatenate([data['obs/'+p][i] for p in contract['proprio_paths']]))
|
| 20 |
+
bank['visual'].append(visual_features({c:images['obs/sensor_data/'+c+'/rgb'][i-start] for c in CAMS}))
|
| 21 |
+
bank['action'].append(np.concatenate([data['actions/'+p['robot_key']][i] for p in contract['action_parts']]))
|
| 22 |
+
bank['demo'].append(j);bank['frame'].append(i)
|
| 23 |
+
print(e['demo_id'],len(ids),flush=True)
|
| 24 |
+
for k in bank:bank[k]=np.asarray(bank[k],dtype=np.int32 if k in ['demo','frame'] else np.float32)
|
| 25 |
+
# Fixed scales, no neural or parameter optimization. qpos radians, qvel rad/s.
|
| 26 |
+
bank['scale']=np.tile(np.concatenate([np.full(23,.3),np.full(23,2.)]),2).astype(np.float32)
|
| 27 |
+
np.savez_compressed(ROOT/'reference_bank.npz',**bank)
|
| 28 |
+
(ROOT/'descriptor_indices.json').write_text(json.dumps(indices))
|
agent_d20_e20/frozen_20261102/tasks/DualArmPouringTwoCups-v1/frozen/config.json
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"task_id": "DualArmPouringTwoCups-v1",
|
| 3 |
+
"native_horizon": 1000,
|
| 4 |
+
"robot_uids": [
|
| 5 |
+
"panda_leaphand",
|
| 6 |
+
"panda_leaphand_left"
|
| 7 |
+
],
|
| 8 |
+
"instruction": "- Pour from the initially filled cup into the empty cup, then pour back.\n- Use both arms and return both cups to the table.",
|
| 9 |
+
"cameras": [
|
| 10 |
+
"front_camera",
|
| 11 |
+
"left_camera",
|
| 12 |
+
"robot_camera_0",
|
| 13 |
+
"robot_camera_1",
|
| 14 |
+
"top_camera"
|
| 15 |
+
],
|
| 16 |
+
"proprio_paths": [
|
| 17 |
+
"agent/panda_leaphand-0/qpos",
|
| 18 |
+
"agent/panda_leaphand-0/qvel",
|
| 19 |
+
"agent/panda_leaphand_left-1/qpos",
|
| 20 |
+
"agent/panda_leaphand_left-1/qvel"
|
| 21 |
+
],
|
| 22 |
+
"control_mode": "pd_ee_delta_pose",
|
| 23 |
+
"action_parts": [
|
| 24 |
+
{
|
| 25 |
+
"robot_key": "panda_leaphand-0",
|
| 26 |
+
"width": 22
|
| 27 |
+
},
|
| 28 |
+
{
|
| 29 |
+
"robot_key": "panda_leaphand_left-1",
|
| 30 |
+
"width": 22
|
| 31 |
+
}
|
| 32 |
+
],
|
| 33 |
+
"action_width": 44,
|
| 34 |
+
"control_hz": 20,
|
| 35 |
+
"action_semantics": "Per robot: six normalized arm components followed by normalized joint deltas for dex hands, or an absolute normalized gripper target for Panda. Mobile bases prepend three absolute joint positions.",
|
| 36 |
+
"units_and_coordinates": {
|
| 37 |
+
"panda_arm_translation": "normalized [-1,1] maps to [-0.1,0.1] meters in robot root frame",
|
| 38 |
+
"panda_arm_rotation": "three components clipped by vector norm to one, multiplied by rot_lower (-0.5 radians), Euler-to-quaternion rotation in root-aligned frame; this records the current controller implementation",
|
| 39 |
+
"dex_joint_delta": "normalized [-1,1] maps to [-0.1,0.1] radians",
|
| 40 |
+
"panda_gripper": "normalized [-1,1] maps to [-0.01,0.04] meters for the mimic control joint",
|
| 41 |
+
"mobile_base": "absolute base joint coordinates; native public action bounds still require validation"
|
| 42 |
+
},
|
| 43 |
+
"action_low": [
|
| 44 |
+
-1.0,
|
| 45 |
+
-1.0,
|
| 46 |
+
-1.0,
|
| 47 |
+
-1.0,
|
| 48 |
+
-1.0,
|
| 49 |
+
-1.0,
|
| 50 |
+
-1.0,
|
| 51 |
+
-1.0,
|
| 52 |
+
-1.0,
|
| 53 |
+
-1.0,
|
| 54 |
+
-1.0,
|
| 55 |
+
-1.0,
|
| 56 |
+
-1.0,
|
| 57 |
+
-1.0,
|
| 58 |
+
-1.0,
|
| 59 |
+
-1.0,
|
| 60 |
+
-1.0,
|
| 61 |
+
-1.0,
|
| 62 |
+
-1.0,
|
| 63 |
+
-1.0,
|
| 64 |
+
-1.0,
|
| 65 |
+
-1.0,
|
| 66 |
+
-1.0,
|
| 67 |
+
-1.0,
|
| 68 |
+
-1.0,
|
| 69 |
+
-1.0,
|
| 70 |
+
-1.0,
|
| 71 |
+
-1.0,
|
| 72 |
+
-1.0,
|
| 73 |
+
-1.0,
|
| 74 |
+
-1.0,
|
| 75 |
+
-1.0,
|
| 76 |
+
-1.0,
|
| 77 |
+
-1.0,
|
| 78 |
+
-1.0,
|
| 79 |
+
-1.0,
|
| 80 |
+
-1.0,
|
| 81 |
+
-1.0,
|
| 82 |
+
-1.0,
|
| 83 |
+
-1.0,
|
| 84 |
+
-1.0,
|
| 85 |
+
-1.0,
|
| 86 |
+
-1.0,
|
| 87 |
+
-1.0
|
| 88 |
+
],
|
| 89 |
+
"action_high": [
|
| 90 |
+
1.0,
|
| 91 |
+
1.0,
|
| 92 |
+
1.0,
|
| 93 |
+
1.0,
|
| 94 |
+
1.0,
|
| 95 |
+
1.0,
|
| 96 |
+
1.0,
|
| 97 |
+
1.0,
|
| 98 |
+
1.0,
|
| 99 |
+
1.0,
|
| 100 |
+
1.0,
|
| 101 |
+
1.0,
|
| 102 |
+
1.0,
|
| 103 |
+
1.0,
|
| 104 |
+
1.0,
|
| 105 |
+
1.0,
|
| 106 |
+
1.0,
|
| 107 |
+
1.0,
|
| 108 |
+
1.0,
|
| 109 |
+
1.0,
|
| 110 |
+
1.0,
|
| 111 |
+
1.0,
|
| 112 |
+
1.0,
|
| 113 |
+
1.0,
|
| 114 |
+
1.0,
|
| 115 |
+
1.0,
|
| 116 |
+
1.0,
|
| 117 |
+
1.0,
|
| 118 |
+
1.0,
|
| 119 |
+
1.0,
|
| 120 |
+
1.0,
|
| 121 |
+
1.0,
|
| 122 |
+
1.0,
|
| 123 |
+
1.0,
|
| 124 |
+
1.0,
|
| 125 |
+
1.0,
|
| 126 |
+
1.0,
|
| 127 |
+
1.0,
|
| 128 |
+
1.0,
|
| 129 |
+
1.0,
|
| 130 |
+
1.0,
|
| 131 |
+
1.0,
|
| 132 |
+
1.0,
|
| 133 |
+
1.0
|
| 134 |
+
],
|
| 135 |
+
"initial_hold_recipe": "Zero normalized deltas for arms/dex hands. For each Panda gripper, use reset robot qpos[7] only, mapped as 2*(qpos[7]+0.01)/0.05-1. Discard all reset scene fields. Reject any hold outside native action bounds; never clip an invalid hold into a different command.",
|
| 136 |
+
"development_stop": 1000,
|
| 137 |
+
"phase_speed": 2.0,
|
| 138 |
+
"feedback_gain": 0.15,
|
| 139 |
+
"lock_reference": true,
|
| 140 |
+
"rotation_speed": 1.5,
|
| 141 |
+
"slow_rotation": false,
|
| 142 |
+
"preferred_refs": [
|
| 143 |
+
15,
|
| 144 |
+
19
|
| 145 |
+
],
|
| 146 |
+
"fixed_phase": true,
|
| 147 |
+
"hand_feedback_gain": 0.0,
|
| 148 |
+
"dense_phase": true,
|
| 149 |
+
"orange_phase_speed": 1.5,
|
| 150 |
+
"blue_phase_speed": 2.0,
|
| 151 |
+
"orange_feedback_gain": 0.05,
|
| 152 |
+
"blue_feedback_gain": 0.15,
|
| 153 |
+
"second_pour_phase": 400,
|
| 154 |
+
"orange_return_speed": 2.0,
|
| 155 |
+
"orange_return_phase_first": 275,
|
| 156 |
+
"orange_return_phase_second": 650
|
| 157 |
+
}
|
agent_d20_e20/frozen_20261102/tasks/DualArmPouringTwoCups-v1/frozen/controller.py
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""D20 nonparametric observation-conditioned controller under E20 exploration."""
|
| 2 |
+
from pathlib import Path
|
| 3 |
+
import json
|
| 4 |
+
import cv2
|
| 5 |
+
import numpy as np
|
| 6 |
+
|
| 7 |
+
ROOT = Path(__file__).resolve().parent
|
| 8 |
+
CONFIG = json.loads((ROOT / 'config.json').read_text())
|
| 9 |
+
CAMS = ['front_camera', 'top_camera']
|
| 10 |
+
|
| 11 |
+
def visual_features(rgb):
|
| 12 |
+
blocks=[]
|
| 13 |
+
for camera in CAMS:
|
| 14 |
+
im=np.asarray(rgb[camera])
|
| 15 |
+
if im.ndim==4 and im.shape[0]==1: im=im[0]
|
| 16 |
+
if im.ndim!=3 or im.shape[2]!=3 or im.dtype!=np.uint8:
|
| 17 |
+
raise ValueError('Expected uint8 HWC RGB')
|
| 18 |
+
small=cv2.resize(im,(24,24),interpolation=cv2.INTER_AREA).astype(np.float32)/255.
|
| 19 |
+
# Color occupancy preserves cup location/tilt separately from background.
|
| 20 |
+
r,g,b=[im[:,:,i].astype(np.float32) for i in range(3)]
|
| 21 |
+
masks=[(b>r*1.25)&(b>g*1.05)&(b>70), (r>b*1.5)&(g>b*1.2)&(r>100)]
|
| 22 |
+
blocks.append(small.ravel())
|
| 23 |
+
blocks.extend(cv2.resize(x.astype(np.float32),(24,24),interpolation=cv2.INTER_AREA).ravel() for x in masks)
|
| 24 |
+
return np.concatenate(blocks)
|
| 25 |
+
|
| 26 |
+
class Controller:
|
| 27 |
+
def __init__(self):
|
| 28 |
+
with np.load(ROOT/'reference_bank.npz',allow_pickle=False) as z:
|
| 29 |
+
self.bank={k:z[k] for k in z.files}
|
| 30 |
+
self.feedback=np.load(ROOT/'feedback_bank.npz')['maps'] if (ROOT/'feedback_bank.npz').exists() else None
|
| 31 |
+
self.dense=np.load(ROOT/'trajectory_bank.npz') if (ROOT/'trajectory_bank.npz').exists() else None
|
| 32 |
+
self.reset_episode()
|
| 33 |
+
def reset_episode(self):
|
| 34 |
+
self.cursors=np.zeros(20,dtype=np.float32)
|
| 35 |
+
self.previous_step=0
|
| 36 |
+
self.previous_phase_speed=1.0
|
| 37 |
+
self.orange_first=None
|
| 38 |
+
self.locked=None
|
| 39 |
+
self.rotation_level=0.0
|
| 40 |
+
self.last_action=np.zeros(44,dtype=np.float32)
|
| 41 |
+
self.diagnostic={}
|
| 42 |
+
def act(self,obs):
|
| 43 |
+
step=int(obs.get('step_id',self.previous_step+1))
|
| 44 |
+
if 'observation' in obs: obs=obs['observation']
|
| 45 |
+
if step>=CONFIG.get('development_stop',1000): return None
|
| 46 |
+
if step>=CONFIG['native_horizon']: return None
|
| 47 |
+
if step<1: raise ValueError('Runner-owned hold must precede act')
|
| 48 |
+
if step<=self.previous_step: self.reset_episode()
|
| 49 |
+
try:
|
| 50 |
+
q=np.concatenate([np.asarray(obs['proprioception'][p],dtype=np.float32).reshape(-1) for p in CONFIG['proprio_paths']])
|
| 51 |
+
if q.shape!=(92,) or not np.isfinite(q).all(): raise ValueError('Invalid proprioception')
|
| 52 |
+
v=visual_features(obs['rgb'])
|
| 53 |
+
except (KeyError,ValueError,TypeError):
|
| 54 |
+
self.diagnostic={'reason':'missing or invalid legal observation'}
|
| 55 |
+
return np.zeros(44,dtype=np.float32)
|
| 56 |
+
if self.orange_first is None:
|
| 57 |
+
im=cv2.resize(np.asarray(obs['rgb']['top_camera']).squeeze(),(240,320))
|
| 58 |
+
roi=im[172:236,145:205].astype(np.float32)
|
| 59 |
+
r,g,b=roi[:,:,0],roi[:,:,1],roi[:,:,2]
|
| 60 |
+
self.orange_first=bool(np.sum((b>1.2*r)&(b>1.05*g)&(b>45))>100)
|
| 61 |
+
bank=self.bank; elapsed=max(1,step-self.previous_step)
|
| 62 |
+
candidates=[]; scores=[]
|
| 63 |
+
phase_before_action=float(np.max(self.cursors))
|
| 64 |
+
second_pour=bool(phase_before_action>=CONFIG.get('second_pour_phase',400))
|
| 65 |
+
active_source_orange=(not self.orange_first) if second_pour else self.orange_first
|
| 66 |
+
speed_key='orange_phase_speed' if active_source_orange else 'blue_phase_speed'
|
| 67 |
+
speed=CONFIG.get(speed_key,CONFIG.get('phase_speed',1.0)) if step>40 else 1.0
|
| 68 |
+
orange_return_phase=CONFIG.get('orange_return_phase_second',650) if second_pour else CONFIG.get('orange_return_phase_first',275)
|
| 69 |
+
if step>40 and active_source_orange and phase_before_action>=orange_return_phase:
|
| 70 |
+
speed=CONFIG.get('orange_return_speed',speed)
|
| 71 |
+
if step>40 and CONFIG.get('slow_rotation',False) and self.rotation_level>0.015: speed=min(speed,CONFIG.get('rotation_speed',1.5))
|
| 72 |
+
for demo in range(20):
|
| 73 |
+
refs=CONFIG.get('preferred_refs')
|
| 74 |
+
if refs is not None and demo!=refs[1 if self.orange_first else 0]: continue
|
| 75 |
+
if self.locked is not None and demo!=self.locked: continue
|
| 76 |
+
if (demo in [1,2,6,7,11,13,14,16,17,19]) != self.orange_first: continue
|
| 77 |
+
advance_speed=self.previous_phase_speed if CONFIG.get('fixed_phase',False) else speed
|
| 78 |
+
expected=self.cursors[demo]+(elapsed*advance_speed if self.previous_step else 0)
|
| 79 |
+
ids=np.flatnonzero((bank['demo']==demo)&(bank['frame']>=max(0,expected-12))&(bank['frame']<=expected+20))
|
| 80 |
+
if not len(ids): continue
|
| 81 |
+
dq=(bank['proprio'][ids]-q)/bank['scale']
|
| 82 |
+
# Equalized joint groups, light velocity influence, visual cup emphasis.
|
| 83 |
+
qcost=np.mean(dq*dq,axis=1)
|
| 84 |
+
vcost=np.mean((bank['visual'][ids]-v)**2,axis=1)
|
| 85 |
+
cost=qcost+12*vcost+0.025*((bank['frame'][ids]-expected)/12)**2
|
| 86 |
+
best=int(np.argmin(cost))
|
| 87 |
+
if CONFIG.get('fixed_phase',False):
|
| 88 |
+
best=int(np.argmin(np.abs(bank['frame'][ids]-expected)))
|
| 89 |
+
self.cursors[demo]=expected
|
| 90 |
+
else:
|
| 91 |
+
self.cursors[demo]=max(self.cursors[demo]+0.9*elapsed*speed,bank['frame'][ids[best]])
|
| 92 |
+
candidates.append(ids[best]);scores.append(cost[best])
|
| 93 |
+
if not candidates: return None
|
| 94 |
+
candidates=np.asarray(candidates); scores=np.asarray(scores)
|
| 95 |
+
order=np.argsort(scores); anchor=candidates[order[0]]
|
| 96 |
+
if CONFIG.get('lock_reference',False) and step>=40 and self.locked is None: self.locked=int(bank['demo'][anchor])
|
| 97 |
+
# Blend only nearby action directions; avoid averaging opposite pouring roles.
|
| 98 |
+
compatible=np.mean((bank['action'][candidates]-bank['action'][anchor])**2,axis=1)<0.04
|
| 99 |
+
chosen=order[compatible[order]][:3]
|
| 100 |
+
weights=np.exp(-(scores[chosen]-scores[order[0]])/0.08); weights/=weights.sum()
|
| 101 |
+
action=np.sum(bank['action'][candidates[chosen]]*weights[:,None],axis=0)
|
| 102 |
+
target_q=bank['proprio'][anchor]
|
| 103 |
+
if self.dense is not None and CONFIG.get('dense_phase',False):
|
| 104 |
+
demo=int(bank['demo'][anchor]); phase=float(self.cursors[demo])
|
| 105 |
+
aa=self.dense[f'a{demo}']; qq=self.dense[f'q{demo}']
|
| 106 |
+
lo=min(int(phase),len(aa)-1); frac=phase-lo
|
| 107 |
+
target_q=qq[lo]*(1-min(frac,1))+qq[min(lo+1,len(qq)-1)]*min(frac,1)
|
| 108 |
+
end=min(phase+speed,float(len(aa)))
|
| 109 |
+
action=np.zeros(44,dtype=np.float32)
|
| 110 |
+
weight=0.0
|
| 111 |
+
for t in range(lo,min(int(np.ceil(end)),len(aa))):
|
| 112 |
+
w=max(0.0,min(end,t+1)-max(phase,t))
|
| 113 |
+
action+=aa[t]*w; weight+=w
|
| 114 |
+
if weight>0: action/=weight
|
| 115 |
+
self.rotation_level=max(float(np.linalg.norm(action[3:6])),float(np.linalg.norm(action[25:28])))
|
| 116 |
+
if step>40 and CONFIG.get('slow_rotation',False) and self.rotation_level>0.015: speed=min(speed,CONFIG.get('rotation_speed',1.5))
|
| 117 |
+
for arm,off,ao in [(0,0,0),(1,46,22)]:
|
| 118 |
+
action[ao:ao+6]*=speed
|
| 119 |
+
feedback_gain=CONFIG.get('orange_feedback_gain' if active_source_orange else 'blue_feedback_gain',CONFIG.get('feedback_gain',0))
|
| 120 |
+
if self.feedback is not None and feedback_gain>0 and step>40:
|
| 121 |
+
error=target_q[off:off+7]-q[off:off+7]
|
| 122 |
+
correction=error@self.feedback[arm,anchor]*feedback_gain
|
| 123 |
+
action[ao:ao+6]+=np.clip(correction,-0.12,0.12)
|
| 124 |
+
if CONFIG.get('hand_feedback_gain',0)>0:
|
| 125 |
+
hand_error=target_q[off+7:off+23]-q[off+7:off+23]
|
| 126 |
+
action[ao+6:ao+22]+=CONFIG['hand_feedback_gain']*hand_error/0.1
|
| 127 |
+
if scores[order[0]]>8:
|
| 128 |
+
action=np.zeros(44,dtype=np.float32)
|
| 129 |
+
self.previous_step=step
|
| 130 |
+
self.previous_phase_speed=speed
|
| 131 |
+
self.last_action=np.clip(action,CONFIG['action_low'],CONFIG['action_high']).astype(np.float32)
|
| 132 |
+
self.diagnostic={'match_cost':float(scores[order[0]]),'reference_demo':int(bank['demo'][anchor]),'reference_frame':int(bank['frame'][anchor]),'orange_first':self.orange_first,'status':'unverified observation match'}
|
| 133 |
+
# No success detector is claimed: let native horizon bound the attempt.
|
| 134 |
+
return self.last_action.copy()
|
| 135 |
+
|
| 136 |
+
_controller=None
|
| 137 |
+
|
| 138 |
+
def reset_episode():
|
| 139 |
+
global _controller
|
| 140 |
+
if _controller is None: _controller=Controller()
|
| 141 |
+
else: _controller.reset_episode()
|
| 142 |
+
|
| 143 |
+
def act(obs):
|
| 144 |
+
global _controller
|
| 145 |
+
if _controller is None: reset_episode()
|
| 146 |
+
return _controller.act(obs)
|
agent_d20_e20/frozen_20261102/tasks/DualArmPouringTwoCups-v1/frozen/demo_analysis.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Offline D20 demonstration analysis
|
| 2 |
+
|
| 3 |
+
Status: original offline analysis retained below; exploration continuation is recorded in evidence/log_rules.md and candidate/findings.md. The zero-episode statements below describe preparation time only. All 20 authorized demonstrations were analyzed. No simulator, hidden state, task-specific controller, internet search, or neural fitting was used.
|
| 4 |
+
|
| 5 |
+
## Evidence and access
|
| 6 |
+
|
| 7 |
+
Read `/task_contract.json`, `/demo_manifest.json`, and standalone `/worker_api.py`. Data access uses only API.read_demo; no RPC methods were called. All action labels and all qpos/qvel rows were read for each trajectory. Visual inspection used seven exact observation indices per trajectory in both front_camera and top_camera. The two other robot cameras and left_camera were not visually inspected. Contact sheets are evidence/sheet_1.jpg through sheet_5.jpg. Images were resized for display; color and visible geometry judgments therefore have limited resolution.
|
| 8 |
+
|
| 9 |
+
| Demo | Actions | Inspected observation indices (both cameras) | First raised/tilted cup | RMS translation / rotation / hand, robot 0; robot 1 |
|
| 10 |
+
|---|---:|---|---|---|
|
| 11 |
+
| demo_00 | 852 | 0, 142, 284, 426, 568, 710, 852 | Blue | 0.088/0.033/0.455; 0.105/0.042/0.482 |
|
| 12 |
+
| demo_01 | 757 | 0, 126, 252, 378, 504, 630, 757 | Orange | 0.091/0.036/0.449; 0.092/0.035/0.477 |
|
| 13 |
+
| demo_02 | 821 | 0, 136, 273, 410, 547, 684, 821 | Orange | 0.090/0.037/0.434; 0.097/0.039/0.488 |
|
| 14 |
+
| demo_03 | 940 | 0, 156, 313, 470, 626, 783, 940 | Blue | 0.083/0.031/0.430; 0.156/0.052/0.497 |
|
| 15 |
+
| demo_04 | 882 | 0, 147, 294, 441, 588, 735, 882 | Blue | 0.084/0.032/0.446; 0.113/0.042/0.486 |
|
| 16 |
+
| demo_05 | 882 | 0, 147, 294, 441, 588, 735, 882 | Blue | 0.084/0.032/0.443; 0.114/0.042/0.487 |
|
| 17 |
+
| demo_06 | 799 | 0, 133, 266, 399, 532, 665, 799 | Orange | 0.098/0.039/0.422; 0.095/0.038/0.487 |
|
| 18 |
+
| demo_07 | 781 | 0, 130, 260, 390, 520, 650, 781 | Orange | 0.100/0.039/0.455; 0.091/0.035/0.472 |
|
| 19 |
+
| demo_08 | 878 | 0, 146, 292, 439, 585, 731, 878 | Blue | 0.084/0.032/0.444; 0.113/0.042/0.487 |
|
| 20 |
+
| demo_09 | 882 | 0, 147, 294, 441, 588, 735, 882 | Blue | 0.086/0.032/0.449; 0.111/0.042/0.484 |
|
| 21 |
+
| demo_10 | 882 | 0, 147, 294, 441, 588, 735, 882 | Blue | 0.084/0.032/0.440; 0.112/0.042/0.492 |
|
| 22 |
+
| demo_11 | 757 | 0, 126, 252, 378, 504, 630, 757 | Orange | 0.092/0.036/0.447; 0.092/0.035/0.478 |
|
| 23 |
+
| demo_12 | 736 | 0, 122, 245, 368, 490, 613, 736 | Blue | 0.084/0.034/0.472; 0.095/0.035/0.453 |
|
| 24 |
+
| demo_13 | 714 | 0, 119, 238, 357, 476, 595, 714 | Orange | 0.097/0.037/0.431; 0.085/0.035/0.473 |
|
| 25 |
+
| demo_14 | 816 | 0, 136, 272, 408, 544, 680, 816 | Orange | 0.099/0.039/0.453; 0.093/0.036/0.470 |
|
| 26 |
+
| demo_15 | 731 | 0, 121, 243, 365, 487, 609, 731 | Blue | 0.083/0.034/0.470; 0.096/0.035/0.456 |
|
| 27 |
+
| demo_16 | 757 | 0, 126, 252, 378, 504, 630, 757 | Orange | 0.091/0.036/0.449; 0.091/0.035/0.475 |
|
| 28 |
+
| demo_17 | 713 | 0, 118, 237, 356, 475, 594, 713 | Orange | 0.096/0.038/0.425; 0.085/0.035/0.474 |
|
| 29 |
+
| demo_18 | 859 | 0, 143, 286, 429, 572, 715, 859 | Blue | 0.086/0.032/0.450; 0.120/0.043/0.479 |
|
| 30 |
+
| demo_19 | 706 | 0, 117, 235, 353, 470, 588, 706 | Orange | 0.096/0.038/0.428; 0.086/0.035/0.477 |
|
| 31 |
+
|
| 32 |
+
Frame indexing is zero-based. For length N, action rows are 0..N-1 and observations 0..N. The conventional obs[t] -> action[t] alignment is used, but causal alignment has not been tested in an environment. Full numeric inspection results, including rotation peak indices and initial/final qpos, are in evidence/inspection.json. Descriptor compilation additionally reads front/top RGB in blocks covering frames 0..N-1; it processes every fourth frame plus N-1. Exact processed indices are in candidate/descriptor_indices.json; these additional frames were machine processed, not individually visually inspected.
|
| 33 |
+
|
| 34 |
+
## Visible sequence and variation
|
| 35 |
+
|
| 36 |
+
All 20 initial samples show an orange cup on the left of the front view and a blue cup on the right, with one dexterous hand near each handle. In top view the blue cup is above the orange cup. The first-third samples show one cup raised above the other and substantially tilted. Midpoint samples generally show both cups upright near the table. The later samples show the other cup raised/tilted over the first. Final samples show both cups upright at apparent table height. This supports two reciprocal pouring motions and use of both arms. It does not prove both cups have been released, stable support, liquid quantity transferred, absence of spills, or benchmark success.
|
| 37 |
+
|
| 38 |
+
Blue-first demos: demo_00, demo_03, demo_04, demo_05, demo_08, demo_09, demo_10, demo_12, demo_15, demo_18. Orange-first demos: demo_01, demo_02, demo_06, demo_07, demo_11, demo_13, demo_14, demo_16, demo_17, demo_19. Cup contents are small/dark and sometimes occluded; first-moving cup is observed, while its initially-filled status remains uncertain. No seed, hidden scene ID, or success label is available or inferred.
|
| 39 |
+
|
| 40 |
+
Lengths vary from 706 to 940 actions (35.30–47.00 seconds at 20 Hz), totaling 16145 labeled actions. Similar durations and appearances in several demos are not proof of duplicate scenes. Reach, tilt, return paths, receiving-cup motion and final arm poses vary. Demo_03 has especially high second-arm translational RMS (0.156) and a visibly extended orange-cup return at frame 783; demo_18 also shows extended return geometry at frame 715.
|
| 41 |
+
|
| 42 |
+
## Actions and coordinate conventions
|
| 43 |
+
|
| 44 |
+
Exactly 44 scalars: panda_leaphand-0 occupies [0:22], panda_leaphand_left-1 [22:44]. Each part is translation[0:3], rotation[3:6], dex hand joint deltas[6:22]. Every sequence is finite and spans -1 to +1; hand action RMS is much larger than arm RMS. All native component bounds are [-1,1]. Translation scales to +/-0.1 m in the corresponding robot root frame. Rotation is norm-clipped to one then multiplied by -0.5 radians and converted from Euler to quaternion in the root-aligned frame, per contract. The negative sign is significant; an intuitive positive-angle convention would be wrong. Hand deltas scale to +/-0.1 radians. Each robot has 23 qpos and 23 qvel values; exact joint names and camera-to-root transforms are not supplied. Do not equate image x/y directions with either root frame or assume roots share orientation.
|
| 45 |
+
|
| 46 |
+
No Panda scalar gripper or mobile-base action is present in these 22-wide dex-hand parts. Zero deltas are legal; the initial hold belongs to the runner and consumes one of 1000 native steps. The controller starts at step_id=1 and stops before requesting step 1000; native 20 Hz, limits, and horizon remain unchanged.
|
| 47 |
+
|
| 48 |
+
## Draft design and unresolved limitations
|
| 49 |
+
|
| 50 |
+
candidate/controller.py implements nonparametric observation-conditioned action retrieval. It compares current front/top RGB descriptors and both robots’ qpos/qvel to descriptors compiled from every demonstration. A separate temporal cursor per reference limits phase ambiguity; actions are selected anew from current observations every call. Nearby compatible action vectors can be blended. It never selects a scene using seeds, assumes a stored scene is live, or plays a full stored trajectory unconditionally. It does retain temporal priors and reference action labels; this is an imitation draft, not calibrated visual servoing.
|
| 51 |
+
|
| 52 |
+
Heuristic scales, color masks, temporal windows, neighbor compatibility and rejection threshold are unvalidated. Repeated poses can confuse phase; appearance shifts or hidden cup contents can select the wrong pouring order. Downsampled features may miss handles, fluid and slips. There is no explicit collision avoidance, grasp verification, metric cup tracking, kinematic inversion, liquid measurement, or reliable completion detector. Out-of-distribution observations yield zero deltas at a fixed heuristic threshold; that can stall. A reference cursor can exhaust candidates and end without establishing success. This draft must not be called successful or frozen.
|
| 53 |
+
|
| 54 |
+
## Tool limitations
|
| 55 |
+
|
| 56 |
+
No live environment is available in this stage. Only local Python/NumPy/OpenCV/h5py processing, shell file operations, and local image viewing were used. No internet requests were attempted; access is restricted to the audited provider proxy per task. No provider downloads or pretrained perception weights are needed. No real-task testing, score estimates, or invented rollouts are reported.
|
| 57 |
+
|
| 58 |
+
## Preparation validation
|
| 59 |
+
|
| 60 |
+
Syntax checks passed for candidate Python files. Artificial inputs verified finite bounded 44-element actions, HWC/1HWC equivalence, reset repeatability, horizon stopping and missing-input handling. An entirely synthetic reference bank verified that changing current RGB or proprioception changes action selection and preserves part order. These checks provide no evidence of real task performance. See candidate/synthetic_checks.json.
|
| 61 |
+
|
| 62 |
+
## Continuation inspection
|
| 63 |
+
Additional authorized API.read_demo inspection: demo_19 observation 160, front_camera RGB, saved as evidence/demo19_step160.png and visually inspected. Source cup is tilted close over receiver. This is pose evidence, not proof of liquid transfer or official success.
|
| 64 |
+
|
| 65 |
+
Additional continuation inspection: demo_19 observation 200, front/top RGB, via API.read_demo, saved as evidence/demo19_step200_*.png.
|