修复 Studio 失败测试并新增合并门禁

把丢失的 box 录像放回 apps/studio/tests/data/,修掉第 3 节 3–10 号与两处过时测试桩,
注册 timing 标记并让根目录收集零错误;新增 tools/gate.ps1 与可选的 pre-push 钩子。
验证:studio 524 通过 19 跳过、shared 467 通过 18 跳过、ui_check 632 项 0 失败、gate.ps1 退出码 0。
细节见 docs/test-repair-plan.zh.md。
This commit is contained in:
ykcheungab
2026-10-18 19:24:31 +08:00
parent dcabd547fa
commit 433b76e43c
38 changed files with 1036 additions and 171 deletions
+34
View File
@@ -0,0 +1,34 @@
# Test recordings
`box_short_20260930/` is one real recording, kept in the repository because several tests
must drive the real SDK chain over real footage. A synthetic clip cannot replace it: the
box chain's stitch probe looks for the lenslet grid in the image, does not converge on
generated pixels, and a synthetic 896² clip sent the chain into minutes of work where this
33-frame clip takes about two seconds.
## What it is
| | |
|---|---|
| Sensor | `box` (shipped bundle) |
| Source | `dist/OrisysStudio/outputs/recordings/20260930T015028Z_session0002_40cb8e7441434feab48bb646afdba011`, recorded 2026-09-30, `session_id` 2 |
| Length | 33 frames, frame ids **20…52**, 1.92 s of signal time |
| Files | `raw_0001.mp4`, `frames.csv`, `forces.csv`, `events.csv`, `session.json` (3.8 MB) |
| Not included | `preroll_0001.mp4` (3.5 MB, optional for every reader: `RecordingReader.preroll_segment()` answers `None` when the file is absent) |
`dist/` is build output and is not tracked, so the copy under it disappeared on
2026-10-14 when the studio was repackaged. That took 11 tests to `ERROR` and 4 to
`failed` without anyone noticing — see
[`docs/test-repair-plan.zh.md`](../../../docs/test-repair-plan.zh.md) §1 and §3 #1–#2.
The frame ids are deliberately not 0…32: a test that used the frame *index* would pass on
a 0-based recording, and real recordings start wherever the device's counter was.
## Rules
- **Do not replace it with a generated recording.** The chain's behaviour on these pixels
is part of what the tests defend.
- **Do not write into it from a test.** The tests that analyse it copy it into `tmp_path`
first, because a pass writes its result beside the recording.
- **If it goes missing, restore it or the tests fail.** They no longer skip on a missing
input: a skip is how this went unnoticed.
@@ -0,0 +1,3 @@
at,t_rel_s,frame_id,kind,detail
2026-09-30T01:50:28.848+00:00,,-1,record_started,mode=video_data
2026-09-30T01:50:30.825+00:00,,-1,record_stopped,
1 at t_rel_s frame_id kind detail
2 2026-09-30T01:50:28.848+00:00 -1 record_started mode=video_data
3 2026-09-30T01:50:30.825+00:00 -1 record_stopped
@@ -0,0 +1,34 @@
session_id,frame_id,t_rel_s,FN_raw,FX_raw,FY_raw,FN_N,FX_N,FY_N,valid,calibration_id
2,20,0.0,13567.7392578125,1180.1070556640625,9125.2607421875,0.555386962890625,0.006123639892578124,0.276258865234375,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,21,0.064133,11343.3232421875,2028.0238037109375,7816.4375,0.444166162109375,0.034952809326171876,0.23175887499999998,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,22,0.112021,16884.728515625,745.5536499023438,7191.43896484375,0.72123642578125,0.0,0.2105089248046875,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,23,0.17623,14818.259765625,2178.03466796875,9171.318359375,0.61791298828125,0.0400531787109375,0.27782482421875,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,24,0.24043,14969.4208984375,-1287.072509765625,11873.1181640625,0.625471044921875,-0.00976046533203125,0.36968601757812497,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,25,0.304304,14659.830078125,-141.17251586914062,2469.820556640625,0.60999150390625,-0.0,0.049973898925781246,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,26,0.352255,15476.34375,-3281.966552734375,15066.1357421875,0.6508171875,-0.07758686279296875,0.478248615234375,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,27,0.416172,11016.5068359375,-3127.916748046875,13734.294921875,0.427825341796875,-0.07234916943359375,0.43296602734375,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,28,0.480077,14330.064453125,273.25970458984375,5539.169921875,0.59350322265625,0.0,0.15433177734375,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,29,0.543786,14844.3466796875,2567.879150390625,5841.8525390625,0.619217333984375,0.05330789111328125,0.164622986328125,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,30,0.591816,16986.365234375,-1623.703125,5377.94091796875,0.72631826171875,-0.02120590625,0.1488499912109375,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,31,0.656365,13733.6103515625,-1030.4215087890625,9520.9345703125,0.563680517578125,-0.0010343312988281249,0.289711775390625,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,32,0.720031,17051.982421875,-2590.688720703125,10953.798828125,0.72959912109375,-0.05408341650390625,0.33842916015625,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,33,0.784173,16303.94921875,2727.433837890625,6891.0400390625,0.6921974609375,0.05873275048828125,0.20029536132812498,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,34,0.831679,17633.34375,-208.40782165527344,5174.18798828125,0.7586671875,-0.0,0.14192239160156248,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,35,0.896141,14191.8671875,-971.9476928710938,11894.728515625,0.586593359375,-0.0,0.37042076953124997,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,36,0.960091,15828.78125,-1548.9967041015625,9286.84765625,0.6684390625000001,-0.018665887939453125,0.2817528203125,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,37,1.024524,18615.650390625,-3690.62451171875,10522.7822265625,0.80778251953125,-0.0914812333984375,0.323774595703125,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,38,1.071701,15312.724609375,1154.6263427734375,11247.951171875,0.6426362304687501,0.005257295654296875,0.34843033984375,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,39,1.135903,12159.138671875,-82.20235443115234,10962.3251953125,0.48495693359375003,-0.0,0.33871905664062496,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,40,1.199965,15671.615234375,-540.1160888671875,17301.103515625,0.66058076171875,-0.0,0.55423751953125,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,41,1.264015,18193.279296875,-280.51025390625,7286.34765625,0.78666396484375,-0.0,0.2137358203125,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,42,1.311786,14463.1240234375,23.800241470336914,14572.9287109375,0.6001562011718751,0.0,0.461479576171875,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,43,1.376278,14139.1728515625,549.9257202148438,14745.4931640625,0.583958642578125,0.0,0.467346767578125,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,44,1.439864,14622.09375,535.4642944335938,11325.8857421875,0.6081046875,0.0,0.351080115234375,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,45,1.503909,16870.396484375,-5440.37158203125,13050.87890625,0.72051982421875,-0.15097263378906248,0.4097298828125,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,46,1.551771,17459.4765625,-322.2771911621094,9053.3154296875,0.749973828125,-0.0,0.273812724609375,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,47,1.616042,21696.408203125,-1986.04833984375,11181.533203125,0.96182041015625,-0.0335256435546875,0.34617212890625,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,48,1.680262,15386.84765625,-4424.57763671875,1783.9827880859375,0.6463423828125,-0.11643563964843749,0.026655414794921874,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,49,1.744307,15400.05859375,-2761.5791015625,15228.455078125,0.6470029296875,-0.059893689453124996,0.48376747265625,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,50,1.792308,14120.4208984375,116.24051666259766,9754.70703125,0.583021044921875,0.0,0.2976600390625,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,51,1.856446,15246.4052734375,-2575.3466796875,12753.658203125,0.639320263671875,-0.053561787109375,0.39962437890624997,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
2,52,1.920255,17219.171875,-6285.30517578125,13345.544921875,0.73795859375,-0.1797003759765625,0.41974852734375,1,171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
1 session_id frame_id t_rel_s FN_raw FX_raw FY_raw FN_N FX_N FY_N valid calibration_id
2 2 20 0.0 13567.7392578125 1180.1070556640625 9125.2607421875 0.555386962890625 0.006123639892578124 0.276258865234375 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
3 2 21 0.064133 11343.3232421875 2028.0238037109375 7816.4375 0.444166162109375 0.034952809326171876 0.23175887499999998 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
4 2 22 0.112021 16884.728515625 745.5536499023438 7191.43896484375 0.72123642578125 0.0 0.2105089248046875 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
5 2 23 0.17623 14818.259765625 2178.03466796875 9171.318359375 0.61791298828125 0.0400531787109375 0.27782482421875 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
6 2 24 0.24043 14969.4208984375 -1287.072509765625 11873.1181640625 0.625471044921875 -0.00976046533203125 0.36968601757812497 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
7 2 25 0.304304 14659.830078125 -141.17251586914062 2469.820556640625 0.60999150390625 -0.0 0.049973898925781246 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
8 2 26 0.352255 15476.34375 -3281.966552734375 15066.1357421875 0.6508171875 -0.07758686279296875 0.478248615234375 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
9 2 27 0.416172 11016.5068359375 -3127.916748046875 13734.294921875 0.427825341796875 -0.07234916943359375 0.43296602734375 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
10 2 28 0.480077 14330.064453125 273.25970458984375 5539.169921875 0.59350322265625 0.0 0.15433177734375 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
11 2 29 0.543786 14844.3466796875 2567.879150390625 5841.8525390625 0.619217333984375 0.05330789111328125 0.164622986328125 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
12 2 30 0.591816 16986.365234375 -1623.703125 5377.94091796875 0.72631826171875 -0.02120590625 0.1488499912109375 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
13 2 31 0.656365 13733.6103515625 -1030.4215087890625 9520.9345703125 0.563680517578125 -0.0010343312988281249 0.289711775390625 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
14 2 32 0.720031 17051.982421875 -2590.688720703125 10953.798828125 0.72959912109375 -0.05408341650390625 0.33842916015625 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
15 2 33 0.784173 16303.94921875 2727.433837890625 6891.0400390625 0.6921974609375 0.05873275048828125 0.20029536132812498 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
16 2 34 0.831679 17633.34375 -208.40782165527344 5174.18798828125 0.7586671875 -0.0 0.14192239160156248 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
17 2 35 0.896141 14191.8671875 -971.9476928710938 11894.728515625 0.586593359375 -0.0 0.37042076953124997 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
18 2 36 0.960091 15828.78125 -1548.9967041015625 9286.84765625 0.6684390625000001 -0.018665887939453125 0.2817528203125 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
19 2 37 1.024524 18615.650390625 -3690.62451171875 10522.7822265625 0.80778251953125 -0.0914812333984375 0.323774595703125 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
20 2 38 1.071701 15312.724609375 1154.6263427734375 11247.951171875 0.6426362304687501 0.005257295654296875 0.34843033984375 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
21 2 39 1.135903 12159.138671875 -82.20235443115234 10962.3251953125 0.48495693359375003 -0.0 0.33871905664062496 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
22 2 40 1.199965 15671.615234375 -540.1160888671875 17301.103515625 0.66058076171875 -0.0 0.55423751953125 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
23 2 41 1.264015 18193.279296875 -280.51025390625 7286.34765625 0.78666396484375 -0.0 0.2137358203125 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
24 2 42 1.311786 14463.1240234375 23.800241470336914 14572.9287109375 0.6001562011718751 0.0 0.461479576171875 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
25 2 43 1.376278 14139.1728515625 549.9257202148438 14745.4931640625 0.583958642578125 0.0 0.467346767578125 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
26 2 44 1.439864 14622.09375 535.4642944335938 11325.8857421875 0.6081046875 0.0 0.351080115234375 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
27 2 45 1.503909 16870.396484375 -5440.37158203125 13050.87890625 0.72051982421875 -0.15097263378906248 0.4097298828125 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
28 2 46 1.551771 17459.4765625 -322.2771911621094 9053.3154296875 0.749973828125 -0.0 0.273812724609375 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
29 2 47 1.616042 21696.408203125 -1986.04833984375 11181.533203125 0.96182041015625 -0.0335256435546875 0.34617212890625 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
30 2 48 1.680262 15386.84765625 -4424.57763671875 1783.9827880859375 0.6463423828125 -0.11643563964843749 0.026655414794921874 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
31 2 49 1.744307 15400.05859375 -2761.5791015625 15228.455078125 0.6470029296875 -0.059893689453124996 0.48376747265625 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
32 2 50 1.792308 14120.4208984375 116.24051666259766 9754.70703125 0.583021044921875 0.0 0.2976600390625 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
33 2 51 1.856446 15246.4052734375 -2575.3466796875 12753.658203125 0.639320263671875 -0.053561787109375 0.39962437890624997 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
34 2 52 1.920255 17219.171875 -6285.30517578125 13345.544921875 0.73795859375 -0.1797003759765625 0.41974852734375 1 171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348
@@ -0,0 +1,34 @@
frame_id,t_rel_s,acquired_at,segment,segment_frame,in_video,dropped
20,0.0,2026-09-30T01:50:28.870+00:00,1,1,1,0
21,0.064133,2026-09-30T01:50:28.935+00:00,1,2,1,0
22,0.112021,2026-09-30T01:50:28.983+00:00,1,3,1,0
23,0.17623,2026-09-30T01:50:29.048+00:00,1,4,1,0
24,0.24043,2026-09-30T01:50:29.111+00:00,1,5,1,0
25,0.304304,2026-09-30T01:50:29.175+00:00,1,6,1,0
26,0.352255,2026-09-30T01:50:29.231+00:00,1,7,1,0
27,0.416172,2026-09-30T01:50:29.287+00:00,1,8,1,0
28,0.480077,2026-09-30T01:50:29.351+00:00,1,9,1,0
29,0.543786,2026-09-30T01:50:29.414+00:00,1,10,1,0
30,0.591816,2026-09-30T01:50:29.462+00:00,1,11,1,0
31,0.656365,2026-09-30T01:50:29.526+00:00,1,12,1,0
32,0.720031,2026-09-30T01:50:29.590+00:00,1,13,1,0
33,0.784173,2026-09-30T01:50:29.654+00:00,1,14,1,0
34,0.831679,2026-09-30T01:50:29.702+00:00,1,15,1,0
35,0.896141,2026-09-30T01:50:29.766+00:00,1,16,1,0
36,0.960091,2026-09-30T01:50:29.830+00:00,1,17,1,0
37,1.024524,2026-09-30T01:50:29.895+00:00,1,18,1,0
38,1.071701,2026-09-30T01:50:29.942+00:00,1,19,1,0
39,1.135903,2026-09-30T01:50:30.006+00:00,1,20,1,0
40,1.199965,2026-09-30T01:50:30.070+00:00,1,21,1,0
41,1.264015,2026-09-30T01:50:30.134+00:00,1,22,1,0
42,1.311786,2026-09-30T01:50:30.182+00:00,1,23,1,0
43,1.376278,2026-09-30T01:50:30.247+00:00,1,24,1,0
44,1.439864,2026-09-30T01:50:30.310+00:00,1,25,1,0
45,1.503909,2026-09-30T01:50:30.373+00:00,1,26,1,0
46,1.551771,2026-09-30T01:50:30.422+00:00,1,27,1,0
47,1.616042,2026-09-30T01:50:30.486+00:00,1,28,1,0
48,1.680262,2026-09-30T01:50:30.552+00:00,1,29,1,0
49,1.744307,2026-09-30T01:50:30.615+00:00,1,30,1,0
50,1.792308,2026-09-30T01:50:30.664+00:00,1,31,1,0
51,1.856446,2026-09-30T01:50:30.728+00:00,1,32,1,0
52,1.920255,2026-09-30T01:50:30.792+00:00,1,33,1,0
1 frame_id t_rel_s acquired_at segment segment_frame in_video dropped
2 20 0.0 2026-09-30T01:50:28.870+00:00 1 1 1 0
3 21 0.064133 2026-09-30T01:50:28.935+00:00 1 2 1 0
4 22 0.112021 2026-09-30T01:50:28.983+00:00 1 3 1 0
5 23 0.17623 2026-09-30T01:50:29.048+00:00 1 4 1 0
6 24 0.24043 2026-09-30T01:50:29.111+00:00 1 5 1 0
7 25 0.304304 2026-09-30T01:50:29.175+00:00 1 6 1 0
8 26 0.352255 2026-09-30T01:50:29.231+00:00 1 7 1 0
9 27 0.416172 2026-09-30T01:50:29.287+00:00 1 8 1 0
10 28 0.480077 2026-09-30T01:50:29.351+00:00 1 9 1 0
11 29 0.543786 2026-09-30T01:50:29.414+00:00 1 10 1 0
12 30 0.591816 2026-09-30T01:50:29.462+00:00 1 11 1 0
13 31 0.656365 2026-09-30T01:50:29.526+00:00 1 12 1 0
14 32 0.720031 2026-09-30T01:50:29.590+00:00 1 13 1 0
15 33 0.784173 2026-09-30T01:50:29.654+00:00 1 14 1 0
16 34 0.831679 2026-09-30T01:50:29.702+00:00 1 15 1 0
17 35 0.896141 2026-09-30T01:50:29.766+00:00 1 16 1 0
18 36 0.960091 2026-09-30T01:50:29.830+00:00 1 17 1 0
19 37 1.024524 2026-09-30T01:50:29.895+00:00 1 18 1 0
20 38 1.071701 2026-09-30T01:50:29.942+00:00 1 19 1 0
21 39 1.135903 2026-09-30T01:50:30.006+00:00 1 20 1 0
22 40 1.199965 2026-09-30T01:50:30.070+00:00 1 21 1 0
23 41 1.264015 2026-09-30T01:50:30.134+00:00 1 22 1 0
24 42 1.311786 2026-09-30T01:50:30.182+00:00 1 23 1 0
25 43 1.376278 2026-09-30T01:50:30.247+00:00 1 24 1 0
26 44 1.439864 2026-09-30T01:50:30.310+00:00 1 25 1 0
27 45 1.503909 2026-09-30T01:50:30.373+00:00 1 26 1 0
28 46 1.551771 2026-09-30T01:50:30.422+00:00 1 27 1 0
29 47 1.616042 2026-09-30T01:50:30.486+00:00 1 28 1 0
30 48 1.680262 2026-09-30T01:50:30.552+00:00 1 29 1 0
31 49 1.744307 2026-09-30T01:50:30.615+00:00 1 30 1 0
32 50 1.792308 2026-09-30T01:50:30.664+00:00 1 31 1 0
33 51 1.856446 2026-09-30T01:50:30.728+00:00 1 32 1 0
34 52 1.920255 2026-09-30T01:50:30.792+00:00 1 33 1 0
@@ -0,0 +1,167 @@
{
"format_version": "1.1",
"session_id": 2,
"calibration_id": "171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348",
"started_at": "2026-09-30T01:50:28+00:00",
"ended_at": "2026-09-30T01:50:30+00:00",
"video": {
"video": true,
"lossless_frames": false,
"fps": 30.0,
"codec": "mp4v",
"segment_seconds": 300.0,
"max_queue": 2048,
"max_queue_bytes": 536870912,
"preroll_frames": 30,
"preroll_bytes": 201326592,
"lossy_note": "MP4 is a lossy container: this is the pre-processing camera image, not a lossless record of the raw sensor data."
},
"events": [
{
"at": "2026-09-30T01:50:28.848+00:00",
"mono_t": null,
"frame_id": -1,
"kind": "record_started",
"detail": "mode=video_data"
},
{
"at": "2026-09-30T01:50:30.825+00:00",
"mono_t": null,
"frame_id": -1,
"kind": "record_stopped",
"detail": ""
}
],
"stats": {
"frames": 33,
"video_frames": 33,
"segments": 1,
"dropped_data": 0,
"dropped_video": 0,
"dropped_gaps": 0,
"unrecorded_gaps": 0,
"resampled_video": 0,
"write_errors": 0,
"failed": false,
"last_error": "",
"duration_s": 1.920255,
"bytes_written": 7487099,
"rejected_after_failure": 0
},
"calibration_snapshots": [],
"preroll_frames": 30,
"preroll_segment": "preroll_0001.mp4",
"files": {
"forces": "forces.csv",
"frames": "frames.csv",
"events": "events.csv",
"video": "raw_%04d.mp4",
"lossless_frames": null
},
"device": {
"sensor_type": "box",
"config_ref": "D:\\orisys_ws\\orisys-app\\dist\\OrisysStudio\\config\\sensors\\box\\sensor.json",
"config_sha256": "27343dbbfc768c4d43ea48917ae2f9fbc9f91ba285b049b4c58a04673e3bec1e",
"frame": {
"width": 1920,
"height": 1080,
"fps": 30.0,
"measured_fps": 16.6642954760577
}
},
"versions": {
"app": "0.1.0",
"shared": "0.1.0",
"shared_api": "0.1",
"sdk": "0.5.3"
},
"capture": {
"requested": {
"width": 1920,
"height": 1080,
"fps": 30.0,
"fourcc": "MJPG"
},
"negotiated": {
"width": 1920,
"height": 1080,
"fps": 30.00003000003,
"fourcc": "MJPG",
"backend": "DSHOW"
},
"dropped_frames": 18,
"measured_fps": 16.6642954760577
},
"calibration": {
"config_ref": "D:\\orisys_ws\\orisys-app\\dist\\OrisysStudio\\config\\sensors\\box\\sensor.json",
"force_calibrated": true,
"version": "171e598ede7eaca213139b615dae0c5f86756256f0645b1dc5002fa3b810c348",
"sn": "",
"device_sn": ""
},
"depth": {
"stored": false,
"replay": "none",
"quantity": "relative deformation / algorithm response, not a calibrated length",
"method": "re-run the SDK over raw_*.mp4 with this config_ref",
"config_sha256": "27343dbbfc768c4d43ea48917ae2f9fbc9f91ba285b049b4c58a04673e3bec1e",
"sdk_version": "0.5.3"
},
"conventions": {
"axis_order": [
"FN",
"FX",
"FY"
],
"force_unit": "N when calibrated, otherwise raw counts",
"time_base": "t_rel_s is relative to the first recorded frame; an event that predates it has no relative base and is left empty",
"frame_id": "monotonic per acquisition session"
},
"filter": {
"measurement": {
"flow_ema_alpha": 1.0,
"flow_ema_applied": false,
"hhd_downsample": 0,
"dis_mode": 3
},
"readout": {
"force_median_window": 1,
"force_median_applied": false,
"force_lowpass_cutoff_hz": 0.0,
"force_lowpass_order": 2,
"force_lowpass_sample_rate_hz": 30.0,
"force_lowpass_rate_auto": true,
"force_lowpass_applied": false,
"sample_rate_source": "config"
},
"describe": "none",
"source": "sensor.filters_state",
"show_unfiltered": false
},
"recording_mode": "video_data",
"video_config": {
"video": true,
"lossless_frames": false,
"fps": 30.0,
"codec": "mp4v",
"segment_seconds": 300.0,
"max_queue": 2048,
"max_queue_bytes": 536870912,
"preroll_frames": 30,
"preroll_bytes": 201326592,
"lossy_note": "MP4 is a lossy container: this is the pre-processing camera image, not a lossless record of the raw sensor data."
},
"visualization3d": {
"block_version": 1,
"enabled": false,
"available": false,
"reason": "此传感器类型没有三维场景",
"scene": {
"path": "",
"keys": "{'verify_key': False, 'content_key': False, 'require_signature': False}"
},
"gl": {},
"display": {},
"stream": {}
}
}