diff --git a/agent_d20_e20/frozen_20261102/tasks/BuildTent-v1/frozen/geometry_clean.npz b/agent_d20_e20/frozen_20261102/tasks/BuildTent-v1/frozen/geometry_clean.npz new file mode 100644 index 0000000000000000000000000000000000000000..a611c2a7fcad03b2aeeb83f4591679d9b503452b --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/BuildTent-v1/frozen/geometry_clean.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c91f9f75f1d3b1d16eeb2df6a8298e9adcd210070b515c4fe2f2a7fb32a09c14 +size 237402 diff --git a/agent_d20_e20/frozen_20261102/tasks/BuildTent-v1/frozen/posts_inferred.npz b/agent_d20_e20/frozen_20261102/tasks/BuildTent-v1/frozen/posts_inferred.npz new file mode 100644 index 0000000000000000000000000000000000000000..2e038d7ec1d1f938a99c05b05be0c6024b5988c7 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/BuildTent-v1/frozen/posts_inferred.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55e6028ed77cafaa57618476218ec083bb78404ae3a4571a912a6c6fe0ebc713 +size 5065 diff --git a/agent_d20_e20/frozen_20261102/tasks/BuildTent-v1/frozen/sequences.npz b/agent_d20_e20/frozen_20261102/tasks/BuildTent-v1/frozen/sequences.npz new file mode 100644 index 0000000000000000000000000000000000000000..f0d0bbec685575eb4829e662a1692c21143eefe8 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/BuildTent-v1/frozen/sequences.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa4b6c63d86eb9132ab1d9151e7baf006304a327c4122aca13104c63ae13689c +size 3664762 diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/compilation_indices.json b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/compilation_indices.json new file mode 100644 index 0000000000000000000000000000000000000000..2872ebc3c753921584ba3af8af115f7d25dcac82 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/compilation_indices.json @@ -0,0 +1,5060 @@ +[ + { + "demo_id": "demo_00", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880, + 1888, + 1896, + 1904, + 1912, + 1920, + 1928, + 1936, + 1944, + 1952, + 1960, + 1968, + 1976, + 1984, + 1992, + 2000, + 2008, + 2016, + 2024, + 2032, + 2040, + 2048, + 2056 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..2059 inclusive", + "proprio_indices": "0..2060 inclusive" + }, + { + "demo_id": "demo_01", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880, + 1888, + 1896, + 1904, + 1912, + 1920, + 1928 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1933 inclusive", + "proprio_indices": "0..1934 inclusive" + }, + { + "demo_id": "demo_02", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880, + 1888, + 1896, + 1904, + 1912, + 1920, + 1928, + 1936, + 1944 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1949 inclusive", + "proprio_indices": "0..1950 inclusive" + }, + { + "demo_id": "demo_03", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880, + 1888, + 1896, + 1904, + 1912, + 1920, + 1928, + 1936, + 1944, + 1952, + 1960, + 1968, + 1976, + 1984, + 1992 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1996 inclusive", + "proprio_indices": "0..1997 inclusive" + }, + { + "demo_id": "demo_04", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1882 inclusive", + "proprio_indices": "0..1883 inclusive" + }, + { + "demo_id": "demo_05", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880, + 1888 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1890 inclusive", + "proprio_indices": "0..1891 inclusive" + }, + { + "demo_id": "demo_06", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880, + 1888, + 1896, + 1904, + 1912, + 1920, + 1928 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1935 inclusive", + "proprio_indices": "0..1936 inclusive" + }, + { + "demo_id": "demo_07", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880, + 1888, + 1896, + 1904, + 1912, + 1920, + 1928, + 1936, + 1944, + 1952, + 1960, + 1968, + 1976, + 1984, + 1992, + 2000, + 2008, + 2016 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..2022 inclusive", + "proprio_indices": "0..2023 inclusive" + }, + { + "demo_id": "demo_08", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880, + 1888, + 1896 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1898 inclusive", + "proprio_indices": "0..1899 inclusive" + }, + { + "demo_id": "demo_09", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880, + 1888 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1890 inclusive", + "proprio_indices": "0..1891 inclusive" + }, + { + "demo_id": "demo_10", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880, + 1888, + 1896, + 1904, + 1912, + 1920, + 1928, + 1936, + 1944 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1951 inclusive", + "proprio_indices": "0..1952 inclusive" + }, + { + "demo_id": "demo_11", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880, + 1888, + 1896, + 1904, + 1912, + 1920 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1923 inclusive", + "proprio_indices": "0..1924 inclusive" + }, + { + "demo_id": "demo_12", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1882 inclusive", + "proprio_indices": "0..1883 inclusive" + }, + { + "demo_id": "demo_13", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1887 inclusive", + "proprio_indices": "0..1888 inclusive" + }, + { + "demo_id": "demo_14", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1880 inclusive", + "proprio_indices": "0..1881 inclusive" + }, + { + "demo_id": "demo_15", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1879 inclusive", + "proprio_indices": "0..1880 inclusive" + }, + { + "demo_id": "demo_16", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880, + 1888, + 1896, + 1904 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1908 inclusive", + "proprio_indices": "0..1909 inclusive" + }, + { + "demo_id": "demo_17", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1886 inclusive", + "proprio_indices": "0..1887 inclusive" + }, + { + "demo_id": "demo_18", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880, + 1888, + 1896, + 1904, + 1912, + 1920, + 1928, + 1936 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..1937 inclusive", + "proprio_indices": "0..1938 inclusive" + }, + { + "demo_id": "demo_19", + "machine_rgb_indices": [ + 0, + 8, + 16, + 24, + 32, + 40, + 48, + 56, + 64, + 72, + 80, + 88, + 96, + 104, + 112, + 120, + 128, + 136, + 144, + 152, + 160, + 168, + 176, + 184, + 192, + 200, + 208, + 216, + 224, + 232, + 240, + 248, + 256, + 264, + 272, + 280, + 288, + 296, + 304, + 312, + 320, + 328, + 336, + 344, + 352, + 360, + 368, + 376, + 384, + 392, + 400, + 408, + 416, + 424, + 432, + 440, + 448, + 456, + 464, + 472, + 480, + 488, + 496, + 504, + 512, + 520, + 528, + 536, + 544, + 552, + 560, + 568, + 576, + 584, + 592, + 600, + 608, + 616, + 624, + 632, + 640, + 648, + 656, + 664, + 672, + 680, + 688, + 696, + 704, + 712, + 720, + 728, + 736, + 744, + 752, + 760, + 768, + 776, + 784, + 792, + 800, + 808, + 816, + 824, + 832, + 840, + 848, + 856, + 864, + 872, + 880, + 888, + 896, + 904, + 912, + 920, + 928, + 936, + 944, + 952, + 960, + 968, + 976, + 984, + 992, + 1000, + 1008, + 1016, + 1024, + 1032, + 1040, + 1048, + 1056, + 1064, + 1072, + 1080, + 1088, + 1096, + 1104, + 1112, + 1120, + 1128, + 1136, + 1144, + 1152, + 1160, + 1168, + 1176, + 1184, + 1192, + 1200, + 1208, + 1216, + 1224, + 1232, + 1240, + 1248, + 1256, + 1264, + 1272, + 1280, + 1288, + 1296, + 1304, + 1312, + 1320, + 1328, + 1336, + 1344, + 1352, + 1360, + 1368, + 1376, + 1384, + 1392, + 1400, + 1408, + 1416, + 1424, + 1432, + 1440, + 1448, + 1456, + 1464, + 1472, + 1480, + 1488, + 1496, + 1504, + 1512, + 1520, + 1528, + 1536, + 1544, + 1552, + 1560, + 1568, + 1576, + 1584, + 1592, + 1600, + 1608, + 1616, + 1624, + 1632, + 1640, + 1648, + 1656, + 1664, + 1672, + 1680, + 1688, + 1696, + 1704, + 1712, + 1720, + 1728, + 1736, + 1744, + 1752, + 1760, + 1768, + 1776, + 1784, + 1792, + 1800, + 1808, + 1816, + 1824, + 1832, + 1840, + 1848, + 1856, + 1864, + 1872, + 1880, + 1888, + 1896, + 1904, + 1912, + 1920, + 1928, + 1936, + 1944, + 1952, + 1960, + 1968, + 1976, + 1984, + 1992, + 2000, + 2008, + 2016, + 2024, + 2032 + ], + "cameras": [ + "front_camera", + "left_camera" + ], + "action_indices": "0..2037 inclusive", + "proprio_indices": "0..2038 inclusive" + } +] \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/controller.py b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/controller.py new file mode 100644 index 0000000000000000000000000000000000000000..949ea025a463cd600d7655ac916eb2b8791d29f6 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/controller.py @@ -0,0 +1,127 @@ +"""Task-local demo-reference tracking with visible selection and bounded feedback.""" +from pathlib import Path +import json,numpy as np,cv2 +from visual_features import marker_features,marker_distance +ROOT=Path(__file__).parent +CONFIG=json.loads((ROOT/'settings.json').read_text()) +ROBOTS=('panda_leaphand-1','panda_leaphand_left-0') +_STATE={};_BANK=None + +def _load(): + global _BANK + if _BANK is None: + with np.load(ROOT/'reference_bank.npz') as f:b={k:f[k] for k in f.files} + with np.load(ROOT/'numeric_demos.npz') as f:b['numeric']={k:f[k] for k in f.files} + b['hand_map']=np.load(ROOT/'hand_map.npy');b['hand_sign']=np.load(ROOT/'hand_sign.npy') + b['table_features']=np.load(ROOT/'table_features.npy') + b['markers']=np.load(ROOT/'marker_bank.npy');b['feedback']=np.load(ROOT/'pose_feedback.npy') + with np.load(ROOT/'geometry_feedback.npz') as f:b['geometry']={k:f[k] for k in f.files} + b['indices']=[np.flatnonzero(b['demo_index']==i) for i in range(20)] + b['flip']=[int(np.flatnonzero((np.linalg.norm(b['numeric']['a'+str(i)][:,3:6],axis=1)>.25)&(np.arange(len(b['numeric']['a'+str(i)]))>len(b['numeric']['a'+str(i)])*.65))[0]) for i in range(20)] + b['gate']=[int(np.flatnonzero(b['numeric']['a'+str(i)][:400,23]<-.04)[-1]) for i in range(20)] + _BANK=b + return _BANK + +def reset_episode(): + _STATE.clear();_STATE.update(last_step=0,t=-1.,was_recovering=False,demo=None,gate_done=False,recovery=0,bad=0,reason='reset',phase=0.) + +def image_features(rgb): + return np.concatenate([cv2.resize(np.asarray(rgb[c]).squeeze(),(16,12),interpolation=cv2.INTER_AREA).reshape(-1).astype(np.float32)/255 for c in ['front_camera','left_camera']]) + +def scene_features(m): + out=[] + for st in [8,20]: + p=m[st:st+4].reshape(2,2) + if np.any(p<0):return None + p=p[np.argsort(p[:,1 if st==20 else 0])];out.extend(p.mean(0));out.extend(p[1]-p[0]) + return np.array(out) + +def observe_scene(m,reference,previous): + result=np.asarray(previous if previous is not None else reference,np.float32).copy();visible=0 + for cam,st in enumerate([8,20]): + p=m[st:st+4].reshape(2,2);p=p[p[:,0]>=0];visible+=len(p);base=result[cam*4:cam*4+4] + if len(p)==2: + p=p[np.argsort(p[:,cam])];result[cam*4:cam*4+4]=np.r_[p.mean(0),p[1]-p[0]] + elif len(p)==1: + endpoints=np.stack([base[:2]-.5*base[2:],base[:2]+.5*base[2:]]) + side=int(np.argmin(np.sum((endpoints-p[0])**2,axis=1))) + result[cam*4:cam*4+2]=p[0]+(.5 if side==0 else -.5)*base[2:] + return result,visible + +def leg_error(m): + red=m[:8].reshape(4,2);blue=m[8:12].reshape(2,2) + if np.any(red[:,0]<0) or np.any(blue[:,0]<0):return None + upper=red[np.argsort(red[:,1])[:2]] + return float(np.min(upper[:,0])-np.min(blue[:,0])) + +def act(obs): + if not _STATE:reset_episode() + step=int(obs['step_id']);elapsed=step-_STATE['last_step'] + if step>=min(2400,CONFIG.get('stop_step',2400)):return None + if elapsed<=0:raise ValueError('Non-increasing step') + _STATE['last_step']=step;b=_load();p=obs['proprioception'] + q=np.concatenate([np.asarray(p['agent/'+r+'/qpos']).reshape(-1) for r in ROBOTS]) + if q.shape!=(46,) or not np.isfinite(q).all():return None + im=image_features(obs['rgb']);marks=marker_features(obs['rgb']) + if _STATE['demo'] is None or step<=9: + ids=np.array([x[min(int((step-1)//8),len(x)-1)] for x in b['indices']]) + ds=marker_distance(b['markers'][ids],marks)*CONFIG.get('marker_weight',.1)+np.mean(((b['image'][ids]-im)/.15)**2,1) + _STATE['demo']=int(np.argmin(ds));_STATE['selection_distance']=float(ds.min()) + did=_STATE['demo'];a=b['numeric']['a'+str(did)];qref=b['numeric']['q'+str(did)];n=len(a) + if not _STATE['was_recovering']:_STATE['t']+=elapsed*CONFIG.get('speed',1.) + t=int(round(_STATE['t']));gate=b['gate'][did];err=leg_error(marks);_STATE['leg_error']=err + recovering=False + if CONFIG.get('leg_gate',False) and not _STATE['gate_done'] and t>=gate: + if err is not None and err<=CONFIG.get('leg_threshold',.025):_STATE['gate_done']=True + elif _STATE['recovery']>=CONFIG.get('recovery_limit',80): + _STATE['reason']='first-leg recovery exhausted; failed attempt';return None + else: + recovering=True;_STATE['recovery']+=elapsed;t=gate-20 + if t>=n: + _STATE['reason']='reference endpoint reached; not a success assertion';return None + j=b['indices'][did][min(t//8,len(b['indices'][did])-1)] + action=a[t].copy();error=qref[t]-q + flipping=t>=b['flip'][did]-4 + _STATE['flipping']=bool(flipping) + _STATE['geometry_offset_norm']=0. + geometry_joint_offset=np.zeros(14,np.float32) + if CONFIG.get('geometry_gain',0.) and t>n*.02 and not flipping: + reference=b['table_features'][j] + current,visible=observe_scene(marks,reference,_STATE.get('table_geometry')) + _STATE['table_geometry']=current.tolist();_STATE['geometry_visible_points']=int(visible) + previous=np.asarray(_STATE.get('geometry_offset',[0.]*14),np.float32) + offset=previous + if current is not None and reference is not None: + g=b['geometry'];k=int(np.argmin(abs(g['grid']-g['aligned_phase'][j]))) + if g['valid'][k]>=8: + target=CONFIG['geometry_gain']*((current-reference)@g['jac'][k]) + target=np.clip(target,-CONFIG.get('geometry_limit',.1),CONFIG.get('geometry_limit',.1)) + alpha=1.-.9**elapsed;offset=previous+alpha*(target-previous) + _STATE['geometry_offset']=offset.tolist() + geometry_joint_offset=offset + _STATE['geometry_offset_norm']=float(np.linalg.norm(offset)) + for r in range(2): + qs=slice(r*23,r*23+7);aa=slice(r*22,r*22+6) + gain=0. if (r==0 and flipping and CONFIG.get('disable_flip_feedback',True)) else CONFIG.get('pose_gain',.1) + correction=gain*(error[qs]@b['feedback'][j,r]) + correction[3:]=0. # Preserve demonstrated wrist orientation commands. + correction[:3]+=gain*(geometry_joint_offset[r*7:r*7+7]@b['feedback'][j,r])[:3] + action[aa]+=np.clip(correction,-CONFIG.get('pose_limit',.02),CONFIG.get('pose_limit',.02)) + hs=slice(r*23+7,r*23+23);ha=slice(r*22+6,r*22+22) + action[ha]+=np.clip(CONFIG.get('hand_gain',.1)*error[hs][b['hand_map'][r]]*b['hand_sign'][r]/.1,-CONFIG.get('hand_limit',.05),CONFIG.get('hand_limit',.05)) + if recovering: + action[:22]=0 + # Continue the demonstrated pull, without pulling back toward an earlier pose. + action[22:25]=a[max(gate-30,0),22:25] + if recovering:_STATE['t']=float(gate) + _STATE['was_recovering']=recovering + _STATE['phase']=float(_STATE['t']/n);_STATE['frame']=t + _STATE['arm_distance']=float(np.mean((error[:7]/b['q_scale'][:7])**2)) + support_error=error.copy() + if flipping and CONFIG.get('disable_flip_feedback',True):support_error[:7]=0 + _STATE['distance']=float(np.mean((support_error/b['q_scale'])**2)) + _STATE['bad']=_STATE['bad']+elapsed if _STATE['distance']>CONFIG.get('pose_abort',3.) else 0 + if _STATE['bad']>40: + _STATE['reason']='sustained pose deviation; failed attempt';return None + _STATE['reason']='visible leg recovery' if recovering else 'reference tracking with joint feedback' + return np.clip(action,-1,1).astype(np.float32) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/demo_manifest.json b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/demo_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..b7043cda7700393dd1b800ffa07cce34f34ef1d3 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/demo_manifest.json @@ -0,0 +1,2168 @@ +{ + "task_id": "DualArmFlipTable-v1", + "status": "released", + "selection_rule": "prefer existing pinned D20, otherwise numeric trajectory ID sort before reading data", + "lineage_status": "pinned_comparator", + "episodes": [ + { + "demo_id": "demo_00", + "file": "demo_00.h5", + "length": 2060, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 2060, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 2060, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 2061, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 2061, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 2061, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 2061, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 2061, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 2061, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 2061, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 2061, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 2061, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "051c72dd27c17b55ea7a49a68bb4e5ee269f06f1d1fe090db75f0533faa312f7", + "source_sha256": "d96d354fea4daf240c4913ce970e93b7b36c7860b83db008177d4a1961207a84", + "view_sha256": "0d122c27e5c21ee41769b874cc72e645f46a90a817b85420703a39964b0a415d" + }, + { + "demo_id": "demo_01", + "file": "demo_01.h5", + "length": 1934, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1934, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1934, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1935, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1935, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1935, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1935, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1935, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1935, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1935, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1935, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1935, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "d70c4feb4ae57f5b9ad9f2bbdce4b559650aa13a6f1cca2c87c47590ed617b89", + "source_sha256": "2c9a1a3acb6f8ff8b29d787599e9a8f5597db867841d4d9f58e409328c2f6613", + "view_sha256": "f49a92feac7173f5b81a41cec5df883352b8941a61564d4fc5320db921ae101f" + }, + { + "demo_id": "demo_02", + "file": "demo_02.h5", + "length": 1950, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1950, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1950, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1951, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1951, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1951, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1951, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1951, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1951, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1951, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1951, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1951, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "aea6b5ebe3d71e7d31ff4a07b898cd03fc03d066083113ad243305604758e9f3", + "source_sha256": "0ee8ed58bca36dcca5ce39d31dd01fc9a91ba68c6a5cd24e0673f3c132bde85c", + "view_sha256": "39703e95414e2c55a27f732fda6568f3f0b25dcd4f426b378acd271543d0717d" + }, + { + "demo_id": "demo_03", + "file": "demo_03.h5", + "length": 1997, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1997, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1997, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1998, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1998, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1998, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1998, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1998, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1998, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1998, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1998, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1998, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "a3c01b0919b9da242b9be6f0df23ff7c38d7651011c051cae9f6f39ec2ffa536", + "source_sha256": "724b25dc11396f8c5b051efb096c945857cb21976fde50ce14e60c3106245402", + "view_sha256": "87301c3d9d5abd62fabd60da63eb6db3652b4347db5f1b44fd7809e73b12106d" + }, + { + "demo_id": "demo_04", + "file": "demo_04.h5", + "length": 1883, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1883, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1883, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1884, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1884, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1884, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1884, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1884, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1884, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1884, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1884, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1884, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "0383d45c70d71b13623d4e53cf20e17d44fda1573cbd3af7090e8f5715786a39", + "source_sha256": "cafea2665b65efc4e64452570b69cfa7d7f3d25b04f29aac0f93aabf1ce762a4", + "view_sha256": "45ac6ce692c92cee4deb5eaa9c3fc1af6dd1dd517546247b7e5440adbab7e766" + }, + { + "demo_id": "demo_05", + "file": "demo_05.h5", + "length": 1891, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1891, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1891, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1892, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1892, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1892, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1892, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1892, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1892, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1892, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1892, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1892, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "2540cf64d94a1dffaebce83be1c2e07eef2adcebbbae299a9bacc6c05a60b67a", + "source_sha256": "6a51a99e5e524871de296f079ad50f87718fed4ee0cf1042b3c0b328bff15deb", + "view_sha256": "0814e1c011f21d5390f1d7d661428a6ad1a89efa8ca9d142158c59bb930a14fb" + }, + { + "demo_id": "demo_06", + "file": "demo_06.h5", + "length": 1936, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1936, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1936, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1937, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1937, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1937, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1937, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1937, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1937, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1937, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1937, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1937, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "b6b87b55f28316b9af27aac5140a7031b951b9b81a9884e7d98405bb7aaf9553", + "source_sha256": "ac43977b8016fe51704a6d116f4f66643d5b796d278557699f037e00749a5f8a", + "view_sha256": "3557ba66bf910c0c77f4b59046b81d9bf4608794f31c9506961548c22a730f0d" + }, + { + "demo_id": "demo_07", + "file": "demo_07.h5", + "length": 2023, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 2023, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 2023, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 2024, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 2024, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 2024, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 2024, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 2024, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 2024, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 2024, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 2024, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 2024, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "ddcd905db271e8a713b8b8c0d1381da6591d62112963893ed9858e60e0879342", + "source_sha256": "beece5c69e65164f19fa2d41709a400af2f4fb3945f70b609c9adbe66a7f934f", + "view_sha256": "73428516af973deea350cd2bd94502cdb459cfb866d6f49f1cc7ef85ee910a04" + }, + { + "demo_id": "demo_08", + "file": "demo_08.h5", + "length": 1899, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1899, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1899, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1900, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1900, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1900, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1900, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1900, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1900, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1900, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1900, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1900, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "4f9bee067c77d310fa2812d42c196e9967a4dd3463bd3f1e94399da74c7fe826", + "source_sha256": "b91f6c815d1ac2fb1bf2107a9fed6aa31b68726604158e7440adbe09bd4639d9", + "view_sha256": "31508756747180763c7bc709c45e5bcb20c1b8588764039ca5d026bc1aa00aa1" + }, + { + "demo_id": "demo_09", + "file": "demo_09.h5", + "length": 1891, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1891, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1891, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1892, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1892, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1892, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1892, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1892, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1892, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1892, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1892, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1892, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "311e3d03aaf7abd21a70f8a0d63dd4e31a62d2e912bc2505d7ca63a7e0d9be15", + "source_sha256": "a0dd5918b90d6c40744ee93379b41307d1dfb1e8287eadc2a5711ece7b93fdc0", + "view_sha256": "7f183cfa8d188fa88dc17a6f8be89f27d0f98888a525ac9d918801057fb4e087" + }, + { + "demo_id": "demo_10", + "file": "demo_10.h5", + "length": 1952, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1952, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1952, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1953, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1953, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1953, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1953, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1953, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1953, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1953, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1953, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1953, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "7bb82a62669137d6adb4ad33f5834b9742013f16156ad210454f6553a2a5782d", + "source_sha256": "b2e68b5eae8a900ea843de2707cff2ce33e253f30e953276ad41d2405e345d89", + "view_sha256": "c5bb6e9305807cbfcab4eea3de18b8e55c5d058552fd9e83c3c627e14389e414" + }, + { + "demo_id": "demo_11", + "file": "demo_11.h5", + "length": 1924, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1924, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1924, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1925, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1925, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1925, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1925, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1925, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1925, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1925, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1925, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1925, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "828ca11eb737c21d904f128b949b6498a75cccd661f8d512becb2cd31cd01b57", + "source_sha256": "74f00b14a62fcc9f04aee2f76532b6c3aae4eabab45ddd7f8b8569fa01ee01e7", + "view_sha256": "dca0868d63e943e7a20083ccdcb9ff2390dd9931c7a89ab83866e64f1e43720d" + }, + { + "demo_id": "demo_12", + "file": "demo_12.h5", + "length": 1883, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1883, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1883, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1884, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1884, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1884, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1884, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1884, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1884, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1884, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1884, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1884, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "3e814d1b200680e1ad9ea52234199c2a505bfd58fd4d868d9e57059a5cea2e0f", + "source_sha256": "96cf6a76049eb73fa2bdc1fab58d4da4f1b1808e18d7bbdbd8f76d163b49413d", + "view_sha256": "e2f27830bcf1ca3142f7ac2854e03dfdb2a905b584c5380928238028a2fd1717" + }, + { + "demo_id": "demo_13", + "file": "demo_13.h5", + "length": 1888, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1888, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1888, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1889, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1889, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1889, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1889, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1889, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1889, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1889, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1889, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1889, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "e6d2abbc10a2ad6965b8f470b5b78fe3d388cd5500bd8e19e10ab34eeaf4182d", + "source_sha256": "7838ae20cca190793dcfc90f4647e2c53bfbc0be1b56c898c78af08cf2f4190b", + "view_sha256": "05ce111fbdecfa37a5c7d10478f603ea1b8bf951d97d4170a02f7c575c77bbed" + }, + { + "demo_id": "demo_14", + "file": "demo_14.h5", + "length": 1881, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1881, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1881, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1882, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1882, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1882, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1882, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1882, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1882, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1882, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1882, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1882, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "a85fde3971e4ee09c2730381909844caf8378fbba0bd4f4f6be92a016b795a8e", + "source_sha256": "60bf4819c28c3d4e4400dfbf4554eb706ae51e2448baf3ee53494b14919dae05", + "view_sha256": "2a303cfd92d4c92084869f3862310bceeb68e74daed19db1929f5d2b7764166c" + }, + { + "demo_id": "demo_15", + "file": "demo_15.h5", + "length": 1880, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1880, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1880, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1881, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1881, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1881, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1881, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1881, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1881, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1881, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1881, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1881, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "4a76a38f41866743d6b5de4a0ca38d88ca05657f08f32eb4f5479c869dd83d64", + "source_sha256": "8a19f109efcdc47423e60024a21b920f88cc0fd5ca7659b10a5361dff4fce4d6", + "view_sha256": "2b017639b5924c5737330ab56c67ef8e82f390926bbaadb1798013ebb4870798" + }, + { + "demo_id": "demo_16", + "file": "demo_16.h5", + "length": 1909, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1909, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1909, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1910, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1910, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1910, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1910, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1910, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1910, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1910, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1910, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1910, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "d2b34482fee9d1b5304c8d4f82d118755ff95af7e729d0475a5ca5bba57c677b", + "source_sha256": "5e84f17d586b0ea4598af3fab1e598abc1d0acbab8287ecf3d233ce312eca1be", + "view_sha256": "8f2b6e8ac2e7973e718f00f68658449e8165ade85e1f9d6c8cd2b63d3a816783" + }, + { + "demo_id": "demo_17", + "file": "demo_17.h5", + "length": 1887, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1887, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1887, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1888, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1888, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1888, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1888, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1888, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1888, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1888, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1888, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1888, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "50f8fede2fa7ef05c47b034efa5b6c5ba0bb12a1ab10a9ead60916ee223c035d", + "source_sha256": "8851dd4876a145737b66be5003dd6dcd3324f8d5aaed3bfe1d5771102c980f3c", + "view_sha256": "35cd118c78cd3470209ad599d4a10bdef8088907dad2a0d58abea313c8cee85a" + }, + { + "demo_id": "demo_18", + "file": "demo_18.h5", + "length": 1938, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1938, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1938, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1939, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1939, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1939, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1939, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1939, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1939, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1939, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1939, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1939, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "91b7211c9c63ff14f7fecd27896cce463dd5fe24b842b64eeb1f5252a8a37ce2", + "source_sha256": "110b01129e58364704ba86b6067e75a1a7c13434797ea14f06e63cde5a0a82e7", + "view_sha256": "c5a54758662a492e17a8d70616f938109d53feb25c257fba65189499956dca96" + }, + { + "demo_id": "demo_19", + "file": "demo_19.h5", + "length": 2038, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 2038, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 2038, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 2039, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 2039, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 2039, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 2039, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 2039, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 2039, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 2039, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 2039, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 2039, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "8bbd1876cae25c6a9dcfec4d0cc7112bcf9f380f23816f3b75159cb5feaa07fb", + "source_sha256": "5210b06a6f361f65811d2c86dbf2c9afd2f5a587dc3cd85125bc0c7ab3e8122e", + "view_sha256": "9f52b913b3e2179773509f7d660e5e0d06a4791cdf00de9d7920232bfdaed7f7" + } + ] +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/environment.lock b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/environment.lock new file mode 100644 index 0000000000000000000000000000000000000000..b2237f47d93aa4c3efad07728ae6acd137912d6d --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/environment.lock @@ -0,0 +1,249 @@ +absl-py==2.4.0 +accelerate==1.13.0 +addict==2.4.0 +aiohappyeyeballs==2.6.1 +aiohttp==3.13.5 +aiosignal==1.4.0 +annotated-types==0.7.0 +anyio==4.13.0 +anytree==2.13.0 +asttokens==3.0.1 +async-timeout==5.0.1 +attrs==26.1.0 +av==15.1.0 +blinker==1.9.0 +casadi==3.7.2 +certifi==2026.4.22 +cffi==2.0.0 +charset-normalizer==3.4.7 +click==8.3.3 +cloudpickle==3.1.2 +cmake==4.1.3 +coacd==1.0.11 +colorama==0.4.6 +colorlog==6.10.1 +comm==0.2.3 +ConfigArgParse==1.7.5 +contourpy==1.3.2 +cuda-bindings==12.9.4 +cuda-pathfinder==1.5.4 +cycler==0.12.1 +dacite==1.9.2 +dash==4.1.0 +dataclasses-json==0.6.7 +datasets==4.8.5 +decorator==5.2.1 +deepdiff==8.6.2 +Deprecated==1.3.1 +diffusers==0.35.2 +dill==0.4.1 +docstring_parser==0.18.0 +draccus==0.10.0 +einops==0.8.2 +embreex==4.4.0 +etils==1.13.0 +evdev==1.9.3 +exceptiongroup==1.3.1 +executing==2.2.1 +Farama-Notifications==0.0.6 +fast_simplification==0.1.13 +fastjsonschema==2.21.2 +filelock==3.29.0 +Flask==3.1.3 +fonttools==4.63.0 +freetype-py==2.5.1 +frozenlist==1.8.0 +fsspec==2026.2.0 +genesis-world @ file:///data/gck/genesis-world +git-filter-repo==2.47.0 +gitdb==4.0.12 +GitPython==3.1.50 +glfw==2.10.0 +gs-madrona==0.0.5 +gstaichi==3.3.0 +gym==0.26.2 +gym-notices==0.1.0 +gymnasium==1.3.0 +h11==0.16.0 +h5py==3.16.0 +hf-xet==1.5.0 +hf_transfer==0.1.9 +httpcore==1.0.9 +httpx==0.28.1 +huggingface-hub==0.35.3 +idna==3.15 +ImageIO==2.37.3 +imageio-ffmpeg==0.6.0 +importlib_metadata==9.0.0 +importlib_resources==7.1.0 +inquirerpy==0.3.4 +ipython==8.39.0 +ipywidgets==8.1.8 +itsdangerous==2.2.0 +jedi==0.20.0 +Jinja2==3.1.6 +joblib==1.5.3 +jsonlines==4.0.0 +jsonschema==4.26.0 +jsonschema-specifications==2025.9.1 +jupyter_core==5.9.1 +jupyterlab_widgets==3.0.16 +kiwisolver==1.5.0 +lazy-loader==0.5 +lerobot==0.4.4 +libigl==2.6.2 +llvmlite==0.47.0 +loguru==0.7.3 +lxml==6.1.0 +manifold3d==3.4.1 +-e git+ssh://git@github.com/HeegerGao/maniladder.git@f6eed17496816bb41ce484f2d7580990a908d3e6#egg=maniladder +mapbox_earcut==2.0.0 +markdown-it-py==4.2.0 +MarkupSafe==3.0.3 +marshmallow==3.26.2 +matplotlib==3.10.9 +matplotlib-inline==0.2.2 +mdurl==0.1.2 +mergedeep==1.3.4 +moviepy==2.2.1 +mpmath==1.3.0 +msgspec==0.21.1 +mujoco==3.8.1 +multidict==6.7.1 +multiprocess==0.70.19 +mypy_extensions==1.1.0 +nbformat==5.10.4 +nest-asyncio==1.6.0 +networkx==3.4.2 +ninja==1.13.0 +nlopt==2.10.0 +numba==0.65.1 +numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1747544640217/work/dist/numpy-2.2.6-cp310-cp310-linux_x86_64.whl#sha256=d6d964caeef85d00073d27cd62b46883d275b3d8162f723f0fcabbd0b3cc3f9d +nvidia-cublas-cu12==12.8.4.1 +nvidia-cuda-cupti-cu12==12.8.90 +nvidia-cuda-nvrtc-cu12==12.8.93 +nvidia-cuda-runtime-cu12==12.8.90 +nvidia-cudnn-cu12==9.10.2.21 +nvidia-cufft-cu12==11.3.3.83 +nvidia-cufile-cu12==1.13.1.3 +nvidia-curand-cu12==10.3.9.90 +nvidia-cusolver-cu12==11.7.3.90 +nvidia-cusparse-cu12==12.5.8.93 +nvidia-cusparselt-cu12==0.7.1 +nvidia-nccl-cu12==2.27.5 +nvidia-nvjitlink-cu12==12.8.93 +nvidia-nvshmem-cu12==3.4.5 +nvidia-nvtx-cu12==12.8.90 +open3d==0.19.0 +opencv-python==4.13.0.92 +opencv-python-headless==4.12.0.88 +OpenEXR==3.4.11 +orderly-set==5.5.0 +packaging==25.0 +pandas==2.3.3 +parso==0.8.7 +pexpect==4.9.0 +pfzy==0.3.4 +pillow==11.3.0 +pin==4.0.0 +pip @ file:///home/task_177498883471825/croot/pip_1774988882575/work +platformdirs==4.9.6 +plotly==5.24.1 +polyscope==2.6.1 +proglog==0.1.12 +prompt_toolkit==3.0.52 +propcache==0.5.2 +protobuf==6.33.6 +psutil==7.2.2 +ptyprocess==0.7.0 +pure_eval==0.2.3 +py-cpuinfo==9.0.0 +py-spy==0.4.2 +pyarrow==24.0.0 +pycollada==0.9.3 +pycparser==3.0 +pydantic==2.13.4 +pydantic_core==2.46.4 +PyGEL3D==0.6.1 +pyglet==2.1.14 +pygltflib==1.16.0 +Pygments==2.20.0 +pymeshlab==2025.7.post1 +pynput==1.8.2 +PyOpenGL==3.1.10 +pyparsing==3.3.2 +pyperclip==1.11.0 +PyQt6==6.11.0 +PyQt6-Qt6==6.11.0 +PyQt6_sip==13.11.1 +pyquaternion==0.9.9 +pyserial==3.5 +pysplashsurf==0.12.0.2 +python-dateutil==2.9.0.post0 +python-dotenv==1.2.2 +python-xlib==0.33 +pytransform3d==3.15.0 +pytz==2026.2 +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 +PyYAML==6.0.3 +pyyaml-include==1.4.1 +referencing==0.37.0 +regex==2026.5.9 +requests==2.34.2 +rerun-sdk==0.26.2 +retrying==1.4.2 +rich==14.3.4 +rpds-py==0.30.0 +rtree==1.4.1 +safetensors==0.7.0 +sapien==3.0.3 +scikit-image==0.25.2 +scikit-learn==1.7.2 +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 +sentry-sdk==2.60.0 +setuptools==80.10.2 +shapely==2.1.2 +six==1.17.0 +smmap==5.0.3 +stack-data==0.6.3 +svg.path==7.0 +sympy==1.14.0 +tenacity==9.1.4 +termcolor==3.3.0 +tetgen==0.8.4 +threadpoolctl==3.6.0 +tifffile==2025.5.10 +timm==1.0.27 +toml==0.10.2 +torch==2.10.0 +torchaudio==2.11.0 +torchcodec==0.10.0 +torchvision==0.25.0 +tqdm==4.67.3 +traitlets==5.15.0 +transforms3d==0.4.2 +trimesh==4.12.2 +triton==3.6.0 +typeguard==4.5.2 +typing-inspect==0.9.0 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +tyro==1.0.13 +tzdata==2026.2 +urllib3==2.7.0 +vhacdx==0.0.10 +viser==1.0.27 +vtk==9.6.1 +wandb==0.24.2 +wcwidth==0.7.0 +websockets==16.0 +Werkzeug==3.1.8 +wheel==0.46.3 +widgetsnbextension==4.0.15 +wrapt==2.1.2 +xxhash==3.7.0 +yarl==1.23.0 +yourdfpy==0.0.60 +z3-solver==4.16.0.0 +zipp==3.23.1 +zstandard==0.25.0 diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/findings.md b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/findings.md new file mode 100644 index 0000000000000000000000000000000000000000..ce343d31cf74c03b8f1c0d9ddaef410ebd54a223 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/findings.md @@ -0,0 +1,32 @@ +# Findings and audit + +Only this task's 20 authorized demos and charged legal API exploration were used. No neural weights were fitted or changed. + +The original blended retrieval stalled at a direction reversal. Single-label retrieval progressed but failed to unfold/flip reliably. Direct hand-qpos feedback was unsafe because action and qpos joint ordering differ. Episode 7 measured the correct permutation on both hands: [4,0,8,12,5,1,9,13,6,2,10,14,3,7,11,15]. Three .08 pulses produced approximately .02447 rad, consistent with native units. + +A coherent visually selected reference with joint feedback improved leg manipulation. Full tests exposed table/hand misalignment and large joint-coordinate changes during the flip. Current-image geometry adjustment is a bounded numerical calibration from legal demos, not a neural model. Raw qpos difference is not used to abort the right arm during the large flip rotation when configured to disable flip feedback. Regression-derived arm rotation corrections were removed after direct demo/live grasp comparison; demonstrated wrist commands are preserved, with any configured time scaling shown in settings. + +The independent runner rejected a four-action output at step 1 in episode 4. Single 44-vector output and None termination were independently validated in episode 9. Runtime therefore emits one action per call. + +## Development evidence + +| Episode | Recorded result | +|---|---| +| 1 | Interactive: step 599; observation-conditioned reference action; native success seen=None (None means not retained in early harness). | +| 2 | Independent: finished; native success=False; hash ecd01c65829bbad2f157f08731ce4f1d10183104a3e36da0ddb5021af4024776 | +| 3 | Interactive: step 397; observation-conditioned reference action; native success seen=None (None means not retained in early harness). | +| 4 | Independent: exception; native success=False; hash dc9e1a729475c3a5a6fe154acbc8c9274fb300efb4bd17eb6653238e6938ccdb | +| 5 | Interactive: step 281; outside reference support; native success seen=None (None means not retained in early harness). | +| 6 | Interactive: step 397; observation-conditioned reference action; native success seen=None (None means not retained in early harness). | +| 7 | Finger-order pulse calibration; unique mapping on both hands; no task success claim. | +| 8 | Interactive: step 1873; sustained pose deviation; failed attempt; native success seen=False (None means not retained in early harness). | +| 9 | Independent: finished; native success=False; hash 63198c6d2651047751520526f7fb458ae8b333fb81dad128b6f1fe0843dae45d | +| 10 | Interactive: step 1953; reference endpoint reached; not a success assertion; native success seen=False (None means not retained in early harness). | +| 11 | Interactive: step 797; reference tracking with joint feedback; native success seen=False (None means not retained in early harness). | +| 12 | Interactive: step 1900; reference endpoint reached; not a success assertion; native success seen=False (None means not retained in early harness). | +| 13 | Interactive: step 2062; reference endpoint reached; not a success assertion; native success seen=False (None means not retained in early harness). | +| 14 | Interactive: step 1892; reference endpoint reached; not a success assertion; native success seen=False (None means not retained in early harness). | + +See /workspace/exploration/ledger.md, summary.json, version snapshots, native logs, observations, and action arrays for the full audit. Native feedback is authoritative when present. A native score overwrite attempt in episode 2 was rejected; its false score was retained. If native feedback is absent, the preregistered fallback requires unambiguous visible unfolded legs and upright tabletop; ambiguity is false. + +Final four exact independent rehearsal results and freeze metadata are preserved outside candidate so the same bundle can be repeated without modification. Reference phase, endpoint termination, pose support, and visible leg metrics are never official success claims. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/freeze_manifest.json b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/freeze_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..66369b3d6c19d0a95c84201b826878b5ba4d8984 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/freeze_manifest.json @@ -0,0 +1,126 @@ +{ + "files": { + "compilation_indices.json": "0b5517936dcea0b656c2c1794baa28447336ba07b3e35adff5ff885c16e0b33b", + "controller.py": "d20bfd35b3d822cbb377a3d4c16a1297ba9e38b218c2dc9322b8c986cea00506", + "demo_manifest.json": "022a515f4aa615c072def4b3949b47b3593d89b8e1d4083c7b2310ea84c09539", + "demonstrations_readonly/demo_00.h5": "0d122c27e5c21ee41769b874cc72e645f46a90a817b85420703a39964b0a415d", + "demonstrations_readonly/demo_01.h5": "f49a92feac7173f5b81a41cec5df883352b8941a61564d4fc5320db921ae101f", + "demonstrations_readonly/demo_02.h5": "39703e95414e2c55a27f732fda6568f3f0b25dcd4f426b378acd271543d0717d", + "demonstrations_readonly/demo_03.h5": "87301c3d9d5abd62fabd60da63eb6db3652b4347db5f1b44fd7809e73b12106d", + "demonstrations_readonly/demo_04.h5": "45ac6ce692c92cee4deb5eaa9c3fc1af6dd1dd517546247b7e5440adbab7e766", + "demonstrations_readonly/demo_05.h5": "0814e1c011f21d5390f1d7d661428a6ad1a89efa8ca9d142158c59bb930a14fb", + "demonstrations_readonly/demo_06.h5": "3557ba66bf910c0c77f4b59046b81d9bf4608794f31c9506961548c22a730f0d", + "demonstrations_readonly/demo_07.h5": "73428516af973deea350cd2bd94502cdb459cfb866d6f49f1cc7ef85ee910a04", + "demonstrations_readonly/demo_08.h5": "31508756747180763c7bc709c45e5bcb20c1b8588764039ca5d026bc1aa00aa1", + "demonstrations_readonly/demo_09.h5": "7f183cfa8d188fa88dc17a6f8be89f27d0f98888a525ac9d918801057fb4e087", + "demonstrations_readonly/demo_10.h5": "c5bb6e9305807cbfcab4eea3de18b8e55c5d058552fd9e83c3c627e14389e414", + "demonstrations_readonly/demo_11.h5": "dca0868d63e943e7a20083ccdcb9ff2390dd9931c7a89ab83866e64f1e43720d", + "demonstrations_readonly/demo_12.h5": "e2f27830bcf1ca3142f7ac2854e03dfdb2a905b584c5380928238028a2fd1717", + "demonstrations_readonly/demo_13.h5": "05ce111fbdecfa37a5c7d10478f603ea1b8bf951d97d4170a02f7c575c77bbed", + "demonstrations_readonly/demo_14.h5": "2a303cfd92d4c92084869f3862310bceeb68e74daed19db1929f5d2b7764166c", + "demonstrations_readonly/demo_15.h5": "2b017639b5924c5737330ab56c67ef8e82f390926bbaadb1798013ebb4870798", + "demonstrations_readonly/demo_16.h5": "8f2b6e8ac2e7973e718f00f68658449e8165ade85e1f9d6c8cd2b63d3a816783", + "demonstrations_readonly/demo_17.h5": "35cd118c78cd3470209ad599d4a10bdef8088907dad2a0d58abea313c8cee85a", + "demonstrations_readonly/demo_18.h5": "c5a54758662a492e17a8d70616f938109d53feb25c257fba65189499956dca96", + "demonstrations_readonly/demo_19.h5": "9f52b913b3e2179773509f7d660e5e0d06a4791cdf00de9d7920232bfdaed7f7", + "environment.lock": "f9f11f093744865020243315494d48c69e38ff9e67783e7cf5f0a1e5f22b34aa", + "findings.md": "088084ff14bda99d7bc374b632b87756f161ebeff6c96fc78b1115bef9df66c4", + "geometry_feedback.npz": "bb9696f8752e2f4b6c36c29b4a85e26ca2ddd26bd7388e7a27e52c0bfc340689", + "hand_map.npy": "535b33f368a4c6e49257cd819c856a868bb6f74d0803a86ca46dccc9ba23884a", + "hand_sign.npy": "adfcf05fc49ff553773a66d9bb57399c8feb7a42469bd969e00109aef25b9f39", + "handoff.md": "f8a8969fc05b51d96b9ec04df522b13a5bb2cb56eff96ce97b7765cf493192d9", + "marker_bank.npy": "340230ceaf9b6608a0785df1a4badf92eb6b6ba2f7b848fd3a8a313d38a8a3b2", + "model_tool_manifest.yaml": "e4f5182f320295a37c8377806be4ba3c9b4115ebdbab99818b1fa4655d2d332e", + "numeric_demos.npz": "cfb747e06fded6acccec96cad9d4e3a7b9dbb67db9ca14d114b8a02a15d4ba6b", + "policy_runner.py": "cd8a30fc763583fb9bf6570414f01d56aba16241c733fc0cdfdfab0f8f27270e", + "pose_feedback.npy": "1b2a579fab5c22229b18c4bfb7bec9535278ec32bf3552c4919a3bb799699df6", + "reference_bank.npz": "0e489a26fd4533863fdf5332be38b9e0dff03847d8665c6887c1e449ea8f5f09", + "settings.json": "60b975af0abe317895c00bf5bfe7a430a2b39c2802a81e307bf15ab2213682d6", + "skills.md": "e30fc4e3154193e46d7566ced8f0d9a77cf78d36eed133c8f409c6bca7e83a01", + "table_features.npy": "6130204a75a93ba29839bf5ea5c5482b072258a0a4d9a6a340311da5b740c960", + "validation.txt": "2e86037161253e500db12be4a5a21ab2741b2b715d8e85bb8d99feeeb859e1f4", + "visual_features.py": "5a85357cabe89a731f89080d4ce5ce9ba9e8a9954a9ebc4c28de187e4214e2c2", + "worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e" + }, + "bundle_hash": "ab6098a01f9991f5851a6a351f4b99be27eda39563ed9d20bd5dd4c7a64b480c", + "exploration_ledger_hash": "545882ec15a5907e508f92cda907abddcfce427021635901a1304eb93ae8bc8e", + "entrypoint": "controller.reset_episode(); controller.act(obs)", + "selection": { + "rule": "exact-version success rate, valid rehearsal count, recency", + "rehearsals": [ + { + "bundle_hash": "ecd01c65829bbad2f157f08731ce4f1d10183104a3e36da0ddb5021af4024776", + "episode": 2, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "bundle_hash": "dc9e1a729475c3a5a6fe154acbc8c9274fb300efb4bd17eb6653238e6938ccdb", + "episode": 4, + "independent": true, + "score_source": "native_step_feedback", + "status": "exception", + "success": false, + "valid": true + }, + { + "bundle_hash": "63198c6d2651047751520526f7fb458ae8b333fb81dad128b6f1fe0843dae45d", + "episode": 9, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "bundle_hash": "ab6098a01f9991f5851a6a351f4b99be27eda39563ed9d20bd5dd4c7a64b480c", + "episode": 15, + "independent": true, + "recovery": "durable_rehearsal_request_and_charged_episode; no replay", + "score_source": "interrupted_no_score", + "status": "infrastructure_interrupted", + "success": false, + "valid": false + }, + { + "bundle_hash": "ab6098a01f9991f5851a6a351f4b99be27eda39563ed9d20bd5dd4c7a64b480c", + "episode": 16, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "episode": 18, + "bundle_hash": "ab6098a01f9991f5851a6a351f4b99be27eda39563ed9d20bd5dd4c7a64b480c", + "independent": true, + "valid": true, + "status": "exception", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 19, + "bundle_hash": "ab6098a01f9991f5851a6a351f4b99be27eda39563ed9d20bd5dd4c7a64b480c", + "independent": true, + "valid": true, + "status": "exception", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 20, + "bundle_hash": "ab6098a01f9991f5851a6a351f4b99be27eda39563ed9d20bd5dd4c7a64b480c", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + } + ] + } +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/handoff.md b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/handoff.md new file mode 100644 index 0000000000000000000000000000000000000000..5dd84c581360979396d3f479a08e5683c9dea9b3 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/handoff.md @@ -0,0 +1,27 @@ +# Handoff + +Entry point: controller.py exposes reset_episode() and act(obs). Call reset_episode once per new episode. act reads step_id, front_camera/left_camera uint8 RGB, and both 23-element qpos arrays in the contract paths. It returns one finite float32 vector of length 44 in [-1,1], or None to stop. The runner owns the initial charged hold. Native horizon is 2400 at 20 Hz. + +Runtime uses only Python, NumPy, OpenCV, and the adjacent bundled files. No API, network, external model, online fitting, or development agent is needed. All reference arrays come from the authorized 20 demos; the hand mapping comes from legal exploration episode 7. Settings below describe the submitted behavior. + +```json +{ + "marker_weight": 0.1, + "pose_gain": 0.15, + "pose_limit": 0.06, + "hand_gain": 0.1, + "hand_limit": 0.05, + "speed": 1.0, + "leg_gate": false, + "recovery_limit": 80, + "leg_threshold": 0.025, + "pose_abort": 3.0, + "geometry_gain": 1.0, + "geometry_limit": 0.3, + "disable_flip_feedback": true +} +``` + +The reference endpoint and recovery/pose aborts are not success claims. Both current table appearance and contacts can differ from demonstrations. Linear geometry and arm feedback are approximate; contact and grasp robustness must be assessed by independent rehearsals. + +The audit remains in /workspace/demo_analysis.md, /workspace/exploration, and /workspace/versions. The runner supplies the verified demo manifest, readonly demos, and common environment lock. Final exact rehearsal and freeze metadata are stored outside this directory to preserve bundle identity. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/model_tool_manifest.yaml b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/model_tool_manifest.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e31be23042579ffb1e13e18b6df9c2ed21611fcb --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/model_tool_manifest.yaml @@ -0,0 +1,68 @@ +{ + "task_id": "DualArmFlipTable-v1", + "protocol": "Agent-D20-E20-Compiled", + "runtime_dependencies": [ + "Python standard library", + "numpy", + "cv2" + ], + "runtime_network": false, + "runtime_environment_imports": false, + "neural_weights_modified": false, + "pretrained_weights": [], + "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" + ], + "legal_exploration_calibration": "Episode 7 hand permutation/sign; other exploration used to select controller settings", + "numeric_models": "Nonparametric demo references, local linear arm calibration, and bounded marker-to-joint numerical geometry calibration. No neural training.", + "source_sha256": { + "/task_contract.json": "5debae4735ab904d6710fed731a31c74e6bb64d260ce8c8813421c9762b764ef", + "/protocol_for_worker.json": "7833632cc0cb7b6d4bfad5727ac38cce7d2ceaaac8fabd7c5b4d710dfc5f2c32", + "/demo_manifest.json": "022a515f4aa615c072def4b3949b47b3593d89b8e1d4083c7b2310ea84c09539" + }, + "artifact_sha256": { + "compilation_indices.json": "0b5517936dcea0b656c2c1794baa28447336ba07b3e35adff5ff885c16e0b33b", + "controller.py": "d20bfd35b3d822cbb377a3d4c16a1297ba9e38b218c2dc9322b8c986cea00506", + "findings.md": "088084ff14bda99d7bc374b632b87756f161ebeff6c96fc78b1115bef9df66c4", + "geometry_feedback.npz": "bb9696f8752e2f4b6c36c29b4a85e26ca2ddd26bd7388e7a27e52c0bfc340689", + "hand_map.npy": "535b33f368a4c6e49257cd819c856a868bb6f74d0803a86ca46dccc9ba23884a", + "hand_sign.npy": "adfcf05fc49ff553773a66d9bb57399c8feb7a42469bd969e00109aef25b9f39", + "handoff.md": "f8a8969fc05b51d96b9ec04df522b13a5bb2cb56eff96ce97b7765cf493192d9", + "marker_bank.npy": "340230ceaf9b6608a0785df1a4badf92eb6b6ba2f7b848fd3a8a313d38a8a3b2", + "numeric_demos.npz": "cfb747e06fded6acccec96cad9d4e3a7b9dbb67db9ca14d114b8a02a15d4ba6b", + "pose_feedback.npy": "1b2a579fab5c22229b18c4bfb7bec9535278ec32bf3552c4919a3bb799699df6", + "reference_bank.npz": "0e489a26fd4533863fdf5332be38b9e0dff03847d8665c6887c1e449ea8f5f09", + "settings.json": "60b975af0abe317895c00bf5bfe7a430a2b39c2802a81e307bf15ab2213682d6", + "skills.md": "e30fc4e3154193e46d7566ced8f0d9a77cf78d36eed133c8f409c6bca7e83a01", + "table_features.npy": "6130204a75a93ba29839bf5ea5c5482b072258a0a4d9a6a340311da5b740c960", + "validation.txt": "2e86037161253e500db12be4a5a21ab2741b2b715d8e85bb8d99feeeb859e1f4", + "visual_features.py": "5a85357cabe89a731f89080d4ce5ce9ba9e8a9954a9ebc4c28de187e4214e2c2" + }, + "python": "3.10.20", + "package_versions": { + "numpy": "2.2.6", + "opencv-python": "4.13.0.92" + }, + "common_environment_lock": "Added by trusted runner", + "rehearsal_results": "Stored externally in exploration/rehearsal*.json; exact bundle hashes returned by API", + "score_policy": "Use native feedback when present; otherwise require unambiguous visible task completion and score ambiguity false." +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/policy_runner.py b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/policy_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..e49448d6245feb7818ae505f1061708ab97c6ead --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/policy_runner.py @@ -0,0 +1,25 @@ +"""Frozen-program entry point; no development agent and no reset capability.""" +import importlib.util +import sys + +sys.path.insert(0,'/artifact') +sys.path.insert(0,'/') +from worker_api import API + + +def main(): + spec=importlib.util.spec_from_file_location('controller','/artifact/controller.py') + module=importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + module.reset_episode() + api=API() + result=api.latest_observation() + while not (result['terminated'] or result['truncated'] or result['horizon_reached']): + obs=dict(result['observation'],step_id=result['step_id']) + action=module.act(obs) + if action is None:break + response=api.execute_actions([action]) + result=response['steps'][-1] + + +if __name__=='__main__':main() diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/settings.json b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/settings.json new file mode 100644 index 0000000000000000000000000000000000000000..892d5ab7a1a494ff1519299641257da8d9441658 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/settings.json @@ -0,0 +1,15 @@ +{ + "marker_weight": 0.1, + "pose_gain": 0.15, + "pose_limit": 0.06, + "hand_gain": 0.1, + "hand_limit": 0.05, + "speed": 1.0, + "leg_gate": false, + "recovery_limit": 80, + "leg_threshold": 0.025, + "pose_abort": 3.0, + "geometry_gain": 1.0, + "geometry_limit": 0.3, + "disable_flip_feedback": true +} \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/skills.md b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/skills.md new file mode 100644 index 0000000000000000000000000000000000000000..ae5ca6137d733a3792adb2c949e41f009457bc5a --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/skills.md @@ -0,0 +1,11 @@ +# Task-local control procedure + +1. Respect the 44-component order: panda_leaphand-1 then panda_leaphand_left-0, each 6 arm plus 16 hand deltas. +2. The runner supplies the charged hold; step 1 is already consumed. Use only legal RGB/proprioception and step_id. +3. Select a reference using visible front/left RGB and colored tabletop markers during the initial observations. Track its native-step action sequence with bounded feedback. +4. Use the measured hand permutation; never equate hand qpos ordering with action ordering. +5. Preserve demonstrated wrist commands; learned corrections affect arm translation and mapped fingers only. When enabled, smooth and bound current-marker geometry corrections. Missing markers are unknown; they are not completion evidence. +6. Large flip rotations can change the arm's IK branch. Follow configured flip feedback handling and preserve action bounds. +7. None ends an attempt and does not assert success. Native feedback or the conservative visible fallback determines scoring. + +No external Codex skill, network model, development agent, simulator import, seed access, or state restoration is part of the runtime. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/validation.txt b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/validation.txt new file mode 100644 index 0000000000000000000000000000000000000000..d75e374f35fe59f3ce8939d10b5079ea564b0885 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/validation.txt @@ -0,0 +1 @@ +Final controller and visual feature syntax compiled successfully. Live diagnostics and independent runner results are listed in findings.md and the external audit. Synthetic interface checks are not task-success evidence. Final four rehearsals must use this exact unchanged directory. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/visual_features.py b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/visual_features.py new file mode 100644 index 0000000000000000000000000000000000000000..5da412e300fc2fc6e837ce9e8e9ca91807b02d30 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/visual_features.py @@ -0,0 +1,23 @@ +import cv2,numpy as np +def marker_features(rgb): + f=[] + for c in ['front_camera','left_camera']: + im=np.asarray(rgb[c]).squeeze() + for mask,count in [((im[:,:,0]>170)&(im[:,:,1]<100)&(im[:,:,2]<100),4),((im[:,:,2]>170)&(im[:,:,0]<100)&(im[:,:,1]<130),2)]: + n,l,s,p=cv2.connectedComponentsWithStats(mask.astype(np.uint8)) + z=sorted([(ss[4],pp) for ss,pp in zip(s[1:],p[1:]) if ss[4]>=3],reverse=True,key=lambda x:x[0])[:count] + p=np.array([x[1]/[im.shape[1],im.shape[0]] for x in z]).reshape(-1,2) + if len(p):p=p[np.argsort(p[:,0])] + a=np.full((count,2),-1.,np.float32);a[:len(p)]=p;f.extend(a.flatten()) + return np.array(f,np.float32) +def marker_distance(bank,current): + # Color and camera are preserved; point order within a color is irrelevant. + ds=np.zeros(len(bank),np.float32) + for start,n in [(0,4),(8,2),(12,4),(20,2)]: + b=bank[:,start:start+2*n].reshape(-1,n,2);c=current[start:start+2*n].reshape(n,2);validc=c[:,0]>=0;validb=b[:,:,0]>=0 + if not validc.any():continue + dd=np.sum((b[:,:,None,:]-c[None,None,:,:])**2,axis=-1);dd=np.where(validb[:,:,None]&validc[None,None,:],dd,1.) + left=np.where(validb,dd.min(2),0).sum(1)/np.maximum(validb.sum(1),1) + right=np.where(validc[None,:],dd.min(1),0).sum(1)/validc.sum() + ds+=np.minimum((left+right)/2,.02)/(.03**2) + return ds/4 diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/worker_api.py b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/worker_api.py new file mode 100644 index 0000000000000000000000000000000000000000..ff137d1c68cb70a1549326d2d22b430c9cf4e20c --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmFlipTable-v1/frozen/worker_api.py @@ -0,0 +1,81 @@ +"""Standalone worker client; safe to mount without the runner package.""" +import base64 +import json +import socket +import struct +import uuid +import os +from pathlib import Path + +import numpy as np + + +def array_hook(value): + if value.get('__array__') is True: + dtype=np.dtype(value['dtype']) + if dtype.kind not in 'bifu':raise ValueError('non-numeric array from service') + raw=base64.b64decode(value['data'],validate=True) + return np.frombuffer(raw,dtype=dtype).reshape(value['shape']).copy() + return value + + +class API: + def __init__(self,socket_path='/rpc/control.sock',demo_root='/demonstrations',manifest='/demo_manifest.json'): + self.socket_path=socket_path + self.demo_root=Path(demo_root) + self.manifest=Path(manifest) + + def call(self,method,arguments=None,request_id=None): + # Caller can persist a request ID before sending. Never automatically retry. + request_id=request_id or str(uuid.uuid4()) + request={'request_id':request_id,'method':method,'arguments':arguments or {}} + if os.environ.get('AGENT_E20_RPC_TOKEN'): + request['token']=os.environ['AGENT_E20_RPC_TOKEN'] + payload=json.dumps(request,allow_nan=False).encode() + if len(payload)>65536:raise ValueError('request too large') + with socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) as s: + s.settimeout(1810);s.connect(self.socket_path) + s.sendall(struct.pack('!I',len(payload))+payload) + def exact(n): + chunks=[] + while n: + chunk=s.recv(min(n,1024*1024)) + if not chunk:raise RuntimeError('RPC interrupted; do not replay action with a new ID') + chunks.append(chunk);n-=len(chunk) + return b''.join(chunks) + length=struct.unpack('!I',exact(4))[0] + if length>64*1024*1024:raise RuntimeError('response too large') + result=json.loads(exact(length),object_hook=array_hook) + if not result['ok']:raise RuntimeError(result['error']) + return result['result'] + + def next_episode(self,request_id=None):return self.call('next_episode',request_id=request_id) + def latest_observation(self):return self.call('latest_observation') + def execute_actions(self,actions,request_id=None): + return self.call('execute_actions',{'actions':np.asarray(actions).tolist()},request_id) + def finish_episode(self):return self.call('finish_episode') + def budget_status(self):return self.call('budget_status') + def rehearse(self,candidate='candidate',request_id=None): + return self.call('rehearse',{'candidate':candidate},request_id) + def score_rehearsal(self,episode,visible_success,evidence): + return self.call('score_rehearsal',{'episode':episode,'visible_success':visible_success,'evidence':evidence}) + def freeze(self):return self.call('freeze') + + def read_demo(self,demo_id,start=0,stop=None,fields=None): + import h5py + manifest=json.loads(self.manifest.read_text()) + if manifest.get('status') not in ('released','released_for_offline_analysis'): + raise RuntimeError('demonstrations not released by trusted preflight') + entries={e['demo_id']:e for e in manifest['episodes']} + if demo_id not in entries:raise ValueError('unauthorized demo ID') + entry=entries[demo_id] + allowed={f['path'] for f in entry['fields']} + fields=sorted(allowed) if fields is None else fields + if not set(fields)<=allowed:raise ValueError('unauthorized demo field') + stop=entry['length']+1 if stop is None else stop + if not isinstance(start,int) or not isinstance(stop,int) or not 0<=start