Multipoint zurück
49
data/homing/20260625_172504/aruco_marker_poses.csv
Normal file
@@ -0,0 +1,49 @@
|
||||
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,unknown,,2,505.2,-100.88,-7.16,0.02189,0.03624,0.9991,,,,,,24.24
|
||||
46,Board,A0,2,537.83,185.51,-27.88,-0.08568,-0.05354,0.99488,537.44,185.2,-27.2,0.841,-0.679,23.2
|
||||
47,Board,A0,2,343.18,-286.29,-27.16,-0.03123,0.01004,0.99946,343.18,-286.05,-27.49,0.407,0.326,24.03
|
||||
50,Board,A0,2,574.07,210.38,-26.23,-0.00073,0.03209,0.99948,574.23,211.48,-27.15,1.448,0.925,24.06
|
||||
51,Board,A0,2,166.73,-171.08,-27.09,-0.03386,0.01172,0.99936,167.18,-170.93,-27.76,0.818,0.667,24.31
|
||||
53,Board,A0,2,487.37,212.32,-27.38,-0.07361,-0.01564,0.99716,487.08,212.19,-27.28,0.33,-0.103,23.53
|
||||
54,Board,A0,3,341.07,-330.3,-27.22,-0.03362,0.04017,0.99863,341.05,-330.09,-27.5,0.351,0.28,24.36
|
||||
55,Arm1,A0,2,282.65,-261.75,-26.65,-0.05274,0.01696,0.99846,,,,,,24.32
|
||||
58,Board,A0,2,48.62,-216.5,-27.86,-0.00162,-0.0094,0.99995,49.3,-216.52,-27.93,0.684,0.068,24.24
|
||||
62,Board,A0,3,404.15,-174.92,-26.96,0.01614,-0.01502,0.99976,404.07,-174.84,-27.4,0.454,0.439,23.97
|
||||
64,Board,A0,2,-22.59,-186.68,-26.97,-0.00648,0.01133,0.99991,-21.95,-186.37,-28.04,1.286,1.074,24.24
|
||||
66,Board,A0,2,208.51,-363.21,-27.64,-0.04961,0.03216,0.99825,208.41,-362.24,-27.7,0.98,0.055,24.38
|
||||
68,Board,A0,2,574.39,169.06,-26.11,-0.00044,0.05167,0.99866,574.4,170.26,-27.15,1.591,1.04,24.52
|
||||
73,Board,A0,2,221.97,337.22,-30.29,-0.05172,0.1462,0.9879,223.01,334.05,-27.67,4.242,-2.621,26.49
|
||||
76,Board,A0,2,686.21,165.02,-27.13,-0.04548,-0.03114,0.99848,685.86,166,-26.98,1.054,-0.149,23.28
|
||||
79,Board,A0,2,311.51,-157.95,-27.04,0.05023,-0.04899,0.99754,311.73,-158.5,-27.54,0.776,0.496,23.36
|
||||
82,Board,A0,2,219.37,300.46,-29.79,0.00751,0.1232,0.99235,220.31,298.19,-27.68,3.238,-2.111,25.14
|
||||
85,Board,A0,3,503.91,-313.51,-27.06,0.00515,-0.00866,0.99995,503.43,-312.87,-27.25,0.816,0.191,24.1
|
||||
90,Board,A0,2,644.93,316.2,-28.16,-0.02384,-0.04569,0.99867,644.39,315.79,-27.04,1.307,-1.118,23.32
|
||||
91,Board,A0,2,725.49,327.85,-27.51,-0.02708,0.03694,0.99895,724.61,327.11,-26.92,1.289,-0.587,24.21
|
||||
92,Board,A0,2,644.7,-186.93,-25.55,-0.05883,-0.0185,0.9981,644.42,-185.49,-27.04,2.094,1.489,23.69
|
||||
95,Board,A0,3,184.77,-273.26,-27.61,-0.03697,0.01835,0.99915,185.04,-272.99,-27.73,0.401,0.121,24.34
|
||||
96,Board,A0,3,369.2,-185.74,-27.61,-0.04836,0.02152,0.9986,369.1,-186.1,-27.46,0.398,-0.148,24.06
|
||||
103,Board,A0,3,104.63,-186.32,-27.25,-0.01721,0.02455,0.99955,105.03,-186.33,-27.85,0.721,0.6,24.42
|
||||
105,Board,A0,3,524.3,-267.15,-27.08,-0.016,0.01938,0.99968,523.86,-266.44,-27.22,0.848,0.137,23.92
|
||||
118,unknown,,3,322.99,-174.22,47.16,0.02335,-0.99462,0.10089,,,,,,24.14
|
||||
122,Ellbow,,3,359.95,-173.78,46.07,0.00204,-0.99361,0.11286,,,,,,24.26
|
||||
143,Arm2,,2,340.07,-138.22,229.66,-0.72695,-0.68151,0.08421,,,,,,24.03
|
||||
144,Arm2,,3,362.93,-157.15,158.16,-0.05456,-0.9917,0.11642,,,,,,24.31
|
||||
146,Arm2,,2,337.31,-147.71,160.02,-0.68833,-0.72303,0.05854,,,,,,24.0
|
||||
147,FingerA,,3,383.25,-144.05,226.5,0.43778,-0.89607,0.07357,,,,,,23.85
|
||||
148,Arm2,,3,367.21,-142.91,264.34,-0.04936,-0.99586,0.07639,,,,,,24.28
|
||||
178,FingerB,,2,287.73,-121.4,315.33,-0.67179,-0.7215,-0.16775,,,,,,23.25
|
||||
179,FingerB,,2,329.15,-139.64,311.4,-0.61251,-0.17201,0.77152,,,,,,23.53
|
||||
198,Arm1,,2,268.53,-53.98,84.4,0.00864,0.01319,0.99988,,,,,,24.79
|
||||
200,unknown,,2,199.66,-28.82,110.04,-0.15134,-0.01695,0.98834,,,,,,23.71
|
||||
204,unknown,,2,198.48,115.43,120.91,0.03546,0.04428,0.99839,,,,,,24.17
|
||||
208,Board,rail,2,626.35,-98.62,-6.79,-0.00084,0.01537,0.99988,631.01,-98.43,-7.71,4.748,0.917,24.04
|
||||
210,Board,rail,2,129.9,-7.86,-5.67,0.06219,0.02253,0.99781,122.63,-13.98,-0.72,10.715,-4.946,23.24
|
||||
214,unknown,,2,531.62,-8.59,-6.83,-0.02922,0.04196,0.99869,,,,,,24.25
|
||||
217,Board,rail,2,730.01,-8.51,-5.0,-0.08513,-0.01438,0.99627,732.39,-23.88,7.39,19.881,-12.386,23.12
|
||||
229,Arm1,,3,271.17,-142.11,79.1,0.01062,-0.04516,0.99892,,,,,,23.94
|
||||
243,Arm1,,2,270.3,-176.61,43.73,0.02044,-0.9996,-0.01934,,,,,,24.13
|
||||
|
||||
camera_id,x_mm,y_mm,z_mm,dir_x,dir_y,dir_z
|
||||
cam0,335.33,-885.66,468.37,-0.06588,0.89247,-0.44628
|
||||
cam1,296.81,-462.82,780.61,0.09503,0.4331,-0.89632
|
||||
cam2,712.91,-665.53,724.31,-0.42887,0.59445,-0.68022
|
||||
|
2002
data/homing/20260625_172504/aruco_marker_poses.json
Normal file
BIN
data/homing/20260625_172504/cam0.jpg
Normal file
|
After Width: | Height: | Size: 98 KiB |
2645
data/homing/20260625_172504/cam0_aruco_detection.json
Normal file
481
data/homing/20260625_172504/cam0_camera_pose.json
Normal file
@@ -0,0 +1,481 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"created_utc": "2026-06-25T17:25:09Z",
|
||||
"source": {
|
||||
"detection_json": "/app/data/homing/20260625_172504/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": 20,
|
||||
"used_marker_ids": [
|
||||
97,
|
||||
66,
|
||||
85,
|
||||
54,
|
||||
105,
|
||||
69,
|
||||
47,
|
||||
95,
|
||||
58,
|
||||
64,
|
||||
103,
|
||||
62,
|
||||
96,
|
||||
208,
|
||||
51,
|
||||
79,
|
||||
210,
|
||||
68,
|
||||
50,
|
||||
91
|
||||
],
|
||||
"history": {
|
||||
"iters": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3
|
||||
],
|
||||
"rms": [
|
||||
0.011403454671871994,
|
||||
0.001728926659833975,
|
||||
0.0016691755968926973,
|
||||
0.0016691753847773315
|
||||
],
|
||||
"lambda": [
|
||||
0.001,
|
||||
0.0005,
|
||||
0.00025,
|
||||
0.000125
|
||||
]
|
||||
},
|
||||
"residual_rms_px": 3.4096867660331136,
|
||||
"residual_median_px": 1.5691231791727809,
|
||||
"residual_max_px": 12.026369061549262,
|
||||
"sigma2_normalized": 3.2778193707572165e-06
|
||||
},
|
||||
"camera_pose": {
|
||||
"world_to_camera": {
|
||||
"rotation_matrix": [
|
||||
[
|
||||
0.9973888397216797,
|
||||
0.04563671350479126,
|
||||
-0.05597161129117012
|
||||
],
|
||||
[
|
||||
-0.02958603762090206,
|
||||
-0.4488010108470917,
|
||||
-0.8931418061256409
|
||||
],
|
||||
[
|
||||
-0.0658801719546318,
|
||||
0.8924656510353088,
|
||||
-0.4462788999080658
|
||||
]
|
||||
],
|
||||
"translation_m": [
|
||||
-0.2678244411945343,
|
||||
0.030760858207941055,
|
||||
1.0215346813201904
|
||||
],
|
||||
"rvec_rad": [
|
||||
2.0344335845398724,
|
||||
0.011289329253343375,
|
||||
-0.08570511152514877
|
||||
]
|
||||
},
|
||||
"camera_in_world": {
|
||||
"position_m": [
|
||||
0.33533409237861633,
|
||||
-0.885656476020813,
|
||||
0.4683726131916046
|
||||
],
|
||||
"position_mm": [
|
||||
335.3341064453125,
|
||||
-885.656494140625,
|
||||
468.37261962890625
|
||||
],
|
||||
"orientation_deg": {
|
||||
"roll": 116.56741333007812,
|
||||
"pitch": 3.777391195297241,
|
||||
"yaw": -1.6990946531295776
|
||||
}
|
||||
},
|
||||
"uncertainty": {
|
||||
"pose_covariance_6x6": [
|
||||
[
|
||||
9.702707532310775e-06,
|
||||
1.2273484057683694e-06,
|
||||
3.575388647845507e-06,
|
||||
-1.2199370555784652e-07,
|
||||
-2.1440042443296295e-06,
|
||||
1.039618282302021e-07
|
||||
],
|
||||
[
|
||||
1.22734840576837e-06,
|
||||
3.358446334387221e-06,
|
||||
1.8878909236797321e-07,
|
||||
4.651297819399596e-07,
|
||||
-8.835069052569738e-07,
|
||||
6.206962238461149e-07
|
||||
],
|
||||
[
|
||||
3.5753886478454758e-06,
|
||||
1.8878909236796024e-07,
|
||||
1.143731789507973e-05,
|
||||
-7.216885572151019e-07,
|
||||
-2.2145565854988443e-06,
|
||||
-3.0088157401175667e-06
|
||||
],
|
||||
[
|
||||
-1.219937055578466e-07,
|
||||
4.651297819399599e-07,
|
||||
-7.216885572151033e-07,
|
||||
2.2942348340442282e-07,
|
||||
3.6332485943604063e-08,
|
||||
3.2363949947789566e-07
|
||||
],
|
||||
[
|
||||
-2.1440042443296215e-06,
|
||||
-8.835069052569716e-07,
|
||||
-2.2145565854988506e-06,
|
||||
3.633248594360388e-08,
|
||||
9.86494679764419e-07,
|
||||
6.579597825341255e-07
|
||||
],
|
||||
[
|
||||
1.039618282302198e-07,
|
||||
6.206962238461218e-07,
|
||||
-3.0088157401175595e-06,
|
||||
3.2363949947789524e-07,
|
||||
6.579597825341204e-07,
|
||||
2.970696318843356e-06
|
||||
]
|
||||
],
|
||||
"parameter_std": {
|
||||
"rvec_std_deg": [
|
||||
0.1784715940965861,
|
||||
0.10500061405868079,
|
||||
0.19376919211544102
|
||||
],
|
||||
"tvec_std_m": [
|
||||
0.0004789817151044733,
|
||||
0.0009932243854056438,
|
||||
0.0017235708047084566
|
||||
]
|
||||
},
|
||||
"camera_center_std_m": [
|
||||
0.0024386451901829424,
|
||||
0.0013863680263389562,
|
||||
0.002737631446074117
|
||||
],
|
||||
"camera_center_std_mm": [
|
||||
2.4386451901829425,
|
||||
1.3863680263389562,
|
||||
2.7376314460741167
|
||||
],
|
||||
"orientation_std_deg": {
|
||||
"roll": 0.19011944203297743,
|
||||
"pitch": 0.14270986978198957,
|
||||
"yaw": 0.1181609242753551
|
||||
}
|
||||
}
|
||||
},
|
||||
"observations": {
|
||||
"markers": [
|
||||
{
|
||||
"marker_id": 97,
|
||||
"observed_center_px": [
|
||||
676.25,
|
||||
910.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
675.9551391601562,
|
||||
911.3131713867188
|
||||
],
|
||||
"reprojection_error_px": 0.8649801263910383,
|
||||
"confidence": 0.42385670146087856
|
||||
},
|
||||
{
|
||||
"marker_id": 66,
|
||||
"observed_center_px": [
|
||||
480.5,
|
||||
921.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
480.5653381347656,
|
||||
919.2376098632812
|
||||
],
|
||||
"reprojection_error_px": 1.763600880544741,
|
||||
"confidence": 0.2797311732321247
|
||||
},
|
||||
{
|
||||
"marker_id": 85,
|
||||
"observed_center_px": [
|
||||
1080.0,
|
||||
843.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1077.551025390625,
|
||||
842.6098022460938
|
||||
],
|
||||
"reprojection_error_px": 2.605749158768581,
|
||||
"confidence": 0.6761152978036918
|
||||
},
|
||||
{
|
||||
"marker_id": 54,
|
||||
"observed_center_px": [
|
||||
753.5,
|
||||
868.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
753.16845703125,
|
||||
868.4518432617188
|
||||
],
|
||||
"reprojection_error_px": 0.33502210609070604,
|
||||
"confidence": 0.6745646371332027
|
||||
},
|
||||
{
|
||||
"marker_id": 105,
|
||||
"observed_center_px": [
|
||||
1098.25,
|
||||
783.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1096.3798828125,
|
||||
782.7687377929688
|
||||
],
|
||||
"reprojection_error_px": 2.0080046589625047,
|
||||
"confidence": 0.53843639257073
|
||||
},
|
||||
{
|
||||
"marker_id": 69,
|
||||
"observed_center_px": [
|
||||
130.25,
|
||||
818.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
131.2628631591797,
|
||||
816.5780639648438
|
||||
],
|
||||
"reprojection_error_px": 1.9548048201489217,
|
||||
"confidence": 0.6309056746154269
|
||||
},
|
||||
{
|
||||
"marker_id": 47,
|
||||
"observed_center_px": [
|
||||
755.0,
|
||||
810.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
754.8045043945312,
|
||||
810.226318359375
|
||||
],
|
||||
"reprojection_error_px": 0.19692473653729947,
|
||||
"confidence": 0.558404255319149
|
||||
},
|
||||
{
|
||||
"marker_id": 95,
|
||||
"observed_center_px": [
|
||||
461.25,
|
||||
799.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
462.01556396484375,
|
||||
799.7348022460938
|
||||
],
|
||||
"reprojection_error_px": 0.7657148006869643,
|
||||
"confidence": 0.5573620390355706
|
||||
},
|
||||
{
|
||||
"marker_id": 58,
|
||||
"observed_center_px": [
|
||||
243.0,
|
||||
742.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
244.86248779296875,
|
||||
742.42578125
|
||||
],
|
||||
"reprojection_error_px": 1.8639659872994379,
|
||||
"confidence": 0.4721784486231997
|
||||
},
|
||||
{
|
||||
"marker_id": 64,
|
||||
"observed_center_px": [
|
||||
139.75,
|
||||
714.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
141.61831665039062,
|
||||
715.1568603515625
|
||||
],
|
||||
"reprojection_error_px": 2.197483328524737,
|
||||
"confidence": 0.4471706966400147
|
||||
},
|
||||
{
|
||||
"marker_id": 103,
|
||||
"observed_center_px": [
|
||||
350.75,
|
||||
708.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
352.2232971191406,
|
||||
708.7933959960938
|
||||
],
|
||||
"reprojection_error_px": 1.6733444379103959,
|
||||
"confidence": 0.3922909999211629
|
||||
},
|
||||
{
|
||||
"marker_id": 62,
|
||||
"observed_center_px": [
|
||||
851.5,
|
||||
685.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
851.7431640625,
|
||||
686.1382446289062
|
||||
],
|
||||
"reprojection_error_px": 0.9209274032584249,
|
||||
"confidence": 0.3564780454484243
|
||||
},
|
||||
{
|
||||
"marker_id": 96,
|
||||
"observed_center_px": [
|
||||
793.25,
|
||||
698.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
793.7991333007812,
|
||||
698.2991943359375
|
||||
],
|
||||
"reprojection_error_px": 0.6253516072450701,
|
||||
"confidence": 0.3348906742607279
|
||||
},
|
||||
{
|
||||
"marker_id": 208,
|
||||
"observed_center_px": [
|
||||
1202.5,
|
||||
583.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1209.5457763671875,
|
||||
583.9437866210938
|
||||
],
|
||||
"reprojection_error_px": 7.108705775496229,
|
||||
"confidence": 0.28965074531908364
|
||||
},
|
||||
{
|
||||
"marker_id": 51,
|
||||
"observed_center_px": [
|
||||
458.0,
|
||||
690.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
459.341064453125,
|
||||
691.0894775390625
|
||||
],
|
||||
"reprojection_error_px": 1.4649019204351656,
|
||||
"confidence": 0.34674061533734285
|
||||
},
|
||||
{
|
||||
"marker_id": 79,
|
||||
"observed_center_px": [
|
||||
696.25,
|
||||
672.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
697.0543212890625,
|
||||
673.733154296875
|
||||
],
|
||||
"reprojection_error_px": 1.6872105394342276,
|
||||
"confidence": 0.3256815826862768
|
||||
},
|
||||
{
|
||||
"marker_id": 210,
|
||||
"observed_center_px": [
|
||||
439.25,
|
||||
532.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
427.3565673828125,
|
||||
530.716796875
|
||||
],
|
||||
"reprojection_error_px": 12.026369061549262,
|
||||
"confidence": 0.15571821530659996
|
||||
},
|
||||
{
|
||||
"marker_id": 68,
|
||||
"observed_center_px": [
|
||||
1027.25,
|
||||
434.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
1027.0755615234375,
|
||||
434.6865539550781
|
||||
],
|
||||
"reprojection_error_px": 0.47011502613700773,
|
||||
"confidence": 0.09323781394061914
|
||||
},
|
||||
{
|
||||
"marker_id": 50,
|
||||
"observed_center_px": [
|
||||
1017.0,
|
||||
413.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1016.9035034179688,
|
||||
413.9068298339844
|
||||
],
|
||||
"reprojection_error_px": 0.41811733301008686,
|
||||
"confidence": 0.08307692198670814
|
||||
},
|
||||
{
|
||||
"marker_id": 91,
|
||||
"observed_center_px": [
|
||||
1165.5,
|
||||
355.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
1165.020751953125,
|
||||
355.35980224609375
|
||||
],
|
||||
"reprojection_error_px": 0.6180072633772071,
|
||||
"confidence": 0.06871920537654881
|
||||
}
|
||||
]
|
||||
},
|
||||
"qa": {
|
||||
"sanity_notes": []
|
||||
}
|
||||
}
|
||||
BIN
data/homing/20260625_172504/cam0_debug.jpg
Normal file
|
After Width: | Height: | Size: 209 KiB |
BIN
data/homing/20260625_172504/cam1.jpg
Normal file
|
After Width: | Height: | Size: 108 KiB |
3662
data/homing/20260625_172504/cam1_aruco_detection.json
Normal file
761
data/homing/20260625_172504/cam1_camera_pose.json
Normal file
@@ -0,0 +1,761 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"created_utc": "2026-06-25T17:25:13Z",
|
||||
"source": {
|
||||
"detection_json": "/app/data/homing/20260625_172504/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": 40,
|
||||
"used_marker_ids": [
|
||||
54,
|
||||
95,
|
||||
58,
|
||||
85,
|
||||
47,
|
||||
103,
|
||||
59,
|
||||
48,
|
||||
105,
|
||||
51,
|
||||
102,
|
||||
96,
|
||||
62,
|
||||
71,
|
||||
92,
|
||||
63,
|
||||
208,
|
||||
210,
|
||||
217,
|
||||
74,
|
||||
75,
|
||||
52,
|
||||
68,
|
||||
76,
|
||||
46,
|
||||
53,
|
||||
101,
|
||||
50,
|
||||
100,
|
||||
82,
|
||||
60,
|
||||
67,
|
||||
73,
|
||||
94,
|
||||
70,
|
||||
104,
|
||||
98,
|
||||
90,
|
||||
91,
|
||||
88
|
||||
],
|
||||
"history": {
|
||||
"iters": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3
|
||||
],
|
||||
"rms": [
|
||||
0.011372574297308506,
|
||||
0.0021949616225605375,
|
||||
0.002143709970633132,
|
||||
0.002143709690342172
|
||||
],
|
||||
"lambda": [
|
||||
0.001,
|
||||
0.0005,
|
||||
0.00025,
|
||||
0.000125
|
||||
]
|
||||
},
|
||||
"residual_rms_px": 4.23364353800265,
|
||||
"residual_median_px": 1.0679787737296105,
|
||||
"residual_max_px": 19.348939630537274,
|
||||
"sigma2_normalized": 4.968098633993014e-06
|
||||
},
|
||||
"camera_pose": {
|
||||
"world_to_camera": {
|
||||
"rotation_matrix": [
|
||||
[
|
||||
-0.9951881766319275,
|
||||
0.019756384193897247,
|
||||
-0.0959698036313057
|
||||
],
|
||||
[
|
||||
-0.02385592833161354,
|
||||
0.9011316895484924,
|
||||
0.4328886866569519
|
||||
],
|
||||
[
|
||||
0.09503374248743057,
|
||||
0.43309515714645386,
|
||||
-0.8963242769241333
|
||||
]
|
||||
],
|
||||
"translation_m": [
|
||||
0.37943923473358154,
|
||||
0.0862211212515831,
|
||||
0.8719164729118347
|
||||
],
|
||||
"rvec_rad": [
|
||||
0.0032072073338993575,
|
||||
-2.967110340660477,
|
||||
-0.6774876643558738
|
||||
]
|
||||
},
|
||||
"camera_in_world": {
|
||||
"position_m": [
|
||||
0.2968088686466217,
|
||||
-0.4628157615661621,
|
||||
0.7806104421615601
|
||||
],
|
||||
"position_mm": [
|
||||
296.8088684082031,
|
||||
-462.8157653808594,
|
||||
780.6104125976562
|
||||
],
|
||||
"orientation_deg": {
|
||||
"roll": 154.21060180664062,
|
||||
"pitch": -5.453261375427246,
|
||||
"yaw": -178.62680053710938
|
||||
}
|
||||
},
|
||||
"uncertainty": {
|
||||
"pose_covariance_6x6": [
|
||||
[
|
||||
2.2460757709580997e-06,
|
||||
-1.0592111231264017e-07,
|
||||
-5.911479445197522e-07,
|
||||
9.807677828663091e-09,
|
||||
6.656021402664132e-07,
|
||||
1.8807173299942092e-07
|
||||
],
|
||||
[
|
||||
-1.059211123126279e-07,
|
||||
7.819602866884685e-06,
|
||||
-8.896995228371429e-07,
|
||||
-8.928123497147304e-07,
|
||||
8.447874310868068e-07,
|
||||
-3.883503279890717e-06
|
||||
],
|
||||
[
|
||||
-5.911479445197253e-07,
|
||||
-8.896995228370399e-07,
|
||||
1.8982339503369444e-05,
|
||||
-6.420456812663701e-07,
|
||||
-7.934435641861599e-07,
|
||||
3.082335762957178e-07
|
||||
],
|
||||
[
|
||||
9.807677828661003e-09,
|
||||
-8.928123497147341e-07,
|
||||
-6.42045681266356e-07,
|
||||
2.4448642118127635e-07,
|
||||
-7.775978286233749e-08,
|
||||
3.809119252748882e-07
|
||||
],
|
||||
[
|
||||
6.656021402664136e-07,
|
||||
8.447874310868029e-07,
|
||||
-7.934435641861794e-07,
|
||||
-7.775978286233639e-08,
|
||||
4.178437168687293e-07,
|
||||
-3.614395664399821e-07
|
||||
],
|
||||
[
|
||||
1.880717329994141e-07,
|
||||
-3.883503279890717e-06,
|
||||
3.08233576295777e-07,
|
||||
3.809119252748862e-07,
|
||||
-3.614395664399844e-07,
|
||||
2.809559727575109e-06
|
||||
]
|
||||
],
|
||||
"parameter_std": {
|
||||
"rvec_std_deg": [
|
||||
0.08586868930820345,
|
||||
0.16021935571577825,
|
||||
0.24963041613501347
|
||||
],
|
||||
"tvec_std_m": [
|
||||
0.0004944556817160425,
|
||||
0.000646408320544166,
|
||||
0.001676174134025194
|
||||
]
|
||||
},
|
||||
"camera_center_std_m": [
|
||||
0.0028646163342597826,
|
||||
0.0025089246532298257,
|
||||
0.001967934179216506
|
||||
],
|
||||
"camera_center_std_mm": [
|
||||
2.8646163342597823,
|
||||
2.5089246532298257,
|
||||
1.967934179216506
|
||||
],
|
||||
"orientation_std_deg": {
|
||||
"roll": 0.1994418033453169,
|
||||
"pitch": 0.16062277696661237,
|
||||
"yaw": 0.07987033548886921
|
||||
}
|
||||
}
|
||||
},
|
||||
"observations": {
|
||||
"markers": [
|
||||
{
|
||||
"marker_id": 54,
|
||||
"observed_center_px": [
|
||||
735.25,
|
||||
38.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
735.0857543945312,
|
||||
38.939788818359375
|
||||
],
|
||||
"reprojection_error_px": 0.4694580105501786,
|
||||
"confidence": 0.2985929580100399
|
||||
},
|
||||
{
|
||||
"marker_id": 95,
|
||||
"observed_center_px": [
|
||||
1005.5,
|
||||
139.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1004.7282104492188,
|
||||
139.58082580566406
|
||||
],
|
||||
"reprojection_error_px": 0.9659284275868637,
|
||||
"confidence": 0.9357112460666233
|
||||
},
|
||||
{
|
||||
"marker_id": 58,
|
||||
"observed_center_px": [
|
||||
1234.75,
|
||||
235.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
1234.0849609375,
|
||||
235.2240447998047
|
||||
],
|
||||
"reprojection_error_px": 0.6655453606389707,
|
||||
"confidence": 0.36770453019575644
|
||||
},
|
||||
{
|
||||
"marker_id": 85,
|
||||
"observed_center_px": [
|
||||
458.0,
|
||||
68.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
458.2991027832031,
|
||||
69.70124816894531
|
||||
],
|
||||
"reprojection_error_px": 1.2379255382753527,
|
||||
"confidence": 0.8685664374455692
|
||||
},
|
||||
{
|
||||
"marker_id": 47,
|
||||
"observed_center_px": [
|
||||
731.5,
|
||||
117.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
731.38525390625,
|
||||
117.72209930419922
|
||||
],
|
||||
"reprojection_error_px": 0.485844027498816,
|
||||
"confidence": 0.9524913713047937
|
||||
},
|
||||
{
|
||||
"marker_id": 103,
|
||||
"observed_center_px": [
|
||||
1128.75,
|
||||
284.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1128.236083984375,
|
||||
284.30267333984375
|
||||
],
|
||||
"reprojection_error_px": 0.5504974858473882,
|
||||
"confidence": 0.9144001450649527
|
||||
},
|
||||
{
|
||||
"marker_id": 59,
|
||||
"observed_center_px": [
|
||||
262.25,
|
||||
123.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
263.9138488769531,
|
||||
125.33772277832031
|
||||
],
|
||||
"reprojection_error_px": 2.479035718842208,
|
||||
"confidence": 0.9376517069038668
|
||||
},
|
||||
{
|
||||
"marker_id": 48,
|
||||
"observed_center_px": [
|
||||
148.5,
|
||||
51.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
149.4849395751953,
|
||||
51.862728118896484
|
||||
],
|
||||
"reprojection_error_px": 1.3093531891436279,
|
||||
"confidence": 0.5517245546325658
|
||||
},
|
||||
{
|
||||
"marker_id": 105,
|
||||
"observed_center_px": [
|
||||
432.0,
|
||||
147.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
432.3002014160156,
|
||||
149.29176330566406
|
||||
],
|
||||
"reprojection_error_px": 1.5707179826022124,
|
||||
"confidence": 0.9442241264421224
|
||||
},
|
||||
{
|
||||
"marker_id": 51,
|
||||
"observed_center_px": [
|
||||
1019.75,
|
||||
308.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1019.1754150390625,
|
||||
307.9459228515625
|
||||
],
|
||||
"reprojection_error_px": 0.5771240900522866,
|
||||
"confidence": 0.9297130863840988
|
||||
},
|
||||
{
|
||||
"marker_id": 102,
|
||||
"observed_center_px": [
|
||||
239.25,
|
||||
213.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
240.9429473876953,
|
||||
215.61300659179688
|
||||
],
|
||||
"reprojection_error_px": 2.5173129361648683,
|
||||
"confidence": 0.9498751926981491
|
||||
},
|
||||
{
|
||||
"marker_id": 96,
|
||||
"observed_center_px": [
|
||||
689.75,
|
||||
280.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
689.872314453125,
|
||||
280.85595703125
|
||||
],
|
||||
"reprojection_error_px": 0.37638575097840954,
|
||||
"confidence": 0.8766456914396368
|
||||
},
|
||||
{
|
||||
"marker_id": 62,
|
||||
"observed_center_px": [
|
||||
634.75,
|
||||
296.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
634.6029052734375,
|
||||
297.34588623046875
|
||||
],
|
||||
"reprojection_error_px": 0.6137729696270053,
|
||||
"confidence": 0.8625841801430425
|
||||
},
|
||||
{
|
||||
"marker_id": 71,
|
||||
"observed_center_px": [
|
||||
63.5,
|
||||
113.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
64.10832977294922,
|
||||
114.1216812133789
|
||||
],
|
||||
"reprojection_error_px": 0.8698003470479402,
|
||||
"confidence": 0.6962965934908386
|
||||
},
|
||||
{
|
||||
"marker_id": 92,
|
||||
"observed_center_px": [
|
||||
256.25,
|
||||
273.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
257.945556640625,
|
||||
274.84429931640625
|
||||
],
|
||||
"reprojection_error_px": 2.327381067178508,
|
||||
"confidence": 0.8785732433921414
|
||||
},
|
||||
{
|
||||
"marker_id": 63,
|
||||
"observed_center_px": [
|
||||
36.75,
|
||||
191.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
37.489715576171875,
|
||||
191.14720153808594
|
||||
],
|
||||
"reprojection_error_px": 0.7468243819019208,
|
||||
"confidence": 0.23403229407345516
|
||||
},
|
||||
{
|
||||
"marker_id": 208,
|
||||
"observed_center_px": [
|
||||
295.25,
|
||||
413.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
288.3956298828125,
|
||||
413.3526916503906
|
||||
],
|
||||
"reprojection_error_px": 6.8658752994838395,
|
||||
"confidence": 0.7372980849807326
|
||||
},
|
||||
{
|
||||
"marker_id": 210,
|
||||
"observed_center_px": [
|
||||
1059.0,
|
||||
559.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
1073.6019287109375,
|
||||
555.7957763671875
|
||||
],
|
||||
"reprojection_error_px": 15.127861931469159,
|
||||
"confidence": 0.6136138322804316
|
||||
},
|
||||
{
|
||||
"marker_id": 217,
|
||||
"observed_center_px": [
|
||||
162.25,
|
||||
532.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
146.7255401611328,
|
||||
520.9512939453125
|
||||
],
|
||||
"reprojection_error_px": 19.348939630537274,
|
||||
"confidence": 0.6320655742155583
|
||||
},
|
||||
{
|
||||
"marker_id": 74,
|
||||
"observed_center_px": [
|
||||
1086.0,
|
||||
734.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
1084.8804931640625,
|
||||
735.0576782226562
|
||||
],
|
||||
"reprojection_error_px": 1.1610174177882524,
|
||||
"confidence": 0.49861888008985367
|
||||
},
|
||||
{
|
||||
"marker_id": 75,
|
||||
"observed_center_px": [
|
||||
1251.5,
|
||||
801.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
1249.17626953125,
|
||||
800.1643676757812
|
||||
],
|
||||
"reprojection_error_px": 2.8131749250632194,
|
||||
"confidence": 0.06713952659324364
|
||||
},
|
||||
{
|
||||
"marker_id": 52,
|
||||
"observed_center_px": [
|
||||
1075.25,
|
||||
807.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1073.9066162109375,
|
||||
807.3248291015625
|
||||
],
|
||||
"reprojection_error_px": 1.354756379713829,
|
||||
"confidence": 0.44660041827617547
|
||||
},
|
||||
{
|
||||
"marker_id": 68,
|
||||
"observed_center_px": [
|
||||
421.5,
|
||||
733.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
422.2747497558594,
|
||||
733.5101318359375
|
||||
],
|
||||
"reprojection_error_px": 0.9276161243969003,
|
||||
"confidence": 0.453656743367513
|
||||
},
|
||||
{
|
||||
"marker_id": 76,
|
||||
"observed_center_px": [
|
||||
274.0,
|
||||
722.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
274.78045654296875,
|
||||
723.6485595703125
|
||||
],
|
||||
"reprojection_error_px": 1.19017717876916,
|
||||
"confidence": 0.42914121819077033
|
||||
},
|
||||
{
|
||||
"marker_id": 46,
|
||||
"observed_center_px": [
|
||||
472.5,
|
||||
751.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
472.7325744628906,
|
||||
751.6512451171875
|
||||
],
|
||||
"reprojection_error_px": 0.4637763737575183,
|
||||
"confidence": 0.42705375163400877
|
||||
},
|
||||
{
|
||||
"marker_id": 53,
|
||||
"observed_center_px": [
|
||||
541.0,
|
||||
783.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
541.320556640625,
|
||||
783.3278198242188
|
||||
],
|
||||
"reprojection_error_px": 0.32986737469810884,
|
||||
"confidence": 0.4239630899600427
|
||||
},
|
||||
{
|
||||
"marker_id": 101,
|
||||
"observed_center_px": [
|
||||
1031.25,
|
||||
900.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1029.7542724609375,
|
||||
900.5302124023438
|
||||
],
|
||||
"reprojection_error_px": 1.4960326401403623,
|
||||
"confidence": 0.3366794154513476
|
||||
},
|
||||
{
|
||||
"marker_id": 50,
|
||||
"observed_center_px": [
|
||||
427.25,
|
||||
777.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
427.572998046875,
|
||||
777.9152221679688
|
||||
],
|
||||
"reprojection_error_px": 0.5260581593870906,
|
||||
"confidence": 0.3955545216798782
|
||||
},
|
||||
{
|
||||
"marker_id": 100,
|
||||
"observed_center_px": [
|
||||
120.0,
|
||||
723.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
122.01116180419922,
|
||||
723.669677734375
|
||||
],
|
||||
"reprojection_error_px": 2.018306799327716,
|
||||
"confidence": 0.4621067158671878
|
||||
},
|
||||
{
|
||||
"marker_id": 82,
|
||||
"observed_center_px": [
|
||||
894.75,
|
||||
890.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
893.3291625976562,
|
||||
890.5499267578125
|
||||
],
|
||||
"reprojection_error_px": 1.523547952267044,
|
||||
"confidence": 0.37908960001789416
|
||||
},
|
||||
{
|
||||
"marker_id": 60,
|
||||
"observed_center_px": [
|
||||
613.0,
|
||||
860.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
612.6180419921875,
|
||||
860.841552734375
|
||||
],
|
||||
"reprojection_error_px": 0.39277706514463534,
|
||||
"confidence": 0.3907528879258137
|
||||
},
|
||||
{
|
||||
"marker_id": 67,
|
||||
"observed_center_px": [
|
||||
497.75,
|
||||
837.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
497.95806884765625,
|
||||
838.1924438476562
|
||||
],
|
||||
"reprojection_error_px": 0.48892658313275084,
|
||||
"confidence": 0.3865272468846743
|
||||
},
|
||||
{
|
||||
"marker_id": 73,
|
||||
"observed_center_px": [
|
||||
889.25,
|
||||
925.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
887.6505126953125,
|
||||
926.299560546875
|
||||
],
|
||||
"reprojection_error_px": 1.6912647434798707,
|
||||
"confidence": 0.15682847151496923
|
||||
},
|
||||
{
|
||||
"marker_id": 94,
|
||||
"observed_center_px": [
|
||||
29.0,
|
||||
720.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
31.336706161499023,
|
||||
720.2244873046875
|
||||
],
|
||||
"reprojection_error_px": 2.3528924604549735,
|
||||
"confidence": 0.09146699566173024
|
||||
},
|
||||
{
|
||||
"marker_id": 70,
|
||||
"observed_center_px": [
|
||||
401.25,
|
||||
866.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
401.60943603515625,
|
||||
867.041259765625
|
||||
],
|
||||
"reprojection_error_px": 0.46262999734212534,
|
||||
"confidence": 0.35896437880813437
|
||||
},
|
||||
{
|
||||
"marker_id": 104,
|
||||
"observed_center_px": [
|
||||
107.5,
|
||||
792.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
109.24372100830078,
|
||||
792.2886352539062
|
||||
],
|
||||
"reprojection_error_px": 1.7674482353344945,
|
||||
"confidence": 0.3880719051456888
|
||||
},
|
||||
{
|
||||
"marker_id": 98,
|
||||
"observed_center_px": [
|
||||
436.5,
|
||||
882.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
436.5618896484375,
|
||||
883.1439819335938
|
||||
],
|
||||
"reprojection_error_px": 0.8961216581333906,
|
||||
"confidence": 0.36026641726859315
|
||||
},
|
||||
{
|
||||
"marker_id": 90,
|
||||
"observed_center_px": [
|
||||
351.75,
|
||||
880.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
352.1582336425781,
|
||||
880.5147094726562
|
||||
],
|
||||
"reprojection_error_px": 0.4865447685943754,
|
||||
"confidence": 0.3567245846660417
|
||||
},
|
||||
{
|
||||
"marker_id": 91,
|
||||
"observed_center_px": [
|
||||
254.25,
|
||||
887.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
255.22390747070312,
|
||||
886.9551391601562
|
||||
],
|
||||
"reprojection_error_px": 0.9749401296709685,
|
||||
"confidence": 0.3494656541641164
|
||||
},
|
||||
{
|
||||
"marker_id": 88,
|
||||
"observed_center_px": [
|
||||
199.75,
|
||||
872.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
201.13644409179688,
|
||||
872.6148681640625
|
||||
],
|
||||
"reprojection_error_px": 1.3911944201992585,
|
||||
"confidence": 0.347903013426907
|
||||
}
|
||||
]
|
||||
},
|
||||
"qa": {
|
||||
"sanity_notes": []
|
||||
}
|
||||
}
|
||||
BIN
data/homing/20260625_172504/cam1_debug.jpg
Normal file
|
After Width: | Height: | Size: 257 KiB |
BIN
data/homing/20260625_172504/cam2.jpg
Normal file
|
After Width: | Height: | Size: 220 KiB |
2521
data/homing/20260625_172504/cam2_aruco_detection.json
Normal file
495
data/homing/20260625_172504/cam2_camera_pose.json
Normal file
@@ -0,0 +1,495 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"created_utc": "2026-06-25T17:25:15Z",
|
||||
"source": {
|
||||
"detection_json": "/app/data/homing/20260625_172504/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": 21,
|
||||
"used_marker_ids": [
|
||||
85,
|
||||
92,
|
||||
105,
|
||||
54,
|
||||
93,
|
||||
66,
|
||||
217,
|
||||
62,
|
||||
96,
|
||||
95,
|
||||
79,
|
||||
76,
|
||||
103,
|
||||
64,
|
||||
46,
|
||||
90,
|
||||
53,
|
||||
86,
|
||||
84,
|
||||
82,
|
||||
73
|
||||
],
|
||||
"history": {
|
||||
"iters": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3
|
||||
],
|
||||
"rms": [
|
||||
0.014228673477920699,
|
||||
0.0012360717022841035,
|
||||
0.0009070175499997285,
|
||||
0.0009070142696966918
|
||||
],
|
||||
"lambda": [
|
||||
0.001,
|
||||
0.0005,
|
||||
0.00025,
|
||||
0.000125
|
||||
]
|
||||
},
|
||||
"residual_rms_px": 1.7852212006525887,
|
||||
"residual_median_px": 1.0469264348760319,
|
||||
"residual_max_px": 6.647095648204168,
|
||||
"sigma2_normalized": 9.597873663078857e-07
|
||||
},
|
||||
"camera_pose": {
|
||||
"world_to_camera": {
|
||||
"rotation_matrix": [
|
||||
[
|
||||
0.7617526054382324,
|
||||
0.6427322030067444,
|
||||
0.08141452819108963
|
||||
],
|
||||
[
|
||||
0.48559483885765076,
|
||||
-0.4832412004470825,
|
||||
-0.7284748554229736
|
||||
],
|
||||
[
|
||||
-0.42887139320373535,
|
||||
0.5944520831108093,
|
||||
-0.6802176833152771
|
||||
]
|
||||
],
|
||||
"translation_m": [
|
||||
-0.1742696762084961,
|
||||
-0.1401522308588028,
|
||||
1.1940648555755615
|
||||
],
|
||||
"rvec_rad": [
|
||||
2.1767839356074785,
|
||||
0.8396398702141942,
|
||||
-0.2585585732707637
|
||||
]
|
||||
},
|
||||
"camera_in_world": {
|
||||
"position_m": [
|
||||
0.7129078507423401,
|
||||
-0.6655329465866089,
|
||||
0.7243147492408752
|
||||
],
|
||||
"position_mm": [
|
||||
712.9078369140625,
|
||||
-665.532958984375,
|
||||
724.3147583007812
|
||||
],
|
||||
"orientation_deg": {
|
||||
"roll": 138.84930419921875,
|
||||
"pitch": 25.395954132080078,
|
||||
"yaw": 32.51630783081055
|
||||
}
|
||||
},
|
||||
"uncertainty": {
|
||||
"pose_covariance_6x6": [
|
||||
[
|
||||
2.4924502189037485e-06,
|
||||
7.284908255672299e-07,
|
||||
2.0024504778922095e-07,
|
||||
6.993863992084647e-08,
|
||||
-3.359070245275866e-07,
|
||||
5.600958340179941e-09
|
||||
],
|
||||
[
|
||||
7.284908255672354e-07,
|
||||
1.064107327675121e-06,
|
||||
-2.3219104124960886e-08,
|
||||
2.319589057300187e-07,
|
||||
-2.846525717659831e-07,
|
||||
1.5012786826699554e-07
|
||||
],
|
||||
[
|
||||
2.0024504778920997e-07,
|
||||
-2.3219104124972556e-08,
|
||||
4.278959925593973e-06,
|
||||
-1.4661732034947215e-07,
|
||||
-6.23228741847165e-07,
|
||||
-1.5703080494058352e-06
|
||||
],
|
||||
[
|
||||
6.993863992084778e-08,
|
||||
2.3195890573001912e-07,
|
||||
-1.4661732034946982e-07,
|
||||
1.0962701995068561e-07,
|
||||
-2.8204197612513988e-08,
|
||||
1.4125379662533936e-07
|
||||
],
|
||||
[
|
||||
-3.359070245275866e-07,
|
||||
-2.8465257176598095e-07,
|
||||
-6.232287418471685e-07,
|
||||
-2.8204197612513405e-08,
|
||||
2.305112527858795e-07,
|
||||
2.649685210729187e-07
|
||||
],
|
||||
[
|
||||
5.600958340183888e-09,
|
||||
1.5012786826699972e-07,
|
||||
-1.5703080494058346e-06,
|
||||
1.4125379662534013e-07,
|
||||
2.6496852107291726e-07,
|
||||
1.078572601871589e-06
|
||||
]
|
||||
],
|
||||
"parameter_std": {
|
||||
"rvec_std_deg": [
|
||||
0.09045568752546955,
|
||||
0.05910379253809281,
|
||||
0.11852002706372318
|
||||
],
|
||||
"tvec_std_m": [
|
||||
0.0003310997130030251,
|
||||
0.00048011587433231107,
|
||||
0.0010385435002307746
|
||||
]
|
||||
},
|
||||
"camera_center_std_m": [
|
||||
0.0015926294915772563,
|
||||
0.001282414773137875,
|
||||
0.0014297273307869451
|
||||
],
|
||||
"camera_center_std_mm": [
|
||||
1.5926294915772563,
|
||||
1.282414773137875,
|
||||
1.4297273307869451
|
||||
],
|
||||
"orientation_std_deg": {
|
||||
"roll": 0.12744173458500993,
|
||||
"pitch": 0.08524351737408967,
|
||||
"yaw": 0.06595345807707714
|
||||
}
|
||||
}
|
||||
},
|
||||
"observations": {
|
||||
"markers": [
|
||||
{
|
||||
"marker_id": 85,
|
||||
"observed_center_px": [
|
||||
943.25,
|
||||
1039.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
943.3576049804688,
|
||||
1037.9586181640625
|
||||
],
|
||||
"reprojection_error_px": 1.0469264348760319,
|
||||
"confidence": 0.25017342512163626
|
||||
},
|
||||
{
|
||||
"marker_id": 92,
|
||||
"observed_center_px": [
|
||||
1262.25,
|
||||
1041.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
1262.399658203125,
|
||||
1040.8380126953125
|
||||
],
|
||||
"reprojection_error_px": 0.9241852745384849,
|
||||
"confidence": 0.18638720024967376
|
||||
},
|
||||
{
|
||||
"marker_id": 105,
|
||||
"observed_center_px": [
|
||||
1019.5,
|
||||
1007.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
1019.3496704101562,
|
||||
1006.0000610351562
|
||||
],
|
||||
"reprojection_error_px": 1.2589465443049024,
|
||||
"confidence": 0.7893291944675445
|
||||
},
|
||||
{
|
||||
"marker_id": 54,
|
||||
"observed_center_px": [
|
||||
726.75,
|
||||
892.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
727.0918579101562,
|
||||
891.9924926757812
|
||||
],
|
||||
"reprojection_error_px": 0.4279916503422691,
|
||||
"confidence": 0.712278812924601
|
||||
},
|
||||
{
|
||||
"marker_id": 93,
|
||||
"observed_center_px": [
|
||||
1893.5,
|
||||
971.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1894.048095703125,
|
||||
971.9451904296875
|
||||
],
|
||||
"reprojection_error_px": 0.70611855836639,
|
||||
"confidence": 0.042321015168188404
|
||||
},
|
||||
{
|
||||
"marker_id": 66,
|
||||
"observed_center_px": [
|
||||
548.25,
|
||||
804.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
549.4153442382812,
|
||||
803.2486572265625
|
||||
],
|
||||
"reprojection_error_px": 1.5364616961092168,
|
||||
"confidence": 0.5883494177188935
|
||||
},
|
||||
{
|
||||
"marker_id": 217,
|
||||
"observed_center_px": [
|
||||
1527.25,
|
||||
916.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1529.0672607421875,
|
||||
922.8938598632812
|
||||
],
|
||||
"reprojection_error_px": 6.647095648204168,
|
||||
"confidence": 0.45290577054800996
|
||||
},
|
||||
{
|
||||
"marker_id": 62,
|
||||
"observed_center_px": [
|
||||
962.0,
|
||||
802.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
961.2557373046875,
|
||||
802.291748046875
|
||||
],
|
||||
"reprojection_error_px": 0.7728491674409725,
|
||||
"confidence": 0.6057547967936824
|
||||
},
|
||||
{
|
||||
"marker_id": 96,
|
||||
"observed_center_px": [
|
||||
912.25,
|
||||
783.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
911.0736694335938,
|
||||
783.0982055664062
|
||||
],
|
||||
"reprojection_error_px": 1.18608395635878,
|
||||
"confidence": 0.5545391608146377
|
||||
},
|
||||
{
|
||||
"marker_id": 95,
|
||||
"observed_center_px": [
|
||||
630.5,
|
||||
709.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
631.0589599609375,
|
||||
709.0905151367188
|
||||
],
|
||||
"reprojection_error_px": 0.6929026563578145,
|
||||
"confidence": 0.4695004591117706
|
||||
},
|
||||
{
|
||||
"marker_id": 79,
|
||||
"observed_center_px": [
|
||||
875.75,
|
||||
715.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
875.3380126953125,
|
||||
715.4541625976562
|
||||
],
|
||||
"reprojection_error_px": 0.6131861090513578,
|
||||
"confidence": 0.5142115324222218
|
||||
},
|
||||
{
|
||||
"marker_id": 76,
|
||||
"observed_center_px": [
|
||||
1551.75,
|
||||
746.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1552.177490234375,
|
||||
744.9830322265625
|
||||
],
|
||||
"reprojection_error_px": 1.576051752365359,
|
||||
"confidence": 0.29593493306278906
|
||||
},
|
||||
{
|
||||
"marker_id": 103,
|
||||
"observed_center_px": [
|
||||
648.5,
|
||||
590.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
648.8373413085938,
|
||||
590.6143798828125
|
||||
],
|
||||
"reprojection_error_px": 0.7009007054415375,
|
||||
"confidence": 0.39305998326235797
|
||||
},
|
||||
{
|
||||
"marker_id": 64,
|
||||
"observed_center_px": [
|
||||
541.0,
|
||||
511.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
541.9498901367188,
|
||||
512.197021484375
|
||||
],
|
||||
"reprojection_error_px": 1.3413206043684687,
|
||||
"confidence": 0.3099175748319284
|
||||
},
|
||||
{
|
||||
"marker_id": 46,
|
||||
"observed_center_px": [
|
||||
1382.0,
|
||||
629.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1381.5179443359375,
|
||||
628.320556640625
|
||||
],
|
||||
"reprojection_error_px": 0.8330791930264032,
|
||||
"confidence": 0.26236530151152454
|
||||
},
|
||||
{
|
||||
"marker_id": 90,
|
||||
"observed_center_px": [
|
||||
1573.0,
|
||||
614.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
1573.05712890625,
|
||||
612.7874145507812
|
||||
],
|
||||
"reprojection_error_px": 1.4637007577355878,
|
||||
"confidence": 0.21907023701319386
|
||||
},
|
||||
{
|
||||
"marker_id": 53,
|
||||
"observed_center_px": [
|
||||
1341.0,
|
||||
580.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1340.56494140625,
|
||||
579.7637939453125
|
||||
],
|
||||
"reprojection_error_px": 0.49504472552160556,
|
||||
"confidence": 0.22146320976627604
|
||||
},
|
||||
{
|
||||
"marker_id": 86,
|
||||
"observed_center_px": [
|
||||
1260.75,
|
||||
466.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1259.335205078125,
|
||||
466.6405944824219
|
||||
],
|
||||
"reprojection_error_px": 1.4217635103809503,
|
||||
"confidence": 0.19461123347835588
|
||||
},
|
||||
{
|
||||
"marker_id": 84,
|
||||
"observed_center_px": [
|
||||
1285.5,
|
||||
508.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
1284.366455078125,
|
||||
507.854248046875
|
||||
],
|
||||
"reprojection_error_px": 1.200643035340168,
|
||||
"confidence": 0.17943691614102802
|
||||
},
|
||||
{
|
||||
"marker_id": 82,
|
||||
"observed_center_px": [
|
||||
1130.0,
|
||||
393.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1129.2742919921875,
|
||||
393.4766540527344
|
||||
],
|
||||
"reprojection_error_px": 0.7260834289920938,
|
||||
"confidence": 0.18215071600887703
|
||||
},
|
||||
{
|
||||
"marker_id": 73,
|
||||
"observed_center_px": [
|
||||
1154.0,
|
||||
379.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1152.795654296875,
|
||||
379.095703125
|
||||
],
|
||||
"reprojection_error_px": 1.2081422353226527,
|
||||
"confidence": 0.17728829216377978
|
||||
}
|
||||
]
|
||||
},
|
||||
"qa": {
|
||||
"sanity_notes": []
|
||||
}
|
||||
}
|
||||
BIN
data/homing/20260625_172504/cam2_debug.jpg
Normal file
|
After Width: | Height: | Size: 353 KiB |
2487
data/homing/20260625_172504/robot_1781069752019.json
Normal file
59
data/homing/20260625_172504/robot_state.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"created_utc": "2026-06-25T17:25:19Z",
|
||||
"method": "hybrid",
|
||||
"seeded": true,
|
||||
"movements": {
|
||||
"x": {
|
||||
"value": 162.42504894251783,
|
||||
"unit": "mm",
|
||||
"observable": true,
|
||||
"confidence": "high",
|
||||
"n_markers": 4
|
||||
},
|
||||
"y": {
|
||||
"value": -1.169420311588133,
|
||||
"unit": "deg",
|
||||
"observable": true,
|
||||
"confidence": "high",
|
||||
"n_markers": 4
|
||||
},
|
||||
"z": {
|
||||
"value": 98.46924561003269,
|
||||
"unit": "deg",
|
||||
"observable": true,
|
||||
"confidence": "medium",
|
||||
"n_markers": 1
|
||||
},
|
||||
"a": {
|
||||
"value": 89.51769789582495,
|
||||
"unit": "deg",
|
||||
"observable": true,
|
||||
"confidence": "high",
|
||||
"n_markers": 4
|
||||
},
|
||||
"b": {
|
||||
"value": -47.89793601064412,
|
||||
"unit": "deg",
|
||||
"observable": true,
|
||||
"confidence": "medium",
|
||||
"n_markers": 3
|
||||
},
|
||||
"c": {
|
||||
"value": -64.66160343747586,
|
||||
"unit": "deg",
|
||||
"observable": true,
|
||||
"confidence": "medium",
|
||||
"n_markers": 3
|
||||
},
|
||||
"e": {
|
||||
"value": 15.8937800585978,
|
||||
"unit": "mm",
|
||||
"observable": true,
|
||||
"confidence": "medium",
|
||||
"n_markers": 3
|
||||
}
|
||||
},
|
||||
"residual_rms": 22.202829667894964,
|
||||
"num_markers": 43
|
||||
}
|
||||
105
data/homing/20260625_172504/state_Arm1.json
Normal file
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"status": "ok",
|
||||
"link": "Arm1",
|
||||
"joint": "y",
|
||||
"method": "primary",
|
||||
"joint_origin_world_mm": [
|
||||
216.50906842923365,
|
||||
108.3968,
|
||||
46.3163
|
||||
],
|
||||
"joint_axis_world": [
|
||||
-1.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"mean_angle_deg": 8.73396517409613,
|
||||
"circular_variance": 0.07161679045871494,
|
||||
"circular_std_deg": 22.088350114431325,
|
||||
"num_pairs_used": 6,
|
||||
"num_markers_matched": 4,
|
||||
"per_pair": [
|
||||
{
|
||||
"marker_ids": [
|
||||
55,
|
||||
198
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 2.7136316277566275,
|
||||
"baseline_model_mm": 120.70271952197267,
|
||||
"baseline_obs_mm": 235.58340824705388,
|
||||
"weight": 28435.558049674528
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
55,
|
||||
229
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 36.09512656392027,
|
||||
"baseline_model_mm": 63.35571402801804,
|
||||
"baseline_obs_mm": 159.67340571245236,
|
||||
"weight": 10116.222630197835
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
55,
|
||||
243
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 88.90480962311312,
|
||||
"baseline_model_mm": 34.32559540634365,
|
||||
"baseline_obs_mm": 110.45934908729735,
|
||||
"weight": 3791.582925618644
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
198,
|
||||
229
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": -3.440668721283733,
|
||||
"baseline_model_mm": 89.99999999999997,
|
||||
"baseline_obs_mm": 88.29072557685865,
|
||||
"weight": 7946.165301917275
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
198,
|
||||
243
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": -2.7040713039960176,
|
||||
"baseline_model_mm": 129.8075498574717,
|
||||
"baseline_obs_mm": 129.20056719980755,
|
||||
"weight": 16771.209068402644
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
229,
|
||||
243
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": -0.7105184107327543,
|
||||
"baseline_model_mm": 49.49747468305837,
|
||||
"baseline_obs_mm": 49.40955380679017,
|
||||
"weight": 2445.6481386528067
|
||||
}
|
||||
],
|
||||
"accumulated_state": {
|
||||
"x": 106.50906842923364,
|
||||
"y": 8.73396517409613
|
||||
}
|
||||
}
|
||||
101
data/homing/20260625_172504/state_Arm2.json
Normal file
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"status": "ok",
|
||||
"link": "Arm2",
|
||||
"joint": "a",
|
||||
"method": "primary",
|
||||
"joint_origin_world_mm": [
|
||||
306.50906842923365,
|
||||
-138.70421127250364,
|
||||
84.27799422070137
|
||||
],
|
||||
"joint_axis_world": [
|
||||
0.0,
|
||||
0.13361549880725562,
|
||||
0.9910332479177922
|
||||
],
|
||||
"mean_angle_deg": 93.37084948672933,
|
||||
"circular_variance": 0.0007324693649812808,
|
||||
"circular_std_deg": 2.193370075603702,
|
||||
"num_pairs_used": 4,
|
||||
"num_markers_matched": 4,
|
||||
"per_pair": [
|
||||
{
|
||||
"marker_ids": [
|
||||
143,
|
||||
144
|
||||
],
|
||||
"link": "Arm2",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 89.94688841244773,
|
||||
"baseline_model_mm": 26.68445427585132,
|
||||
"baseline_obs_mm": 24.643765187064083,
|
||||
"weight": 657.6054253190281
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
143,
|
||||
146
|
||||
],
|
||||
"link": "Arm2",
|
||||
"tier": "primary",
|
||||
"skipped": true,
|
||||
"reason": "bl_model=0.3 bl_obs=2.8 < 15.0"
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
143,
|
||||
148
|
||||
],
|
||||
"link": "Arm2",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 93.80406057538599,
|
||||
"baseline_model_mm": 26.836171485515575,
|
||||
"baseline_obs_mm": 28.679452701596173,
|
||||
"weight": 769.6467108107678
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
144,
|
||||
146
|
||||
],
|
||||
"link": "Arm2",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 92.82624404009415,
|
||||
"baseline_model_mm": 26.791733799812224,
|
||||
"baseline_obs_mm": 27.197454261300408,
|
||||
"weight": 728.6669546013292
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
144,
|
||||
148
|
||||
],
|
||||
"link": "Arm2",
|
||||
"tier": "primary",
|
||||
"skipped": true,
|
||||
"reason": "bl_model=0.4 bl_obs=4.3 < 15.0"
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
146,
|
||||
148
|
||||
],
|
||||
"link": "Arm2",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 96.11666161271195,
|
||||
"baseline_model_mm": 26.946706663338293,
|
||||
"baseline_obs_mm": 31.282017166008377,
|
||||
"weight": 842.9473404099408
|
||||
}
|
||||
],
|
||||
"accumulated_state": {
|
||||
"x": 106.50906842923364,
|
||||
"y": 8.73396517409613,
|
||||
"z": 88.94460334069886,
|
||||
"a": 93.37084948672933
|
||||
}
|
||||
}
|
||||
54
data/homing/20260625_172504/state_Ellbow.json
Normal file
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"status": "ok",
|
||||
"link": "Ellbow",
|
||||
"joint": "z",
|
||||
"method": "fallback_1_child_axis",
|
||||
"joint_origin_world_mm": [
|
||||
216.50906842923365,
|
||||
-138.70421127250364,
|
||||
84.27799422070137
|
||||
],
|
||||
"joint_axis_world": [
|
||||
-1.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"mean_angle_deg": 88.94460334069886,
|
||||
"circular_variance": 5.079874864089007e-07,
|
||||
"circular_std_deg": 0.05775162282873076,
|
||||
"num_pairs_used": 2,
|
||||
"num_markers_matched": 1,
|
||||
"per_pair": [
|
||||
{
|
||||
"marker_ids": [
|
||||
143,
|
||||
146
|
||||
],
|
||||
"link": "Arm2",
|
||||
"tier": "fallback_1_child_axis",
|
||||
"skipped": false,
|
||||
"angle_deg": 89.03275897168004,
|
||||
"baseline_model_mm": 70.00000071428568,
|
||||
"baseline_obs_mm": 70.28215356251216,
|
||||
"weight": 4919.750799577387
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
144,
|
||||
148
|
||||
],
|
||||
"link": "Arm2",
|
||||
"tier": "fallback_1_child_axis",
|
||||
"skipped": false,
|
||||
"angle_deg": 88.90676969215383,
|
||||
"baseline_model_mm": 106.99999999999999,
|
||||
"baseline_obs_mm": 107.1349128404376,
|
||||
"weight": 11463.43567392682
|
||||
}
|
||||
],
|
||||
"accumulated_state": {
|
||||
"x": 106.50906842923364,
|
||||
"y": 8.73396517409613,
|
||||
"z": 88.94460334069886
|
||||
}
|
||||
}
|
||||
61
data/homing/20260625_175916/aruco_marker_poses.csv
Normal file
@@ -0,0 +1,61 @@
|
||||
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,unknown,,3,505.79,-100.06,-8.17,0.00654,-0.01478,0.99987,,,,,,23.71
|
||||
46,Board,A0,2,537.9,185.52,-27.5,0.0061,0.00117,0.99998,537.44,185.2,-27.2,0.638,-0.305,23.83
|
||||
47,Board,A0,3,343.34,-286.18,-27.52,-0.00826,0.02432,0.99967,343.18,-286.05,-27.49,0.21,-0.034,24.1
|
||||
50,Board,A0,3,574.64,211.77,-27.34,0.00242,0.0109,0.99994,574.23,211.48,-27.15,0.539,-0.186,24.07
|
||||
51,Board,A0,3,166.89,-171.06,-27.49,-0.04142,0.00081,0.99914,167.18,-170.93,-27.76,0.417,0.272,24.2
|
||||
53,Board,A0,3,487.16,212.93,-27.58,0.06677,0.02171,0.99753,487.08,212.19,-27.28,0.798,-0.296,23.92
|
||||
54,Board,A0,3,341.31,-330.18,-27.55,-0.01014,0.01262,0.99987,341.05,-330.09,-27.5,0.275,-0.049,24.21
|
||||
55,Arm1,A0,3,282.71,-261.9,-26.63,-0.03413,0.00638,0.9994,,,,,,24.37
|
||||
56,Arm1,A0,2,500.02,169.42,-27.88,-0.01336,0.00216,0.99991,,,,,,23.7
|
||||
58,Board,A0,3,48.69,-216.76,-27.87,-0.0193,0.00188,0.99981,49.3,-216.52,-27.93,0.658,0.059,24.44
|
||||
60,Board,A0,2,435.69,286.11,-29.34,-0.04419,0.06927,0.99662,435.46,283.95,-27.36,2.937,-1.981,24.83
|
||||
62,Board,A0,3,404.22,-174.75,-27.14,0.00893,-0.00881,0.99992,404.07,-174.84,-27.4,0.313,0.259,23.96
|
||||
64,Board,A0,2,-22.33,-187.15,-26.56,0.02977,0.00062,0.99956,-21.95,-186.37,-28.04,1.719,1.484,23.66
|
||||
66,Board,A0,2,207.97,-362.78,-28.65,-0.08,0.0928,0.99247,208.41,-362.24,-27.7,1.18,-0.951,25.14
|
||||
67,Board,A0,2,524.61,268.02,-28.51,-0.0163,-0.00123,0.99987,524.1,266.85,-27.22,1.818,-1.29,23.6
|
||||
68,Board,A0,3,575.05,170.15,-27.14,0.01722,0.03205,0.99934,574.4,170.26,-27.15,0.663,0.006,24.1
|
||||
69,Board,A0,2,6.91,-280.99,-27.23,-0.00089,0.03112,0.99952,6.58,-279.46,-28,1.744,0.77,24.07
|
||||
70,Board,A0,2,603.56,300.57,-28.34,-0.06715,0.04327,0.9968,603.03,299.84,-27.11,1.527,-1.233,23.99
|
||||
73,Board,A0,2,222.01,337.1,-29.9,-0.0437,0.11256,0.99268,223.01,334.05,-27.67,3.914,-2.235,25.6
|
||||
75,Board,A0,2,-27.07,199.16,-28.78,-0.06027,0.14192,0.98804,-24.94,196.46,-28.04,3.523,-0.736,26.71
|
||||
76,Board,A0,2,686.17,164.68,-26.47,-0.08323,0.00998,0.99648,685.86,166,-26.98,1.45,0.514,23.85
|
||||
77,Arm1,A0,2,17.53,194.86,-28.25,-0.02333,0.14876,0.9886,,,,,,26.07
|
||||
79,Board,A0,2,311.53,-157.96,-26.95,0.02919,-0.01163,0.99951,311.73,-158.5,-27.54,0.827,0.59,24.03
|
||||
82,Board,A0,2,219.4,300.84,-30.04,0.00365,0.102,0.99478,220.31,298.19,-27.68,3.663,-2.363,25.25
|
||||
85,Board,A0,3,504.05,-313.36,-27.37,-0.00147,-0.03538,0.99937,503.43,-312.87,-27.25,0.799,-0.124,24.1
|
||||
88,Board,A0,2,767.2,313.41,-25.61,0.05089,-0.00066,0.9987,767.09,314.94,-26.86,1.978,1.252,23.68
|
||||
90,Board,A0,2,644.9,315.86,-27.76,-0.00476,-0.03483,0.99938,644.39,315.79,-27.04,0.882,-0.718,23.64
|
||||
91,Board,A0,2,725.06,326.79,-26.9,-0.04318,-0.00677,0.99904,724.61,327.11,-26.92,0.553,0.023,23.76
|
||||
92,Board,A0,2,644.97,-186.59,-26.03,0.03072,-0.01393,0.99943,644.42,-185.49,-27.04,1.592,1.007,24.18
|
||||
94,Board,A0,2,875.22,168.95,-22.69,0.07264,0.05485,0.99585,876.38,172.13,-26.7,5.244,4.006,24.44
|
||||
95,Board,A0,3,184.79,-273.16,-27.83,-0.00258,0.02727,0.99962,185.04,-272.99,-27.73,0.315,-0.097,24.35
|
||||
96,Board,A0,3,369.18,-185.71,-27.51,0.02262,0.01808,0.99958,369.1,-186.1,-27.46,0.4,-0.049,24.16
|
||||
97,Board,A0,2,303.36,-359.54,-26.35,-0.00502,0.02288,0.99973,303.02,-359.03,-27.55,1.344,1.197,24.46
|
||||
98,Board,A0,2,577.15,315.74,-29.24,-0.02274,0.04433,0.99876,576.48,314.67,-27.15,2.445,-2.094,24.33
|
||||
100,Board,A0,2,803.8,169.01,-24.93,0.01883,-0.01657,0.99969,803.92,171.12,-26.81,2.829,1.882,23.24
|
||||
103,Board,A0,3,104.64,-186.37,-27.12,-0.00058,0.0069,0.99998,105.03,-186.33,-27.85,0.825,0.726,24.45
|
||||
104,Board,A0,2,827.17,235.41,-24.77,0.08284,0.04199,0.99568,827.64,237.83,-26.77,3.174,1.996,24.77
|
||||
105,Board,A0,3,524.5,-266.88,-27.45,-0.00083,0.01085,0.99994,523.86,-266.44,-27.22,0.811,-0.234,24.19
|
||||
118,unknown,,3,323.07,-174.22,47.26,0.01395,-0.99423,0.10635,,,,,,24.41
|
||||
122,Ellbow,,3,360.07,-173.45,46.18,0.01114,-0.99429,0.10615,,,,,,24.51
|
||||
143,Arm2,,2,339.81,-138.06,229.48,-0.73183,-0.67663,0.08126,,,,,,24.18
|
||||
144,Arm2,,3,362.95,-156.86,158.05,-0.03961,-0.99309,0.11048,,,,,,24.37
|
||||
147,FingerA,,3,382.82,-143.67,226.6,0.42827,-0.9012,0.06646,,,,,,24.01
|
||||
148,Arm2,,3,366.84,-142.43,264.66,-0.04437,-0.99493,0.09027,,,,,,24.39
|
||||
178,FingerB,,2,287.31,-120.45,315.29,-0.66387,-0.73035,-0.1608,,,,,,22.88
|
||||
179,FingerB,,2,329.61,-140.32,313.07,-0.6954,-0.15177,0.70241,,,,,,26.39
|
||||
198,Arm1,,2,268.82,-53.79,84.52,0.01757,0.02587,0.99951,,,,,,24.56
|
||||
200,unknown,,2,199.61,-28.62,110.03,-0.06794,-0.01026,0.99764,,,,,,23.25
|
||||
204,unknown,,2,198.89,116.09,120.31,0.05577,0.03761,0.99774,,,,,,24.15
|
||||
208,Board,rail,3,626.32,-98.56,-6.78,0.00383,-0.01334,0.9999,631.01,-98.43,-7.71,4.781,0.93,23.72
|
||||
210,Board,rail,2,129.76,-7.26,-6.27,0.028,0.01002,0.99956,122.63,-13.98,-0.72,11.263,-5.553,23.35
|
||||
214,unknown,,3,532.15,-7.88,-7.33,-0.02081,0.05531,0.99825,,,,,,24.05
|
||||
217,Board,rail,2,730.24,-8.43,-5.0,-0.01833,-0.01881,0.99966,732.39,-23.88,7.39,19.917,-12.387,23.61
|
||||
229,Arm1,,3,271.15,-142.19,79.27,0.01827,-0.03009,0.99938,,,,,,24.04
|
||||
243,Arm1,,3,270.52,-175.76,42.77,0.0038,-0.99933,-0.03654,,,,,,24.16
|
||||
|
||||
camera_id,x_mm,y_mm,z_mm,dir_x,dir_y,dir_z
|
||||
cam0,335.07,-885.3,469.64,-0.06533,0.89189,-0.44751
|
||||
cam1,297.15,-462.72,780.65,0.09465,0.43305,-0.89639
|
||||
cam2,714.94,-666.29,727.22,-0.42921,0.59338,-0.68094
|
||||
|
2542
data/homing/20260625_175916/aruco_marker_poses.json
Normal file
BIN
data/homing/20260625_175916/cam0.jpg
Normal file
|
After Width: | Height: | Size: 103 KiB |
2628
data/homing/20260625_175916/cam0_aruco_detection.json
Normal file
481
data/homing/20260625_175916/cam0_camera_pose.json
Normal file
@@ -0,0 +1,481 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"created_utc": "2026-06-25T17:59:21Z",
|
||||
"source": {
|
||||
"detection_json": "/app/data/homing/20260625_175916/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": 20,
|
||||
"used_marker_ids": [
|
||||
97,
|
||||
66,
|
||||
85,
|
||||
54,
|
||||
105,
|
||||
69,
|
||||
47,
|
||||
95,
|
||||
58,
|
||||
64,
|
||||
103,
|
||||
96,
|
||||
62,
|
||||
51,
|
||||
79,
|
||||
208,
|
||||
210,
|
||||
68,
|
||||
50,
|
||||
53
|
||||
],
|
||||
"history": {
|
||||
"iters": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3
|
||||
],
|
||||
"rms": [
|
||||
0.011436738437523918,
|
||||
0.0017627388219078695,
|
||||
0.0017082741597643208,
|
||||
0.0017082738298200922
|
||||
],
|
||||
"lambda": [
|
||||
0.001,
|
||||
0.0005,
|
||||
0.00025,
|
||||
0.000125
|
||||
]
|
||||
},
|
||||
"residual_rms_px": 3.4895581122703203,
|
||||
"residual_median_px": 1.3632084656881505,
|
||||
"residual_max_px": 12.179917236270976,
|
||||
"sigma2_normalized": 3.433175856049273e-06
|
||||
},
|
||||
"camera_pose": {
|
||||
"world_to_camera": {
|
||||
"rotation_matrix": [
|
||||
[
|
||||
0.99742591381073,
|
||||
0.04507605358958244,
|
||||
-0.055764634162187576
|
||||
],
|
||||
[
|
||||
-0.029563840478658676,
|
||||
-0.4500020146369934,
|
||||
-0.8925380110740662
|
||||
],
|
||||
[
|
||||
-0.06532628834247589,
|
||||
0.891889214515686,
|
||||
-0.44751107692718506
|
||||
]
|
||||
],
|
||||
"translation_m": [
|
||||
-0.26810967922210693,
|
||||
0.0306912399828434,
|
||||
1.021647572517395
|
||||
],
|
||||
"rvec_rad": [
|
||||
2.035801112416453,
|
||||
0.010908616696792009,
|
||||
-0.08515448496251522
|
||||
]
|
||||
},
|
||||
"camera_in_world": {
|
||||
"position_m": [
|
||||
0.33506736159324646,
|
||||
-0.8853000402450562,
|
||||
0.46964067220687866
|
||||
],
|
||||
"position_mm": [
|
||||
335.0673522949219,
|
||||
-885.300048828125,
|
||||
469.64068603515625
|
||||
],
|
||||
"orientation_deg": {
|
||||
"roll": 116.64550018310547,
|
||||
"pitch": 3.745587110519409,
|
||||
"yaw": -1.6977574825286865
|
||||
}
|
||||
},
|
||||
"uncertainty": {
|
||||
"pose_covariance_6x6": [
|
||||
[
|
||||
1.0402983243682025e-05,
|
||||
9.607061849723336e-07,
|
||||
3.175419172829312e-06,
|
||||
-1.413862159845341e-07,
|
||||
-2.12955432250041e-06,
|
||||
2.312142235999549e-07
|
||||
],
|
||||
[
|
||||
9.607061849723307e-07,
|
||||
3.7788686477185887e-06,
|
||||
-1.6924039364567714e-07,
|
||||
5.562539816390373e-07,
|
||||
-8.841983839385075e-07,
|
||||
6.874403655011122e-07
|
||||
],
|
||||
[
|
||||
3.175419172829249e-06,
|
||||
-1.692403936456681e-07,
|
||||
1.3583347408234157e-05,
|
||||
-9.175016077988046e-07,
|
||||
-2.2808655354386924e-06,
|
||||
-3.2773776598692575e-06
|
||||
],
|
||||
[
|
||||
-1.4138621598453382e-07,
|
||||
5.562539816390341e-07,
|
||||
-9.175016077987983e-07,
|
||||
2.6164306620048117e-07,
|
||||
4.0225581275842607e-08,
|
||||
3.496020393352873e-07
|
||||
],
|
||||
[
|
||||
-2.1295543225004017e-06,
|
||||
-8.841983839385094e-07,
|
||||
-2.280865535438699e-06,
|
||||
4.02255812758387e-08,
|
||||
9.903676474491735e-07,
|
||||
6.66954432381659e-07
|
||||
],
|
||||
[
|
||||
2.3121422359997266e-07,
|
||||
6.874403655011114e-07,
|
||||
-3.277377659869258e-06,
|
||||
3.4960203933526876e-07,
|
||||
6.669544323816537e-07,
|
||||
3.1141328985088255e-06
|
||||
]
|
||||
],
|
||||
"parameter_std": {
|
||||
"rvec_std_deg": [
|
||||
0.18479983617802564,
|
||||
0.11137905544845887,
|
||||
0.2111669934581791
|
||||
],
|
||||
"tvec_std_m": [
|
||||
0.0005115105729117251,
|
||||
0.0009951721697521356,
|
||||
0.0017646905956877612
|
||||
]
|
||||
},
|
||||
"camera_center_std_m": [
|
||||
0.0026703652741227927,
|
||||
0.0018374002535456223,
|
||||
0.0027539784841622054
|
||||
],
|
||||
"camera_center_std_mm": [
|
||||
2.670365274122793,
|
||||
1.8374002535456224,
|
||||
2.7539784841622055
|
||||
],
|
||||
"orientation_std_deg": {
|
||||
"roll": 0.1722531066068174,
|
||||
"pitch": 0.1564002711188888,
|
||||
"yaw": 0.12201801252145385
|
||||
}
|
||||
}
|
||||
},
|
||||
"observations": {
|
||||
"markers": [
|
||||
{
|
||||
"marker_id": 97,
|
||||
"observed_center_px": [
|
||||
676.0,
|
||||
910.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
675.7621459960938,
|
||||
911.7245483398438
|
||||
],
|
||||
"reprojection_error_px": 1.247434633072338,
|
||||
"confidence": 0.42385670146087856
|
||||
},
|
||||
{
|
||||
"marker_id": 66,
|
||||
"observed_center_px": [
|
||||
479.5,
|
||||
922.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
480.50054931640625,
|
||||
919.6788330078125
|
||||
],
|
||||
"reprojection_error_px": 2.7589850735869397,
|
||||
"confidence": 0.27078087716396265
|
||||
},
|
||||
{
|
||||
"marker_id": 85,
|
||||
"observed_center_px": [
|
||||
1079.0,
|
||||
843.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
1076.984619140625,
|
||||
842.904296875
|
||||
],
|
||||
"reprojection_error_px": 2.1856289218368885,
|
||||
"confidence": 0.6759853525830334
|
||||
},
|
||||
{
|
||||
"marker_id": 54,
|
||||
"observed_center_px": [
|
||||
753.5,
|
||||
868.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
752.8966064453125,
|
||||
868.8074340820312
|
||||
],
|
||||
"reprojection_error_px": 0.606120825922678,
|
||||
"confidence": 0.6610788202218779
|
||||
},
|
||||
{
|
||||
"marker_id": 105,
|
||||
"observed_center_px": [
|
||||
1098.25,
|
||||
784.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1095.7879638671875,
|
||||
782.9950561523438
|
||||
],
|
||||
"reprojection_error_px": 2.6592356150248286,
|
||||
"confidence": 0.5825558453258135
|
||||
},
|
||||
{
|
||||
"marker_id": 69,
|
||||
"observed_center_px": [
|
||||
130.5,
|
||||
818.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
131.20993041992188,
|
||||
816.9083862304688
|
||||
],
|
||||
"reprojection_error_px": 1.302160444400257,
|
||||
"confidence": 0.5841161997457144
|
||||
},
|
||||
{
|
||||
"marker_id": 47,
|
||||
"observed_center_px": [
|
||||
755.0,
|
||||
810.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
754.5029907226562,
|
||||
810.5115966796875
|
||||
],
|
||||
"reprojection_error_px": 0.4971445511574386,
|
||||
"confidence": 0.5487375886524822
|
||||
},
|
||||
{
|
||||
"marker_id": 95,
|
||||
"observed_center_px": [
|
||||
461.0,
|
||||
800.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
461.86224365234375,
|
||||
800.0243530273438
|
||||
],
|
||||
"reprojection_error_px": 0.8912803555986298,
|
||||
"confidence": 0.5215660558894334
|
||||
},
|
||||
{
|
||||
"marker_id": 58,
|
||||
"observed_center_px": [
|
||||
243.25,
|
||||
743.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
244.70860290527344,
|
||||
742.6357421875
|
||||
],
|
||||
"reprojection_error_px": 1.5033982137941357,
|
||||
"confidence": 0.468912299986827
|
||||
},
|
||||
{
|
||||
"marker_id": 64,
|
||||
"observed_center_px": [
|
||||
139.5,
|
||||
714.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
141.43846130371094,
|
||||
715.3218383789062
|
||||
],
|
||||
"reprojection_error_px": 2.346249970897008,
|
||||
"confidence": 0.4334442420959473
|
||||
},
|
||||
{
|
||||
"marker_id": 103,
|
||||
"observed_center_px": [
|
||||
350.5,
|
||||
708.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
352.01885986328125,
|
||||
708.9456787109375
|
||||
],
|
||||
"reprojection_error_px": 1.78920191946218,
|
||||
"confidence": 0.3938267188343575
|
||||
},
|
||||
{
|
||||
"marker_id": 96,
|
||||
"observed_center_px": [
|
||||
793.0,
|
||||
697.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
793.4209594726562,
|
||||
698.4274291992188
|
||||
],
|
||||
"reprojection_error_px": 0.7975695565737103,
|
||||
"confidence": 0.36075364145684324
|
||||
},
|
||||
{
|
||||
"marker_id": 62,
|
||||
"observed_center_px": [
|
||||
851.25,
|
||||
685.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
851.3250732421875,
|
||||
686.2469482421875
|
||||
],
|
||||
"reprojection_error_px": 0.7507114413671468,
|
||||
"confidence": 0.34135471017020086
|
||||
},
|
||||
{
|
||||
"marker_id": 51,
|
||||
"observed_center_px": [
|
||||
457.75,
|
||||
690.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
459.0975646972656,
|
||||
691.2110595703125
|
||||
],
|
||||
"reprojection_error_px": 1.4242564869760441,
|
||||
"confidence": 0.3676955439548635
|
||||
},
|
||||
{
|
||||
"marker_id": 79,
|
||||
"observed_center_px": [
|
||||
695.75,
|
||||
672.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
696.7139892578125,
|
||||
673.8245849609375
|
||||
],
|
||||
"reprojection_error_px": 2.0635856097717857,
|
||||
"confidence": 0.3187317073170732
|
||||
},
|
||||
{
|
||||
"marker_id": 208,
|
||||
"observed_center_px": [
|
||||
1201.75,
|
||||
583.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1208.861572265625,
|
||||
583.9735107421875
|
||||
],
|
||||
"reprojection_error_px": 7.177895461370356,
|
||||
"confidence": 0.28568227626765064
|
||||
},
|
||||
{
|
||||
"marker_id": 210,
|
||||
"observed_center_px": [
|
||||
439.0,
|
||||
532.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
427.0049133300781,
|
||||
530.6361694335938
|
||||
],
|
||||
"reprojection_error_px": 12.179917236270976,
|
||||
"confidence": 0.16251118951659882
|
||||
},
|
||||
{
|
||||
"marker_id": 68,
|
||||
"observed_center_px": [
|
||||
1027.25,
|
||||
434.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
1026.4912109375,
|
||||
434.3568420410156
|
||||
],
|
||||
"reprojection_error_px": 0.7662741435661348,
|
||||
"confidence": 0.09654486228169104
|
||||
},
|
||||
{
|
||||
"marker_id": 50,
|
||||
"observed_center_px": [
|
||||
1016.5,
|
||||
413.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1016.3207397460938,
|
||||
413.5331726074219
|
||||
],
|
||||
"reprojection_error_px": 0.18230375891269784,
|
||||
"confidence": 0.08377973241313476
|
||||
},
|
||||
{
|
||||
"marker_id": 53,
|
||||
"observed_center_px": [
|
||||
909.0,
|
||||
416.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
909.6261596679688,
|
||||
416.78497314453125
|
||||
],
|
||||
"reprojection_error_px": 0.6879575734700244,
|
||||
"confidence": 0.07916194626380657
|
||||
}
|
||||
]
|
||||
},
|
||||
"qa": {
|
||||
"sanity_notes": []
|
||||
}
|
||||
}
|
||||
BIN
data/homing/20260625_175916/cam0_debug.jpg
Normal file
|
After Width: | Height: | Size: 223 KiB |
BIN
data/homing/20260625_175916/cam1.jpg
Normal file
|
After Width: | Height: | Size: 110 KiB |
3558
data/homing/20260625_175916/cam1_aruco_detection.json
Normal file
761
data/homing/20260625_175916/cam1_camera_pose.json
Normal file
@@ -0,0 +1,761 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"created_utc": "2026-06-25T17:59:25Z",
|
||||
"source": {
|
||||
"detection_json": "/app/data/homing/20260625_175916/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": 40,
|
||||
"used_marker_ids": [
|
||||
54,
|
||||
95,
|
||||
58,
|
||||
85,
|
||||
47,
|
||||
103,
|
||||
59,
|
||||
105,
|
||||
48,
|
||||
51,
|
||||
102,
|
||||
96,
|
||||
62,
|
||||
71,
|
||||
92,
|
||||
208,
|
||||
63,
|
||||
210,
|
||||
217,
|
||||
74,
|
||||
75,
|
||||
52,
|
||||
76,
|
||||
68,
|
||||
46,
|
||||
53,
|
||||
50,
|
||||
101,
|
||||
82,
|
||||
100,
|
||||
73,
|
||||
60,
|
||||
67,
|
||||
70,
|
||||
94,
|
||||
90,
|
||||
104,
|
||||
98,
|
||||
91,
|
||||
88
|
||||
],
|
||||
"history": {
|
||||
"iters": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3
|
||||
],
|
||||
"rms": [
|
||||
0.011863062568042395,
|
||||
0.0021882720514259653,
|
||||
0.0021293863444762583,
|
||||
0.0021293859894700134
|
||||
],
|
||||
"lambda": [
|
||||
0.001,
|
||||
0.0005,
|
||||
0.00025,
|
||||
0.000125
|
||||
]
|
||||
},
|
||||
"residual_rms_px": 4.205255463207004,
|
||||
"residual_median_px": 1.1858116613812175,
|
||||
"residual_max_px": 19.118438507028245,
|
||||
"sigma2_normalized": 4.9019293968833265e-06
|
||||
},
|
||||
"camera_pose": {
|
||||
"world_to_camera": {
|
||||
"rotation_matrix": [
|
||||
[
|
||||
-0.995226263999939,
|
||||
0.019625136628746986,
|
||||
-0.09560120105743408
|
||||
],
|
||||
[
|
||||
-0.023808155208826065,
|
||||
0.9011572599411011,
|
||||
0.4328380525112152
|
||||
],
|
||||
[
|
||||
0.09464621543884277,
|
||||
0.4330478608608246,
|
||||
-0.8963881134986877
|
||||
]
|
||||
],
|
||||
"translation_m": [
|
||||
0.37944144010543823,
|
||||
0.08616430312395096,
|
||||
0.8720222115516663
|
||||
],
|
||||
"rvec_rad": [
|
||||
0.0032728478486759383,
|
||||
-2.9675124187665194,
|
||||
-0.6774800690352322
|
||||
]
|
||||
},
|
||||
"camera_in_world": {
|
||||
"position_m": [
|
||||
0.2971478998661041,
|
||||
-0.4627215266227722,
|
||||
0.7806501984596252
|
||||
],
|
||||
"position_mm": [
|
||||
297.14788818359375,
|
||||
-462.7215270996094,
|
||||
780.6502075195312
|
||||
],
|
||||
"orientation_deg": {
|
||||
"roll": 154.2146453857422,
|
||||
"pitch": -5.430957317352295,
|
||||
"yaw": -178.6295928955078
|
||||
}
|
||||
},
|
||||
"uncertainty": {
|
||||
"pose_covariance_6x6": [
|
||||
[
|
||||
2.216368778099703e-06,
|
||||
-1.0420377127470311e-07,
|
||||
-5.846035681663414e-07,
|
||||
9.638753004284797e-09,
|
||||
6.568277931365646e-07,
|
||||
1.8540529905122184e-07
|
||||
],
|
||||
[
|
||||
-1.0420377127470325e-07,
|
||||
7.716359917594955e-06,
|
||||
-8.780258686751835e-07,
|
||||
-8.798584488389978e-07,
|
||||
8.337615617564991e-07,
|
||||
-3.831747509912712e-06
|
||||
],
|
||||
[
|
||||
-5.846035681663423e-07,
|
||||
-8.780258686751325e-07,
|
||||
1.8740126796208265e-05,
|
||||
-6.332974421687337e-07,
|
||||
-7.826466185078999e-07,
|
||||
3.040527671220899e-07
|
||||
],
|
||||
[
|
||||
9.638753004284528e-09,
|
||||
-8.798584488389991e-07,
|
||||
-6.332974421687222e-07,
|
||||
2.409326607990254e-07,
|
||||
-7.666433629844329e-08,
|
||||
3.751828231192777e-07
|
||||
],
|
||||
[
|
||||
6.568277931365642e-07,
|
||||
8.337615617564963e-07,
|
||||
-7.826466185079048e-07,
|
||||
-7.66643362984426e-08,
|
||||
4.122731304646649e-07,
|
||||
-3.5672545335086356e-07
|
||||
],
|
||||
[
|
||||
1.8540529905122184e-07,
|
||||
-3.831747509912709e-06,
|
||||
3.040527671221047e-07,
|
||||
3.7518282311927725e-07,
|
||||
-3.567254533508643e-07,
|
||||
2.7716081204320043e-06
|
||||
]
|
||||
],
|
||||
"parameter_std": {
|
||||
"rvec_std_deg": [
|
||||
0.08529894195541628,
|
||||
0.15915814568050488,
|
||||
0.24803267374807242
|
||||
],
|
||||
"tvec_std_m": [
|
||||
0.0004908489185065252,
|
||||
0.0006420849869485074,
|
||||
0.0016648147405738587
|
||||
]
|
||||
},
|
||||
"camera_center_std_m": [
|
||||
0.0027539612430056413,
|
||||
0.002145451671454086,
|
||||
0.0019549734255131183
|
||||
],
|
||||
"camera_center_std_mm": [
|
||||
2.7539612430056413,
|
||||
2.145451671454086,
|
||||
1.9549734255131184
|
||||
],
|
||||
"orientation_std_deg": {
|
||||
"roll": 0.19816528973825537,
|
||||
"pitch": 0.158142424860459,
|
||||
"yaw": 0.04543296464811841
|
||||
}
|
||||
}
|
||||
},
|
||||
"observations": {
|
||||
"markers": [
|
||||
{
|
||||
"marker_id": 54,
|
||||
"observed_center_px": [
|
||||
735.25,
|
||||
38.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
735.1257934570312,
|
||||
38.84978103637695
|
||||
],
|
||||
"reprojection_error_px": 0.6125067811164705,
|
||||
"confidence": 0.29867757253933086
|
||||
},
|
||||
{
|
||||
"marker_id": 95,
|
||||
"observed_center_px": [
|
||||
1005.25,
|
||||
139.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1004.7445678710938,
|
||||
139.50558471679688
|
||||
],
|
||||
"reprojection_error_px": 0.714896875632619,
|
||||
"confidence": 0.9333333333333333
|
||||
},
|
||||
{
|
||||
"marker_id": 58,
|
||||
"observed_center_px": [
|
||||
1234.75,
|
||||
235.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
1234.0479736328125,
|
||||
235.1490020751953
|
||||
],
|
||||
"reprojection_error_px": 0.7092542569779415,
|
||||
"confidence": 0.36770453019575644
|
||||
},
|
||||
{
|
||||
"marker_id": 85,
|
||||
"observed_center_px": [
|
||||
458.0,
|
||||
68.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
458.30291748046875,
|
||||
69.59838104248047
|
||||
],
|
||||
"reprojection_error_px": 1.6268315699341729,
|
||||
"confidence": 0.875342401743355
|
||||
},
|
||||
{
|
||||
"marker_id": 47,
|
||||
"observed_center_px": [
|
||||
731.75,
|
||||
117.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
731.4143676757812,
|
||||
117.63695526123047
|
||||
],
|
||||
"reprojection_error_px": 0.7199729591239207,
|
||||
"confidence": 0.9759139241315488
|
||||
},
|
||||
{
|
||||
"marker_id": 103,
|
||||
"observed_center_px": [
|
||||
1128.75,
|
||||
284.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1128.21533203125,
|
||||
284.2250061035156
|
||||
],
|
||||
"reprojection_error_px": 0.6012416152520633,
|
||||
"confidence": 0.9144001450649527
|
||||
},
|
||||
{
|
||||
"marker_id": 59,
|
||||
"observed_center_px": [
|
||||
262.0,
|
||||
123.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
263.8606872558594,
|
||||
125.23478698730469
|
||||
],
|
||||
"reprojection_error_px": 2.5439424041120047,
|
||||
"confidence": 0.9428090418229809
|
||||
},
|
||||
{
|
||||
"marker_id": 105,
|
||||
"observed_center_px": [
|
||||
432.25,
|
||||
147.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
432.2873840332031,
|
||||
149.19923400878906
|
||||
],
|
||||
"reprojection_error_px": 1.449716102610904,
|
||||
"confidence": 0.9442241264421224
|
||||
},
|
||||
{
|
||||
"marker_id": 48,
|
||||
"observed_center_px": [
|
||||
148.5,
|
||||
50.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
149.40765380859375,
|
||||
51.741458892822266
|
||||
],
|
||||
"reprojection_error_px": 1.3441823434382303,
|
||||
"confidence": 0.5647167996853729
|
||||
},
|
||||
{
|
||||
"marker_id": 51,
|
||||
"observed_center_px": [
|
||||
1019.5,
|
||||
307.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1019.1678466796875,
|
||||
307.8690490722656
|
||||
],
|
||||
"reprojection_error_px": 0.49651087191997795,
|
||||
"confidence": 0.8824030145295596
|
||||
},
|
||||
{
|
||||
"marker_id": 102,
|
||||
"observed_center_px": [
|
||||
239.5,
|
||||
213.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
240.8688507080078,
|
||||
215.52737426757812
|
||||
],
|
||||
"reprojection_error_px": 2.24339286525173,
|
||||
"confidence": 0.9331395642876747
|
||||
},
|
||||
{
|
||||
"marker_id": 96,
|
||||
"observed_center_px": [
|
||||
690.0,
|
||||
280.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
689.8768310546875,
|
||||
280.7818908691406
|
||||
],
|
||||
"reprojection_error_px": 0.12723056481812098,
|
||||
"confidence": 0.9012948266053811
|
||||
},
|
||||
{
|
||||
"marker_id": 62,
|
||||
"observed_center_px": [
|
||||
634.75,
|
||||
296.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
634.6005249023438,
|
||||
297.2737731933594
|
||||
],
|
||||
"reprojection_error_px": 0.5446844617769289,
|
||||
"confidence": 0.8643569912878776
|
||||
},
|
||||
{
|
||||
"marker_id": 71,
|
||||
"observed_center_px": [
|
||||
63.25,
|
||||
113.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
63.99217224121094,
|
||||
114.01245880126953
|
||||
],
|
||||
"reprojection_error_px": 0.7872129686354927,
|
||||
"confidence": 0.6618010073234457
|
||||
},
|
||||
{
|
||||
"marker_id": 92,
|
||||
"observed_center_px": [
|
||||
256.25,
|
||||
273.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
257.8680114746094,
|
||||
274.7709045410156
|
||||
],
|
||||
"reprojection_error_px": 2.220610671605798,
|
||||
"confidence": 0.8785732433921414
|
||||
},
|
||||
{
|
||||
"marker_id": 208,
|
||||
"observed_center_px": [
|
||||
295.25,
|
||||
413.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
288.319091796875,
|
||||
413.3032531738281
|
||||
],
|
||||
"reprojection_error_px": 6.945291300358831,
|
||||
"confidence": 0.7372980849807326
|
||||
},
|
||||
{
|
||||
"marker_id": 63,
|
||||
"observed_center_px": [
|
||||
36.0,
|
||||
190.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
37.349727630615234,
|
||||
191.05543518066406
|
||||
],
|
||||
"reprojection_error_px": 1.3838552404184128,
|
||||
"confidence": 0.23122213258874602
|
||||
},
|
||||
{
|
||||
"marker_id": 210,
|
||||
"observed_center_px": [
|
||||
1059.0,
|
||||
560.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1073.5731201171875,
|
||||
555.7078857421875
|
||||
],
|
||||
"reprojection_error_px": 15.192039848292012,
|
||||
"confidence": 0.6479471317434429
|
||||
},
|
||||
{
|
||||
"marker_id": 217,
|
||||
"observed_center_px": [
|
||||
162.0,
|
||||
532.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
146.59190368652344,
|
||||
520.931640625
|
||||
],
|
||||
"reprojection_error_px": 19.118438507028245,
|
||||
"confidence": 0.6089399477645175
|
||||
},
|
||||
{
|
||||
"marker_id": 74,
|
||||
"observed_center_px": [
|
||||
1085.75,
|
||||
734.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
1084.8079833984375,
|
||||
734.9703979492188
|
||||
],
|
||||
"reprojection_error_px": 0.9674557011249624,
|
||||
"confidence": 0.4941465175073702
|
||||
},
|
||||
{
|
||||
"marker_id": 75,
|
||||
"observed_center_px": [
|
||||
1251.5,
|
||||
801.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1249.0706787109375,
|
||||
800.055419921875
|
||||
],
|
||||
"reprojection_error_px": 2.8263781642957686,
|
||||
"confidence": 0.07129070123540064
|
||||
},
|
||||
{
|
||||
"marker_id": 52,
|
||||
"observed_center_px": [
|
||||
1075.0,
|
||||
807.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1073.82666015625,
|
||||
807.2386474609375
|
||||
],
|
||||
"reprojection_error_px": 1.1973633531819778,
|
||||
"confidence": 0.4747611026689374
|
||||
},
|
||||
{
|
||||
"marker_id": 76,
|
||||
"observed_center_px": [
|
||||
273.75,
|
||||
722.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
274.6397705078125,
|
||||
723.6699829101562
|
||||
],
|
||||
"reprojection_error_px": 1.4698814804706541,
|
||||
"confidence": 0.4464638052540792
|
||||
},
|
||||
{
|
||||
"marker_id": 68,
|
||||
"observed_center_px": [
|
||||
421.5,
|
||||
733.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
422.1742858886719,
|
||||
733.5136108398438
|
||||
],
|
||||
"reprojection_error_px": 0.847618755377099,
|
||||
"confidence": 0.453656743367513
|
||||
},
|
||||
{
|
||||
"marker_id": 46,
|
||||
"observed_center_px": [
|
||||
472.25,
|
||||
751.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
472.6407165527344,
|
||||
751.65087890625
|
||||
],
|
||||
"reprojection_error_px": 0.41883632713964764,
|
||||
"confidence": 0.4433609532391809
|
||||
},
|
||||
{
|
||||
"marker_id": 53,
|
||||
"observed_center_px": [
|
||||
541.25,
|
||||
783.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
541.2369384765625,
|
||||
783.3223876953125
|
||||
],
|
||||
"reprojection_error_px": 0.07355665725931064,
|
||||
"confidence": 0.41918904165916515
|
||||
},
|
||||
{
|
||||
"marker_id": 50,
|
||||
"observed_center_px": [
|
||||
427.0,
|
||||
777.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
427.4671630859375,
|
||||
777.926025390625
|
||||
],
|
||||
"reprojection_error_px": 0.49922568744740276,
|
||||
"confidence": 0.4069334148740479
|
||||
},
|
||||
{
|
||||
"marker_id": 101,
|
||||
"observed_center_px": [
|
||||
1031.0,
|
||||
900.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
1029.668212890625,
|
||||
900.4525146484375
|
||||
],
|
||||
"reprojection_error_px": 1.3470965397955643,
|
||||
"confidence": 0.34672467375183735
|
||||
},
|
||||
{
|
||||
"marker_id": 82,
|
||||
"observed_center_px": [
|
||||
894.5,
|
||||
890.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
893.2540283203125,
|
||||
890.4962158203125
|
||||
],
|
||||
"reprojection_error_px": 1.2700660048814185,
|
||||
"confidence": 0.39232527116476396
|
||||
},
|
||||
{
|
||||
"marker_id": 100,
|
||||
"observed_center_px": [
|
||||
120.0,
|
||||
723.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
121.81710815429688,
|
||||
723.7096557617188
|
||||
],
|
||||
"reprojection_error_px": 1.8291630826238716,
|
||||
"confidence": 0.4207088246724057
|
||||
},
|
||||
{
|
||||
"marker_id": 73,
|
||||
"observed_center_px": [
|
||||
889.0,
|
||||
926.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
887.5708618164062,
|
||||
926.2489624023438
|
||||
],
|
||||
"reprojection_error_px": 1.4291385602573807,
|
||||
"confidence": 0.1469791980355697
|
||||
},
|
||||
{
|
||||
"marker_id": 60,
|
||||
"observed_center_px": [
|
||||
613.0,
|
||||
860.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
612.533935546875,
|
||||
860.8355102539062
|
||||
],
|
||||
"reprojection_error_px": 0.5742675377756796,
|
||||
"confidence": 0.36564926628565203
|
||||
},
|
||||
{
|
||||
"marker_id": 67,
|
||||
"observed_center_px": [
|
||||
497.75,
|
||||
838.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
497.8586120605469,
|
||||
838.2026977539062
|
||||
],
|
||||
"reprojection_error_px": 0.22996295165716743,
|
||||
"confidence": 0.363884422773956
|
||||
},
|
||||
{
|
||||
"marker_id": 70,
|
||||
"observed_center_px": [
|
||||
401.25,
|
||||
866.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
401.48388671875,
|
||||
867.0733032226562
|
||||
],
|
||||
"reprojection_error_px": 0.39903379679866513,
|
||||
"confidence": 0.35896437880813437
|
||||
},
|
||||
{
|
||||
"marker_id": 94,
|
||||
"observed_center_px": [
|
||||
29.0,
|
||||
720.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
31.11460304260254,
|
||||
720.2709350585938
|
||||
],
|
||||
"reprojection_error_px": 2.1147066710213593,
|
||||
"confidence": 0.09031730482356817
|
||||
},
|
||||
{
|
||||
"marker_id": 90,
|
||||
"observed_center_px": [
|
||||
351.5,
|
||||
880.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
352.0174560546875,
|
||||
880.55810546875
|
||||
],
|
||||
"reprojection_error_px": 0.6022372857988869,
|
||||
"confidence": 0.36026641726859315
|
||||
},
|
||||
{
|
||||
"marker_id": 104,
|
||||
"observed_center_px": [
|
||||
107.5,
|
||||
792.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
109.0373764038086,
|
||||
792.3465576171875
|
||||
],
|
||||
"reprojection_error_px": 1.540405654502856,
|
||||
"confidence": 0.40599116793083023
|
||||
},
|
||||
{
|
||||
"marker_id": 98,
|
||||
"observed_center_px": [
|
||||
436.5,
|
||||
882.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
436.4425048828125,
|
||||
883.1728515625
|
||||
],
|
||||
"reprojection_error_px": 1.174259969580457,
|
||||
"confidence": 0.35391110957760685
|
||||
},
|
||||
{
|
||||
"marker_id": 91,
|
||||
"observed_center_px": [
|
||||
254.25,
|
||||
887.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
255.05325317382812,
|
||||
887.015869140625
|
||||
],
|
||||
"reprojection_error_px": 0.8034099146071898,
|
||||
"confidence": 0.3494656541641164
|
||||
},
|
||||
{
|
||||
"marker_id": 88,
|
||||
"observed_center_px": [
|
||||
199.5,
|
||||
873.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
200.95053100585938,
|
||||
872.6802978515625
|
||||
],
|
||||
"reprojection_error_px": 1.4853449642002237,
|
||||
"confidence": 0.33862598740745903
|
||||
}
|
||||
]
|
||||
},
|
||||
"qa": {
|
||||
"sanity_notes": []
|
||||
}
|
||||
}
|
||||
BIN
data/homing/20260625_175916/cam1_debug.jpg
Normal file
|
After Width: | Height: | Size: 260 KiB |
BIN
data/homing/20260625_175916/cam2.jpg
Normal file
|
After Width: | Height: | Size: 282 KiB |
3092
data/homing/20260625_175916/cam2_aruco_detection.json
Normal file
761
data/homing/20260625_175916/cam2_camera_pose.json
Normal file
@@ -0,0 +1,761 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"created_utc": "2026-06-25T17:59:28Z",
|
||||
"source": {
|
||||
"detection_json": "/app/data/homing/20260625_175916/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": 40,
|
||||
"used_marker_ids": [
|
||||
85,
|
||||
92,
|
||||
105,
|
||||
97,
|
||||
54,
|
||||
208,
|
||||
217,
|
||||
47,
|
||||
93,
|
||||
66,
|
||||
62,
|
||||
96,
|
||||
94,
|
||||
95,
|
||||
79,
|
||||
100,
|
||||
104,
|
||||
76,
|
||||
69,
|
||||
103,
|
||||
51,
|
||||
58,
|
||||
68,
|
||||
50,
|
||||
88,
|
||||
46,
|
||||
91,
|
||||
64,
|
||||
90,
|
||||
53,
|
||||
72,
|
||||
98,
|
||||
67,
|
||||
70,
|
||||
60,
|
||||
84,
|
||||
86,
|
||||
82,
|
||||
75,
|
||||
73
|
||||
],
|
||||
"history": {
|
||||
"iters": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3
|
||||
],
|
||||
"rms": [
|
||||
0.00929587415047541,
|
||||
0.0010748985788974661,
|
||||
0.001013950655392918,
|
||||
0.001013950511849939
|
||||
],
|
||||
"lambda": [
|
||||
0.001,
|
||||
0.0005,
|
||||
0.00025,
|
||||
0.000125
|
||||
]
|
||||
},
|
||||
"residual_rms_px": 1.9984633198313304,
|
||||
"residual_median_px": 1.1048397349885588,
|
||||
"residual_max_px": 8.012141964697209,
|
||||
"sigma2_normalized": 1.1114547464625753e-06
|
||||
},
|
||||
"camera_pose": {
|
||||
"world_to_camera": {
|
||||
"rotation_matrix": [
|
||||
[
|
||||
0.7610290050506592,
|
||||
0.6436193585395813,
|
||||
0.08117286115884781
|
||||
],
|
||||
[
|
||||
0.4864314794540405,
|
||||
-0.4833734929561615,
|
||||
-0.7278286218643188
|
||||
],
|
||||
[
|
||||
-0.42920777201652527,
|
||||
0.5933837294578552,
|
||||
-0.6809379458427429
|
||||
]
|
||||
],
|
||||
"translation_m": [
|
||||
-0.17428335547447205,
|
||||
-0.14054450392723083,
|
||||
1.1974174976348877
|
||||
],
|
||||
"rvec_rad": [
|
||||
2.177352630181243,
|
||||
0.841105236753405,
|
||||
-0.2590449733390141
|
||||
]
|
||||
},
|
||||
"camera_in_world": {
|
||||
"position_m": [
|
||||
0.7149407863616943,
|
||||
-0.6662914156913757,
|
||||
0.7272217273712158
|
||||
],
|
||||
"position_mm": [
|
||||
714.9407958984375,
|
||||
-666.2914428710938,
|
||||
727.2217407226562
|
||||
],
|
||||
"orientation_deg": {
|
||||
"roll": 138.93040466308594,
|
||||
"pitch": 25.41729164123535,
|
||||
"yaw": 32.58573913574219
|
||||
}
|
||||
},
|
||||
"uncertainty": {
|
||||
"pose_covariance_6x6": [
|
||||
[
|
||||
1.7325268790245518e-06,
|
||||
5.981655510564799e-07,
|
||||
1.9008081078750225e-07,
|
||||
6.084320732905797e-08,
|
||||
-2.3354702118446124e-07,
|
||||
-3.602729870649897e-08
|
||||
],
|
||||
[
|
||||
5.981655510564792e-07,
|
||||
7.185403999584639e-07,
|
||||
-1.733161988537022e-07,
|
||||
1.3590794895526218e-07,
|
||||
-1.804162779559688e-07,
|
||||
1.5814835072347804e-07
|
||||
],
|
||||
[
|
||||
1.9008081078749777e-07,
|
||||
-1.733161988537059e-07,
|
||||
2.5200605751354745e-06,
|
||||
-7.330065793590657e-08,
|
||||
-3.490611313350714e-07,
|
||||
-1.0443589786543664e-06
|
||||
],
|
||||
[
|
||||
6.084320732905791e-08,
|
||||
1.3590794895526253e-07,
|
||||
-7.330065793590603e-08,
|
||||
6.430560370646186e-08,
|
||||
-2.0737599537247602e-08,
|
||||
9.272757844523572e-08
|
||||
],
|
||||
[
|
||||
-2.3354702118446045e-07,
|
||||
-1.8041627795596826e-07,
|
||||
-3.490611313350726e-07,
|
||||
-2.073759953724742e-08,
|
||||
1.4131779018249e-07,
|
||||
1.552658806009075e-07
|
||||
],
|
||||
[
|
||||
-3.6027298706497375e-08,
|
||||
1.5814835072348006e-07,
|
||||
-1.0443589786543662e-06,
|
||||
9.272757844523604e-08,
|
||||
1.552658806009069e-07,
|
||||
7.158822480370525e-07
|
||||
]
|
||||
],
|
||||
"parameter_std": {
|
||||
"rvec_std_deg": [
|
||||
0.07541584873239728,
|
||||
0.048567777257391795,
|
||||
0.09095532342017693
|
||||
],
|
||||
"tvec_std_m": [
|
||||
0.0002535854958519155,
|
||||
0.0003759225853583288,
|
||||
0.0008460982496359702
|
||||
]
|
||||
},
|
||||
"camera_center_std_m": [
|
||||
0.001238859522904557,
|
||||
0.0010725601282025278,
|
||||
0.0013428043149285806
|
||||
],
|
||||
"camera_center_std_mm": [
|
||||
1.2388595229045571,
|
||||
1.0725601282025277,
|
||||
1.3428043149285807
|
||||
],
|
||||
"orientation_std_deg": {
|
||||
"roll": 0.09670418188338105,
|
||||
"pitch": 0.07031307438362219,
|
||||
"yaw": 0.04214847006011442
|
||||
}
|
||||
}
|
||||
},
|
||||
"observations": {
|
||||
"markers": [
|
||||
{
|
||||
"marker_id": 85,
|
||||
"observed_center_px": [
|
||||
943.0,
|
||||
1037.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
942.2024536132812,
|
||||
1035.979736328125
|
||||
],
|
||||
"reprojection_error_px": 1.7167649434302272,
|
||||
"confidence": 0.28339330788046485
|
||||
},
|
||||
{
|
||||
"marker_id": 92,
|
||||
"observed_center_px": [
|
||||
1260.5,
|
||||
1040.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
1260.0,
|
||||
1039.166259765625
|
||||
],
|
||||
"reprojection_error_px": 1.1935212170729015,
|
||||
"confidence": 0.186820630468236
|
||||
},
|
||||
{
|
||||
"marker_id": 105,
|
||||
"observed_center_px": [
|
||||
1018.75,
|
||||
1005.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1017.9473266601562,
|
||||
1004.2492065429688
|
||||
],
|
||||
"reprojection_error_px": 1.48619270710366,
|
||||
"confidence": 0.868630415221559
|
||||
},
|
||||
{
|
||||
"marker_id": 97,
|
||||
"observed_center_px": [
|
||||
650.75,
|
||||
884.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
651.09619140625,
|
||||
883.6798095703125
|
||||
],
|
||||
"reprojection_error_px": 0.47156166195399984,
|
||||
"confidence": 0.7472812484733762
|
||||
},
|
||||
{
|
||||
"marker_id": 54,
|
||||
"observed_center_px": [
|
||||
727.5,
|
||||
891.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
727.0736083984375,
|
||||
890.49853515625
|
||||
],
|
||||
"reprojection_error_px": 1.0884583736414755,
|
||||
"confidence": 0.7927270034536174
|
||||
},
|
||||
{
|
||||
"marker_id": 208,
|
||||
"observed_center_px": [
|
||||
1312.75,
|
||||
909.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1318.954833984375,
|
||||
914.5689697265625
|
||||
],
|
||||
"reprojection_error_px": 8.012141964697209,
|
||||
"confidence": 0.5865958415608975
|
||||
},
|
||||
{
|
||||
"marker_id": 217,
|
||||
"observed_center_px": [
|
||||
1525.0,
|
||||
915.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1526.02783203125,
|
||||
921.9722290039062
|
||||
],
|
||||
"reprojection_error_px": 6.553334034174421,
|
||||
"confidence": 0.48103075735306616
|
||||
},
|
||||
{
|
||||
"marker_id": 47,
|
||||
"observed_center_px": [
|
||||
779.5,
|
||||
850.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
779.2447509765625,
|
||||
849.6724243164062
|
||||
],
|
||||
"reprojection_error_px": 0.8660447887040601,
|
||||
"confidence": 0.7324762772043267
|
||||
},
|
||||
{
|
||||
"marker_id": 93,
|
||||
"observed_center_px": [
|
||||
1890.0,
|
||||
969.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
1890.317138671875,
|
||||
971.253173828125
|
||||
],
|
||||
"reprojection_error_px": 1.5362644612040617,
|
||||
"confidence": 0.0615171510658591
|
||||
},
|
||||
{
|
||||
"marker_id": 66,
|
||||
"observed_center_px": [
|
||||
549.25,
|
||||
803.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
550.2374877929688,
|
||||
801.9854125976562
|
||||
],
|
||||
"reprojection_error_px": 1.6044667149644478,
|
||||
"confidence": 0.526209880769093
|
||||
},
|
||||
{
|
||||
"marker_id": 62,
|
||||
"observed_center_px": [
|
||||
961.5,
|
||||
801.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
960.479248046875,
|
||||
801.3424072265625
|
||||
],
|
||||
"reprojection_error_px": 1.0328455993265524,
|
||||
"confidence": 0.5777637144454008
|
||||
},
|
||||
{
|
||||
"marker_id": 96,
|
||||
"observed_center_px": [
|
||||
911.5,
|
||||
782.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
910.5089721679688,
|
||||
782.1806640625
|
||||
],
|
||||
"reprojection_error_px": 1.0412068021481435,
|
||||
"confidence": 0.5986996695409863
|
||||
},
|
||||
{
|
||||
"marker_id": 94,
|
||||
"observed_center_px": [
|
||||
1813.75,
|
||||
889.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1813.9437255859375,
|
||||
890.62109375
|
||||
],
|
||||
"reprojection_error_px": 1.1377085738166388,
|
||||
"confidence": 0.321218994735393
|
||||
},
|
||||
{
|
||||
"marker_id": 95,
|
||||
"observed_center_px": [
|
||||
631.25,
|
||||
708.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
631.6299438476562,
|
||||
708.2338256835938
|
||||
],
|
||||
"reprojection_error_px": 0.640931550393094,
|
||||
"confidence": 0.5102620497459525
|
||||
},
|
||||
{
|
||||
"marker_id": 79,
|
||||
"observed_center_px": [
|
||||
875.5,
|
||||
714.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
875.01416015625,
|
||||
714.7401733398438
|
||||
],
|
||||
"reprojection_error_px": 0.5419627173032531,
|
||||
"confidence": 0.5178115536596077
|
||||
},
|
||||
{
|
||||
"marker_id": 100,
|
||||
"observed_center_px": [
|
||||
1710.25,
|
||||
832.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1710.6463623046875,
|
||||
831.8109130859375
|
||||
],
|
||||
"reprojection_error_px": 0.7949489617009169,
|
||||
"confidence": 0.31927346015206026
|
||||
},
|
||||
{
|
||||
"marker_id": 104,
|
||||
"observed_center_px": [
|
||||
1769.75,
|
||||
795.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1770.6925048828125,
|
||||
794.8803100585938
|
||||
],
|
||||
"reprojection_error_px": 1.1279765412478604,
|
||||
"confidence": 0.2820489477598529
|
||||
},
|
||||
{
|
||||
"marker_id": 76,
|
||||
"observed_center_px": [
|
||||
1550.0,
|
||||
745.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1549.9093017578125,
|
||||
744.649169921875
|
||||
],
|
||||
"reprojection_error_px": 0.8556506255348009,
|
||||
"confidence": 0.2957408773689774
|
||||
},
|
||||
{
|
||||
"marker_id": 69,
|
||||
"observed_center_px": [
|
||||
465.5,
|
||||
587.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
467.173583984375,
|
||||
587.0509643554688
|
||||
],
|
||||
"reprojection_error_px": 1.7327770666811397,
|
||||
"confidence": 0.3850070054256877
|
||||
},
|
||||
{
|
||||
"marker_id": 103,
|
||||
"observed_center_px": [
|
||||
649.0,
|
||||
589.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
649.4606323242188,
|
||||
590.1286010742188
|
||||
],
|
||||
"reprojection_error_px": 0.7793083142275168,
|
||||
"confidence": 0.4188423377379467
|
||||
},
|
||||
{
|
||||
"marker_id": 51,
|
||||
"observed_center_px": [
|
||||
720.75,
|
||||
621.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
720.8779907226562,
|
||||
620.9248046875
|
||||
],
|
||||
"reprojection_error_px": 0.14844514174617424,
|
||||
"confidence": 0.43643037974141263
|
||||
},
|
||||
{
|
||||
"marker_id": 58,
|
||||
"observed_center_px": [
|
||||
569.25,
|
||||
573.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
570.5189208984375,
|
||||
573.7750244140625
|
||||
],
|
||||
"reprojection_error_px": 1.2691676279320252,
|
||||
"confidence": 0.37500699513057323
|
||||
},
|
||||
{
|
||||
"marker_id": 68,
|
||||
"observed_center_px": [
|
||||
1415.5,
|
||||
663.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
1414.463134765625,
|
||||
662.5946044921875
|
||||
],
|
||||
"reprojection_error_px": 1.2266347402207098,
|
||||
"confidence": 0.25940485673792224
|
||||
},
|
||||
{
|
||||
"marker_id": 50,
|
||||
"observed_center_px": [
|
||||
1438.0,
|
||||
635.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
1437.16650390625,
|
||||
634.8544921875
|
||||
],
|
||||
"reprojection_error_px": 0.922573665375857,
|
||||
"confidence": 0.270957436835909
|
||||
},
|
||||
{
|
||||
"marker_id": 88,
|
||||
"observed_center_px": [
|
||||
1720.5,
|
||||
694.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1720.8408203125,
|
||||
693.2443237304688
|
||||
],
|
||||
"reprojection_error_px": 0.8289783530016113,
|
||||
"confidence": 0.21331579725472802
|
||||
},
|
||||
{
|
||||
"marker_id": 46,
|
||||
"observed_center_px": [
|
||||
1380.75,
|
||||
628.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1379.9970703125,
|
||||
628.1585693359375
|
||||
],
|
||||
"reprojection_error_px": 0.8267272903932755,
|
||||
"confidence": 0.23649772201893263
|
||||
},
|
||||
{
|
||||
"marker_id": 91,
|
||||
"observed_center_px": [
|
||||
1672.75,
|
||||
657.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1672.596923828125,
|
||||
656.64208984375
|
||||
],
|
||||
"reprojection_error_px": 0.8714597813971704,
|
||||
"confidence": 0.22421739747061642
|
||||
},
|
||||
{
|
||||
"marker_id": 64,
|
||||
"observed_center_px": [
|
||||
541.75,
|
||||
511.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
543.0106811523438,
|
||||
511.8523864746094
|
||||
],
|
||||
"reprojection_error_px": 1.5218014555032349,
|
||||
"confidence": 0.3194003123985894
|
||||
},
|
||||
{
|
||||
"marker_id": 90,
|
||||
"observed_center_px": [
|
||||
1571.25,
|
||||
614.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1571.232177734375,
|
||||
612.768798828125
|
||||
],
|
||||
"reprojection_error_px": 1.2313301583159495,
|
||||
"confidence": 0.21534147510121324
|
||||
},
|
||||
{
|
||||
"marker_id": 53,
|
||||
"observed_center_px": [
|
||||
1340.25,
|
||||
579.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
1339.28076171875,
|
||||
579.6795654296875
|
||||
],
|
||||
"reprojection_error_px": 0.9717941523468644,
|
||||
"confidence": 0.2131836038878541
|
||||
},
|
||||
{
|
||||
"marker_id": 72,
|
||||
"observed_center_px": [
|
||||
1282.0,
|
||||
562.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
1280.0421142578125,
|
||||
563.0445556640625
|
||||
],
|
||||
"reprojection_error_px": 1.9799190939764175,
|
||||
"confidence": 0.2329113678114362
|
||||
},
|
||||
{
|
||||
"marker_id": 98,
|
||||
"observed_center_px": [
|
||||
1493.25,
|
||||
573.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
1492.691650390625,
|
||||
572.2074584960938
|
||||
],
|
||||
"reprojection_error_px": 1.6404842509340254,
|
||||
"confidence": 0.19836555127576866
|
||||
},
|
||||
{
|
||||
"marker_id": 67,
|
||||
"observed_center_px": [
|
||||
1411.0,
|
||||
570.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1410.1534423828125,
|
||||
569.2794799804688
|
||||
],
|
||||
"reprojection_error_px": 1.111669419280521,
|
||||
"confidence": 0.22146320976627604
|
||||
},
|
||||
{
|
||||
"marker_id": 70,
|
||||
"observed_center_px": [
|
||||
1516.0,
|
||||
598.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
1515.696044921875,
|
||||
597.093505859375
|
||||
],
|
||||
"reprojection_error_px": 1.1957706246675956,
|
||||
"confidence": 0.17917987028547397
|
||||
},
|
||||
{
|
||||
"marker_id": 60,
|
||||
"observed_center_px": [
|
||||
1326.5,
|
||||
509.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1325.19873046875,
|
||||
509.093017578125
|
||||
],
|
||||
"reprojection_error_px": 1.3634284303456619,
|
||||
"confidence": 0.19672907121069258
|
||||
},
|
||||
{
|
||||
"marker_id": 84,
|
||||
"observed_center_px": [
|
||||
1284.5,
|
||||
508.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1283.4097900390625,
|
||||
507.8693542480469
|
||||
],
|
||||
"reprojection_error_px": 1.0980100506965966,
|
||||
"confidence": 0.1992299923059727
|
||||
},
|
||||
{
|
||||
"marker_id": 86,
|
||||
"observed_center_px": [
|
||||
1259.0,
|
||||
466.5
|
||||
],
|
||||
"projected_center_px": [
|
||||
1258.5447998046875,
|
||||
466.7055358886719
|
||||
],
|
||||
"reprojection_error_px": 0.4994519189518402,
|
||||
"confidence": 0.20697942435059868
|
||||
},
|
||||
{
|
||||
"marker_id": 82,
|
||||
"observed_center_px": [
|
||||
1129.75,
|
||||
393.75
|
||||
],
|
||||
"projected_center_px": [
|
||||
1128.9288330078125,
|
||||
393.5796813964844
|
||||
],
|
||||
"reprojection_error_px": 0.8386439386067119,
|
||||
"confidence": 0.16919547786983627
|
||||
},
|
||||
{
|
||||
"marker_id": 75,
|
||||
"observed_center_px": [
|
||||
862.5,
|
||||
325.25
|
||||
],
|
||||
"projected_center_px": [
|
||||
861.7324829101562,
|
||||
326.8608703613281
|
||||
],
|
||||
"reprojection_error_px": 1.7843726640496438,
|
||||
"confidence": 0.21628605150283992
|
||||
},
|
||||
{
|
||||
"marker_id": 73,
|
||||
"observed_center_px": [
|
||||
1153.5,
|
||||
379.0
|
||||
],
|
||||
"projected_center_px": [
|
||||
1152.4403076171875,
|
||||
379.2215881347656
|
||||
],
|
||||
"reprojection_error_px": 1.08261223328565,
|
||||
"confidence": 0.1485104612681437
|
||||
}
|
||||
]
|
||||
},
|
||||
"qa": {
|
||||
"sanity_notes": []
|
||||
}
|
||||
}
|
||||
BIN
data/homing/20260625_175916/cam2_debug.jpg
Normal file
|
After Width: | Height: | Size: 458 KiB |
2487
data/homing/20260625_175916/robot_1781069752019.json
Normal file
59
data/homing/20260625_175916/robot_state.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"created_utc": "2026-06-25T17:59:33Z",
|
||||
"method": "hybrid",
|
||||
"seeded": true,
|
||||
"movements": {
|
||||
"x": {
|
||||
"value": 110.01986467359067,
|
||||
"unit": "mm",
|
||||
"observable": true,
|
||||
"confidence": "high",
|
||||
"n_markers": 6
|
||||
},
|
||||
"y": {
|
||||
"value": 1.0330890750947754,
|
||||
"unit": "deg",
|
||||
"observable": true,
|
||||
"confidence": "high",
|
||||
"n_markers": 6
|
||||
},
|
||||
"z": {
|
||||
"value": 96.2744445958484,
|
||||
"unit": "deg",
|
||||
"observable": true,
|
||||
"confidence": "medium",
|
||||
"n_markers": 1
|
||||
},
|
||||
"a": {
|
||||
"value": 86.75801106951552,
|
||||
"unit": "deg",
|
||||
"observable": true,
|
||||
"confidence": "high",
|
||||
"n_markers": 3
|
||||
},
|
||||
"b": {
|
||||
"value": 62.05866240456044,
|
||||
"unit": "deg",
|
||||
"observable": true,
|
||||
"confidence": "medium",
|
||||
"n_markers": 3
|
||||
},
|
||||
"c": {
|
||||
"value": -80.56572105590129,
|
||||
"unit": "deg",
|
||||
"observable": true,
|
||||
"confidence": "medium",
|
||||
"n_markers": 3
|
||||
},
|
||||
"e": {
|
||||
"value": 35.00722900692152,
|
||||
"unit": "mm",
|
||||
"observable": true,
|
||||
"confidence": "medium",
|
||||
"n_markers": 3
|
||||
}
|
||||
},
|
||||
"residual_rms": 33.572073291771,
|
||||
"num_markers": 55
|
||||
}
|
||||
222
data/homing/20260625_175916/state_Arm1.json
Normal file
@@ -0,0 +1,222 @@
|
||||
{
|
||||
"status": "ok",
|
||||
"link": "Arm1",
|
||||
"joint": "y",
|
||||
"method": "primary",
|
||||
"joint_origin_world_mm": [
|
||||
154.64058080413625,
|
||||
108.3154,
|
||||
53.4964
|
||||
],
|
||||
"joint_axis_world": [
|
||||
-1.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"mean_angle_deg": 7.073578785211089,
|
||||
"circular_variance": 0.007972526914742928,
|
||||
"circular_std_deg": 7.249434372855015,
|
||||
"num_pairs_used": 15,
|
||||
"num_markers_matched": 6,
|
||||
"per_pair": [
|
||||
{
|
||||
"marker_ids": [
|
||||
55,
|
||||
56
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 0.20885786426191633,
|
||||
"baseline_model_mm": 430.4301189508002,
|
||||
"baseline_obs_mm": 431.321568455382,
|
||||
"weight": 185653.79401629578
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
55,
|
||||
77
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 0.1534985213298885,
|
||||
"baseline_model_mm": 455.14017577005876,
|
||||
"baseline_obs_mm": 456.76224811573417,
|
||||
"weight": 207890.84989252244
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
55,
|
||||
198
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 2.7294530137510984,
|
||||
"baseline_model_mm": 120.70271952197267,
|
||||
"baseline_obs_mm": 235.9270100140718,
|
||||
"weight": 28477.031717386148
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
55,
|
||||
229
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 36.070256539732,
|
||||
"baseline_model_mm": 63.35571402801802,
|
||||
"baseline_obs_mm": 159.8295466346313,
|
||||
"weight": 10126.115049811471
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
55,
|
||||
243
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 89.62500483491822,
|
||||
"baseline_model_mm": 34.32559540634365,
|
||||
"baseline_obs_mm": 110.61945936866468,
|
||||
"weight": 3797.0788063572545
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
56,
|
||||
77
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": -0.8278666326016993,
|
||||
"baseline_model_mm": 24.720487454740837,
|
||||
"baseline_obs_mm": 25.442346313142185,
|
||||
"weight": 628.9472028532032
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
56,
|
||||
198
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 16.060958275347453,
|
||||
"baseline_model_mm": 332.5358726513577,
|
||||
"baseline_obs_mm": 249.91702454137288,
|
||||
"weight": 83106.37584629621
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
56,
|
||||
229
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 10.575835506835253,
|
||||
"baseline_model_mm": 421.3102260804976,
|
||||
"baseline_obs_mm": 329.51739043275734,
|
||||
"weight": 138829.0462606806
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
56,
|
||||
243
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 8.204562901697962,
|
||||
"baseline_model_mm": 452.5694494770941,
|
||||
"baseline_obs_mm": 352.3360154416916,
|
||||
"weight": 159456.51653939928
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
77,
|
||||
198
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 14.349880680055369,
|
||||
"baseline_model_mm": 356.9731122927888,
|
||||
"baseline_obs_mm": 273.03257450221435,
|
||||
"weight": 97465.28787736819
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
77,
|
||||
229
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 9.66556769141446,
|
||||
"baseline_model_mm": 445.86971516352173,
|
||||
"baseline_obs_mm": 353.78452354827397,
|
||||
"weight": 157741.80474373116
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
77,
|
||||
243
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 7.573295647776105,
|
||||
"baseline_model_mm": 477.27969043318825,
|
||||
"baseline_obs_mm": 377.3635068156209,
|
||||
"weight": 180107.93771374188
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
198,
|
||||
229
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": -3.397605318552869,
|
||||
"baseline_model_mm": 90.00000000000003,
|
||||
"baseline_obs_mm": 88.54992394070814,
|
||||
"weight": 7969.493154663735
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
198,
|
||||
243
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": -3.2531512518968957,
|
||||
"baseline_model_mm": 129.8075498574717,
|
||||
"baseline_obs_mm": 128.9115321451203,
|
||||
"weight": 16733.690136130772
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
229,
|
||||
243
|
||||
],
|
||||
"link": "Arm1",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": -2.3933465309361535,
|
||||
"baseline_model_mm": 49.49747468305833,
|
||||
"baseline_obs_mm": 49.589805881590635,
|
||||
"weight": 2454.5701611618097
|
||||
}
|
||||
],
|
||||
"accumulated_state": {
|
||||
"x": 44.640580804136256,
|
||||
"y": 7.073578785211089
|
||||
}
|
||||
}
|
||||
65
data/homing/20260625_175916/state_Arm2.json
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"status": "ok",
|
||||
"link": "Arm2",
|
||||
"joint": "a",
|
||||
"method": "primary",
|
||||
"joint_origin_world_mm": [
|
||||
244.64058080413622,
|
||||
-139.78180740318305,
|
||||
84.28236561327859
|
||||
],
|
||||
"joint_axis_world": [
|
||||
0.0,
|
||||
0.13416044351804374,
|
||||
0.9909596234938344
|
||||
],
|
||||
"mean_angle_deg": 92.49229573636204,
|
||||
"circular_variance": 0.0005036790852294137,
|
||||
"circular_std_deg": 1.8187344232244496,
|
||||
"num_pairs_used": 2,
|
||||
"num_markers_matched": 3,
|
||||
"per_pair": [
|
||||
{
|
||||
"marker_ids": [
|
||||
143,
|
||||
144
|
||||
],
|
||||
"link": "Arm2",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 90.53857082520275,
|
||||
"baseline_model_mm": 26.684454275851333,
|
||||
"baseline_obs_mm": 24.841154956793282,
|
||||
"weight": 662.8726636038881
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
143,
|
||||
148
|
||||
],
|
||||
"link": "Arm2",
|
||||
"tier": "primary",
|
||||
"skipped": false,
|
||||
"angle_deg": 94.18507945848495,
|
||||
"baseline_model_mm": 26.836171485515596,
|
||||
"baseline_obs_mm": 28.506933940749555,
|
||||
"weight": 765.0169677602199
|
||||
},
|
||||
{
|
||||
"marker_ids": [
|
||||
144,
|
||||
148
|
||||
],
|
||||
"link": "Arm2",
|
||||
"tier": "primary",
|
||||
"skipped": true,
|
||||
"reason": "bl_model=0.4 bl_obs=3.9 < 15.0"
|
||||
}
|
||||
],
|
||||
"accumulated_state": {
|
||||
"x": 44.640580804136256,
|
||||
"y": 7.073578785211089,
|
||||
"z": 90.63649643342701,
|
||||
"a": 92.49229573636204
|
||||
}
|
||||
}
|
||||
41
data/homing/20260625_175916/state_Ellbow.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"status": "ok",
|
||||
"link": "Ellbow",
|
||||
"joint": "z",
|
||||
"method": "fallback_1_child_axis",
|
||||
"joint_origin_world_mm": [
|
||||
154.64058080413625,
|
||||
-139.78180740318305,
|
||||
84.28236561327859
|
||||
],
|
||||
"joint_axis_world": [
|
||||
-1.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"mean_angle_deg": 90.63649643342701,
|
||||
"circular_variance": 0.0,
|
||||
"circular_std_deg": 0.0,
|
||||
"num_pairs_used": 1,
|
||||
"num_markers_matched": 1,
|
||||
"per_pair": [
|
||||
{
|
||||
"marker_ids": [
|
||||
144,
|
||||
148
|
||||
],
|
||||
"link": "Arm2",
|
||||
"tier": "fallback_1_child_axis",
|
||||
"skipped": false,
|
||||
"angle_deg": 90.63649643342701,
|
||||
"baseline_model_mm": 107.0,
|
||||
"baseline_obs_mm": 107.57847026231472,
|
||||
"weight": 11510.896318067675
|
||||
}
|
||||
],
|
||||
"accumulated_state": {
|
||||
"x": 44.640580804136256,
|
||||
"y": 7.073578785211089,
|
||||
"z": 90.63649643342701
|
||||
}
|
||||
}
|
||||
@@ -5,12 +5,12 @@
|
||||
> Messung beiträgt und *wie stark* sie zählt.
|
||||
>
|
||||
> **Status (2026-06-25):** **Qualitäts-Gewichtung** (Doc-Punkt 3 / Schritte 1+2)
|
||||
> umgesetzt. **Mehrpunkt-Eckresiduen** (Doc-Punkt 1 / Schritte 3+4) umgesetzt
|
||||
> als Opt-in-Modus `marker_observation="corner_points"` — 12 Eck-Residuen für
|
||||
> Roboter-Links, 1 Center-Residuum für die (spin-unkalibrierten) Board/Rail-
|
||||
> Marker auf dem Root-Link. Endgültiges Tuning/Validierung gegen Simulation
|
||||
> steht aus (siehe Notiz unten). **Einzelkamera-Einbindung** (Doc-Punkt 2 /
|
||||
> Schritte 5+6) weiterhin **offen** — siehe Status-Spalte unten.
|
||||
> umgesetzt. **Mehrpunkt-Eckresiduen** (Doc-Punkt 1 / Schritte 3+4) als
|
||||
> Opt-in-Modus `corner_points` implementiert, aber nach gescheitertem
|
||||
> Live-Test wieder **DEAKTIVIERT** — robot.json steht auf `corner_pose`
|
||||
> (bewährter Zustand). Der Code bleibt inaktiv im Repo. Ursache + Vorbedingungen
|
||||
> für eine erneute Aktivierung: Notiz unten. **Einzelkamera-Einbindung**
|
||||
> (Doc-Punkt 2 / Schritte 5+6) weiterhin **offen**.
|
||||
|
||||
---
|
||||
|
||||
@@ -232,7 +232,7 @@ umsetzbar und (wo möglich) einzeln testbar, bevor der nächste beginnt.
|
||||
| 1 | ✅ erledigt (2026-06-17) | **(Doc-Punkt 3)** `quality`/`confidence` aus `{cam}_aruco_detection.json` bis nach `aruco_marker_poses.json` durchreichen (3b liest es, schreibt ein neues `weight`-Feld pro Marker) | Diff der Ausgabedatei: nur das neue Feld ist zusätzlich da, alles andere (Position, Normale, …) identisch zu vorher — reiner Additivitätstest | **Nein.** Rein additives Feld, kein Pflichtfeld, alte Leser ignorieren es |
|
||||
| 2 | ✅ erledigt (2026-06-17) | **(Doc-Punkt 3)** `residual_vector()` nutzt das neue Gewicht, hinter einem Schalter (`pose_estimation.use_marker_weight`, Default `false`) | A/B-Vergleich auf den appRobotRendering-Simulationsszenen (mit/ohne Schalter) gegen bekannte Grundwahrheit — genau der Test, der laut Nutzer beim ersten Versuch wenig brachte, jetzt wiederholbar | **Nein bei Default aus.** Mit `true`: Ergebnisse ändern sich gewollt — muss vor Produktiv-Default separat validiert werden |
|
||||
| 3 | ✅ erledigt (2026-06-25) | **(Doc-Punkt 1)** `robot_fk.py`: neue Methode liefert die 4 lokalen Eckpunkte eines Markers im Weltsystem (Baustein, noch ohne Anbindung) | Isoliert testbar, ganz ohne `5_pose_estimation.py`: gegen die wahren Eckpositionen aus `render_*.json` (Simulation liefert das schon) | **Nein.** Neue, bisher von niemandem aufgerufene Methode |
|
||||
| 4 | 🟡 Code erledigt (2026-06-25), Tuning offen | **(Doc-Punkt 1)** Neuer `marker_observation`-Modus (z. B. `"corner_points"`) nutzt die 12 Eck-Residuen statt 6 Center/Normal-Residuen | Direkter Vorher/Nachher-Vergleich gegen dieselbe Validierungstabelle wie in `Homing_5_Pose.md` (10 Simulationsposen, bekannte GT) | **Nein als Opt-in** (Default bleibt `"corner_pose"`). Tuning-Punkt: `huber_delta_mm` ist auf die heutige Residuumsgröße kalibriert — mit 12 statt 6 Werten/Marker verschiebt sich die RMS-Größenordnung, müsste neu eingeordnet werden |
|
||||
| 4 | 🔴 Code da, aber DEAKTIVIERT (live gescheitert 2026-06-25 → robot.json zurück auf `corner_pose`) | **(Doc-Punkt 1)** Neuer `marker_observation`-Modus (z. B. `"corner_points"`) nutzt die 12 Eck-Residuen statt 6 Center/Normal-Residuen | Direkter Vorher/Nachher-Vergleich gegen dieselbe Validierungstabelle wie in `Homing_5_Pose.md` (10 Simulationsposen, bekannte GT) | **Nein als Opt-in** (Default bleibt `"corner_pose"`). Tuning-Punkt: `huber_delta_mm` ist auf die heutige Residuumsgröße kalibriert — mit 12 statt 6 Werten/Marker verschiebt sich die RMS-Größenordnung, müsste neu eingeordnet werden |
|
||||
| 5 | ⬜ **offen** (Vorarbeit/Guards ✅) | **(Doc-Punkt 2)** 3b nimmt 1-Kamera-Beobachtungen mit auf (rohe 2D-Ecken + Kamera-Referenz), statt sie zu verwerfen | Output-Diff: nur neue Einträge für vorher fehlende Marker, bestehende ≥2-Kamera-Einträge unverändert | **Ja, konkret** — siehe Konsumenten-Recherche direkt unter der Tabelle. Mehrere Stellen brauchen einen Guard, **bevor** dieser Schritt scharf geschaltet wird |
|
||||
| 6 | ⬜ **offen** | **(Doc-Punkt 2)** `residual_vector()` um Reprojektions-Residuen erweitert; `load_observations()`/`estimate_pose()` lesen zusätzlich Kamerakalibrierung | Zuerst an Simulationsszenen, bei denen gut beobachtete Marker künstlich auf „nur 1 Kamera" reduziert werden (GT bekannt) — saubere Kontrolle, ob das Residuum tatsächlich hilft, bevor reale Finger-Marker überhaupt existieren | **Nein strukturell** (additiver Residuumstyp), aber Regressionsrisiko durch falsche mm/px-Gewichtung — vor Produktiv-Default gegen die bestehende Validierungstabelle gegenprüfen (wie Schritt 4) |
|
||||
| 7 | ⬜ **offen** | Zusammenführen: ein gemeinsames Gewichtsschema (Quality × Kamera-Anzahl × Residuumstyp) statt drei separater Schalter | End-to-End gegen Simulationsbenchmark **und** die drei realen Fixtures aus `Homing_5_Pose.md` | **Nein**, wenn alle Vorstufen additive Defaults hatten |
|
||||
@@ -293,13 +293,35 @@ Alle anderen Konsumenten (`homing.js`, `editRobot.js` → `assignByZRange`/`alig
|
||||
ziehen auch `corner_pose` leicht. Auf bereinigten Markern konvergiert
|
||||
`corner_points` ≈ `corner_pose`. → Marker-Zuordnung korrigieren (separate
|
||||
Kalibrier-Aufgabe).
|
||||
- **Scharfgeschaltet (2026-06-25, gescopt):** robot.json
|
||||
`marker_observation: "corner_points"` mit
|
||||
`corner_point_links: ["Hand","Palm","FingerA","FingerB"]`. D.h. nur Hand/Finger
|
||||
nutzen die 4 Ecken; Arme behalten Center+Normale, Board nur Center. Auf der
|
||||
Arm-Capture (ohne Finger-Marker) **byte-identisch** zu `corner_pose` → keine
|
||||
Regression im bestehenden Pfad. Die Arme können in die Liste, sobald die
|
||||
A0→Arm1-Fehlzuordnung behoben ist.
|
||||
- **DEAKTIVIERT (2026-06-25) — Aktivierung am echten Roboter gescheitert,
|
||||
zurückgedreht.** robot.json steht wieder auf `marker_observation:
|
||||
"corner_pose"` (der bewährte Zustand). Der `corner_points`-Code bleibt im
|
||||
Repo, ist aber **inaktiv** (opt-in).
|
||||
|
||||
**Was probiert wurde:** `corner_points` mit `corner_point_links:
|
||||
["Hand","Palm","FingerA","FingerB"]` scharfgeschaltet (nur Hand/Finger über
|
||||
Ecken, Arme/Board unverändert). Am echten Lauf (data/homing/20260625_175916)
|
||||
kippte die Hand (`b` −52° → +62°) und `x` wanderte (160 → 110 mm).
|
||||
|
||||
**Belegte Ursache (Gegenprobe an denselben Daten):**
|
||||
- `corner_pose` → gutes Ergebnis (`b`≈−52, `x`≈160); `corner_points` → das
|
||||
schlechte. Also eindeutig der Modus.
|
||||
- Die **Eck-Konvention ist NICHT der Fehler**: 2 der 3 Finger-Marker passen am
|
||||
guten Pose exakt (FingerB #178/#179, ~2–3 mm, korrekte Eck-Paarung fwd+r0).
|
||||
- **Eigentliche Ursache: ein einzelner schlechter Marker.** FingerA **#147**
|
||||
liegt **132 mm neben dem Modell** (Position/Zuordnung in robot.json noch
|
||||
provisorisch, vgl. Commits „Finger1 Marker"/„zweiter Finger – verdreht").
|
||||
Im Eck-Modus liefert ein Marker **12 statt 3 Residuen** → ein einzelner
|
||||
Ausreißer hat ~4× Zugkraft und reißt `global_ba` ins falsche Minimum.
|
||||
`corner_pose` (3 Residuen) dämpft ihn per Huber weg.
|
||||
|
||||
**Damit `corner_points` je produktiv taugt, fehlen ZWEI Dinge:**
|
||||
1. **Daten:** FingerA #147 sauber einmessen / Zuordnung prüfen.
|
||||
2. **Code-Robustheit:** Ausreißer-Schutz im Eck-Modus (grob daneben liegende
|
||||
Marker pro Marker auf Center zurückfallen lassen oder verwerfen), sonst
|
||||
kippt jede reale Aufnahme mit *einem* schlechten Marker. Erst danach –
|
||||
gegen GT (Simulation oder Finger-Capture bekannter Pose), **nicht** live –
|
||||
erneut testen. CLI zum Vergleichen: `--marker-observation corner_points`.
|
||||
- **Offen (Schritt 4 Tuning):** `huber_delta_mm` ist auf 6 Residuen/Marker
|
||||
kalibriert; mit 12 verschiebt sich die RMS-Größenordnung. Sauberes A/B + Tuning
|
||||
der Hand/Finger-Ecken gegen appRobotRendering-Simulations-GT steht aus (hier
|
||||
|
||||
@@ -281,8 +281,7 @@
|
||||
},
|
||||
"pose_estimation": {
|
||||
"method": "hybrid",
|
||||
"marker_observation": "corner_points",
|
||||
"corner_point_links": ["Hand", "Palm", "FingerA", "FingerB"],
|
||||
"marker_observation": "corner_pose",
|
||||
"use_normals": true,
|
||||
"normal_weight": 100,
|
||||
"robust_loss": "huber",
|
||||
|
||||