arbeiten am callibration

This commit is contained in:
chk
2026-06-13 00:00:18 +02:00
parent e0e4212a90
commit 1762a771cf
51 changed files with 30343 additions and 5 deletions

View File

@@ -0,0 +1,20 @@
marker_id,link,set,num_cameras,x_mm,y_mm,z_mm,nx,ny,nz,model_x_mm,model_y_mm,model_z_mm,dist_to_model_mm,delta_z_mm,edge_length_mm
0,Board,rail,2,493.98,-96.39,-8.97,-0.00886,0.04951,0.99873,494.12,-100.21,-9.76,3.908,0.794,23.35
50,Board,A0,2,576.77,208.61,-25.71,0.06252,0.0994,0.99308,578.55,209.43,-26.11,1.995,0.397,25.08
55,Board,A0,2,277.19,-258.42,-29.07,0.00488,-0.03269,0.99945,277.76,-258.03,-29.52,0.823,0.45,23.98
62,Board,A0,2,399.27,-174.12,-27.58,0.01876,0.03279,0.99929,400.76,-173.44,-28.11,1.717,0.526,23.1
79,Board,A0,2,306.77,-156.23,-28.44,-0.02974,0.00922,0.99952,308.77,-155.27,-29.18,2.337,0.74,23.06
101,Board,A0,2,123.4,305.1,-30.43,-0.05779,0.03321,0.99778,125.05,306.96,-31.31,2.64,0.882,23.2
197,unknown,,2,133.85,89.2,297.08,-0.99892,0.04634,-0.00288,,,,,,24.59
201,unknown,,3,82.03,56.25,90.01,-0.99863,-0.01609,0.04969,,,,,,24.11
204,unknown,,3,117.59,128.98,111.27,0.02638,0.04121,0.9988,,,,,,24.3
211,Board,rail,2,321.33,-1.22,-9.18,0.05719,-0.04545,0.99733,321.45,-2.7,-10.7,2.127,1.522,22.73
215,Board,rail,2,322.26,-90.67,-11.82,0.01124,-0.02807,0.99954,318.76,-92.52,-11.4,3.976,-0.422,24.6
218,unknown,,2,237.95,75.51,408.78,-0.90327,0.41967,0.08937,,,,,,24.53
219,unknown,,3,245.24,50.43,509.71,-0.91875,0.39116,0.05377,,,,,,24.43
242,unknown,,2,187.54,55.65,288.93,0.02295,-0.99479,-0.09934,,,,,,23.94
camera_id,x_mm,y_mm,z_mm,dir_x,dir_y,dir_z
cam0,-718.06,-492.09,666.56,0.85634,0.40766,-0.31702
cam1,-262.59,-550.95,834.39,0.50249,0.63431,-0.5875
cam2,-583.76,-45.55,423.16,0.98358,-0.02341,-0.17892
1 marker_id link set num_cameras x_mm y_mm z_mm nx ny nz model_x_mm model_y_mm model_z_mm dist_to_model_mm delta_z_mm edge_length_mm
2 0 Board rail 2 493.98 -96.39 -8.97 -0.00886 0.04951 0.99873 494.12 -100.21 -9.76 3.908 0.794 23.35
3 50 Board A0 2 576.77 208.61 -25.71 0.06252 0.0994 0.99308 578.55 209.43 -26.11 1.995 0.397 25.08
4 55 Board A0 2 277.19 -258.42 -29.07 0.00488 -0.03269 0.99945 277.76 -258.03 -29.52 0.823 0.45 23.98
5 62 Board A0 2 399.27 -174.12 -27.58 0.01876 0.03279 0.99929 400.76 -173.44 -28.11 1.717 0.526 23.1
6 79 Board A0 2 306.77 -156.23 -28.44 -0.02974 0.00922 0.99952 308.77 -155.27 -29.18 2.337 0.74 23.06
7 101 Board A0 2 123.4 305.1 -30.43 -0.05779 0.03321 0.99778 125.05 306.96 -31.31 2.64 0.882 23.2
8 197 unknown 2 133.85 89.2 297.08 -0.99892 0.04634 -0.00288 24.59
9 201 unknown 3 82.03 56.25 90.01 -0.99863 -0.01609 0.04969 24.11
10 204 unknown 3 117.59 128.98 111.27 0.02638 0.04121 0.9988 24.3
11 211 Board rail 2 321.33 -1.22 -9.18 0.05719 -0.04545 0.99733 321.45 -2.7 -10.7 2.127 1.522 22.73
12 215 Board rail 2 322.26 -90.67 -11.82 0.01124 -0.02807 0.99954 318.76 -92.52 -11.4 3.976 -0.422 24.6
13 218 unknown 2 237.95 75.51 408.78 -0.90327 0.41967 0.08937 24.53
14 219 unknown 3 245.24 50.43 509.71 -0.91875 0.39116 0.05377 24.43
15 242 unknown 2 187.54 55.65 288.93 0.02295 -0.99479 -0.09934 23.94
16 camera_id x_mm y_mm z_mm dir_x dir_y dir_z
17 cam0 -718.06 -492.09 666.56 0.85634 0.40766 -0.31702
18 cam1 -262.59 -550.95 834.39 0.50249 0.63431 -0.5875
19 cam2 -583.76 -45.55 423.16 0.98358 -0.02341 -0.17892

View File

@@ -0,0 +1,683 @@
{
"schema_version": "1.1",
"stage": "corner_marker_poses",
"created_utc": "2026-06-12T19:00:31Z",
"summary": {
"num_cameras": 3,
"num_markers": 14
},
"cameras": [
{
"camera_id": "cam0",
"position_m": [
-0.7180634917282753,
-0.49208966903674867,
0.6665606327170663
],
"position_mm": [
-718.0634917282754,
-492.08966903674866,
666.5606327170664
],
"direction": [
0.8563353419303894,
0.40766438841819763,
-0.3170166611671448
]
},
{
"camera_id": "cam1",
"position_m": [
-0.26258841285717693,
-0.5509450542524021,
0.8343948303300692
],
"position_mm": [
-262.58841285717693,
-550.9450542524021,
834.3948303300692
],
"direction": [
0.5024934411048889,
0.6343097686767578,
-0.5874959230422974
]
},
{
"camera_id": "cam2",
"position_m": [
-0.5837626291434723,
-0.04555215829402515,
0.4231631282080641
],
"position_mm": [
-583.7626291434723,
-45.55215829402515,
423.1631282080641
],
"direction": [
0.9835845232009888,
-0.023413510993123055,
-0.17892251908779144
]
}
],
"markers": [
{
"marker_id": 0,
"link": "Board",
"set": "rail",
"position_m": [
0.49397948741994885,
-0.09638593339821536,
-0.00896644769861376
],
"position_mm": [
493.97948741994884,
-96.38593339821536,
-8.96644769861376
],
"normal": [
-0.008863367653711178,
0.049510108714268405,
0.9987342939185259
],
"corners_m": [
[
0.48294592590238633,
-0.08480381756456407,
-0.009607839817976846
],
[
0.5066424602465543,
-0.08438346867471515,
-0.009478690251174529
],
[
0.5043368833035816,
-0.1083683622695555,
-0.008249155572841175
],
[
0.48199268022727293,
-0.10798808508402676,
-0.00853010515246249
]
],
"num_cameras": 2,
"edge_length_mm": 23.35137293252651
},
{
"marker_id": 50,
"link": "Board",
"set": "A0",
"position_m": [
0.5767732806886829,
0.2086133709108033,
-0.025712509060081008
],
"position_mm": [
576.7732806886829,
208.6133709108033,
-25.712509060081008
],
"normal": [
0.06252187536281394,
0.09939554354389576,
0.9930818400437752
],
"corners_m": [
[
0.5643507669245819,
0.19626406377909925,
-0.02476468444628229
],
[
0.5645101471299887,
0.2193255413440415,
-0.025146028191533786
],
[
0.5920522502309562,
0.22261533365758898,
-0.028821142084045667
],
[
0.5861799584692048,
0.19624854486248342,
-0.024118181518462293
]
],
"num_cameras": 2,
"edge_length_mm": 25.075844739930425
},
{
"marker_id": 55,
"link": "Board",
"set": "A0",
"position_m": [
0.27719031988849724,
-0.258417990253453,
-0.029070069741005202
],
"position_mm": [
277.19031988849724,
-258.417990253453,
-29.070069741005202
],
"normal": [
0.00487700345450989,
-0.03269370394162277,
0.9994535189591771
],
"corners_m": [
[
0.2645343806546454,
-0.2699484929988187,
-0.029194956078738163
],
[
0.26579230672428167,
-0.24628474461149416,
-0.028844010837047903
],
[
0.28776760761357834,
-0.2467774779248151,
-0.02851569903501853
],
[
0.2906669845614836,
-0.2706612454786842,
-0.029725613013216204
]
],
"num_cameras": 2,
"edge_length_mm": 23.980063556129757
},
{
"marker_id": 62,
"link": "Board",
"set": "A0",
"position_m": [
0.3992713257860654,
-0.17411573697686158,
-0.027584020558572106
],
"position_mm": [
399.2713257860654,
-174.1157369768616,
-27.584020558572107
],
"normal": [
0.01876023464695634,
0.03279209442496106,
0.999286111251035
],
"corners_m": [
[
0.3869459712947692,
-0.1855737663818189,
-0.027117643355740205
],
[
0.38902232597781217,
-0.16187342134192415,
-0.02765527100417573
],
[
0.41180681962930116,
-0.16288268879013573,
-0.028328541925806704
],
[
0.4093101862423789,
-0.18613307139356752,
-0.027234625948565776
]
],
"num_cameras": 2,
"edge_length_mm": 23.0987748549114
},
{
"marker_id": 79,
"link": "Board",
"set": "A0",
"position_m": [
0.3067741304225983,
-0.1562340884302455,
-0.02843974476716067
],
"position_mm": [
306.7741304225983,
-156.2340884302455,
-28.439744767160672
],
"normal": [
-0.02974243725509544,
0.009220417022036133,
0.9995150680885538
],
"corners_m": [
[
0.2952423978153188,
-0.16816777476909714,
-0.028256859473922556
],
[
0.2966220434877867,
-0.14376012438046695,
-0.029299995382111966
],
[
0.3175952294319708,
-0.14434994104859644,
-0.02778165176791071
],
[
0.31763685095531696,
-0.16865851352282143,
-0.02842047244469744
]
],
"num_cameras": 2,
"edge_length_mm": 23.05565714285999
},
{
"marker_id": 101,
"link": "Board",
"set": "A0",
"position_m": [
0.12339811349186083,
0.30509860635852715,
-0.030428357916216005
],
"position_mm": [
123.39811349186084,
305.09860635852715,
-30.428357916216004
],
"normal": [
-0.0577875306393219,
0.03321241623035066,
0.9977762959254702
],
"corners_m": [
[
0.11127995819078222,
0.2941539901568767,
-0.03105712020908271
],
[
0.11269990571162847,
0.3172775128248137,
-0.03114708852651905
],
[
0.13498045929634425,
0.31637239656451716,
-0.030431103325512222
],
[
0.13463213076868843,
0.2925905258879012,
-0.029078119603750053
]
],
"num_cameras": 2,
"edge_length_mm": 23.197130190212892
},
{
"marker_id": 197,
"link": "unknown",
"set": "",
"position_m": [
0.13385492909696134,
0.08919550802550008,
0.2970779702669671
],
"position_mm": [
133.85492909696134,
89.19550802550008,
297.0779702669671
],
"normal": [
-0.9989216891364574,
0.046337649740720244,
-0.0028777055570595083
],
"corners_m": [
[
0.13440166542920987,
0.0997384908806034,
0.31041993615153585
],
[
0.13306660708725362,
0.07488827850029012,
0.30793984917077233
],
[
0.13351746433034806,
0.07900788192034877,
0.2834243232312586
],
[
0.13443397954103384,
0.10314738080075801,
0.28652777251430167
]
],
"num_cameras": 2,
"edge_length_mm": 24.590558027936563
},
{
"marker_id": 201,
"link": "unknown",
"set": "",
"position_m": [
0.08202988082522256,
0.05625171974699189,
0.09001427195484893
],
"position_mm": [
82.02988082522256,
56.25171974699189,
90.01427195484892
],
"normal": [
-0.9986349216896542,
-0.01608660078099279,
0.04969420949377586
],
"corners_m": [
[
0.08256527642569832,
0.06838994843172955,
0.10191632603441497
],
[
0.08268079655262271,
0.04357718147943237,
0.10181636812870559
],
[
0.08177929151157849,
0.04445724017499826,
0.07825634629193905
],
[
0.08109415881099068,
0.0685825089018074,
0.07806804736433609
]
],
"num_cameras": 3,
"edge_length_mm": 24.10925872200067
},
{
"marker_id": 204,
"link": "unknown",
"set": "",
"position_m": [
0.11758749736517302,
0.12898422867274198,
0.11127128421538723
],
"position_mm": [
117.58749736517302,
128.98422867274198,
111.27128421538724
],
"normal": [
0.026383974472787525,
0.041207800866848165,
0.9988021841379491
],
"corners_m": [
[
0.10535645037838809,
0.1409265086803713,
0.1111989209985799
],
[
0.1298675811219171,
0.14158322510701732,
0.11033165454610783
],
[
0.12931795573276098,
0.11681566885905771,
0.11156304469459387
],
[
0.1058080022276259,
0.11661151204452154,
0.11199151662226733
]
],
"num_cameras": 3,
"edge_length_mm": 24.296585901570836
},
{
"marker_id": 211,
"link": "Board",
"set": "rail",
"position_m": [
0.3213317392761455,
-0.001218501271978103,
-0.009178107707792899
],
"position_mm": [
321.3317392761455,
-1.2185012719781032,
-9.178107707792899
],
"normal": [
0.05718886361581609,
-0.04545053534803469,
0.9973282722929842
],
"corners_m": [
[
0.30917590545870877,
0.009285174127548928,
-0.007552692908546776
],
[
0.33326444823911944,
0.010273710088338434,
-0.00976507135580152
],
[
0.3327320875965143,
-0.012339779204488,
-0.009880572791528378
],
[
0.31015451581023945,
-0.012093110099311775,
-0.00951409377529492
]
],
"num_cameras": 2,
"edge_length_mm": 22.72560607161495
},
{
"marker_id": 215,
"link": "Board",
"set": "rail",
"position_m": [
0.3222566522456536,
-0.09067427418482966,
-0.011821807446382464
],
"position_mm": [
322.2566522456536,
-90.67427418482967,
-11.821807446382465
],
"normal": [
0.01123582722128988,
-0.02807398884589295,
0.9995426991064134
],
"corners_m": [
[
0.3101718246479266,
-0.07812135858376335,
-0.011551388012469202
],
[
0.3326391024229767,
-0.07878459384415874,
-0.011389013835539996
],
[
0.33644903504441404,
-0.1034400536271514,
-0.012521295546534639
],
[
0.3097666468672971,
-0.10235109068424515,
-0.011825532390986021
]
],
"num_cameras": 2,
"edge_length_mm": 24.599939356081414
},
{
"marker_id": 218,
"link": "unknown",
"set": "",
"position_m": [
0.23794561203330558,
0.07550948878225408,
0.40878417607404516
],
"position_mm": [
237.9456120333056,
75.50948878225408,
408.78417607404515
],
"normal": [
-0.9032685368357206,
0.41966584664314727,
0.0893673739344888
],
"corners_m": [
[
0.23229328144894346,
0.06741929115693258,
0.39434440362976536
],
[
0.24412376554125356,
0.08965763192998884,
0.40004824703828085
],
[
0.2424848418733382,
0.083318787858556,
0.42303175337228793
],
[
0.23288055926968707,
0.061642244183538905,
0.41771230025584644
]
],
"num_cameras": 2,
"edge_length_mm": 24.525478347889035
},
{
"marker_id": 219,
"link": "unknown",
"set": "",
"position_m": [
0.24523876400799488,
0.05043006150498616,
0.5097112365456904
],
"position_mm": [
245.2387640079949,
50.43006150498616,
509.7112365456904
],
"normal": [
-0.9187511491717072,
0.3911585636108862,
0.05377084720864818
],
"corners_m": [
[
0.24106772151097072,
0.042671725800897176,
0.49487695096475826
],
[
0.2505838958143419,
0.06423818270828136,
0.5005970135967202
],
[
0.24935210164127958,
0.05804187148606357,
0.5246164680990176
],
[
0.23995133706538743,
0.03676846602470254,
0.5187545135222654
]
],
"num_cameras": 3,
"edge_length_mm": 24.425050533658705
},
{
"marker_id": 242,
"link": "unknown",
"set": "",
"position_m": [
0.18754208775859485,
0.055648630159377044,
0.2889321954589718
],
"position_mm": [
187.54208775859485,
55.64863015937704,
288.9321954589718
],
"normal": [
0.022952857088486465,
-0.994788656394326,
-0.09934130792700138
],
"corners_m": [
[
0.17573085704771815,
0.05477812791976055,
0.2995206761727464
],
[
0.19904204462311584,
0.054258468446762805,
0.3013404462759671
],
[
0.20069544147960217,
0.05748717951301637,
0.2772762831672883
],
[
0.17470000788394321,
0.05607074475796844,
0.27759137621988533
]
],
"num_cameras": 2,
"edge_length_mm": 23.937837207323692
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,327 @@
{
"schema_version": "1.0",
"created_utc": "2026-06-12T19:00:22Z",
"source": {
"detection_json": "/app/data/board/20260612_190019/cam0_aruco_detection.json",
"robot_json": "/app/scripts/robot_1781069752019.json"
},
"camera": {
"camera_id": "cam0",
"camera_matrix": [
[
1424.7584228515625,
0.0,
635.95947265625
],
[
0.0,
1421.5770263671875,
482.1744384765625
],
[
0.0,
0.0,
1.0
]
],
"distortion_coefficients": [
0.05634751915931702,
0.33765655755996704,
0.002130246954038739,
-0.004022662527859211,
-1.182201862335205
]
},
"estimation": {
"method": "single_camera_marker_center_lm",
"description": "Rigid init from per-marker pose estimates, followed by LM on normalized marker-center reprojection residuals.",
"marker_size_m": 0.025,
"num_used_markers": 9,
"used_marker_ids": [
55,
52,
101,
79,
85,
62,
211,
72,
50
],
"history": {
"iters": [
0,
1,
2,
3
],
"rms": [
0.009867545134691569,
0.0009572110530993923,
0.0007906194507444952,
0.000790612586474178
],
"lambda": [
0.001,
0.0005,
0.00025,
0.000125
]
},
"residual_rms_px": 1.6069333342094732,
"residual_median_px": 0.7798148754478401,
"residual_max_px": 4.234883802186747,
"sigma2_normalized": 9.376023926813464e-07
},
"camera_pose": {
"world_to_camera": {
"rotation_matrix": [
[
0.4078372120857239,
-0.9104359149932861,
-0.06910330057144165
],
[
-0.3167943060398102,
-0.0701155960559845,
-0.9458991289138794
],
[
0.8563353419303894,
0.40766438841819763,
-0.3170166611671448
]
],
"translation_m": [
-0.10910157114267349,
0.36851754784584045,
1.0268213748931885
],
"rvec_rad": [
1.6164154189661377,
-1.1051518584730555,
0.7089223550127144
]
},
"camera_in_world": {
"position_m": [
-0.7180635333061218,
-0.4920896589756012,
0.6665606498718262
],
"position_mm": [
-718.0635375976562,
-492.08966064453125,
666.5606689453125
],
"orientation_deg": {
"roll": 127.87010955810547,
"pitch": -58.907569885253906,
"yaw": -37.838863372802734
}
},
"uncertainty": {
"pose_covariance_6x6": [
[
1.0712935529781991e-05,
-5.117936945274433e-06,
-4.336407987592733e-06,
-6.153727842763172e-08,
3.4214711722436857e-06,
2.375676651524977e-06
],
[
-5.117936945274421e-06,
1.044079149217191e-05,
-3.4545066247116983e-06,
-2.7204528022669726e-06,
-2.760889344201066e-06,
-1.3862288475645067e-06
],
[
-4.3364079875928e-06,
-3.454506624711639e-06,
2.5279083310954225e-05,
5.406549604636585e-06,
-3.0238066145519227e-06,
-2.0158589163870086e-06
],
[
-6.15372784276484e-08,
-2.720452802266963e-06,
5.406549604636597e-06,
1.7433224009696393e-06,
-2.8278155420413365e-08,
-8.996611115884647e-09
],
[
3.4214711722436874e-06,
-2.7608893442010793e-06,
-3.0238066145518926e-06,
-2.8278155420404895e-08,
1.985242773096834e-06,
2.070349501630324e-06
],
[
2.375676651524967e-06,
-1.3862288475645192e-06,
-2.0158589163869836e-06,
-8.996611115876812e-09,
2.0703495016303227e-06,
5.507393168818372e-06
]
],
"parameter_std": {
"rvec_std_deg": [
0.1875326445833758,
0.18513534673219628,
0.2880734892621611
],
"tvec_std_m": [
0.0013203493480778636,
0.0014089864346745267,
0.0023467835794589945
]
},
"camera_center_std_m": [
0.0036409894894807848,
0.005297032735242445,
0.0049939490377814266
],
"camera_center_std_mm": [
3.6409894894807846,
5.297032735242445,
4.993949037781427
],
"orientation_std_deg": {
"roll": 0.4343691773488056,
"pitch": 0.21526807249043164,
"yaw": 0.3569335793648647
}
}
},
"observations": {
"markers": [
{
"marker_id": 55,
"observed_center_px": [
932.25,
883.5
],
"projected_center_px": [
931.89697265625,
883.3240966796875
],
"reprojection_error_px": 0.39442398954949814,
"confidence": 0.18758742353767002
},
{
"marker_id": 52,
"observed_center_px": [
321.25,
900.5
],
"projected_center_px": [
320.1341857910156,
900.7659301757812
],
"reprojection_error_px": 1.1470659123879818,
"confidence": 0.276485209762725
},
{
"marker_id": 101,
"observed_center_px": [
253.75,
866.5
],
"projected_center_px": [
253.0921173095703,
865.616943359375
],
"reprojection_error_px": 1.1011805777977173,
"confidence": 0.22093068616444492
},
{
"marker_id": 79,
"observed_center_px": [
821.5,
840.5
],
"projected_center_px": [
821.1113891601562,
839.8239135742188
],
"reprojection_error_px": 0.7798148754478401,
"confidence": 0.16363870015416757
},
{
"marker_id": 85,
"observed_center_px": [
1046.5,
761.0
],
"projected_center_px": [
1045.5458984375,
760.2865600585938
],
"reprojection_error_px": 1.1913464406119216,
"confidence": 0.0688433315472607
},
{
"marker_id": 62,
"observed_center_px": [
870.25,
788.75
],
"projected_center_px": [
869.9884033203125,
788.5245971679688
],
"reprojection_error_px": 0.34531038141247994,
"confidence": 0.11221148119458993
},
{
"marker_id": 211,
"observed_center_px": [
660.0,
782.75
],
"projected_center_px": [
663.32666015625,
785.37060546875
],
"reprojection_error_px": 4.234883802186747,
"confidence": 0.1309068188215174
},
{
"marker_id": 72,
"observed_center_px": [
537.0,
710.5
],
"projected_center_px": [
537.4723510742188,
710.7101440429688
],
"reprojection_error_px": 0.516987481580414,
"confidence": 0.11732628122523263
},
{
"marker_id": 50,
"observed_center_px": [
581.0,
654.75
],
"projected_center_px": [
581.088623046875,
654.3026123046875
],
"reprojection_error_px": 0.45608090768463305,
"confidence": 0.06871645062905071
}
]
},
"qa": {
"sanity_notes": []
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,383 @@
{
"schema_version": "1.0",
"created_utc": "2026-06-12T19:00:29Z",
"source": {
"detection_json": "/app/data/board/20260612_190019/cam1_aruco_detection.json",
"robot_json": "/app/scripts/robot_1781069752019.json"
},
"camera": {
"camera_id": "cam1",
"camera_matrix": [
[
1367.5723876953125,
0.0,
672.1165771484375
],
[
0.0,
1372.3011474609375,
445.8396911621094
],
[
0.0,
0.0,
1.0
]
],
"distortion_coefficients": [
0.01016925647854805,
0.7656787633895874,
-0.0031530377455055714,
-0.00288817984983325,
-2.490830183029175
]
},
"estimation": {
"method": "single_camera_marker_center_lm",
"description": "Rigid init from per-marker pose estimates, followed by LM on normalized marker-center reprojection residuals.",
"marker_size_m": 0.025,
"num_used_markers": 13,
"used_marker_ids": [
215,
75,
77,
0,
211,
61,
83,
101,
76,
50,
93,
91,
49
],
"history": {
"iters": [
0,
1,
2,
3
],
"rms": [
0.017022918082395283,
0.0016029139407840972,
0.0009266432889417533,
0.0009266138587975449
],
"lambda": [
0.001,
0.0005,
0.00025,
0.000125
]
},
"residual_rms_px": 1.8236001246900813,
"residual_median_px": 1.7993926830506055,
"residual_max_px": 3.117158028688972,
"sigma2_normalized": 1.1161972156231532e-06
},
"camera_pose": {
"world_to_camera": {
"rotation_matrix": [
[
-0.8183506727218628,
0.12972214818000793,
-0.5598878264427185
],
[
-0.2789310812950134,
0.7621176242828369,
0.5842723250389099
],
[
0.5024934411048889,
0.6343097686767578,
-0.5874959230422974
]
],
"translation_m": [
0.3237478733062744,
-0.14087295532226562,
0.9716223478317261
],
"rvec_rad": [
0.11135007986257006,
-2.364155336810066,
-0.9093907546480695
]
},
"camera_in_world": {
"position_m": [
-0.2625884413719177,
-0.5509450435638428,
0.8343948125839233
],
"position_mm": [
-262.58843994140625,
-550.945068359375,
834.3948364257812
],
"orientation_deg": {
"roll": 132.80577087402344,
"pitch": -30.165102005004883,
"yaw": -161.1785430908203
}
},
"uncertainty": {
"pose_covariance_6x6": [
[
2.851729441256815e-06,
-2.147156723968646e-06,
1.8576183193782376e-06,
8.473687623801159e-07,
8.483100932855552e-08,
1.397890679328617e-06
],
[
-2.147156723968639e-06,
7.026317930056324e-06,
-5.934943538668077e-06,
-1.9307467532566697e-06,
1.313438438880565e-06,
-3.4794633911191294e-06
],
[
1.8576183193783278e-06,
-5.934943538668317e-06,
2.1108153906603782e-05,
-9.840570982919328e-09,
-3.0806723732569776e-06,
4.388293425822464e-07
],
[
8.473687623801028e-07,
-1.930746753256646e-06,
-9.840570983004e-09,
8.820973196642204e-07,
-1.2071719052749886e-07,
1.4398692627954377e-06
],
[
8.48310093285469e-08,
1.3134384388805927e-06,
-3.0806723732569615e-06,
-1.207171905275097e-07,
7.565638379797291e-07,
-4.899305484537102e-07
],
[
1.3978906793285827e-06,
-3.4794633911190833e-06,
4.388293425820637e-07,
1.4398692627954383e-06,
-4.899305484536892e-07,
4.322545340630154e-06
]
],
"parameter_std": {
"rvec_std_deg": [
0.09675575186144396,
0.1518750839275168,
0.26323750052305256
],
"tvec_std_m": [
0.0009392003618313935,
0.0008698067819807621,
0.0020790731927063447
]
},
"camera_center_std_m": [
0.0022883403448389484,
0.003574064270477857,
0.0034820809395586243
],
"camera_center_std_mm": [
2.2883403448389483,
3.5740642704778574,
3.482080939558624
],
"orientation_std_deg": {
"roll": 0.21656039550247336,
"pitch": 0.13029819568345818,
"yaw": 0.047876159027645304
}
}
},
"observations": {
"markers": [
{
"marker_id": 215,
"observed_center_px": [
743.0,
52.0
],
"projected_center_px": [
744.772216796875,
52.942100524902344
],
"reprojection_error_px": 2.0070639686236103,
"confidence": 0.25908587547203854
},
{
"marker_id": 75,
"observed_center_px": [
1148.25,
447.5
],
"projected_center_px": [
1149.3878173828125,
448.89398193359375
],
"reprojection_error_px": 1.7993926830506055,
"confidence": 0.3157403996050142
},
{
"marker_id": 77,
"observed_center_px": [
1095.75,
429.0
],
"projected_center_px": [
1095.99755859375,
430.639404296875
],
"reprojection_error_px": 1.6579902611148507,
"confidence": 0.31185747961453864
},
{
"marker_id": 0,
"observed_center_px": [
568.75,
18.25
],
"projected_center_px": [
567.065673828125,
15.62707805633545
],
"reprojection_error_px": 3.117158028688972,
"confidence": 0.01735600320804412
},
{
"marker_id": 211,
"observed_center_px": [
751.5,
157.0
],
"projected_center_px": [
751.8925170898438,
156.7000732421875
],
"reprojection_error_px": 0.4939896009748834,
"confidence": 0.3534978331050283
},
{
"marker_id": 61,
"observed_center_px": [
1126.5,
572.0
],
"projected_center_px": [
1126.9600830078125,
569.77197265625
],
"reprojection_error_px": 2.27503455327067,
"confidence": 0.23938176520357402
},
{
"marker_id": 83,
"observed_center_px": [
1053.75,
548.25
],
"projected_center_px": [
1052.75634765625,
547.5562744140625
],
"reprojection_error_px": 1.2118581471542764,
"confidence": 0.21261383169909495
},
{
"marker_id": 101,
"observed_center_px": [
979.0,
489.5
],
"projected_center_px": [
977.7030639648438,
489.5307922363281
],
"reprojection_error_px": 1.2973015228176141,
"confidence": 0.22390856480270416
},
{
"marker_id": 76,
"observed_center_px": [
477.0,
229.0
],
"projected_center_px": [
475.4937438964844,
230.33995056152344
],
"reprojection_error_px": 2.01600470155827,
"confidence": 0.16345926023140656
},
{
"marker_id": 50,
"observed_center_px": [
568.25,
291.75
],
"projected_center_px": [
567.2425537109375,
291.9026794433594
],
"reprojection_error_px": 1.0189499682370724,
"confidence": 0.18526362920331105
},
{
"marker_id": 93,
"observed_center_px": [
299.25,
161.0
],
"projected_center_px": [
299.7609558105469,
162.38560485839844
],
"reprojection_error_px": 1.4768130091345242,
"confidence": 0.11239139103980775
},
{
"marker_id": 91,
"observed_center_px": [
479.25,
347.25
],
"projected_center_px": [
479.1844482421875,
345.42974853515625
],
"reprojection_error_px": 1.8214314228699708,
"confidence": 0.14755435141380097
},
{
"marker_id": 49,
"observed_center_px": [
257.5,
160.5
],
"projected_center_px": [
259.39337158203125,
161.36175537109375
],
"reprojection_error_px": 2.0802591827107615,
"confidence": 0.10015246990327734
}
]
},
"qa": {
"sanity_notes": []
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,383 @@
{
"schema_version": "1.0",
"created_utc": "2026-06-12T19:00:31Z",
"source": {
"detection_json": "/app/data/board/20260612_190019/cam2_aruco_detection.json",
"robot_json": "/app/scripts/robot_1781069752019.json"
},
"camera": {
"camera_id": "cam2",
"camera_matrix": [
[
1388.99072265625,
0.0,
933.082763671875
],
[
0.0,
1394.8729248046875,
562.4996948242188
],
[
0.0,
0.0,
1.0
]
],
"distortion_coefficients": [
0.019531700760126114,
-0.11213663965463638,
0.0026758278254419565,
0.0007694826927036047,
0.05339815095067024
]
},
"estimation": {
"method": "single_camera_marker_center_lm",
"description": "Rigid init from per-marker pose estimates, followed by LM on normalized marker-center reprojection residuals.",
"marker_size_m": 0.025,
"num_used_markers": 13,
"used_marker_ids": [
82,
55,
97,
79,
86,
54,
215,
47,
96,
84,
62,
0,
48
],
"history": {
"iters": [
0,
1,
2,
3
],
"rms": [
0.009716206434249548,
0.0015911016344702215,
0.001466424120315349,
0.0014664222097830186
],
"lambda": [
0.001,
0.0005,
0.00025,
0.000125
]
},
"residual_rms_px": 2.8913387746849297,
"residual_median_px": 1.4771728969567979,
"residual_max_px": 6.979209801584479,
"sigma2_normalized": 2.795512326392338e-06
},
"camera_pose": {
"world_to_camera": {
"rotation_matrix": [
[
-0.019326819106936455,
-0.9995117783546448,
0.02454984001815319
],
[
-0.1794099509716034,
-0.020688839256763458,
-0.9835568070411682
],
[
0.9835845232009888,
-0.023413510993123055,
-0.17892251908779144
]
],
"translation_m": [
-0.06720077991485596,
0.3105297386646271,
0.6488267779350281
],
"rvec_rad": [
1.3480273366855815,
-1.3464708466594553,
1.151411088487507
]
},
"camera_in_world": {
"position_m": [
-0.5837626457214355,
-0.04555215314030647,
0.42316314578056335
],
"position_mm": [
-583.7626342773438,
-45.552154541015625,
423.16314697265625
],
"orientation_deg": {
"roll": -172.5447235107422,
"pitch": -79.60414123535156,
"yaw": -96.14842987060547
}
},
"uncertainty": {
"pose_covariance_6x6": [
[
2.0367228064551632e-05,
-1.2187859963869738e-05,
-1.1093376067391107e-05,
-1.2294135068985496e-06,
7.661101772070765e-06,
1.8134836025409103e-06
],
[
-1.2187859963869726e-05,
2.5717640366998433e-05,
-6.872293707873139e-06,
-7.226012794771124e-06,
-7.803110380202457e-06,
-1.898648447683659e-06
],
[
-1.1093376067391206e-05,
-6.872293707873177e-06,
3.6646680518964816e-05,
1.1560149616625154e-05,
-4.304462885234192e-06,
-9.406591865646356e-07
],
[
-1.2294135068985848e-06,
-7.22601279477114e-06,
1.1560149616625163e-05,
4.966874182730818e-06,
3.3798680910057096e-07,
1.7204204086133662e-07
],
[
7.661101772070777e-06,
-7.803110380202462e-06,
-4.304462885234182e-06,
3.3798680910057605e-07,
4.238359895770475e-06,
1.884024503119572e-06
],
[
1.8134836025409236e-06,
-1.8986484476836522e-06,
-9.406591865646636e-07,
1.720420408613272e-07,
1.8840245031195756e-06,
3.7821436142086905e-06
]
],
"parameter_std": {
"rvec_std_deg": [
0.2585762278757417,
0.29056158229212065,
0.3468486060437743
],
"tvec_std_m": [
0.002228648510360218,
0.0020587277371645033,
0.001944773409476973
]
},
"camera_center_std_m": [
0.0029006832030301056,
0.006279494567851161,
0.005068452592102307
],
"camera_center_std_mm": [
2.9006832030301055,
6.279494567851161,
5.0684525921023065
],
"orientation_std_deg": {
"roll": 1.721066965026385,
"pitch": 0.3408447415595661,
"yaw": 1.5745107066700454
}
}
},
"observations": {
"markers": [
{
"marker_id": 82,
"observed_center_px": [
337.25,
1033.75
],
"projected_center_px": [
335.0711669921875,
1033.1549072265625
],
"reprojection_error_px": 2.2586386795879507,
"confidence": 0.23052801076681903
},
{
"marker_id": 55,
"observed_center_px": [
1209.5,
1005.0
],
"projected_center_px": [
1208.7025146484375,
1005.1795043945312
],
"reprojection_error_px": 0.8174378958751514,
"confidence": 0.20766666666666667
},
{
"marker_id": 97,
"observed_center_px": [
1345.0,
993.75
],
"projected_center_px": [
1344.606201171875,
993.5772094726562
],
"reprojection_error_px": 0.4300396300021133,
"confidence": 0.20393069134818181
},
{
"marker_id": 79,
"observed_center_px": [
1052.75,
981.0
],
"projected_center_px": [
1050.9676513671875,
980.423828125
],
"reprojection_error_px": 1.8731632813050771,
"confidence": 0.1601941918267144
},
{
"marker_id": 86,
"observed_center_px": [
425.75,
931.0
],
"projected_center_px": [
425.39044189453125,
930.6254272460938
],
"reprojection_error_px": 0.5192174680971249,
"confidence": 0.18742784253946276
},
{
"marker_id": 54,
"observed_center_px": [
1289.75,
967.25
],
"projected_center_px": [
1288.624755859375,
966.2073364257812
],
"reprojection_error_px": 1.534054009809796,
"confidence": 0.16854198847567486
},
{
"marker_id": 215,
"observed_center_px": [
955.25,
944.5
],
"projected_center_px": [
960.2931518554688,
948.2427368164062
],
"reprojection_error_px": 6.280243587170858,
"confidence": 0.1576499545037774
},
{
"marker_id": 47,
"observed_center_px": [
1226.75,
964.5
],
"projected_center_px": [
1226.192138671875,
963.2927856445312
],
"reprojection_error_px": 1.3298781002284452,
"confidence": 0.15917913885677562
},
{
"marker_id": 96,
"observed_center_px": [
1083.5,
944.0
],
"projected_center_px": [
1082.2056884765625,
943.108642578125
],
"reprojection_error_px": 1.5715471272713233,
"confidence": 0.1459233900243923
},
{
"marker_id": 84,
"observed_center_px": [
490.5,
905.5
],
"projected_center_px": [
490.6635437011719,
905.3240966796875
],
"reprojection_error_px": 0.24018434647153325,
"confidence": 0.14758801651000977
},
{
"marker_id": 62,
"observed_center_px": [
1063.75,
922.0
],
"projected_center_px": [
1062.477783203125,
921.4132690429688
],
"reprojection_error_px": 1.400995643886765,
"confidence": 0.11147160908708433
},
{
"marker_id": 0,
"observed_center_px": [
955.0,
846.5
],
"projected_center_px": [
961.4362182617188,
849.198974609375
],
"reprojection_error_px": 6.979209801584479,
"confidence": 0.08099931081136068
},
{
"marker_id": 48,
"observed_center_px": [
1190.0,
794.25
],
"projected_center_px": [
1188.8980712890625,
793.2662353515625
],
"reprojection_error_px": 1.4771728969567979,
"confidence": 0.05014379522882766
}
]
},
"qa": {
"sanity_notes": []
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 KiB

View File

@@ -0,0 +1,25 @@
marker_id,link,set,num_cameras,x_mm,y_mm,z_mm,nx,ny,nz,model_x_mm,model_y_mm,model_z_mm,dist_to_model_mm,delta_z_mm,edge_length_mm
0,Board,rail,2,495.9,-96.39,-9.82,-0.01124,0.05778,0.99827,494.12,-100.21,-9.76,4.22,-0.059,23.24
17,unknown,,2,1453.08,994.38,541.24,-0.9541,0.29947,0.00433,,,,,,76.69
62,Board,A0,2,400.81,-173.86,-28.11,0.03493,0.00934,0.99935,400.76,-173.44,-28.11,0.423,-0.002,23.6
79,Board,A0,2,309.04,-155.69,-29.37,-0.03701,0.03277,0.99878,308.77,-155.27,-29.18,0.536,-0.194,22.93
82,Board,A0,2,223.35,301.15,-28.28,-0.04293,0.06985,0.99663,226.44,303.15,-30.15,4.129,1.872,23.84
83,Board,A0,2,50.86,346.6,-30.14,0.13079,0.06499,0.98928,52.49,349.25,-32.14,3.704,2.001,25.83
86,Board,A0,2,368.77,293.87,-28.21,-0.07956,-0.00084,0.99683,370,294.53,-28.5,1.425,0.29,22.6
96,Board,A0,2,364.99,-184.52,-28.65,-0.08157,0.04048,0.99584,365.58,-183.99,-28.52,0.801,-0.133,22.49
102,Board,A0,2,640.97,-227.58,-24.05,0.01841,0.04122,0.99898,644.54,-227.1,-25.33,3.826,1.281,22.65
180,unknown,,3,268.14,-253.19,485.78,-0.59922,0.2494,0.76075,,,,,,24.1
189,unknown,,3,260.42,-263.46,450.32,-0.98723,0.14058,0.07495,,,,,,23.59
196,unknown,,2,236.56,-246.32,451.8,-0.3094,-0.77924,0.54503,,,,,,23.4
197,unknown,,2,139.09,-30.33,249.54,-0.99633,0.07761,0.03607,,,,,,24.63
201,unknown,,2,78.99,56.65,92.9,-0.99952,0.01599,0.02642,,,,,,24.6
204,unknown,,2,117.44,128.54,111.26,0.02861,0.05054,0.99831,,,,,,24.38
211,Board,rail,2,319.86,-2.52,-7.75,-0.02829,-0.01557,0.99948,321.45,-2.7,-10.7,3.361,2.953,21.9
218,unknown,,3,243.68,-101.89,336.62,-0.91224,0.31518,0.26169,,,,,,24.04
219,unknown,,3,244.01,-176.41,413.25,-0.9323,0.27355,0.23663,,,,,,23.97
243,unknown,,2,184.27,-55.74,277.29,0.08467,-0.62817,0.77346,,,,,,24.23
camera_id,x_mm,y_mm,z_mm,dir_x,dir_y,dir_z
cam0,-717.8,-497.64,666.57,0.85497,0.41127,-0.31606
cam1,-268.29,-544.35,839.26,0.50671,0.62784,-0.59081
cam2,-583.53,-42.61,424.28,0.98339,-0.02549,-0.17971
1 marker_id link set num_cameras x_mm y_mm z_mm nx ny nz model_x_mm model_y_mm model_z_mm dist_to_model_mm delta_z_mm edge_length_mm
2 0 Board rail 2 495.9 -96.39 -9.82 -0.01124 0.05778 0.99827 494.12 -100.21 -9.76 4.22 -0.059 23.24
3 17 unknown 2 1453.08 994.38 541.24 -0.9541 0.29947 0.00433 76.69
4 62 Board A0 2 400.81 -173.86 -28.11 0.03493 0.00934 0.99935 400.76 -173.44 -28.11 0.423 -0.002 23.6
5 79 Board A0 2 309.04 -155.69 -29.37 -0.03701 0.03277 0.99878 308.77 -155.27 -29.18 0.536 -0.194 22.93
6 82 Board A0 2 223.35 301.15 -28.28 -0.04293 0.06985 0.99663 226.44 303.15 -30.15 4.129 1.872 23.84
7 83 Board A0 2 50.86 346.6 -30.14 0.13079 0.06499 0.98928 52.49 349.25 -32.14 3.704 2.001 25.83
8 86 Board A0 2 368.77 293.87 -28.21 -0.07956 -0.00084 0.99683 370 294.53 -28.5 1.425 0.29 22.6
9 96 Board A0 2 364.99 -184.52 -28.65 -0.08157 0.04048 0.99584 365.58 -183.99 -28.52 0.801 -0.133 22.49
10 102 Board A0 2 640.97 -227.58 -24.05 0.01841 0.04122 0.99898 644.54 -227.1 -25.33 3.826 1.281 22.65
11 180 unknown 3 268.14 -253.19 485.78 -0.59922 0.2494 0.76075 24.1
12 189 unknown 3 260.42 -263.46 450.32 -0.98723 0.14058 0.07495 23.59
13 196 unknown 2 236.56 -246.32 451.8 -0.3094 -0.77924 0.54503 23.4
14 197 unknown 2 139.09 -30.33 249.54 -0.99633 0.07761 0.03607 24.63
15 201 unknown 2 78.99 56.65 92.9 -0.99952 0.01599 0.02642 24.6
16 204 unknown 2 117.44 128.54 111.26 0.02861 0.05054 0.99831 24.38
17 211 Board rail 2 319.86 -2.52 -7.75 -0.02829 -0.01557 0.99948 321.45 -2.7 -10.7 3.361 2.953 21.9
18 218 unknown 3 243.68 -101.89 336.62 -0.91224 0.31518 0.26169 24.04
19 219 unknown 3 244.01 -176.41 413.25 -0.9323 0.27355 0.23663 23.97
20 243 unknown 2 184.27 -55.74 277.29 0.08467 -0.62817 0.77346 24.23
21 camera_id x_mm y_mm z_mm dir_x dir_y dir_z
22 cam0 -717.8 -497.64 666.57 0.85497 0.41127 -0.31606
23 cam1 -268.29 -544.35 839.26 0.50671 0.62784 -0.59081
24 cam2 -583.53 -42.61 424.28 0.98339 -0.02549 -0.17971

View File

@@ -0,0 +1,903 @@
{
"schema_version": "1.1",
"stage": "corner_marker_poses",
"created_utc": "2026-06-12T19:01:13Z",
"summary": {
"num_cameras": 3,
"num_markers": 19
},
"cameras": [
{
"camera_id": "cam0",
"position_m": [
-0.7177989697512599,
-0.497637294137647,
0.6665705134157172
],
"position_mm": [
-717.7989697512598,
-497.637294137647,
666.5705134157172
],
"direction": [
0.8549650311470032,
0.41126808524131775,
-0.3160591721534729
]
},
{
"camera_id": "cam1",
"position_m": [
-0.26828777585252084,
-0.5443487689214095,
0.8392557799362308
],
"position_mm": [
-268.28777585252084,
-544.3487689214095,
839.2557799362307
],
"direction": [
0.5067112445831299,
0.627842366695404,
-0.5908110737800598
]
},
{
"camera_id": "cam2",
"position_m": [
-0.5835335325974174,
-0.04260982267267188,
0.4242815682712163
],
"position_mm": [
-583.5335325974173,
-42.60982267267188,
424.2815682712163
],
"direction": [
0.9833903312683105,
-0.025485455989837646,
-0.17970512807369232
]
}
],
"markers": [
{
"marker_id": 0,
"link": "Board",
"set": "rail",
"position_m": [
0.4959035140621296,
-0.09638613280068559,
-0.009819315934956847
],
"position_mm": [
495.9035140621296,
-96.38613280068559,
-9.819315934956848
],
"normal": [
-0.011235720131947725,
0.05777622465166247,
0.9982663304239592
],
"corners_m": [
[
0.4854179732649712,
-0.08452961572220506,
-0.010435926054871446
],
[
0.5086579328625245,
-0.08456084109706913,
-0.010546475920102829
],
[
0.5057942588039956,
-0.10829936584749572,
-0.008822313386833007
],
[
0.483743891317027,
-0.1081547085359724,
-0.009472548378020107
]
],
"num_cameras": 2,
"edge_length_mm": 23.24432475344645
},
{
"marker_id": 17,
"link": "unknown",
"set": "",
"position_m": [
1.4530796672754922,
0.9943849726065002,
0.5412355382809938
],
"position_mm": [
1453.0796672754923,
994.3849726065001,
541.2355382809938
],
"normal": [
-0.9540951947557637,
0.29947217566864853,
0.004333052532279974
],
"corners_m": [
[
1.4590503049024712,
1.0123975083407233,
0.6008976632845706
],
[
1.4476408357832211,
0.9763745707886786,
0.5986529658316441
],
[
1.4476578818900947,
0.9778026675516871,
0.4823442272682128
],
[
1.4579696465261813,
1.0109651437449119,
0.4830472967395477
]
],
"num_cameras": 2,
"edge_length_mm": 76.6926423157162
},
{
"marker_id": 62,
"link": "Board",
"set": "A0",
"position_m": [
0.40081134682469843,
-0.17385945706493294,
-0.028112226859377528
],
"position_mm": [
400.81134682469843,
-173.85945706493294,
-28.11222685937753
],
"normal": [
0.03493267902246509,
0.009343614681925462,
0.9993459885349963
],
"corners_m": [
[
0.3880876196282671,
-0.18525882715713404,
-0.027459063792266748
],
[
0.3900989933029908,
-0.16150750732765035,
-0.02796277903924936
],
[
0.412686951321115,
-0.1625199649357028,
-0.028522981481499156
],
[
0.41237182304642095,
-0.18615152883924452,
-0.028504083124494855
]
],
"num_cameras": 2,
"edge_length_mm": 23.603992437675593
},
{
"marker_id": 79,
"link": "Board",
"set": "A0",
"position_m": [
0.3090390777226699,
-0.15569084205573325,
-0.029373732151658602
],
"position_mm": [
309.0390777226699,
-155.69084205573324,
-29.3737321516586
],
"normal": [
-0.037010338277854715,
0.03277287137898376,
0.9987773394316349
],
"corners_m": [
[
0.2973893434657985,
-0.1677642741689291,
-0.029636386537297287
],
[
0.2989560731179298,
-0.14323709298359444,
-0.02994064026529188
],
[
0.3212247199890606,
-0.14416575984111418,
-0.029525605410374627
],
[
0.3185861743178909,
-0.1675962412292952,
-0.0283922963936706
]
],
"num_cameras": 2,
"edge_length_mm": 22.92767304325437
},
{
"marker_id": 82,
"link": "Board",
"set": "A0",
"position_m": [
0.2233522725634513,
0.30114768333493946,
-0.02827846361196515
],
"position_mm": [
223.3522725634513,
301.1476833349395,
-28.278463611965147
],
"normal": [
-0.042928396210429196,
0.0698479928278641,
0.9966335388179143
],
"corners_m": [
[
0.2119083759520826,
0.28944059337069855,
-0.02857019667345116
],
[
0.21286087482222538,
0.31397324109816344,
-0.029109820212172316
],
[
0.23695647770212067,
0.3136250315169422,
-0.029045183764852992
],
[
0.2316833617773766,
0.28755186735395377,
-0.026388653797384132
]
],
"num_cameras": 2,
"edge_length_mm": 23.84325932265194
},
{
"marker_id": 83,
"link": "Board",
"set": "A0",
"position_m": [
0.0508574385943988,
0.3465954768728997,
-0.030138848150202832
],
"position_mm": [
50.8574385943988,
346.5954768728997,
-30.138848150202833
],
"normal": [
0.1307919970523133,
0.06499300289795047,
0.989277192237532
],
"corners_m": [
[
0.03733953014059789,
0.33192734074858626,
-0.027284354075789757
],
[
0.038809358202190725,
0.35763201363086566,
-0.02937403056788247
],
[
0.06446684179512845,
0.36103308298691805,
-0.03278158230562374
],
[
0.06281402423967813,
0.3357894701252289,
-0.03111542565151537
]
],
"num_cameras": 2,
"edge_length_mm": 25.83448154340726
},
{
"marker_id": 86,
"link": "Board",
"set": "A0",
"position_m": [
0.3687703464972961,
0.2938700883085349,
-0.02821048625908841
],
"position_mm": [
368.77034649729615,
293.8700883085349,
-28.21048625908841
],
"normal": [
-0.0795588649635262,
-0.0008396729962074634,
0.9968298159440131
],
"corners_m": [
[
0.35772120813442937,
0.2829357386442751,
-0.029192714532217237
],
[
0.3586685461863166,
0.30651574085843714,
-0.02891700302606048
],
[
0.38009805154613796,
0.30509534000481814,
-0.027383703229619014
],
[
0.3785935801223003,
0.2809335337266093,
-0.027348524248456914
]
],
"num_cameras": 2,
"edge_length_mm": 22.59739516161692
},
{
"marker_id": 96,
"link": "Board",
"set": "A0",
"position_m": [
0.3649941784371009,
-0.18451960429986458,
-0.028652559512834328
],
"position_mm": [
364.9941784371009,
-184.51960429986457,
-28.65255951283433
],
"normal": [
-0.08157137096657496,
0.0404843149726617,
0.9958449335513174
],
"corners_m": [
[
0.3533954488356145,
-0.19626029783840263,
-0.02898370436853248
],
[
0.35598451072264875,
-0.17201807691557355,
-0.030051120110203704
],
[
0.3758138884795852,
-0.17284155926038217,
-0.028087465737548497
],
[
0.3747828657105551,
-0.19695848318509998,
-0.027487947835052626
]
],
"num_cameras": 2,
"edge_length_mm": 22.486058867893863
},
{
"marker_id": 102,
"link": "Board",
"set": "A0",
"position_m": [
0.6409676043299635,
-0.22758161673856356,
-0.02404910405599666
],
"position_mm": [
640.9676043299635,
-227.58161673856355,
-24.04910405599666
],
"normal": [
0.018405293426048745,
0.041217884137697884,
0.998980646059328
],
"corners_m": [
[
0.628168914215749,
-0.2393407236418058,
-0.023004207178700217
],
[
0.6329685599187987,
-0.21502092728943362,
-0.02480231399695442
],
[
0.6520462463694006,
-0.21595696980072232,
-0.024343746755265322
],
[
0.6506866968159057,
-0.2400078462222924,
-0.02404614829306669
]
],
"num_cameras": 2,
"edge_length_mm": 22.650753783906055
},
{
"marker_id": 180,
"link": "unknown",
"set": "",
"position_m": [
0.2681405508078976,
-0.25319148543602876,
0.48578231923627885
],
"position_mm": [
268.1405508078976,
-253.19148543602876,
485.78231923627885
],
"normal": [
-0.5992178589874199,
0.2493978498345446,
0.760748756139922
],
"corners_m": [
[
0.2700892609842782,
-0.26857115865948356,
0.4927102388925223
],
[
0.2547519119632988,
-0.25844535924190054,
0.4765951083515476
],
[
0.2656359128843578,
-0.23802903384841198,
0.47920137945593855
],
[
0.2820851173996557,
-0.24772038999431892,
0.494622550245107
]
],
"num_cameras": 3,
"edge_length_mm": 24.099715289217816
},
{
"marker_id": 189,
"link": "unknown",
"set": "",
"position_m": [
0.26042217748224655,
-0.26346196100647173,
0.45031604172412454
],
"position_mm": [
260.4221774822465,
-263.4619610064717,
450.31604172412455
],
"normal": [
-0.987227594389732,
0.1405845097771574,
0.07495113398861387
],
"corners_m": [
[
0.26165197553771513,
-0.26516772803657895,
0.4669678295061544
],
[
0.2578294116295362,
-0.27957805334860214,
0.44913255454437845
],
[
0.2595524411240357,
-0.2619696438957344,
0.4333892235539295
],
[
0.2626548816376992,
-0.24713241874497147,
0.4517745592920358
]
],
"num_cameras": 3,
"edge_length_mm": 23.590053140476307
},
{
"marker_id": 196,
"link": "unknown",
"set": "",
"position_m": [
0.23655612784702762,
-0.24631880188164235,
0.45179609418606653
],
"position_mm": [
236.55612784702762,
-246.31880188164234,
451.7960941860665
],
"normal": [
-0.3093959639845102,
-0.7792384939691024,
0.5450334916194243
],
"corners_m": [
[
0.24317231820375784,
-0.23932116720592553,
0.4650051647140232
],
[
0.2511153940572844,
-0.2540922678401282,
0.4495068167178451
],
[
0.23033137677108564,
-0.2529271000168783,
0.43826056308938893
],
[
0.22160542235598255,
-0.23893467246363742,
0.45441183222300885
]
],
"num_cameras": 2,
"edge_length_mm": 23.402432570606738
},
{
"marker_id": 197,
"link": "unknown",
"set": "",
"position_m": [
0.1390927380355264,
-0.03032574924044018,
0.24953919324852158
],
"position_mm": [
139.0927380355264,
-30.32574924044018,
249.5391932485216
],
"normal": [
-0.9963315186413005,
0.07760512074996907,
0.03606868718573868
],
"corners_m": [
[
0.14019399063205745,
-0.02758606226435148,
0.2663864496298566
],
[
0.13752153621978983,
-0.04842104751128373,
0.25229310536418786
],
[
0.13864049270376114,
-0.0319059857482782,
0.2326340853652054
],
[
0.14001493258649725,
-0.013389901437847311,
0.24684313263483665
]
],
"num_cameras": 2,
"edge_length_mm": 24.632798408237363
},
{
"marker_id": 201,
"link": "unknown",
"set": "",
"position_m": [
0.07898787154265886,
0.05664833220913929,
0.09290117316376278
],
"position_mm": [
78.98787154265887,
56.64833220913929,
92.90117316376279
],
"normal": [
-0.9995230692291366,
0.015992005104595693,
0.026417604953916964
],
"corners_m": [
[
0.07913011879622174,
0.06871582169220812,
0.10503406906313549
],
[
0.07949730799550712,
0.0441327838748963,
0.1051767143553439
],
[
0.0781035414402634,
0.04443266100494991,
0.08123756284273835
],
[
0.07922051793864322,
0.06931206226450284,
0.08015634639383337
]
],
"num_cameras": 2,
"edge_length_mm": 24.59517792808874
},
{
"marker_id": 204,
"link": "unknown",
"set": "",
"position_m": [
0.11743656283073742,
0.12854485252811704,
0.11126069978714423
],
"position_mm": [
117.43656283073742,
128.54485252811705,
111.26069978714423
],
"normal": [
0.02861323996080747,
0.05054115225363077,
0.9983120125631167
],
"corners_m": [
[
0.10605702904788235,
0.14077861707373582,
0.1107149305471551
],
[
0.13017435426590937,
0.1408153764441786,
0.11053216173168084
],
[
0.12885401787491074,
0.11653547481138093,
0.11128450339217408
],
[
0.10466085013424718,
0.11604994178317284,
0.11251120347756696
]
],
"num_cameras": 2,
"edge_length_mm": 24.376919580540658
},
{
"marker_id": 211,
"link": "Board",
"set": "rail",
"position_m": [
0.31985557163530237,
-0.0025173461535350616,
-0.007746962355359113
],
"position_mm": [
319.8555716353024,
-2.5173461535350614,
-7.746962355359114
],
"normal": [
-0.028286778708723585,
-0.01557183423325681,
0.9994785521104972
],
"corners_m": [
[
0.3091212217364301,
0.008720833872077775,
-0.007942728212007158
],
[
0.33030033232905726,
0.008345577426672239,
-0.007214211962286078
],
[
0.33108110855376843,
-0.013617137550980499,
-0.00766712031613749
],
[
0.3089196239219538,
-0.013518658361909762,
-0.008163788931005724
]
],
"num_cameras": 2,
"edge_length_mm": 21.896246721704113
},
{
"marker_id": 218,
"link": "unknown",
"set": "",
"position_m": [
0.24367920010615435,
-0.10188686694979668,
0.3366198400848723
],
"position_mm": [
243.67920010615435,
-101.88686694979668,
336.6198400848723
],
"normal": [
-0.9122382900350822,
0.31518430771955813,
0.26168713067556865
],
"corners_m": [
[
0.2394631684863205,
-0.10078424987771971,
0.3205476205768951
],
[
0.2491695968190208,
-0.08563442499911075,
0.33622990287988
],
[
0.24799911873796812,
-0.10313926043545674,
0.3531428602120246
],
[
0.238084916381308,
-0.11798953248689951,
0.33655897667068935
]
],
"num_cameras": 3,
"edge_length_mm": 24.037172371083443
},
{
"marker_id": 219,
"link": "unknown",
"set": "",
"position_m": [
0.24401093185913197,
-0.176413105153727,
0.4132459876213448
],
"position_mm": [
244.01093185913197,
-176.413105153727,
413.2459876213448
],
"normal": [
-0.9322987642418413,
0.2735462737141289,
0.23662512616003056
],
"corners_m": [
[
0.24021281699089986,
-0.17570119334487708,
0.3966375667026969
],
[
0.24837017691429789,
-0.1601944823619091,
0.41250439136011297
],
[
0.24819682573920104,
-0.1770784762272216,
0.42967908388156545
],
[
0.23926390779212897,
-0.19267826868090016,
0.414162908541004
]
],
"num_cameras": 3,
"edge_length_mm": 23.971927129304202
},
{
"marker_id": 243,
"link": "unknown",
"set": "",
"position_m": [
0.1842739129992133,
-0.055735670563343456,
0.2772871982842746
],
"position_mm": [
184.2739129992133,
-55.735670563343454,
277.2871982842746
],
"normal": [
0.08467046621965559,
-0.6281673922756276,
0.773457587351617
],
"corners_m": [
[
0.1715829589135198,
-0.04703653173211839,
0.28570977563017796
],
[
0.19711449949834012,
-0.0463440541209715,
0.28354074583180067
],
[
0.19648013235562867,
-0.06441447131634678,
0.2688694493325217
],
[
0.1719180612293647,
-0.06514762508393714,
0.2710288223425981
]
],
"num_cameras": 2,
"edge_length_mm": 24.225482154873134
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,341 @@
{
"schema_version": "1.0",
"created_utc": "2026-06-12T19:01:07Z",
"source": {
"detection_json": "/app/data/board/20260612_190104/cam0_aruco_detection.json",
"robot_json": "/app/scripts/robot_1781069752019.json"
},
"camera": {
"camera_id": "cam0",
"camera_matrix": [
[
1424.7584228515625,
0.0,
635.95947265625
],
[
0.0,
1421.5770263671875,
482.1744384765625
],
[
0.0,
0.0,
1.0
]
],
"distortion_coefficients": [
0.05634751915931702,
0.33765655755996704,
0.002130246954038739,
-0.004022662527859211,
-1.182201862335205
]
},
"estimation": {
"method": "single_camera_marker_center_lm",
"description": "Rigid init from per-marker pose estimates, followed by LM on normalized marker-center reprojection residuals.",
"marker_size_m": 0.025,
"num_used_markers": 10,
"used_marker_ids": [
52,
83,
101,
79,
96,
82,
85,
62,
211,
102
],
"history": {
"iters": [
0,
1,
2,
3
],
"rms": [
0.011583844656378784,
0.0010775760688667888,
0.0006996938864108234,
0.0006996713708616039
],
"lambda": [
0.001,
0.0005,
0.00025,
0.000125
]
},
"residual_rms_px": 1.4234011745571165,
"residual_median_px": 0.7265588557890328,
"residual_max_px": 3.9986631298653377,
"sigma2_normalized": 6.993428957285749e-07
},
"camera_pose": {
"world_to_camera": {
"rotation_matrix": [
[
0.41089680790901184,
-0.9088985323905945,
-0.07118469476699829
],
[
-0.3165417015552521,
-0.06900728493928909,
-0.9460651874542236
],
[
0.8549650311470032,
0.41126808524131775,
-0.3160591721534729
]
],
"translation_m": [
-0.10991090536117554,
0.3690652549266815,
1.0290310382843018
],
"rvec_rad": [
1.6159733338901459,
-1.102627655662336,
0.7052305000367143
]
},
"camera_in_world": {
"position_m": [
-0.7177989482879639,
-0.4976372718811035,
0.6665705442428589
],
"position_mm": [
-717.7989501953125,
-497.63726806640625,
666.570556640625
],
"orientation_deg": {
"roll": 127.54224395751953,
"pitch": -58.75586700439453,
"yaw": -37.6094970703125
}
},
"uncertainty": {
"pose_covariance_6x6": [
[
2.9336364245259038e-05,
-1.5131763292360595e-05,
-8.000741720545609e-06,
5.403820141352387e-07,
8.183291830175566e-06,
2.77591983113989e-06
],
[
-1.5131763292361025e-05,
1.503946747526301e-05,
-5.281098467042598e-06,
-3.6058045653269604e-06,
-4.208220594656872e-06,
1.291082577225459e-07
],
[
-8.000741720544699e-06,
-5.281098467043316e-06,
2.3833724506853e-05,
5.934358060420953e-06,
-3.4811586893567264e-06,
-4.176791137411806e-06
],
[
5.403820141354994e-07,
-3.605804565327115e-06,
5.9343580604208434e-06,
1.9851490879679564e-06,
-9.262865023587544e-08,
-9.586546378669777e-07
],
[
8.183291830175515e-06,
-4.208220594656706e-06,
-3.4811586893569954e-06,
-9.262865023595845e-08,
2.692311638613372e-06,
1.5136764207470052e-06
],
[
2.775919831139757e-06,
1.2910825772269002e-07,
-4.176791137411877e-06,
-9.586546378670152e-07,
1.5136764207469685e-06,
3.1590931756874967e-06
]
],
"parameter_std": {
"rvec_std_deg": [
0.3103314402869839,
0.22219734320776316,
0.27971682494181066
],
"tvec_std_m": [
0.0014089531887071182,
0.001640826510821108,
0.0017773838008959958
]
},
"camera_center_std_m": [
0.004128365061729185,
0.00612812627219762,
0.00707858820143781
],
"camera_center_std_mm": [
4.128365061729185,
6.12812627219762,
7.07858820143781
],
"orientation_std_deg": {
"roll": 0.5614561263249548,
"pitch": 0.2457328024166601,
"yaw": 0.5005500695619176
}
}
},
"observations": {
"markers": [
{
"marker_id": 52,
"observed_center_px": [
321.0,
900.75
],
"projected_center_px": [
320.75164794921875,
900.75634765625
],
"reprojection_error_px": 0.248433157744937,
"confidence": 0.2939513606264565
},
{
"marker_id": 83,
"observed_center_px": [
158.75,
906.0
],
"projected_center_px": [
157.76646423339844,
906.006103515625
],
"reprojection_error_px": 0.9835547046745838,
"confidence": 0.23510936286367592
},
{
"marker_id": 101,
"observed_center_px": [
254.25,
866.5
],
"projected_center_px": [
254.1676025390625,
865.7137451171875
],
"reprojection_error_px": 0.7905606126765012,
"confidence": 0.2442172274419462
},
{
"marker_id": 79,
"observed_center_px": [
821.5,
840.25
],
"projected_center_px": [
820.8829345703125,
840.0087280273438
],
"reprojection_error_px": 0.6625570989015643,
"confidence": 0.14902466745603263
},
{
"marker_id": 96,
"observed_center_px": [
871.5,
811.75
],
"projected_center_px": [
871.0283813476562,
811.0065307617188
],
"reprojection_error_px": 0.8804377669710887,
"confidence": 0.1422032171644925
},
{
"marker_id": 82,
"observed_center_px": [
327.0,
805.5
],
"projected_center_px": [
327.5209655761719,
805.263671875
],
"reprojection_error_px": 0.5720630334343492,
"confidence": 0.19065449785541522
},
{
"marker_id": 85,
"observed_center_px": [
1046.25,
761.25
],
"projected_center_px": [
1045.744384765625,
760.5679931640625
],
"reprojection_error_px": 0.8489876851271555,
"confidence": 0.10117487030285308
},
{
"marker_id": 62,
"observed_center_px": [
870.5,
788.75
],
"projected_center_px": [
870.0374755859375,
788.7951049804688
],
"reprojection_error_px": 0.4647185092794834,
"confidence": 0.11505678024231328
},
{
"marker_id": 211,
"observed_center_px": [
660.75,
782.75
],
"projected_center_px": [
663.4999389648438,
785.6529541015625
],
"reprojection_error_px": 3.9986631298653377,
"confidence": 0.14064542346345105
},
{
"marker_id": 102,
"observed_center_px": [
983.0,
678.25
],
"projected_center_px": [
983.2212524414062,
677.9496459960938
],
"reprojection_error_px": 0.37304848276161334,
"confidence": 0.046674529106701265
}
]
},
"qa": {
"sanity_notes": []
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,327 @@
{
"schema_version": "1.0",
"created_utc": "2026-06-12T19:01:10Z",
"source": {
"detection_json": "/app/data/board/20260612_190104/cam1_aruco_detection.json",
"robot_json": "/app/scripts/robot_1781069752019.json"
},
"camera": {
"camera_id": "cam1",
"camera_matrix": [
[
1367.5723876953125,
0.0,
672.1165771484375
],
[
0.0,
1372.3011474609375,
445.8396911621094
],
[
0.0,
0.0,
1.0
]
],
"distortion_coefficients": [
0.01016925647854805,
0.7656787633895874,
-0.0031530377455055714,
-0.00288817984983325,
-2.490830183029175
]
},
"estimation": {
"method": "single_camera_marker_center_lm",
"description": "Rigid init from per-marker pose estimates, followed by LM on normalized marker-center reprojection residuals.",
"marker_size_m": 0.025,
"num_used_markers": 9,
"used_marker_ids": [
215,
75,
77,
211,
0,
61,
83,
86,
91
],
"history": {
"iters": [
0,
1,
2,
3
],
"rms": [
0.012947336622946096,
0.0011576089370776525,
0.000677632000689733,
0.0006776103590894678
],
"lambda": [
0.001,
0.0005,
0.00025,
0.000125
]
},
"residual_rms_px": 1.3281044255078918,
"residual_median_px": 1.0658534244946405,
"residual_max_px": 2.059176882684305,
"sigma2_normalized": 6.887336980837212e-07
},
"camera_pose": {
"world_to_camera": {
"rotation_matrix": [
[
-0.8169831037521362,
0.13087064027786255,
-0.5616150498390198
],
[
-0.27528589963912964,
0.7672592997550964,
0.5792502164840698
],
[
0.5067112445831299,
0.627842366695404,
-0.5908110737800598
]
],
"translation_m": [
0.3233913779258728,
-0.14233827590942383,
0.9735512137413025
],
"rvec_rad": [
0.10758069292838245,
-2.365224369289227,
-0.8992115453858641
]
},
"camera_in_world": {
"position_m": [
-0.2682877779006958,
-0.5443487763404846,
0.8392557501792908
],
"position_mm": [
-268.28778076171875,
-544.3487548828125,
839.2557373046875
],
"orientation_deg": {
"roll": 133.2594757080078,
"pitch": -30.44501304626465,
"yaw": -161.3785400390625
}
},
"uncertainty": {
"pose_covariance_6x6": [
[
2.9810522854302954e-06,
-1.0482507335242678e-06,
-1.6813660057154423e-06,
6.556546524051395e-07,
5.961719843201515e-07,
4.1089513796106666e-07
],
[
-1.0482507335242938e-06,
8.385073534319184e-06,
-2.610876970904805e-06,
-1.9525804607578916e-06,
9.396328561962556e-07,
-2.608725317091146e-06
],
[
-1.6813660057154264e-06,
-2.610876970904928e-06,
2.1648767954863357e-05,
-7.39269992505272e-07,
-3.27012470848216e-06,
1.3585721907663655e-06
],
[
6.556546524051449e-07,
-1.952580460757881e-06,
-7.392699925053098e-07,
7.327700229266102e-07,
-1.1671767604845103e-08,
9.230879380859925e-07
],
[
5.961719843201468e-07,
9.396328561962744e-07,
-3.2701247084821465e-06,
-1.1671767604851857e-08,
7.283659079725829e-07,
-5.519544393213444e-07
],
[
4.1089513796107444e-07,
-2.608725317091145e-06,
1.3585721907663187e-06,
9.230879380859964e-07,
-5.519544393213375e-07,
3.067745561222319e-06
]
],
"parameter_std": {
"rvec_std_deg": [
0.09892531209113063,
0.1659113397082262,
0.26658715819063034
],
"tvec_std_m": [
0.0008560198729741093,
0.0008534435587504208,
0.0017514980905562868
]
},
"camera_center_std_m": [
0.003267016971335379,
0.0038979723393674118,
0.0030910250992406832
],
"camera_center_std_mm": [
3.267016971335379,
3.8979723393674117,
3.0910250992406834
],
"orientation_std_deg": {
"roll": 0.24590319935934407,
"pitch": 0.17144035635200663,
"yaw": 0.15105775828773535
}
}
},
"observations": {
"markers": [
{
"marker_id": 215,
"observed_center_px": [
743.75,
53.0
],
"projected_center_px": [
744.499267578125,
53.447364807128906
],
"reprojection_error_px": 0.8726609732804524,
"confidence": 0.3073511644914628
},
{
"marker_id": 75,
"observed_center_px": [
1148.25,
448.0
],
"projected_center_px": [
1149.0048828125,
448.50213623046875
],
"reprojection_error_px": 0.9066360099605992,
"confidence": 0.30593402930588326
},
{
"marker_id": 77,
"observed_center_px": [
1096.25,
429.0
],
"projected_center_px": [
1095.6392822265625,
430.4338073730469
],
"reprojection_error_px": 1.5584542924949831,
"confidence": 0.31608269951955237
},
{
"marker_id": 211,
"observed_center_px": [
751.75,
157.25
],
"projected_center_px": [
751.776611328125,
157.24380493164062
],
"reprojection_error_px": 0.027322914495963736,
"confidence": 0.32038412235013586
},
{
"marker_id": 0,
"observed_center_px": [
568.5,
18.75
],
"projected_center_px": [
567.7591552734375,
17.23809814453125
],
"reprojection_error_px": 1.6836561791070392,
"confidence": 0.0224867454906708
},
{
"marker_id": 61,
"observed_center_px": [
1126.5,
572.25
],
"projected_center_px": [
1127.1572265625,
570.2985229492188
],
"reprojection_error_px": 2.059176882684305,
"confidence": 0.2208490659328199
},
{
"marker_id": 83,
"observed_center_px": [
1054.0,
548.5
],
"projected_center_px": [
1052.9501953125,
548.3157348632812
],
"reprojection_error_px": 1.0658534244946405,
"confidence": 0.21327207885605812
},
{
"marker_id": 86,
"observed_center_px": [
749.0,
410.5
],
"projected_center_px": [
748.017822265625,
410.86334228515625
],
"reprojection_error_px": 1.047230021573376,
"confidence": 0.22599361206763743
},
{
"marker_id": 91,
"observed_center_px": [
479.25,
347.25
],
"projected_center_px": [
480.4934997558594,
348.2538757324219
],
"reprojection_error_px": 1.5981420866017768,
"confidence": 0.14755435141380097
}
]
},
"qa": {
"sanity_notes": []
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,397 @@
{
"schema_version": "1.0",
"created_utc": "2026-06-12T19:01:12Z",
"source": {
"detection_json": "/app/data/board/20260612_190104/cam2_aruco_detection.json",
"robot_json": "/app/scripts/robot_1781069752019.json"
},
"camera": {
"camera_id": "cam2",
"camera_matrix": [
[
1388.99072265625,
0.0,
933.082763671875
],
[
0.0,
1394.8729248046875,
562.4996948242188
],
[
0.0,
0.0,
1.0
]
],
"distortion_coefficients": [
0.019531700760126114,
-0.11213663965463638,
0.0026758278254419565,
0.0007694826927036047,
0.05339815095067024
]
},
"estimation": {
"method": "single_camera_marker_center_lm",
"description": "Rigid init from per-marker pose estimates, followed by LM on normalized marker-center reprojection residuals.",
"marker_size_m": 0.025,
"num_used_markers": 14,
"used_marker_ids": [
82,
55,
97,
79,
54,
86,
47,
96,
62,
53,
0,
50,
102,
48
],
"history": {
"iters": [
0,
1,
2,
3
],
"rms": [
0.007248107658778775,
0.001138453540791939,
0.001093970748147815,
0.0010939704849369002
],
"lambda": [
0.001,
0.0005,
0.00025,
0.000125
]
},
"residual_rms_px": 2.155713920760765,
"residual_median_px": 0.6221284009078569,
"residual_max_px": 7.501217984105138,
"sigma2_normalized": 1.5231636278868411e-06
},
"camera_pose": {
"world_to_camera": {
"rotation_matrix": [
[
-0.021201852709054947,
-0.9994443655014038,
0.025717686861753464
],
[
-0.18026070296764374,
-0.021480444818735123,
-0.9833843111991882
],
[
0.9833903312683105,
-0.025485455989837646,
-0.17970512807369232
]
],
"translation_m": [
-0.06586968153715134,
0.3111283779144287,
0.649000883102417
],
"rvec_rad": [
1.3484514407444357,
-1.3481330361635824,
1.1531796144363664
]
},
"camera_in_world": {
"position_m": [
-0.583533525466919,
-0.04260982573032379,
0.42428159713745117
],
"position_mm": [
-583.5335083007812,
-42.609825134277344,
424.2815856933594
],
"orientation_deg": {
"roll": -171.92822265625,
"pitch": -79.54266357421875,
"yaw": -96.70817565917969
}
},
"uncertainty": {
"pose_covariance_6x6": [
[
6.4594000171960524e-06,
-3.2324532334867306e-06,
-3.5270358443857963e-06,
-5.94977836053978e-07,
2.5419321309202577e-06,
7.886418225406485e-07
],
[
-3.2324532334867577e-06,
8.936276159870285e-06,
-2.3766223937093423e-06,
-2.7974030389964423e-06,
-2.881567645112875e-06,
-1.0549512396239754e-06
],
[
-3.5270358443857175e-06,
-2.3766223937093863e-06,
1.424829220436036e-05,
4.697256316974025e-06,
-1.7003711044128018e-06,
-2.1380025910881637e-07
],
[
-5.949778360539509e-07,
-2.797403038996459e-06,
4.697256316974026e-06,
2.1705723396858046e-06,
1.3343817025818789e-07,
1.959107120572131e-07
],
[
2.5419321309202565e-06,
-2.881567645112862e-06,
-1.7003711044128297e-06,
1.3343817025817658e-07,
1.7584087081804106e-06,
9.835608135201958e-07
],
[
7.886418225406508e-07,
-1.0549512396239703e-06,
-2.1380025910882762e-07,
1.9591071205720694e-07,
9.835608135201964e-07,
2.058542325894411e-06
]
],
"parameter_std": {
"rvec_std_deg": [
0.1456192274176634,
0.1712777397185073,
0.21627386371287913
],
"tvec_std_m": [
0.001473286238205531,
0.0013260500398478221,
0.0014347621147404231
]
},
"camera_center_std_m": [
0.0017077450417900175,
0.003968930213085602,
0.0031107599308929836
],
"camera_center_std_mm": [
1.7077450417900175,
3.968930213085602,
3.1107599308929834
],
"orientation_std_deg": {
"roll": 1.015987263659873,
"pitch": 0.16623569877188035,
"yaw": 0.9721075235702595
}
}
},
"observations": {
"markers": [
{
"marker_id": 82,
"observed_center_px": [
337.25,
1033.75
],
"projected_center_px": [
336.156005859375,
1033.67529296875
],
"reprojection_error_px": 1.0965419828898575,
"confidence": 0.23052801076681903
},
{
"marker_id": 55,
"observed_center_px": [
1210.0,
1005.25
],
"projected_center_px": [
1209.6336669921875,
1005.70068359375
],
"reprojection_error_px": 0.5807887518610947,
"confidence": 0.207
},
{
"marker_id": 97,
"observed_center_px": [
1345.0,
994.0
],
"projected_center_px": [
1345.273681640625,
994.0942993164062
],
"reprojection_error_px": 0.28947193558249773,
"confidence": 0.22010066111880033
},
{
"marker_id": 79,
"observed_center_px": [
1052.5,
981.0
],
"projected_center_px": [
1051.9365234375,
980.8867797851562
],
"reprojection_error_px": 0.5747387698216306,
"confidence": 0.18758334653839537
},
{
"marker_id": 54,
"observed_center_px": [
1289.5,
967.0
],
"projected_center_px": [
1289.243896484375,
966.6799926757812
],
"reprojection_error_px": 0.40987034324177296,
"confidence": 0.17270146499284353
},
{
"marker_id": 86,
"observed_center_px": [
426.0,
931.0
],
"projected_center_px": [
426.0010986328125,
930.8665771484375
],
"reprojection_error_px": 0.1334273746767342,
"confidence": 0.19680000781631377
},
{
"marker_id": 47,
"observed_center_px": [
1227.25,
964.5
],
"projected_center_px": [
1226.8851318359375,
963.751953125
],
"reprojection_error_px": 0.832287753330304,
"confidence": 0.15924701908656527
},
{
"marker_id": 96,
"observed_center_px": [
1083.75,
944.0
],
"projected_center_px": [
1082.9525146484375,
943.5097045898438
],
"reprojection_error_px": 0.9361476780813216,
"confidence": 0.1482961280735694
},
{
"marker_id": 62,
"observed_center_px": [
1063.75,
922.0
],
"projected_center_px": [
1063.12744140625,
921.7706298828125
],
"reprojection_error_px": 0.6634680499546192,
"confidence": 0.11147160908708433
},
{
"marker_id": 53,
"observed_center_px": [
578.25,
864.75
],
"projected_center_px": [
578.2576293945312,
864.9274291992188
],
"reprojection_error_px": 0.17759315413697777,
"confidence": 0.09938161625332304
},
{
"marker_id": 0,
"observed_center_px": [
955.0,
846.5
],
"projected_center_px": [
961.9010620117188,
849.4400024414062
],
"reprojection_error_px": 7.501217984105138,
"confidence": 0.08099931081136068
},
{
"marker_id": 50,
"observed_center_px": [
604.0,
825.0
],
"projected_center_px": [
603.9185791015625,
824.517333984375
],
"reprojection_error_px": 0.48948528613399855,
"confidence": 0.0777460225423177
},
{
"marker_id": 102,
"observed_center_px": [
1092.25,
805.75
],
"projected_center_px": [
1091.0667724609375,
805.486572265625
],
"reprojection_error_px": 1.2121970056198974,
"confidence": 0.047255722987798995
},
{
"marker_id": 48,
"observed_center_px": [
1190.25,
794.25
],
"projected_center_px": [
1188.7596435546875,
793.425048828125
],
"reprojection_error_px": 1.7034396878265008,
"confidence": 0.04925312470753987
}
]
},
"qa": {
"sanity_notes": []
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 KiB

View File

@@ -0,0 +1,24 @@
marker_id,link,set,num_cameras,x_mm,y_mm,z_mm,nx,ny,nz,model_x_mm,model_y_mm,model_z_mm,dist_to_model_mm,delta_z_mm,edge_length_mm
47,Board,A0,2,338.21,-283.65,-29.38,-0.01811,0.04176,0.99896,337.68,-283.42,-28.83,0.795,-0.55,23.48
50,Board,A0,2,575.98,208.79,-25.09,-0.03612,0.04104,0.9985,578.55,209.43,-26.11,2.833,1.018,23.17
53,Board,A0,2,489.19,211.22,-25.76,0.01113,0.06244,0.99799,491.43,211.87,-27.1,2.692,1.344,24.18
55,Board,A0,3,277.02,-257.91,-28.87,-0.01583,0.04502,0.99886,277.76,-258.03,-29.52,0.994,0.65,23.43
79,Board,A0,3,307.81,-155.31,-28.77,0.00426,0.01709,0.99984,308.77,-155.27,-29.18,1.043,0.406,23.82
86,Board,A0,2,368.74,294.18,-28.11,-0.03979,0.01354,0.99912,370,294.53,-28.5,1.368,0.386,23.39
96,Board,A0,2,365.09,-183.98,-28.16,0.00349,0.04632,0.99892,365.58,-183.99,-28.52,0.61,0.362,24.26
97,Board,A0,2,294.93,-355.08,-28.65,0.00468,0.03153,0.99949,296.09,-355.58,-29.3,1.419,0.645,23.58
180,unknown,,3,270.07,-446.86,148.04,-0.6007,-0.30616,0.73853,,,,,,23.82
189,unknown,,3,261.93,-431.5,114.4,-0.98376,0.05677,0.17027,,,,,,23.82
197,unknown,,2,139.62,-123.85,109.07,-0.99911,0.0245,-0.03434,,,,,,24.56
201,unknown,,3,83.47,58.87,89.97,-0.99933,-0.00241,0.03656,,,,,,24.35
204,unknown,,3,118.73,130.98,111.23,-0.00447,0.0504,0.99872,,,,,,23.78
218,unknown,,3,244.98,-235.08,130.03,-0.91277,0.07538,0.40146,,,,,,24.08
219,unknown,,3,244.93,-341.29,141.72,-0.92296,0.0384,0.38298,,,,,,24.33
226,unknown,,3,278.0,-121.22,140.05,0.03732,0.14573,0.98862,,,,,,23.84
229,unknown,,2,188.74,-117.78,139.92,-0.01469,0.22678,0.97384,,,,,,23.47
243,unknown,,2,187.86,-159.2,115.38,0.0115,-0.98548,0.16942,,,,,,24.33
camera_id,x_mm,y_mm,z_mm,dir_x,dir_y,dir_z
cam0,-720.15,-487.06,670.71,0.85714,0.40418,-0.3193
cam1,-264.65,-544.17,843.83,0.56901,0.32489,-0.75543
cam2,-584.63,-39.6,423.32,0.98357,-0.02788,-0.17837
1 marker_id link set num_cameras x_mm y_mm z_mm nx ny nz model_x_mm model_y_mm model_z_mm dist_to_model_mm delta_z_mm edge_length_mm
2 47 Board A0 2 338.21 -283.65 -29.38 -0.01811 0.04176 0.99896 337.68 -283.42 -28.83 0.795 -0.55 23.48
3 50 Board A0 2 575.98 208.79 -25.09 -0.03612 0.04104 0.9985 578.55 209.43 -26.11 2.833 1.018 23.17
4 53 Board A0 2 489.19 211.22 -25.76 0.01113 0.06244 0.99799 491.43 211.87 -27.1 2.692 1.344 24.18
5 55 Board A0 3 277.02 -257.91 -28.87 -0.01583 0.04502 0.99886 277.76 -258.03 -29.52 0.994 0.65 23.43
6 79 Board A0 3 307.81 -155.31 -28.77 0.00426 0.01709 0.99984 308.77 -155.27 -29.18 1.043 0.406 23.82
7 86 Board A0 2 368.74 294.18 -28.11 -0.03979 0.01354 0.99912 370 294.53 -28.5 1.368 0.386 23.39
8 96 Board A0 2 365.09 -183.98 -28.16 0.00349 0.04632 0.99892 365.58 -183.99 -28.52 0.61 0.362 24.26
9 97 Board A0 2 294.93 -355.08 -28.65 0.00468 0.03153 0.99949 296.09 -355.58 -29.3 1.419 0.645 23.58
10 180 unknown 3 270.07 -446.86 148.04 -0.6007 -0.30616 0.73853 23.82
11 189 unknown 3 261.93 -431.5 114.4 -0.98376 0.05677 0.17027 23.82
12 197 unknown 2 139.62 -123.85 109.07 -0.99911 0.0245 -0.03434 24.56
13 201 unknown 3 83.47 58.87 89.97 -0.99933 -0.00241 0.03656 24.35
14 204 unknown 3 118.73 130.98 111.23 -0.00447 0.0504 0.99872 23.78
15 218 unknown 3 244.98 -235.08 130.03 -0.91277 0.07538 0.40146 24.08
16 219 unknown 3 244.93 -341.29 141.72 -0.92296 0.0384 0.38298 24.33
17 226 unknown 3 278.0 -121.22 140.05 0.03732 0.14573 0.98862 23.84
18 229 unknown 2 188.74 -117.78 139.92 -0.01469 0.22678 0.97384 23.47
19 243 unknown 2 187.86 -159.2 115.38 0.0115 -0.98548 0.16942 24.33
20 camera_id x_mm y_mm z_mm dir_x dir_y dir_z
21 cam0 -720.15 -487.06 670.71 0.85714 0.40418 -0.3193
22 cam1 -264.65 -544.17 843.83 0.56901 0.32489 -0.75543
23 cam2 -584.63 -39.6 423.32 0.98357 -0.02788 -0.17837

View File

@@ -0,0 +1,859 @@
{
"schema_version": "1.1",
"stage": "corner_marker_poses",
"created_utc": "2026-06-12T19:02:50Z",
"summary": {
"num_cameras": 3,
"num_markers": 18
},
"cameras": [
{
"camera_id": "cam0",
"position_m": [
-0.7201544100074937,
-0.48705793983084256,
0.6707111069456531
],
"position_mm": [
-720.1544100074937,
-487.05793983084254,
670.711106945653
],
"direction": [
0.8571406006813049,
0.4041753113269806,
-0.31929975748062134
]
},
{
"camera_id": "cam1",
"position_m": [
-0.26465423915458053,
-0.5441729848160466,
0.8438284183851406
],
"position_mm": [
-264.6542391545805,
-544.1729848160466,
843.8284183851406
],
"direction": [
0.5690050721168518,
0.3248927593231201,
-0.7554323077201843
]
},
{
"camera_id": "cam2",
"position_m": [
-0.5846257821893669,
-0.03959848327167603,
0.42331815786922655
],
"position_mm": [
-584.6257821893669,
-39.59848327167603,
423.3181578692265
],
"direction": [
0.9835684895515442,
-0.027876116335392,
-0.17837022244930267
]
}
],
"markers": [
{
"marker_id": 47,
"link": "Board",
"set": "A0",
"position_m": [
0.3382068063546062,
-0.283648872885339,
-0.029379639886670493
],
"position_mm": [
338.2068063546062,
-283.648872885339,
-29.379639886670493
],
"normal": [
-0.018107012058621065,
0.04175644919334975,
0.998963730605407
],
"corners_m": [
[
0.3270971794343852,
-0.2957310463110258,
-0.029221651617277106
],
[
0.32681533448254657,
-0.27097384271065406,
-0.029987357739541844
],
[
0.3506877155863978,
-0.2719724348106855,
-0.02977414879802638
],
[
0.34822699591509515,
-0.2959181677089907,
-0.02853540139183664
]
],
"num_cameras": 2,
"edge_length_mm": 23.47758191868563
},
{
"marker_id": 50,
"link": "Board",
"set": "A0",
"position_m": [
0.5759847970558043,
0.20878982981596897,
-0.025091914342401593
],
"position_mm": [
575.9847970558043,
208.78982981596897,
-25.091914342401594
],
"normal": [
-0.036121234231723635,
0.04104252459693691,
0.9985042651948397
],
"corners_m": [
[
0.5642598164571903,
0.1969085212587881,
-0.024955560923412376
],
[
0.5657891012480536,
0.22127053421363824,
-0.02605005660904709
],
[
0.587089164396768,
0.22065706943805213,
-0.02510147296517567
],
[
0.5868011061212057,
0.19632319435339737,
-0.02426056687197123
]
],
"num_cameras": 2,
"edge_length_mm": 23.168547203402927
},
{
"marker_id": 53,
"link": "Board",
"set": "A0",
"position_m": [
0.4891900163881931,
0.21121944547444496,
-0.025756167733611703
],
"position_mm": [
489.1900163881931,
211.21944547444497,
-25.756167733611704
],
"normal": [
0.011128086685223951,
0.06244141012972508,
0.9979865910861416
],
"corners_m": [
[
0.47688131408744444,
0.19956020855831932,
-0.02543676379660587
],
[
0.4777222296928443,
0.22325892767153135,
-0.02589688723132351
],
[
0.5030412649428535,
0.22349402064084614,
-0.02713433602194038
],
[
0.49911525682963026,
0.19856462502708302,
-0.024556683884577053
]
],
"num_cameras": 2,
"edge_length_mm": 24.177500966099156
},
{
"marker_id": 55,
"link": "Board",
"set": "A0",
"position_m": [
0.2770178023390555,
-0.2579076972856531,
-0.028869922299775135
],
"position_mm": [
277.0178023390555,
-257.9076972856531,
-28.869922299775133
],
"normal": [
-0.01583380225649627,
0.045024013953082864,
0.9988604151099667
],
"corners_m": [
[
0.2646384399617925,
-0.26941312561510916,
-0.028893072128895057
],
[
0.26635359388112984,
-0.24584468471889775,
-0.029239766413308624
],
[
0.2895062470545584,
-0.24628628433164657,
-0.029534445141012822
],
[
0.2875729284587412,
-0.270086694476959,
-0.027812405515884042
]
],
"num_cameras": 3,
"edge_length_mm": 23.425669496829165
},
{
"marker_id": 79,
"link": "Board",
"set": "A0",
"position_m": [
0.30781029761263834,
-0.15531229877541092,
-0.028774290387492463
],
"position_mm": [
307.81029761263835,
-155.3122987754109,
-28.774290387492464
],
"normal": [
0.004264964103407638,
0.017090366490424003,
0.9998448526918662
],
"corners_m": [
[
0.2950491134028762,
-0.1666986769644144,
-0.0286124580353631
],
[
0.29645496103050645,
-0.14332378362751674,
-0.02884344825563282
],
[
0.32056304841764144,
-0.14383701753747136,
-0.02911148207840972
],
[
0.3191740675995295,
-0.1673897169722412,
-0.02852977318056421
]
],
"num_cameras": 3,
"edge_length_mm": 23.81727285880101
},
{
"marker_id": 86,
"link": "Board",
"set": "A0",
"position_m": [
0.36873599762280646,
0.2941772216580727,
-0.02811368666082353
],
"position_mm": [
368.73599762280645,
294.1772216580727,
-28.11368666082353
],
"normal": [
-0.039786243832423664,
0.013542559632416573,
0.9991164365980121
],
"corners_m": [
[
0.35730152483811345,
0.2825235617088924,
-0.028791608861767973
],
[
0.3575701177680951,
0.30640754823690936,
-0.02836618262469665
],
[
0.38090929677572377,
0.3060493150180208,
-0.028140304510588368
],
[
0.37916305110929366,
0.2817284616684682,
-0.027156650646241134
]
],
"num_cameras": 2,
"edge_length_mm": 23.39314843955663
},
{
"marker_id": 96,
"link": "Board",
"set": "A0",
"position_m": [
0.3650887630681655,
-0.18397711545125672,
-0.028158049732942825
],
"position_mm": [
365.0887630681655,
-183.97711545125674,
-28.158049732942825
],
"normal": [
0.0034855659822991825,
0.0463217546305117,
0.9989204902682364
],
"corners_m": [
[
0.3512750995973868,
-0.19554905736849995,
-0.02766409607905227
],
[
0.35448792900391174,
-0.1712778474780895,
-0.028616964648064225
],
[
0.37857591951687286,
-0.1728017233554196,
-0.02881945565025606
],
[
0.3760161041544907,
-0.19627983360301782,
-0.02753168255439874
]
],
"num_cameras": 2,
"edge_length_mm": 24.260734676484557
},
{
"marker_id": 97,
"link": "Board",
"set": "A0",
"position_m": [
0.29492779052997814,
-0.35508342317576364,
-0.028654991954414274
],
"position_mm": [
294.92779052997815,
-355.08342317576364,
-28.654991954414275
],
"normal": [
0.004681394442789528,
0.031528787414058866,
0.9994918809626571
],
"corners_m": [
[
0.28269220128105094,
-0.3667571800635026,
-0.028043787429016653
],
[
0.283798505808649,
-0.34280209013807944,
-0.029168416838632992
],
[
0.3076265983603983,
-0.34365117082339447,
-0.028893228975659168
],
[
0.30559385666981426,
-0.3671232516780781,
-0.028514534574348285
]
],
"num_cameras": 2,
"edge_length_mm": 23.581045124118244
},
{
"marker_id": 180,
"link": "unknown",
"set": "",
"position_m": [
0.2700679139271133,
-0.44686472383491854,
0.1480405275508206
],
"position_mm": [
270.0679139271133,
-446.86472383491855,
148.0405275508206
],
"normal": [
-0.6006987691916348,
-0.30616168893928486,
0.7385296262963997
],
"corners_m": [
[
0.2724040059573754,
-0.46287971575872333,
0.14337517293259983
],
[
0.2567970204992979,
-0.4452330595691268,
0.1378500853836622
],
[
0.26770741253168934,
-0.43075481328373466,
0.15287142870791812
],
[
0.2833632167200905,
-0.4485913067280894,
0.15806542317910227
]
],
"num_cameras": 3,
"edge_length_mm": 23.81865678799756
},
{
"marker_id": 189,
"link": "unknown",
"set": "",
"position_m": [
0.2619331461846941,
-0.4315015407266738,
0.11440467777749919
],
"position_mm": [
261.9331461846941,
-431.5015407266738,
114.40467777749919
],
"normal": [
-0.9837600894643872,
0.05676804970200547,
0.1702747042577131
],
"corners_m": [
[
0.2629683312797077,
-0.44339902827383426,
0.1263141698725682
],
[
0.25955133977491596,
-0.44364869879156055,
0.10275359915421856
],
[
0.2602882024531369,
-0.4194295798201675,
0.10285898753536349
],
[
0.2649247112310159,
-0.4195288560211329,
0.12569195454784654
]
],
"num_cameras": 3,
"edge_length_mm": 23.824098078351042
},
{
"marker_id": 197,
"link": "unknown",
"set": "",
"position_m": [
0.1396176490192085,
-0.12385297384189062,
0.10907194175975259
],
"position_mm": [
139.6176490192085,
-123.85297384189062,
109.07194175975259
],
"normal": [
-0.9991097121920407,
0.024499695775306266,
-0.034344547026495434
],
"corners_m": [
[
0.13847051764570883,
-0.13314309476411054,
0.12437432474366612
],
[
0.13996943011617297,
-0.13834533704731108,
0.09964512414263772
],
[
0.1399539369649718,
-0.11409689141471022,
0.09439771280013202
],
[
0.14007671134998043,
-0.10982657214143063,
0.1178706053525745
]
],
"num_cameras": 2,
"edge_length_mm": 24.560728280074386
},
{
"marker_id": 201,
"link": "unknown",
"set": "",
"position_m": [
0.08347346375926307,
0.058868306266726726,
0.08996708205955196
],
"position_mm": [
83.47346375926307,
58.86830626672673,
89.96708205955197
],
"normal": [
-0.9993284387279755,
-0.002414558705698657,
0.036562842555848886
],
"corners_m": [
[
0.08400974979366777,
0.07059233490731219,
0.10191583759078152
],
[
0.0838306114243409,
0.046255571317921074,
0.10227112657351876
],
[
0.08317311987835356,
0.04707631030171191,
0.07762705998064305
],
[
0.08288037394069,
0.07154900853996174,
0.07805430409326453
]
],
"num_cameras": 3,
"edge_length_mm": 24.34802054876952
},
{
"marker_id": 204,
"link": "unknown",
"set": "",
"position_m": [
0.11872733362211589,
0.13097920872071422,
0.11123470474221374
],
"position_mm": [
118.72733362211589,
130.9792087207142,
111.23470474221374
],
"normal": [
-0.004474508481635519,
0.050403773391193646,
0.9987188985904778
],
"corners_m": [
[
0.10753123297431019,
0.14312043861125584,
0.11047460533287934
],
[
0.13057168333051472,
0.14323550721555423,
0.11076512105994221
],
[
0.12999608107253446,
0.11866552590076498,
0.1118113706679391
],
[
0.10681033711110417,
0.11889536315528176,
0.1118877219080943
]
],
"num_cameras": 3,
"edge_length_mm": 23.776380533217246
},
{
"marker_id": 218,
"link": "unknown",
"set": "",
"position_m": [
0.24498463899342335,
-0.23507985527427827,
0.13003180301573652
],
"position_mm": [
244.98463899342335,
-235.07985527427826,
130.03180301573653
],
"normal": [
-0.9127702932767556,
0.07538344538928804,
0.40145700625684166
],
"corners_m": [
[
0.24018220976991755,
-0.22382404128610536,
0.11841235289517826
],
[
0.2508508990912934,
-0.222061411855815,
0.13955893756722973
],
[
0.24874490293884877,
-0.24666254033730997,
0.14212378718065807
],
[
0.24016054417363372,
-0.24777142761788273,
0.12003213441988007
]
],
"num_cameras": 3,
"edge_length_mm": 24.075952509300244
},
{
"marker_id": 219,
"link": "unknown",
"set": "",
"position_m": [
0.24492634517495548,
-0.3412939777778298,
0.14171735878806702
],
"position_mm": [
244.9263451749555,
-341.2939777778298,
141.717358788067
],
"normal": [
-0.9229596027481167,
0.038404982472089344,
0.38297601624169264
],
"corners_m": [
[
0.2402258811916882,
-0.33028021817912206,
0.12939804197898108
],
[
0.24964431727563502,
-0.32798578574893655,
0.1516409893135448
],
[
0.2495276940792813,
-0.3524312407295393,
0.15403575081900053
],
[
0.2403074881532174,
-0.35447866645372134,
0.13179465304074162
]
],
"num_cameras": 3,
"edge_length_mm": 24.326673816624254
},
{
"marker_id": 226,
"link": "unknown",
"set": "",
"position_m": [
0.27799610734447416,
-0.12122434356148043,
0.14005165088777843
],
"position_mm": [
277.9961073444742,
-121.22434356148042,
140.05165088777844
],
"normal": [
0.03731793637335781,
0.1457267519419907,
0.9886207995957154
],
"corners_m": [
[
0.26692866472298493,
-0.10937534087812126,
0.1390049498949989
],
[
0.2908297897994939,
-0.10923905053510946,
0.1375200769839389
],
[
0.2886338783508827,
-0.13306284844002014,
0.14168648903554654
],
[
0.26559209650453514,
-0.13322013439267086,
0.1419950876366295
]
],
"num_cameras": 3,
"edge_length_mm": 23.836379979175288
},
{
"marker_id": 229,
"link": "unknown",
"set": "",
"position_m": [
0.18874226613268555,
-0.117779507204062,
0.13991658869135887
],
"position_mm": [
188.74226613268556,
-117.779507204062,
139.91658869135887
],
"normal": [
-0.014692271370873252,
0.2267766917479725,
0.9738359560222707
],
"corners_m": [
[
0.177271340819633,
-0.10627990356151631,
0.1368832551368689
],
[
0.19958206178460242,
-0.10578668860377353,
0.1374633060421795
],
[
0.2006918731846586,
-0.12978687054749005,
0.14272420328007737
],
[
0.17742378874184825,
-0.12926456610346812,
0.14259559030630972
]
],
"num_cameras": 2,
"edge_length_mm": 23.469359052921362
},
{
"marker_id": 243,
"link": "unknown",
"set": "",
"position_m": [
0.1878617043951002,
-0.15919980365137432,
0.11538032966353823
],
"position_mm": [
187.8617043951002,
-159.1998036513743,
115.38032966353823
],
"normal": [
0.01149660429764313,
-0.985476260484058,
0.16942363504535207
],
"corners_m": [
[
0.17533213154955338,
-0.1574797975819566,
0.12864524484636664
],
[
0.19965827187066756,
-0.15655217909018093,
0.1272435318283527
],
[
0.19909579361294027,
-0.1615872507396788,
0.10376610837024908
],
[
0.17736062054723956,
-0.1611799871936809,
0.10186643360918454
]
],
"num_cameras": 2,
"edge_length_mm": 24.333269401235214
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,341 @@
{
"schema_version": "1.0",
"created_utc": "2026-06-12T19:02:44Z",
"source": {
"detection_json": "/app/data/board/20260612_190241/cam0_aruco_detection.json",
"robot_json": "/app/scripts/robot_1781069752019.json"
},
"camera": {
"camera_id": "cam0",
"camera_matrix": [
[
1424.7584228515625,
0.0,
635.95947265625
],
[
0.0,
1421.5770263671875,
482.1744384765625
],
[
0.0,
0.0,
1.0
]
],
"distortion_coefficients": [
0.05634751915931702,
0.33765655755996704,
0.002130246954038739,
-0.004022662527859211,
-1.182201862335205
]
},
"estimation": {
"method": "single_camera_marker_center_lm",
"description": "Rigid init from per-marker pose estimates, followed by LM on normalized marker-center reprojection residuals.",
"marker_size_m": 0.025,
"num_used_markers": 10,
"used_marker_ids": [
52,
83,
55,
101,
47,
79,
96,
82,
62,
72
],
"history": {
"iters": [
0,
1,
2,
3
],
"rms": [
0.00945903620406907,
0.0006630901752764398,
0.00024358128156231842,
0.00024356018287453274
],
"lambda": [
0.001,
0.0005,
0.00025,
0.000125
]
},
"residual_rms_px": 0.5010493898996421,
"residual_median_px": 0.5177531918766651,
"residual_max_px": 0.7327763807349081,
"sigma2_normalized": 8.474508891706403e-08
},
"camera_pose": {
"world_to_camera": {
"rotation_matrix": [
[
0.4051128029823303,
-0.9118297100067139,
-0.06670987606048584
],
[
-0.3181094825267792,
-0.07217267155647278,
-0.9453028440475464
],
[
0.8571406006813049,
0.4041753113269806,
-0.31929975748062134
]
],
"translation_m": [
-0.10762709379196167,
0.3697848916053772,
1.0282882452011108
],
"rvec_rad": [
1.6183746501472032,
-1.1079365352846473,
0.7120246782560965
]
},
"camera_in_world": {
"position_m": [
-0.7201544046401978,
-0.48705795407295227,
0.670711100101471
],
"position_mm": [
-720.1544189453125,
-487.0579528808594,
670.7111206054688
],
"orientation_deg": {
"roll": 128.308837890625,
"pitch": -58.99702453613281,
"yaw": -38.14030456542969
}
},
"uncertainty": {
"pose_covariance_6x6": [
[
1.6494448567854165e-06,
-1.0100102055724762e-06,
-9.610355851455482e-07,
-2.1102980967596137e-08,
4.904850430857246e-07,
1.7764282401590815e-07
],
[
-1.0100102055724724e-06,
1.9449186295263454e-06,
-1.3398593790548594e-06,
-5.664159207565906e-07,
-4.0008472398099634e-07,
-2.7873012989396937e-07
],
[
-9.610355851455558e-07,
-1.3398593790548505e-06,
5.152052303362552e-06,
1.1541982155319063e-06,
-2.6838384862376767e-07,
2.058561731874794e-07
],
[
-2.110298096759818e-08,
-5.664159207565888e-07,
1.1541982155319078e-06,
3.1719856374559714e-07,
1.493155616024482e-08,
7.849338883794885e-08
],
[
4.904850430857252e-07,
-4.0008472398099804e-07,
-2.683838486237657e-07,
1.4931556160245477e-08,
1.941921387291911e-07,
1.3331392216799263e-07
],
[
1.7764282401590812e-07,
-2.7873012989396995e-07,
2.0585617318747894e-07,
7.849338883794892e-08,
1.3331392216799269e-07,
3.307203443975521e-07
]
],
"parameter_std": {
"rvec_std_deg": [
0.0735853793212305,
0.07990488863183044,
0.13005072094022094
],
"tvec_std_m": [
0.0005632038385394733,
0.0004406723711888358,
0.0005750829021954593
]
},
"camera_center_std_m": [
0.0016931038541462763,
0.002371620659928403,
0.0018111292689069259
],
"camera_center_std_mm": [
1.6931038541462764,
2.3716206599284027,
1.8111292689069258
],
"orientation_std_deg": {
"roll": 0.19809662739478043,
"pitch": 0.09849499317344503,
"yaw": 0.14748394477383087
}
}
},
"observations": {
"markers": [
{
"marker_id": 52,
"observed_center_px": [
321.0,
900.75
],
"projected_center_px": [
321.3458557128906,
901.2568359375
],
"reprojection_error_px": 0.6135950143870029,
"confidence": 0.2939513606264565
},
{
"marker_id": 83,
"observed_center_px": [
158.25,
906.25
],
"projected_center_px": [
157.55067443847656,
906.4688720703125
],
"reprojection_error_px": 0.7327763807349081,
"confidence": 0.21535768663577426
},
{
"marker_id": 55,
"observed_center_px": [
932.5,
884.0
],
"projected_center_px": [
932.4688110351562,
884.16552734375
],
"reprojection_error_px": 0.16844005775632867,
"confidence": 0.17966197138346596
},
{
"marker_id": 101,
"observed_center_px": [
253.75,
866.25
],
"projected_center_px": [
253.99021911621094,
865.9517211914062
],
"reprojection_error_px": 0.38298233829939315,
"confidence": 0.24405414656521807
},
{
"marker_id": 47,
"observed_center_px": [
979.0,
849.75
],
"projected_center_px": [
978.5487670898438,
849.3796997070312
],
"reprojection_error_px": 0.5837237755829554,
"confidence": 0.14653797618713008
},
{
"marker_id": 79,
"observed_center_px": [
821.25,
840.75
],
"projected_center_px": [
821.6685180664062,
840.507080078125
],
"reprojection_error_px": 0.4839085247773409,
"confidence": 0.17684877485794218
},
{
"marker_id": 96,
"observed_center_px": [
871.25,
811.25
],
"projected_center_px": [
871.4161376953125,
811.4320678710938
],
"reprojection_error_px": 0.24647605053708455,
"confidence": 0.15445980772540427
},
{
"marker_id": 82,
"observed_center_px": [
327.0,
805.75
],
"projected_center_px": [
326.9396667480469,
805.1625366210938
],
"reprojection_error_px": 0.59055340389095,
"confidence": 0.1601770759727448
},
{
"marker_id": 62,
"observed_center_px": [
870.5,
789.0
],
"projected_center_px": [
870.1605834960938,
789.1346435546875
],
"reprojection_error_px": 0.36514716203583897,
"confidence": 0.11991480235932307
},
{
"marker_id": 72,
"observed_center_px": [
537.0,
710.5
],
"projected_center_px": [
537.47705078125,
710.7769165039062
],
"reprojection_error_px": 0.5515978589759895,
"confidence": 0.10355555555555554
}
]
},
"qa": {
"sanity_notes": []
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,778 @@
{
"schema_version": "1.0",
"created_utc": "2026-06-12T19:02:47Z",
"source": {
"detection_json": "/app/data/board/20260612_190241/cam1_aruco_detection.json",
"robot_json": "/app/scripts/robot_1781069752019.json"
},
"camera": {
"camera_id": "cam1",
"camera_matrix": [
[
1367.5723876953125,
0.0,
672.1165771484375
],
[
0.0,
1372.3011474609375,
445.8396911621094
],
[
0.0,
0.0,
1.0
]
],
"distortion_coefficients": [
0.01016925647854805,
0.7656787633895874,
-0.0031530377455055714,
-0.00288817984983325,
-2.490830183029175
]
},
"estimation": {
"method": "single_camera_marker_center_lm",
"description": "Rigid init from per-marker pose estimates, followed by LM on normalized marker-center reprojection residuals.",
"marker_size_m": 0.025,
"num_used_markers": 41,
"used_marker_ids": [
69,
64,
58,
66,
103,
95,
51,
97,
77,
55,
79,
85,
57,
59,
0,
48,
86,
102,
92,
71,
78,
84,
53,
56,
65,
208,
63,
80,
89,
68,
67,
99,
50,
98,
87,
76,
90,
91,
88,
94,
49
],
"history": {
"iters": [
0,
1,
2,
3,
4
],
"rms": [
0.01626831058482708,
0.0019037918592798373,
0.001247731562271114,
0.0012476908106882525,
0.0012476908087616105
],
"lambda": [
0.001,
0.0005,
0.00025,
0.000125,
6.25e-05
]
},
"residual_rms_px": 2.441060868215605,
"residual_median_px": 1.6480122900302094,
"residual_max_px": 7.179998518731448,
"sigma2_normalized": 1.679632276973586e-06
},
"camera_pose": {
"world_to_camera": {
"rotation_matrix": [
[
-0.8173407912254333,
0.12236006557941437,
-0.5630115866661072
],
[
-0.0904836505651474,
0.9378020763397217,
0.3351716101169586
],
[
0.5690050721168518,
0.3248927593231201,
-0.7554323077201843
]
],
"translation_m": [
0.3253575265407562,
0.20355235040187836,
0.964842677116394
],
"rvec_rad": [
-0.022556792807664847,
-2.484197746332878,
-0.4670831287352907
]
},
"camera_in_world": {
"position_m": [
-0.2646542489528656,
-0.544173002243042,
0.8438284397125244
],
"position_mm": [
-264.65423583984375,
-544.1729736328125,
843.8284301757812
],
"orientation_deg": {
"roll": 156.7286376953125,
"pitch": -34.68087387084961,
"yaw": -173.68280029296875
}
},
"uncertainty": {
"pose_covariance_6x6": [
[
9.020495954543757e-07,
-2.5186644463900055e-07,
4.1544562424560804e-07,
-2.7185362313316923e-08,
2.3516989168739422e-07,
2.5860929096456504e-07
],
[
-2.5186644463900463e-07,
3.331555463970283e-06,
-5.164756336945231e-07,
-9.398036900652846e-07,
1.9612304620126222e-07,
-2.6666374844345805e-06
],
[
4.1544562424560153e-07,
-5.164756336945163e-07,
3.975040776698669e-06,
-2.2358239196827201e-07,
-2.9935451057369255e-07,
5.679794091450418e-08
],
[
-2.7185362313315162e-08,
-9.398036900652857e-07,
-2.2358239196826953e-07,
3.657699708448382e-07,
-5.039174278856826e-08,
7.731255031871781e-07
],
[
2.3516989168739477e-07,
1.9612304620126273e-07,
-2.9935451057369043e-07,
-5.039174278856851e-08,
1.8174642641776504e-07,
-7.871456697548212e-08
],
[
2.5860929096456864e-07,
-2.6666374844345796e-06,
5.679794091451072e-08,
7.73125503187177e-07,
-7.871456697548164e-08,
3.0109863485192825e-06
]
],
"parameter_std": {
"rvec_std_deg": [
0.0544174065900163,
0.10457940252524857,
0.11423348503526454
],
"tvec_std_m": [
0.0006047891953770654,
0.0004263172837427132,
0.0017352193949236744
]
},
"camera_center_std_m": [
0.0013365683362617945,
0.0016919316300862315,
0.0022104681815435802
],
"camera_center_std_mm": [
1.3365683362617944,
1.6919316300862315,
2.2104681815435803
],
"orientation_std_deg": {
"roll": 0.1259555176900748,
"pitch": 0.0993322135565253,
"yaw": 0.07432949479267956
}
}
},
"observations": {
"markers": [
{
"marker_id": 69,
"observed_center_px": [
1141.0,
352.25
],
"projected_center_px": [
1143.9259033203125,
352.16204833984375
],
"reprojection_error_px": 2.927224920353739,
"confidence": 0.7813063460689879
},
{
"marker_id": 64,
"observed_center_px": [
1181.75,
489.25
],
"projected_center_px": [
1186.3818359375,
489.28424072265625
],
"reprojection_error_px": 4.631962497581832,
"confidence": 0.725685890970946
},
{
"marker_id": 58,
"observed_center_px": [
1076.75,
435.5
],
"projected_center_px": [
1078.8704833984375,
436.0857849121094
],
"reprojection_error_px": 2.199907681313931,
"confidence": 0.6468392962739578
},
{
"marker_id": 66,
"observed_center_px": [
859.5,
223.5
],
"projected_center_px": [
858.2955322265625,
223.2216339111328
],
"reprojection_error_px": 1.2362161205390843,
"confidence": 0.5815132553901365
},
{
"marker_id": 103,
"observed_center_px": [
1000.75,
467.5
],
"projected_center_px": [
1001.87646484375,
467.74969482421875
],
"reprojection_error_px": 1.153806981018205,
"confidence": 0.5850883428101251
},
{
"marker_id": 95,
"observed_center_px": [
894.75,
345.0
],
"projected_center_px": [
894.1392211914062,
345.0137023925781
],
"reprojection_error_px": 0.610932491024635,
"confidence": 0.514211563803094
},
{
"marker_id": 51,
"observed_center_px": [
922.5,
477.0
],
"projected_center_px": [
922.7356567382812,
477.46380615234375
],
"reprojection_error_px": 0.520240564786399,
"confidence": 0.531851742229114
},
{
"marker_id": 97,
"observed_center_px": [
747.5,
226.0
],
"projected_center_px": [
746.2076416015625,
225.6285858154297
],
"reprojection_error_px": 1.344670489938695,
"confidence": 0.4305921444470976
},
{
"marker_id": 77,
"observed_center_px": [
1120.0,
936.0
],
"projected_center_px": [
1122.4146728515625,
937.3768920898438
],
"reprojection_error_px": 2.779654080483265,
"confidence": 0.04887616439684762
},
{
"marker_id": 55,
"observed_center_px": [
780.25,
351.25
],
"projected_center_px": [
779.5296630859375,
350.7990417480469
],
"reprojection_error_px": 0.8498521134678102,
"confidence": 0.45188399047707256
},
{
"marker_id": 79,
"observed_center_px": [
759.5,
470.75
],
"projected_center_px": [
758.6536865234375,
470.7616882324219
],
"reprojection_error_px": 0.8463941844013657,
"confidence": 0.4064190860033059
},
{
"marker_id": 85,
"observed_center_px": [
551.25,
274.75
],
"projected_center_px": [
549.5010375976562,
275.5161437988281
],
"reprojection_error_px": 1.9094098054882853,
"confidence": 0.29471875217641086
},
{
"marker_id": 57,
"observed_center_px": [
455.75,
211.5
],
"projected_center_px": [
454.1186218261719,
212.99258422851562
],
"reprojection_error_px": 2.2111540935123384,
"confidence": 0.23246554692762017
},
{
"marker_id": 59,
"observed_center_px": [
451.5,
305.5
],
"projected_center_px": [
450.2358703613281,
306.5943603515625
],
"reprojection_error_px": 1.672019235068988,
"confidence": 0.23626863876654625
},
{
"marker_id": 0,
"observed_center_px": [
575.5,
521.75
],
"projected_center_px": [
576.5433349609375,
515.0587158203125
],
"reprojection_error_px": 6.772136429078395,
"confidence": 0.2561403464624635
},
{
"marker_id": 48,
"observed_center_px": [
393.5,
256.5
],
"projected_center_px": [
392.5115966796875,
258.2700500488281
],
"reprojection_error_px": 2.027318006372267,
"confidence": 0.2349324618092993
},
{
"marker_id": 86,
"observed_center_px": [
752.5,
911.5
],
"projected_center_px": [
751.4478759765625,
911.4331665039062
],
"reprojection_error_px": 1.0542446001258088,
"confidence": 0.17313725307117095
},
{
"marker_id": 102,
"observed_center_px": [
442.75,
363.0
],
"projected_center_px": [
441.2080383300781,
363.5816345214844
],
"reprojection_error_px": 1.6480122900302094,
"confidence": 0.21626223141168163
},
{
"marker_id": 92,
"observed_center_px": [
452.5,
402.0
],
"projected_center_px": [
451.4149169921875,
402.95751953125
],
"reprojection_error_px": 1.44715195697226,
"confidence": 0.20283430451772125
},
{
"marker_id": 71,
"observed_center_px": [
353.75,
292.25
],
"projected_center_px": [
353.2550354003906,
293.890380859375
],
"reprojection_error_px": 1.7134291110723934,
"confidence": 0.18959200098193724
},
{
"marker_id": 78,
"observed_center_px": [
287.0,
226.25
],
"projected_center_px": [
287.53631591796875,
228.46209716796875
],
"reprojection_error_px": 2.276182911016166,
"confidence": 0.18403537727203287
},
{
"marker_id": 84,
"observed_center_px": [
709.5,
868.25
],
"projected_center_px": [
708.224365234375,
867.7926635742188
],
"reprojection_error_px": 1.355138613433149,
"confidence": 0.22359212341431653
},
{
"marker_id": 53,
"observed_center_px": [
636.75,
805.75
],
"projected_center_px": [
635.7542114257812,
805.0380249023438
],
"reprojection_error_px": 1.224133744419799,
"confidence": 0.21879296858966374
},
{
"marker_id": 56,
"observed_center_px": [
621.25,
764.0
],
"projected_center_px": [
620.3877563476562,
763.2960205078125
],
"reprojection_error_px": 1.1131267858728673,
"confidence": 0.2385569066052338
},
{
"marker_id": 65,
"observed_center_px": [
311.25,
275.5
],
"projected_center_px": [
311.5706481933594,
277.46697998046875
],
"reprojection_error_px": 1.9929439298358285,
"confidence": 0.16222940613793577
},
{
"marker_id": 208,
"observed_center_px": [
474.75,
507.5
],
"projected_center_px": [
475.4454345703125,
500.353759765625
],
"reprojection_error_px": 7.179998518731448,
"confidence": 0.1907798064289334
},
{
"marker_id": 63,
"observed_center_px": [
342.5,
339.5
],
"projected_center_px": [
342.5025329589844,
340.3869934082031
],
"reprojection_error_px": 0.8869970248411276,
"confidence": 0.1872160426130633
},
{
"marker_id": 80,
"observed_center_px": [
260.5,
233.75
],
"projected_center_px": [
261.1359558105469,
235.85646057128906
],
"reprojection_error_px": 2.200367226479202,
"confidence": 0.14310086257917032
},
{
"marker_id": 89,
"observed_center_px": [
168.75,
196.75
],
"projected_center_px": [
171.71939086914062,
199.38575744628906
],
"reprojection_error_px": 3.9704533052793805,
"confidence": 0.14766288355209548
},
{
"marker_id": 68,
"observed_center_px": [
561.0,
747.5
],
"projected_center_px": [
560.0670166015625,
747.2664184570312
],
"reprojection_error_px": 0.9617787474131714,
"confidence": 0.20545688804395207
},
{
"marker_id": 67,
"observed_center_px": [
613.25,
843.5
],
"projected_center_px": [
611.8975830078125,
842.6251831054688
],
"reprojection_error_px": 1.610694359496793,
"confidence": 0.20981483972158477
},
{
"marker_id": 99,
"observed_center_px": [
199.25,
244.25
],
"projected_center_px": [
201.05361938476562,
246.8247528076172
],
"reprojection_error_px": 3.1436276664762515,
"confidence": 0.12748264942192578
},
{
"marker_id": 50,
"observed_center_px": [
566.75,
783.5
],
"projected_center_px": [
565.5367431640625,
782.8196411132812
],
"reprojection_error_px": 1.3909997716341476,
"confidence": 0.19258326562034714
},
{
"marker_id": 98,
"observed_center_px": [
578.25,
869.0
],
"projected_center_px": [
576.6578369140625,
868.5824584960938
],
"reprojection_error_px": 1.6460024907959028,
"confidence": 0.1746414993457911
},
{
"marker_id": 87,
"observed_center_px": [
226.75,
318.25
],
"projected_center_px": [
227.798828125,
320.0245056152344
],
"reprojection_error_px": 2.061288581031133,
"confidence": 0.12557677906548007
},
{
"marker_id": 76,
"observed_center_px": [
477.0,
720.0
],
"projected_center_px": [
475.8730773925781,
719.6278076171875
],
"reprojection_error_px": 1.1867947307526117,
"confidence": 0.1891574364966065
},
{
"marker_id": 90,
"observed_center_px": [
527.5,
852.75
],
"projected_center_px": [
526.2864379882812,
851.8463745117188
],
"reprojection_error_px": 1.5130339650379256,
"confidence": 0.16238385004245462
},
{
"marker_id": 91,
"observed_center_px": [
472.75,
842.5
],
"projected_center_px": [
471.3303527832031,
841.0626831054688
],
"reprojection_error_px": 2.0202173337203275,
"confidence": 0.15394083692349203
},
{
"marker_id": 88,
"observed_center_px": [
441.75,
823.25
],
"projected_center_px": [
441.02813720703125,
821.6939086914062
],
"reprojection_error_px": 1.7153734440504942,
"confidence": 0.14873303329926613
},
{
"marker_id": 94,
"observed_center_px": [
348.5,
689.0
],
"projected_center_px": [
348.7214050292969,
688.1775512695312
],
"reprojection_error_px": 0.8517288895227217,
"confidence": 0.11959806595635586
},
{
"marker_id": 49,
"observed_center_px": [
265.75,
655.25
],
"projected_center_px": [
267.3890075683594,
653.9424438476562
],
"reprojection_error_px": 2.0966756784661054,
"confidence": 0.12422365184568084
}
]
},
"qa": {
"sanity_notes": []
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,341 @@
{
"schema_version": "1.0",
"created_utc": "2026-06-12T19:02:50Z",
"source": {
"detection_json": "/app/data/board/20260612_190241/cam2_aruco_detection.json",
"robot_json": "/app/scripts/robot_1781069752019.json"
},
"camera": {
"camera_id": "cam2",
"camera_matrix": [
[
1388.99072265625,
0.0,
933.082763671875
],
[
0.0,
1394.8729248046875,
562.4996948242188
],
[
0.0,
0.0,
1.0
]
],
"distortion_coefficients": [
0.019531700760126114,
-0.11213663965463638,
0.0026758278254419565,
0.0007694826927036047,
0.05339815095067024
]
},
"estimation": {
"method": "single_camera_marker_center_lm",
"description": "Rigid init from per-marker pose estimates, followed by LM on normalized marker-center reprojection residuals.",
"marker_size_m": 0.025,
"num_used_markers": 10,
"used_marker_ids": [
73,
55,
97,
79,
86,
47,
54,
96,
53,
50
],
"history": {
"iters": [
0,
1,
2,
3
],
"rms": [
0.00675018017174477,
0.00030810421229384566,
0.00017395898347590652,
0.00017395785079825019
],
"lambda": [
0.001,
0.0005,
0.00025,
0.000125
]
},
"residual_rms_px": 0.34308905267501016,
"residual_median_px": 0.31405333670877,
"residual_max_px": 0.5198413955685609,
"sigma2_normalized": 4.3230476926941007e-08
},
"camera_pose": {
"world_to_camera": {
"rotation_matrix": [
[
-0.023455562070012093,
-0.9993643760681152,
0.02684442512691021
],
[
-0.17900516092777252,
-0.02221955731511116,
-0.9835972189903259
],
[
0.9835684895515442,
-0.027876116335392,
-0.17837022244930267
]
],
"translation_m": [
-0.06464977562427521,
0.31084364652633667,
0.6494230031967163
],
"rvec_rad": [
1.3471090656498854,
-1.3485228045912157,
1.156313687922157
]
},
"camera_in_world": {
"position_m": [
-0.584625780582428,
-0.0395984873175621,
0.42331814765930176
],
"position_mm": [
-584.6257934570312,
-39.598487854003906,
423.3181457519531
],
"orientation_deg": {
"roll": -171.11752319335938,
"pitch": -79.59905242919922,
"yaw": -97.46509552001953
}
},
"uncertainty": {
"pose_covariance_6x6": [
[
3.8699833118803495e-07,
-2.0965459720288319e-07,
-4.4951122349821747e-07,
-8.844596585242352e-08,
1.5602155308698614e-07,
9.493094275809797e-09
],
[
-2.0965459720287646e-07,
6.16805924990911e-07,
-1.907025139597296e-07,
-1.8857877067802316e-07,
-1.7938071115301147e-07,
-8.085072055721061e-08
],
[
-4.495112234982262e-07,
-1.9070251395971585e-07,
1.348902402147079e-06,
4.19469316243e-07,
-1.352287343678228e-07,
7.892937004578717e-08
],
[
-8.844596585242736e-08,
-1.8857877067801895e-07,
4.1946931624300236e-07,
1.6374022243246834e-07,
-1.9105468246810816e-10,
3.8928276983301634e-08
],
[
1.5602155308698505e-07,
-1.7938071115301388e-07,
-1.3522873436781753e-07,
-1.910546824660751e-10,
9.231713777059217e-08,
3.159115056685431e-08
],
[
9.493094275808272e-09,
-8.085072055721008e-08,
7.892937004578959e-08,
3.892827698330227e-08,
3.1591150566853695e-08,
6.726641142991001e-08
]
],
"parameter_std": {
"rvec_std_deg": [
0.03564324029978236,
0.04499838227408881,
0.06654461188792467
],
"tvec_std_m": [
0.000404648270022829,
0.00030383735413966497,
0.0002593576901306572
]
},
"camera_center_std_m": [
0.0004457946862661493,
0.0011402536193186525,
0.0007659183648344579
],
"camera_center_std_mm": [
0.44579468626614926,
1.1402536193186525,
0.7659183648344579
],
"orientation_std_deg": {
"roll": 0.32271501459803387,
"pitch": 0.0438516150160676,
"yaw": 0.2927085898600246
}
}
},
"observations": {
"markers": [
{
"marker_id": 73,
"observed_center_px": [
282.5,
1029.5
],
"projected_center_px": [
282.4800720214844,
1029.4407958984375
],
"reprojection_error_px": 0.06246799156001437,
"confidence": 0.2701424963760343
},
{
"marker_id": 55,
"observed_center_px": [
1210.0,
1005.25
],
"projected_center_px": [
1210.1278076171875,
1005.594482421875
],
"reprojection_error_px": 0.3674274431666911,
"confidence": 0.207
},
{
"marker_id": 97,
"observed_center_px": [
1345.0,
993.75
],
"projected_center_px": [
1345.4345703125,
994.0352783203125
],
"reprojection_error_px": 0.5198413955685609,
"confidence": 0.20393069134818181
},
{
"marker_id": 79,
"observed_center_px": [
1052.75,
981.0
],
"projected_center_px": [
1052.5294189453125,
980.861083984375
],
"reprojection_error_px": 0.26067923025084894,
"confidence": 0.1916197164388369
},
{
"marker_id": 86,
"observed_center_px": [
426.0,
931.0
],
"projected_center_px": [
426.3905334472656,
930.916015625
],
"reprojection_error_px": 0.3994618238046201,
"confidence": 0.19005709083159952
},
{
"marker_id": 47,
"observed_center_px": [
1227.25,
964.25
],
"projected_center_px": [
1227.119384765625,
963.7993774414062
],
"reprojection_error_px": 0.46917057640522797,
"confidence": 0.1675788732801165
},
{
"marker_id": 54,
"observed_center_px": [
1289.5,
966.75
],
"projected_center_px": [
1289.375,
966.7219848632812
],
"reprojection_error_px": 0.12810092851096067,
"confidence": 0.16892695477612363
},
{
"marker_id": 96,
"observed_center_px": [
1083.5,
943.75
],
"projected_center_px": [
1083.2991943359375,
943.6123657226562
],
"reprojection_error_px": 0.2434463165043125,
"confidence": 0.1512620506350408
},
{
"marker_id": 53,
"observed_center_px": [
578.5,
864.75
],
"projected_center_px": [
578.3684692382812,
865.16064453125
],
"reprojection_error_px": 0.43119516732431823,
"confidence": 0.10091914651675944
},
{
"marker_id": 50,
"observed_center_px": [
604.0,
825.0
],
"projected_center_px": [
603.8051147460938,
824.8560180664062
],
"reprojection_error_px": 0.2423036512137169,
"confidence": 0.0777460225423177
}
]
},
"qa": {
"sanity_notes": []
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 KiB

170
test/yAxisRotation.test.js Normal file
View File

@@ -0,0 +1,170 @@
/**
* Unit-Test für scripts/4_yAxis_rotation_reconstruction.py
*
* Das Python-Skript wird via child_process aufgerufen.
* stdout enthält das JSON-Ergebnis (letzte Zeile davor ggf. Leerzeilen).
* stderr enthält menschenlesbare Zusammenfassung (wird ignoriert).
*
* Test-Daten: test/y-axis-finder-examples/ (drei Timestamps → Arm1-Bogen)
*
* Erwartete Werte stammen aus verifiziertem Lauf (2026-06-12):
* Marker 197, 218, 219 → rotieren (12 Punkte, 3 × 4 Ecken)
* Marker 201, 204 → gefiltert (Bewegung < 10 mm)
* axisDir ≈ [0.9995, 0.029, -0.015] (fast reine X-Achse des Roboters)
*/
const { execFileSync } = require('child_process');
const path = require('path');
const SCRIPT = path.join(__dirname, '..', 'scripts', '4_yAxis_rotation_reconstruction.py');
const EXAMPLES = path.join(__dirname, 'y-axis-finder-examples');
const POS_A = path.join(EXAMPLES, '20260612_190019');
const POS_B = path.join(EXAMPLES, '20260612_190104');
const POS_C = path.join(EXAMPLES, '20260612_190241');
// ── Hilfsfunktion ──────────────────────────────────────────────────────────────
const { spawnSync } = require('child_process');
/**
* Ruft das Python-Skript auf und gibt das geparste JSON zurück.
* Verwendet spawnSync (statt execFileSync) damit ein Fehler-Exit-Code (ok:false)
* nicht sofort eine Exception auslöst wir parsen das stdout trotzdem.
* stdout kann mehrere Zeilen haben JSON ist die letzte nicht-leere Zeile.
*/
function runScript(posA, posB, posC, extraArgs = []) {
const proc = spawnSync('python3', [SCRIPT, posA, posB, posC, ...extraArgs], {
encoding: 'utf-8',
// stderr läuft zum Terminal durch → menschenlesbarer Summary sichtbar
});
if (proc.error) throw proc.error; // z. B. python3 nicht gefunden
const stdout = proc.stdout || '';
const lastJsonLine = stdout
.trim()
.split('\n')
.filter(l => l.trim().startsWith('{'))
.at(-1);
if (!lastJsonLine) {
throw new Error(
`Kein JSON in stdout.\nstdout: ${stdout}\nstderr: ${proc.stderr}`
);
}
return JSON.parse(lastJsonLine);
}
// ── Haupt-Test-Suite ──────────────────────────────────────────────────────────
describe('4_yAxis_rotation_reconstruction.py Arm1-Testdaten (190019 / 190104 / 190241)', () => {
/** Einmalig ausführen dauert ca. 1 s */
let r;
beforeAll(() => {
r = runScript(POS_A, POS_B, POS_C);
});
// ── Grundstatus ───────────────────────────────────────────────────────────
test('Berechnung erfolgreich (ok: true)', () => {
expect(r.ok).toBe(true);
});
// ── Marker-Anzahlen ───────────────────────────────────────────────────────
test('5 gemeinsame fremd-Marker erkannt', () => {
expect(r.numMarkersCommon).toBe(5);
expect(r.commonMarkerIds).toEqual([197, 201, 204, 218, 219]);
});
test('3 Marker tatsächlich genutzt (197, 218, 219)', () => {
expect(r.numMarkersUsed).toBe(3);
expect(r.usedMarkerIds).toEqual([197, 218, 219]);
});
test('12 Punkte (3 Marker × 4 Ecken)', () => {
expect(r.numPoints).toBe(12);
});
// ── Filterung ─────────────────────────────────────────────────────────────
test('2 Marker wegen zu geringer Bewegung gefiltert (201, 204)', () => {
expect(r.skipped).toHaveLength(2);
const skippedIds = r.skipped.map(s => s.marker_id).sort((a, b) => a - b);
expect(skippedIds).toEqual([201, 204]);
// Beide mit korrektem Grund
r.skipped.forEach(s => {
expect(s.reason).toMatch(/Bewegung zu gering/);
expect(s.max_movement_mm).toBeLessThan(10.0); // unter dem Threshold
});
});
// ── Residuen ──────────────────────────────────────────────────────────────
test('Abstandsresiduen: Mittelwert < 10 mm', () => {
expect(r.residual_dist_mean_mm).toBeLessThan(10);
});
test('Abstandsresiduen: Maximum < 15 mm', () => {
expect(r.residual_dist_max_mm).toBeLessThan(15);
});
test('Winkelresiduen: Mittelwert < 5°', () => {
expect(r.residual_angle_mean_deg).toBeLessThan(5);
});
test('Winkelresiduen: Maximum < 7°', () => {
expect(r.residual_angle_max_deg).toBeLessThan(7);
});
// ── Achsenrichtung ────────────────────────────────────────────────────────
test('axisDir ist ein Einheitsvektor (|axisDir| ≈ 1)', () => {
const [ax, ay, az] = r.axisDir;
const len = Math.sqrt(ax * ax + ay * ay + az * az);
expect(len).toBeCloseTo(1.0, 4); // ≤ 0.00005 Abweichung
});
test('Achse liegt fast auf X-Achse des Roboters (axisDir[0] > 0.99)', () => {
// Physikalisch: Arm1 schwingt auf/ab → Drehachse = X-Richtung
expect(r.axisDir[0]).toBeGreaterThan(0.99);
});
test('axisDir hat 3 Komponenten', () => {
expect(r.axisDir).toHaveLength(3);
});
test('axisPoint_mm hat 3 Komponenten', () => {
expect(r.axisPoint_mm).toHaveLength(3);
});
// ── Marker-Ergebnis-Struktur ──────────────────────────────────────────────
test('markerResults enthält genau 3 Einträge (verwendete Marker)', () => {
expect(r.markerResults).toHaveLength(3);
});
test('jeder Marker-Eintrag hat n_points_used === 4', () => {
r.markerResults.forEach(mr => {
expect(mr.n_points_used).toBe(4);
expect(mr.circumcenter_mean_mm).toHaveLength(3);
});
});
});
// ── Parametertest: benutzerdefinierter min-movement-Threshold ─────────────────
describe('4_yAxis_rotation_reconstruction.py min-movement-Parameter', () => {
test('mit --min-movement 0 werden alle 5 Marker genutzt (kein Filter)', () => {
const r = runScript(POS_A, POS_B, POS_C, ['--min-movement', '0']);
// Alle 5 gemeinsamen Marker werden versucht; Ergebnis ist schlechter
expect(r.ok).toBe(true);
expect(r.numMarkersUsed).toBe(5);
expect(r.numMarkersCommon).toBe(5);
// skipped enthält nur noch ggf. degenerierte Punkte (keine Bewegungs-Skips)
const movementSkips = r.skipped.filter(s => s.reason && s.reason.includes('Bewegung zu gering'));
expect(movementSkips).toHaveLength(0);
});
test('mit --min-movement 1000 werden alle Marker gefiltert → ok: false', () => {
// Die rotierenden Marker (197, 218, 219) bewegen sich >100 mm,
// erst ab 1000 mm werden auch sie herausgefiltert.
const r = runScript(POS_A, POS_B, POS_C, ['--min-movement', '1000']);
expect(r.ok).toBe(false);
expect(r.error).toBeDefined();
});
});