diff --git a/.gitattributes b/.gitattributes index f4d823d12e5195f81bd061aff965d3903aaa1471..c1748938270eba6430599859bd9e252bca0b81fb 100644 --- a/.gitattributes +++ b/.gitattributes @@ -634,3 +634,53 @@ frames/f0598.jpg filter=lfs diff=lfs merge=lfs -text frames/f0599.jpg filter=lfs diff=lfs merge=lfs -text frames/f0600.jpg filter=lfs diff=lfs merge=lfs -text window.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_01.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_01.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_02.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_02.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_03.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_03.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_04.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_04.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_05.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_05.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_06.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_06.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_07.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_07.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_08.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_08.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_09.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_09.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_10.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_10.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_11.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_11.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_12.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_12.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_13.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_13.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_14.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_14.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_15.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_15.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_16.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_16.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_17.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_17.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_18.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_18.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_19.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_19.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_20.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_20.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_21.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_21.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_22.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_22.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_23.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_23.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_24.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_24.mp4 filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_25.jpg filter=lfs diff=lfs merge=lfs -text +overlay25/clips/event_25.mp4 filter=lfs diff=lfs merge=lfs -text diff --git a/action_sample25_overlay.html b/action_sample25_overlay.html new file mode 100644 index 0000000000000000000000000000000000000000..e7dd112d1bf90a94f0d4d8218f97241f0b9e3278 --- /dev/null +++ b/action_sample25_overlay.html @@ -0,0 +1 @@ +Mocap overlays — 25 review clips

25 mocap overlay clips · Z-up · 4 seconds each

Top: raw mocap. Bottom: repair candidate, not ground truth. Both show the same measured footage in left / middle / right camera order. Dots and XYZ axes use the existing preview renderer. Calibration camera files explicitly declare Z-up and are used unchanged. Flagged events are not confirmed tracking loss. Segment-edge clips remain inside their segment; no missing context is invented.

Pose charts and original camera links · Frame ranges and calibration hashes

1. data/motherboard/meta/2026-09-11/episode_007_seg00.parquet::right:544-544:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

2. data/rope/meta/2026-09-14/episode_003_seg01.parquet::right:3960-3964:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

3. data/pushT/meta/2026-09-10/episode_003_seg02.parquet::left:10247-10248:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

4. data/toy/meta/2026-09-14/episode_000_seg00.parquet::left:6525-6529:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

5. data/validation/meta/2026-09-09/episode_001.parquet::right:1394-1397:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

6. old_data/motherboard/meta/2026-05-10/episode_000.parquet::left:6729-6729:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

7. old_data/pushT/meta/2026-06-18/episode_001.parquet::left:11024-11027:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

8. data/motherboard/meta/2026-09-11/episode_007_seg02.parquet::left:11508-11524:known_gap

robust_se3_hermite · HIGH · UNVERIFIED · 4.0s

9. data/validation/meta/2026-09-09/episode_003.parquet::right:7010-7015:branch_discontinuity

robust_se3_hermite · MEDIUM · UNVERIFIED · 4.0s

10. data/pushT/meta/2026-09-10/episode_004_seg00.parquet::left:568-571:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

11. data/rope/meta/2026-09-11/episode_000_seg00.parquet::left:2114-2116:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

12. data/toy/meta/2026-09-14/episode_000_seg00.parquet::right:5938-5938:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

13. old_data/motherboard/meta/2026-05-10/episode_002.parquet::left:10364-10364:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

14. old_data/pushT/meta/2026-06-18/episode_001.parquet::left:7981-7984:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

15. data/validation/meta/2026-09-09/episode_005.parquet::right:1081-1087:branch_discontinuity

robust_se3_hermite · MEDIUM · UNVERIFIED · 4.0s

16. data/motherboard/meta/2026-09-11/episode_007_seg04.parquet::right:24330-24330:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

17. data/pushT/meta/2026-09-10/episode_004_seg02.parquet::right:10779-10781:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

18. data/rope/meta/2026-09-11/episode_000_seg00.parquet::left:816-819:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

19. data/toy/meta/2026-09-14/episode_000_seg03.parquet::right:15106-15107:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

20. old_data/motherboard/meta/2026-05-11/episode_005.parquet::right:10454-10454:branch_discontinuity

endpoint_se3 · MEDIUM · UNVERIFIED · 4.0s

21. data/motherboard/meta/2026-09-11/episode_007_seg04.parquet::left:24381-24421:gap_with_discontinuity

unrepaired_ambiguous_branch · LOW · UNVERIFIED · 4.0s

22. old_data/motherboard/meta/2026-05-11/episode_013.parquet::left:8050-8112:known_gap

unrepaired_ambiguous_branch · LOW · UNVERIFIED · 4.0s

23. old_data/pushT/meta/2026-06-18/episode_001.parquet::left:9752-9758:branch_review

paired_body_branch_review · MEDIUM · UNVERIFIED · 4.0s

24. data/validation/meta/2026-09-09/episode_003.parquet::left:6412-6439:branch_discontinuity

unrepaired_ambiguous_branch · LOW · UNVERIFIED · 4.0s

25. old_data/motherboard/meta/2026-05-11/episode_015.parquet::left:708-768:known_gap

unrepaired_ambiguous_branch · LOW · UNVERIFIED · 4.0s

\ No newline at end of file diff --git a/overlay25/calibration/data/motherboard/T_gel_to_rigid_left.json b/overlay25/calibration/data/motherboard/T_gel_to_rigid_left.json new file mode 100644 index 0000000000000000000000000000000000000000..1841cac1133234442ca99335532512a32e25b04f --- /dev/null +++ b/overlay25/calibration/data/motherboard/T_gel_to_rigid_left.json @@ -0,0 +1,167 @@ +{ + "method": "dual_ball_multi_pose", + "refball_center_in_rigid_mm": [ + -33.51740422401229, + 12.100255314675977, + -17.699792261606614 + ], + "gelball_center_in_rigid_mm": [ + -43.47382768891848, + -41.22508071829758, + -35.7960391945282 + ], + "gel_axis_in_rigid": [ + -0.17411894520453713, + -0.9324875086795467, + -0.31646427772731606 + ], + "gel_distance_mm": 57.19086670954521, + "depth_offset_mm": -5.0, + "gel_center_in_rigid_mm": [ + -42.603232962895795, + -36.56264317489985, + -34.21371780589162 + ], + "consistency": { + "refball_mean_deviation_mm": 0.4971205477445346, + "refball_max_deviation_mm": 0.6830937323295619, + "refball_std_mm": [ + 0.3822793790831837, + 0.14607220822214068, + 0.3370989262846435 + ], + "gelball_mean_deviation_mm": 0.5311059103030308, + "gelball_max_deviation_mm": 0.7146199631539334, + "gelball_std_mm": [ + 0.23387391401966107, + 0.402760954424785, + 0.30624407553769517 + ], + "axis_max_angle_deg": 1.069223796324866, + "ball_distance_std_mm": 0.09592190067940498 + }, + "mocap_scale": 1000.0, + "raw_data": [ + { + "pose_id": 0, + "rigid_position_mm": [ + 209.704, + 67.29599999999999, + 288.7 + ], + "rigid_quaternion": [ + -0.03045, + 0.5291786, + 0.72056156, + 0.447052 + ], + "refball_mocap_mm": [ + 213.805, + 32.849000000000004, + 307.12899999999996 + ], + "refball_rigid_mm": [ + -33.064365762599664, + 12.164420770736669, + -17.37287066173849 + ], + "gelball_mocap_mm": [ + 247.768, + 13.639999999999999, + 265.48699999999997 + ], + "gelball_rigid_mm": [ + -43.61612381039666, + -40.65963065991089, + -36.20919744147588 + ], + "ball_distance_mm": 57.0659899940411, + "axis_in_rigid": [ + -0.18490449475946746, + -0.9256660830060691, + -0.33007973368558585 + ] + }, + { + "pose_id": 1, + "rigid_position_mm": [ + 207.22, + 63.50699999999999, + 137.26 + ], + "rigid_quaternion": [ + 0.575241, + 0.53501, + -0.513944, + 0.344559 + ], + "refball_mocap_mm": [ + 226.556, + 69.48400000000001, + 172.275 + ], + "refball_rigid_mm": [ + -33.99941004902249, + 12.238224727792783, + -18.163744708359914 + ], + "gelball_mocap_mm": [ + 179.374, + 93.761, + 193.90099999999998 + ], + "gelball_rigid_mm": [ + -43.661251420623046, + -41.44844032643957, + -35.70194717225823 + ], + "ball_distance_mm": 57.29919483727493, + "axis_in_rigid": [ + -0.16862089247570416, + -0.936953219093185, + -0.3060811327926228 + ] + }, + { + "pose_id": 2, + "rigid_position_mm": [ + 261.399, + 57.67, + 194.732 + ], + "rigid_quaternion": [ + -0.63276, + 0.187712, + 0.37411, + 0.65147 + ], + "refball_mocap_mm": [ + 235.038, + 31.395, + 208.37800000000001 + ], + "refball_rigid_mm": [ + -33.48843686041472, + 11.898120445498478, + -17.562761414721432 + ], + "gelball_mocap_mm": [ + 271.628, + 16.011, + 249.575 + ], + "gelball_rigid_mm": [ + -43.14410783573577, + -41.5671711685423, + -35.4769729698505 + ], + "ball_distance_mm": 57.2074152973196, + "axis_in_rigid": [ + -0.16878355585789684, + -0.9345867373341344, + -0.3131449211964034 + ] + } + ], + "up_axis": "n/a (rigid-body frame)" +} \ No newline at end of file diff --git a/overlay25/calibration/data/motherboard/T_gel_to_rigid_right.json b/overlay25/calibration/data/motherboard/T_gel_to_rigid_right.json new file mode 100644 index 0000000000000000000000000000000000000000..7d1dd67c265e1bc0d24caac4eef373db2106c5ff --- /dev/null +++ b/overlay25/calibration/data/motherboard/T_gel_to_rigid_right.json @@ -0,0 +1,167 @@ +{ + "method": "dual_ball_multi_pose", + "refball_center_in_rigid_mm": [ + -17.372443520938578, + 0.2688573520951536, + 38.571757518679924 + ], + "gelball_center_in_rigid_mm": [ + 3.1680846750991996, + -53.986407194707084, + 47.297869103141956 + ], + "gel_axis_in_rigid": [ + 0.3501488269090003, + -0.9248037787338816, + 0.148774224426762 + ], + "gel_distance_mm": 58.67110647491247, + "depth_offset_mm": 0.0, + "gel_center_in_rigid_mm": [ + 3.1680846750991996, + -53.986407194707084, + 47.297869103141956 + ], + "consistency": { + "refball_mean_deviation_mm": 0.4043795279250868, + "refball_max_deviation_mm": 0.5722584634835464, + "refball_std_mm": [ + 0.305325273790818, + 0.1894397197001601, + 0.23772566675184065 + ], + "gelball_mean_deviation_mm": 0.7191394130923946, + "gelball_max_deviation_mm": 1.044514511519201, + "gelball_std_mm": [ + 0.13210638866223554, + 0.258334234777561, + 0.7129747489275182 + ], + "axis_max_angle_deg": 1.0670723640750364, + "ball_distance_std_mm": 0.1918993038441838 + }, + "mocap_scale": 1000.0, + "raw_data": [ + { + "pose_id": 0, + "rigid_position_mm": [ + 308.47, + 92.09, + 161.42000000000002 + ], + "rigid_quaternion": [ + 0.0631, + -0.18618, + -0.33139, + -0.92278 + ], + "refball_mocap_mm": [ + 307.62899999999996, + 91.333, + 203.91500000000002 + ], + "refball_rigid_mm": [ + -17.42214690726894, + 0.24440448450872054, + 38.77517786663904 + ], + "gelball_mocap_mm": [ + 359.197, + 63.277, + 203.299 + ], + "gelball_rigid_mm": [ + 2.9816863949711774, + -54.181252282163626, + 47.0400848891515 + ], + "ball_distance_mm": 58.70926005324889, + "axis_in_rigid": [ + 0.3475402906412716, + -0.927037007744752, + 0.14077688962552495 + ] + }, + { + "pose_id": 1, + "rigid_position_mm": [ + 353.27599999999995, + 105.303, + 229.32 + ], + "rigid_quaternion": [ + -0.28615, + -0.956937, + 0.017508, + -0.045615 + ], + "refball_mocap_mm": [ + 371.03799999999995, + 93.362, + 192.52700000000002 + ], + "refball_rigid_mm": [ + -17.719051737135942, + 0.05003692040386909, + 38.70185623252837 + ], + "gelball_mocap_mm": [ + 324.832, + 59.405, + 181.358 + ], + "gelball_rigid_mm": [ + 3.272234055436968, + -53.6213442033486, + 48.27095310963361 + ], + "ball_distance_mm": 58.419336233818946, + "axis_in_rigid": [ + 0.35932085411852144, + -0.9187263085108816, + 0.163800164363485 + ] + }, + { + "pose_id": 2, + "rigid_position_mm": [ + 223.578, + 72.762, + 125.58900000000001 + ], + "rigid_quaternion": [ + 0.267991, + -0.024821, + -0.319484, + -0.908567 + ], + "refball_mocap_mm": [ + 204.961, + 82.694, + 161.719 + ], + "refball_rigid_mm": [ + -16.976131918410857, + 0.5121306513728712, + 38.23823845687237 + ], + "gelball_mocap_mm": [ + 252.446, + 62.707, + 190.23399999999998 + ], + "gelball_rigid_mm": [ + 3.250333574889453, + -54.15662509860903, + 46.582569310640764 + ], + "ball_distance_mm": 58.884723137669575, + "axis_in_rigid": [ + 0.3434925803423043, + -0.9284030362538862, + 0.14170620848908067 + ] + } + ], + "up_axis": "n/a (rigid-body frame)" +} \ No newline at end of file diff --git a/overlay25/calibration/data/motherboard/T_mocap_to_cam_left.json b/overlay25/calibration/data/motherboard/T_mocap_to_cam_left.json new file mode 100644 index 0000000000000000000000000000000000000000..56e9fd32527ce5590fd801fd9bb41bcc77018fc8 --- /dev/null +++ b/overlay25/calibration/data/motherboard/T_mocap_to_cam_left.json @@ -0,0 +1,264 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "104122062574", + "intrinsics": { + "fx": 608.4557495117188, + "fy": 608.1494750976562, + "ppx": 316.0635986328125, + "ppy": 224.6374053955078, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-09-09T07:41:39", + "points_px": [ + [ + 143.7419891357422, + 178.2099151611328 + ], + [ + 189.45152282714844, + 150.98486328125 + ], + [ + 147.97055053710938, + 220.66168212890625 + ], + [ + 173.2666778564453, + 161.04458618164062 + ], + [ + 294.1172790527344, + 280.3843994140625 + ], + [ + 334.7158203125, + 330.51019287109375 + ], + [ + 276.5556640625, + 373.0362854003906 + ], + [ + 306.35986328125, + 295.54974365234375 + ], + [ + 36.820892333984375, + 159.5347137451172 + ], + [ + 99.56674194335938, + 216.884765625 + ], + [ + 97.03021240234375, + 197.2443389892578 + ], + [ + 163.9508514404297, + 107.2503890991211 + ], + [ + 214.92898559570312, + 179.42526245117188 + ], + [ + 175.64276123046875, + 164.6315460205078 + ] + ], + "points_mocap_mm": [ + [ + 488.36899999999997, + 57.99, + 213.979 + ], + [ + 414.978, + 71.545, + 264.012 + ], + [ + 445.764, + 62.361, + 151.468 + ], + [ + 439.02000000000004, + 67.27, + 246.459 + ], + [ + 186.969, + 70.75, + 116.05 + ], + [ + 121.782, + 58.125, + 71.44300000000001 + ], + [ + 162.31799999999998, + 88.897, + 3.545 + ], + [ + 166.59799999999998, + 66.914, + 102.365 + ], + [ + 601.8829999999999, + 147.483, + 185.12300000000002 + ], + [ + 535.076, + 62.782000000000004, + 141.016 + ], + [ + 540.51, + 77.084, + 166.62 + ], + [ + 400.7, + 167.358, + 281.313 + ], + [ + 325.52599999999995, + 108.166, + 214.644 + ], + [ + 404.015, + 100.877, + 228.85 + ] + ], + "points_cam_mm": [ + [ + -265.3074860572815, + -71.51607424020767, + 936.7824792861938 + ], + [ + -189.91339206695557, + -110.53171753883362, + 912.6609563827515 + ], + [ + -254.59101796150208, + -6.024590227752924, + 921.5573072433472 + ], + [ + -220.07083892822266, + -98.0551466345787, + 937.7188682556152 + ], + [ + -28.192222118377686, + 71.64862751960754, + 781.6218733787537 + ], + [ + 22.724416106939316, + 129.05201315879822, + 741.2945628166199 + ], + [ + -46.32071778178215, + 174.07649755477905, + 713.3781909942627 + ], + [ + -12.383990921080112, + 90.54456651210785, + 776.5170931816101 + ], + [ + -508.81510972976685, + -118.68498474359512, + 1108.68239402771 + ], + [ + -340.10186791419983, + -12.184998020529747, + 955.8426737785339 + ], + [ + -351.6928255558014, + -44.00604963302612, + 976.9721627235413 + ], + [ + -205.46074211597443, + -158.63607823848724, + 821.8494057655334 + ], + [ + -137.51870393753052, + -61.50858476758003, + 827.3531198501587 + ], + [ + -198.6142098903656, + -84.91630107164383, + 860.612690448761 + ] + ], + "method": "pnp", + "num_points": 14, + "rmse_px": 0.5820335045117107, + "num_inliers": 14, + "reproj_err_px": [ + 0.8080875343628796, + 0.37166043358369666, + 0.30035844374306286, + 0.16766178529659098, + 0.2928865608577506, + 0.08605706634747436, + 0.3712100186965587, + 0.3838618203482641, + 1.6306500334269773, + 0.47351243090931516, + 0.3479136287525737, + 0.3214674927609189, + 0.35833809787519083, + 0.46782397947608595 + ], + "T_mocap_to_cam": [ + [ + -0.8868154787413457, + -0.3021879229672767, + -0.3496294694065147, + 128.8094236392457 + ], + [ + -0.17335478597935233, + 0.9188568726749307, + -0.35447167124623546, + 232.76972168031767 + ], + [ + 0.4283764989385047, + -0.25374102299543433, + -0.8672422201475316, + 701.0505085345026 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z", + "up_axis_note": "converted from the recorded Y-up by R_x(-90): (x,y,z)->(x,-z,y). T_mocap_to_cam moved with the poses, so every projection is unchanged; the view-frame action is not." +} \ No newline at end of file diff --git a/overlay25/calibration/data/motherboard/T_mocap_to_cam_middle.json b/overlay25/calibration/data/motherboard/T_mocap_to_cam_middle.json new file mode 100644 index 0000000000000000000000000000000000000000..0156c76afb64bafc0a9b5afcae391a786cffaaa3 --- /dev/null +++ b/overlay25/calibration/data/motherboard/T_mocap_to_cam_middle.json @@ -0,0 +1,264 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "217222066989", + "intrinsics": { + "fx": 609.06005859375, + "fy": 608.275390625, + "ppx": 332.47943115234375, + "ppy": 239.3525390625, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-09-09T07:41:39", + "points_px": [ + [ + 419.8519287109375, + 242.45101928710938 + ], + [ + 361.4404602050781, + 281.3619689941406 + ], + [ + 388.0091552734375, + 190.78221130371094 + ], + [ + 379.912353515625, + 267.10565185546875 + ], + [ + 179.5079345703125, + 156.41310119628906 + ], + [ + 130.3328857421875, + 120.79955291748047 + ], + [ + 157.44979858398438, + 58.920013427734375 + ], + [ + 162.91932678222656, + 146.43170166015625 + ], + [ + 535.0, + 220.0 + ], + [ + 458.49053955078125, + 185.263916015625 + ], + [ + 465.74908447265625, + 205.1256866455078 + ], + [ + 352.8275146484375, + 302.9422912597656 + ], + [ + 287.23797607421875, + 240.01736450195312 + ], + [ + 354.85638427734375, + 252.9636688232422 + ] + ], + "points_mocap_mm": [ + [ + 488.36899999999997, + 57.99, + 213.979 + ], + [ + 414.978, + 71.545, + 264.012 + ], + [ + 445.764, + 62.361, + 151.468 + ], + [ + 439.02000000000004, + 67.27, + 246.459 + ], + [ + 186.969, + 70.75, + 116.05 + ], + [ + 121.782, + 58.125, + 71.44300000000001 + ], + [ + 162.31799999999998, + 88.897, + 3.545 + ], + [ + 166.59799999999998, + 66.914, + 102.365 + ], + [ + 601.8829999999999, + 147.483, + 185.12300000000002 + ], + [ + 535.076, + 62.782000000000004, + 141.016 + ], + [ + 540.51, + 77.084, + 166.62 + ], + [ + 400.7, + 167.358, + 281.313 + ], + [ + 325.52599999999995, + 108.166, + 214.644 + ], + [ + 404.015, + 100.877, + 228.85 + ] + ], + "points_cam_mm": [ + [ + 111.06016486883163, + 3.943601157516241, + 774.1832137107849 + ], + [ + 36.83480620384216, + 53.49968001246452, + 774.6483087539673 + ], + [ + 72.89083302021027, + -63.83784860372543, + 799.4796633720398 + ], + [ + 61.44605576992035, + 35.9986275434494, + 788.995087146759 + ], + [ + -193.46380233764648, + -105.02921789884567, + 770.281195640564 + ], + [ + -255.4701864719391, + -150.01900494098663, + 769.7222232818604 + ], + [ + -213.37243914604187, + -220.24264931678772, + 742.4835562705994 + ], + [ + -215.60049057006836, + -118.30388754606247, + 774.4371294975281 + ], + [ + 227.43911743164062, + -21.76175308227539, + 684.0000610351562 + ], + [ + 164.66139256954193, + -70.76992094516754, + 795.8716154098511 + ], + [ + 169.54033076763153, + -43.598201125860214, + 774.821937084198 + ], + [ + 22.041086107492447, + 68.96940618753433, + 659.7349643707275 + ], + [ + -54.32060360908508, + 0.7992741302587092, + 731.2875390052795 + ], + [ + 26.847360655665398, + 16.35139249265194, + 730.736494064331 + ] + ], + "method": "pnp", + "num_points": 14, + "rmse_px": 0.6957969799496961, + "num_inliers": 14, + "reproj_err_px": [ + 0.17269310973865823, + 0.34678606316542004, + 0.7949263280824498, + 0.7595155335193595, + 0.46703748193000916, + 0.4298708481893768, + 1.1222337545259984, + 1.3263655425582945, + 0.35087765728361514, + 0.6862180249885633, + 0.16974670365446598, + 0.380060158735936, + 0.8606992412014269, + 0.6995517552033408 + ], + "T_mocap_to_cam": [ + [ + 0.9995314292450528, + 0.026616003224703866, + 0.015116557931100139, + -373.5077365832549 + ], + [ + 0.026586035283918216, + -0.99964415184602, + 0.0021800018195975604, + -223.2913479600006 + ], + [ + 0.015169201667326097, + -0.0017770909919715434, + -0.9998833618319598, + 816.5209880955446 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z", + "up_axis_note": "converted from the recorded Y-up by R_x(-90): (x,y,z)->(x,-z,y). T_mocap_to_cam moved with the poses, so every projection is unchanged; the view-frame action is not." +} \ No newline at end of file diff --git a/overlay25/calibration/data/motherboard/T_mocap_to_cam_right.json b/overlay25/calibration/data/motherboard/T_mocap_to_cam_right.json new file mode 100644 index 0000000000000000000000000000000000000000..52f87b6c40ab63aa00ff254dd7ae2c66eb5274e1 --- /dev/null +++ b/overlay25/calibration/data/motherboard/T_mocap_to_cam_right.json @@ -0,0 +1,264 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "143322063538", + "intrinsics": { + "fx": 608.547607421875, + "fy": 606.7799072265625, + "ppx": 314.88201904296875, + "ppy": 243.41900634765625, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-09-09T07:41:39", + "points_px": [ + [ + 364.28118896484375, + 226.3100128173828 + ], + [ + 375.09521484375, + 172.0719451904297 + ], + [ + 418.16552734375, + 239.4901885986328 + ], + [ + 372.248291015625, + 189.38470458984375 + ], + [ + 538.5238037109375, + 161.0652618408203 + ], + [ + 578.2669067382812, + 164.14666748046875 + ], + [ + 614.590576171875, + 193.21926879882812 + ], + [ + 551.4354248046875, + 161.53729248046875 + ], + [ + 338.0, + 254.0 + ], + [ + 384.0, + 281.0 + ], + [ + 368.0, + 265.0 + ], + [ + 392.0, + 114.0 + ], + [ + 448.0, + 147.0 + ], + [ + 404.0, + 171.0 + ] + ], + "points_mocap_mm": [ + [ + 488.36899999999997, + 57.99, + 213.979 + ], + [ + 414.978, + 71.545, + 264.012 + ], + [ + 445.764, + 62.361, + 151.468 + ], + [ + 439.02000000000004, + 67.27, + 246.459 + ], + [ + 186.969, + 70.75, + 116.05 + ], + [ + 121.782, + 58.125, + 71.44300000000001 + ], + [ + 162.31799999999998, + 88.897, + 3.545 + ], + [ + 166.59799999999998, + 66.914, + 102.365 + ], + [ + 601.8829999999999, + 147.483, + 185.12300000000002 + ], + [ + 535.076, + 62.782000000000004, + 141.016 + ], + [ + 540.51, + 77.084, + 166.62 + ], + [ + 400.7, + 167.358, + 281.313 + ], + [ + 325.52599999999995, + 108.166, + 214.644 + ], + [ + 404.015, + 100.877, + 228.85 + ] + ], + "points_cam_mm": [ + [ + 67.61006265878677, + -23.48441816866398, + 832.8875303268433 + ], + [ + 88.18109333515167, + -104.7908216714859, + 891.2064433097839 + ], + [ + 147.3912000656128, + -5.622966680675745, + 868.4306144714355 + ], + [ + 82.71369338035583, + -78.13647389411926, + 877.4359226226807 + ], + [ + 355.0775647163391, + -131.134495139122, + 966.1950469017029 + ], + [ + 432.61927366256714, + -130.58704137802124, + 999.561607837677 + ], + [ + 461.81631088256836, + -77.57735252380371, + 937.7017617225647 + ], + [ + 380.2844285964966, + -132.01692700386047, + 978.3041477203369 + ], + [ + 26.19326400756836, + 12.023463249206543, + 689.5000610351562 + ], + [ + 91.6579360961914, + 49.98165512084961, + 807.0000610351562 + ], + [ + 67.21060180664062, + 27.386150360107422, + 770.0000610351562 + ], + [ + 102.01334381103516, + -171.697021484375, + 805.0000610351562 + ], + [ + 192.27865600585938, + -139.675537109375, + 879.0000610351562 + ], + [ + 124.037841796875, + -101.0892105102539, + 847.0000610351562 + ] + ], + "method": "pnp", + "num_points": 14, + "rmse_px": 0.6641288760028174, + "num_inliers": 14, + "reproj_err_px": [ + 0.7334514837464046, + 0.45635472009079076, + 0.8970694696327521, + 0.31806234529960986, + 0.6865228817112038, + 0.21057826799310805, + 0.912277422276382, + 0.43994664737977, + 0.21418442105906682, + 1.074796181357606, + 0.6873076709576346, + 0.7207901345940971, + 0.8239751206098153, + 0.33082506738831163 + ], + "T_mocap_to_cam": [ + [ + -0.688097867430995, + 0.7023816139017327, + 0.1821576056323592, + 543.5657328540357 + ], + [ + 0.5425582025081412, + 0.6647209947925371, + -0.5135918573859546, + -115.44031421123972 + ], + [ + -0.4818214625025037, + -0.2545703587121193, + -0.8384760048666456, + 1059.2626265195877 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z", + "up_axis_note": "converted from the recorded Y-up by R_x(-90): (x,y,z)->(x,-z,y). T_mocap_to_cam moved with the poses, so every projection is unchanged; the view-frame action is not." +} \ No newline at end of file diff --git a/overlay25/calibration/data/pushT/T_gel_to_rigid_left.json b/overlay25/calibration/data/pushT/T_gel_to_rigid_left.json new file mode 100644 index 0000000000000000000000000000000000000000..1841cac1133234442ca99335532512a32e25b04f --- /dev/null +++ b/overlay25/calibration/data/pushT/T_gel_to_rigid_left.json @@ -0,0 +1,167 @@ +{ + "method": "dual_ball_multi_pose", + "refball_center_in_rigid_mm": [ + -33.51740422401229, + 12.100255314675977, + -17.699792261606614 + ], + "gelball_center_in_rigid_mm": [ + -43.47382768891848, + -41.22508071829758, + -35.7960391945282 + ], + "gel_axis_in_rigid": [ + -0.17411894520453713, + -0.9324875086795467, + -0.31646427772731606 + ], + "gel_distance_mm": 57.19086670954521, + "depth_offset_mm": -5.0, + "gel_center_in_rigid_mm": [ + -42.603232962895795, + -36.56264317489985, + -34.21371780589162 + ], + "consistency": { + "refball_mean_deviation_mm": 0.4971205477445346, + "refball_max_deviation_mm": 0.6830937323295619, + "refball_std_mm": [ + 0.3822793790831837, + 0.14607220822214068, + 0.3370989262846435 + ], + "gelball_mean_deviation_mm": 0.5311059103030308, + "gelball_max_deviation_mm": 0.7146199631539334, + "gelball_std_mm": [ + 0.23387391401966107, + 0.402760954424785, + 0.30624407553769517 + ], + "axis_max_angle_deg": 1.069223796324866, + "ball_distance_std_mm": 0.09592190067940498 + }, + "mocap_scale": 1000.0, + "raw_data": [ + { + "pose_id": 0, + "rigid_position_mm": [ + 209.704, + 67.29599999999999, + 288.7 + ], + "rigid_quaternion": [ + -0.03045, + 0.5291786, + 0.72056156, + 0.447052 + ], + "refball_mocap_mm": [ + 213.805, + 32.849000000000004, + 307.12899999999996 + ], + "refball_rigid_mm": [ + -33.064365762599664, + 12.164420770736669, + -17.37287066173849 + ], + "gelball_mocap_mm": [ + 247.768, + 13.639999999999999, + 265.48699999999997 + ], + "gelball_rigid_mm": [ + -43.61612381039666, + -40.65963065991089, + -36.20919744147588 + ], + "ball_distance_mm": 57.0659899940411, + "axis_in_rigid": [ + -0.18490449475946746, + -0.9256660830060691, + -0.33007973368558585 + ] + }, + { + "pose_id": 1, + "rigid_position_mm": [ + 207.22, + 63.50699999999999, + 137.26 + ], + "rigid_quaternion": [ + 0.575241, + 0.53501, + -0.513944, + 0.344559 + ], + "refball_mocap_mm": [ + 226.556, + 69.48400000000001, + 172.275 + ], + "refball_rigid_mm": [ + -33.99941004902249, + 12.238224727792783, + -18.163744708359914 + ], + "gelball_mocap_mm": [ + 179.374, + 93.761, + 193.90099999999998 + ], + "gelball_rigid_mm": [ + -43.661251420623046, + -41.44844032643957, + -35.70194717225823 + ], + "ball_distance_mm": 57.29919483727493, + "axis_in_rigid": [ + -0.16862089247570416, + -0.936953219093185, + -0.3060811327926228 + ] + }, + { + "pose_id": 2, + "rigid_position_mm": [ + 261.399, + 57.67, + 194.732 + ], + "rigid_quaternion": [ + -0.63276, + 0.187712, + 0.37411, + 0.65147 + ], + "refball_mocap_mm": [ + 235.038, + 31.395, + 208.37800000000001 + ], + "refball_rigid_mm": [ + -33.48843686041472, + 11.898120445498478, + -17.562761414721432 + ], + "gelball_mocap_mm": [ + 271.628, + 16.011, + 249.575 + ], + "gelball_rigid_mm": [ + -43.14410783573577, + -41.5671711685423, + -35.4769729698505 + ], + "ball_distance_mm": 57.2074152973196, + "axis_in_rigid": [ + -0.16878355585789684, + -0.9345867373341344, + -0.3131449211964034 + ] + } + ], + "up_axis": "n/a (rigid-body frame)" +} \ No newline at end of file diff --git a/overlay25/calibration/data/pushT/T_gel_to_rigid_right.json b/overlay25/calibration/data/pushT/T_gel_to_rigid_right.json new file mode 100644 index 0000000000000000000000000000000000000000..7d1dd67c265e1bc0d24caac4eef373db2106c5ff --- /dev/null +++ b/overlay25/calibration/data/pushT/T_gel_to_rigid_right.json @@ -0,0 +1,167 @@ +{ + "method": "dual_ball_multi_pose", + "refball_center_in_rigid_mm": [ + -17.372443520938578, + 0.2688573520951536, + 38.571757518679924 + ], + "gelball_center_in_rigid_mm": [ + 3.1680846750991996, + -53.986407194707084, + 47.297869103141956 + ], + "gel_axis_in_rigid": [ + 0.3501488269090003, + -0.9248037787338816, + 0.148774224426762 + ], + "gel_distance_mm": 58.67110647491247, + "depth_offset_mm": 0.0, + "gel_center_in_rigid_mm": [ + 3.1680846750991996, + -53.986407194707084, + 47.297869103141956 + ], + "consistency": { + "refball_mean_deviation_mm": 0.4043795279250868, + "refball_max_deviation_mm": 0.5722584634835464, + "refball_std_mm": [ + 0.305325273790818, + 0.1894397197001601, + 0.23772566675184065 + ], + "gelball_mean_deviation_mm": 0.7191394130923946, + "gelball_max_deviation_mm": 1.044514511519201, + "gelball_std_mm": [ + 0.13210638866223554, + 0.258334234777561, + 0.7129747489275182 + ], + "axis_max_angle_deg": 1.0670723640750364, + "ball_distance_std_mm": 0.1918993038441838 + }, + "mocap_scale": 1000.0, + "raw_data": [ + { + "pose_id": 0, + "rigid_position_mm": [ + 308.47, + 92.09, + 161.42000000000002 + ], + "rigid_quaternion": [ + 0.0631, + -0.18618, + -0.33139, + -0.92278 + ], + "refball_mocap_mm": [ + 307.62899999999996, + 91.333, + 203.91500000000002 + ], + "refball_rigid_mm": [ + -17.42214690726894, + 0.24440448450872054, + 38.77517786663904 + ], + "gelball_mocap_mm": [ + 359.197, + 63.277, + 203.299 + ], + "gelball_rigid_mm": [ + 2.9816863949711774, + -54.181252282163626, + 47.0400848891515 + ], + "ball_distance_mm": 58.70926005324889, + "axis_in_rigid": [ + 0.3475402906412716, + -0.927037007744752, + 0.14077688962552495 + ] + }, + { + "pose_id": 1, + "rigid_position_mm": [ + 353.27599999999995, + 105.303, + 229.32 + ], + "rigid_quaternion": [ + -0.28615, + -0.956937, + 0.017508, + -0.045615 + ], + "refball_mocap_mm": [ + 371.03799999999995, + 93.362, + 192.52700000000002 + ], + "refball_rigid_mm": [ + -17.719051737135942, + 0.05003692040386909, + 38.70185623252837 + ], + "gelball_mocap_mm": [ + 324.832, + 59.405, + 181.358 + ], + "gelball_rigid_mm": [ + 3.272234055436968, + -53.6213442033486, + 48.27095310963361 + ], + "ball_distance_mm": 58.419336233818946, + "axis_in_rigid": [ + 0.35932085411852144, + -0.9187263085108816, + 0.163800164363485 + ] + }, + { + "pose_id": 2, + "rigid_position_mm": [ + 223.578, + 72.762, + 125.58900000000001 + ], + "rigid_quaternion": [ + 0.267991, + -0.024821, + -0.319484, + -0.908567 + ], + "refball_mocap_mm": [ + 204.961, + 82.694, + 161.719 + ], + "refball_rigid_mm": [ + -16.976131918410857, + 0.5121306513728712, + 38.23823845687237 + ], + "gelball_mocap_mm": [ + 252.446, + 62.707, + 190.23399999999998 + ], + "gelball_rigid_mm": [ + 3.250333574889453, + -54.15662509860903, + 46.582569310640764 + ], + "ball_distance_mm": 58.884723137669575, + "axis_in_rigid": [ + 0.3434925803423043, + -0.9284030362538862, + 0.14170620848908067 + ] + } + ], + "up_axis": "n/a (rigid-body frame)" +} \ No newline at end of file diff --git a/overlay25/calibration/data/pushT/T_mocap_to_cam_left.json b/overlay25/calibration/data/pushT/T_mocap_to_cam_left.json new file mode 100644 index 0000000000000000000000000000000000000000..56e9fd32527ce5590fd801fd9bb41bcc77018fc8 --- /dev/null +++ b/overlay25/calibration/data/pushT/T_mocap_to_cam_left.json @@ -0,0 +1,264 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "104122062574", + "intrinsics": { + "fx": 608.4557495117188, + "fy": 608.1494750976562, + "ppx": 316.0635986328125, + "ppy": 224.6374053955078, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-09-09T07:41:39", + "points_px": [ + [ + 143.7419891357422, + 178.2099151611328 + ], + [ + 189.45152282714844, + 150.98486328125 + ], + [ + 147.97055053710938, + 220.66168212890625 + ], + [ + 173.2666778564453, + 161.04458618164062 + ], + [ + 294.1172790527344, + 280.3843994140625 + ], + [ + 334.7158203125, + 330.51019287109375 + ], + [ + 276.5556640625, + 373.0362854003906 + ], + [ + 306.35986328125, + 295.54974365234375 + ], + [ + 36.820892333984375, + 159.5347137451172 + ], + [ + 99.56674194335938, + 216.884765625 + ], + [ + 97.03021240234375, + 197.2443389892578 + ], + [ + 163.9508514404297, + 107.2503890991211 + ], + [ + 214.92898559570312, + 179.42526245117188 + ], + [ + 175.64276123046875, + 164.6315460205078 + ] + ], + "points_mocap_mm": [ + [ + 488.36899999999997, + 57.99, + 213.979 + ], + [ + 414.978, + 71.545, + 264.012 + ], + [ + 445.764, + 62.361, + 151.468 + ], + [ + 439.02000000000004, + 67.27, + 246.459 + ], + [ + 186.969, + 70.75, + 116.05 + ], + [ + 121.782, + 58.125, + 71.44300000000001 + ], + [ + 162.31799999999998, + 88.897, + 3.545 + ], + [ + 166.59799999999998, + 66.914, + 102.365 + ], + [ + 601.8829999999999, + 147.483, + 185.12300000000002 + ], + [ + 535.076, + 62.782000000000004, + 141.016 + ], + [ + 540.51, + 77.084, + 166.62 + ], + [ + 400.7, + 167.358, + 281.313 + ], + [ + 325.52599999999995, + 108.166, + 214.644 + ], + [ + 404.015, + 100.877, + 228.85 + ] + ], + "points_cam_mm": [ + [ + -265.3074860572815, + -71.51607424020767, + 936.7824792861938 + ], + [ + -189.91339206695557, + -110.53171753883362, + 912.6609563827515 + ], + [ + -254.59101796150208, + -6.024590227752924, + 921.5573072433472 + ], + [ + -220.07083892822266, + -98.0551466345787, + 937.7188682556152 + ], + [ + -28.192222118377686, + 71.64862751960754, + 781.6218733787537 + ], + [ + 22.724416106939316, + 129.05201315879822, + 741.2945628166199 + ], + [ + -46.32071778178215, + 174.07649755477905, + 713.3781909942627 + ], + [ + -12.383990921080112, + 90.54456651210785, + 776.5170931816101 + ], + [ + -508.81510972976685, + -118.68498474359512, + 1108.68239402771 + ], + [ + -340.10186791419983, + -12.184998020529747, + 955.8426737785339 + ], + [ + -351.6928255558014, + -44.00604963302612, + 976.9721627235413 + ], + [ + -205.46074211597443, + -158.63607823848724, + 821.8494057655334 + ], + [ + -137.51870393753052, + -61.50858476758003, + 827.3531198501587 + ], + [ + -198.6142098903656, + -84.91630107164383, + 860.612690448761 + ] + ], + "method": "pnp", + "num_points": 14, + "rmse_px": 0.5820335045117107, + "num_inliers": 14, + "reproj_err_px": [ + 0.8080875343628796, + 0.37166043358369666, + 0.30035844374306286, + 0.16766178529659098, + 0.2928865608577506, + 0.08605706634747436, + 0.3712100186965587, + 0.3838618203482641, + 1.6306500334269773, + 0.47351243090931516, + 0.3479136287525737, + 0.3214674927609189, + 0.35833809787519083, + 0.46782397947608595 + ], + "T_mocap_to_cam": [ + [ + -0.8868154787413457, + -0.3021879229672767, + -0.3496294694065147, + 128.8094236392457 + ], + [ + -0.17335478597935233, + 0.9188568726749307, + -0.35447167124623546, + 232.76972168031767 + ], + [ + 0.4283764989385047, + -0.25374102299543433, + -0.8672422201475316, + 701.0505085345026 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z", + "up_axis_note": "converted from the recorded Y-up by R_x(-90): (x,y,z)->(x,-z,y). T_mocap_to_cam moved with the poses, so every projection is unchanged; the view-frame action is not." +} \ No newline at end of file diff --git a/overlay25/calibration/data/pushT/T_mocap_to_cam_middle.json b/overlay25/calibration/data/pushT/T_mocap_to_cam_middle.json new file mode 100644 index 0000000000000000000000000000000000000000..0156c76afb64bafc0a9b5afcae391a786cffaaa3 --- /dev/null +++ b/overlay25/calibration/data/pushT/T_mocap_to_cam_middle.json @@ -0,0 +1,264 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "217222066989", + "intrinsics": { + "fx": 609.06005859375, + "fy": 608.275390625, + "ppx": 332.47943115234375, + "ppy": 239.3525390625, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-09-09T07:41:39", + "points_px": [ + [ + 419.8519287109375, + 242.45101928710938 + ], + [ + 361.4404602050781, + 281.3619689941406 + ], + [ + 388.0091552734375, + 190.78221130371094 + ], + [ + 379.912353515625, + 267.10565185546875 + ], + [ + 179.5079345703125, + 156.41310119628906 + ], + [ + 130.3328857421875, + 120.79955291748047 + ], + [ + 157.44979858398438, + 58.920013427734375 + ], + [ + 162.91932678222656, + 146.43170166015625 + ], + [ + 535.0, + 220.0 + ], + [ + 458.49053955078125, + 185.263916015625 + ], + [ + 465.74908447265625, + 205.1256866455078 + ], + [ + 352.8275146484375, + 302.9422912597656 + ], + [ + 287.23797607421875, + 240.01736450195312 + ], + [ + 354.85638427734375, + 252.9636688232422 + ] + ], + "points_mocap_mm": [ + [ + 488.36899999999997, + 57.99, + 213.979 + ], + [ + 414.978, + 71.545, + 264.012 + ], + [ + 445.764, + 62.361, + 151.468 + ], + [ + 439.02000000000004, + 67.27, + 246.459 + ], + [ + 186.969, + 70.75, + 116.05 + ], + [ + 121.782, + 58.125, + 71.44300000000001 + ], + [ + 162.31799999999998, + 88.897, + 3.545 + ], + [ + 166.59799999999998, + 66.914, + 102.365 + ], + [ + 601.8829999999999, + 147.483, + 185.12300000000002 + ], + [ + 535.076, + 62.782000000000004, + 141.016 + ], + [ + 540.51, + 77.084, + 166.62 + ], + [ + 400.7, + 167.358, + 281.313 + ], + [ + 325.52599999999995, + 108.166, + 214.644 + ], + [ + 404.015, + 100.877, + 228.85 + ] + ], + "points_cam_mm": [ + [ + 111.06016486883163, + 3.943601157516241, + 774.1832137107849 + ], + [ + 36.83480620384216, + 53.49968001246452, + 774.6483087539673 + ], + [ + 72.89083302021027, + -63.83784860372543, + 799.4796633720398 + ], + [ + 61.44605576992035, + 35.9986275434494, + 788.995087146759 + ], + [ + -193.46380233764648, + -105.02921789884567, + 770.281195640564 + ], + [ + -255.4701864719391, + -150.01900494098663, + 769.7222232818604 + ], + [ + -213.37243914604187, + -220.24264931678772, + 742.4835562705994 + ], + [ + -215.60049057006836, + -118.30388754606247, + 774.4371294975281 + ], + [ + 227.43911743164062, + -21.76175308227539, + 684.0000610351562 + ], + [ + 164.66139256954193, + -70.76992094516754, + 795.8716154098511 + ], + [ + 169.54033076763153, + -43.598201125860214, + 774.821937084198 + ], + [ + 22.041086107492447, + 68.96940618753433, + 659.7349643707275 + ], + [ + -54.32060360908508, + 0.7992741302587092, + 731.2875390052795 + ], + [ + 26.847360655665398, + 16.35139249265194, + 730.736494064331 + ] + ], + "method": "pnp", + "num_points": 14, + "rmse_px": 0.6957969799496961, + "num_inliers": 14, + "reproj_err_px": [ + 0.17269310973865823, + 0.34678606316542004, + 0.7949263280824498, + 0.7595155335193595, + 0.46703748193000916, + 0.4298708481893768, + 1.1222337545259984, + 1.3263655425582945, + 0.35087765728361514, + 0.6862180249885633, + 0.16974670365446598, + 0.380060158735936, + 0.8606992412014269, + 0.6995517552033408 + ], + "T_mocap_to_cam": [ + [ + 0.9995314292450528, + 0.026616003224703866, + 0.015116557931100139, + -373.5077365832549 + ], + [ + 0.026586035283918216, + -0.99964415184602, + 0.0021800018195975604, + -223.2913479600006 + ], + [ + 0.015169201667326097, + -0.0017770909919715434, + -0.9998833618319598, + 816.5209880955446 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z", + "up_axis_note": "converted from the recorded Y-up by R_x(-90): (x,y,z)->(x,-z,y). T_mocap_to_cam moved with the poses, so every projection is unchanged; the view-frame action is not." +} \ No newline at end of file diff --git a/overlay25/calibration/data/pushT/T_mocap_to_cam_right.json b/overlay25/calibration/data/pushT/T_mocap_to_cam_right.json new file mode 100644 index 0000000000000000000000000000000000000000..52f87b6c40ab63aa00ff254dd7ae2c66eb5274e1 --- /dev/null +++ b/overlay25/calibration/data/pushT/T_mocap_to_cam_right.json @@ -0,0 +1,264 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "143322063538", + "intrinsics": { + "fx": 608.547607421875, + "fy": 606.7799072265625, + "ppx": 314.88201904296875, + "ppy": 243.41900634765625, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-09-09T07:41:39", + "points_px": [ + [ + 364.28118896484375, + 226.3100128173828 + ], + [ + 375.09521484375, + 172.0719451904297 + ], + [ + 418.16552734375, + 239.4901885986328 + ], + [ + 372.248291015625, + 189.38470458984375 + ], + [ + 538.5238037109375, + 161.0652618408203 + ], + [ + 578.2669067382812, + 164.14666748046875 + ], + [ + 614.590576171875, + 193.21926879882812 + ], + [ + 551.4354248046875, + 161.53729248046875 + ], + [ + 338.0, + 254.0 + ], + [ + 384.0, + 281.0 + ], + [ + 368.0, + 265.0 + ], + [ + 392.0, + 114.0 + ], + [ + 448.0, + 147.0 + ], + [ + 404.0, + 171.0 + ] + ], + "points_mocap_mm": [ + [ + 488.36899999999997, + 57.99, + 213.979 + ], + [ + 414.978, + 71.545, + 264.012 + ], + [ + 445.764, + 62.361, + 151.468 + ], + [ + 439.02000000000004, + 67.27, + 246.459 + ], + [ + 186.969, + 70.75, + 116.05 + ], + [ + 121.782, + 58.125, + 71.44300000000001 + ], + [ + 162.31799999999998, + 88.897, + 3.545 + ], + [ + 166.59799999999998, + 66.914, + 102.365 + ], + [ + 601.8829999999999, + 147.483, + 185.12300000000002 + ], + [ + 535.076, + 62.782000000000004, + 141.016 + ], + [ + 540.51, + 77.084, + 166.62 + ], + [ + 400.7, + 167.358, + 281.313 + ], + [ + 325.52599999999995, + 108.166, + 214.644 + ], + [ + 404.015, + 100.877, + 228.85 + ] + ], + "points_cam_mm": [ + [ + 67.61006265878677, + -23.48441816866398, + 832.8875303268433 + ], + [ + 88.18109333515167, + -104.7908216714859, + 891.2064433097839 + ], + [ + 147.3912000656128, + -5.622966680675745, + 868.4306144714355 + ], + [ + 82.71369338035583, + -78.13647389411926, + 877.4359226226807 + ], + [ + 355.0775647163391, + -131.134495139122, + 966.1950469017029 + ], + [ + 432.61927366256714, + -130.58704137802124, + 999.561607837677 + ], + [ + 461.81631088256836, + -77.57735252380371, + 937.7017617225647 + ], + [ + 380.2844285964966, + -132.01692700386047, + 978.3041477203369 + ], + [ + 26.19326400756836, + 12.023463249206543, + 689.5000610351562 + ], + [ + 91.6579360961914, + 49.98165512084961, + 807.0000610351562 + ], + [ + 67.21060180664062, + 27.386150360107422, + 770.0000610351562 + ], + [ + 102.01334381103516, + -171.697021484375, + 805.0000610351562 + ], + [ + 192.27865600585938, + -139.675537109375, + 879.0000610351562 + ], + [ + 124.037841796875, + -101.0892105102539, + 847.0000610351562 + ] + ], + "method": "pnp", + "num_points": 14, + "rmse_px": 0.6641288760028174, + "num_inliers": 14, + "reproj_err_px": [ + 0.7334514837464046, + 0.45635472009079076, + 0.8970694696327521, + 0.31806234529960986, + 0.6865228817112038, + 0.21057826799310805, + 0.912277422276382, + 0.43994664737977, + 0.21418442105906682, + 1.074796181357606, + 0.6873076709576346, + 0.7207901345940971, + 0.8239751206098153, + 0.33082506738831163 + ], + "T_mocap_to_cam": [ + [ + -0.688097867430995, + 0.7023816139017327, + 0.1821576056323592, + 543.5657328540357 + ], + [ + 0.5425582025081412, + 0.6647209947925371, + -0.5135918573859546, + -115.44031421123972 + ], + [ + -0.4818214625025037, + -0.2545703587121193, + -0.8384760048666456, + 1059.2626265195877 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z", + "up_axis_note": "converted from the recorded Y-up by R_x(-90): (x,y,z)->(x,-z,y). T_mocap_to_cam moved with the poses, so every projection is unchanged; the view-frame action is not." +} \ No newline at end of file diff --git a/overlay25/calibration/data/rope/T_gel_to_rigid_left.json b/overlay25/calibration/data/rope/T_gel_to_rigid_left.json new file mode 100644 index 0000000000000000000000000000000000000000..1841cac1133234442ca99335532512a32e25b04f --- /dev/null +++ b/overlay25/calibration/data/rope/T_gel_to_rigid_left.json @@ -0,0 +1,167 @@ +{ + "method": "dual_ball_multi_pose", + "refball_center_in_rigid_mm": [ + -33.51740422401229, + 12.100255314675977, + -17.699792261606614 + ], + "gelball_center_in_rigid_mm": [ + -43.47382768891848, + -41.22508071829758, + -35.7960391945282 + ], + "gel_axis_in_rigid": [ + -0.17411894520453713, + -0.9324875086795467, + -0.31646427772731606 + ], + "gel_distance_mm": 57.19086670954521, + "depth_offset_mm": -5.0, + "gel_center_in_rigid_mm": [ + -42.603232962895795, + -36.56264317489985, + -34.21371780589162 + ], + "consistency": { + "refball_mean_deviation_mm": 0.4971205477445346, + "refball_max_deviation_mm": 0.6830937323295619, + "refball_std_mm": [ + 0.3822793790831837, + 0.14607220822214068, + 0.3370989262846435 + ], + "gelball_mean_deviation_mm": 0.5311059103030308, + "gelball_max_deviation_mm": 0.7146199631539334, + "gelball_std_mm": [ + 0.23387391401966107, + 0.402760954424785, + 0.30624407553769517 + ], + "axis_max_angle_deg": 1.069223796324866, + "ball_distance_std_mm": 0.09592190067940498 + }, + "mocap_scale": 1000.0, + "raw_data": [ + { + "pose_id": 0, + "rigid_position_mm": [ + 209.704, + 67.29599999999999, + 288.7 + ], + "rigid_quaternion": [ + -0.03045, + 0.5291786, + 0.72056156, + 0.447052 + ], + "refball_mocap_mm": [ + 213.805, + 32.849000000000004, + 307.12899999999996 + ], + "refball_rigid_mm": [ + -33.064365762599664, + 12.164420770736669, + -17.37287066173849 + ], + "gelball_mocap_mm": [ + 247.768, + 13.639999999999999, + 265.48699999999997 + ], + "gelball_rigid_mm": [ + -43.61612381039666, + -40.65963065991089, + -36.20919744147588 + ], + "ball_distance_mm": 57.0659899940411, + "axis_in_rigid": [ + -0.18490449475946746, + -0.9256660830060691, + -0.33007973368558585 + ] + }, + { + "pose_id": 1, + "rigid_position_mm": [ + 207.22, + 63.50699999999999, + 137.26 + ], + "rigid_quaternion": [ + 0.575241, + 0.53501, + -0.513944, + 0.344559 + ], + "refball_mocap_mm": [ + 226.556, + 69.48400000000001, + 172.275 + ], + "refball_rigid_mm": [ + -33.99941004902249, + 12.238224727792783, + -18.163744708359914 + ], + "gelball_mocap_mm": [ + 179.374, + 93.761, + 193.90099999999998 + ], + "gelball_rigid_mm": [ + -43.661251420623046, + -41.44844032643957, + -35.70194717225823 + ], + "ball_distance_mm": 57.29919483727493, + "axis_in_rigid": [ + -0.16862089247570416, + -0.936953219093185, + -0.3060811327926228 + ] + }, + { + "pose_id": 2, + "rigid_position_mm": [ + 261.399, + 57.67, + 194.732 + ], + "rigid_quaternion": [ + -0.63276, + 0.187712, + 0.37411, + 0.65147 + ], + "refball_mocap_mm": [ + 235.038, + 31.395, + 208.37800000000001 + ], + "refball_rigid_mm": [ + -33.48843686041472, + 11.898120445498478, + -17.562761414721432 + ], + "gelball_mocap_mm": [ + 271.628, + 16.011, + 249.575 + ], + "gelball_rigid_mm": [ + -43.14410783573577, + -41.5671711685423, + -35.4769729698505 + ], + "ball_distance_mm": 57.2074152973196, + "axis_in_rigid": [ + -0.16878355585789684, + -0.9345867373341344, + -0.3131449211964034 + ] + } + ], + "up_axis": "n/a (rigid-body frame)" +} \ No newline at end of file diff --git a/overlay25/calibration/data/rope/T_gel_to_rigid_right.json b/overlay25/calibration/data/rope/T_gel_to_rigid_right.json new file mode 100644 index 0000000000000000000000000000000000000000..7d1dd67c265e1bc0d24caac4eef373db2106c5ff --- /dev/null +++ b/overlay25/calibration/data/rope/T_gel_to_rigid_right.json @@ -0,0 +1,167 @@ +{ + "method": "dual_ball_multi_pose", + "refball_center_in_rigid_mm": [ + -17.372443520938578, + 0.2688573520951536, + 38.571757518679924 + ], + "gelball_center_in_rigid_mm": [ + 3.1680846750991996, + -53.986407194707084, + 47.297869103141956 + ], + "gel_axis_in_rigid": [ + 0.3501488269090003, + -0.9248037787338816, + 0.148774224426762 + ], + "gel_distance_mm": 58.67110647491247, + "depth_offset_mm": 0.0, + "gel_center_in_rigid_mm": [ + 3.1680846750991996, + -53.986407194707084, + 47.297869103141956 + ], + "consistency": { + "refball_mean_deviation_mm": 0.4043795279250868, + "refball_max_deviation_mm": 0.5722584634835464, + "refball_std_mm": [ + 0.305325273790818, + 0.1894397197001601, + 0.23772566675184065 + ], + "gelball_mean_deviation_mm": 0.7191394130923946, + "gelball_max_deviation_mm": 1.044514511519201, + "gelball_std_mm": [ + 0.13210638866223554, + 0.258334234777561, + 0.7129747489275182 + ], + "axis_max_angle_deg": 1.0670723640750364, + "ball_distance_std_mm": 0.1918993038441838 + }, + "mocap_scale": 1000.0, + "raw_data": [ + { + "pose_id": 0, + "rigid_position_mm": [ + 308.47, + 92.09, + 161.42000000000002 + ], + "rigid_quaternion": [ + 0.0631, + -0.18618, + -0.33139, + -0.92278 + ], + "refball_mocap_mm": [ + 307.62899999999996, + 91.333, + 203.91500000000002 + ], + "refball_rigid_mm": [ + -17.42214690726894, + 0.24440448450872054, + 38.77517786663904 + ], + "gelball_mocap_mm": [ + 359.197, + 63.277, + 203.299 + ], + "gelball_rigid_mm": [ + 2.9816863949711774, + -54.181252282163626, + 47.0400848891515 + ], + "ball_distance_mm": 58.70926005324889, + "axis_in_rigid": [ + 0.3475402906412716, + -0.927037007744752, + 0.14077688962552495 + ] + }, + { + "pose_id": 1, + "rigid_position_mm": [ + 353.27599999999995, + 105.303, + 229.32 + ], + "rigid_quaternion": [ + -0.28615, + -0.956937, + 0.017508, + -0.045615 + ], + "refball_mocap_mm": [ + 371.03799999999995, + 93.362, + 192.52700000000002 + ], + "refball_rigid_mm": [ + -17.719051737135942, + 0.05003692040386909, + 38.70185623252837 + ], + "gelball_mocap_mm": [ + 324.832, + 59.405, + 181.358 + ], + "gelball_rigid_mm": [ + 3.272234055436968, + -53.6213442033486, + 48.27095310963361 + ], + "ball_distance_mm": 58.419336233818946, + "axis_in_rigid": [ + 0.35932085411852144, + -0.9187263085108816, + 0.163800164363485 + ] + }, + { + "pose_id": 2, + "rigid_position_mm": [ + 223.578, + 72.762, + 125.58900000000001 + ], + "rigid_quaternion": [ + 0.267991, + -0.024821, + -0.319484, + -0.908567 + ], + "refball_mocap_mm": [ + 204.961, + 82.694, + 161.719 + ], + "refball_rigid_mm": [ + -16.976131918410857, + 0.5121306513728712, + 38.23823845687237 + ], + "gelball_mocap_mm": [ + 252.446, + 62.707, + 190.23399999999998 + ], + "gelball_rigid_mm": [ + 3.250333574889453, + -54.15662509860903, + 46.582569310640764 + ], + "ball_distance_mm": 58.884723137669575, + "axis_in_rigid": [ + 0.3434925803423043, + -0.9284030362538862, + 0.14170620848908067 + ] + } + ], + "up_axis": "n/a (rigid-body frame)" +} \ No newline at end of file diff --git a/overlay25/calibration/data/rope/T_mocap_to_cam_left.json b/overlay25/calibration/data/rope/T_mocap_to_cam_left.json new file mode 100644 index 0000000000000000000000000000000000000000..56e9fd32527ce5590fd801fd9bb41bcc77018fc8 --- /dev/null +++ b/overlay25/calibration/data/rope/T_mocap_to_cam_left.json @@ -0,0 +1,264 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "104122062574", + "intrinsics": { + "fx": 608.4557495117188, + "fy": 608.1494750976562, + "ppx": 316.0635986328125, + "ppy": 224.6374053955078, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-09-09T07:41:39", + "points_px": [ + [ + 143.7419891357422, + 178.2099151611328 + ], + [ + 189.45152282714844, + 150.98486328125 + ], + [ + 147.97055053710938, + 220.66168212890625 + ], + [ + 173.2666778564453, + 161.04458618164062 + ], + [ + 294.1172790527344, + 280.3843994140625 + ], + [ + 334.7158203125, + 330.51019287109375 + ], + [ + 276.5556640625, + 373.0362854003906 + ], + [ + 306.35986328125, + 295.54974365234375 + ], + [ + 36.820892333984375, + 159.5347137451172 + ], + [ + 99.56674194335938, + 216.884765625 + ], + [ + 97.03021240234375, + 197.2443389892578 + ], + [ + 163.9508514404297, + 107.2503890991211 + ], + [ + 214.92898559570312, + 179.42526245117188 + ], + [ + 175.64276123046875, + 164.6315460205078 + ] + ], + "points_mocap_mm": [ + [ + 488.36899999999997, + 57.99, + 213.979 + ], + [ + 414.978, + 71.545, + 264.012 + ], + [ + 445.764, + 62.361, + 151.468 + ], + [ + 439.02000000000004, + 67.27, + 246.459 + ], + [ + 186.969, + 70.75, + 116.05 + ], + [ + 121.782, + 58.125, + 71.44300000000001 + ], + [ + 162.31799999999998, + 88.897, + 3.545 + ], + [ + 166.59799999999998, + 66.914, + 102.365 + ], + [ + 601.8829999999999, + 147.483, + 185.12300000000002 + ], + [ + 535.076, + 62.782000000000004, + 141.016 + ], + [ + 540.51, + 77.084, + 166.62 + ], + [ + 400.7, + 167.358, + 281.313 + ], + [ + 325.52599999999995, + 108.166, + 214.644 + ], + [ + 404.015, + 100.877, + 228.85 + ] + ], + "points_cam_mm": [ + [ + -265.3074860572815, + -71.51607424020767, + 936.7824792861938 + ], + [ + -189.91339206695557, + -110.53171753883362, + 912.6609563827515 + ], + [ + -254.59101796150208, + -6.024590227752924, + 921.5573072433472 + ], + [ + -220.07083892822266, + -98.0551466345787, + 937.7188682556152 + ], + [ + -28.192222118377686, + 71.64862751960754, + 781.6218733787537 + ], + [ + 22.724416106939316, + 129.05201315879822, + 741.2945628166199 + ], + [ + -46.32071778178215, + 174.07649755477905, + 713.3781909942627 + ], + [ + -12.383990921080112, + 90.54456651210785, + 776.5170931816101 + ], + [ + -508.81510972976685, + -118.68498474359512, + 1108.68239402771 + ], + [ + -340.10186791419983, + -12.184998020529747, + 955.8426737785339 + ], + [ + -351.6928255558014, + -44.00604963302612, + 976.9721627235413 + ], + [ + -205.46074211597443, + -158.63607823848724, + 821.8494057655334 + ], + [ + -137.51870393753052, + -61.50858476758003, + 827.3531198501587 + ], + [ + -198.6142098903656, + -84.91630107164383, + 860.612690448761 + ] + ], + "method": "pnp", + "num_points": 14, + "rmse_px": 0.5820335045117107, + "num_inliers": 14, + "reproj_err_px": [ + 0.8080875343628796, + 0.37166043358369666, + 0.30035844374306286, + 0.16766178529659098, + 0.2928865608577506, + 0.08605706634747436, + 0.3712100186965587, + 0.3838618203482641, + 1.6306500334269773, + 0.47351243090931516, + 0.3479136287525737, + 0.3214674927609189, + 0.35833809787519083, + 0.46782397947608595 + ], + "T_mocap_to_cam": [ + [ + -0.8868154787413457, + -0.3021879229672767, + -0.3496294694065147, + 128.8094236392457 + ], + [ + -0.17335478597935233, + 0.9188568726749307, + -0.35447167124623546, + 232.76972168031767 + ], + [ + 0.4283764989385047, + -0.25374102299543433, + -0.8672422201475316, + 701.0505085345026 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z", + "up_axis_note": "converted from the recorded Y-up by R_x(-90): (x,y,z)->(x,-z,y). T_mocap_to_cam moved with the poses, so every projection is unchanged; the view-frame action is not." +} \ No newline at end of file diff --git a/overlay25/calibration/data/rope/T_mocap_to_cam_middle.json b/overlay25/calibration/data/rope/T_mocap_to_cam_middle.json new file mode 100644 index 0000000000000000000000000000000000000000..0156c76afb64bafc0a9b5afcae391a786cffaaa3 --- /dev/null +++ b/overlay25/calibration/data/rope/T_mocap_to_cam_middle.json @@ -0,0 +1,264 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "217222066989", + "intrinsics": { + "fx": 609.06005859375, + "fy": 608.275390625, + "ppx": 332.47943115234375, + "ppy": 239.3525390625, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-09-09T07:41:39", + "points_px": [ + [ + 419.8519287109375, + 242.45101928710938 + ], + [ + 361.4404602050781, + 281.3619689941406 + ], + [ + 388.0091552734375, + 190.78221130371094 + ], + [ + 379.912353515625, + 267.10565185546875 + ], + [ + 179.5079345703125, + 156.41310119628906 + ], + [ + 130.3328857421875, + 120.79955291748047 + ], + [ + 157.44979858398438, + 58.920013427734375 + ], + [ + 162.91932678222656, + 146.43170166015625 + ], + [ + 535.0, + 220.0 + ], + [ + 458.49053955078125, + 185.263916015625 + ], + [ + 465.74908447265625, + 205.1256866455078 + ], + [ + 352.8275146484375, + 302.9422912597656 + ], + [ + 287.23797607421875, + 240.01736450195312 + ], + [ + 354.85638427734375, + 252.9636688232422 + ] + ], + "points_mocap_mm": [ + [ + 488.36899999999997, + 57.99, + 213.979 + ], + [ + 414.978, + 71.545, + 264.012 + ], + [ + 445.764, + 62.361, + 151.468 + ], + [ + 439.02000000000004, + 67.27, + 246.459 + ], + [ + 186.969, + 70.75, + 116.05 + ], + [ + 121.782, + 58.125, + 71.44300000000001 + ], + [ + 162.31799999999998, + 88.897, + 3.545 + ], + [ + 166.59799999999998, + 66.914, + 102.365 + ], + [ + 601.8829999999999, + 147.483, + 185.12300000000002 + ], + [ + 535.076, + 62.782000000000004, + 141.016 + ], + [ + 540.51, + 77.084, + 166.62 + ], + [ + 400.7, + 167.358, + 281.313 + ], + [ + 325.52599999999995, + 108.166, + 214.644 + ], + [ + 404.015, + 100.877, + 228.85 + ] + ], + "points_cam_mm": [ + [ + 111.06016486883163, + 3.943601157516241, + 774.1832137107849 + ], + [ + 36.83480620384216, + 53.49968001246452, + 774.6483087539673 + ], + [ + 72.89083302021027, + -63.83784860372543, + 799.4796633720398 + ], + [ + 61.44605576992035, + 35.9986275434494, + 788.995087146759 + ], + [ + -193.46380233764648, + -105.02921789884567, + 770.281195640564 + ], + [ + -255.4701864719391, + -150.01900494098663, + 769.7222232818604 + ], + [ + -213.37243914604187, + -220.24264931678772, + 742.4835562705994 + ], + [ + -215.60049057006836, + -118.30388754606247, + 774.4371294975281 + ], + [ + 227.43911743164062, + -21.76175308227539, + 684.0000610351562 + ], + [ + 164.66139256954193, + -70.76992094516754, + 795.8716154098511 + ], + [ + 169.54033076763153, + -43.598201125860214, + 774.821937084198 + ], + [ + 22.041086107492447, + 68.96940618753433, + 659.7349643707275 + ], + [ + -54.32060360908508, + 0.7992741302587092, + 731.2875390052795 + ], + [ + 26.847360655665398, + 16.35139249265194, + 730.736494064331 + ] + ], + "method": "pnp", + "num_points": 14, + "rmse_px": 0.6957969799496961, + "num_inliers": 14, + "reproj_err_px": [ + 0.17269310973865823, + 0.34678606316542004, + 0.7949263280824498, + 0.7595155335193595, + 0.46703748193000916, + 0.4298708481893768, + 1.1222337545259984, + 1.3263655425582945, + 0.35087765728361514, + 0.6862180249885633, + 0.16974670365446598, + 0.380060158735936, + 0.8606992412014269, + 0.6995517552033408 + ], + "T_mocap_to_cam": [ + [ + 0.9995314292450528, + 0.026616003224703866, + 0.015116557931100139, + -373.5077365832549 + ], + [ + 0.026586035283918216, + -0.99964415184602, + 0.0021800018195975604, + -223.2913479600006 + ], + [ + 0.015169201667326097, + -0.0017770909919715434, + -0.9998833618319598, + 816.5209880955446 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z", + "up_axis_note": "converted from the recorded Y-up by R_x(-90): (x,y,z)->(x,-z,y). T_mocap_to_cam moved with the poses, so every projection is unchanged; the view-frame action is not." +} \ No newline at end of file diff --git a/overlay25/calibration/data/rope/T_mocap_to_cam_right.json b/overlay25/calibration/data/rope/T_mocap_to_cam_right.json new file mode 100644 index 0000000000000000000000000000000000000000..52f87b6c40ab63aa00ff254dd7ae2c66eb5274e1 --- /dev/null +++ b/overlay25/calibration/data/rope/T_mocap_to_cam_right.json @@ -0,0 +1,264 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "143322063538", + "intrinsics": { + "fx": 608.547607421875, + "fy": 606.7799072265625, + "ppx": 314.88201904296875, + "ppy": 243.41900634765625, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-09-09T07:41:39", + "points_px": [ + [ + 364.28118896484375, + 226.3100128173828 + ], + [ + 375.09521484375, + 172.0719451904297 + ], + [ + 418.16552734375, + 239.4901885986328 + ], + [ + 372.248291015625, + 189.38470458984375 + ], + [ + 538.5238037109375, + 161.0652618408203 + ], + [ + 578.2669067382812, + 164.14666748046875 + ], + [ + 614.590576171875, + 193.21926879882812 + ], + [ + 551.4354248046875, + 161.53729248046875 + ], + [ + 338.0, + 254.0 + ], + [ + 384.0, + 281.0 + ], + [ + 368.0, + 265.0 + ], + [ + 392.0, + 114.0 + ], + [ + 448.0, + 147.0 + ], + [ + 404.0, + 171.0 + ] + ], + "points_mocap_mm": [ + [ + 488.36899999999997, + 57.99, + 213.979 + ], + [ + 414.978, + 71.545, + 264.012 + ], + [ + 445.764, + 62.361, + 151.468 + ], + [ + 439.02000000000004, + 67.27, + 246.459 + ], + [ + 186.969, + 70.75, + 116.05 + ], + [ + 121.782, + 58.125, + 71.44300000000001 + ], + [ + 162.31799999999998, + 88.897, + 3.545 + ], + [ + 166.59799999999998, + 66.914, + 102.365 + ], + [ + 601.8829999999999, + 147.483, + 185.12300000000002 + ], + [ + 535.076, + 62.782000000000004, + 141.016 + ], + [ + 540.51, + 77.084, + 166.62 + ], + [ + 400.7, + 167.358, + 281.313 + ], + [ + 325.52599999999995, + 108.166, + 214.644 + ], + [ + 404.015, + 100.877, + 228.85 + ] + ], + "points_cam_mm": [ + [ + 67.61006265878677, + -23.48441816866398, + 832.8875303268433 + ], + [ + 88.18109333515167, + -104.7908216714859, + 891.2064433097839 + ], + [ + 147.3912000656128, + -5.622966680675745, + 868.4306144714355 + ], + [ + 82.71369338035583, + -78.13647389411926, + 877.4359226226807 + ], + [ + 355.0775647163391, + -131.134495139122, + 966.1950469017029 + ], + [ + 432.61927366256714, + -130.58704137802124, + 999.561607837677 + ], + [ + 461.81631088256836, + -77.57735252380371, + 937.7017617225647 + ], + [ + 380.2844285964966, + -132.01692700386047, + 978.3041477203369 + ], + [ + 26.19326400756836, + 12.023463249206543, + 689.5000610351562 + ], + [ + 91.6579360961914, + 49.98165512084961, + 807.0000610351562 + ], + [ + 67.21060180664062, + 27.386150360107422, + 770.0000610351562 + ], + [ + 102.01334381103516, + -171.697021484375, + 805.0000610351562 + ], + [ + 192.27865600585938, + -139.675537109375, + 879.0000610351562 + ], + [ + 124.037841796875, + -101.0892105102539, + 847.0000610351562 + ] + ], + "method": "pnp", + "num_points": 14, + "rmse_px": 0.6641288760028174, + "num_inliers": 14, + "reproj_err_px": [ + 0.7334514837464046, + 0.45635472009079076, + 0.8970694696327521, + 0.31806234529960986, + 0.6865228817112038, + 0.21057826799310805, + 0.912277422276382, + 0.43994664737977, + 0.21418442105906682, + 1.074796181357606, + 0.6873076709576346, + 0.7207901345940971, + 0.8239751206098153, + 0.33082506738831163 + ], + "T_mocap_to_cam": [ + [ + -0.688097867430995, + 0.7023816139017327, + 0.1821576056323592, + 543.5657328540357 + ], + [ + 0.5425582025081412, + 0.6647209947925371, + -0.5135918573859546, + -115.44031421123972 + ], + [ + -0.4818214625025037, + -0.2545703587121193, + -0.8384760048666456, + 1059.2626265195877 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z", + "up_axis_note": "converted from the recorded Y-up by R_x(-90): (x,y,z)->(x,-z,y). T_mocap_to_cam moved with the poses, so every projection is unchanged; the view-frame action is not." +} \ No newline at end of file diff --git a/overlay25/calibration/data/toy/T_gel_to_rigid_left.json b/overlay25/calibration/data/toy/T_gel_to_rigid_left.json new file mode 100644 index 0000000000000000000000000000000000000000..1841cac1133234442ca99335532512a32e25b04f --- /dev/null +++ b/overlay25/calibration/data/toy/T_gel_to_rigid_left.json @@ -0,0 +1,167 @@ +{ + "method": "dual_ball_multi_pose", + "refball_center_in_rigid_mm": [ + -33.51740422401229, + 12.100255314675977, + -17.699792261606614 + ], + "gelball_center_in_rigid_mm": [ + -43.47382768891848, + -41.22508071829758, + -35.7960391945282 + ], + "gel_axis_in_rigid": [ + -0.17411894520453713, + -0.9324875086795467, + -0.31646427772731606 + ], + "gel_distance_mm": 57.19086670954521, + "depth_offset_mm": -5.0, + "gel_center_in_rigid_mm": [ + -42.603232962895795, + -36.56264317489985, + -34.21371780589162 + ], + "consistency": { + "refball_mean_deviation_mm": 0.4971205477445346, + "refball_max_deviation_mm": 0.6830937323295619, + "refball_std_mm": [ + 0.3822793790831837, + 0.14607220822214068, + 0.3370989262846435 + ], + "gelball_mean_deviation_mm": 0.5311059103030308, + "gelball_max_deviation_mm": 0.7146199631539334, + "gelball_std_mm": [ + 0.23387391401966107, + 0.402760954424785, + 0.30624407553769517 + ], + "axis_max_angle_deg": 1.069223796324866, + "ball_distance_std_mm": 0.09592190067940498 + }, + "mocap_scale": 1000.0, + "raw_data": [ + { + "pose_id": 0, + "rigid_position_mm": [ + 209.704, + 67.29599999999999, + 288.7 + ], + "rigid_quaternion": [ + -0.03045, + 0.5291786, + 0.72056156, + 0.447052 + ], + "refball_mocap_mm": [ + 213.805, + 32.849000000000004, + 307.12899999999996 + ], + "refball_rigid_mm": [ + -33.064365762599664, + 12.164420770736669, + -17.37287066173849 + ], + "gelball_mocap_mm": [ + 247.768, + 13.639999999999999, + 265.48699999999997 + ], + "gelball_rigid_mm": [ + -43.61612381039666, + -40.65963065991089, + -36.20919744147588 + ], + "ball_distance_mm": 57.0659899940411, + "axis_in_rigid": [ + -0.18490449475946746, + -0.9256660830060691, + -0.33007973368558585 + ] + }, + { + "pose_id": 1, + "rigid_position_mm": [ + 207.22, + 63.50699999999999, + 137.26 + ], + "rigid_quaternion": [ + 0.575241, + 0.53501, + -0.513944, + 0.344559 + ], + "refball_mocap_mm": [ + 226.556, + 69.48400000000001, + 172.275 + ], + "refball_rigid_mm": [ + -33.99941004902249, + 12.238224727792783, + -18.163744708359914 + ], + "gelball_mocap_mm": [ + 179.374, + 93.761, + 193.90099999999998 + ], + "gelball_rigid_mm": [ + -43.661251420623046, + -41.44844032643957, + -35.70194717225823 + ], + "ball_distance_mm": 57.29919483727493, + "axis_in_rigid": [ + -0.16862089247570416, + -0.936953219093185, + -0.3060811327926228 + ] + }, + { + "pose_id": 2, + "rigid_position_mm": [ + 261.399, + 57.67, + 194.732 + ], + "rigid_quaternion": [ + -0.63276, + 0.187712, + 0.37411, + 0.65147 + ], + "refball_mocap_mm": [ + 235.038, + 31.395, + 208.37800000000001 + ], + "refball_rigid_mm": [ + -33.48843686041472, + 11.898120445498478, + -17.562761414721432 + ], + "gelball_mocap_mm": [ + 271.628, + 16.011, + 249.575 + ], + "gelball_rigid_mm": [ + -43.14410783573577, + -41.5671711685423, + -35.4769729698505 + ], + "ball_distance_mm": 57.2074152973196, + "axis_in_rigid": [ + -0.16878355585789684, + -0.9345867373341344, + -0.3131449211964034 + ] + } + ], + "up_axis": "n/a (rigid-body frame)" +} \ No newline at end of file diff --git a/overlay25/calibration/data/toy/T_gel_to_rigid_right.json b/overlay25/calibration/data/toy/T_gel_to_rigid_right.json new file mode 100644 index 0000000000000000000000000000000000000000..7d1dd67c265e1bc0d24caac4eef373db2106c5ff --- /dev/null +++ b/overlay25/calibration/data/toy/T_gel_to_rigid_right.json @@ -0,0 +1,167 @@ +{ + "method": "dual_ball_multi_pose", + "refball_center_in_rigid_mm": [ + -17.372443520938578, + 0.2688573520951536, + 38.571757518679924 + ], + "gelball_center_in_rigid_mm": [ + 3.1680846750991996, + -53.986407194707084, + 47.297869103141956 + ], + "gel_axis_in_rigid": [ + 0.3501488269090003, + -0.9248037787338816, + 0.148774224426762 + ], + "gel_distance_mm": 58.67110647491247, + "depth_offset_mm": 0.0, + "gel_center_in_rigid_mm": [ + 3.1680846750991996, + -53.986407194707084, + 47.297869103141956 + ], + "consistency": { + "refball_mean_deviation_mm": 0.4043795279250868, + "refball_max_deviation_mm": 0.5722584634835464, + "refball_std_mm": [ + 0.305325273790818, + 0.1894397197001601, + 0.23772566675184065 + ], + "gelball_mean_deviation_mm": 0.7191394130923946, + "gelball_max_deviation_mm": 1.044514511519201, + "gelball_std_mm": [ + 0.13210638866223554, + 0.258334234777561, + 0.7129747489275182 + ], + "axis_max_angle_deg": 1.0670723640750364, + "ball_distance_std_mm": 0.1918993038441838 + }, + "mocap_scale": 1000.0, + "raw_data": [ + { + "pose_id": 0, + "rigid_position_mm": [ + 308.47, + 92.09, + 161.42000000000002 + ], + "rigid_quaternion": [ + 0.0631, + -0.18618, + -0.33139, + -0.92278 + ], + "refball_mocap_mm": [ + 307.62899999999996, + 91.333, + 203.91500000000002 + ], + "refball_rigid_mm": [ + -17.42214690726894, + 0.24440448450872054, + 38.77517786663904 + ], + "gelball_mocap_mm": [ + 359.197, + 63.277, + 203.299 + ], + "gelball_rigid_mm": [ + 2.9816863949711774, + -54.181252282163626, + 47.0400848891515 + ], + "ball_distance_mm": 58.70926005324889, + "axis_in_rigid": [ + 0.3475402906412716, + -0.927037007744752, + 0.14077688962552495 + ] + }, + { + "pose_id": 1, + "rigid_position_mm": [ + 353.27599999999995, + 105.303, + 229.32 + ], + "rigid_quaternion": [ + -0.28615, + -0.956937, + 0.017508, + -0.045615 + ], + "refball_mocap_mm": [ + 371.03799999999995, + 93.362, + 192.52700000000002 + ], + "refball_rigid_mm": [ + -17.719051737135942, + 0.05003692040386909, + 38.70185623252837 + ], + "gelball_mocap_mm": [ + 324.832, + 59.405, + 181.358 + ], + "gelball_rigid_mm": [ + 3.272234055436968, + -53.6213442033486, + 48.27095310963361 + ], + "ball_distance_mm": 58.419336233818946, + "axis_in_rigid": [ + 0.35932085411852144, + -0.9187263085108816, + 0.163800164363485 + ] + }, + { + "pose_id": 2, + "rigid_position_mm": [ + 223.578, + 72.762, + 125.58900000000001 + ], + "rigid_quaternion": [ + 0.267991, + -0.024821, + -0.319484, + -0.908567 + ], + "refball_mocap_mm": [ + 204.961, + 82.694, + 161.719 + ], + "refball_rigid_mm": [ + -16.976131918410857, + 0.5121306513728712, + 38.23823845687237 + ], + "gelball_mocap_mm": [ + 252.446, + 62.707, + 190.23399999999998 + ], + "gelball_rigid_mm": [ + 3.250333574889453, + -54.15662509860903, + 46.582569310640764 + ], + "ball_distance_mm": 58.884723137669575, + "axis_in_rigid": [ + 0.3434925803423043, + -0.9284030362538862, + 0.14170620848908067 + ] + } + ], + "up_axis": "n/a (rigid-body frame)" +} \ No newline at end of file diff --git a/overlay25/calibration/data/toy/T_mocap_to_cam_left.json b/overlay25/calibration/data/toy/T_mocap_to_cam_left.json new file mode 100644 index 0000000000000000000000000000000000000000..56e9fd32527ce5590fd801fd9bb41bcc77018fc8 --- /dev/null +++ b/overlay25/calibration/data/toy/T_mocap_to_cam_left.json @@ -0,0 +1,264 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "104122062574", + "intrinsics": { + "fx": 608.4557495117188, + "fy": 608.1494750976562, + "ppx": 316.0635986328125, + "ppy": 224.6374053955078, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-09-09T07:41:39", + "points_px": [ + [ + 143.7419891357422, + 178.2099151611328 + ], + [ + 189.45152282714844, + 150.98486328125 + ], + [ + 147.97055053710938, + 220.66168212890625 + ], + [ + 173.2666778564453, + 161.04458618164062 + ], + [ + 294.1172790527344, + 280.3843994140625 + ], + [ + 334.7158203125, + 330.51019287109375 + ], + [ + 276.5556640625, + 373.0362854003906 + ], + [ + 306.35986328125, + 295.54974365234375 + ], + [ + 36.820892333984375, + 159.5347137451172 + ], + [ + 99.56674194335938, + 216.884765625 + ], + [ + 97.03021240234375, + 197.2443389892578 + ], + [ + 163.9508514404297, + 107.2503890991211 + ], + [ + 214.92898559570312, + 179.42526245117188 + ], + [ + 175.64276123046875, + 164.6315460205078 + ] + ], + "points_mocap_mm": [ + [ + 488.36899999999997, + 57.99, + 213.979 + ], + [ + 414.978, + 71.545, + 264.012 + ], + [ + 445.764, + 62.361, + 151.468 + ], + [ + 439.02000000000004, + 67.27, + 246.459 + ], + [ + 186.969, + 70.75, + 116.05 + ], + [ + 121.782, + 58.125, + 71.44300000000001 + ], + [ + 162.31799999999998, + 88.897, + 3.545 + ], + [ + 166.59799999999998, + 66.914, + 102.365 + ], + [ + 601.8829999999999, + 147.483, + 185.12300000000002 + ], + [ + 535.076, + 62.782000000000004, + 141.016 + ], + [ + 540.51, + 77.084, + 166.62 + ], + [ + 400.7, + 167.358, + 281.313 + ], + [ + 325.52599999999995, + 108.166, + 214.644 + ], + [ + 404.015, + 100.877, + 228.85 + ] + ], + "points_cam_mm": [ + [ + -265.3074860572815, + -71.51607424020767, + 936.7824792861938 + ], + [ + -189.91339206695557, + -110.53171753883362, + 912.6609563827515 + ], + [ + -254.59101796150208, + -6.024590227752924, + 921.5573072433472 + ], + [ + -220.07083892822266, + -98.0551466345787, + 937.7188682556152 + ], + [ + -28.192222118377686, + 71.64862751960754, + 781.6218733787537 + ], + [ + 22.724416106939316, + 129.05201315879822, + 741.2945628166199 + ], + [ + -46.32071778178215, + 174.07649755477905, + 713.3781909942627 + ], + [ + -12.383990921080112, + 90.54456651210785, + 776.5170931816101 + ], + [ + -508.81510972976685, + -118.68498474359512, + 1108.68239402771 + ], + [ + -340.10186791419983, + -12.184998020529747, + 955.8426737785339 + ], + [ + -351.6928255558014, + -44.00604963302612, + 976.9721627235413 + ], + [ + -205.46074211597443, + -158.63607823848724, + 821.8494057655334 + ], + [ + -137.51870393753052, + -61.50858476758003, + 827.3531198501587 + ], + [ + -198.6142098903656, + -84.91630107164383, + 860.612690448761 + ] + ], + "method": "pnp", + "num_points": 14, + "rmse_px": 0.5820335045117107, + "num_inliers": 14, + "reproj_err_px": [ + 0.8080875343628796, + 0.37166043358369666, + 0.30035844374306286, + 0.16766178529659098, + 0.2928865608577506, + 0.08605706634747436, + 0.3712100186965587, + 0.3838618203482641, + 1.6306500334269773, + 0.47351243090931516, + 0.3479136287525737, + 0.3214674927609189, + 0.35833809787519083, + 0.46782397947608595 + ], + "T_mocap_to_cam": [ + [ + -0.8868154787413457, + -0.3021879229672767, + -0.3496294694065147, + 128.8094236392457 + ], + [ + -0.17335478597935233, + 0.9188568726749307, + -0.35447167124623546, + 232.76972168031767 + ], + [ + 0.4283764989385047, + -0.25374102299543433, + -0.8672422201475316, + 701.0505085345026 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z", + "up_axis_note": "converted from the recorded Y-up by R_x(-90): (x,y,z)->(x,-z,y). T_mocap_to_cam moved with the poses, so every projection is unchanged; the view-frame action is not." +} \ No newline at end of file diff --git a/overlay25/calibration/data/toy/T_mocap_to_cam_middle.json b/overlay25/calibration/data/toy/T_mocap_to_cam_middle.json new file mode 100644 index 0000000000000000000000000000000000000000..0156c76afb64bafc0a9b5afcae391a786cffaaa3 --- /dev/null +++ b/overlay25/calibration/data/toy/T_mocap_to_cam_middle.json @@ -0,0 +1,264 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "217222066989", + "intrinsics": { + "fx": 609.06005859375, + "fy": 608.275390625, + "ppx": 332.47943115234375, + "ppy": 239.3525390625, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-09-09T07:41:39", + "points_px": [ + [ + 419.8519287109375, + 242.45101928710938 + ], + [ + 361.4404602050781, + 281.3619689941406 + ], + [ + 388.0091552734375, + 190.78221130371094 + ], + [ + 379.912353515625, + 267.10565185546875 + ], + [ + 179.5079345703125, + 156.41310119628906 + ], + [ + 130.3328857421875, + 120.79955291748047 + ], + [ + 157.44979858398438, + 58.920013427734375 + ], + [ + 162.91932678222656, + 146.43170166015625 + ], + [ + 535.0, + 220.0 + ], + [ + 458.49053955078125, + 185.263916015625 + ], + [ + 465.74908447265625, + 205.1256866455078 + ], + [ + 352.8275146484375, + 302.9422912597656 + ], + [ + 287.23797607421875, + 240.01736450195312 + ], + [ + 354.85638427734375, + 252.9636688232422 + ] + ], + "points_mocap_mm": [ + [ + 488.36899999999997, + 57.99, + 213.979 + ], + [ + 414.978, + 71.545, + 264.012 + ], + [ + 445.764, + 62.361, + 151.468 + ], + [ + 439.02000000000004, + 67.27, + 246.459 + ], + [ + 186.969, + 70.75, + 116.05 + ], + [ + 121.782, + 58.125, + 71.44300000000001 + ], + [ + 162.31799999999998, + 88.897, + 3.545 + ], + [ + 166.59799999999998, + 66.914, + 102.365 + ], + [ + 601.8829999999999, + 147.483, + 185.12300000000002 + ], + [ + 535.076, + 62.782000000000004, + 141.016 + ], + [ + 540.51, + 77.084, + 166.62 + ], + [ + 400.7, + 167.358, + 281.313 + ], + [ + 325.52599999999995, + 108.166, + 214.644 + ], + [ + 404.015, + 100.877, + 228.85 + ] + ], + "points_cam_mm": [ + [ + 111.06016486883163, + 3.943601157516241, + 774.1832137107849 + ], + [ + 36.83480620384216, + 53.49968001246452, + 774.6483087539673 + ], + [ + 72.89083302021027, + -63.83784860372543, + 799.4796633720398 + ], + [ + 61.44605576992035, + 35.9986275434494, + 788.995087146759 + ], + [ + -193.46380233764648, + -105.02921789884567, + 770.281195640564 + ], + [ + -255.4701864719391, + -150.01900494098663, + 769.7222232818604 + ], + [ + -213.37243914604187, + -220.24264931678772, + 742.4835562705994 + ], + [ + -215.60049057006836, + -118.30388754606247, + 774.4371294975281 + ], + [ + 227.43911743164062, + -21.76175308227539, + 684.0000610351562 + ], + [ + 164.66139256954193, + -70.76992094516754, + 795.8716154098511 + ], + [ + 169.54033076763153, + -43.598201125860214, + 774.821937084198 + ], + [ + 22.041086107492447, + 68.96940618753433, + 659.7349643707275 + ], + [ + -54.32060360908508, + 0.7992741302587092, + 731.2875390052795 + ], + [ + 26.847360655665398, + 16.35139249265194, + 730.736494064331 + ] + ], + "method": "pnp", + "num_points": 14, + "rmse_px": 0.6957969799496961, + "num_inliers": 14, + "reproj_err_px": [ + 0.17269310973865823, + 0.34678606316542004, + 0.7949263280824498, + 0.7595155335193595, + 0.46703748193000916, + 0.4298708481893768, + 1.1222337545259984, + 1.3263655425582945, + 0.35087765728361514, + 0.6862180249885633, + 0.16974670365446598, + 0.380060158735936, + 0.8606992412014269, + 0.6995517552033408 + ], + "T_mocap_to_cam": [ + [ + 0.9995314292450528, + 0.026616003224703866, + 0.015116557931100139, + -373.5077365832549 + ], + [ + 0.026586035283918216, + -0.99964415184602, + 0.0021800018195975604, + -223.2913479600006 + ], + [ + 0.015169201667326097, + -0.0017770909919715434, + -0.9998833618319598, + 816.5209880955446 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z", + "up_axis_note": "converted from the recorded Y-up by R_x(-90): (x,y,z)->(x,-z,y). T_mocap_to_cam moved with the poses, so every projection is unchanged; the view-frame action is not." +} \ No newline at end of file diff --git a/overlay25/calibration/data/toy/T_mocap_to_cam_right.json b/overlay25/calibration/data/toy/T_mocap_to_cam_right.json new file mode 100644 index 0000000000000000000000000000000000000000..52f87b6c40ab63aa00ff254dd7ae2c66eb5274e1 --- /dev/null +++ b/overlay25/calibration/data/toy/T_mocap_to_cam_right.json @@ -0,0 +1,264 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "143322063538", + "intrinsics": { + "fx": 608.547607421875, + "fy": 606.7799072265625, + "ppx": 314.88201904296875, + "ppy": 243.41900634765625, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-09-09T07:41:39", + "points_px": [ + [ + 364.28118896484375, + 226.3100128173828 + ], + [ + 375.09521484375, + 172.0719451904297 + ], + [ + 418.16552734375, + 239.4901885986328 + ], + [ + 372.248291015625, + 189.38470458984375 + ], + [ + 538.5238037109375, + 161.0652618408203 + ], + [ + 578.2669067382812, + 164.14666748046875 + ], + [ + 614.590576171875, + 193.21926879882812 + ], + [ + 551.4354248046875, + 161.53729248046875 + ], + [ + 338.0, + 254.0 + ], + [ + 384.0, + 281.0 + ], + [ + 368.0, + 265.0 + ], + [ + 392.0, + 114.0 + ], + [ + 448.0, + 147.0 + ], + [ + 404.0, + 171.0 + ] + ], + "points_mocap_mm": [ + [ + 488.36899999999997, + 57.99, + 213.979 + ], + [ + 414.978, + 71.545, + 264.012 + ], + [ + 445.764, + 62.361, + 151.468 + ], + [ + 439.02000000000004, + 67.27, + 246.459 + ], + [ + 186.969, + 70.75, + 116.05 + ], + [ + 121.782, + 58.125, + 71.44300000000001 + ], + [ + 162.31799999999998, + 88.897, + 3.545 + ], + [ + 166.59799999999998, + 66.914, + 102.365 + ], + [ + 601.8829999999999, + 147.483, + 185.12300000000002 + ], + [ + 535.076, + 62.782000000000004, + 141.016 + ], + [ + 540.51, + 77.084, + 166.62 + ], + [ + 400.7, + 167.358, + 281.313 + ], + [ + 325.52599999999995, + 108.166, + 214.644 + ], + [ + 404.015, + 100.877, + 228.85 + ] + ], + "points_cam_mm": [ + [ + 67.61006265878677, + -23.48441816866398, + 832.8875303268433 + ], + [ + 88.18109333515167, + -104.7908216714859, + 891.2064433097839 + ], + [ + 147.3912000656128, + -5.622966680675745, + 868.4306144714355 + ], + [ + 82.71369338035583, + -78.13647389411926, + 877.4359226226807 + ], + [ + 355.0775647163391, + -131.134495139122, + 966.1950469017029 + ], + [ + 432.61927366256714, + -130.58704137802124, + 999.561607837677 + ], + [ + 461.81631088256836, + -77.57735252380371, + 937.7017617225647 + ], + [ + 380.2844285964966, + -132.01692700386047, + 978.3041477203369 + ], + [ + 26.19326400756836, + 12.023463249206543, + 689.5000610351562 + ], + [ + 91.6579360961914, + 49.98165512084961, + 807.0000610351562 + ], + [ + 67.21060180664062, + 27.386150360107422, + 770.0000610351562 + ], + [ + 102.01334381103516, + -171.697021484375, + 805.0000610351562 + ], + [ + 192.27865600585938, + -139.675537109375, + 879.0000610351562 + ], + [ + 124.037841796875, + -101.0892105102539, + 847.0000610351562 + ] + ], + "method": "pnp", + "num_points": 14, + "rmse_px": 0.6641288760028174, + "num_inliers": 14, + "reproj_err_px": [ + 0.7334514837464046, + 0.45635472009079076, + 0.8970694696327521, + 0.31806234529960986, + 0.6865228817112038, + 0.21057826799310805, + 0.912277422276382, + 0.43994664737977, + 0.21418442105906682, + 1.074796181357606, + 0.6873076709576346, + 0.7207901345940971, + 0.8239751206098153, + 0.33082506738831163 + ], + "T_mocap_to_cam": [ + [ + -0.688097867430995, + 0.7023816139017327, + 0.1821576056323592, + 543.5657328540357 + ], + [ + 0.5425582025081412, + 0.6647209947925371, + -0.5135918573859546, + -115.44031421123972 + ], + [ + -0.4818214625025037, + -0.2545703587121193, + -0.8384760048666456, + 1059.2626265195877 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z", + "up_axis_note": "converted from the recorded Y-up by R_x(-90): (x,y,z)->(x,-z,y). T_mocap_to_cam moved with the poses, so every projection is unchanged; the view-frame action is not." +} \ No newline at end of file diff --git a/overlay25/calibration/data/validation/T_gel_to_rigid_left.json b/overlay25/calibration/data/validation/T_gel_to_rigid_left.json new file mode 100644 index 0000000000000000000000000000000000000000..26e7a0aa88430a765079dee56a2605b1be2973f0 --- /dev/null +++ b/overlay25/calibration/data/validation/T_gel_to_rigid_left.json @@ -0,0 +1,166 @@ +{ + "method": "dual_ball_multi_pose", + "refball_center_in_rigid_mm": [ + -33.51740422401229, + 12.100255314675977, + -17.699792261606614 + ], + "gelball_center_in_rigid_mm": [ + -43.47382768891848, + -41.22508071829758, + -35.7960391945282 + ], + "gel_axis_in_rigid": [ + -0.17411894520453713, + -0.9324875086795467, + -0.31646427772731606 + ], + "gel_distance_mm": 57.19086670954521, + "depth_offset_mm": -5.0, + "gel_center_in_rigid_mm": [ + -42.603232962895795, + -36.56264317489985, + -34.21371780589162 + ], + "consistency": { + "refball_mean_deviation_mm": 0.4971205477445346, + "refball_max_deviation_mm": 0.6830937323295619, + "refball_std_mm": [ + 0.3822793790831837, + 0.14607220822214068, + 0.3370989262846435 + ], + "gelball_mean_deviation_mm": 0.5311059103030308, + "gelball_max_deviation_mm": 0.7146199631539334, + "gelball_std_mm": [ + 0.23387391401966107, + 0.402760954424785, + 0.30624407553769517 + ], + "axis_max_angle_deg": 1.069223796324866, + "ball_distance_std_mm": 0.09592190067940498 + }, + "mocap_scale": 1000.0, + "raw_data": [ + { + "pose_id": 0, + "rigid_position_mm": [ + 209.704, + 67.29599999999999, + 288.7 + ], + "rigid_quaternion": [ + -0.03045, + 0.5291786, + 0.72056156, + 0.447052 + ], + "refball_mocap_mm": [ + 213.805, + 32.849000000000004, + 307.12899999999996 + ], + "refball_rigid_mm": [ + -33.064365762599664, + 12.164420770736669, + -17.37287066173849 + ], + "gelball_mocap_mm": [ + 247.768, + 13.639999999999999, + 265.48699999999997 + ], + "gelball_rigid_mm": [ + -43.61612381039666, + -40.65963065991089, + -36.20919744147588 + ], + "ball_distance_mm": 57.0659899940411, + "axis_in_rigid": [ + -0.18490449475946746, + -0.9256660830060691, + -0.33007973368558585 + ] + }, + { + "pose_id": 1, + "rigid_position_mm": [ + 207.22, + 63.50699999999999, + 137.26 + ], + "rigid_quaternion": [ + 0.575241, + 0.53501, + -0.513944, + 0.344559 + ], + "refball_mocap_mm": [ + 226.556, + 69.48400000000001, + 172.275 + ], + "refball_rigid_mm": [ + -33.99941004902249, + 12.238224727792783, + -18.163744708359914 + ], + "gelball_mocap_mm": [ + 179.374, + 93.761, + 193.90099999999998 + ], + "gelball_rigid_mm": [ + -43.661251420623046, + -41.44844032643957, + -35.70194717225823 + ], + "ball_distance_mm": 57.29919483727493, + "axis_in_rigid": [ + -0.16862089247570416, + -0.936953219093185, + -0.3060811327926228 + ] + }, + { + "pose_id": 2, + "rigid_position_mm": [ + 261.399, + 57.67, + 194.732 + ], + "rigid_quaternion": [ + -0.63276, + 0.187712, + 0.37411, + 0.65147 + ], + "refball_mocap_mm": [ + 235.038, + 31.395, + 208.37800000000001 + ], + "refball_rigid_mm": [ + -33.48843686041472, + 11.898120445498478, + -17.562761414721432 + ], + "gelball_mocap_mm": [ + 271.628, + 16.011, + 249.575 + ], + "gelball_rigid_mm": [ + -43.14410783573577, + -41.5671711685423, + -35.4769729698505 + ], + "ball_distance_mm": 57.2074152973196, + "axis_in_rigid": [ + -0.16878355585789684, + -0.9345867373341344, + -0.3131449211964034 + ] + } + ] +} \ No newline at end of file diff --git a/overlay25/calibration/data/validation/T_gel_to_rigid_right.json b/overlay25/calibration/data/validation/T_gel_to_rigid_right.json new file mode 100644 index 0000000000000000000000000000000000000000..f59bc59e69e435a25a9f2a49e72128dfe0761248 --- /dev/null +++ b/overlay25/calibration/data/validation/T_gel_to_rigid_right.json @@ -0,0 +1,166 @@ +{ + "method": "dual_ball_multi_pose", + "refball_center_in_rigid_mm": [ + -17.372443520938578, + 0.2688573520951536, + 38.571757518679924 + ], + "gelball_center_in_rigid_mm": [ + 3.1680846750991996, + -53.986407194707084, + 47.297869103141956 + ], + "gel_axis_in_rigid": [ + 0.3501488269090003, + -0.9248037787338816, + 0.148774224426762 + ], + "gel_distance_mm": 58.67110647491247, + "depth_offset_mm": 0.0, + "gel_center_in_rigid_mm": [ + 3.1680846750991996, + -53.986407194707084, + 47.297869103141956 + ], + "consistency": { + "refball_mean_deviation_mm": 0.4043795279250868, + "refball_max_deviation_mm": 0.5722584634835464, + "refball_std_mm": [ + 0.305325273790818, + 0.1894397197001601, + 0.23772566675184065 + ], + "gelball_mean_deviation_mm": 0.7191394130923946, + "gelball_max_deviation_mm": 1.044514511519201, + "gelball_std_mm": [ + 0.13210638866223554, + 0.258334234777561, + 0.7129747489275182 + ], + "axis_max_angle_deg": 1.0670723640750364, + "ball_distance_std_mm": 0.1918993038441838 + }, + "mocap_scale": 1000.0, + "raw_data": [ + { + "pose_id": 0, + "rigid_position_mm": [ + 308.47, + 92.09, + 161.42000000000002 + ], + "rigid_quaternion": [ + 0.0631, + -0.18618, + -0.33139, + -0.92278 + ], + "refball_mocap_mm": [ + 307.62899999999996, + 91.333, + 203.91500000000002 + ], + "refball_rigid_mm": [ + -17.42214690726894, + 0.24440448450872054, + 38.77517786663904 + ], + "gelball_mocap_mm": [ + 359.197, + 63.277, + 203.299 + ], + "gelball_rigid_mm": [ + 2.9816863949711774, + -54.181252282163626, + 47.0400848891515 + ], + "ball_distance_mm": 58.70926005324889, + "axis_in_rigid": [ + 0.3475402906412716, + -0.927037007744752, + 0.14077688962552495 + ] + }, + { + "pose_id": 1, + "rigid_position_mm": [ + 353.27599999999995, + 105.303, + 229.32 + ], + "rigid_quaternion": [ + -0.28615, + -0.956937, + 0.017508, + -0.045615 + ], + "refball_mocap_mm": [ + 371.03799999999995, + 93.362, + 192.52700000000002 + ], + "refball_rigid_mm": [ + -17.719051737135942, + 0.05003692040386909, + 38.70185623252837 + ], + "gelball_mocap_mm": [ + 324.832, + 59.405, + 181.358 + ], + "gelball_rigid_mm": [ + 3.272234055436968, + -53.6213442033486, + 48.27095310963361 + ], + "ball_distance_mm": 58.419336233818946, + "axis_in_rigid": [ + 0.35932085411852144, + -0.9187263085108816, + 0.163800164363485 + ] + }, + { + "pose_id": 2, + "rigid_position_mm": [ + 223.578, + 72.762, + 125.58900000000001 + ], + "rigid_quaternion": [ + 0.267991, + -0.024821, + -0.319484, + -0.908567 + ], + "refball_mocap_mm": [ + 204.961, + 82.694, + 161.719 + ], + "refball_rigid_mm": [ + -16.976131918410857, + 0.5121306513728712, + 38.23823845687237 + ], + "gelball_mocap_mm": [ + 252.446, + 62.707, + 190.23399999999998 + ], + "gelball_rigid_mm": [ + 3.250333574889453, + -54.15662509860903, + 46.582569310640764 + ], + "ball_distance_mm": 58.884723137669575, + "axis_in_rigid": [ + 0.3434925803423043, + -0.9284030362538862, + 0.14170620848908067 + ] + } + ] +} \ No newline at end of file diff --git a/overlay25/calibration/data/validation/T_mocap_to_cam_left.json b/overlay25/calibration/data/validation/T_mocap_to_cam_left.json new file mode 100644 index 0000000000000000000000000000000000000000..1993b36f9182c9b834d508a92d4d2e678ddbd9cb --- /dev/null +++ b/overlay25/calibration/data/validation/T_mocap_to_cam_left.json @@ -0,0 +1,263 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "104122062574", + "intrinsics": { + "fx": 608.4557495117188, + "fy": 608.1494750976562, + "ppx": 316.0635986328125, + "ppy": 224.6374053955078, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-09-09T07:41:39", + "points_px": [ + [ + 143.7419891357422, + 178.2099151611328 + ], + [ + 189.45152282714844, + 150.98486328125 + ], + [ + 147.97055053710938, + 220.66168212890625 + ], + [ + 173.2666778564453, + 161.04458618164062 + ], + [ + 294.1172790527344, + 280.3843994140625 + ], + [ + 334.7158203125, + 330.51019287109375 + ], + [ + 276.5556640625, + 373.0362854003906 + ], + [ + 306.35986328125, + 295.54974365234375 + ], + [ + 36.820892333984375, + 159.5347137451172 + ], + [ + 99.56674194335938, + 216.884765625 + ], + [ + 97.03021240234375, + 197.2443389892578 + ], + [ + 163.9508514404297, + 107.2503890991211 + ], + [ + 214.92898559570312, + 179.42526245117188 + ], + [ + 175.64276123046875, + 164.6315460205078 + ] + ], + "points_mocap_mm": [ + [ + 488.36899999999997, + 57.99, + 213.979 + ], + [ + 414.978, + 71.545, + 264.012 + ], + [ + 445.764, + 62.361, + 151.468 + ], + [ + 439.02000000000004, + 67.27, + 246.459 + ], + [ + 186.969, + 70.75, + 116.05 + ], + [ + 121.782, + 58.125, + 71.44300000000001 + ], + [ + 162.31799999999998, + 88.897, + 3.545 + ], + [ + 166.59799999999998, + 66.914, + 102.365 + ], + [ + 601.8829999999999, + 147.483, + 185.12300000000002 + ], + [ + 535.076, + 62.782000000000004, + 141.016 + ], + [ + 540.51, + 77.084, + 166.62 + ], + [ + 400.7, + 167.358, + 281.313 + ], + [ + 325.52599999999995, + 108.166, + 214.644 + ], + [ + 404.015, + 100.877, + 228.85 + ] + ], + "points_cam_mm": [ + [ + -265.3074860572815, + -71.51607424020767, + 936.7824792861938 + ], + [ + -189.91339206695557, + -110.53171753883362, + 912.6609563827515 + ], + [ + -254.59101796150208, + -6.024590227752924, + 921.5573072433472 + ], + [ + -220.07083892822266, + -98.0551466345787, + 937.7188682556152 + ], + [ + -28.192222118377686, + 71.64862751960754, + 781.6218733787537 + ], + [ + 22.724416106939316, + 129.05201315879822, + 741.2945628166199 + ], + [ + -46.32071778178215, + 174.07649755477905, + 713.3781909942627 + ], + [ + -12.383990921080112, + 90.54456651210785, + 776.5170931816101 + ], + [ + -508.81510972976685, + -118.68498474359512, + 1108.68239402771 + ], + [ + -340.10186791419983, + -12.184998020529747, + 955.8426737785339 + ], + [ + -351.6928255558014, + -44.00604963302612, + 976.9721627235413 + ], + [ + -205.46074211597443, + -158.63607823848724, + 821.8494057655334 + ], + [ + -137.51870393753052, + -61.50858476758003, + 827.3531198501587 + ], + [ + -198.6142098903656, + -84.91630107164383, + 860.612690448761 + ] + ], + "method": "pnp", + "num_points": 14, + "rmse_px": 0.5820335045117107, + "num_inliers": 14, + "reproj_err_px": [ + 0.8080875343628796, + 0.37166043358369666, + 0.30035844374306286, + 0.16766178529659098, + 0.2928865608577506, + 0.08605706634747436, + 0.3712100186965587, + 0.3838618203482641, + 1.6306500334269773, + 0.47351243090931516, + 0.3479136287525737, + 0.3214674927609189, + 0.35833809787519083, + 0.46782397947608595 + ], + "T_mocap_to_cam": [ + [ + -0.8868154787413457, + -0.3021879229672767, + -0.3496294694065147, + 128.8094236392457 + ], + [ + -0.17335478597935233, + 0.9188568726749307, + -0.35447167124623546, + 232.76972168031767 + ], + [ + 0.4283764989385047, + -0.25374102299543433, + -0.8672422201475316, + 701.0505085345026 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z" +} \ No newline at end of file diff --git a/overlay25/calibration/data/validation/T_mocap_to_cam_middle.json b/overlay25/calibration/data/validation/T_mocap_to_cam_middle.json new file mode 100644 index 0000000000000000000000000000000000000000..a1d038f8435d3e0e5d246080c2d818027d304230 --- /dev/null +++ b/overlay25/calibration/data/validation/T_mocap_to_cam_middle.json @@ -0,0 +1,263 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "217222066989", + "intrinsics": { + "fx": 609.06005859375, + "fy": 608.275390625, + "ppx": 332.47943115234375, + "ppy": 239.3525390625, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-09-09T07:41:39", + "points_px": [ + [ + 419.8519287109375, + 242.45101928710938 + ], + [ + 361.4404602050781, + 281.3619689941406 + ], + [ + 388.0091552734375, + 190.78221130371094 + ], + [ + 379.912353515625, + 267.10565185546875 + ], + [ + 179.5079345703125, + 156.41310119628906 + ], + [ + 130.3328857421875, + 120.79955291748047 + ], + [ + 157.44979858398438, + 58.920013427734375 + ], + [ + 162.91932678222656, + 146.43170166015625 + ], + [ + 535.0, + 220.0 + ], + [ + 458.49053955078125, + 185.263916015625 + ], + [ + 465.74908447265625, + 205.1256866455078 + ], + [ + 352.8275146484375, + 302.9422912597656 + ], + [ + 287.23797607421875, + 240.01736450195312 + ], + [ + 354.85638427734375, + 252.9636688232422 + ] + ], + "points_mocap_mm": [ + [ + 488.36899999999997, + 57.99, + 213.979 + ], + [ + 414.978, + 71.545, + 264.012 + ], + [ + 445.764, + 62.361, + 151.468 + ], + [ + 439.02000000000004, + 67.27, + 246.459 + ], + [ + 186.969, + 70.75, + 116.05 + ], + [ + 121.782, + 58.125, + 71.44300000000001 + ], + [ + 162.31799999999998, + 88.897, + 3.545 + ], + [ + 166.59799999999998, + 66.914, + 102.365 + ], + [ + 601.8829999999999, + 147.483, + 185.12300000000002 + ], + [ + 535.076, + 62.782000000000004, + 141.016 + ], + [ + 540.51, + 77.084, + 166.62 + ], + [ + 400.7, + 167.358, + 281.313 + ], + [ + 325.52599999999995, + 108.166, + 214.644 + ], + [ + 404.015, + 100.877, + 228.85 + ] + ], + "points_cam_mm": [ + [ + 111.06016486883163, + 3.943601157516241, + 774.1832137107849 + ], + [ + 36.83480620384216, + 53.49968001246452, + 774.6483087539673 + ], + [ + 72.89083302021027, + -63.83784860372543, + 799.4796633720398 + ], + [ + 61.44605576992035, + 35.9986275434494, + 788.995087146759 + ], + [ + -193.46380233764648, + -105.02921789884567, + 770.281195640564 + ], + [ + -255.4701864719391, + -150.01900494098663, + 769.7222232818604 + ], + [ + -213.37243914604187, + -220.24264931678772, + 742.4835562705994 + ], + [ + -215.60049057006836, + -118.30388754606247, + 774.4371294975281 + ], + [ + 227.43911743164062, + -21.76175308227539, + 684.0000610351562 + ], + [ + 164.66139256954193, + -70.76992094516754, + 795.8716154098511 + ], + [ + 169.54033076763153, + -43.598201125860214, + 774.821937084198 + ], + [ + 22.041086107492447, + 68.96940618753433, + 659.7349643707275 + ], + [ + -54.32060360908508, + 0.7992741302587092, + 731.2875390052795 + ], + [ + 26.847360655665398, + 16.35139249265194, + 730.736494064331 + ] + ], + "method": "pnp", + "num_points": 14, + "rmse_px": 0.6957969799496961, + "num_inliers": 14, + "reproj_err_px": [ + 0.17269310973865823, + 0.34678606316542004, + 0.7949263280824498, + 0.7595155335193595, + 0.46703748193000916, + 0.4298708481893768, + 1.1222337545259984, + 1.3263655425582945, + 0.35087765728361514, + 0.6862180249885633, + 0.16974670365446598, + 0.380060158735936, + 0.8606992412014269, + 0.6995517552033408 + ], + "T_mocap_to_cam": [ + [ + 0.9995314292450528, + 0.026616003224703866, + 0.015116557931100139, + -373.5077365832549 + ], + [ + 0.026586035283918216, + -0.99964415184602, + 0.0021800018195975604, + -223.2913479600006 + ], + [ + 0.015169201667326097, + -0.0017770909919715434, + -0.9998833618319598, + 816.5209880955446 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z" +} \ No newline at end of file diff --git a/overlay25/calibration/data/validation/T_mocap_to_cam_right.json b/overlay25/calibration/data/validation/T_mocap_to_cam_right.json new file mode 100644 index 0000000000000000000000000000000000000000..ca54f7dcf90a61a225fa2056cfdac68dbac44d9b --- /dev/null +++ b/overlay25/calibration/data/validation/T_mocap_to_cam_right.json @@ -0,0 +1,263 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "143322063538", + "intrinsics": { + "fx": 608.547607421875, + "fy": 606.7799072265625, + "ppx": 314.88201904296875, + "ppy": 243.41900634765625, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-09-09T07:41:39", + "points_px": [ + [ + 364.28118896484375, + 226.3100128173828 + ], + [ + 375.09521484375, + 172.0719451904297 + ], + [ + 418.16552734375, + 239.4901885986328 + ], + [ + 372.248291015625, + 189.38470458984375 + ], + [ + 538.5238037109375, + 161.0652618408203 + ], + [ + 578.2669067382812, + 164.14666748046875 + ], + [ + 614.590576171875, + 193.21926879882812 + ], + [ + 551.4354248046875, + 161.53729248046875 + ], + [ + 338.0, + 254.0 + ], + [ + 384.0, + 281.0 + ], + [ + 368.0, + 265.0 + ], + [ + 392.0, + 114.0 + ], + [ + 448.0, + 147.0 + ], + [ + 404.0, + 171.0 + ] + ], + "points_mocap_mm": [ + [ + 488.36899999999997, + 57.99, + 213.979 + ], + [ + 414.978, + 71.545, + 264.012 + ], + [ + 445.764, + 62.361, + 151.468 + ], + [ + 439.02000000000004, + 67.27, + 246.459 + ], + [ + 186.969, + 70.75, + 116.05 + ], + [ + 121.782, + 58.125, + 71.44300000000001 + ], + [ + 162.31799999999998, + 88.897, + 3.545 + ], + [ + 166.59799999999998, + 66.914, + 102.365 + ], + [ + 601.8829999999999, + 147.483, + 185.12300000000002 + ], + [ + 535.076, + 62.782000000000004, + 141.016 + ], + [ + 540.51, + 77.084, + 166.62 + ], + [ + 400.7, + 167.358, + 281.313 + ], + [ + 325.52599999999995, + 108.166, + 214.644 + ], + [ + 404.015, + 100.877, + 228.85 + ] + ], + "points_cam_mm": [ + [ + 67.61006265878677, + -23.48441816866398, + 832.8875303268433 + ], + [ + 88.18109333515167, + -104.7908216714859, + 891.2064433097839 + ], + [ + 147.3912000656128, + -5.622966680675745, + 868.4306144714355 + ], + [ + 82.71369338035583, + -78.13647389411926, + 877.4359226226807 + ], + [ + 355.0775647163391, + -131.134495139122, + 966.1950469017029 + ], + [ + 432.61927366256714, + -130.58704137802124, + 999.561607837677 + ], + [ + 461.81631088256836, + -77.57735252380371, + 937.7017617225647 + ], + [ + 380.2844285964966, + -132.01692700386047, + 978.3041477203369 + ], + [ + 26.19326400756836, + 12.023463249206543, + 689.5000610351562 + ], + [ + 91.6579360961914, + 49.98165512084961, + 807.0000610351562 + ], + [ + 67.21060180664062, + 27.386150360107422, + 770.0000610351562 + ], + [ + 102.01334381103516, + -171.697021484375, + 805.0000610351562 + ], + [ + 192.27865600585938, + -139.675537109375, + 879.0000610351562 + ], + [ + 124.037841796875, + -101.0892105102539, + 847.0000610351562 + ] + ], + "method": "pnp", + "num_points": 14, + "rmse_px": 0.6641288760028174, + "num_inliers": 14, + "reproj_err_px": [ + 0.7334514837464046, + 0.45635472009079076, + 0.8970694696327521, + 0.31806234529960986, + 0.6865228817112038, + 0.21057826799310805, + 0.912277422276382, + 0.43994664737977, + 0.21418442105906682, + 1.074796181357606, + 0.6873076709576346, + 0.7207901345940971, + 0.8239751206098153, + 0.33082506738831163 + ], + "T_mocap_to_cam": [ + [ + -0.688097867430995, + 0.7023816139017327, + 0.1821576056323592, + 543.5657328540357 + ], + [ + 0.5425582025081412, + 0.6647209947925371, + -0.5135918573859546, + -115.44031421123972 + ], + [ + -0.4818214625025037, + -0.2545703587121193, + -0.8384760048666456, + 1059.2626265195877 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z" +} \ No newline at end of file diff --git a/overlay25/calibration/old_data/motherboard/T_gel_to_rigid_left.json b/overlay25/calibration/old_data/motherboard/T_gel_to_rigid_left.json new file mode 100644 index 0000000000000000000000000000000000000000..26e7a0aa88430a765079dee56a2605b1be2973f0 --- /dev/null +++ b/overlay25/calibration/old_data/motherboard/T_gel_to_rigid_left.json @@ -0,0 +1,166 @@ +{ + "method": "dual_ball_multi_pose", + "refball_center_in_rigid_mm": [ + -33.51740422401229, + 12.100255314675977, + -17.699792261606614 + ], + "gelball_center_in_rigid_mm": [ + -43.47382768891848, + -41.22508071829758, + -35.7960391945282 + ], + "gel_axis_in_rigid": [ + -0.17411894520453713, + -0.9324875086795467, + -0.31646427772731606 + ], + "gel_distance_mm": 57.19086670954521, + "depth_offset_mm": -5.0, + "gel_center_in_rigid_mm": [ + -42.603232962895795, + -36.56264317489985, + -34.21371780589162 + ], + "consistency": { + "refball_mean_deviation_mm": 0.4971205477445346, + "refball_max_deviation_mm": 0.6830937323295619, + "refball_std_mm": [ + 0.3822793790831837, + 0.14607220822214068, + 0.3370989262846435 + ], + "gelball_mean_deviation_mm": 0.5311059103030308, + "gelball_max_deviation_mm": 0.7146199631539334, + "gelball_std_mm": [ + 0.23387391401966107, + 0.402760954424785, + 0.30624407553769517 + ], + "axis_max_angle_deg": 1.069223796324866, + "ball_distance_std_mm": 0.09592190067940498 + }, + "mocap_scale": 1000.0, + "raw_data": [ + { + "pose_id": 0, + "rigid_position_mm": [ + 209.704, + 67.29599999999999, + 288.7 + ], + "rigid_quaternion": [ + -0.03045, + 0.5291786, + 0.72056156, + 0.447052 + ], + "refball_mocap_mm": [ + 213.805, + 32.849000000000004, + 307.12899999999996 + ], + "refball_rigid_mm": [ + -33.064365762599664, + 12.164420770736669, + -17.37287066173849 + ], + "gelball_mocap_mm": [ + 247.768, + 13.639999999999999, + 265.48699999999997 + ], + "gelball_rigid_mm": [ + -43.61612381039666, + -40.65963065991089, + -36.20919744147588 + ], + "ball_distance_mm": 57.0659899940411, + "axis_in_rigid": [ + -0.18490449475946746, + -0.9256660830060691, + -0.33007973368558585 + ] + }, + { + "pose_id": 1, + "rigid_position_mm": [ + 207.22, + 63.50699999999999, + 137.26 + ], + "rigid_quaternion": [ + 0.575241, + 0.53501, + -0.513944, + 0.344559 + ], + "refball_mocap_mm": [ + 226.556, + 69.48400000000001, + 172.275 + ], + "refball_rigid_mm": [ + -33.99941004902249, + 12.238224727792783, + -18.163744708359914 + ], + "gelball_mocap_mm": [ + 179.374, + 93.761, + 193.90099999999998 + ], + "gelball_rigid_mm": [ + -43.661251420623046, + -41.44844032643957, + -35.70194717225823 + ], + "ball_distance_mm": 57.29919483727493, + "axis_in_rigid": [ + -0.16862089247570416, + -0.936953219093185, + -0.3060811327926228 + ] + }, + { + "pose_id": 2, + "rigid_position_mm": [ + 261.399, + 57.67, + 194.732 + ], + "rigid_quaternion": [ + -0.63276, + 0.187712, + 0.37411, + 0.65147 + ], + "refball_mocap_mm": [ + 235.038, + 31.395, + 208.37800000000001 + ], + "refball_rigid_mm": [ + -33.48843686041472, + 11.898120445498478, + -17.562761414721432 + ], + "gelball_mocap_mm": [ + 271.628, + 16.011, + 249.575 + ], + "gelball_rigid_mm": [ + -43.14410783573577, + -41.5671711685423, + -35.4769729698505 + ], + "ball_distance_mm": 57.2074152973196, + "axis_in_rigid": [ + -0.16878355585789684, + -0.9345867373341344, + -0.3131449211964034 + ] + } + ] +} \ No newline at end of file diff --git a/overlay25/calibration/old_data/motherboard/T_gel_to_rigid_right.json b/overlay25/calibration/old_data/motherboard/T_gel_to_rigid_right.json new file mode 100644 index 0000000000000000000000000000000000000000..f59bc59e69e435a25a9f2a49e72128dfe0761248 --- /dev/null +++ b/overlay25/calibration/old_data/motherboard/T_gel_to_rigid_right.json @@ -0,0 +1,166 @@ +{ + "method": "dual_ball_multi_pose", + "refball_center_in_rigid_mm": [ + -17.372443520938578, + 0.2688573520951536, + 38.571757518679924 + ], + "gelball_center_in_rigid_mm": [ + 3.1680846750991996, + -53.986407194707084, + 47.297869103141956 + ], + "gel_axis_in_rigid": [ + 0.3501488269090003, + -0.9248037787338816, + 0.148774224426762 + ], + "gel_distance_mm": 58.67110647491247, + "depth_offset_mm": 0.0, + "gel_center_in_rigid_mm": [ + 3.1680846750991996, + -53.986407194707084, + 47.297869103141956 + ], + "consistency": { + "refball_mean_deviation_mm": 0.4043795279250868, + "refball_max_deviation_mm": 0.5722584634835464, + "refball_std_mm": [ + 0.305325273790818, + 0.1894397197001601, + 0.23772566675184065 + ], + "gelball_mean_deviation_mm": 0.7191394130923946, + "gelball_max_deviation_mm": 1.044514511519201, + "gelball_std_mm": [ + 0.13210638866223554, + 0.258334234777561, + 0.7129747489275182 + ], + "axis_max_angle_deg": 1.0670723640750364, + "ball_distance_std_mm": 0.1918993038441838 + }, + "mocap_scale": 1000.0, + "raw_data": [ + { + "pose_id": 0, + "rigid_position_mm": [ + 308.47, + 92.09, + 161.42000000000002 + ], + "rigid_quaternion": [ + 0.0631, + -0.18618, + -0.33139, + -0.92278 + ], + "refball_mocap_mm": [ + 307.62899999999996, + 91.333, + 203.91500000000002 + ], + "refball_rigid_mm": [ + -17.42214690726894, + 0.24440448450872054, + 38.77517786663904 + ], + "gelball_mocap_mm": [ + 359.197, + 63.277, + 203.299 + ], + "gelball_rigid_mm": [ + 2.9816863949711774, + -54.181252282163626, + 47.0400848891515 + ], + "ball_distance_mm": 58.70926005324889, + "axis_in_rigid": [ + 0.3475402906412716, + -0.927037007744752, + 0.14077688962552495 + ] + }, + { + "pose_id": 1, + "rigid_position_mm": [ + 353.27599999999995, + 105.303, + 229.32 + ], + "rigid_quaternion": [ + -0.28615, + -0.956937, + 0.017508, + -0.045615 + ], + "refball_mocap_mm": [ + 371.03799999999995, + 93.362, + 192.52700000000002 + ], + "refball_rigid_mm": [ + -17.719051737135942, + 0.05003692040386909, + 38.70185623252837 + ], + "gelball_mocap_mm": [ + 324.832, + 59.405, + 181.358 + ], + "gelball_rigid_mm": [ + 3.272234055436968, + -53.6213442033486, + 48.27095310963361 + ], + "ball_distance_mm": 58.419336233818946, + "axis_in_rigid": [ + 0.35932085411852144, + -0.9187263085108816, + 0.163800164363485 + ] + }, + { + "pose_id": 2, + "rigid_position_mm": [ + 223.578, + 72.762, + 125.58900000000001 + ], + "rigid_quaternion": [ + 0.267991, + -0.024821, + -0.319484, + -0.908567 + ], + "refball_mocap_mm": [ + 204.961, + 82.694, + 161.719 + ], + "refball_rigid_mm": [ + -16.976131918410857, + 0.5121306513728712, + 38.23823845687237 + ], + "gelball_mocap_mm": [ + 252.446, + 62.707, + 190.23399999999998 + ], + "gelball_rigid_mm": [ + 3.250333574889453, + -54.15662509860903, + 46.582569310640764 + ], + "ball_distance_mm": 58.884723137669575, + "axis_in_rigid": [ + 0.3434925803423043, + -0.9284030362538862, + 0.14170620848908067 + ] + } + ] +} \ No newline at end of file diff --git a/overlay25/calibration/old_data/motherboard/T_mocap_to_cam_left.json b/overlay25/calibration/old_data/motherboard/T_mocap_to_cam_left.json new file mode 100644 index 0000000000000000000000000000000000000000..a24560c36bc51df1c8b7ffadd3e88a3bf10e89b4 --- /dev/null +++ b/overlay25/calibration/old_data/motherboard/T_mocap_to_cam_left.json @@ -0,0 +1,115 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "T_mocap_to_cam": [ + [ + -0.810677868162443, + -0.4417948639462208, + -0.38421178048354576, + 158.37843079282737 + ], + [ + -0.2945501948324127, + 0.8748721945072194, + -0.3844981482430172, + 284.86657177938224 + ], + [ + 0.5060055106377637, + -0.19853448433171958, + -0.8393702888090293, + 685.6891619250176 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "camera_serial": "104122062574", + "intrinsics": { + "fx": 608.4557495117188, + "fy": 608.1494750976562, + "ppx": 316.0635986328125, + "ppy": 224.6374053955078, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "num_points": 6, + "rmse_mm": 4.747439312142084, + "residuals_mm": [ + 3.140296552809229, + 4.349449571685337, + 4.871127835377674, + 2.593150843339738, + 3.17090715166062, + 8.120525615331562 + ], + "points_cam_mm": [ + [ + 16.711177825927734, + 89.64736938476562, + 786.0000610351562 + ], + [ + 90.5625228881836, + 48.319942474365234, + 766.0000610351562 + ], + [ + 83.88683319091797, + 15.152631759643555, + 811.0000610351562 + ], + [ + -216.6715087890625, + 79.90221405029297, + 928.0000610351562 + ], + [ + -252.9880828857422, + -4.093912601470947, + 944.0000610351562 + ], + [ + -326.0710144042969, + 26.836889266967773, + 940.0000610351562 + ] + ], + "points_mocap_mm": [ + [ + 225.43099999999998, + 47.395, + 127.916 + ], + [ + 169.44400000000002, + 48.577000000000005, + 192.14600000000002 + ], + [ + 207.466, + 27.64, + 225.561 + ], + [ + 487.104, + 17.412, + 63.24 + ], + [ + 546.218, + 51.876, + 121.794 + ], + [ + 589.725, + 72.872, + 64.61 + ] + ], + "created_at": "2026-05-12T22:16:20", + "up_axis": "z" +} \ No newline at end of file diff --git a/overlay25/calibration/old_data/motherboard/T_mocap_to_cam_middle.json b/overlay25/calibration/old_data/motherboard/T_mocap_to_cam_middle.json new file mode 100644 index 0000000000000000000000000000000000000000..79b5c993e7f1da2116e2de0070e7dc49b0247ec5 --- /dev/null +++ b/overlay25/calibration/old_data/motherboard/T_mocap_to_cam_middle.json @@ -0,0 +1,137 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "T_mocap_to_cam": [ + [ + 0.9987689323019825, + 0.04789247635294343, + 0.012920161653051267, + -394.4763993373926 + ], + [ + 0.04826421351573066, + -0.9983784326630464, + -0.030183950818081413, + -270.493443209141 + ], + [ + 0.011453626590133171, + 0.030770373771911365, + -0.9994608539286934, + 826.019809512672 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "camera_serial": "217222066989", + "intrinsics": { + "fx": 609.06005859375, + "fy": 608.275390625, + "ppx": 332.47943115234375, + "ppy": 239.3525390625, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "num_points": 8, + "rmse_mm": 5.298559912741648, + "residuals_mm": [ + 5.6271211125758995, + 10.154049290401456, + 5.295565503833297, + 3.904543899485634, + 4.413577550470772, + 1.7606626889517276, + 3.887479237641652, + 2.9745783556701872 + ], + "points_cam_mm": [ + [ + -138.17422485351562, + -176.80650329589844, + 783.0000610351562 + ], + [ + -203.81289672851562, + -122.2757797241211, + 764.0000610351562 + ], + [ + -176.41786193847656, + -83.21672058105469, + 799.0000610351562 + ], + [ + -160.75990295410156, + -65.39496612548828, + 806.0000610351562 + ], + [ + -45.515159606933594, + -123.39057159423828, + 804.0000610351562 + ], + [ + -18.994951248168945, + -117.36901092529297, + 799.0000610351562 + ], + [ + 36.103763580322266, + -105.6508560180664, + 771.0000610351562 + ], + [ + 53.24198913574219, + -181.49072265625, + 781.0000610351562 + ] + ], + "points_mocap_mm": [ + [ + 261.084, + 48.644, + 84.548 + ], + [ + 195.857, + 50.153999999999996, + 138.387 + ], + [ + 228.08700000000002, + 29.228, + 177.35799999999998 + ], + [ + 242.60999999999999, + 20.526, + 195.374 + ], + [ + 355.329, + 17.682, + 130.42100000000002 + ], + [ + 382.233, + 28.935, + 135.28799999999998 + ], + [ + 437.52000000000004, + 51.916, + 144.34900000000002 + ], + [ + 449.58799999999997, + 50.361000000000004, + 70.165 + ] + ], + "created_at": "2026-05-12T20:34:29", + "up_axis": "z" +} \ No newline at end of file diff --git a/overlay25/calibration/old_data/motherboard/T_mocap_to_cam_right.json b/overlay25/calibration/old_data/motherboard/T_mocap_to_cam_right.json new file mode 100644 index 0000000000000000000000000000000000000000..7c63025e8043112643cd8b97dc25ce72df884dce --- /dev/null +++ b/overlay25/calibration/old_data/motherboard/T_mocap_to_cam_right.json @@ -0,0 +1,115 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "T_mocap_to_cam": [ + [ + -0.7060810935772296, + 0.6950316252373175, + 0.13557481039174474, + 605.2919096634614 + ], + [ + 0.5284341378626592, + 0.644604762743106, + -0.5524871598419762, + -100.86727498691573 + ], + [ + -0.47138821711422957, + -0.3184583799633454, + -0.8224216734723081, + 1061.7990457647895 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "camera_serial": "143322063538", + "intrinsics": { + "fx": 608.547607421875, + "fy": 606.7799072265625, + "ppx": 314.88201904296875, + "ppy": 243.41900634765625, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "num_points": 6, + "rmse_mm": 7.520075033441005, + "residuals_mm": [ + 5.862949060495028, + 5.926871764374507, + 9.172862106825736, + 3.5435031927827803, + 8.811105858313384, + 9.77106902542866 + ], + "points_cam_mm": [ + [ + 150.92872619628906, + 131.20069885253906, + 740.0000610351562 + ], + [ + 138.0159454345703, + 81.08906555175781, + 799.0000610351562 + ], + [ + 189.72586059570312, + 98.56414794921875, + 824.0000610351562 + ], + [ + 216.35919189453125, + 107.14408874511719, + 838.0000610351562 + ], + [ + 367.6980285644531, + -94.39984130859375, + 964.0000610351562 + ], + [ + 363.8806457519531, + -169.8037872314453, + 1006.0000610351562 + ] + ], + "points_mocap_mm": [ + [ + 589.6700000000001, + 72.957, + 64.666 + ], + [ + 545.219, + 53.733999999999995, + 120.568 + ], + [ + 506.815, + 28.365000000000002, + 92.73 + ], + [ + 487.085, + 17.403, + 63.273999999999994 + ], + [ + 225.428, + 47.405, + 127.916 + ], + [ + 169.442, + 48.574, + 192.152 + ] + ], + "created_at": "2026-05-12T22:31:39", + "up_axis": "z" +} \ No newline at end of file diff --git a/overlay25/calibration/old_data/pushT/T_gel_to_rigid_left.json b/overlay25/calibration/old_data/pushT/T_gel_to_rigid_left.json new file mode 100644 index 0000000000000000000000000000000000000000..26e7a0aa88430a765079dee56a2605b1be2973f0 --- /dev/null +++ b/overlay25/calibration/old_data/pushT/T_gel_to_rigid_left.json @@ -0,0 +1,166 @@ +{ + "method": "dual_ball_multi_pose", + "refball_center_in_rigid_mm": [ + -33.51740422401229, + 12.100255314675977, + -17.699792261606614 + ], + "gelball_center_in_rigid_mm": [ + -43.47382768891848, + -41.22508071829758, + -35.7960391945282 + ], + "gel_axis_in_rigid": [ + -0.17411894520453713, + -0.9324875086795467, + -0.31646427772731606 + ], + "gel_distance_mm": 57.19086670954521, + "depth_offset_mm": -5.0, + "gel_center_in_rigid_mm": [ + -42.603232962895795, + -36.56264317489985, + -34.21371780589162 + ], + "consistency": { + "refball_mean_deviation_mm": 0.4971205477445346, + "refball_max_deviation_mm": 0.6830937323295619, + "refball_std_mm": [ + 0.3822793790831837, + 0.14607220822214068, + 0.3370989262846435 + ], + "gelball_mean_deviation_mm": 0.5311059103030308, + "gelball_max_deviation_mm": 0.7146199631539334, + "gelball_std_mm": [ + 0.23387391401966107, + 0.402760954424785, + 0.30624407553769517 + ], + "axis_max_angle_deg": 1.069223796324866, + "ball_distance_std_mm": 0.09592190067940498 + }, + "mocap_scale": 1000.0, + "raw_data": [ + { + "pose_id": 0, + "rigid_position_mm": [ + 209.704, + 67.29599999999999, + 288.7 + ], + "rigid_quaternion": [ + -0.03045, + 0.5291786, + 0.72056156, + 0.447052 + ], + "refball_mocap_mm": [ + 213.805, + 32.849000000000004, + 307.12899999999996 + ], + "refball_rigid_mm": [ + -33.064365762599664, + 12.164420770736669, + -17.37287066173849 + ], + "gelball_mocap_mm": [ + 247.768, + 13.639999999999999, + 265.48699999999997 + ], + "gelball_rigid_mm": [ + -43.61612381039666, + -40.65963065991089, + -36.20919744147588 + ], + "ball_distance_mm": 57.0659899940411, + "axis_in_rigid": [ + -0.18490449475946746, + -0.9256660830060691, + -0.33007973368558585 + ] + }, + { + "pose_id": 1, + "rigid_position_mm": [ + 207.22, + 63.50699999999999, + 137.26 + ], + "rigid_quaternion": [ + 0.575241, + 0.53501, + -0.513944, + 0.344559 + ], + "refball_mocap_mm": [ + 226.556, + 69.48400000000001, + 172.275 + ], + "refball_rigid_mm": [ + -33.99941004902249, + 12.238224727792783, + -18.163744708359914 + ], + "gelball_mocap_mm": [ + 179.374, + 93.761, + 193.90099999999998 + ], + "gelball_rigid_mm": [ + -43.661251420623046, + -41.44844032643957, + -35.70194717225823 + ], + "ball_distance_mm": 57.29919483727493, + "axis_in_rigid": [ + -0.16862089247570416, + -0.936953219093185, + -0.3060811327926228 + ] + }, + { + "pose_id": 2, + "rigid_position_mm": [ + 261.399, + 57.67, + 194.732 + ], + "rigid_quaternion": [ + -0.63276, + 0.187712, + 0.37411, + 0.65147 + ], + "refball_mocap_mm": [ + 235.038, + 31.395, + 208.37800000000001 + ], + "refball_rigid_mm": [ + -33.48843686041472, + 11.898120445498478, + -17.562761414721432 + ], + "gelball_mocap_mm": [ + 271.628, + 16.011, + 249.575 + ], + "gelball_rigid_mm": [ + -43.14410783573577, + -41.5671711685423, + -35.4769729698505 + ], + "ball_distance_mm": 57.2074152973196, + "axis_in_rigid": [ + -0.16878355585789684, + -0.9345867373341344, + -0.3131449211964034 + ] + } + ] +} \ No newline at end of file diff --git a/overlay25/calibration/old_data/pushT/T_gel_to_rigid_right.json b/overlay25/calibration/old_data/pushT/T_gel_to_rigid_right.json new file mode 100644 index 0000000000000000000000000000000000000000..f59bc59e69e435a25a9f2a49e72128dfe0761248 --- /dev/null +++ b/overlay25/calibration/old_data/pushT/T_gel_to_rigid_right.json @@ -0,0 +1,166 @@ +{ + "method": "dual_ball_multi_pose", + "refball_center_in_rigid_mm": [ + -17.372443520938578, + 0.2688573520951536, + 38.571757518679924 + ], + "gelball_center_in_rigid_mm": [ + 3.1680846750991996, + -53.986407194707084, + 47.297869103141956 + ], + "gel_axis_in_rigid": [ + 0.3501488269090003, + -0.9248037787338816, + 0.148774224426762 + ], + "gel_distance_mm": 58.67110647491247, + "depth_offset_mm": 0.0, + "gel_center_in_rigid_mm": [ + 3.1680846750991996, + -53.986407194707084, + 47.297869103141956 + ], + "consistency": { + "refball_mean_deviation_mm": 0.4043795279250868, + "refball_max_deviation_mm": 0.5722584634835464, + "refball_std_mm": [ + 0.305325273790818, + 0.1894397197001601, + 0.23772566675184065 + ], + "gelball_mean_deviation_mm": 0.7191394130923946, + "gelball_max_deviation_mm": 1.044514511519201, + "gelball_std_mm": [ + 0.13210638866223554, + 0.258334234777561, + 0.7129747489275182 + ], + "axis_max_angle_deg": 1.0670723640750364, + "ball_distance_std_mm": 0.1918993038441838 + }, + "mocap_scale": 1000.0, + "raw_data": [ + { + "pose_id": 0, + "rigid_position_mm": [ + 308.47, + 92.09, + 161.42000000000002 + ], + "rigid_quaternion": [ + 0.0631, + -0.18618, + -0.33139, + -0.92278 + ], + "refball_mocap_mm": [ + 307.62899999999996, + 91.333, + 203.91500000000002 + ], + "refball_rigid_mm": [ + -17.42214690726894, + 0.24440448450872054, + 38.77517786663904 + ], + "gelball_mocap_mm": [ + 359.197, + 63.277, + 203.299 + ], + "gelball_rigid_mm": [ + 2.9816863949711774, + -54.181252282163626, + 47.0400848891515 + ], + "ball_distance_mm": 58.70926005324889, + "axis_in_rigid": [ + 0.3475402906412716, + -0.927037007744752, + 0.14077688962552495 + ] + }, + { + "pose_id": 1, + "rigid_position_mm": [ + 353.27599999999995, + 105.303, + 229.32 + ], + "rigid_quaternion": [ + -0.28615, + -0.956937, + 0.017508, + -0.045615 + ], + "refball_mocap_mm": [ + 371.03799999999995, + 93.362, + 192.52700000000002 + ], + "refball_rigid_mm": [ + -17.719051737135942, + 0.05003692040386909, + 38.70185623252837 + ], + "gelball_mocap_mm": [ + 324.832, + 59.405, + 181.358 + ], + "gelball_rigid_mm": [ + 3.272234055436968, + -53.6213442033486, + 48.27095310963361 + ], + "ball_distance_mm": 58.419336233818946, + "axis_in_rigid": [ + 0.35932085411852144, + -0.9187263085108816, + 0.163800164363485 + ] + }, + { + "pose_id": 2, + "rigid_position_mm": [ + 223.578, + 72.762, + 125.58900000000001 + ], + "rigid_quaternion": [ + 0.267991, + -0.024821, + -0.319484, + -0.908567 + ], + "refball_mocap_mm": [ + 204.961, + 82.694, + 161.719 + ], + "refball_rigid_mm": [ + -16.976131918410857, + 0.5121306513728712, + 38.23823845687237 + ], + "gelball_mocap_mm": [ + 252.446, + 62.707, + 190.23399999999998 + ], + "gelball_rigid_mm": [ + 3.250333574889453, + -54.15662509860903, + 46.582569310640764 + ], + "ball_distance_mm": 58.884723137669575, + "axis_in_rigid": [ + 0.3434925803423043, + -0.9284030362538862, + 0.14170620848908067 + ] + } + ] +} \ No newline at end of file diff --git a/overlay25/calibration/old_data/pushT/T_mocap_to_cam_left.json b/overlay25/calibration/old_data/pushT/T_mocap_to_cam_left.json new file mode 100644 index 0000000000000000000000000000000000000000..a8880db8363e9ab9251e83098acd1e22faac8826 --- /dev/null +++ b/overlay25/calibration/old_data/pushT/T_mocap_to_cam_left.json @@ -0,0 +1,242 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "104122062574", + "intrinsics": { + "fx": 608.4557495117188, + "fy": 608.1494750976562, + "ppx": 316.0635986328125, + "ppy": 224.6374053955078, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-06-26T01:52:08", + "points_px": [ + [ + 100.0, + 69.0 + ], + [ + 350.0, + 204.0 + ], + [ + 227.0, + 275.0 + ], + [ + 258.0, + 347.0 + ], + [ + 127.0, + 109.0 + ], + [ + 305.0, + 224.0 + ], + [ + 122.3, + 305.7 + ], + [ + 192.0, + 73.0 + ], + [ + 203.0, + 30.0 + ], + [ + 98.0, + 70.0 + ], + [ + 409.0, + 147.0 + ], + [ + 349.7, + 203.5 + ], + [ + 258.0, + 347.0 + ], + [ + 319.0, + 218.0 + ], + [ + 100.0, + 69.0 + ] + ], + "points_mocap_mm": [ + [ + 719.662, + 60.195, + 358.026 + ], + [ + 178.641, + 55.334, + 221.09400000000002 + ], + [ + 260.702, + 128.832, + 74.647 + ], + [ + 184.84900000000002, + 129.085, + 9.521999999999998 + ], + [ + 653.015, + 26.702, + 307.647 + ], + [ + 245.22299999999998, + 26.105, + 189.067 + ], + [ + 460.894, + 47.84, + -0.392 + ], + [ + 439.964, + 142.1, + 328.855 + ], + [ + 458.52799999999996, + 139.993, + 401.318 + ], + [ + 720.971, + 60.617999999999995, + 355.09000000000003 + ], + [ + 97.826, + 129.169, + 280.17900000000003 + ], + [ + 178.634, + 55.319, + 221.09 + ], + [ + 184.85299999999998, + 129.086, + 9.525 + ], + [ + 224.36700000000002, + 35.253, + 198.943 + ], + [ + 719.66, + 60.197, + 358.024 + ] + ], + "points_cam_mm": [ + [ + -387.06072998046875, + -278.9524230957031, + 1090.0 + ], + [ + 44.36872863769531, + -26.995101928710938, + 795.5000610351562 + ], + [ + -107.58670806884766, + 60.86745071411133, + 735.0000610351562 + ], + [ + -64.89091491699219, + 136.81927490234375, + 680.0000610351562 + ], + [ + -333.7207336425781, + -204.21719360351562, + 1074.0 + ], + [ + -15.364702224731445, + -0.8856500387191772, + 845.0000610351562 + ], + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "method": "pnp", + "num_points": 15, + "rmse_px": 0.5178622670651918, + "num_inliers": 15, + "reproj_err_px": [ + 0.07720112838155388, + 0.39466964991513753, + 0.4141118872484322, + 0.38911037571471546, + 0.2253485504535705, + 0.537972069987414, + 1.0862787078535614, + 0.39124358377078255, + 0.29563211945927614, + 0.6017703525118233, + 0.7524824010217374, + 0.48686851673849824, + 0.38480586619912616, + 0.6766925879742198, + 0.07775796498440735 + ], + "T_mocap_to_cam": [ + [ + -0.8626785176564116, + -0.3565006619520938, + -0.35873814015498157, + 138.40490612800787 + ], + [ + -0.21989410724604602, + 0.9031534177192548, + -0.368728200251206, + 232.69689108641518 + ], + [ + 0.45544742481717987, + -0.23920949414634018, + -0.8575234464069488, + 698.0117464657184 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z" +} \ No newline at end of file diff --git a/overlay25/calibration/old_data/pushT/T_mocap_to_cam_middle.json b/overlay25/calibration/old_data/pushT/T_mocap_to_cam_middle.json new file mode 100644 index 0000000000000000000000000000000000000000..4dfa6c0a66e7e1a1c42a38a86430f9f65705f153 --- /dev/null +++ b/overlay25/calibration/old_data/pushT/T_mocap_to_cam_middle.json @@ -0,0 +1,293 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "217222066989", + "intrinsics": { + "fx": 609.06005859375, + "fy": 608.275390625, + "ppx": 332.47943115234375, + "ppy": 239.3525390625, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-06-26T01:28:28", + "points_px": [ + [ + 225.7, + 212.0 + ], + [ + 402.5, + 73.6 + ], + [ + 142.1, + 175.5 + ], + [ + 169.5, + 236.7 + ], + [ + 207.8, + 219.1 + ], + [ + 514.0, + 167.0 + ], + [ + 581.7, + 193.0 + ], + [ + 386.0, + 345.0 + ], + [ + 401.0, + 410.0 + ], + [ + 602.0, + 360.0 + ], + [ + 85.0, + 293.0 + ], + [ + 175.0, + 242.0 + ], + [ + 169.0, + 56.0 + ], + [ + 215.0, + 226.0 + ], + [ + 232.0, + 217.7 + ], + [ + 600.0, + 363.0 + ] + ], + "points_mocap_mm": [ + [ + 237.281, + 25.998, + 180.44 + ], + [ + 460.894, + 47.84, + -0.392 + ], + [ + 143.892, + 82.0, + 140.107 + ], + [ + 172.231, + 55.411, + 215.355 + ], + [ + 216.828, + 35.16, + 191.24099999999999 + ], + [ + 613.479, + 25.656000000000002, + 111.227 + ], + [ + 689.639, + 59.382999999999996, + 145.195 + ], + [ + 439.964, + 142.1, + 328.855 + ], + [ + 458.52799999999996, + 139.993, + 401.318 + ], + [ + 720.971, + 60.617999999999995, + 355.09000000000003 + ], + [ + 97.826, + 129.169, + 280.17900000000003 + ], + [ + 178.634, + 55.319, + 221.09 + ], + [ + 184.85299999999998, + 129.086, + 9.525 + ], + [ + 224.36700000000002, + 35.253, + 198.943 + ], + [ + 245.226, + 26.088, + 189.045 + ], + [ + 719.66, + 60.197, + 358.024 + ] + ], + "points_cam_mm": [ + [ + -143.0, + -37.0, + 816.0 + ], + [ + 90.0, + -214.0, + 786.0 + ], + [ + -241.0, + -81.0, + 770.0 + ], + [ + -208.0, + -3.0, + 777.0 + ], + [ + -165.0, + -27.0, + 808.0 + ], + [ + 243.0, + -97.0, + 815.0 + ], + [ + 321.0, + -60.0, + 785.0 + ], + [ + 60.0, + 119.0, + 686.0 + ], + [ + 78.0, + 194.0, + 691.0 + ], + [ + 344.0, + 154.0, + 777.0 + ], + [ + -281.0, + 61.0, + 692.0 + ], + [ + -200.0, + 3.0, + 772.0 + ], + [ + -186.0, + -209.0, + 693.0 + ], + [ + -155.0, + -18.0, + 802.0 + ], + [ + -134.0, + -29.0, + 815.0 + ], + [ + 346.0, + 160.0, + 785.0 + ] + ], + "method": "pnp", + "num_points": 16, + "rmse_px": 0.6407235248458195, + "num_inliers": 16, + "reproj_err_px": [ + 0.2899610176069863, + 0.669080485021827, + 0.9169971259549277, + 0.46026596576372314, + 0.767195757233268, + 0.3998102863244082, + 0.2872812146824497, + 0.4998328294447849, + 0.509648740904276, + 0.2794799658640309, + 0.6248116581457764, + 0.644843818979843, + 0.6414513162756064, + 0.9475980184275616, + 0.8353900568090233, + 0.867068767985657 + ], + "T_mocap_to_cam": [ + [ + 0.9995301728657404, + 0.02832317675053606, + 0.011714571684036518, + -371.7056116519318 + ], + [ + 0.02821090670701078, + -0.9995555036210926, + 0.009640535439073956, + -223.43552225722334 + ], + [ + 0.011982415188553214, + -0.009305527365044947, + -0.9998849078202487, + 816.8312450090789 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z" +} \ No newline at end of file diff --git a/overlay25/calibration/old_data/pushT/T_mocap_to_cam_right.json b/overlay25/calibration/old_data/pushT/T_mocap_to_cam_right.json new file mode 100644 index 0000000000000000000000000000000000000000..2ac5ca9e82f448d4a29443d201f49ab2f7de2624 --- /dev/null +++ b/overlay25/calibration/old_data/pushT/T_mocap_to_cam_right.json @@ -0,0 +1,249 @@ +{ + "description": "T_mocap_to_cam: maps OptiTrack (mm) -> camera frame (mm)", + "camera_serial": "143322063538", + "intrinsics": { + "fx": 608.547607421875, + "fy": 606.7799072265625, + "ppx": 314.88201904296875, + "ppy": 243.41900634765625, + "width": 640, + "height": 480 + }, + "mocap_scale": 1000.0, + "created_at": "2026-06-26T01:28:28", + "points_px": [ + [ + 476.1643371582031, + 168.6651611328125 + ], + [ + 494.1025085449219, + 328.59747314453125 + ], + [ + 545.0, + 134.0 + ], + [ + 490.233642578125, + 124.05828857421875 + ], + [ + 480.1378479003906, + 155.3331756591797 + ], + [ + 351.42706298828125, + 348.67474365234375 + ], + [ + 294.347412109375, + 358.010009765625 + ], + [ + 340.0, + 120.0 + ], + [ + 292.0, + 95.0 + ], + [ + 157.60145568847656, + 253.61737060546875 + ], + [ + 504.0, + 47.0 + ], + [ + 485.0, + 124.0 + ], + [ + 620.0, + 182.0 + ], + [ + 475.0, + 155.0 + ], + [ + 469.9, + 169.1 + ], + [ + 158.0, + 251.0 + ] + ], + "points_mocap_mm": [ + [ + 237.281, + 25.998, + 180.44 + ], + [ + 460.894, + 47.84, + -0.392 + ], + [ + 143.892, + 82.0, + 140.107 + ], + [ + 172.231, + 55.411, + 215.355 + ], + [ + 216.828, + 35.16, + 191.24099999999999 + ], + [ + 613.479, + 25.656000000000002, + 111.227 + ], + [ + 689.639, + 59.382999999999996, + 145.195 + ], + [ + 439.964, + 142.1, + 328.855 + ], + [ + 458.52799999999996, + 139.993, + 401.318 + ], + [ + 720.971, + 60.617999999999995, + 355.09000000000003 + ], + [ + 97.826, + 129.169, + 280.17900000000003 + ], + [ + 178.634, + 55.319, + 221.09 + ], + [ + 184.85299999999998, + 129.086, + 9.525 + ], + [ + 224.36700000000002, + 35.253, + 198.943 + ], + [ + 245.226, + 26.088, + 189.045 + ], + [ + 719.66, + 60.197, + 358.024 + ] + ], + "points_cam_mm": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + [ + 281.0, + -198.0, + 1004.0 + ], + [ + 438.0, + -88.0, + 873.0 + ], + [ + 264.0, + -146.0, + 1005.0 + ], + [ + 254.0, + -122.0, + 999.0 + ], + [ + -199.0, + 10.0, + 772.0 + ] + ], + "method": "pnp", + "num_points": 16, + "rmse_px": 0.6773529089318477, + "num_inliers": 16, + "reproj_err_px": [ + 0.7942859636336915, + 0.5964620646155961, + 0.5332480035534054, + 0.5820560730276184, + 1.019866973042847, + 0.2506705542493553, + 0.30316141058477153, + 0.5786690734086455, + 0.7720108630971527, + 0.8671502377557846, + 0.8289407230345537, + 0.29621572579504546, + 0.17477754603634127, + 0.7905926251861011, + 1.0375773923076859, + 0.5885532195519027 + ], + "T_mocap_to_cam": [ + [ + -0.6897515335422411, + 0.7032236183502552, + 0.17239305255868395, + 543.1555716667916 + ], + [ + 0.5463648033253602, + 0.6617533812861933, + -0.5133887065796541, + -115.24517071234328 + ], + [ + -0.4751087493020592, + -0.2599211514106996, + -0.8406620435026007, + 1053.6128044932914 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "up_axis": "z" +} \ No newline at end of file diff --git a/overlay25/clips/event_01.jpg b/overlay25/clips/event_01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..45c16ff7eeda7a531e2059e3f27e7b57e57b46fb --- /dev/null +++ b/overlay25/clips/event_01.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3052d8c5faab34297b22386145ce0b401e0d9c903b63f9b0a96f0dcbc5c4f549 +size 191642 diff --git a/overlay25/clips/event_01.mp4 b/overlay25/clips/event_01.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..6b613ef96ca0f40cb02d353fcdf1e949a5d5c4dc --- /dev/null +++ b/overlay25/clips/event_01.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:136201e753977cefa0fc63708f88b834a26ed4ac6ace2f0bdd367d5f4cff6932 +size 676130 diff --git a/overlay25/clips/event_02.jpg b/overlay25/clips/event_02.jpg new file mode 100644 index 0000000000000000000000000000000000000000..baf5a6cec728274c5c80db352a3af46b5e992c1d --- /dev/null +++ b/overlay25/clips/event_02.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bd067e86bced4611d69a5bd3deb385b8a62f5b29a19bdb10e224bbef31c1e85 +size 178682 diff --git a/overlay25/clips/event_02.mp4 b/overlay25/clips/event_02.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..6c7011c461b97cbfef115b8211b74cb9c67c2e70 --- /dev/null +++ b/overlay25/clips/event_02.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a64fd0475bd25c2554cb1d63369b011ef5f412675592a47b834bfca80bf4cc48 +size 711696 diff --git a/overlay25/clips/event_03.jpg b/overlay25/clips/event_03.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8cc67ac7ccdf28fa07af505e2df6ef127a5e33ef --- /dev/null +++ b/overlay25/clips/event_03.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:964b56e879e27f30e149f5d59c5addc3cc78b435116b81dbd03b05e156cc3c4e +size 179340 diff --git a/overlay25/clips/event_03.mp4 b/overlay25/clips/event_03.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..b1ae7b6f59c04c1e13115da1358ebb8e960b08cf --- /dev/null +++ b/overlay25/clips/event_03.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c6a675fec0e1a0f1d5b2f7adc9f106ffe6a7552f6653aef379d6fa0448b8ae0 +size 793095 diff --git a/overlay25/clips/event_04.jpg b/overlay25/clips/event_04.jpg new file mode 100644 index 0000000000000000000000000000000000000000..62a77faac7eeb87b7e5d8a3196b8ec116e89d49a --- /dev/null +++ b/overlay25/clips/event_04.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88c8989ad56c8f2807aad9f1df5ad0e5659eb82460390a5620c7ed5e5fa6e055 +size 200617 diff --git a/overlay25/clips/event_04.mp4 b/overlay25/clips/event_04.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..066de6ab30d2f857c378ba60fd7e241a45dba33b --- /dev/null +++ b/overlay25/clips/event_04.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:516985e918dd5cc5f8f788fa2377eb725e8b0278d78746cea759eb4a503920c3 +size 514722 diff --git a/overlay25/clips/event_05.jpg b/overlay25/clips/event_05.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6dea9362f5483700e772c97234c7a6eeecda1fd8 --- /dev/null +++ b/overlay25/clips/event_05.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15d2822731b3b305aa8c40fc10aa80c4f6766ee7913ceb0c244edcd231ab2005 +size 187566 diff --git a/overlay25/clips/event_05.mp4 b/overlay25/clips/event_05.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..2a7b955813cf9c7fd7af0be2ad3ec8387db410ad --- /dev/null +++ b/overlay25/clips/event_05.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16ce190052348590e09c0a1dc675b60326733af3e185909f143b7827ccb953fd +size 858875 diff --git a/overlay25/clips/event_06.jpg b/overlay25/clips/event_06.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fd3c8e3608fd555f5d295a20bca0c22fa5273397 --- /dev/null +++ b/overlay25/clips/event_06.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05209544a534d5e8713609a06ad1584886021952b7a19290aa84403044df5564 +size 193645 diff --git a/overlay25/clips/event_06.mp4 b/overlay25/clips/event_06.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..ac11dd2a5f21dde990d6fd6281c7fefb07de9968 --- /dev/null +++ b/overlay25/clips/event_06.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4b8c8cd5753868da2b0c6495de7b8d7ac4bd0d246382e4cb8ca0b5fcec05845 +size 887647 diff --git a/overlay25/clips/event_07.jpg b/overlay25/clips/event_07.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9daa26bdf73edb72a7c26660201cb9efc3a66452 --- /dev/null +++ b/overlay25/clips/event_07.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf6fc35c72b50b14567df1d5c48358fd9685f84b25ceea2e71512a2f1e51a01f +size 184507 diff --git a/overlay25/clips/event_07.mp4 b/overlay25/clips/event_07.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..48725108e4d1b2f279aa498a87da48c98d77ffe2 --- /dev/null +++ b/overlay25/clips/event_07.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ab284dbb6daecd3b0d8a16584034590a8c2c25a94e72996dad45acded5044a0 +size 787624 diff --git a/overlay25/clips/event_08.jpg b/overlay25/clips/event_08.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b7c933de9574d4bd6e602e167ca14d356bc11f8a --- /dev/null +++ b/overlay25/clips/event_08.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f278f4d6c0a008feebe72ae0fb99287c20ff81b780334a8f7b2774b7fcddfebb +size 196047 diff --git a/overlay25/clips/event_08.mp4 b/overlay25/clips/event_08.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..c1c950ba4100932904e6747ac7bdd221f03d4bf9 --- /dev/null +++ b/overlay25/clips/event_08.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8884c31a1cd3597d0bb4e088660de48aaf457087e4cc6ef971592f76a9b3c79 +size 690645 diff --git a/overlay25/clips/event_09.jpg b/overlay25/clips/event_09.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eb20c394fb2b7215fc6e4384b4404cd9e9553289 --- /dev/null +++ b/overlay25/clips/event_09.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f977db268e434bda5f134185c92dc502ef7b36445d7fe0f6bc073806b89d837 +size 177707 diff --git a/overlay25/clips/event_09.mp4 b/overlay25/clips/event_09.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..8717590127fb5d76f99020e6a2e6370398f81d0b --- /dev/null +++ b/overlay25/clips/event_09.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61c23294fecda21864c23dbc7eea05e9d4140f45a53563a7885b8a384cd18b28 +size 680434 diff --git a/overlay25/clips/event_10.jpg b/overlay25/clips/event_10.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b147412fdb5cbc09cb0081e4a42788ab53e47224 --- /dev/null +++ b/overlay25/clips/event_10.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a17874a8802b7d9b9dfd8436e6f7e02469da5a45c3e88fcc0fa4a047abf0792b +size 178284 diff --git a/overlay25/clips/event_10.mp4 b/overlay25/clips/event_10.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..1364ee67242c220a636987eb28acf3b97560a76b --- /dev/null +++ b/overlay25/clips/event_10.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:486c0636bd604e5fdb7a5faeb6f08001d614e95526b6ec528b286cc0fd270fb6 +size 784478 diff --git a/overlay25/clips/event_11.jpg b/overlay25/clips/event_11.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c6e81342079488c0e0c0a85fb5aeb47bd8d2c9bf --- /dev/null +++ b/overlay25/clips/event_11.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3063c51606e06d7878ee5ec24a653e6d2706e618b05a3535360a1f688542b23 +size 179275 diff --git a/overlay25/clips/event_11.mp4 b/overlay25/clips/event_11.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..93fee393fee6c34b68572d4343a4900af2ee76ee --- /dev/null +++ b/overlay25/clips/event_11.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8152cc05f78487817436e833754412decf892d96b1c8ed41cf889665156f1203 +size 625740 diff --git a/overlay25/clips/event_12.jpg b/overlay25/clips/event_12.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eb639936eb4198e301d5715ddb9095b9af5dd971 --- /dev/null +++ b/overlay25/clips/event_12.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3cf0ad0598a6b829710b3961cca68edd5054e9837a1d4e90a1c87b24af4b13b +size 198858 diff --git a/overlay25/clips/event_12.mp4 b/overlay25/clips/event_12.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..d3cd27966befbc29076e2b9dc5ae66d1374657bb --- /dev/null +++ b/overlay25/clips/event_12.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08ca169441ecca52f43b431ed40cadbf6f7ffc52971a8e8d5cdb55b99297e8aa +size 656086 diff --git a/overlay25/clips/event_13.jpg b/overlay25/clips/event_13.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a1583b838137c9f73e338aae8b085d3cdddf9180 --- /dev/null +++ b/overlay25/clips/event_13.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95d0b7998ef203ef1fd45f842a646efb742418309f2c902d2e6709e31627821a +size 195441 diff --git a/overlay25/clips/event_13.mp4 b/overlay25/clips/event_13.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..14b539c7b30248628db7dce63533a579b7c930e6 --- /dev/null +++ b/overlay25/clips/event_13.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:102c141518d8d46cee87c618b56cc1cfc3ada73fb8c20bf07e0450935deb98ca +size 1111835 diff --git a/overlay25/clips/event_14.jpg b/overlay25/clips/event_14.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb582c15b0a51e358e0066392ecde62984d9c5d8 --- /dev/null +++ b/overlay25/clips/event_14.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf64b9856be8cd5d2c4593ab25360f87b033ddfcf9aed4599f53d849e24d68ba +size 185623 diff --git a/overlay25/clips/event_14.mp4 b/overlay25/clips/event_14.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..26d599fc0bef5e957ef408a4ae84b01f44f6be69 --- /dev/null +++ b/overlay25/clips/event_14.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8869902c1e5307bca37b67af62348331292c8a3eb1c379313cae9d1c1c077033 +size 755951 diff --git a/overlay25/clips/event_15.jpg b/overlay25/clips/event_15.jpg new file mode 100644 index 0000000000000000000000000000000000000000..451a3181d55deeaa3e8015add4b2286f00ce3eeb --- /dev/null +++ b/overlay25/clips/event_15.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f45eab9cf842dc739237bbeb1921f45e623d9294f90673bb1c8b0049fb5045e +size 187428 diff --git a/overlay25/clips/event_15.mp4 b/overlay25/clips/event_15.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..a5ead96c8598dac798785fb1423273b7703b7aaa --- /dev/null +++ b/overlay25/clips/event_15.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03ac5a1474d5a8e325ab95df315442f95e5fdb32b698b0f99f9be6a4b25445f3 +size 681333 diff --git a/overlay25/clips/event_16.jpg b/overlay25/clips/event_16.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3c063e4b5d990caa4657905346c789f6676b0240 --- /dev/null +++ b/overlay25/clips/event_16.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a877a0d8e046254c8ccf815555fa56cc2230be322dd42c1432eafc9a3acba0a5 +size 196926 diff --git a/overlay25/clips/event_16.mp4 b/overlay25/clips/event_16.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..804901eb2fe5fd0085ae47db82862c2ee832bb95 --- /dev/null +++ b/overlay25/clips/event_16.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c97431fb4bf2a323a677a086fff9f3e8ae57464a292975d57d05fe5f3777610 +size 1170384 diff --git a/overlay25/clips/event_17.jpg b/overlay25/clips/event_17.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4e15e778b0f280ace2de2aead915e71a89a3900e --- /dev/null +++ b/overlay25/clips/event_17.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ddfbdd1ff2987f811904b81be74c0a039b8dc4b3aebf9749c809b1b2b88ca40 +size 183387 diff --git a/overlay25/clips/event_17.mp4 b/overlay25/clips/event_17.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..34c76b4e9edb8258da0254b7508b9c34f103778b --- /dev/null +++ b/overlay25/clips/event_17.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd356bfefccdd3461e7aa9839bb7073c02db13d92b79f610fa6366f25455d19d +size 693587 diff --git a/overlay25/clips/event_18.jpg b/overlay25/clips/event_18.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dd3aebe9d095b244b28d0e8cacd7f181229cea3f --- /dev/null +++ b/overlay25/clips/event_18.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf6147bbf6907088712cdcc746a4c4dcc9821a2231c42bc585aeaf3b61df41db +size 178632 diff --git a/overlay25/clips/event_18.mp4 b/overlay25/clips/event_18.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..8f342450705a309222c4c55c5d146bcbc4bd08ed --- /dev/null +++ b/overlay25/clips/event_18.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0640a766b42a4a642fd6ea67470375b315bb1e6a929dd3c05d0bc7a121d5fae7 +size 666886 diff --git a/overlay25/clips/event_19.jpg b/overlay25/clips/event_19.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a58a60b45d3a23ece4e2c3a682d372e6e5a42495 --- /dev/null +++ b/overlay25/clips/event_19.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff20048e3c07af95f5cbfedb8633df931bd5ab2812bfe518407690a5be2f15e1 +size 198971 diff --git a/overlay25/clips/event_19.mp4 b/overlay25/clips/event_19.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..388227b4f95acb1f8d93a97a75732ce67ea51ab8 --- /dev/null +++ b/overlay25/clips/event_19.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c6092b69e3547d20eb5b0d224e0089948e40e96a4fab8d72559c533f68a1307 +size 626342 diff --git a/overlay25/clips/event_20.jpg b/overlay25/clips/event_20.jpg new file mode 100644 index 0000000000000000000000000000000000000000..92312ac0af16b901defb644c7079a7e62dcd59f4 --- /dev/null +++ b/overlay25/clips/event_20.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:150a072f23239f1aedccc340116ac147baf3a5d5ef522b67809ddccc733ca075 +size 188735 diff --git a/overlay25/clips/event_20.mp4 b/overlay25/clips/event_20.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..94fffc3dc568b332a74716b849506c27e992aa4c --- /dev/null +++ b/overlay25/clips/event_20.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:992838df398b173d41fde0aa2534499b73c74d4eebfd5cdf5b7be3aa09ceb40d +size 1020810 diff --git a/overlay25/clips/event_21.jpg b/overlay25/clips/event_21.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4c29c7fa99bbcad2fd9eeb410f48608b781beed4 --- /dev/null +++ b/overlay25/clips/event_21.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:daba1224069cf57ff56c2b6a4e355ebd915248a5fc3f03e608566fc26a0f611c +size 192650 diff --git a/overlay25/clips/event_21.mp4 b/overlay25/clips/event_21.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..411ac20324a5959d87277e9f20ce6b9379a27e2b --- /dev/null +++ b/overlay25/clips/event_21.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b02244a52b65a38d258af8bb9f6fbeaf4d2ddd8501ef116c5aae6d0e96a7d6a2 +size 1081953 diff --git a/overlay25/clips/event_22.jpg b/overlay25/clips/event_22.jpg new file mode 100644 index 0000000000000000000000000000000000000000..04214f31ac6098875ab2c244bcd5b028f44b127a --- /dev/null +++ b/overlay25/clips/event_22.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab95061c1d73792c03b69837060b5376deb5889456abacc7c94325d1eb60dc1b +size 184024 diff --git a/overlay25/clips/event_22.mp4 b/overlay25/clips/event_22.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..18fd5bd6eb118104eb70da21d6329b90c72b70ed --- /dev/null +++ b/overlay25/clips/event_22.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42d5753fbfa35292ed0e557bef21b849c918d20fa27d95c90972e81d494551a7 +size 627271 diff --git a/overlay25/clips/event_23.jpg b/overlay25/clips/event_23.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1375144db0814eecb4eebd679a594891e2ba60b1 --- /dev/null +++ b/overlay25/clips/event_23.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99cc53d38adae49f3d50d365b5976f45e9b5723a55967ce0c8213a217aae56b1 +size 182550 diff --git a/overlay25/clips/event_23.mp4 b/overlay25/clips/event_23.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..50b16a127b3d0cf8298139d0ba3faf8983cc3d0e --- /dev/null +++ b/overlay25/clips/event_23.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a32968ee924c764648aea3155642c5bdc1325013c0cf411e2462693d43062d3 +size 776794 diff --git a/overlay25/clips/event_24.jpg b/overlay25/clips/event_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ec758c41df9f39e18d0a71169ba5580d9966faad --- /dev/null +++ b/overlay25/clips/event_24.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9654b43b2a1dbc90f3b46b563901fe41e76ef54971c5ce08d017718a4f6e4ad +size 176596 diff --git a/overlay25/clips/event_24.mp4 b/overlay25/clips/event_24.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..cde4fe619d496af875fbb60391b2737280facd50 --- /dev/null +++ b/overlay25/clips/event_24.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdb290fd03baa45f9653eeea52214810d70206a21bf509c569f0acdd38c2a554 +size 585746 diff --git a/overlay25/clips/event_25.jpg b/overlay25/clips/event_25.jpg new file mode 100644 index 0000000000000000000000000000000000000000..266fb4066af8a6709e34f3e5934f0c47613ab9c8 --- /dev/null +++ b/overlay25/clips/event_25.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1d9299f050a9c5a75a4e2da388fcd1b54832d77ba51fa201804faefe6a71b5e +size 190959 diff --git a/overlay25/clips/event_25.mp4 b/overlay25/clips/event_25.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..89c9e5536c304aefd9af36f39ee291390df1e3ba --- /dev/null +++ b/overlay25/clips/event_25.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc17124aaf2731a020478a372b933d57e20b9ca54c8ca2057b077001808ef4a2 +size 964918 diff --git a/overlay25/manifest.json b/overlay25/manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..677add519e030d8a5f46c5fcd3ba1e833ca897eb --- /dev/null +++ b/overlay25/manifest.json @@ -0,0 +1,558 @@ +{ + "dataset_revision": "5b1fa8596be2f73348c19c51bb2526281f8f61ab", + "renderer": "twm.viz.draw_projection_overlay", + "calibration": "Published scope-specific Z-up JSON, unchanged, require_zup validated", + "timing": "segment-local row / 30 fps; no capture timestamp substitution", + "events": [ + { + "number": 1, + "event": "data/motherboard/meta/2026-09-11/episode_007_seg00.parquet::right:544-544:branch_discontinuity", + "clip": "clips/event_01.mp4", + "poster": "clips/event_01.jpg", + "start_row": 484, + "end_row_exclusive": 604, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/motherboard/T_mocap_to_cam_left.json": "d7ebe46d2ef346b5bc73f8c58051b8312f40d0b2e9662f400a246a36d4917863", + "calibration/data/motherboard/T_mocap_to_cam_middle.json": "90dac3d8fc32747fe5f4324f5fc06971400020e7686f96d23a01568fe7ca789d", + "calibration/data/motherboard/T_mocap_to_cam_right.json": "5b3c9ce676ef0203bc3f8453add9d885faee537f916cd534921fba3713d5e4f9", + "calibration/data/motherboard/T_gel_to_rigid_left.json": "c4db75f5a4d9732acae9042d6787ba089b55bdbe17c455162e94a5cfad9746d3", + "calibration/data/motherboard/T_gel_to_rigid_right.json": "bca8f57e9a6b49de7fb5a15fe54ea785570e2842fde4a2619b460685831a2d7c" + }, + "sha256": "136201e753977cefa0fc63708f88b834a26ed4ac6ace2f0bdd367d5f4cff6932", + "overlay_changed_pixels": 596462, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 2, + "event": "data/rope/meta/2026-09-14/episode_003_seg01.parquet::right:3960-3964:branch_discontinuity", + "clip": "clips/event_02.mp4", + "poster": "clips/event_02.jpg", + "start_row": 2027, + "end_row_exclusive": 2147, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/rope/T_mocap_to_cam_left.json": "d7ebe46d2ef346b5bc73f8c58051b8312f40d0b2e9662f400a246a36d4917863", + "calibration/data/rope/T_mocap_to_cam_middle.json": "90dac3d8fc32747fe5f4324f5fc06971400020e7686f96d23a01568fe7ca789d", + "calibration/data/rope/T_mocap_to_cam_right.json": "5b3c9ce676ef0203bc3f8453add9d885faee537f916cd534921fba3713d5e4f9", + "calibration/data/rope/T_gel_to_rigid_left.json": "c4db75f5a4d9732acae9042d6787ba089b55bdbe17c455162e94a5cfad9746d3", + "calibration/data/rope/T_gel_to_rigid_right.json": "bca8f57e9a6b49de7fb5a15fe54ea785570e2842fde4a2619b460685831a2d7c" + }, + "sha256": "a64fd0475bd25c2554cb1d63369b011ef5f412675592a47b834bfca80bf4cc48", + "overlay_changed_pixels": 580257, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 3, + "event": "data/pushT/meta/2026-09-10/episode_003_seg02.parquet::left:10247-10248:branch_discontinuity", + "clip": "clips/event_03.mp4", + "poster": "clips/event_03.jpg", + "start_row": 0, + "end_row_exclusive": 120, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/pushT/T_mocap_to_cam_left.json": "d7ebe46d2ef346b5bc73f8c58051b8312f40d0b2e9662f400a246a36d4917863", + "calibration/data/pushT/T_mocap_to_cam_middle.json": "90dac3d8fc32747fe5f4324f5fc06971400020e7686f96d23a01568fe7ca789d", + "calibration/data/pushT/T_mocap_to_cam_right.json": "5b3c9ce676ef0203bc3f8453add9d885faee537f916cd534921fba3713d5e4f9", + "calibration/data/pushT/T_gel_to_rigid_left.json": "c4db75f5a4d9732acae9042d6787ba089b55bdbe17c455162e94a5cfad9746d3", + "calibration/data/pushT/T_gel_to_rigid_right.json": "bca8f57e9a6b49de7fb5a15fe54ea785570e2842fde4a2619b460685831a2d7c" + }, + "sha256": "5c6a675fec0e1a0f1d5b2f7adc9f106ffe6a7552f6653aef379d6fa0448b8ae0", + "overlay_changed_pixels": 600202, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 4, + "event": "data/toy/meta/2026-09-14/episode_000_seg00.parquet::left:6525-6529:branch_discontinuity", + "clip": "clips/event_04.mp4", + "poster": "clips/event_04.jpg", + "start_row": 892, + "end_row_exclusive": 1012, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/toy/T_mocap_to_cam_left.json": "d7ebe46d2ef346b5bc73f8c58051b8312f40d0b2e9662f400a246a36d4917863", + "calibration/data/toy/T_mocap_to_cam_middle.json": "90dac3d8fc32747fe5f4324f5fc06971400020e7686f96d23a01568fe7ca789d", + "calibration/data/toy/T_mocap_to_cam_right.json": "5b3c9ce676ef0203bc3f8453add9d885faee537f916cd534921fba3713d5e4f9", + "calibration/data/toy/T_gel_to_rigid_left.json": "c4db75f5a4d9732acae9042d6787ba089b55bdbe17c455162e94a5cfad9746d3", + "calibration/data/toy/T_gel_to_rigid_right.json": "bca8f57e9a6b49de7fb5a15fe54ea785570e2842fde4a2619b460685831a2d7c" + }, + "sha256": "516985e918dd5cc5f8f788fa2377eb725e8b0278d78746cea759eb4a503920c3", + "overlay_changed_pixels": 587908, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 5, + "event": "data/validation/meta/2026-09-09/episode_001.parquet::right:1394-1397:branch_discontinuity", + "clip": "clips/event_05.mp4", + "poster": "clips/event_05.jpg", + "start_row": 1335, + "end_row_exclusive": 1455, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/validation/T_mocap_to_cam_left.json": "69e0b6d256f0eb531dceced8eca225bdc240d6e38127673f3105f02ca7cab2cd", + "calibration/data/validation/T_mocap_to_cam_middle.json": "f96b2f338829288a338c02910aaec6dc7d5f7ad0b11c2fbd50ba7ed388f70871", + "calibration/data/validation/T_mocap_to_cam_right.json": "2cdff94e9ecf444562ba89f3510469ea5e745ca244c901bcc9ea26b85c87807a", + "calibration/data/validation/T_gel_to_rigid_left.json": "bbb744d64f07b211bbe568805451f508f4017d2e3353512b6e3b33edbc27dc75", + "calibration/data/validation/T_gel_to_rigid_right.json": "bede0bc030617c571c84b6eeb450e9161479df7bf87eec0f78668c55a199459f" + }, + "sha256": "16ce190052348590e09c0a1dc675b60326733af3e185909f143b7827ccb953fd", + "overlay_changed_pixels": 584686, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 6, + "event": "old_data/motherboard/meta/2026-05-10/episode_000.parquet::left:6729-6729:branch_discontinuity", + "clip": "clips/event_06.mp4", + "poster": "clips/event_06.jpg", + "start_row": 6669, + "end_row_exclusive": 6789, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/old_data/motherboard/T_mocap_to_cam_left.json": "01f4bd9d354b4711d80dcab4e970a7fc08179b404158ae891e12cb492565e75f", + "calibration/old_data/motherboard/T_mocap_to_cam_middle.json": "d4a4377b581d0b992f2f33cc33a70b87644d74825cb89a2aa33eb23e34f651f0", + "calibration/old_data/motherboard/T_mocap_to_cam_right.json": "9fbb9854587002ac07ceb193ec8577af6f733337363104b56a0d89bf8968ac24", + "calibration/old_data/motherboard/T_gel_to_rigid_left.json": "bbb744d64f07b211bbe568805451f508f4017d2e3353512b6e3b33edbc27dc75", + "calibration/old_data/motherboard/T_gel_to_rigid_right.json": "bede0bc030617c571c84b6eeb450e9161479df7bf87eec0f78668c55a199459f" + }, + "sha256": "e4b8c8cd5753868da2b0c6495de7b8d7ac4bd0d246382e4cb8ca0b5fcec05845", + "overlay_changed_pixels": 567438, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 7, + "event": "old_data/pushT/meta/2026-06-18/episode_001.parquet::left:11024-11027:branch_discontinuity", + "clip": "clips/event_07.mp4", + "poster": "clips/event_07.jpg", + "start_row": 10965, + "end_row_exclusive": 11085, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/old_data/pushT/T_mocap_to_cam_left.json": "87774724298ec0e9e4b9558376b99548999bf30a9a29246d6ee8d31e2ca61636", + "calibration/old_data/pushT/T_mocap_to_cam_middle.json": "d19e0f9275c648bf429d8e53de01b89cb8c3f7b9ae8122088d36590c33fe2b0a", + "calibration/old_data/pushT/T_mocap_to_cam_right.json": "81a0e70799d6e1c10ac5476c423be64d0e1fa3cec2842c9b349c6a23841efbf4", + "calibration/old_data/pushT/T_gel_to_rigid_left.json": "bbb744d64f07b211bbe568805451f508f4017d2e3353512b6e3b33edbc27dc75", + "calibration/old_data/pushT/T_gel_to_rigid_right.json": "bede0bc030617c571c84b6eeb450e9161479df7bf87eec0f78668c55a199459f" + }, + "sha256": "3ab284dbb6daecd3b0d8a16584034590a8c2c25a94e72996dad45acded5044a0", + "overlay_changed_pixels": 598677, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 8, + "event": "data/motherboard/meta/2026-09-11/episode_007_seg02.parquet::left:11508-11524:known_gap", + "clip": "clips/event_08.mp4", + "poster": "clips/event_08.jpg", + "start_row": 5356, + "end_row_exclusive": 5476, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/motherboard/T_mocap_to_cam_left.json": "d7ebe46d2ef346b5bc73f8c58051b8312f40d0b2e9662f400a246a36d4917863", + "calibration/data/motherboard/T_mocap_to_cam_middle.json": "90dac3d8fc32747fe5f4324f5fc06971400020e7686f96d23a01568fe7ca789d", + "calibration/data/motherboard/T_mocap_to_cam_right.json": "5b3c9ce676ef0203bc3f8453add9d885faee537f916cd534921fba3713d5e4f9", + "calibration/data/motherboard/T_gel_to_rigid_left.json": "c4db75f5a4d9732acae9042d6787ba089b55bdbe17c455162e94a5cfad9746d3", + "calibration/data/motherboard/T_gel_to_rigid_right.json": "bca8f57e9a6b49de7fb5a15fe54ea785570e2842fde4a2619b460685831a2d7c" + }, + "sha256": "f8884c31a1cd3597d0bb4e088660de48aaf457087e4cc6ef971592f76a9b3c79", + "overlay_changed_pixels": 613012, + "method": "robust_se3_hermite", + "confidence": "HIGH" + }, + { + "number": 9, + "event": "data/validation/meta/2026-09-09/episode_003.parquet::right:7010-7015:branch_discontinuity", + "clip": "clips/event_09.mp4", + "poster": "clips/event_09.jpg", + "start_row": 6952, + "end_row_exclusive": 7072, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/validation/T_mocap_to_cam_left.json": "69e0b6d256f0eb531dceced8eca225bdc240d6e38127673f3105f02ca7cab2cd", + "calibration/data/validation/T_mocap_to_cam_middle.json": "f96b2f338829288a338c02910aaec6dc7d5f7ad0b11c2fbd50ba7ed388f70871", + "calibration/data/validation/T_mocap_to_cam_right.json": "2cdff94e9ecf444562ba89f3510469ea5e745ca244c901bcc9ea26b85c87807a", + "calibration/data/validation/T_gel_to_rigid_left.json": "bbb744d64f07b211bbe568805451f508f4017d2e3353512b6e3b33edbc27dc75", + "calibration/data/validation/T_gel_to_rigid_right.json": "bede0bc030617c571c84b6eeb450e9161479df7bf87eec0f78668c55a199459f" + }, + "sha256": "61c23294fecda21864c23dbc7eea05e9d4140f45a53563a7885b8a384cd18b28", + "overlay_changed_pixels": 614859, + "method": "robust_se3_hermite", + "confidence": "MEDIUM" + }, + { + "number": 10, + "event": "data/pushT/meta/2026-09-10/episode_004_seg00.parquet::left:568-571:branch_discontinuity", + "clip": "clips/event_10.mp4", + "poster": "clips/event_10.jpg", + "start_row": 104, + "end_row_exclusive": 224, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/pushT/T_mocap_to_cam_left.json": "d7ebe46d2ef346b5bc73f8c58051b8312f40d0b2e9662f400a246a36d4917863", + "calibration/data/pushT/T_mocap_to_cam_middle.json": "90dac3d8fc32747fe5f4324f5fc06971400020e7686f96d23a01568fe7ca789d", + "calibration/data/pushT/T_mocap_to_cam_right.json": "5b3c9ce676ef0203bc3f8453add9d885faee537f916cd534921fba3713d5e4f9", + "calibration/data/pushT/T_gel_to_rigid_left.json": "c4db75f5a4d9732acae9042d6787ba089b55bdbe17c455162e94a5cfad9746d3", + "calibration/data/pushT/T_gel_to_rigid_right.json": "bca8f57e9a6b49de7fb5a15fe54ea785570e2842fde4a2619b460685831a2d7c" + }, + "sha256": "486c0636bd604e5fdb7a5faeb6f08001d614e95526b6ec528b286cc0fd270fb6", + "overlay_changed_pixels": 596517, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 11, + "event": "data/rope/meta/2026-09-11/episode_000_seg00.parquet::left:2114-2116:branch_discontinuity", + "clip": "clips/event_11.mp4", + "poster": "clips/event_11.jpg", + "start_row": 2055, + "end_row_exclusive": 2175, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/rope/T_mocap_to_cam_left.json": "d7ebe46d2ef346b5bc73f8c58051b8312f40d0b2e9662f400a246a36d4917863", + "calibration/data/rope/T_mocap_to_cam_middle.json": "90dac3d8fc32747fe5f4324f5fc06971400020e7686f96d23a01568fe7ca789d", + "calibration/data/rope/T_mocap_to_cam_right.json": "5b3c9ce676ef0203bc3f8453add9d885faee537f916cd534921fba3713d5e4f9", + "calibration/data/rope/T_gel_to_rigid_left.json": "c4db75f5a4d9732acae9042d6787ba089b55bdbe17c455162e94a5cfad9746d3", + "calibration/data/rope/T_gel_to_rigid_right.json": "bca8f57e9a6b49de7fb5a15fe54ea785570e2842fde4a2619b460685831a2d7c" + }, + "sha256": "8152cc05f78487817436e833754412decf892d96b1c8ed41cf889665156f1203", + "overlay_changed_pixels": 582410, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 12, + "event": "data/toy/meta/2026-09-14/episode_000_seg00.parquet::right:5938-5938:branch_discontinuity", + "clip": "clips/event_12.mp4", + "poster": "clips/event_12.jpg", + "start_row": 364, + "end_row_exclusive": 484, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/toy/T_mocap_to_cam_left.json": "d7ebe46d2ef346b5bc73f8c58051b8312f40d0b2e9662f400a246a36d4917863", + "calibration/data/toy/T_mocap_to_cam_middle.json": "90dac3d8fc32747fe5f4324f5fc06971400020e7686f96d23a01568fe7ca789d", + "calibration/data/toy/T_mocap_to_cam_right.json": "5b3c9ce676ef0203bc3f8453add9d885faee537f916cd534921fba3713d5e4f9", + "calibration/data/toy/T_gel_to_rigid_left.json": "c4db75f5a4d9732acae9042d6787ba089b55bdbe17c455162e94a5cfad9746d3", + "calibration/data/toy/T_gel_to_rigid_right.json": "bca8f57e9a6b49de7fb5a15fe54ea785570e2842fde4a2619b460685831a2d7c" + }, + "sha256": "08ca169441ecca52f43b431ed40cadbf6f7ffc52971a8e8d5cdb55b99297e8aa", + "overlay_changed_pixels": 580030, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 13, + "event": "old_data/motherboard/meta/2026-05-10/episode_002.parquet::left:10364-10364:branch_discontinuity", + "clip": "clips/event_13.mp4", + "poster": "clips/event_13.jpg", + "start_row": 10304, + "end_row_exclusive": 10424, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/old_data/motherboard/T_mocap_to_cam_left.json": "01f4bd9d354b4711d80dcab4e970a7fc08179b404158ae891e12cb492565e75f", + "calibration/old_data/motherboard/T_mocap_to_cam_middle.json": "d4a4377b581d0b992f2f33cc33a70b87644d74825cb89a2aa33eb23e34f651f0", + "calibration/old_data/motherboard/T_mocap_to_cam_right.json": "9fbb9854587002ac07ceb193ec8577af6f733337363104b56a0d89bf8968ac24", + "calibration/old_data/motherboard/T_gel_to_rigid_left.json": "bbb744d64f07b211bbe568805451f508f4017d2e3353512b6e3b33edbc27dc75", + "calibration/old_data/motherboard/T_gel_to_rigid_right.json": "bede0bc030617c571c84b6eeb450e9161479df7bf87eec0f78668c55a199459f" + }, + "sha256": "102c141518d8d46cee87c618b56cc1cfc3ada73fb8c20bf07e0450935deb98ca", + "overlay_changed_pixels": 593988, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 14, + "event": "old_data/pushT/meta/2026-06-18/episode_001.parquet::left:7981-7984:branch_discontinuity", + "clip": "clips/event_14.mp4", + "poster": "clips/event_14.jpg", + "start_row": 7922, + "end_row_exclusive": 8042, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/old_data/pushT/T_mocap_to_cam_left.json": "87774724298ec0e9e4b9558376b99548999bf30a9a29246d6ee8d31e2ca61636", + "calibration/old_data/pushT/T_mocap_to_cam_middle.json": "d19e0f9275c648bf429d8e53de01b89cb8c3f7b9ae8122088d36590c33fe2b0a", + "calibration/old_data/pushT/T_mocap_to_cam_right.json": "81a0e70799d6e1c10ac5476c423be64d0e1fa3cec2842c9b349c6a23841efbf4", + "calibration/old_data/pushT/T_gel_to_rigid_left.json": "bbb744d64f07b211bbe568805451f508f4017d2e3353512b6e3b33edbc27dc75", + "calibration/old_data/pushT/T_gel_to_rigid_right.json": "bede0bc030617c571c84b6eeb450e9161479df7bf87eec0f78668c55a199459f" + }, + "sha256": "8869902c1e5307bca37b67af62348331292c8a3eb1c379313cae9d1c1c077033", + "overlay_changed_pixels": 603429, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 15, + "event": "data/validation/meta/2026-09-09/episode_005.parquet::right:1081-1087:branch_discontinuity", + "clip": "clips/event_15.mp4", + "poster": "clips/event_15.jpg", + "start_row": 1024, + "end_row_exclusive": 1144, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/validation/T_mocap_to_cam_left.json": "69e0b6d256f0eb531dceced8eca225bdc240d6e38127673f3105f02ca7cab2cd", + "calibration/data/validation/T_mocap_to_cam_middle.json": "f96b2f338829288a338c02910aaec6dc7d5f7ad0b11c2fbd50ba7ed388f70871", + "calibration/data/validation/T_mocap_to_cam_right.json": "2cdff94e9ecf444562ba89f3510469ea5e745ca244c901bcc9ea26b85c87807a", + "calibration/data/validation/T_gel_to_rigid_left.json": "bbb744d64f07b211bbe568805451f508f4017d2e3353512b6e3b33edbc27dc75", + "calibration/data/validation/T_gel_to_rigid_right.json": "bede0bc030617c571c84b6eeb450e9161479df7bf87eec0f78668c55a199459f" + }, + "sha256": "03ac5a1474d5a8e325ab95df315442f95e5fdb32b698b0f99f9be6a4b25445f3", + "overlay_changed_pixels": 574932, + "method": "robust_se3_hermite", + "confidence": "MEDIUM" + }, + { + "number": 16, + "event": "data/motherboard/meta/2026-09-11/episode_007_seg04.parquet::right:24330-24330:branch_discontinuity", + "clip": "clips/event_16.mp4", + "poster": "clips/event_16.jpg", + "start_row": 241, + "end_row_exclusive": 361, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/motherboard/T_mocap_to_cam_left.json": "d7ebe46d2ef346b5bc73f8c58051b8312f40d0b2e9662f400a246a36d4917863", + "calibration/data/motherboard/T_mocap_to_cam_middle.json": "90dac3d8fc32747fe5f4324f5fc06971400020e7686f96d23a01568fe7ca789d", + "calibration/data/motherboard/T_mocap_to_cam_right.json": "5b3c9ce676ef0203bc3f8453add9d885faee537f916cd534921fba3713d5e4f9", + "calibration/data/motherboard/T_gel_to_rigid_left.json": "c4db75f5a4d9732acae9042d6787ba089b55bdbe17c455162e94a5cfad9746d3", + "calibration/data/motherboard/T_gel_to_rigid_right.json": "bca8f57e9a6b49de7fb5a15fe54ea785570e2842fde4a2619b460685831a2d7c" + }, + "sha256": "5c97431fb4bf2a323a677a086fff9f3e8ae57464a292975d57d05fe5f3777610", + "overlay_changed_pixels": 601787, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 17, + "event": "data/pushT/meta/2026-09-10/episode_004_seg02.parquet::right:10779-10781:branch_discontinuity", + "clip": "clips/event_17.mp4", + "poster": "clips/event_17.jpg", + "start_row": 1049, + "end_row_exclusive": 1169, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/pushT/T_mocap_to_cam_left.json": "d7ebe46d2ef346b5bc73f8c58051b8312f40d0b2e9662f400a246a36d4917863", + "calibration/data/pushT/T_mocap_to_cam_middle.json": "90dac3d8fc32747fe5f4324f5fc06971400020e7686f96d23a01568fe7ca789d", + "calibration/data/pushT/T_mocap_to_cam_right.json": "5b3c9ce676ef0203bc3f8453add9d885faee537f916cd534921fba3713d5e4f9", + "calibration/data/pushT/T_gel_to_rigid_left.json": "c4db75f5a4d9732acae9042d6787ba089b55bdbe17c455162e94a5cfad9746d3", + "calibration/data/pushT/T_gel_to_rigid_right.json": "bca8f57e9a6b49de7fb5a15fe54ea785570e2842fde4a2619b460685831a2d7c" + }, + "sha256": "bd356bfefccdd3461e7aa9839bb7073c02db13d92b79f610fa6366f25455d19d", + "overlay_changed_pixels": 598595, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 18, + "event": "data/rope/meta/2026-09-11/episode_000_seg00.parquet::left:816-819:branch_discontinuity", + "clip": "clips/event_18.mp4", + "poster": "clips/event_18.jpg", + "start_row": 757, + "end_row_exclusive": 877, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/rope/T_mocap_to_cam_left.json": "d7ebe46d2ef346b5bc73f8c58051b8312f40d0b2e9662f400a246a36d4917863", + "calibration/data/rope/T_mocap_to_cam_middle.json": "90dac3d8fc32747fe5f4324f5fc06971400020e7686f96d23a01568fe7ca789d", + "calibration/data/rope/T_mocap_to_cam_right.json": "5b3c9ce676ef0203bc3f8453add9d885faee537f916cd534921fba3713d5e4f9", + "calibration/data/rope/T_gel_to_rigid_left.json": "c4db75f5a4d9732acae9042d6787ba089b55bdbe17c455162e94a5cfad9746d3", + "calibration/data/rope/T_gel_to_rigid_right.json": "bca8f57e9a6b49de7fb5a15fe54ea785570e2842fde4a2619b460685831a2d7c" + }, + "sha256": "0640a766b42a4a642fd6ea67470375b315bb1e6a929dd3c05d0bc7a121d5fae7", + "overlay_changed_pixels": 594557, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 19, + "event": "data/toy/meta/2026-09-14/episode_000_seg03.parquet::right:15106-15107:branch_discontinuity", + "clip": "clips/event_19.mp4", + "poster": "clips/event_19.jpg", + "start_row": 1598, + "end_row_exclusive": 1718, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/toy/T_mocap_to_cam_left.json": "d7ebe46d2ef346b5bc73f8c58051b8312f40d0b2e9662f400a246a36d4917863", + "calibration/data/toy/T_mocap_to_cam_middle.json": "90dac3d8fc32747fe5f4324f5fc06971400020e7686f96d23a01568fe7ca789d", + "calibration/data/toy/T_mocap_to_cam_right.json": "5b3c9ce676ef0203bc3f8453add9d885faee537f916cd534921fba3713d5e4f9", + "calibration/data/toy/T_gel_to_rigid_left.json": "c4db75f5a4d9732acae9042d6787ba089b55bdbe17c455162e94a5cfad9746d3", + "calibration/data/toy/T_gel_to_rigid_right.json": "bca8f57e9a6b49de7fb5a15fe54ea785570e2842fde4a2619b460685831a2d7c" + }, + "sha256": "6c6092b69e3547d20eb5b0d224e0089948e40e96a4fab8d72559c533f68a1307", + "overlay_changed_pixels": 601839, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 20, + "event": "old_data/motherboard/meta/2026-05-11/episode_005.parquet::right:10454-10454:branch_discontinuity", + "clip": "clips/event_20.mp4", + "poster": "clips/event_20.jpg", + "start_row": 10394, + "end_row_exclusive": 10514, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/old_data/motherboard/T_mocap_to_cam_left.json": "01f4bd9d354b4711d80dcab4e970a7fc08179b404158ae891e12cb492565e75f", + "calibration/old_data/motherboard/T_mocap_to_cam_middle.json": "d4a4377b581d0b992f2f33cc33a70b87644d74825cb89a2aa33eb23e34f651f0", + "calibration/old_data/motherboard/T_mocap_to_cam_right.json": "9fbb9854587002ac07ceb193ec8577af6f733337363104b56a0d89bf8968ac24", + "calibration/old_data/motherboard/T_gel_to_rigid_left.json": "bbb744d64f07b211bbe568805451f508f4017d2e3353512b6e3b33edbc27dc75", + "calibration/old_data/motherboard/T_gel_to_rigid_right.json": "bede0bc030617c571c84b6eeb450e9161479df7bf87eec0f78668c55a199459f" + }, + "sha256": "992838df398b173d41fde0aa2534499b73c74d4eebfd5cdf5b7be3aa09ceb40d", + "overlay_changed_pixels": 558570, + "method": "endpoint_se3", + "confidence": "MEDIUM" + }, + { + "number": 21, + "event": "data/motherboard/meta/2026-09-11/episode_007_seg04.parquet::left:24381-24421:gap_with_discontinuity", + "clip": "clips/event_21.mp4", + "poster": "clips/event_21.jpg", + "start_row": 312, + "end_row_exclusive": 432, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/motherboard/T_mocap_to_cam_left.json": "d7ebe46d2ef346b5bc73f8c58051b8312f40d0b2e9662f400a246a36d4917863", + "calibration/data/motherboard/T_mocap_to_cam_middle.json": "90dac3d8fc32747fe5f4324f5fc06971400020e7686f96d23a01568fe7ca789d", + "calibration/data/motherboard/T_mocap_to_cam_right.json": "5b3c9ce676ef0203bc3f8453add9d885faee537f916cd534921fba3713d5e4f9", + "calibration/data/motherboard/T_gel_to_rigid_left.json": "c4db75f5a4d9732acae9042d6787ba089b55bdbe17c455162e94a5cfad9746d3", + "calibration/data/motherboard/T_gel_to_rigid_right.json": "bca8f57e9a6b49de7fb5a15fe54ea785570e2842fde4a2619b460685831a2d7c" + }, + "sha256": "b02244a52b65a38d258af8bb9f6fbeaf4d2ddd8501ef116c5aae6d0e96a7d6a2", + "overlay_changed_pixels": 608144, + "method": "unrepaired_ambiguous_branch", + "confidence": "LOW" + }, + { + "number": 22, + "event": "old_data/motherboard/meta/2026-05-11/episode_013.parquet::left:8050-8112:known_gap", + "clip": "clips/event_22.mp4", + "poster": "clips/event_22.jpg", + "start_row": 8021, + "end_row_exclusive": 8141, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/old_data/motherboard/T_mocap_to_cam_left.json": "01f4bd9d354b4711d80dcab4e970a7fc08179b404158ae891e12cb492565e75f", + "calibration/old_data/motherboard/T_mocap_to_cam_middle.json": "d4a4377b581d0b992f2f33cc33a70b87644d74825cb89a2aa33eb23e34f651f0", + "calibration/old_data/motherboard/T_mocap_to_cam_right.json": "9fbb9854587002ac07ceb193ec8577af6f733337363104b56a0d89bf8968ac24", + "calibration/old_data/motherboard/T_gel_to_rigid_left.json": "bbb744d64f07b211bbe568805451f508f4017d2e3353512b6e3b33edbc27dc75", + "calibration/old_data/motherboard/T_gel_to_rigid_right.json": "bede0bc030617c571c84b6eeb450e9161479df7bf87eec0f78668c55a199459f" + }, + "sha256": "42d5753fbfa35292ed0e557bef21b849c918d20fa27d95c90972e81d494551a7", + "overlay_changed_pixels": 549724, + "method": "unrepaired_ambiguous_branch", + "confidence": "LOW" + }, + { + "number": 23, + "event": "old_data/pushT/meta/2026-06-18/episode_001.parquet::left:9752-9758:branch_review", + "clip": "clips/event_23.mp4", + "poster": "clips/event_23.jpg", + "start_row": 9695, + "end_row_exclusive": 9815, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/old_data/pushT/T_mocap_to_cam_left.json": "87774724298ec0e9e4b9558376b99548999bf30a9a29246d6ee8d31e2ca61636", + "calibration/old_data/pushT/T_mocap_to_cam_middle.json": "d19e0f9275c648bf429d8e53de01b89cb8c3f7b9ae8122088d36590c33fe2b0a", + "calibration/old_data/pushT/T_mocap_to_cam_right.json": "81a0e70799d6e1c10ac5476c423be64d0e1fa3cec2842c9b349c6a23841efbf4", + "calibration/old_data/pushT/T_gel_to_rigid_left.json": "bbb744d64f07b211bbe568805451f508f4017d2e3353512b6e3b33edbc27dc75", + "calibration/old_data/pushT/T_gel_to_rigid_right.json": "bede0bc030617c571c84b6eeb450e9161479df7bf87eec0f78668c55a199459f" + }, + "sha256": "2a32968ee924c764648aea3155642c5bdc1325013c0cf411e2462693d43062d3", + "overlay_changed_pixels": 599452, + "method": "paired_body_branch_review", + "confidence": "MEDIUM" + }, + { + "number": 24, + "event": "data/validation/meta/2026-09-09/episode_003.parquet::left:6412-6439:branch_discontinuity", + "clip": "clips/event_24.mp4", + "poster": "clips/event_24.jpg", + "start_row": 6365, + "end_row_exclusive": 6485, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/data/validation/T_mocap_to_cam_left.json": "69e0b6d256f0eb531dceced8eca225bdc240d6e38127673f3105f02ca7cab2cd", + "calibration/data/validation/T_mocap_to_cam_middle.json": "f96b2f338829288a338c02910aaec6dc7d5f7ad0b11c2fbd50ba7ed388f70871", + "calibration/data/validation/T_mocap_to_cam_right.json": "2cdff94e9ecf444562ba89f3510469ea5e745ca244c901bcc9ea26b85c87807a", + "calibration/data/validation/T_gel_to_rigid_left.json": "bbb744d64f07b211bbe568805451f508f4017d2e3353512b6e3b33edbc27dc75", + "calibration/data/validation/T_gel_to_rigid_right.json": "bede0bc030617c571c84b6eeb450e9161479df7bf87eec0f78668c55a199459f" + }, + "sha256": "fdb290fd03baa45f9653eeea52214810d70206a21bf509c569f0acdd38c2a554", + "overlay_changed_pixels": 595921, + "method": "unrepaired_ambiguous_branch", + "confidence": "LOW" + }, + { + "number": 25, + "event": "old_data/motherboard/meta/2026-05-11/episode_015.parquet::left:708-768:known_gap", + "clip": "clips/event_25.mp4", + "poster": "clips/event_25.jpg", + "start_row": 678, + "end_row_exclusive": 798, + "frames": 120, + "seconds": 4.0, + "up_axis": "z", + "calibration_sha256": { + "calibration/old_data/motherboard/T_mocap_to_cam_left.json": "01f4bd9d354b4711d80dcab4e970a7fc08179b404158ae891e12cb492565e75f", + "calibration/old_data/motherboard/T_mocap_to_cam_middle.json": "d4a4377b581d0b992f2f33cc33a70b87644d74825cb89a2aa33eb23e34f651f0", + "calibration/old_data/motherboard/T_mocap_to_cam_right.json": "9fbb9854587002ac07ceb193ec8577af6f733337363104b56a0d89bf8968ac24", + "calibration/old_data/motherboard/T_gel_to_rigid_left.json": "bbb744d64f07b211bbe568805451f508f4017d2e3353512b6e3b33edbc27dc75", + "calibration/old_data/motherboard/T_gel_to_rigid_right.json": "bede0bc030617c571c84b6eeb450e9161479df7bf87eec0f78668c55a199459f" + }, + "sha256": "cc17124aaf2731a020478a372b933d57e20b9ca54c8ca2057b077001808ef4a2", + "overlay_changed_pixels": 586078, + "method": "unrepaired_ambiguous_branch", + "confidence": "LOW" + } + ] +} \ No newline at end of file